i.len()&&(uMath.abs(i[1])?0':'':{renderMode:r,content:"{"+(t.markerId||"markerX")+"|} ",style:"subItem"===i?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}:""}function Mp(t,e){return e=e||"transparent",V(t)?t:R(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function Tp(t,e){var n;"_blank"===e||"blank"===e?((n=window.open()).opener=null,n.location.href=t):window.open(t,e)}var Cp=O,Ip=["left","right","top","bottom","width","height"],kp=[["width","left","right"],["height","top","bottom"]];function Dp(a,s,l,u,h){var c=0,p=0,d=(null==u&&(u=1/0),null==h&&(h=1/0),0);s.eachChild(function(t,e){var n,i,r,o=t.getBoundingRect(),e=s.childAt(e+1),e=e&&e.getBoundingRect();d="horizontal"===a?(i=o.width+(e?-e.x+o.x:0),u<(n=c+i)||t.newline?(c=0,n=i,p+=d+l,o.height):Math.max(d,o.height)):(i=o.height+(e?-e.y+o.y:0),h<(r=p+i)||t.newline?(c+=d+l,p=0,r=i,o.width):Math.max(d,o.width)),t.newline||(t.x=c,t.y=p,t.markRedraw(),"horizontal"===a?c=n+l:p=r+l)})}var Ap=Dp;function Pp(t,e,n){n=vp(n||0);var i=e.width,r=e.height,o=to(t.left,i),a=to(t.top,r),e=to(t.right,i),s=to(t.bottom,r),l=to(t.width,i),u=to(t.height,r),h=n[2]+n[0],c=n[1]+n[3],p=t.aspect;switch(isNaN(l)&&(l=i-e-c-o),isNaN(u)&&(u=r-s-h-a),null!=p&&(isNaN(l)&&isNaN(u)&&(i/re)return t[i];return t[n-1]}var cd,pd="\0_ec_inner",dd=(u(l,cd=Lc),l.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Lc(i),this._locale=new Lc(r),this._optionManager=o},l.prototype.setOption=function(t,e,n){e=yd(e);this._optionManager.setOption(t,n,e),this._resetOption(null,e)},l.prototype.resetOption=function(t,e){return this._resetOption(t,yd(e))},l.prototype._resetOption=function(t,e){var n,i=!1,r=this._optionManager;return t&&"recreate"!==t||(n=r.mountOption("recreate"===t),this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(n,e)):ad(this,n),i=!0),"timeline"!==t&&"media"!==t||this.restoreData(),t&&"recreate"!==t&&"timeline"!==t||(n=r.getTimelineOption(this))&&(i=!0,this._mergeOption(n,e)),t&&"recreate"!==t&&"media"!==t||(n=r.getMediaOption(this)).length&&O(n,function(t){i=!0,this._mergeOption(t,e)},this),i},l.prototype.mergeOption=function(t){this._mergeOption(t,null)},l.prototype._mergeOption=function(i,t){var r=this.option,h=this._componentsMap,c=this._componentsCount,n=[],o=E(),p=t&&t.replaceMergeMainTypeMap;Jp(this).datasetMap=E(),O(i,function(t,e){null!=t&&(g.hasClass(e)?e&&(n.push(e),o.set(e,!0)):r[e]=null==r[e]?y(t):d(r[e],t,!0))}),p&&p.each(function(t,e){g.hasClass(e)&&!o.get(e)&&(n.push(e),o.set(e,!0))}),g.topologicalTravel(n,g.getAllClassMainTypes(),function(o){var a,t=function(t,e,n){return(e=(e=id.get(e))&&e(t))?n.concat(e):n}(this,o,_o(i[o])),e=h.get(o),n=e?p&&p.get(o)?"replaceMerge":"normalMerge":"replaceAll",e=So(e,t,n),s=(Do(e,o,g),r[o]=null,h.set(o,null),c.set(o,0),[]),l=[],u=0;O(e,function(t,e){var n=t.existing,i=t.newOption;if(i){var r=g.getClass(o,t.keyInfo.subType,!("series"===o));if(!r)return;if("tooltip"===o){if(a)return;a=!0}n&&n.constructor===r?(n.name=t.keyInfo.name,n.mergeOption(i,this),n.optionUpdated(i,!1)):(e=L({componentIndex:e},t.keyInfo),L(n=new r(i,this,this,e),e),t.brandNew&&(n.__requireNewView=!0),n.init(i,this,this),n.optionUpdated(null,!0))}else n&&(n.mergeOption({},this),n.optionUpdated({},!1));n?(s.push(n.option),l.push(n),u++):(s.push(void 0),l.push(void 0))},this),r[o]=s,h.set(o,l),c.set(o,u),"series"===o&&rd(this)},this),this._seriesIndices||rd(this)},l.prototype.getOption=function(){var a=y(this.option);return O(a,function(t,e){if(g.hasClass(e)){for(var n=_o(t),i=n.length,r=!1,o=i-1;0<=o;o--)n[o]&&!ko(n[o])?r=!0:(n[o]=null,r||i--);n.length=i,a[e]=n}}),delete a[pd],a},l.prototype.getTheme=function(){return this._theme},l.prototype.getLocaleModel=function(){return this._locale},l.prototype.setUpdatePayload=function(t){this._payload=t},l.prototype.getUpdatePayload=function(){return this._payload},l.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){t=n[e||0];if(t)return t;if(null==e)for(var i=0;ig[1]&&(g[1]=f)}return{start:a,end:this._rawCount=this._count=s}},h.prototype._initDataFromProvider=function(t,e,n){for(var i=this._provider,r=this._chunks,o=this._dimensions,a=o.length,s=this._rawExtent,l=B(o,function(t){return t.property}),u=0;uf[1]&&(f[1]=g)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent=[]},h.prototype.count=function(){return this._count},h.prototype.get=function(t,e){return 0<=e&&e=this._rawCount||t<0)){if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&nt))return o;r=o-1}}}return-1},h.prototype.indicesOfNearest=function(t,e,n){var i=this._chunks[t],r=[];if(i){null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();lt[S][1])&&(w=!1)}w&&(a[s++]=e.getRawIndex(f))}return sy[1]&&(y[1]=g)}}}},h.prototype.lttbDownSample=function(t,e){var n,i=this.clone([t],!0),r=i._chunks[t],o=this.count(),a=0,s=Math.floor(1/e),l=this.getRawIndex(0),u=new(rg(this._rawCount))(Math.min(2*(Math.ceil(o/s)+2),o));u[a++]=l;for(var h=1;hh[1]&&(h[1]=y),c[p++]=m}return r._count=p,r._indices=c,r._updateGetRawIdx(),r},h.prototype.each=function(t,e){if(this._count)for(var n=t.length,i=this._chunks,r=0,o=this.count();r'+_e(u)+""+h,t))}function Sg(t,e,n,i){var r,o,a,s,l,u=t.renderMode,h=e.noName,c=e.noValue,p=!e.markerType,d=e.name,f=t.useUTC,g=e.valueFormatter||t.valueFormatter||function(t){return B(t=F(t)?t:[t],function(t,e){return _p(t,F(o)?o[e]:o,f)})};if(!h||!c)return r=p?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",u),d=h?"":_p(d,"ordinal",f),o=e.valueType,g=c?[]:g(e.value,e.dataIndex),e=!p||!h,a=!p&&h,l=yg(i,u),s=l.nameStyle,l=l.valueStyle,"richText"===u?(p?"":r)+(h?"":Cg(t,d,s))+(c?"":function(t,e,n,i,r){r=[r],i=i?10:20;return n&&r.push({padding:[0,0,0,i],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(F(e)?e.join(" "):e,r)}(t,g,e,a,l)):Tg(i,(p?"":r)+(h?"":''+_e(d)+"")+(c?"":function(t,e,n,i){n=n?"10px":"20px",e=e?"float:right;margin-left:"+n:"";return t=F(t)?t:[t],''+B(t,_e).join(" ")+""}(g,e,a,l)),n)}function Mg(t,e,n,i,r,o){if(t)return wg(t)({useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e,valueFormatter:t.valueFormatter},t,0,o)}function Tg(t,e,n){return''}function Cg(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Ig(t,e){t=t.get("padding");return null!=t?t:"richText"===e?[8,10]:10}Dg.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},Dg.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,e=Sp({color:e,type:t,renderMode:n,markerId:i});return V(e)?e:(this.richTextStyles[i]=e.style,e.content)},Dg.prototype.wrapRichTextStyle=function(t,e){var n={},e=(F(e)?O(e,function(t){return L(n,t)}):L(n,e),this._generateStyleName());return this.richTextStyles[e]=n,"{"+e+"|"+t+"}"};var kg=Dg;function Dg(){this.richTextStyles={},this._nextStyleNameId=go()}function Ag(t){var e,n,i,r,o,a,s,l,u,h,c,p=t.series,d=t.dataIndex,t=t.multipleSeries,f=p.getData(),g=f.mapDimensionsAll("defaultedTooltip"),y=g.length,m=p.getRawValue(d),v=F(m),_=(_=d,Mp((w=p).getData().getItemVisual(_,"style")[w.visualDrawType]));function x(t,e){e=s.getDimensionInfo(e);e&&!1!==e.otherDims.tooltip&&(l?c.push(_g("nameValue",{markerType:"subItem",markerColor:a,name:e.displayName,value:t,valueType:e.type})):(u.push(t),h.push(e.type)))}1this.getShallow("animationThreshold")?!1:t)},c.prototype.restoreData=function(){this.dataTask.dirty()},c.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel;return ld.prototype.getColorFromPalette.call(this,t,e,n)||i.getColorFromPalette(t,e,n)},c.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},c.prototype.getProgressive=function(){return this.get("progressive")},c.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},c.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},c.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n){var i=this.option.selectedMode,r=this.getData(e);if("series"===i||"all"===n)this.option.selectedMap={},this._selectedDataIndicesMap={};else for(var o=0;oe.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Fg(e,n){O(Nt(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(t){e.wrapMethod(t,pt(Vg,n))})}function Vg(t,e){t=Hg(t);return t&&t.setOutputEnd((e||this).count()),e}function Hg(t){var e,n=(t.ecModel||{}).scheduler,n=n&&n.getPipeline(t.uid);if(n)return(n=n.currentTask)&&(e=n.agentStubMap)?e.get(t.uid):n}at(Rg,Dc),at(Rg,ld),Uo(Rg,g);Wg.prototype.init=function(t,e){},Wg.prototype.render=function(t,e,n,i){},Wg.prototype.dispose=function(t,e){},Wg.prototype.updateView=function(t,e,n,i){},Wg.prototype.updateLayout=function(t,e,n,i){},Wg.prototype.updateVisual=function(t,e,n,i){},Wg.prototype.toggleBlurSeries=function(t,e,n){},Wg.prototype.eachRendered=function(t){var e=this.group;e&&e.traverse(t)};var Gg=Wg;function Wg(){this.group=new Hr,this.uid=Nc("viewComponent")}function Ug(){var o=Po();return function(t){var e=o(t),t=t.pipelineContext,n=!!e.large,i=!!e.progressiveRender,r=e.large=!(!t||!t.large),e=e.progressiveRender=!(!t||!t.progressiveRender);return!(n==r&&i==e)&&"reset"}}Wo(Gg),Zo(Gg);var Xg=Po(),Yg=Ug(),qg=(Zg.prototype.init=function(t,e){},Zg.prototype.render=function(t,e,n,i){},Zg.prototype.highlight=function(t,e,n,i){t=t.getData(i&&i.dataType);t&&Kg(t,i,"emphasis")},Zg.prototype.downplay=function(t,e,n,i){t=t.getData(i&&i.dataType);t&&Kg(t,i,"normal")},Zg.prototype.remove=function(t,e){this.group.removeAll()},Zg.prototype.dispose=function(t,e){},Zg.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},Zg.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},Zg.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},Zg.prototype.eachRendered=function(t){rc(this.group,t)},Zg.markUpdateMethod=function(t,e){Xg(t).updateMethod=e},Zg.protoInitialize=void(Zg.prototype.type="chart"),Zg);function Zg(){this.group=new Hr,this.uid=Nc("viewChart"),this.renderTask=bf({plan:$g,reset:Qg}),this.renderTask.context={view:this}}function jg(t,e,n){t&&Vl(t)&&("emphasis"===e?Sl:Ml)(t,n)}function Kg(e,t,n){var i,r=Ao(e,t),o=t&&null!=t.highlightKey?(t=t.highlightKey,i=null==(i=Zs[t])&&qs<=32?Zs[t]=qs++:i):null;null!=r?O(_o(r),function(t){jg(e.getItemGraphicEl(t),n,o)}):e.eachItemGraphicEl(function(t){jg(t,n,o)})}function $g(t){return Yg(t.model)}function Qg(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,t=t.view,a=r&&Xg(r).updateMethod,o=o?"incrementalPrepareRender":a&&t[a]?a:"render";return"render"!==o&&t[o](e,n,i,r),Jg[o]}Wo(qg),Zo(qg);var Jg={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},ty="\0__throttleOriginMethod",ey="\0__throttleRate",ny="\0__throttleType";function iy(t,r,o){var a,s,l,u,h,c=0,p=0,d=null;function f(){p=(new Date).getTime(),d=null,t.apply(l,u||[])}r=r||0;function e(){for(var t=[],e=0;en.blockIndex?n.step:null,modBy:null!=(t=i&&i.modDataCount)?Math.ceil(t/e):null,modDataCount:t}},fy.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},fy.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),e=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,r=t.get("large")&&i>=t.get("largeThreshold"),i="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:e,modDataCount:i,large:r}},fy.prototype.restorePipelines=function(t){var i=this,r=i._pipelineMap=E();t.eachSeries(function(t){var e=t.getProgressive(),n=t.uid;r.set(n,{id:n,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:e&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(e||700),count:0}),i._pipe(t,t.dataTask)})},fy.prototype.prepareStageTasks=function(){var n=this._stageTaskMap,i=this.api.getModel(),r=this.api;O(this._allHandlers,function(t){var e=n.get(t.uid)||n.set(t.uid,{});Tt(!(t.reset&&t.overallReset),""),t.reset&&this._createSeriesStageTask(t,e,i,r),t.overallReset&&this._createOverallStageTask(t,e,i,r)},this)},fy.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},fy.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},fy.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},fy.prototype._performStageTasks=function(t,s,l,u){u=u||{};var h=!1,c=this;function p(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}O(t,function(i,t){var e,n,r,o,a;u.visualType&&u.visualType!==i.visualType||(e=(n=c._stageTaskMap.get(i.uid)).seriesTaskMap,(n=n.overallTask)?((o=n.agentStubMap).each(function(t){p(u,t)&&(t.dirty(),r=!0)}),r&&n.dirty(),c.updatePayload(n,l),a=c.getPerformArgs(n,u.block),o.each(function(t){t.perform(a)}),n.perform(a)&&(h=!0)):e&&e.each(function(t,e){p(u,t)&&t.dirty();var n=c.getPerformArgs(t,u.block);n.skip=!i.performRawSeries&&s.isSeriesFiltered(t.context.model),c.updatePayload(t,l),t.perform(n)&&(h=!0)}))}),this.unfinished=h||this.unfinished},fy.prototype.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e=t.dataTask.perform()||e}),this.unfinished=e||this.unfinished},fy.prototype.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}}while(e=e.getUpstream())})},fy.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},fy.prototype._createSeriesStageTask=function(n,t,i,r){var o=this,a=t.seriesTaskMap,s=t.seriesTaskMap=E(),t=n.seriesType,e=n.getTargetSeries;function l(t){var e=t.uid,e=s.set(e,a&&a.get(e)||bf({plan:_y,reset:xy,count:Sy}));e.context={model:t,ecModel:i,api:r,useClearVisual:n.isVisual&&!n.isLayout,plan:n.plan,reset:n.reset,scheduler:o},o._pipe(t,e)}n.createOnAllSeries?i.eachRawSeries(l):t?i.eachRawSeriesByType(t,l):e&&e(i,r).each(l)},fy.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||bf({reset:gy}),a=(o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r},o.agentStubMap),s=o.agentStubMap=E(),e=t.seriesType,l=t.getTargetSeries,u=!0,h=!1;function c(t){var e=t.uid,e=s.set(e,a&&a.get(e)||(h=!0,bf({reset:yy,onDirty:vy})));e.context={model:t,overallProgress:u},e.agent=o,e.__block=u,r._pipe(t,e)}Tt(!t.createOnAllSeries,""),e?n.eachRawSeriesByType(e,c):l?l(n,i).each(c):(u=!1,O(n.getSeries(),c)),h&&o.dirty()},fy.prototype._pipe=function(t,e){t=t.uid,t=this._pipelineMap.get(t);t.head||(t.head=e),t.tail&&t.tail.pipe(e),(t.tail=e).__idxInPipeline=t.count++,e.__pipeline=t},fy.wrapStageHandler=function(t,e){return(t=k(t)?{overallReset:t,seriesType:function(t){My=null;try{t(Ty,Cy)}catch(t){}return My}(t)}:t).uid=Nc("stageHandler"),e&&(t.visualType=e),t};var dy=fy;function fy(t,e,n,i){this._stageTaskMap=E(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}function gy(t){t.overallReset(t.ecModel,t.api,t.payload)}function yy(t){return t.overallProgress&&my}function my(){this.agent.dirty(),this.getDownstream().dirty()}function vy(){this.agent&&this.agent.dirty()}function _y(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function xy(t){t.useClearVisual&&t.data.clearAllVisual();t=t.resetDefines=_o(t.reset(t.model,t.ecModel,t.api,t.payload));return 1'+t.dom+""}),f.painter.getSvgRoot().innerHTML=g,i.connectedBackgroundColor&&f.painter.setBackgroundColor(i.connectedBackgroundColor),f.refreshImmediately(),f.painter.toDataURL()):(i.connectedBackgroundColor&&f.add(new As({shape:{x:0,y:0,width:t,height:n},style:{fill:i.connectedBackgroundColor}})),O(p,function(t){t=new ws({style:{x:t.left*e-l,y:t.top*e-u,image:t.dom}});f.add(t)}),f.refreshImmediately(),d.toDataURL("image/"+(i&&i.type||"png")))):this.getDataURL(i);this.id},p.prototype.convertToPixel=function(t,e){return Wm(this,"convertToPixel",t,e)},p.prototype.convertFromPixel=function(t,e){return Wm(this,"convertFromPixel",t,e)},p.prototype.containPixel=function(t,i){var r;if(!this._disposed)return O(Oo(this._model,t),function(t,n){0<=n.indexOf("Models")&&O(t,function(t){var e=t.coordinateSystem;e&&e.containPoint?r=r||!!e.containPoint(i):"seriesModels"===n&&(e=this._chartsMap[t.__viewId])&&e.containPoint&&(r=r||e.containPoint(i,t))},this)},this),!!r;this.id},p.prototype.getVisual=function(t,e){var t=Oo(this._model,t,{defaultMainType:"series"}),n=t.seriesModel.getData(),t=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?n.indexOfRawIndex(t.dataIndex):null;if(null!=t){var i=n,r=t,o=e;switch(o){case"color":return i.getItemVisual(r,"style")[i.getVisual("drawType")];case"opacity":return i.getItemVisual(r,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return i.getItemVisual(r,o)}}else{var a=n,s=e;switch(s){case"color":return a.getVisual("style")[a.getVisual("drawType")];case"opacity":return a.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return a.getVisual(s)}}},p.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},p.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},p.prototype._initEvents=function(){var t,n,i,s=this;O(h0,function(a){function t(t){var n,e,i,r=s.getModel(),o=t.target;"globalout"===a?n={}:o&&Ny(o,function(t){var e,t=D(t);return t&&null!=t.dataIndex?(e=t.dataModel||r.getSeriesByIndex(t.seriesIndex),n=e&&e.getDataParams(t.dataIndex,t.dataType,o)||{},1):t.eventData&&(n=L({},t.eventData),1)},!0),n&&(e=n.componentType,i=n.componentIndex,"markLine"!==e&&"markPoint"!==e&&"markArea"!==e||(e="series",i=n.seriesIndex),i=(e=e&&null!=i&&r.getComponent(e,i))&&s["series"===e.mainType?"_chartsMap":"_componentsMap"][e.__viewId],n.event=t,n.type=a,s._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:e,view:i},s.trigger(a,n))}t.zrEventfulCallAtLast=!0,s._zr.on(a,t,s)}),O(p0,function(t,e){s._messageCenter.on(e,function(t){this.trigger(e,t)},s)}),O(["selectchanged"],function(e){s._messageCenter.on(e,function(t){this.trigger(e,t)},s)}),t=this._messageCenter,i=(n=this)._api,t.on("selectchanged",function(t){var e=i.getModel();t.isFromClick?(Ry("map","selectchanged",n,e,t),Ry("pie","selectchanged",n,e,t)):"select"===t.fromAction?(Ry("map","selected",n,e,t),Ry("pie","selected",n,e,t)):"unselect"===t.fromAction&&(Ry("map","unselected",n,e,t),Ry("pie","unselected",n,e,t))})},p.prototype.isDisposed=function(){return this._disposed},p.prototype.clear=function(){this._disposed?this.id:this.setOption({series:[]},!0)},p.prototype.dispose=function(){var t,e,n;this._disposed?this.id:(this._disposed=!0,this.getDom()&&zo(this.getDom(),b0,""),e=(t=this)._api,n=t._model,O(t._componentsViews,function(t){t.dispose(n,e)}),O(t._chartsViews,function(t){t.dispose(n,e)}),t._zr.dispose(),t._dom=t._model=t._chartsMap=t._componentsMap=t._chartsViews=t._componentsViews=t._scheduler=t._api=t._zr=t._throttledZrFlush=t._theme=t._coordSysMgr=t._messageCenter=null,delete v0[t.id])},p.prototype.resize=function(t){if(!this[km])if(this._disposed)this.id;else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var e=e.resetOption("media"),n=t&&t.silent;this[Dm]&&(null==n&&(n=this[Dm].silent),e=!0,this[Dm]=null),this[km]=!0;try{e&&Fm(this),Gm.update.call(this,{type:"resize",animation:L({duration:0},t&&t.animation)})}catch(t){throw this[km]=!1,t}this[km]=!1,Ym.call(this,n),qm.call(this,n)}}},p.prototype.showLoading=function(t,e){this._disposed?this.id:(R(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),m0[t]&&(t=m0[t](this._api,e),e=this._zr,this._loadingFX=t,e.add(t)))},p.prototype.hideLoading=function(){this._disposed?this.id:(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},p.prototype.makeActionFromEvent=function(t){var e=L({},t);return e.type=p0[t.type],e},p.prototype.dispatchAction=function(t,e){var n;this._disposed?this.id:(R(e)||(e={silent:!!e}),c0[t.type]&&this._model&&(this[km]?this._pendingActions.push(t):(n=e.silent,Xm.call(this,t,n),(t=e.flush)?this._zr.flush():!1!==t&&b.browser.weChat&&this._throttledZrFlush(),Ym.call(this,n),qm.call(this,n))))},p.prototype.updateLabelLayout=function(){Cm.trigger("series:layoutlabels",this._model,this._api,{updatedSeries:[]})},p.prototype.appendData=function(t){var e;this._disposed?this.id:(e=t.seriesIndex,this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp())},p.internalField=(Fm=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Vm(t,!0),Vm(t,!1),e.plan()},Vm=function(t,r){for(var o=t._model,a=t._scheduler,s=r?t._componentsViews:t._chartsViews,l=r?t._componentsMap:t._chartsMap,u=t._zr,h=t._api,e=0;es.get("hoverLayerThreshold")&&!b.node&&!b.worker&&s.eachSeries(function(t){t.preventUsingHoverLayer||(t=i._chartsMap[t.__viewId]).__alive&&t.eachRendered(function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)})}),Cm.trigger("series:afterupdate",t,e,n)},e0=function(t){t[Am]=!0,t.getZr().wakeUp()},n0=function(t){t[Am]&&(t.getZr().storage.traverse(function(t){Ah(t)||a0(t)}),t[Am]=!1)},Jm=function(n){return u(t,e=md),t.prototype.getCoordinateSystems=function(){return n._coordSysMgr.getCoordinateSystems()},t.prototype.getComponentByElement=function(t){for(;t;){var e=t.__ecComponentInfo;if(null!=e)return n._model.getComponent(e.mainType,e.index);t=t.parent}},t.prototype.enterEmphasis=function(t,e){Sl(t,e),e0(n)},t.prototype.leaveEmphasis=function(t,e){Ml(t,e),e0(n)},t.prototype.enterBlur=function(t){yl(t,cl),e0(n)},t.prototype.leaveBlur=function(t){Tl(t),e0(n)},t.prototype.enterSelect=function(t){Cl(t),e0(n)},t.prototype.leaveSelect=function(t){Il(t),e0(n)},t.prototype.getModel=function(){return n.getModel()},t.prototype.getViewOfComponentModel=function(t){return n.getViewOfComponentModel(t)},t.prototype.getViewOfSeriesModel=function(t){return n.getViewOfSeriesModel(t)},new t(n);function t(){return null!==e&&e.apply(this,arguments)||this}var e},void(t0=function(i){function r(t,e){for(var n=0;ne[1]&&(e[1]=t[1])},Mv.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Mv.prototype.getExtent=function(){return this._extent.slice()},Mv.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},Mv.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},Mv.prototype.isBlank=function(){return this._isBlank},Mv.prototype.setBlank=function(t){this._isBlank=t};var Sv=Mv;function Mv(t){this._setting=t||{},this._extent=[1/0,-1/0]}Zo(Sv);var Tv=0,Cv=(Iv.createByAxisModel=function(t){var t=t.option,e=t.data,e=e&&B(e,kv);return new Iv({categories:e,needCollect:!e,deduplication:!1!==t.dedplication})},Iv.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},Iv.prototype.parseAndCollect=function(t){var e,n,i=this._needCollect;return V(t)||i?(i&&!this._deduplication?(n=this.categories.length,this.categories[n]=t):null==(n=(e=this._getOrCreateMap()).get(t))&&(i?(n=this.categories.length,this.categories[n]=t,e.set(t,n)):n=NaN),n):t},Iv.prototype._getOrCreateMap=function(){return this._map||(this._map=E(this.categories))},Iv);function Iv(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++Tv}function kv(t){return R(t)&&null!=t.value?t.value:t+""}function Dv(t){return"interval"===t.type||"log"===t.type}function Av(t,e,n,i){var r={},o=t[1]-t[0],o=r.interval=co(o/e,!0),e=(null!=n&&oi[1]&&(i[0]=i[1]),r}function Pv(t){var e=Math.pow(10,ho(t)),t=t/e;return t?2===t?t=3:3===t?t=5:t*=2:t=1,eo(t*e)}function Lv(t){return no(t)+2}function Ov(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Rv(t,e){return t>=e[0]&&t<=e[1]}function Nv(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Ev(t,e){return t*(e[1]-e[0])+e[0]}u(Fv,zv=Sv),Fv.prototype.parse=function(t){return null==t?NaN:V(t)?this._ordinalMeta.getOrdinal(t):Math.round(t)},Fv.prototype.contain=function(t){return Rv(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},Fv.prototype.normalize=function(t){return Nv(t=this._getTickNumber(this.parse(t)),this._extent)},Fv.prototype.scale=function(t){return t=Math.round(Ev(t,this._extent)),this.getRawOrdinalNumber(t)},Fv.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},Fv.prototype.getMinorTicks=function(t){},Fv.prototype.setSortInfo=function(t){if(null==t)this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;else{for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r=t},Fv.prototype.getOrdinalMeta=function(){return this._ordinalMeta},Fv.prototype.calcNiceTicks=function(){},Fv.prototype.calcNiceExtent=function(){},Fv.type="ordinal";var zv,Bv=Fv;function Fv(t){var t=zv.call(this,t)||this,e=(t.type="ordinal",t.getSetting("ordinalMeta"));return F(e=e||new Cv({}))&&(e=new Cv({categories:B(e,function(t){return R(t)?t.value:t})})),t._ordinalMeta=e,t._extent=t.getSetting("extent")||[0,e.categories.length-1],t}Sv.registerClass(Bv);var Vv,Hv=eo,Gv=(u(Wv,Vv=Sv),Wv.prototype.parse=function(t){return t},Wv.prototype.contain=function(t){return Rv(t,this._extent)},Wv.prototype.normalize=function(t){return Nv(t,this._extent)},Wv.prototype.scale=function(t){return Ev(t,this._extent)},Wv.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},Wv.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},Wv.prototype.getInterval=function(){return this._interval},Wv.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Lv(t)},Wv.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(e){n[0]s&&o.push(t?{value:Hv(s+e,r)}:{value:n[1]})}return o},Wv.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;ri[0]&&h=M[0]&&d<=M[1]&&a++)}u=(M[1]-M[0])/b;if(1.5*u=M[0]&&t.value<=M[1]&&!t.notAdd})}),function(t){return 0n&&(this._approxInterval=n),t_.length),t=Math.min(function(t,e,n,i){for(;n>>1;t[r][1]>1^-(1&s),l=(l=t.charCodeAt(a+1)-64)>>1^-(1&l);i.push([(r=s+=r)/n,(o=l+=o)/n])}return i}function q_(t,o){var e,n,r;return B(ut((t=(e=t).UTF8Encoding?(null==(r=(n=e).UTF8Scale)&&(r=1024),O(n.features,function(t){var e=t.geometry,n=e.encodeOffsets,i=e.coordinates;if(n)switch(e.type){case"LineString":e.coordinates=Y_(i,n,r);break;case"Polygon":case"MultiLineString":X_(i,n,r);break;case"MultiPolygon":O(i,function(t,e){return X_(t,n[e],r)})}}),n.UTF8Encoding=!1,n):e).features,function(t){return t.geometry&&t.properties&&0l&&(l=s[h],u=h);++o[u],s[u]=0,++a}return B(o,function(t){return t/i})}(t,n)[e]||0},getPixelPrecision:ro,getPrecision:no,getPrecisionSafe:io,isNumeric:fo,isRadianAroundZero:ao,linearMap:Jr,nice:co,numericToNumber:po,parseDate:lo,quantile:function(t,e){var e=(t.length-1)*e+1,n=Math.floor(e),i=+t[n-1];return(e=e-n)?i+e*(t[n]-i):i},quantity:uo,quantityExponent:ho,reformIntervals:function(t){t.sort(function(t,e){return function t(e,n,i){return e.interval[i]=e[0]&&t<=e[1]}),function(t){var e={value:t};return{formattedLabel:i(e),rawLabel:n.scale.getLabel(e),tickValue:t}})}):"category"===n.type?(t=(s=n).getLabelModel(),a=Q_(s,t),!t.get("show")||s.scale.isBlank()?{labels:[],labelCategoryInterval:a.labelCategoryInterval}:a):(t=(r=n).scale.getTicks(),o=w_(r),{labels:B(t,function(t,e){return{level:t.level,formattedLabel:o(t,e),rawLabel:r.scale.getLabel(t),tickValue:t.value}})})}function $_(t,e){var n,i,r,o,a,s,l=t.getTickModel().get("customValues");return l?(n=t.scale.getExtent(),{ticks:ut(j_(t,l),function(t){return t>=n[0]&&t<=n[1]})}):"category"===t.type?(l=e,o=J_(e=t,"ticks"),a=M_(l),(s=t1(o,a))||(l.get("show")&&!e.scale.isBlank()||(i=[]),i=k(a)?i1(e,a,!0):"auto"===a?(s=Q_(e,e.getLabelModel()),r=s.labelCategoryInterval,B(s.labels,function(t){return t.tickValue})):n1(e,r=a,!0),e1(o,a,{ticks:i,tickCategoryInterval:r}))):{ticks:B(t.scale.getTicks(),function(t){return t.value})}}function Q_(t,e){var n,i=J_(t,"labels"),e=M_(e),r=t1(i,e);return r||e1(i,e,{labels:k(e)?i1(t,e):n1(t,n="auto"===e?null!=(i=Z_(r=t).autoInterval)?i:Z_(r).autoInterval=r.calculateCategoryInterval():e),labelCategoryInterval:n})}function J_(t,e){return Z_(t)[e]||(Z_(t)[e]=[])}function t1(t,e){for(var n=0;nl[1],h(n[0].coord,l[0])&&(t?n[0].coord=l[0]:n.shift()),t&&h(l[0],n[0].coord)&&n.unshift({coord:l[0]}),h(l[1],i.coord)&&(t?i.coord=l[1]:n.pop()),t)&&h(i.coord,l[1])&&n.push({coord:l[1]}),u},o1.prototype.getMinorTicksCoords=function(){var t;return"ordinal"===this.scale.type?[]:(t=this.model.getModel("minorTick").get("splitNumber"),B(this.scale.getMinorTicks(t=0=u}}for(var o,a=this.__startIndex;ar[0]){for(l=0;lt);l++);s=i[r[l]]}r.splice(l+1,0,t),(i[t]=e).virtual||(s?(n=s.dom).nextSibling?a.insertBefore(e.dom,n.nextSibling):a.appendChild(e.dom):a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom)),e.painter||(e.painter=this)}},v.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;ie[u-1].coord&&(e.reverse(),h.reverse()),function(t,e){var n,i,r=[],o=t.length;function a(t,e,n){var i=t.coord;return{coord:n,color:xi((n-i)/(e.coord-i),[t.color,e.color])}}for(var s=0;si)return;return 1}(a,e))return r=e.mapDimension(a.dim),o={},O(a.getViewLabels(),function(t){t=a.scale.getRawOrdinalNumber(t.tickValue);o[t]=1}),function(t){return!o.hasOwnProperty(e.get(r,t))}}}function Rx(t){for(var e,n,i=t.length/2;0e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;ne[1]&&e.reverse(),e},sw.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},sw.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)};var ow,aw=sw;function sw(t,e,n,i,r){t=ow.call(this,t,e,n)||this;return t.index=0,t.type=i||"value",t.position=r||"bottom",t}function lw(t,e,n){n=n||{};var t=t.coordinateSystem,i=e.axis,r={},o=i.getAxesOnZeroOf()[0],a=i.position,s=o?"onZero":a,i=i.dim,t=t.getRect(),t=[t.x,t.x+t.width,t.y,t.y+t.height],l={left:0,right:1,top:0,bottom:1,onZero:2},u=e.get("offset")||0,u="x"===i?[t[2]-u,t[3]+u]:[t[0]-u,t[1]+u],h=(o&&(h=o.toGlobalCoord(o.dataToCoord(0)),u[l.onZero]=Math.max(Math.min(h,u[1]),u[0])),r.position=["y"===i?u[l[s]]:t[0],"x"===i?u[l[s]]:t[3]],r.rotation=Math.PI/2*("x"===i?0:1),r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,left:-1,right:1}[a],r.labelOffset=o?u[l[a]]-u[l.onZero]:0,e.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),wt(n.labelInside,e.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection),e.get(["axisLabel","rotate"]));return r.labelRotate="top"===s?-h:h,r.z2=1,r}function uw(t){return"cartesian2d"===t.get("coordinateSystem")}function hw(i){var r={xAxisModel:null,yAxisModel:null};return O(r,function(t,e){var n=e.replace(/Model$/,""),n=i.getReferringComponents(n,No).models[0];r[e]=n}),r}var cw=Math.log;dw.prototype.getRect=function(){return this._rect},dw.prototype.update=function(t,e){var n=this._axesMap;function i(t){var d,e=ht(t),n=e.length;if(n){for(var i=[],r=n-1;0<=r;r--){var o=t[+e[r]],a=o.model,s=o.scale;Dv(s)&&a.get("alignTicks")&&null==a.get("interval")?i.push(o):(__(s,a),Dv(s)&&(d=o))}i.length&&(d||__((d=i.pop()).scale,d.model),O(i,function(t){var e=t.scale,t=t.model,n=d.scale,i=Gv.prototype,r=i.getTicks.call(n),o=i.getTicks.call(n,!0),a=r.length-1,n=i.getInterval.call(n),s=(t=v_(e,t)).extent,l=t.fixMin,t=t.fixMax,u=("log"===e.type&&(u=cw(e.base),s=[cw(s[0])/u,cw(s[1])/u]),e.setExtent(s[0],s[1]),e.calcNiceExtent({splitNumber:a,fixMin:l,fixMax:t}),i.getExtent.call(e)),h=(l&&(s[0]=u[0]),t&&(s[1]=u[1]),i.getInterval.call(e)),c=s[0],p=s[1];if(l&&t)h=(p-c)/a;else if(l)for(p=s[0]+h*a;ps[0]&&isFinite(c)&&isFinite(s[0]);)h=Pv(h),c=s[1]-h*a;else{u=(h=ah[1]?-1:1,o=["start"===c?h[0]-o*u:"end"===c?h[1]+o*u:(h[0]+h[1])/2,Sw(c)?t.labelOffset+l*u:0],null!=(u=e.get("nameRotate"))&&(u=u*mw/180),Sw(c)?a=vw.innerTextLayout(t.rotation,null!=u?u:t.rotation,l):(a=function(t,e,n,i){var r,n=oo(n-t),t=i[0]>i[1],i="start"===e&&!t||"start"!==e&&t;e=ao(n-mw/2)?(r=i?"bottom":"top","center"):ao(n-1.5*mw)?(r=i?"top":"bottom","center"):(r="middle",n<1.5*mw&&mw/2u[1]&&u.reverse(),(s=null==s||s>u[1]?u[1]:s)n[r],f=[-c.x,-c.y],e=(e||(f[i]=l[s]),[0,0]),s=[-p.x,-p.y],g=N(t.get("pageButtonGap",!0),t.get("itemGap",!0)),f=(d&&("end"===t.get("pageButtonPosition",!0)?s[i]+=n[r]-p[r]:e[i]+=p[r]+g),s[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(e),h.setPosition(s),{x:0,y:0}),c=(f[r]=(d?n:c)[r],f[o]=Math.max(c[o],p[o]),f[a]=Math.min(0,p[a]+s[1-i]),u.__rectSize=n[r],d?((e={x:0,y:0})[r]=Math.max(n[r]-p[r]-g,0),e[o]=f[o],u.setClipPath(new As({shape:e})),u.__rectSize=e[r]):h.eachChild(function(t){t.attr({invisible:!0,silent:!0})}),this._getPageInfo(t));return null!=c.pageIndex&&kh(l,{x:c.contentPosition[0],y:c.contentPosition[1]},d?t:null),this._updatePageInfoView(t,c),f},kb.prototype._pageGo=function(t,e,n){t=this._getPageInfo(e)[t];null!=t&&n.dispatchAction({type:"legendScroll",scrollDataIndex:t,legendId:e.id})},kb.prototype._updatePageInfoView=function(n,i){var r=this._controllerGroup,t=(O(["pagePrev","pageNext"],function(t){var e=null!=i[t+"DataIndex"],t=r.childOfName(t);t&&(t.setStyle("fill",e?n.get("pageIconColor",!0):n.get("pageIconInactiveColor",!0)),t.cursor=e?"pointer":"default")}),r.childOfName("pageText")),e=n.get("pageFormatter"),o=i.pageIndex,o=null!=o?o+1:0,a=i.pageCount;t&&e&&t.setStyle("text",V(e)?e.replace("{current}",null==o?"":o+"").replace("{total}",null==a?"":a+""):e({current:o,total:a}))},kb.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,t=t.getOrient().index,r=Tb[t],o=Cb[t],e=this._findTargetItemIndex(e),a=n.children(),s=a[e],l=a.length,u=l?1:0,h={contentPosition:[n.x,n.y],pageCount:u,pageIndex:u-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(s){n=g(s);h.contentPosition[t]=-n.s;for(var c=e+1,p=n,d=n,f=null;c<=l;++c)(!(f=g(a[c]))&&d.e>p.s+i||f&&!y(f,p.s))&&(p=d.i>p.i?d:f)&&(null==h.pageNextDataIndex&&(h.pageNextDataIndex=p.i),++h.pageCount),d=f;for(c=e-1,p=n,d=n,f=null;-1<=c;--c)(f=g(a[c]))&&y(d,f.s)||!(p.i=e&&t.s<=e+i}},kb.prototype._findTargetItemIndex=function(n){var i,r;return this._showController?(this.getContentGroup().eachChild(function(t,e){t=t.__legendDataIndex;null==r&&null!=t&&(r=e),t===n&&(i=e)}),null!=i?i:r):0},kb.type="legend.scroll",kb);function kb(){var t=null!==Sb&&Sb.apply(this,arguments)||this;return t.type=kb.type,t.newlineDisabled=!0,t._currentIndex=0,t}A_(function(t){A_(vb),t.registerComponentModel(xb),t.registerComponentView(Ib),t.registerAction("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})})});var Db=Po(),Ab=y,Pb=ct;function Lb(){this._dragging=!1,this.animationThreshold=15}function Ob(t,e,n,i){!function n(i,t){{var r;return R(i)&&R(t)?(r=!0,O(t,function(t,e){r=r&&n(i[e],t)}),!!r):i===t}}(Db(n).lastProp,i)&&(Db(n).lastProp=i,e?kh(n,i,t):(n.stopAnimation(),n.attr(i)))}function Rb(t,e){t[e.get(["label","show"])?"show":"hide"]()}function Nb(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function Eb(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)})}function zb(t,e,n,i,r){var o=Bb(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),n=n.getModel("label"),a=vp(n.get("padding")||0),s=n.getFont(),l=Sr(o,s),u=r.position,h=l.width+a[1]+a[3],l=l.height+a[0]+a[2],c=r.align,c=("right"===c&&(u[0]-=h),"center"===c&&(u[0]-=h/2),r.verticalAlign),i=("bottom"===c&&(u[1]-=l),"middle"===c&&(u[1]-=l/2),r=u,c=h,h=l,i=(l=i).getWidth(),l=l.getHeight(),r[0]=Math.min(r[0]+c,i)-c,r[1]=Math.min(r[1]+h,l)-h,r[0]=Math.max(r[0],0),r[1]=Math.max(r[1],0),n.get("backgroundColor"));i&&"auto"!==i||(i=e.get(["axisLine","lineStyle","color"])),t.label={x:u[0],y:u[1],style:cc(n,{text:o,font:s,fill:n.getTextColor(),padding:a,backgroundColor:i}),z2:10}}function Bb(t,e,n,i,r){t=e.scale.parse(t);var o,a=e.scale.getLabel({value:t},{precision:r.precision}),r=r.formatter;return r&&(o={value:b_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]},O(i,function(t){var e=n.getSeriesByIndex(t.seriesIndex),t=t.dataIndexInside,e=e&&e.getDataParams(t);e&&o.seriesData.push(e)}),V(r)?a=r.replace("{value}",a):k(r)&&(a=r(o))),a}function Fb(t,e,n){var i=Le();return ze(i,i,n.rotation),Ee(i,i,n.position),jh([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}Lb.prototype.render=function(t,e,n,i){var r,o,a=e.get("value"),s=e.get("status");this._axisModel=t,this._axisPointerModel=e,this._api=n,!i&&this._lastValue===a&&this._lastStatus===s||(this._lastValue=a,this._lastStatus=s,i=this._group,r=this._handle,s&&"hide"!==s?(i&&i.show(),r&&r.show(),this.makeElOption(s={},a,t,e,n),(o=s.graphicKey)!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=o,o=this._moveAnimation=this.determineAnimation(t,e),i?(o=pt(Ob,e,o),this.updatePointerEl(i,s,o),this.updateLabelEl(i,s,o,e)):(i=this._group=new Hr,this.createPointerEl(i,s,t,e),this.createLabelEl(i,s,t,e),n.getZr().add(i)),Eb(i,e,!0),this._renderHandle(a)):(i&&i.hide(),r&&r.hide()))},Lb.prototype.remove=function(t){this.clear(t)},Lb.prototype.dispose=function(t){this.clear(t)},Lb.prototype.determineAnimation=function(t,e){var n,i=e.get("animation"),r=t.axis,o="category"===r.type,e=e.get("snap");return!(!e&&!o)&&("auto"===i||null==i?(n=this.animationThreshold,o&&r.getBandWidth()>n||!!e&&(o=Iw(t).seriesDataCount,e=r.getExtent(),Math.abs(e[0]-e[1])/o>n)):!0===i)},Lb.prototype.makeElOption=function(t,e,n,i,r){},Lb.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;r&&(r=Db(t).pointerEl=new oc[r.type](Ab(e.pointer)),t.add(r))},Lb.prototype.createLabelEl=function(t,e,n,i){e.label&&(e=Db(t).labelEl=new Ns(Ab(e.label)),t.add(e),Rb(e,i))},Lb.prototype.updatePointerEl=function(t,e,n){t=Db(t).pointerEl;t&&e.pointer&&(t.setStyle(e.pointer.style),n(t,{shape:e.pointer.shape}))},Lb.prototype.updateLabelEl=function(t,e,n,i){t=Db(t).labelEl;t&&(t.setStyle(e.label.style),n(t,{x:e.label.x,y:e.label.y}),Rb(t,i))},Lb.prototype._renderHandle=function(t){var e,n,i,r,o,a;!this._dragging&&this.updateHandleTransform&&(e=this._axisPointerModel,n=this._api.getZr(),i=this._handle,r=e.getModel("handle"),a=e.get("status"),r.get("show")&&a&&"hide"!==a?(this._handle||(o=!0,i=this._handle=tc(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Ie(t.event)},onmousedown:Pb(this._onHandleDragMove,this,0,0),drift:Pb(this._onHandleDragMove,this),ondragend:Pb(this._onHandleDragEnd,this)}),n.add(i)),Eb(i,e,!1),i.setStyle(r.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"])),F(a=r.get("size"))||(a=[a,a]),i.scaleX=a[0]/2,i.scaleY=a[1]/2,ry(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,o)):(i&&n.remove(i),this._handle=null))},Lb.prototype._moveHandleToValue=function(t,e){Ob(this._axisPointerModel,!e&&this._moveAnimation,this._handle,Nb(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},Lb.prototype._onHandleDragMove=function(t,e){var n=this._handle;n&&(this._dragging=!0,t=this.updateHandleTransform(Nb(n),[t,e],this._axisModel,this._axisPointerModel),this._payloadInfo=t,n.stopAnimation(),n.attr(Nb(t)),Db(n).lastProp=null,this._doDispatchAxisPointer())},Lb.prototype._doDispatchAxisPointer=function(){var t,e;this._handle&&(t=this._payloadInfo,e=this._axisModel,this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]}))},Lb.prototype._onHandleDragEnd=function(){var t;this._dragging=!1,this._handle&&(t=this._axisPointerModel.get("value"),this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"}))},Lb.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var t=t.getZr(),e=this._group,n=this._handle;t&&e&&(this._lastGraphicKey=null,e&&t.remove(e),n&&t.remove(n),this._group=null,this._handle=null,this._payloadInfo=null),oy(this,"_doDispatchAxisPointer")},Lb.prototype.doClear=function(){},Lb.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}};u(Gb,Vb=Lb),Gb.prototype.makeElOption=function(t,e,n,i,r){var o,a,s=n.axis,l=s.grid,u=i.get("type"),h=Wb(l,s).getOtherAxis(s).getGlobalExtent(),c=s.toGlobalCoord(s.dataToCoord(e,!0)),p=(u&&"none"!==u&&(o=(a=i).get("type"),a=a.getModel(o+"Style"),"line"===o?(p=a.getLineStyle()).fill=null:"shadow"===o&&((p=a.getAreaStyle()).stroke=null),o=p,(a=Ub[u](s,c,h)).style=o,t.graphicKey=a.type,t.pointer=a),lw(l.model,n));u=e,s=t,c=p,h=n,o=i,a=r,l=vw.innerTextLayout(c.rotation,0,c.labelDirection),c.labelMargin=o.get(["label","margin"]),zb(s,h,o,a,{position:Fb(h.axis,u,c),align:l.textAlign,verticalAlign:l.textVerticalAlign})},Gb.prototype.getHandleTransform=function(t,e,n){var i=lw(e.axis.grid.model,e,{labelInside:!1}),n=(i.labelMargin=n.get(["handle","margin"]),Fb(e.axis,t,i));return{x:n[0],y:n[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},Gb.prototype.updateHandleTransform=function(t,e,n,i){var n=n.axis,r=n.grid,o=n.getGlobalExtent(!0),r=Wb(r,n).getOtherAxis(n).getGlobalExtent(),n="x"===n.dim?0:1,a=[t.x,t.y],e=(a[n]+=e[n],a[n]=Math.min(o[1],a[n]),a[n]=Math.max(o[0],a[n]),(r[1]+r[0])/2),o=[e,e];o[n]=a[n];return{x:a[0],y:a[1],rotation:t.rotation,cursorPoint:o,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][n]}};var Vb,Hb=Gb;function Gb(){return null!==Vb&&Vb.apply(this,arguments)||this}function Wb(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var Ub={line:function(t,e,n){var i;return i=[e,n[0]],e=[e,n[1]],n=Xb(t),{type:"Line",subPixelOptimize:!0,shape:{x1:i[n=n||0],y1:i[1-n],x2:e[n],y2:e[1-n]}}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:(e=[e-i/2,n[0]],n=[i,r],i=Xb(t),{x:e[i=i||0],y:e[1-i],width:n[i],height:n[1-i]})}}};function Xb(t){return"x"===t.dim?0:1}u(Zb,Yb=g),Zb.type="axisPointer",Zb.defaultOption={show:"auto",z:50,type:"line",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}};var Yb,qb=Zb;function Zb(){var t=null!==Yb&&Yb.apply(this,arguments)||this;return t.type=Zb.type,t}var jb=Po(),Kb=O;function $b(t,e,n){var i,c,p;function r(t,h){c.on(t,function(e){n=p;var n,i,r={dispatchAction:o,pendings:i={showTip:[],hideTip:[]}};function o(t){var e=i[t.type];e?e.push(t):(t.dispatchAction=o,n.dispatchAction(t))}Kb(jb(c).records,function(t){t&&h(t,e,r.dispatchAction)});var t,a=r.pendings,s=p,l=a.showTip.length,u=a.hideTip.length;l?t=a.showTip[l-1]:u&&(t=a.hideTip[u-1]),t&&(t.dispatchAction=null,s.dispatchAction(t))})}b.node||(i=e.getZr(),jb(i).records||(jb(i).records={}),p=e,jb(c=i).initialized||(jb(c).initialized=!0,r("click",pt(Jb,"click")),r("mousemove",pt(Jb,"mousemove")),r("globalout",Qb)),(jb(i).records[t]||(jb(i).records[t]={})).handler=n)}function Qb(t,e,n){t.handler("leave",null,n)}function Jb(t,e,n,i){e.handler(t,n,i)}function tS(t,e){b.node||(e=e.getZr(),(jb(e).records||{})[t]&&(jb(e).records[t]=null))}u(iS,eS=Gg),iS.prototype.render=function(t,e,n){var e=e.getComponent("tooltip"),i=t.get("triggerOn")||e&&e.get("triggerOn")||"mousemove|click";$b("axisPointer",n,function(t,e,n){"none"!==i&&("leave"===t||0<=i.indexOf(t))&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},iS.prototype.remove=function(t,e){tS("axisPointer",e)},iS.prototype.dispose=function(t,e){tS("axisPointer",e)},iS.type="axisPointer";var eS,nS=iS;function iS(){var t=null!==eS&&eS.apply(this,arguments)||this;return t.type=iS.type,t}function rS(t,e){var n,i,r,o,a=[],s=t.seriesIndex;return null==s||!(e=e.getSeriesByIndex(s))||null==(s=Ao(n=e.getData(),t))||s<0||F(s)?{point:[]}:(i=n.getItemGraphicEl(s),r=e.coordinateSystem,e.getTooltipPosition?a=e.getTooltipPosition(s)||[]:r&&r.dataToPoint?a=t.isStacked?(e=r.getBaseAxis(),t=r.getOtherAxis(e).dim,e=e.dim,t="x"===t||"radius"===t?1:0,e=n.mapDimension(e),(o=[])[t]=n.get(e,s),o[1-t]=n.get(n.getCalculationInfo("stackResultDimension"),s),r.dataToPoint(o)||[]):r.dataToPoint(n.getValues(B(r.dimensions,function(t){return n.mapDimension(t)}),s))||[]:i&&((e=i.getBoundingRect().clone()).applyTransform(i.transform),a=[e.x+e.width/2,e.y+e.height/2]),{point:a,el:i})}var oS=Po();function aS(t,e,n){var o,a,i,s,l,r,u,h,c,p,d,f,g,y,m=t.currTrigger,v=[t.x,t.y],_=t,x=t.dispatchAction||ct(n.dispatchAction,n),w=e.getComponent("axisPointer").coordSysAxesInfo;if(w)return cS(v)&&(v=rS({seriesIndex:_.seriesIndex,dataIndex:_.dataIndex},e).point),o=cS(v),a=_.axesInfo,i=w.axesInfo,s="leave"===m||cS(v),l={},e={list:[],map:{}},u={showPointer:pt(lS,r={}),showTooltip:pt(uS,e)},O(w.coordSysMap,function(t,e){var r=o||t.containPoint(v);O(w.coordSysAxesInfo[e],function(t,e){var n=t.axis,i=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(a,t);s||!r||a&&!i||null!=(i=null!=(i=i&&i.value)||o?i:n.pointToData(v))&&sS(t,i,u,!1,l)})}),h={},O(i,function(n,t){var i=n.linkGroup;i&&!r[t]&&O(i.axesInfo,function(t,e){var e=r[e];t!==n&&e&&(e=e.value,i.mapper&&(e=n.axis.scale.parse(i.mapper(e,hS(t),hS(n)))),h[n.key]=e)})}),O(h,function(t,e){sS(i[e],t,u,!0,l)}),c=r,_=i,p=l.axesInfo=[],O(_,function(t,e){var n=t.axisPointerModel.option,e=c[e];e?(t.useHandle||(n.status="show"),n.value=e.value,n.seriesDataIndices=(e.payloadBatch||[]).slice()):t.useHandle||(n.status="hide"),"show"===n.status&&p.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:n.value})}),m=e,_=t,e=x,cS(t=v)||!m.list.length?e({type:"hideTip"}):(x=((m.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{},e({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:_.tooltipOption,position:_.position,dataIndexInside:x.dataIndexInside,dataIndex:x.dataIndex,seriesIndex:x.seriesIndex,dataByCoordSys:m.list})),e=i,_=(t=n).getZr(),x="axisPointerLastHighlights",d=oS(_)[x]||{},f=oS(_)[x]={},O(e,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&t.triggerEmphasis&&O(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;f[e]=t})}),g=[],y=[],O(d,function(t,e){f[e]||y.push(t)}),O(f,function(t,e){d[e]||g.push(t)}),y.length&&t.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:y}),g.length&&t.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:g}),l}function sS(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f,g=t.axis;!g.scale.isBlank()&&g.containData(e)&&(t.involveSeries?(a=e,s=t.axis,l=s.dim,u=a,h=[],c=Number.MAX_VALUE,p=-1,O(t.seriesModels,function(e,t){var n,i=e.getData().mapDimensionsAll(l);if(e.getAxisTooltipData)var r=e.getAxisTooltipData(i,a,s),o=r.dataIndices,r=r.nestestValue;else{if(!(o=e.getData().indicesOfNearest(i[0],a,"category"===s.type?.5:null)).length)return;r=e.getData().get(i[0],o[0])}null!=r&&isFinite(r)&&(i=a-r,(n=Math.abs(i))<=c)&&((n'):""),V(t))o.innerHTML=t+c;else if(t){o.innerHTML="",F(t)||(t=[t]);for(var p,d=0;d"),o=f.join(e);this._showOrMove(i,function(){this._updateContentNotChangedOnAxis(t,p)?this._updatePosition(i,r,n[0],n[1],this._tooltipContent,p):this._showTooltipContent(i,o,p,Math.random()+"",n[0],n[1],r,null,g)})},ES.prototype._showSeriesItemTooltip=function(t,e,n){var i,r,o,a,s,l=this._ecModel,e=D(e),u=e.seriesIndex,h=l.getSeriesByIndex(u),c=e.dataModel||h,p=e.dataIndex,e=e.dataType,d=c.getData(e),f=this._renderMode,g=t.positionDefault,y=zS([d.getItemModel(p),c,h&&(h.coordinateSystem||{}).model],this._tooltipModel,g?{position:g}:null),h=y.get("trigger");null!=h&&"item"!==h||(i=c.getDataParams(p,e),r=new kg,i.marker=r.makeTooltipMarker("item",Mp(i.color),f),g=wf(c.formatTooltip(p,!1,e)),h=y.get("order"),e=y.get("valueFormatter"),o=g.frag,a=o?Mg(e?L({valueFormatter:e},o):o,r,f,h,l.get("useUTC"),y.get("textStyle")):g.text,s="item_"+c.name+"_"+p,this._showOrMove(y,function(){this._showTooltipContent(y,a,i,s,t.offsetX,t.offsetY,t.position,t.target,r)}),n({type:"showTip",dataIndexInside:p,dataIndex:d.getRawIndex(p),seriesIndex:u,from:this.uid}))},ES.prototype._showComponentItemTooltip=function(e,n,t){var i="html"===this._renderMode,r=D(n),o=r.tooltipConfig.option||{},a=o.encodeHTMLContent,a=(V(o)&&(o={content:o,formatter:o},a=!0),a&&i&&o.content&&((o=y(o)).content=_e(o.content)),[o]),i=this._ecModel.getComponent(r.componentMainType,r.componentIndex),r=(i&&a.push(i),a.push({formatter:o.content}),e.positionDefault),s=zS(a,this._tooltipModel,r?{position:r}:null),l=s.get("content"),u=Math.random()+"",h=new kg;this._showOrMove(s,function(){var t=y(s.get("formatterParams")||{});this._showTooltipContent(s,l,t,u,e.offsetX,e.offsetY,e.position,n,h)}),t({type:"showTip",from:this.uid})},ES.prototype._showTooltipContent=function(n,t,i,e,r,o,a,s,l){var u,h,c,p,d;this._ticket="",n.get("showContent")&&n.get("show")&&((u=this._tooltipContent).setEnterable(n.get("enterable")),h=n.get("formatter"),a=a||n.get("position"),t=t,c=this._getNearestPoint([r,o],i,n.get("trigger"),n.get("borderColor")).color,h&&(t=V(h)?(p=n.ecModel.get("useUTC"),t=h,bp(t=(d=F(i)?i[0]:i)&&d.axisType&&0<=d.axisType.indexOf("time")?tp(d.axisValue,t,p):t,i,!0)):k(h)?(d=ct(function(t,e){t===this._ticket&&(u.setContent(e,l,n,c,a),this._updatePosition(n,a,r,o,u,i,s))},this),this._ticket=e,h(i,e,d)):h),u.setContent(t,l,n,c,a),u.show(n,c),this._updatePosition(n,a,r,o,u,i,s))},ES.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||F(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:F(e)?void 0:{color:i||e.color||e.borderColor}},ES.prototype._updatePosition=function(t,e,n,i,r,o,a){var s,l=this._api.getWidth(),u=this._api.getHeight(),h=(e=e||t.get("position"),r.getSize()),c=t.get("align"),p=t.get("verticalAlign"),d=a&&a.getBoundingRect().clone();a&&d.applyTransform(a.transform),F(e=k(e)?e([n,i],o,r.el,d,{viewSize:[l,u],contentSize:h.slice()}):e)?(n=to(e[0],l),i=to(e[1],u)):R(e)?((o=e).width=h[0],o.height=h[1],n=(o=Pp(o,{width:l,height:u})).x,i=o.y,p=c=null):i=(n=(s=V(e)&&a?function(t,e,n,i){var r=n[0],o=n[1],a=Math.ceil(Math.SQRT2*i)+8,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-r/2,l=e.y+h/2-o/2;break;case"top":s=e.x+u/2-r/2,l=e.y-o-a;break;case"bottom":s=e.x+u/2-r/2,l=e.y+h+a;break;case"left":s=e.x-r-a,l=e.y+h/2-o/2;break;case"right":s=e.x+u+a,l=e.y+h/2-o/2}return[s,l]}(e,d,h,t.get("borderWidth")):function(t,e,n,i,r,o,a){var n=n.getSize(),s=n[0],n=n[1];null!=o&&(i":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},HS=(GS.prototype.evaluate=function(t){var e=typeof t;return V(e)?this._condVal.test(t):!!H(e)&&this._condVal.test(t+"")},GS);function GS(t){null==(this._condVal=V(t)?new RegExp(t):_t(t)?t:null)&&f("")}US.prototype.evaluate=function(){return this.value};var WS=US;function US(){}YS.prototype.evaluate=function(){for(var t=this.children,e=0;e {
+ return ctx.createCircularGradient(arguments);
+ };
+ }
+
+ _initEvent() {
+ this.event = {};
+ const eventNames = [{
+ wxName: 'touchStart',
+ ecName: 'mousedown'
+ }, {
+ wxName: 'touchMove',
+ ecName: 'mousemove'
+ }, {
+ wxName: 'touchEnd',
+ ecName: 'mouseup'
+ }, {
+ wxName: 'touchEnd',
+ ecName: 'click'
+ }];
+ eventNames.forEach(name => {
+ this.event[name.wxName] = e => {
+ const touch = e.touches[0];
+ this.chart.getZr().handler.dispatch(name.ecName, {
+ zrX: name.wxName === 'tap' ? touch.clientX : touch.x,
+ zrY: name.wxName === 'tap' ? touch.clientY : touch.y,
+ preventDefault: () => {},
+ stopImmediatePropagation: () => {},
+ stopPropagation: () => {}
+ });
+ };
+ });
+ }
+
+ set width(w) {
+ if (this.canvasNode) this.canvasNode.width = w
+ }
+ set height(h) {
+ if (this.canvasNode) this.canvasNode.height = h
+ }
+
+ get width() {
+ if (this.canvasNode)
+ return this.canvasNode.width
+ return 0
+ }
+ get height() {
+ if (this.canvasNode)
+ return this.canvasNode.height
+ return 0
+ }
+}
diff --git a/iconfont.less b/iconfont.less
new file mode 100644
index 0000000..f78b771
--- /dev/null
+++ b/iconfont.less
@@ -0,0 +1,82 @@
+@font-face {
+ font-family: "iconfont"; /* Project id 4945922 */
+ src: url('//at.alicdn.com/t/c/font_4945922_ou2nla6911e.woff2?t=1750598435466') format('woff2'),
+ url('//at.alicdn.com/t/c/font_4945922_ou2nla6911e.woff?t=1750598435466') format('woff'),
+ url('//at.alicdn.com/t/c/font_4945922_ou2nla6911e.ttf?t=1750598435466') format('truetype');
+}
+
+.iconfont {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-fanhui:before {
+ content: "\e601";
+}
+
+.icon-sousuo:before {
+ content: "\e733";
+}
+
+.icon-riqi:before {
+ content: "\e675";
+}
+
+.icon-nanbaobao:before {
+ content: "\e60a";
+}
+
+.icon-jiahao2:before {
+ content: "\e660";
+}
+
+.icon-zengjiatianjiajiahao:before {
+ content: "\e62a";
+}
+
+.icon-gantanhao_icon:before {
+ content: "\e65b";
+}
+
+.icon-touxiang:before {
+ content: "\e62c";
+}
+
+.icon-youjiantou:before {
+ content: "\e612";
+}
+
+.icon-shouji:before {
+ content: "\e6f7";
+}
+
+.icon-xiaoxi:before {
+ content: "\e600";
+}
+
+.icon-jiahao1:before {
+ content: "\e727";
+}
+
+.icon-jiahao:before {
+ content: "\e783";
+}
+
+.icon-dianzan:before {
+ content: "\e694";
+}
+
+.icon-bianji:before {
+ content: "\e67b";
+}
+
+.icon-shanchu1:before {
+ content: "\e67d";
+}
+
+.icon-xiangji:before {
+ content: "\e609";
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json b/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json
new file mode 100644
index 0000000..4bdac29
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/.wechatide.ib.json
@@ -0,0 +1 @@
+{"key":"TDesign","label":"Tdesign","components":{"t-action-sheet":{"key":"t-action-sheet","label":"动作面板","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-actionsheet.png","properties":[{"key":"cancelText","type":["String"],"desc":"设置取消按钮的文本","label":""},{"key":"count","type":["Number"],"desc":"设置每页展示菜单的数量,仅当 type=grid 时有效","label":""},{"key":"items","type":["Array"],"desc":"菜单项","label":""},{"key":"showCancel","type":["Boolean"],"desc":"是否显示取消按钮","label":""},{"key":"theme","type":["String"],"desc":"展示类型,列表和表格形式展示","label":""},{"key":"visible","type":["Boolean"],"desc":"显示与隐藏","label":""}],"events":[{"key":"bind:cancel","desc":"点击取消按钮时触发","label":""},{"key":"bind:close","desc":"关闭时触发","label":""},{"key":"bind:selected","desc":"选择菜单项时触发","label":""}],"tpl":"","path":"./action-sheet/action-sheet"},"t-avatar-group":{"key":"t-avatar-group","label":"头像组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-avatar.png","properties":[{"key":"cascading","type":["String"],"desc":"图片之间的层叠关系,可选值:左侧图片在上和右侧图片在上","label":""},{"key":"collapseAvatar","type":["String"],"desc":"头像数量超出时,会出现一个头像折叠元素。该元素内容可自定义。默认为 `+N`。示例:`+5`,`...`, `更多`","label":""},{"key":"max","type":["Number"],"desc":"能够同时显示的最多头像数量","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例值:small/medium/large/24px/38px 等。优先级低于 Avatar.size","label":""}],"externalClasses":["t-class","t-class-image","t-class-content"],"tpl":"","require":{"t-avatar":"./avatar/avatar"},"path":"./avatar/avatar-group"},"t-avatar":{"key":"t-avatar","label":"头像","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-avatar.png","properties":[{"key":"alt","type":["String"],"desc":"头像替换文本,仅当图片加载失败时有效","label":""},{"key":"badgeProps","type":["Object"],"desc":"头像右上角提示信息,继承 Badge 组件的全部特性。如:小红点,或者数字","label":""},{"key":"hideOnLoadFailed","type":["Boolean"],"desc":"加载失败时隐藏图片","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"image","type":["String"],"desc":"图片地址","label":""},{"key":"shape","type":["String"],"desc":"形状","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例值:small/medium/large/24px/38px 等,默认为 large","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:error","desc":"图片加载失败时触发","label":""}],"tpl":"","path":"./avatar/avatar"},"t-back-top":{"key":"t-back-top","label":"回到顶部","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-backtop.png","properties":[{"key":"fixed","type":["Boolean"],"desc":"是否绝对定位固定到屏幕右下方","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"text","type":["String"],"desc":"文案","label":""},{"key":"theme","type":["String"],"desc":"预设的样式类型","label":""}],"externalClasses":["t-class","t-class-icon","t-class-text"],"events":[{"key":"bind:to-top","desc":"点击触发","label":""}],"tpl":"","path":"./back-top/back-top"},"t-badge":{"key":"t-badge","label":"徽标数","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-badge.png","properties":[{"key":"color","type":["String"],"desc":"颜色","label":""},{"key":"content","type":["String"],"desc":"徽标内容,示例:`content='自定义内容'`。也可以使用默认插槽定义","label":""},{"key":"count","type":["String","Number"],"desc":"徽标右上角内容。可以是数字,也可以是文字。如:'new'/3/99+。特殊:值为空表示使用插槽渲染","label":""},{"key":"dot","type":["Boolean"],"desc":"是否为红点","label":""},{"key":"maxCount","type":["Number"],"desc":"封顶的数字值","label":""},{"key":"offset","type":["Array"],"desc":"设置状态点的位置偏移,示例:[-10, 20] 或 ['10em', '8rem']","label":""},{"key":"shape","type":["String"],"desc":"形状","label":""},{"key":"showZero","type":["Boolean"],"desc":"当数值为 0 时,是否展示徽标","label":""},{"key":"size","type":["String"],"desc":"尺寸","label":""}],"externalClasses":["t-class","t-class-content","t-class-count"],"tpl":"","path":"./badge/badge"},"t-button":{"key":"t-button","label":"按钮","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-button.png","properties":[{"key":"block","type":["Boolean"],"desc":"是否为块级元素","label":""},{"key":"content","type":["String"],"desc":"按钮内容","label":""},{"key":"customDataset","type":["Object"],"desc":"自定义 dataset,可通过 event.currentTarget.dataset.custom 获取","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用按钮","label":""},{"key":"ghost","type":["Boolean"],"desc":"是否为幽灵按钮(镂空按钮)","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"loading","type":["Boolean"],"desc":"是否显示为加载状态","label":""},{"key":"shape","type":["String"],"desc":"按钮形状,有 4 种:长方形、正方形、圆角长方形、圆形","label":""},{"key":"size","type":["String"],"desc":"组件尺寸","label":""},{"key":"theme","type":["String"],"desc":"组件风格,依次为品牌色、危险色","label":""},{"key":"type","type":["String"],"desc":"同小程序的 formType","label":""},{"key":"variant","type":["String"],"desc":"按钮形式,基础、线框、文字","label":""}],"externalClasses":["t-class","t-class-icon"],"events":[{"key":"bind:click","desc":"点击时触发","label":""}],"tpl":"","path":"./button/button"},"t-cell-group":{"key":"t-cell-group","label":"单元格组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-cell.png","properties":[{"key":"bordered","type":["Boolean"],"desc":"是否显示组边框","label":""},{"key":"title","type":["String"],"desc":"单元格组标题","label":""}],"externalClasses":["t-class"],"tpl":"","require":{"t-cell":"./cell/cell"},"path":"./cell-group/cell-group"},"t-cell":{"key":"t-cell","label":"单元格","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-cell.png","properties":[{"key":"align","type":["String"],"desc":"内容的对齐方式,默认居中对齐","label":""},{"key":"arrow","type":["Boolean"],"desc":"是否显示右侧箭头","label":""},{"key":"bordered","type":["Boolean"],"desc":"是否显示下边框","label":""},{"key":"description","type":["String"],"desc":"下方内容描述","label":""},{"key":"hover","type":["Boolean"],"desc":"是否开启点击反馈","label":""},{"key":"image","type":["String"],"desc":"主图","label":""},{"key":"jumpType","type":["String"],"desc":"链接跳转类型","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标,出现在单元格标题的左侧","label":""},{"key":"note","type":["String"],"desc":"和标题同行的说明文字","label":""},{"key":"required","type":["Boolean"],"desc":"是否显示表单必填星号","label":""},{"key":"rightIcon","type":["String"],"desc":"最右侧图标","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"url","type":["String"],"desc":"点击后跳转链接地址。如果值为空,则表示不需要跳转","label":""}],"externalClasses":["t-class","t-class-title","t-class-note","t-class-description","t-class-thumb","t-class-hover","t-class-left","t-class-right"],"events":[{"key":"bind:click","desc":"右侧内容","label":""}],"tpl":"","path":"./cell/cell"},"t-check-tag":{"key":"t-check-tag","label":"可选标签","icon":"","properties":[{"key":"checked","type":["Boolean"],"desc":"标签选中的状态,默认风格(theme=default)才有选中态","label":""},{"key":"closable","type":["Boolean"],"desc":"标签是否可关闭","label":""},{"key":"content","type":["String","Number"],"desc":"组件子元素","label":""},{"key":"disabled","type":["Boolean"],"desc":"标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态","label":""},{"key":"icon","type":["String"],"desc":"标签中的图标,可自定义图标呈现","label":""},{"key":"shape","type":["String"],"desc":"标签类型,有三种:方形、圆角方形、标记型","label":""},{"key":"size","type":["String"],"desc":"标签尺寸","label":""}],"events":[{"key":"bind:change","desc":"组件子元素","label":""},{"key":"bind:click","desc":"点击标签时触发","label":""}],"tpl":"check tag","path":"./check-tag/check-tag"},"t-checkbox-group":{"key":"t-checkbox-group","label":"多选框组","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-checkbox.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"max","type":["Number"],"desc":"支持最多选中的数量","label":""},{"key":"name","type":["String"],"desc":"统一设置内部复选框 HTML 属性","label":""},{"key":"options","type":["Array"],"desc":"以配置形式设置子元素。示例1:`['北京', '上海']` ,示例2: `[{ label: '全选', checkAll: true }, { label: '上海', value: 'shanghai' }]`。checkAll 值为 true 表示当前选项为「全选选项」","label":""},{"key":"value","type":["Array"],"desc":"选中值","label":""}],"events":[{"key":"bind:change","desc":"值变化时触发。`context.current` 表示当前变化的数据项,如果是全选则为空;`context.type` 表示引起选中数据变化的是选中或是取消选中,`context.option` 表示当前变化的数据项","label":""}],"tpl":"","require":{"t-checkbox":"./checkbox/checkbox"},"path":"./checkbox-group/checkbox-group"},"t-checkbox":{"key":"t-checkbox","label":"多选框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-checkbox.png","properties":[{"key":"align","type":["String"],"desc":"多选框和内容相对位置","label":""},{"key":"checkAll","type":["Boolean"],"desc":"用于标识是否为「全选选项」。单独使用无效,需在 CheckboxGroup 中使用","label":""},{"key":"checked","type":["Boolean"],"desc":"是否选中","label":""},{"key":"color","type":["String"],"desc":"多选框颜色","label":""},{"key":"content","type":["String"],"desc":"多选框内容","label":""},{"key":"contentDisabled","type":["Boolean"],"desc":"是否禁用组件内容(content)触发选中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"icon","type":["Array"],"desc":"自定义选中图标和非选中图标。示例:[选中态图标地址,非选中态图标地址]","label":""},{"key":"indeterminate","type":["Boolean"],"desc":"是否为半选","label":""},{"key":"label","type":["String"],"desc":"主文案","label":""},{"key":"maxContentRow","type":["Number"],"desc":"内容最大行数限制","label":""},{"key":"maxLabelRow","type":["Number"],"desc":"主文案最大行数限制","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"value","type":["String","Number"],"desc":"多选框的值","label":""}],"externalClasses":["t-class","t-class-icon","t-class-label","t-class-content","t-class-border"],"events":[{"key":"bind:change","desc":"值变化时触发","label":""}],"tpl":"","path":"./checkbox/checkbox"},"t-collapse-panel":{"key":"t-collapse-panel","label":"折叠面板","icon":"","properties":[{"key":"content","type":["String"],"desc":"折叠面板内容","label":""},{"key":"disabled","type":["Boolean"],"desc":"禁止当前面板展开,优先级大于 Collapse 的同名属性","label":""},{"key":"expandIcon","type":["Boolean"],"desc":"当前折叠面板展开图标,优先级大于 Collapse 的同名属性","label":""},{"key":"header","type":["String"],"desc":"面板头内容","label":""},{"key":"headerRightContent","type":["String"],"desc":"面板头的右侧区域,一般用于呈现面板操作","label":""},{"key":"value","type":["String","Number"],"desc":"当前面板唯一标识,如果值为空则取当前面下标兜底作为唯一标识","label":""}],"tpl":"此处可自定义内容","path":"./collapse/collapse-panel"},"t-collapse":{"key":"t-collapse","label":"折叠","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-collapse.png","properties":[{"key":"defaultExpandAll","type":["Boolean"],"desc":"默认是否展开全部","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用面板展开/收起操作","label":""},{"key":"expandIcon","type":["Boolean"],"desc":"展开图标。值为 undefined 或 false 则不显示展开图标;值为 true 显示默认图标;值类型为函数,则表示完全自定义展开图标","label":""},{"key":"expandMutex","type":["Boolean"],"desc":"每个面板互斥展开,每次只展开一个面板","label":""},{"key":"value","type":["Array"],"desc":"展开的面板集合","label":""}],"events":[{"key":"bind:change","desc":"切换面板时触发,返回变化的值","label":""}],"tpl":"此处可自定义内容","require":{"t-collapse-panel":"./collapse/collapse-panel"},"path":"./collapse/collapse"},"t-date-time-picker":{"key":"t-date-time-picker","label":"日期时间选择器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-datetimepicker.png","properties":[{"key":"cancelBtn","type":["String"],"desc":"取消按钮文字","label":""},{"key":"confirmBtn","type":["String"],"desc":"确定按钮文字","label":""},{"key":"end","type":["String","Number"],"desc":"选择器的结束时间","label":""},{"key":"footer","type":["String"],"desc":"底部内容","label":""},{"key":"format","type":["String"],"desc":"用于格式化日期,[详细文档](https://day.js.org/docs/en/display/format)","label":""},{"key":"header","type":["Boolean"],"desc":"头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 TNode 表示自定义头部内容","label":""},{"key":"mode","type":["String","Array"],"desc":"选择器模式,用于表示可以选择到哪一个层级。【示例一】year 或者 ['year'] 表示纯日期选择器,只能选择到年份,只显示年份。【示例二】'hour' 或 ['hour'] 表示纯时间选择器,只能选择到小时维度。【示例三】['year', 'month', 'date', 'hour', 'minute'] 表示,日期和时间 混合选择器,可以选择到具体哪一分钟,显示全部时间:年/月/日/时/分","label":""},{"key":"showWeek","type":["Boolean"],"desc":"【开发中】是否在日期旁边显示周几(如周一,周二,周日等)","label":""},{"key":"start","type":["String","Number"],"desc":"选择器的开始时间","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"value","type":["String","Number"],"desc":"选中值","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"externalClasses":["t-class","t-class-confirm","t-class-cancel","t-class-title"],"events":[{"key":"bind:cancel","desc":"取消按钮点击时触发","label":""},{"key":"bind:change","desc":"选中值发生变化时触发","label":""},{"key":"bind:column-change","desc":"每一列选中数据变化时触发","label":""},{"key":"bind:confirm","desc":"确认按钮点击时触发","label":""}],"tpl":"","path":"./date-time-picker/date-time-picker"},"t-dialog":{"key":"t-dialog","label":"对话框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dialog.png","properties":[{"key":"actions","type":["Array"],"desc":"操作栏","label":""},{"key":"buttonLayout","type":["String"],"desc":"多按钮排列方式","label":""},{"key":"cancelBtn","type":["String","Object"],"desc":"取消按钮,可自定义。值为 null 则不显示取消按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制取消事件","label":""},{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击蒙层时是否触发关闭事件","label":""},{"key":"confirmBtn","type":["String","Object"],"desc":"确认按钮。值为 null 则不显示确认按钮。值类型为字符串,则表示自定义按钮文本,值类型为 Object 则表示透传 Button 组件属性。使用 TNode 自定义按钮时,需自行控制确认事件","label":""},{"key":"content","type":["String"],"desc":"内容","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透","label":""},{"key":"showInAttachedElement","type":["Boolean"],"desc":"【开发中】仅在挂载元素中显示抽屉,默认在浏览器可视区域显示。父元素需要有定位属性,如:position: relative","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"visible","type":["Boolean"],"desc":"控制对话框是否显示","label":""},{"key":"zIndex","type":["Number"],"desc":"对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500","label":""}],"externalClasses":["t-class","t-class-content","t-class-confirm","t-class-cancel"],"events":[{"key":"bind:cancel","desc":"如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件","label":""},{"key":"bind:close","desc":"关闭事件,点击 取消按钮 或 点击蒙层 时触发","label":""},{"key":"bind:overlay-click","desc":"如果蒙层存在,点击蒙层时触发","label":""}],"tpl":"","path":"./dialog/dialog"},"t-divider":{"key":"t-divider","label":"分割线","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-divider.png","properties":[{"key":"align","type":["String"],"desc":"文本位置(仅在水平分割线有效)","label":""},{"key":"content","type":["String"],"desc":"子元素","label":""},{"key":"dashed","type":["Boolean"],"desc":"是否虚线(仅在水平分割线有效)","label":""},{"key":"layout","type":["String"],"desc":"分隔线类型有两种:水平和垂直","label":""},{"key":"lineColor","type":["String"],"desc":"分隔线颜色","label":""}],"externalClasses":["t-class","t-class-line","t-class-content"],"tpl":"","path":"./divider/divider"},"t-drawer":{"key":"t-drawer","label":"模态抽屉","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-drawer.png","properties":[{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击蒙层时是否触发抽屉关闭事件","label":""},{"key":"destroyOnClose","type":["Boolean"],"desc":"抽屉关闭时是否销毁节点","label":""},{"key":"items","type":["Array"],"desc":"抽屉里的列表项","label":""},{"key":"placement","type":["String"],"desc":"抽屉方向","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"visible","type":["Boolean"],"desc":"组件是否可见","label":""},{"key":"zIndex","type":["Number"],"desc":"抽屉层级,样式默认为 1500","label":""}],"events":[{"key":"bind:close","desc":"关闭事件,取消按钮点击时、关闭按钮点击时、点击蒙层时均会触发","label":""},{"key":"bind:item-click","desc":"点击抽屉里的列表项","label":""},{"key":"bind:overlay-click","desc":"如果蒙层存在,点击蒙层时触发","label":""}],"tpl":"","path":"./drawer/drawer"},"t-dropdown-item":{"key":"t-dropdown-item","label":"下拉菜单子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dropdownmenu.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用","label":""},{"key":"label","type":["String"],"desc":"标题","label":""},{"key":"multiple","type":["Boolean"],"desc":"是否多选","label":""},{"key":"options","type":["Array"],"desc":"选项数据","label":""}],"tpl":"","path":"./dropdown-menu/dropdown-item"},"t-dropdown-menu":{"key":"t-dropdown-menu","label":"下拉菜单","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-dropdownmenu.png","properties":[{"key":"activeColor","type":["String"],"desc":"【讨论中】菜单标题和选项的选中态颜色","label":""},{"key":"closeOnClickOverlay","type":["Boolean"],"desc":"是否在点击遮罩层后关闭菜单","label":""},{"key":"duration","type":["String","Number"],"desc":"动画时长","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"zIndex","type":["Number"],"desc":"菜单栏 z-index 层级","label":""}],"tpl":"","require":{"t-dropdown-item":"./dropdown-menu/dropdown-item"},"path":"./dropdown-menu/dropdown-menu"},"t-empty":{"key":"t-empty","label":"空状态","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-empty.png","properties":[{"key":"action","type":["String"],"desc":"操作按钮","label":""},{"key":"description","type":["String"],"desc":"描述文字","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"image","type":["String"],"desc":"图片地址","label":""}],"externalClasses":["t-class","t-class-description","t-class-image","t-class-actions"],"tpl":"","path":"./empty/empty"},"t-fab":{"key":"t-fab","label":"悬浮按钮","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-fab.png","properties":[{"key":"buttonProps","type":["Object"],"desc":"透传至 Button 组件","label":""},{"key":"icon","type":["String"],"desc":"图标","label":""},{"key":"style","type":["String"],"desc":"悬浮按钮的样式,常用于调整位置","label":""},{"key":"text","type":["String"],"desc":"文本内容","label":""}],"events":[{"key":"bind:click","desc":"悬浮按钮点击事件","label":""}],"tpl":"","path":"./fab/fab"},"t-footer":{"key":"t-footer","label":"布局-底部内容","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-footer.png","properties":[{"key":"copyright","type":["String"],"desc":"版权信息,type 为`text`生效","label":""},{"key":"logo","type":["Object"],"desc":"图标配置,type 为`logo`生效。`logo.icon` 表示图标链接地址,`logo.title` 表示标题文本,`logo.url` 表示链接跳转地址","label":""},{"key":"textLinkList","type":["Array"],"desc":"链接列表,type 为`text`生效。name 表示链接名称, url 表示链接 page 路径,目前只支持小程序内部跳转,openType 表示跳转方式","label":""},{"key":"theme","type":["String"],"desc":"页脚展示类型","label":""}],"tpl":"","path":"./footer/footer"},"t-grid-item":{"key":"t-grid-item","label":"宫格子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-grid.png","properties":[{"key":"badgeProps","type":["Object"],"desc":"头像右上角提示信息,继承 Badge 组件的全部特性。如:小红点,或者数字","label":""},{"key":"description","type":["String"],"desc":"文本以外的更多描述,辅助信息。可以通过 Props 传入文本,也可以自定义标题节点","label":""},{"key":"image","type":["String"],"desc":"图片,可以是图片地址,也可以自定义图片节点","label":""},{"key":"jumpType","type":["String"],"desc":"链接跳转类型","label":""},{"key":"layout","type":["String"],"desc":"内容布局方式","label":""},{"key":"text","type":["String"],"desc":"文本,可以通过 Props 传入文本,也可以自定义标题节点","label":""},{"key":"url","type":["String"],"desc":"点击后的跳转链接","label":""}],"externalClasses":["t-class","t-class-image","t-class-text","t-class-description"],"tpl":"","path":"./grid-item/grid-item"},"t-grid":{"key":"t-grid","label":"栅格","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-grid.png","properties":[{"key":"align","type":["String"],"desc":"内容对齐方式","label":""},{"key":"border","type":["Boolean","Object"],"desc":"边框,默认不显示。值为 true 则显示默认边框,值类型为 object 则表示自定义边框样式","label":""},{"key":"column","type":["Number"],"desc":"每一行的列数量","label":""},{"key":"gutter","type":["Number"],"desc":"间隔大小","label":""},{"key":"hover","type":["Boolean"],"desc":"是否开启点击反馈","label":""}],"externalClasses":["t-class"],"tpl":"","require":{"t-grid-item":"./grid-item/grid-item"},"path":"./grid/grid"},"t-icon":{"key":"t-icon","label":"图标","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-icon.png","properties":[{"key":"classPrefix","type":["String"],"desc":"自定义icon前缀","label":""},{"key":"color","type":["String"],"desc":"图标颜色","label":""},{"key":"style","type":["String"],"desc":"自定义样式","label":""},{"key":"name","type":["String"],"desc":"图标名称","label":""},{"key":"size","type":["String","Number"],"desc":"图标名称","label":""}],"tpl":"","path":"./icon/icon"},"t-image":{"key":"t-image","label":"图片","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-image.png","properties":[{"key":"error","type":["String"],"desc":"加载失败时显示的内容。值为 `default` 则表示使用默认加载失败风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `error`;值为其他则表示普通文本内容,如“加载失败”","label":""},{"key":"lazy","type":["Boolean"],"desc":"是否开启图片懒加载","label":""},{"key":"loading","type":["String"],"desc":"加载态内容。值为 `default` 则表示使用默认加载中风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `loading`;值为其他则表示普通文本内容,如“加载中”","label":""},{"key":"shape","type":["String"],"desc":"图片圆角类型","label":""},{"key":"src","type":["String"],"desc":"图片链接","label":""}],"externalClasses":["t-class","t-class-load"],"events":[{"key":"bind:error","desc":"图片加载失败时触发","label":""},{"key":"bind:load","desc":"图片加载完成时触发","label":""}],"tpl":"","path":"./image/image"},"t-indexes":{"key":"t-indexes","label":"索引","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-indexes.png","properties":[{"key":"height","type":["Number"],"desc":"列表高度,未设置默认占满设备高度","label":""},{"key":"list","type":["Array"],"desc":"索引列表的列表数据。每个元素包含三个子元素,index(string):索引值,例如1,2,3,...或A,B,C等;title(string): 索引标题,可不填将默认设为索引值;children(Array<{title: string}>): 子元素列表,title为子元素的展示文案。","label":""},{"key":"sticky","type":["Boolean"],"desc":"索引是否吸顶,默认为true","label":""}],"events":[{"key":"bind:select","desc":"点击行元素时触发事件","label":""}],"tpl":"","path":"./indexes/indexes"},"t-input":{"key":"t-input","label":"输入框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-input.png","properties":[{"key":"align","type":["String"],"desc":"文本内容位置,居左/居中/居右","label":""},{"key":"borderless","type":["Boolean"],"desc":"【讨论中】是否开启无边框模式","label":""},{"key":"clearable","type":["Boolean"],"desc":"是否可清空","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用输入框","label":""},{"key":"errorMessage","type":["String"],"desc":"错误提示文本,值为空不显示(废弃属性,如果需要,请更为使用 status 和 tips)","label":""},{"key":"format","type":["String"],"desc":"【开发中】指定输入框展示值的格式","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"maxcharacter","type":["Number"],"desc":"用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。`maxcharacter` 和 `maxlength` 二选一使用","label":""},{"key":"maxlength","type":["Number"],"desc":"用户最多可以输入的文本长度,一个中文等于一个计数长度。值小于等于 0 的时候,则表示不限制输入长度。`maxcharacter` 和 `maxlength` 二选一使用","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"prefixIcon","type":["String"],"desc":"组件前置图标,值为字符串则表示图标名称","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"size","type":["String"],"desc":"输入框尺寸","label":""},{"key":"status","type":["String"],"desc":"输入框状态","label":""},{"key":"suffix","type":["String"],"desc":"后置图标前的后置内容","label":""},{"key":"suffixIcon","type":["String"],"desc":"后置文本内容,值为字符串则表示图标名称","label":""},{"key":"tips","type":["String"],"desc":"输入框下方提示文本,会根据不同的 `status` 呈现不同的样式","label":""},{"key":"value","type":["String","Number"],"desc":"输入框的值","label":""}],"externalClasses":["t-class","t-class-input","t-class-placeholder","t-class-error-msg"],"events":[{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"输入框值发生变化时触发","label":""},{"key":"bind:clear","desc":"清空按钮点击时触发","label":""},{"key":"bind:enter","desc":"回车键按下时触发","label":""},{"key":"bind:focus","desc":"获得焦点时触发","label":""}],"tpl":"","path":"./input/input"},"t-loading":{"key":"t-loading","label":"加载中","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-loading.png","properties":[{"key":"delay","type":["Number"],"desc":"延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒","label":""},{"key":"duration","type":["Number"],"desc":"加载动画执行完成一次的时间,单位:毫秒","label":""},{"key":"indicator","type":["Boolean"],"desc":"是否显示加载指示符","label":""},{"key":"inheritColor","type":["Boolean"],"desc":"是否继承父元素颜色","label":""},{"key":"layout","type":["String"],"desc":"对齐方式","label":""},{"key":"loading","type":["Boolean"],"desc":"是否处于加载状态","label":""},{"key":"pause","type":["Boolean"],"desc":"是否暂停动画","label":""},{"key":"progress","type":["Number"],"desc":"加载进度","label":""},{"key":"reverse","type":["Boolean"],"desc":"加载动画是否反向","label":""},{"key":"size","type":["String"],"desc":"尺寸,示例:40rpx/20px","label":""},{"key":"text","type":["String"],"desc":"加载提示文案","label":""},{"key":"theme","type":["String"],"desc":"加载组件类型","label":""}],"externalClasses":["t-class","t-class-text","t-class-indicator"],"tpl":"","path":"./loading/loading"},"t-message":{"key":"t-message","label":"全局提醒","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-message.png","properties":[{"key":"action","type":["String"],"desc":"操作","label":""},{"key":"align","type":["String"],"desc":"文本对齐方式","label":""},{"key":"closeBtn","type":["String","Boolean"],"desc":"关闭按钮,可以自定义。值为 true 显示默认关闭按钮,值为 false 不显示关闭按钮。值类型为 string 则直接显示值,如:“关闭”。也可以完全自定义按钮","label":""},{"key":"content","type":["String"],"desc":"用于自定义消息弹出内容","label":""},{"key":"duration","type":["Number"],"desc":"消息内置计时器,计时到达时会触发 duration-end 事件。单位:毫秒。值为 0 则表示没有计时器。","label":""},{"key":"icon","type":["String","Boolean"],"desc":"消息提醒前面的图标。值为 true 则根据 theme 显示对应的图标,值为 false 则不显示图标。值为 'info' 或 'bell' 则显示组件内置图标。也可以完全自定义图标节点","label":""},{"key":"marquee","type":["Boolean","Object"],"desc":"跑马灯效果。speed 指速度控制;loop 指循环播放次数,值为 -1 表示循环播放,值为 0 表示不循环播放;delay 表示延迟多久开始播放","label":""},{"key":"offset","type":["Array"],"desc":"相对于 placement 的偏移量,示例:[-10, 20] 或 ['10rpx', '8rpx']","label":""},{"key":"theme","type":["String"],"desc":"消息组件风格","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示,隐藏时默认销毁组件","label":""},{"key":"zIndex","type":["Number"],"desc":"元素层级,样式默认为 5000","label":""}],"externalClasses":["t-class","t-class-content","t-class-icon","t-class-action","t-class-close-btn"],"events":[{"key":"bind:action-btn-click","desc":"当操作按钮存在时,用户点击操作按钮时触发","label":""},{"key":"bind:close-btn-click","desc":"当关闭按钮存在时,用户点击关闭按钮触发","label":""},{"key":"bind:duration-end","desc":"计时结束后触发","label":""}],"tpl":"","path":"./message/message"},"t-navbar":{"key":"t-navbar","label":"导航条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-navbar.png","properties":[{"key":"animation","type":["Boolean"],"desc":"是否添加动画效果","label":""},{"key":"background","type":["String"],"desc":"背景","label":""},{"key":"delta","type":["Number"],"desc":"后退按钮后退层数,含义参考 [wx.navigateBack](https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateBack.html),特殊的,传入 0 不会发生执行 wx.navigateBack,只会触发一个 goback 事件供自行处理。","label":""},{"key":"fixed","type":["Boolean"],"desc":"是否固定在顶部","label":""},{"key":"homeIcon","type":["String"],"desc":"首页图标地址。值为 '' 或者 undefiend 则表示不显示返回图标,值为 'circle' 表示显示默认图标,值为 'slot' 表示使用插槽渲染,值为其他则表示图标地址","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标地址,值为 '' 或者 undefiend 则表示不显示返回图标,值为 'arrow-left' 表示显示返回图标,值为 'slot' 表示使用插槽渲染,值为其他则表示图标地址","label":""},{"key":"title","type":["String"],"desc":"页面标题","label":""},{"key":"titleMaxLength","type":["Number"],"desc":"标题文字最大长度,超出的范围使用 `...` 表示","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"externalClasses":["t-class","t-class-title","t-class-left-icon","t-class-home-icon","t-class-capsule"],"events":[{"key":"bind:complete","desc":"navigateBack 执行完成后触发(失败或成功均会触发)","label":""},{"key":"bind:fail","desc":"navigateBack 执行失败后触发","label":""},{"key":"bind:go-back","desc":"delta 值为 0 时,点击返回,触发该事件","label":""},{"key":"bind:go-home","desc":"点击 Home 触发","label":""},{"key":"bind:success","desc":"navigateBack 执行成功后触发","label":""}],"tpl":"","path":"./navbar/navbar"},"t-picker-item":{"key":"t-picker-item","label":"选择器子项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-picker.png","properties":[{"key":"format","type":["String"],"desc":"格式化标签","label":""},{"key":"options","type":["Array"],"desc":"数据源","label":""}],"tpl":"","path":"./picker-item/picker-item"},"t-picker":{"key":"t-picker","label":"选择器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-picker.png","properties":[{"key":"cancelBtn","type":["String","Object"],"desc":"取消按钮文字","label":""},{"key":"confirmBtn","type":["String","Object"],"desc":"确定按钮文字","label":""},{"key":"footer","type":["String"],"desc":"底部内容","label":""},{"key":"header","type":["Boolean"],"desc":"头部内容。值为 true 显示空白头部,值为 false 不显示任何内容,值类型为 TNode 表示自定义头部内容","label":""},{"key":"title","type":["String"],"desc":"标题","label":""},{"key":"value","type":["Array"],"desc":"选中值","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"events":[{"key":"bind:cancel","desc":"点击取消按钮时触发","label":""},{"key":"bind:change","desc":"选中变化时候触发","label":""},{"key":"bind:pick","desc":"任何一列选中都会触发,不同的列参数不同。`context.column` 表示第几列变化,`context.index` 表示变化那一列的选中项下标","label":""}],"tpl":"","require":{"t-picker-item":"./picker-item/picker-item"},"path":"./picker/picker"},"t-popup":{"key":"t-popup","label":"气泡框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-popup.png","properties":[{"key":"closeBtn","type":["Boolean"],"desc":"关闭按钮,值类型为 Boolean 时表示是否显示关闭按钮。也可以自定义关闭按钮","label":""},{"key":"closeOnOverlayClick","type":["Boolean"],"desc":"点击遮罩层是否关闭","label":""},{"key":"content","type":["String"],"desc":"浮层里面的内容","label":""},{"key":"placement","type":["String"],"desc":"浮层出现位置","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"transitionProps","type":["Object"],"desc":"动画效果定义","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示浮层","label":""},{"key":"zIndex","type":["Number"],"desc":"组件层级,Web 侧样式默认为 5500,移动端和小程序样式默认为 1500","label":""}],"externalClasses":["t-class","t-class-overlay","t-class-content"],"events":[{"key":"bind:visible-change","desc":"当浮层隐藏或显示时触发","label":""}],"tpl":"","path":"./popup/popup"},"t-progress":{"key":"t-progress","label":"进度条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-progress.png","properties":[{"key":"color","type":["String","Object","Array"],"desc":"进度条颜色。示例:'#ED7B2F' 或 'orange' 或 `['#f00', '#0ff', '#f0f']` 或 `{ '0%': '#f00', '100%': '#0ff' }` 或 `{ from: '#000', to: '#000' }` 等","label":""},{"key":"label","type":["String","Boolean"],"desc":"进度百分比,可自定义","label":""},{"key":"percentage","type":["Number"],"desc":"进度条百分比","label":""},{"key":"size","type":["String","Number"],"desc":"进度条尺寸,示例:small/medium/large/240。small 值为 72; medium 值为 112;large 值为 160","label":""},{"key":"status","type":["String"],"desc":"进度条状态","label":""},{"key":"strokeWidth","type":["String","Number"],"desc":"进度条线宽。宽度数值不能超过 size 的一半,否则不能输出环形进度","label":""},{"key":"theme","type":["String"],"desc":"进度条风格。值为 line,标签(label)显示在进度条右侧;值为 plump,标签(label)显示在进度条里面;值为 circle,标签(label)显示在进度条正中间","label":""},{"key":"trackColor","type":["String"],"desc":"进度条未完成部分颜色","label":""}],"tpl":"","path":"./progress/progress"},"t-pull-down-refresh":{"key":"t-pull-down-refresh","label":"下拉刷新","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-pulldownrefresh.png","properties":[{"key":"loadingBarHeight","type":["String","Number"],"desc":"加载中下拉高度,如果值为数字则单位是:'px'","label":""},{"key":"loadingProps","type":["Object"],"desc":"加载loading样式","label":""},{"key":"loadingTexts","type":["Array"],"desc":"提示语,组件内部默认值为 ['下拉刷新', '松手刷新', '正在刷新', '刷新完成']","label":""},{"key":"maxBarHeight","type":["String","Number"],"desc":"最大下拉高度,如果值为数字则单位是:'px'","label":""},{"key":"refreshTimeout","type":["Number"],"desc":"刷新超时时间","label":""},{"key":"value","type":["Boolean"],"desc":"组件状态,值为 `true` 表示下拉状态,值为 `false` 表示收起状态","label":""}],"externalClasses":["t-class","t-class-loading","t-class-text","t-class-indicator"],"events":[{"key":"bind:change","desc":"下拉或收起时触发,用户手势往下滑动触发下拉状态,手势松开触发收起状态","label":""},{"key":"bind:refresh","desc":"结束下拉时触发","label":""},{"key":"bind:timeout","desc":"刷新超时触发","label":""}],"tpl":"拖拽该区域演示 中间下拉刷新","path":"./pull-down-refresh/pull-down-refresh"},"t-radio-group":{"key":"t-radio-group","label":"单选框组","icon":"","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用全部子单选框","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"options","type":["Array"],"desc":"单选组件按钮形式。RadioOption 数据类型为 string 或 number 时,表示 label 和 value 值相同","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"选中的值","label":""}],"events":[{"key":"bind:change","desc":"选中值发生变化时触发","label":""}],"tpl":"","require":{"t-radio":"./radio/radio"},"path":"./radio-group/radio-group"},"t-radio":{"key":"t-radio","label":"单选框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-radio.png","properties":[{"key":"align","type":["String"],"desc":"复选框和内容相对位置","label":""},{"key":"allowUncheck","type":["Boolean"],"desc":"是否允许取消选中","label":""},{"key":"checked","type":["Boolean"],"desc":"是否选中","label":""},{"key":"color","type":["String"],"desc":"单选按钮颜色","label":""},{"key":"content","type":["String"],"desc":"单选内容","label":""},{"key":"contentDisabled","type":["Boolean"],"desc":"是否禁用组件内容(content)触发选中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否为禁用态","label":""},{"key":"icon","type":["String","Array"],"desc":"自定义选中图标和非选中图标。示例:[选中态图标,非选中态图标]。值为 fill-circle 表示图标为填充型图标,值为 stroke-line 表示图标为描边型图标","label":""},{"key":"label","type":["String"],"desc":"主文案","label":""},{"key":"maxContentRow","type":["Number"],"desc":"内容最大行数限制","label":""},{"key":"maxLabelRow","type":["Number"],"desc":"主文案最大行数限制","label":""},{"key":"name","type":["String"],"desc":"HTML 元素原生属性","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"单选按钮的值","label":""}],"externalClasses":["t-class","t-class-icon","t-class-label","t-class-content","t-class-border"],"events":[{"key":"bind:change","desc":"值变化时触发","label":""}],"tpl":"","path":"./radio/radio"},"t-rate":{"key":"t-rate","label":"评分","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-rate.png","properties":[{"key":"allowHalf","type":["Boolean"],"desc":"是否允许半选","label":""},{"key":"color","type":["String","Array"],"desc":"评分图标的颜色,样式中默认为 #ED7B2F。一个值表示设置选中高亮的五角星颜色,示例:[选中颜色]。数组则表示分别设置 选中高亮的五角星颜色 和 未选中暗灰的五角星颜色,[选中颜色,未选中颜色]。示例:['#ED7B2F', '#E3E6EB']","label":""},{"key":"count","type":["Number"],"desc":"评分的数量","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用评分","label":""},{"key":"gap","type":["Number"],"desc":"评分图标的间距","label":""},{"key":"showText","type":["Boolean"],"desc":"是否显示对应的辅助文字","label":""},{"key":"size","type":["String"],"desc":"评分图标的大小,示例:`20`","label":""},{"key":"texts","type":["Array"],"desc":"评分等级对应的辅助文字。组件内置默认值为:['极差', '失望', '一般', '满意', '惊喜']。自定义值示例:['1分', '2分', '3分', '4分', '5分']","label":""},{"key":"value","type":["Number"],"desc":"选择评分的值","label":""},{"key":"variant","type":["String"],"desc":"形状类型,有描边类型和填充类型两种","label":""}],"events":[{"key":"bind:change","desc":"评分数改变时触发","label":""}],"tpl":"","path":"./rate/rate"},"t-search":{"key":"t-search","label":"搜索","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-search.png","properties":[{"key":"action","type":["String"],"desc":"自定义右侧操作按钮文字","label":""},{"key":"center","type":["Boolean"],"desc":"是否居中","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用","label":""},{"key":"focus","type":["Boolean"],"desc":"是否聚焦","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"leftIcon","type":["String"],"desc":"左侧图标","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"rightIcon","type":["String"],"desc":"右侧图标","label":""},{"key":"shape","type":["String"],"desc":"搜索框形状","label":""},{"key":"value","type":["String"],"desc":"值","label":""}],"externalClasses":["t-class","t-class-input","t-class-input-container","t-class-cancel","t-class-left","t-class-right"],"events":[{"key":"bind:action-click","desc":"点击右侧操作按钮文字时触发","label":""},{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"值发生变化时触发","label":""},{"key":"bind:clear","desc":"点击清除时触发","label":""},{"key":"bind:focus","desc":"聚焦时触发","label":""},{"key":"bind:submit","desc":"提交时触发","label":""}],"tpl":"","path":"./search/search"},"t-skeleton":{"key":"t-skeleton","label":"骨架屏","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-skeleton.png","properties":[{"key":"animation","type":["String"],"desc":"动画效果,有「渐变加载动画」和「闪烁加载动画」两种。值为 'none' 则表示没有动画","label":""},{"key":"delay","type":["Number"],"desc":"【开发中】延迟显示加载效果的时间,用于防止请求速度过快引起的加载闪烁,单位:毫秒","label":""},{"key":"loading","type":["Boolean"],"desc":"是否为加载状态,如果是则显示骨架图,如果不是则显示加载完成的内容","label":""},{"key":"rowCol","type":["Array"],"desc":"用于设置行列数量、宽度高度、间距等。【示例一】,`[1, 1, 2]` 表示输出三行骨架图,第一行一列,第二行一列,第三行两列。【示例二】,`[1, 1, { width: '100px' }]` 表示自定义第三行的宽度为 `100px`。【示例三】,`[1, 2, [{ width, height }, { width, height, marginLeft }]]` 表示第三行有两列,且自定义宽度、高度和间距","label":""},{"key":"theme","type":["String"],"desc":"骨架图风格,有基础、头像组合等两大类","label":""}],"externalClasses":["t-class","t-class-avatar","t-class-image","t-class-text"],"tpl":"","path":"./skeleton/skeleton"},"t-slider":{"key":"t-slider","label":"滑块","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-slider.png","properties":[{"key":"colors","type":["Array"],"desc":"颜色,[已选择, 未选择]","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"disabledColor","type":["Array"],"desc":"禁用状态滑动条的颜色,[已选, 未选]","label":""},{"key":"label","type":["String","Boolean"],"desc":"滑块当前值文本。
值为 true 显示默认文案;值为 false 不显示滑块当前值文本;
值为 `${value}%` 则表示组件会根据占位符渲染文案;
值类型为函数时,参数 `value` 标识滑块值,参数 `position=start` 表示范围滑块的起始值,参数 `position=end` 表示范围滑块的终点值","label":""},{"key":"marks","type":["Object","Array"],"desc":"刻度标记,示例:`[0, 10, 40, 200]` 或者 `{ 5: '5¥', 10: '10%' }`","label":""},{"key":"max","type":["Number"],"desc":"滑块范围最大值","label":""},{"key":"min","type":["Number"],"desc":"滑块范围最小值","label":""},{"key":"range","type":["Boolean"],"desc":"双游标滑块","label":""},{"key":"showExtremeValue","type":["Boolean"],"desc":"是否边界值","label":""},{"key":"step","type":["Number"],"desc":"步长","label":""},{"key":"value","type":["Number","Array"],"desc":"滑块值","label":""}],"externalClasses":["t-class","t-class-bar","t-class-bar-active","t-class-bar-disabled","t-class-cursor"],"events":[{"key":"bind:change","desc":"滑块值变化时触发","label":""},{"key":"bind:dragend","desc":"结束拖动时触发","label":""},{"key":"bind:dragstart","desc":"开始拖动时触发","label":""}],"tpl":"","path":"./slider/slider"},"t-step-item":{"key":"t-step-item","label":"步骤","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-steps.png","properties":[{"key":"content","type":["String"],"desc":"步骤描述","label":""},{"key":"icon","type":["String"],"desc":"图标。传入 slot 代表使用插槽,其他字符串代表使用内置图标","label":""},{"key":"status","type":["String"],"desc":"当前步骤的状态","label":""},{"key":"subStepItems","type":["Array"],"desc":"子步骤条,仅支持 layout = 'vertical' 时","label":""},{"key":"title","type":["String"],"desc":"标题","label":""}],"externalClasses":["t-class","t-class-content","t-class-title","t-class-description","t-class-extra"],"tpl":"","path":"./step-item/step-item"},"t-stepper":{"key":"t-stepper","label":"步进器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-stepper.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"禁用全部操作","label":""},{"key":"disableInput","type":["Boolean"],"desc":"禁用输入框","label":""},{"key":"inputWidth","type":["Number"],"desc":"输入框宽度","label":""},{"key":"max","type":["Number"],"desc":"最大值","label":""},{"key":"min","type":["Number"],"desc":"最小值","label":""},{"key":"step","type":["Number"],"desc":"步长","label":""},{"key":"theme","type":["String"],"desc":"组件风格","label":""},{"key":"value","type":["String","Number"],"desc":"值","label":""}],"externalClasses":["t-class","t-class-input","t-class-add","t-class-minus"],"events":[{"key":"bind:blur","desc":"输入框失去焦点时触发","label":""},{"key":"bind:change","desc":"数值发生变更时触发","label":""},{"key":"bind:overlimit","desc":"数值超出限制时触发","label":""}],"tpl":"","path":"./stepper/stepper"},"t-steps":{"key":"t-steps","label":"步骤条","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-steps.png","properties":[{"key":"current","type":["String","Number"],"desc":"当前步骤,即整个步骤条进度。默认根据步骤下标判断步骤的完成状态,当前步骤为进行中,当前步骤之前的步骤为已完成,当前步骤之后的步骤为未开始。如果每个步骤没有设置 value,current 值为步骤长度则表示所有步骤已完成。如果每个步骤设置了自定义 value,则 current = 'FINISH' 表示所有状态完成","label":""},{"key":"currentStatus","type":["String"],"desc":"用于控制 current 指向的步骤条的状态","label":""},{"key":"layout","type":["String"],"desc":"步骤条方向,有两种:横向和纵向","label":""},{"key":"readonly","type":["Boolean"],"desc":"只读状态","label":""},{"key":"separator","type":["String"],"desc":"步骤条分割符","label":""},{"key":"theme","type":["String"],"desc":"步骤条风格","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:change","desc":"当前步骤发生变化时触发","label":""}],"tpl":"","require":{"t-step-item":"./step-item/step-item"},"path":"./steps/steps"},"t-sticky":{"key":"t-sticky","label":"吸顶容器","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-sticky.png","properties":[{"key":"container","type":["String"],"desc":"函数返回容器对应的 NodesRef 节点,将对应节点指定为组件的外部容器,滚动时组件会始终保持在容器范围内,当组件即将超出容器底部时,会返回原位置。","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"offsetTop","type":["String","Number"],"desc":"吸顶时与顶部的距离,单位`px`","label":""},{"key":"zIndex","type":["Number"],"desc":"吸顶时的 z-index","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:scroll","desc":"滚动时触发,scrollTop: 距离顶部位置,isFixed: 是否吸顶","label":""}],"tpl":"","path":"./sticky/sticky"},"t-swipe-cell":{"key":"t-swipe-cell","label":"滑动操作","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-swipecell.png","properties":[{"key":"disabled","type":["Boolean"],"desc":"是否禁用滑动","label":""},{"key":"expanded","type":["String"],"desc":"操作项是否呈现为打开态","label":""},{"key":"left","type":["Array"],"desc":"左侧滑动操作项。所有行为同 `right`","label":""},{"key":"right","type":["Array"],"desc":"右侧滑动操作项。有两种定义方式,一种是使用数组,二种是使用插槽。`right.text` 表示操作文本,`right.className` 表示操作项类名,`right.style` 表示操作项样式,`right.onClick` 表示点击操作项后执行的回调函数。示例:`[{ text: '删除', style: 'background-color: red', onClick: () => {} }]`","label":""}],"events":[{"key":"bind:click","desc":"操作项点击时触发(插槽写法组件不触发,业务侧自定义内容和事件)","label":""}],"tpl":"删除","require":{"t-cell":"./cell/cell"},"path":"./swipe-cell/swipe-cell"},"t-swiper":{"key":"t-swiper","label":"轮播","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-swiper.png","properties":[{"key":"animation","type":["String"],"desc":"轮播切换动画效果类型","label":""},{"key":"autoplay","type":["Boolean"],"desc":"是否自动播放","label":""},{"key":"current","type":["Number"],"desc":"当前轮播在哪一项(下标)","label":""},{"key":"direction","type":["String"],"desc":"轮播滑动方向,包括横向滑动和纵向滑动两个方向","label":""},{"key":"duration","type":["Number"],"desc":"滑动动画时长","label":""},{"key":"height","type":["Number"],"desc":"当使用垂直方向滚动时的高度","label":""},{"key":"interval","type":["Number"],"desc":"轮播间隔时间","label":""},{"key":"loop","type":["Boolean"],"desc":"是否循环播放","label":""},{"key":"navigation","type":["Object"],"desc":"导航器全部配置","label":""}],"events":[{"key":"bind:change","desc":"轮播切换时触发","label":""}],"tpl":"","require":{"t-swiper-item":"./swiper/swiper-item"},"path":"./swiper/swiper"},"t-switch":{"key":"t-switch","label":"开关","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-switch.png","properties":[{"key":"colors","type":["Array"],"desc":"自定义颜色,[打开时的颜色,关闭时的颜色]。组件默认颜色为 ['#0052d9', 'rgba(0, 0, 0, .26']。示例:[blue, gray]","label":""},{"key":"customValue","type":["Array"],"desc":"开关内容,[打开时的值,关闭时的值]。默认为 [true, false]。示例:[1, 0]","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用组件","label":""},{"key":"label","type":["String"],"desc":"开关的标签","label":""},{"key":"loading","type":["Boolean"],"desc":"是否处于加载中状态","label":""},{"key":"size","type":["String"],"desc":"开关尺寸","label":""},{"key":"value","type":["String","Number","Boolean"],"desc":"开关值","label":""}],"events":[{"key":"bind:change","desc":"数据发生变化时触发","label":""}],"tpl":"","path":"./switch/switch"},"t-tab-bar-item":{"key":"t-tab-bar-item","label":"标签栏选项","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabbar.png","properties":[{"key":"badgeProps","type":["Object"],"desc":"图标右上角提示信息","label":""},{"key":"icon","type":["String"],"desc":"图标名称","label":""},{"key":"subTabBar","type":["Array"],"desc":"二级菜单","label":""},{"key":"value","type":["String","Number"],"desc":"标识符","label":""}],"tpl":"{{item.label}}","path":"./tab-bar-item/tab-bar-item"},"t-tab-bar":{"key":"t-tab-bar","label":"标签栏","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabbar.png","properties":[{"key":"bordered","type":["Boolean"],"desc":"是否显示外边框","label":""},{"key":"color","type":["Array"],"desc":"标签颜色设置。示例:[选中标签的颜色, 未选中的标签颜色]","label":""},{"key":"fixed","type":["Boolean"],"desc":"是否固定在底部","label":""},{"key":"safeAreaInsetBottom","type":["Boolean"],"desc":"是否为 iPhoneX 留出底部安全距离","label":""},{"key":"split","type":["Boolean"],"desc":"是否需要分割线","label":""},{"key":"value","type":["String","Number","Array"],"desc":"当前选中标签的索引","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:change","desc":"选中标签切换时触发","label":""}],"tpl":"{{item.label}}","require":{"t-tab-bar-item":"./tab-bar-item/tab-bar-item"},"path":"./tab-bar/tab-bar"},"t-tab-panel":{"key":"t-tab-panel","label":"选项卡面板","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabs.png","properties":[{"key":"destroyOnHide","type":["Boolean"],"desc":"选项卡内容隐藏时是否销毁","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用当前选项卡","label":""},{"key":"label","type":["String"],"desc":"选项卡名称","label":""},{"key":"panel","type":["String"],"desc":"用于自定义选项卡面板内容","label":""},{"key":"value","type":["String","Number"],"desc":"选项卡的值,唯一标识","label":""}],"tpl":"标签一内容","path":"./tab-panel/tab-panel"},"t-tabs":{"key":"t-tabs","label":"选项卡","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tabs.png","properties":[{"key":"animation","type":["Object"],"desc":"动画效果设置。其中 duration 表示动画时长","label":""},{"key":"placement","type":["String"],"desc":"选项卡位置","label":""},{"key":"showBottomLine","type":["Boolean"],"desc":"是否展示底部激活线条","label":""},{"key":"stickyProps","type":["Object"],"desc":"是否支持吸顶","label":""},{"key":"value","type":["String","Number"],"desc":"激活的选项卡值","label":""}],"externalClasses":["t-class","t-class-item","t-class-active","t-class-track"],"events":[{"key":"bind:change","desc":"激活的选项卡发生变化时触发","label":""}],"tpl":"标签一内容标签二内容","require":{"t-tab-panel":"./tab-panel/tab-panel"},"path":"./tabs/tabs"},"t-tag":{"key":"t-tag","label":"标签","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-tag.png","properties":[{"key":"closable","type":["Boolean"],"desc":"标签是否可关闭","label":""},{"key":"disabled","type":["Boolean"],"desc":"标签禁用态,失效标签不能触发事件。默认风格(theme=default)才有禁用态","label":""},{"key":"icon","type":["String"],"desc":"标签中的图标,可自定义图标呈现","label":""},{"key":"maxWidth","type":["String","Number"],"desc":"标签最大宽度,宽度超出后会出现省略号。示例:'50px' / 80","label":""},{"key":"shape","type":["String"],"desc":"标签类型,有三种:方形、圆角方形、标记型","label":""},{"key":"size","type":["String"],"desc":"标签尺寸","label":""},{"key":"theme","type":["String"],"desc":"组件风格,用于描述组件不同的应用场景","label":""},{"key":"variant","type":["String"],"desc":"标签风格变体","label":""}],"externalClasses":["t-class"],"events":[{"key":"bind:click","desc":"点击时触发","label":""},{"key":"bind:close","desc":"如果关闭按钮存在,点击关闭按钮时触发","label":""}],"tpl":"重要","path":"./tag/tag"},"t-textarea":{"key":"t-textarea","label":"文本输入框","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-textarea.png","properties":[{"key":"adjustPosition","type":["Boolean"],"desc":"键盘弹起时,是否自动上推页面","label":""},{"key":"autofocus","type":["Boolean"],"desc":"自动聚焦,拉起键盘","label":""},{"key":"autosize","type":["Boolean"],"desc":"是否自动增高,值为 autosize 时,style.height 不生效","label":""},{"key":"confirmHold","type":["Boolean"],"desc":"点击键盘右下角按钮时是否保持键盘不收起点","label":""},{"key":"confirmType","type":["String"],"desc":"设置键盘右下角按钮的文字,仅在 type='text'时生效","label":""},{"key":"disabled","type":["Boolean"],"desc":"是否禁用文本框","label":""},{"key":"focus","type":["Boolean"],"desc":"自动聚焦","label":""},{"key":"label","type":["String"],"desc":"左侧文本","label":""},{"key":"maxcharacter","type":["Number"],"desc":"用户最多可以输入的字符个数,一个中文汉字表示两个字符长度","label":""},{"key":"maxlength","type":["Number"],"desc":"用户最多可以输入的字符个数","label":""},{"key":"placeholder","type":["String"],"desc":"占位符","label":""},{"key":"value","type":["String"],"desc":"文本框值","label":""}],"externalClasses":["t-class","t-class-textarea","t-class-placeholder","t-class-name"],"events":[{"key":"bind:blur","desc":"失去焦点时触发","label":""},{"key":"bind:change","desc":"输入内容变化时触发","label":""},{"key":"bind:enter","desc":"点击完成时触发","label":""},{"key":"bind:focus","desc":"获得焦点时触发","label":""},{"key":"bind:line-change","desc":"行高发生变化时触发","label":""}],"tpl":"","path":"./textarea/textarea"},"t-toast":{"key":"t-toast","label":"轻提示","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-toast.png","properties":[{"key":"direction","type":["String"],"desc":"图标排列方式","label":""},{"key":"duration","type":["Number"],"desc":"弹窗显示毫秒数","label":""},{"key":"icon","type":["String"],"desc":"自定义图标","label":""},{"key":"message","type":["String"],"desc":"弹窗显示文字","label":""},{"key":"overlayProps","type":["Object"],"desc":"遮罩层属性,透传至 Overlay","label":""},{"key":"placement","type":["String"],"desc":"弹窗展示位置","label":""},{"key":"preventScrollThrough","type":["Boolean"],"desc":"防止滚动穿透,即不允许点击和滚动","label":""},{"key":"showOverlay","type":["Boolean"],"desc":"是否显示遮罩层","label":""},{"key":"theme","type":["String"],"desc":"提示类型","label":""}],"externalClasses":["t-class"],"tpl":"","path":"./toast/toast"},"t-transition":{"key":"t-transition","label":"动画","icon":"","properties":[{"key":"appear","type":["Boolean"],"desc":"首次出现是否展示动画","label":""},{"key":"customClass","type":["String"],"desc":"自定义容器类名","label":""},{"key":"destoryOnClose","type":["Boolean"],"desc":"隐藏时是否销毁内容","label":""},{"key":"duration","type":["Number"],"desc":"指定过渡时间","label":""},{"key":"name","type":["String"],"desc":"过渡类名","label":""},{"key":"visible","type":["Boolean"],"desc":"是否显示","label":""}],"tpl":"","path":"./transition/transition"},"t-upload":{"key":"t-upload","label":"上传","icon":"https://tdesign.gtimg.com/site/miniprogram-doc/doc-upload.png","properties":[{"key":"addContent","type":["String"],"desc":"添加按钮内容。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"allowUploadDuplicateFile","type":["Boolean"],"desc":"是否允许重复上传相同文件名的文件","label":""},{"key":"config","type":["Object"],"desc":"图片上传配置,视频上传配置,文件上传配置等,包含图片尺寸、图片来源、视频来源、视频拍摄最长时间等。更多细节查看小程序官网。[图片上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)。[视频上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html)","label":""},{"key":"deleteBtn","type":["String"],"desc":"删除图标。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"fileListDisplay","type":["String"],"desc":"用于完全自定义文件列表内容","label":""},{"key":"files","type":["Array"],"desc":"已上传文件列表","label":""},{"key":"gridConfig","type":["Object"],"desc":"upload组件每行上传图片列数以及图片的宽度和高度","label":""},{"key":"gutter","type":["Number"],"desc":"预览窗格的 `gutter` 大小,单位 rpx","label":""},{"key":"imageProps","type":["Object"],"desc":"透传 Image 组件全部属性","label":""},{"key":"max","type":["Number"],"desc":"用于控制文件上传数量,值为 0 则不限制","label":""},{"key":"mediaType","type":["Array"],"desc":"支持上传的文件类型,图片或视频","label":""},{"key":"requestMethod","type":["String"],"desc":"自定义上传方法","label":""},{"key":"sizeLimit","type":["Number","Object"],"desc":"图片文件大小限制,单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }`","label":""}],"events":[{"key":"bind:add","desc":"上传成功后触发,仅包含本次选择的照片;`url` 表示选定视频的临时文件路径 (本地路径)。`duration` 表示选定视频的时间长度。`size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""},{"key":"bind:complete","desc":"上传成功或失败后触发","label":""},{"key":"bind:fail","desc":"上传失败后触发","label":""},{"key":"bind:remove","desc":"移除文件时触发","label":""},{"key":"bind:select-change","desc":"选择文件或图片之后,上传之前,触发该事件。
`files` 表示之前已经上传完成的文件列表。
`currentSelectedFiles` 表示本次上传选中的文件列表","label":""},{"key":"bind:success","desc":"上传成功后触发,包含所有上传的文件;`url` 表示选定视频的临时文件路径 (本地路径)。`duration` 表示选定视频的时间长度。`size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""}],"tpl":"","path":"./upload/upload"}},"common":{"properties":{},"events":{}},"menu":[{"key":"menu-basic","label":"基础","submenu":[{"key":"subMenu-button","label":"Button 按钮","components":["t-button"]},{"key":"subMenu-divider","label":"Divider 分割线","components":["t-divider"]},{"key":"subMenu-fab","label":"Fab 悬浮按钮","components":["t-fab"]},{"key":"subMenu-icon","label":"Icon 图标","components":["t-icon"]}]},{"key":"menu-nav","label":"导航","submenu":[{"key":"subMenu-drawer","label":"Drawer 抽屉","components":["t-drawer"]},{"key":"subMenu-indexes","label":"Indexes 索引","components":["t-indexes"]},{"key":"subMenu-navbar","label":"Navbar 导航条","components":["t-navbar"]},{"key":"subMenu-steps","label":"Steps 步骤条","components":["t-steps"]},{"key":"subMenu-tabbar","label":"TabBar 标签栏","components":["t-tab-bar"]},{"key":"subMenu-tabs","label":"Tabs 选项卡","components":["t-tabs"]}]},{"key":"menu-input","label":"输入","submenu":[{"key":"subMenu-checkbox","label":"CheckBox 复选框","components":["t-checkbox"]},{"key":"subMenu-dateTimePicker","label":"DateTimePicker 时间选择器","components":["t-date-time-picker"]},{"key":"subMenu-input","label":"Input 输入框","components":["t-input"]},{"key":"subMenu-picker","label":"Picker 选择器","components":["t-picker"]},{"key":"subMenu-radio","label":"Radio 单选框","components":["t-radio"]},{"key":"subMenu-rate","label":"Rate 评分","components":["t-rate"]},{"key":"subMenu-search","label":"Search 搜索框","components":["t-search"]},{"key":"subMenu-slider","label":"Slider 滑动选择器","components":["t-slider"]},{"key":"subMenu-stepper","label":"Stepper 步进器","components":["t-stepper"]},{"key":"subMenu-switch","label":"Switch 开关","components":["t-switch"]},{"key":"subMenu-textarea","label":"Textarea 多行文本框","components":["t-textarea"]},{"key":"subMenu-upload","label":"UpLoad 上传","components":["t-upload"]}]},{"key":"menu-data","label":"数据展示","submenu":[{"key":"subMenu-avatar","label":"Avatar 头像","components":["t-avatar"]},{"key":"subMenu-badge","label":"Badge 徽标","components":["t-badge"]},{"key":"subMenu-cell","label":"Cell 单元格","components":["t-cell"]},{"key":"subMenu-collapse","label":"Collapse 折叠面板","components":["t-collapse"]},{"key":"subMenu-dropdown-menu","label":"DropdownMenu 下拉菜单","components":["t-dropdown-menu"]},{"key":"subMenu-empty","label":"Empty 空状态","components":["t-empty"]},{"key":"subMenu-footer","label":"Footer 页脚","components":["t-footer"]},{"key":"subMenu-grid","label":"Grid 宫格","components":["t-grid"]},{"key":"subMenu-image","label":"Image 图片","components":["t-image"]},{"key":"subMenu-skeleton","label":"Skeleton 骨架屏","components":["t-skeleton"]},{"key":"subMenu-sticky","label":"Sticky 吸顶容器","components":["t-sticky"]},{"key":"subMenu-swiper","label":"Swiper 轮播图","components":["t-swiper"]},{"key":"subMenu-tag","label":"Tag 标签","components":["t-tag"]}]},{"key":"menu-info","label":"消息提醒","submenu":[{"key":"subMenu-actionsheet","label":"ActionSheet 动作面板","components":["t-action-sheet"]},{"key":"subMenu-back-top","label":"BackTop 返回顶部","components":["t-back-top"]},{"key":"subMenu-dialog","label":"Dialog 弹出框","components":["t-dialog"]},{"key":"subMenu-loading","label":"Loading 加载","components":["t-loading"]},{"key":"subMenu-message","label":"Message 消息通知","components":["t-message"]},{"key":"subMenu-popup","label":"Popup 弹出层","components":["t-popup"]},{"key":"subMenu-progress","label":"Progress 进度条","components":["t-progress"]},{"key":"subMenu-pullDownRefresh","label":"PullDownRefresh 下拉刷新","components":["t-pull-down-refresh"]},{"key":"subMenu-swipeCell","label":"SwipeCell 滑动操作","components":["t-swipe-cell"]},{"key":"subMenu-toast","label":"Toast 轻提示","components":["t-toast"]}]}]}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts
new file mode 100644
index 0000000..02e0cf5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.d.ts
@@ -0,0 +1,85 @@
+import { SuperComponent } from '../common/src/index';
+export default class ActionSheet extends SuperComponent {
+ static show: (options: import("./show").ActionSheetShowOption) => WechatMiniprogram.Component.TrivialInstance;
+ behaviors: string[];
+ externalClasses: string[];
+ properties: {
+ align?: {
+ type: StringConstructor;
+ value?: "left" | "center";
+ };
+ cancelText?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ count?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ items: {
+ type: ArrayConstructor;
+ value?: (string | import("./type").ActionSheetItem)[];
+ required?: boolean;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: import("../popup").TdPopupProps;
+ };
+ showCancel?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: "list" | "grid";
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ gridThemeItems: any[];
+ currentSwiperIndex: number;
+ defaultPopUpProps: {};
+ defaultPopUpzIndex: number;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'visible, items'(visible: boolean): void;
+ };
+ methods: {
+ init(): void;
+ memoInitialData(): void;
+ splitGridThemeActions(): void;
+ show(options: any): void;
+ close(): void;
+ onPopupVisibleChange({ detail }: {
+ detail: any;
+ }): void;
+ onSwiperChange(e: WechatMiniprogram.TouchEvent): void;
+ onSelect(event: WechatMiniprogram.TouchEvent): void;
+ onCancel(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js
new file mode 100644
index 0000000..c40d3c7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{chunk}from"../common/utils";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{ActionSheetTheme,show}from"./show";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-action-sheet`;let ActionSheet=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-cancel`],this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,gridThemeItems:[],currentSwiperIndex:0,defaultPopUpProps:{},defaultPopUpzIndex:11500},this.controlledProps=[{key:"visible",event:"visible-change"}],this.observers={"visible, items"(e){e&&this.init()}},this.methods={init(){this.memoInitialData(),this.splitGridThemeActions()},memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)},splitGridThemeActions(){this.data.theme===ActionSheetTheme.Grid&&this.setData({gridThemeItems:chunk(this.data.items,this.data.count)})},show(e){this.setData(Object.assign(Object.assign(Object.assign({},this.initialData),e),{visible:!0})),this.splitGridThemeActions(),this.autoClose=!0,this._trigger("visible-change",{visible:!0})},close(){this.triggerEvent("close",{trigger:"command"}),this._trigger("visible-change",{visible:!1})},onPopupVisibleChange({detail:e}){e.visible||(this.triggerEvent("close",{trigger:"overlay"}),this._trigger("visible-change",{visible:!1})),this.autoClose&&(this.setData({visible:!1}),this.autoClose=!1)},onSwiperChange(e){const{current:t}=e.detail;this.setData({currentSwiperIndex:t})},onSelect(e){const{currentSwiperIndex:t,items:i,gridThemeItems:s,count:o,theme:r}=this.data,{index:n}=e.currentTarget.dataset,a=r===ActionSheetTheme.Grid,h=a?s[t][n]:i[n],c=a?n+t*o:n;h&&(this.triggerEvent("selected",{selected:h,index:c}),h.disabled||(this.triggerEvent("close",{trigger:"select"}),this._trigger("visible-change",{visible:!1})))},onCancel(){this.triggerEvent("cancel"),this.autoClose&&(this.setData({visible:!1}),this.autoClose=!1)}}}};ActionSheet.show=show,ActionSheet=__decorate([wxComponent()],ActionSheet);export default ActionSheet;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json
new file mode 100644
index 0000000..ca2efb1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-popup":"../popup/popup","t-grid":"../grid/grid","t-grid-item":"../grid-item/grid-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml
new file mode 100644
index 0000000..cabb001
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxml
@@ -0,0 +1 @@
+{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxs b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxs
new file mode 100644
index 0000000..af7a695
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxs
@@ -0,0 +1,19 @@
+var getListThemeItemClass = function (props) {
+ var classPrefix = props.classPrefix;
+ var item = props.item;
+ var prefix = props.prefix;
+ var classList = [classPrefix + '__list-item'];
+ if (item.disabled) {
+ classList.push(prefix + '-is-disabled');
+ }
+ return classList.join(' ');
+};
+
+var isImage = function (name) {
+ return name.indexOf('/') !== -1;
+};
+
+module.exports = {
+ getListThemeItemClass: getListThemeItemClass,
+ isImage: isImage,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxss b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxss
new file mode 100644
index 0000000..e9cc05f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/action-sheet.wxss
@@ -0,0 +1 @@
+@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-extra-large,24rpx));border-top-right-radius:var(--td-action-sheet-border-radius,var(--td-radius-extra-large,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-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: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{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: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__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}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/index.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.d.ts
new file mode 100644
index 0000000..5c41389
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.d.ts
@@ -0,0 +1,8 @@
+///
+import { ActionSheetItem, ActionSheetTheme, ActionSheetShowOption } from './show';
+export { ActionSheetItem, ActionSheetTheme, ActionSheetShowOption };
+declare const _default: {
+ show(options: ActionSheetShowOption): WechatMiniprogram.Component.TrivialInstance;
+ close(options: ActionSheetShowOption): void;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/index.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.js
new file mode 100644
index 0000000..61d7ee7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/index.js
@@ -0,0 +1 @@
+import{show,close,ActionSheetTheme}from"./show";export{ActionSheetTheme};export default{show:e=>show(e),close:e=>close(e)};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/props.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.d.ts
new file mode 100644
index 0000000..0fff787
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.d.ts
@@ -0,0 +1,3 @@
+import { TdActionSheetProps } from './type';
+declare const props: TdActionSheetProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/props.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.js
new file mode 100644
index 0000000..25c1215
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"center"},cancelText:{type:String,value:""},count:{type:Number,value:8},description:{type:String,value:""},items:{type:Array,required:!0},popupProps:{type:Object,value:{}},showCancel:{type:Boolean,value:!0},showOverlay:{type:Boolean,value:!0},theme:{type:String,value:"list"},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/show.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.d.ts
new file mode 100644
index 0000000..7076439
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.d.ts
@@ -0,0 +1,26 @@
+///
+///
+import { ActionSheetItem } from './type';
+export { ActionSheetItem };
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+export declare enum ActionSheetTheme {
+ List = "list",
+ Grid = "grid"
+}
+interface ActionSheetProps {
+ align: 'center' | 'left';
+ cancelText?: string;
+ count?: number;
+ description: string;
+ items: Array;
+ showCancel?: boolean;
+ theme?: ActionSheetTheme;
+ visible: boolean;
+ defaultVisible?: boolean;
+}
+export interface ActionSheetShowOption extends Omit {
+ context?: Context;
+ selector?: string;
+}
+export declare const show: (options: ActionSheetShowOption) => WechatMiniprogram.Component.TrivialInstance;
+export declare const close: (options: ActionSheetShowOption) => void;
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/show.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.js
new file mode 100644
index 0000000..36f15fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/show.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{getInstance}from"../common/utils";export var ActionSheetTheme;!function(t){t.List="list",t.Grid="grid"}(ActionSheetTheme||(ActionSheetTheme={}));export const show=function(t){const e=Object.assign({},t),{context:o,selector:n="#t-action-sheet"}=e,c=__rest(e,["context","selector"]),s=getInstance(o,n);if(s)return s.show(Object.assign({},c)),s;console.error("未找到组件,请确认 selector && context 是否正确")};export const close=function(t){const{context:e,selector:o="#t-action-sheet"}=Object.assign({},t),n=getInstance(e,o);n&&n.close()};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/template/grid.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/grid.wxml
new file mode 100644
index 0000000..29334a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/grid.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/template/list.wxml b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/list.wxml
new file mode 100644
index 0000000..a1e8bc9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/template/list.wxml
@@ -0,0 +1 @@
+{{item.label || item}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/type.d.ts b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.d.ts
new file mode 100644
index 0000000..8eb7822
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.d.ts
@@ -0,0 +1,59 @@
+import { PopupProps } from '../popup/index';
+export interface TdActionSheetProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'center' | 'left';
+ };
+ cancelText?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ count?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ items: {
+ type: ArrayConstructor;
+ value?: Array;
+ required?: boolean;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ showCancel?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'list' | 'grid';
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export interface ActionSheetItem {
+ label: string;
+ color?: string;
+ disabled?: boolean;
+ icon?: string;
+ suffixIcon?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/action-sheet/type.js b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/action-sheet/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.d.ts
new file mode 100644
index 0000000..e131442
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class AvatarGroup extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdAvatarGroupProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ hasChild: boolean;
+ length: number;
+ className: string;
+ };
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ lifetimes: {
+ attached(): void;
+ ready(): void;
+ };
+ observers: {
+ 'cascading, size'(): void;
+ };
+ methods: {
+ setClass(): void;
+ handleMax(): void;
+ onCollapsedItemClick(e: WechatMiniprogram.CustomEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.js b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.js
new file mode 100644
index 0000000..1033214
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import avatarGroupProps from"./props";const{prefix:prefix}=config,name=`${prefix}-avatar-group`;let AvatarGroup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-image`],this.properties=avatarGroupProps,this.data={prefix:prefix,classPrefix:name,hasChild:!0,length:0,className:""},this.options={multipleSlots:!0},this.relations={"../avatar/avatar":{type:"descendant"}},this.lifetimes={attached(){this.setClass()},ready(){this.setData({length:this.$children.length}),this.handleMax()}},this.observers={"cascading, size"(){this.setClass()}},this.methods={setClass(){const{cascading:e,size:t}=this.properties,s=e.split("-")[0],a=[name,`${prefix}-class`,`${name}-offset-${s}`,`${name}-offset-${s}-${t.indexOf("px")>-1?"medium":t||"medium"}`];this.setData({className:a.join(" ")})},handleMax(){const{max:e}=this.data,t=this.$children.length;if(!e||e>t)return;this.$children.splice(e,t-e).forEach((e=>{e.hide()}))},onCollapsedItemClick(e){this.triggerEvent("collapsed-item-click",e.detail)}}}};AvatarGroup=__decorate([wxComponent()],AvatarGroup);export default AvatarGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.json b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.json
new file mode 100644
index 0000000..a51c00f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"shared","usingComponents":{"t-avatar":"../avatar/avatar"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxml b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxml
new file mode 100644
index 0000000..95519ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxml
@@ -0,0 +1 @@
+{{collapseAvatar}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxss b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxss
new file mode 100644
index 0000000..3e354ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/avatar-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-avatar-group{display:inline-flex;flex-wrap:wrap;align-items:center}.t-avatar-group-offset-left .t-avatar__wrapper,.t-avatar-group-offset-right .t-avatar__wrapper{padding:var(--td-avatar-group-line-spacing,4rpx) 0}.t-avatar-group-offset-left-small,.t-avatar-group-offset-right-small{--td-avatar-margin-left:var(--td-avatar-group-margin-left-small, -16rpx)}.t-avatar-group-offset-left-medium,.t-avatar-group-offset-right-medium{--td-avatar-margin-left:var(--td-avatar-group-margin-left-medium, -16rpx)}.t-avatar-group-offset-left-large,.t-avatar-group-offset-right-large{--td-avatar-margin-left:var(--td-avatar-group-margin-left-large, -16rpx)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(1){z-index:calc(var(--td-avatar-group-init-z-index,50) - 1)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(2){z-index:calc(var(--td-avatar-group-init-z-index,50) - 2)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(3){z-index:calc(var(--td-avatar-group-init-z-index,50) - 3)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(4){z-index:calc(var(--td-avatar-group-init-z-index,50) - 4)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(5){z-index:calc(var(--td-avatar-group-init-z-index,50) - 5)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(6){z-index:calc(var(--td-avatar-group-init-z-index,50) - 6)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(7){z-index:calc(var(--td-avatar-group-init-z-index,50) - 7)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(8){z-index:calc(var(--td-avatar-group-init-z-index,50) - 8)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(9){z-index:calc(var(--td-avatar-group-init-z-index,50) - 9)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(10){z-index:calc(var(--td-avatar-group-init-z-index,50) - 10)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(11){z-index:calc(var(--td-avatar-group-init-z-index,50) - 11)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(12){z-index:calc(var(--td-avatar-group-init-z-index,50) - 12)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(13){z-index:calc(var(--td-avatar-group-init-z-index,50) - 13)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(14){z-index:calc(var(--td-avatar-group-init-z-index,50) - 14)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(15){z-index:calc(var(--td-avatar-group-init-z-index,50) - 15)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(16){z-index:calc(var(--td-avatar-group-init-z-index,50) - 16)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(17){z-index:calc(var(--td-avatar-group-init-z-index,50) - 17)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(18){z-index:calc(var(--td-avatar-group-init-z-index,50) - 18)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(19){z-index:calc(var(--td-avatar-group-init-z-index,50) - 19)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(20){z-index:calc(var(--td-avatar-group-init-z-index,50) - 20)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(21){z-index:calc(var(--td-avatar-group-init-z-index,50) - 21)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(22){z-index:calc(var(--td-avatar-group-init-z-index,50) - 22)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(23){z-index:calc(var(--td-avatar-group-init-z-index,50) - 23)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(24){z-index:calc(var(--td-avatar-group-init-z-index,50) - 24)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(25){z-index:calc(var(--td-avatar-group-init-z-index,50) - 25)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(26){z-index:calc(var(--td-avatar-group-init-z-index,50) - 26)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(27){z-index:calc(var(--td-avatar-group-init-z-index,50) - 27)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(28){z-index:calc(var(--td-avatar-group-init-z-index,50) - 28)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(29){z-index:calc(var(--td-avatar-group-init-z-index,50) - 29)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(30){z-index:calc(var(--td-avatar-group-init-z-index,50) - 30)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(31){z-index:calc(var(--td-avatar-group-init-z-index,50) - 31)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(32){z-index:calc(var(--td-avatar-group-init-z-index,50) - 32)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(33){z-index:calc(var(--td-avatar-group-init-z-index,50) - 33)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(34){z-index:calc(var(--td-avatar-group-init-z-index,50) - 34)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(35){z-index:calc(var(--td-avatar-group-init-z-index,50) - 35)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(36){z-index:calc(var(--td-avatar-group-init-z-index,50) - 36)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(37){z-index:calc(var(--td-avatar-group-init-z-index,50) - 37)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(38){z-index:calc(var(--td-avatar-group-init-z-index,50) - 38)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(39){z-index:calc(var(--td-avatar-group-init-z-index,50) - 39)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(40){z-index:calc(var(--td-avatar-group-init-z-index,50) - 40)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(41){z-index:calc(var(--td-avatar-group-init-z-index,50) - 41)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(42){z-index:calc(var(--td-avatar-group-init-z-index,50) - 42)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(43){z-index:calc(var(--td-avatar-group-init-z-index,50) - 43)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(44){z-index:calc(var(--td-avatar-group-init-z-index,50) - 44)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(45){z-index:calc(var(--td-avatar-group-init-z-index,50) - 45)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(46){z-index:calc(var(--td-avatar-group-init-z-index,50) - 46)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(47){z-index:calc(var(--td-avatar-group-init-z-index,50) - 47)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(48){z-index:calc(var(--td-avatar-group-init-z-index,50) - 48)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(49){z-index:calc(var(--td-avatar-group-init-z-index,50) - 49)}.t-avatar-group-offset-left .t-avatar__wrapper:nth-child(50){z-index:calc(var(--td-avatar-group-init-z-index,50) - 50)}.t-avatar-group__collapse--default,.t-avatar-group__collapse--slot{z-index:0;font-weight:600}.t-avatar-group__collapse--slot{float:left}.t-avatar-group__collapse--slot:not(:empty)+.t-avatar-group__collapse--default{display:none;float:left}.t-avatar-group__collapse--slot:empty+.t-avatar-group__collapse--default{display:block;float:left}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.d.ts
new file mode 100644
index 0000000..892b866
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdAvatarGroupProps } from './type';
+declare const props: TdAvatarGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/props.js b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.js
new file mode 100644
index 0000000..b7a3a48
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/props.js
@@ -0,0 +1 @@
+const props={cascading:{type:String,value:"left-up"},collapseAvatar:{type:String},max:{type:Number},shape:{type:String},size:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.d.ts
new file mode 100644
index 0000000..7f233f4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.d.ts
@@ -0,0 +1,24 @@
+import { ShapeEnum } from '../common/common';
+export interface TdAvatarGroupProps {
+ cascading?: {
+ type: StringConstructor;
+ value?: CascadingValue;
+ };
+ collapseAvatar?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: ShapeEnum;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export declare type CascadingValue = 'left-up' | 'right-up';
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar-group/type.js b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.d.ts
new file mode 100644
index 0000000..4ecd9f6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.d.ts
@@ -0,0 +1,22 @@
+///
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Avatar extends SuperComponent {
+ options: WechatMiniprogram.Component.ComponentOptions;
+ externalClasses: string[];
+ properties: import("./type").TdAvatarProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ isShow: boolean;
+ zIndex: number;
+ systemInfo: WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
+ };
+ relations: RelationsOptions;
+ observers: {
+ icon(icon: any): void;
+ };
+ methods: {
+ hide(): void;
+ onLoadError(e: WechatMiniprogram.CustomEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.js b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.js
new file mode 100644
index 0000000..44d3c60
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.js
@@ -0,0 +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;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.json b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.json
new file mode 100644
index 0000000..0bc94ec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"shared","usingComponents":{"t-icon":"../icon/icon","t-badge":"../badge/badge","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxml b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxml
new file mode 100644
index 0000000..38f77b0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxs b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxs
new file mode 100644
index 0000000..240a956
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxs
@@ -0,0 +1,30 @@
+module.exports = {
+ getClass: function (classPrefix, size, shape, bordered) {
+ var hasPx = (size || '').indexOf('px') > -1;
+ var borderSize = hasPx ? 'medium' : size;
+ var classNames = [
+ classPrefix,
+ classPrefix + (shape === 'round' ? '--round' : '--circle'),
+ bordered ? classPrefix + '--border' + ' ' + classPrefix + '--border-' + borderSize : '',
+ hasPx ? '' : classPrefix + '--' + size,
+ ];
+ return classNames.join(' ');
+ },
+
+ getSize: function (size = 'medium', systemInfo) {
+ 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);
+ }
+
+ return 'width:' + size + ';height:' + size + ';font-size:' + ((px / 8) * 3 + 2) + 'px';
+ }
+ },
+
+ getStyles: function (isShow) {
+ return isShow ? '' : 'display: none;';
+ },
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxss b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxss
new file mode 100644
index 0000000..1d11ffc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/avatar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-avatar{display:flex;align-items:center;justify-content:center;box-sizing:border-box;background-color:var(--td-avatar-bg-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)));color:var(--td-avatar-content-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-avatar__wrapper{display:inline-flex;position:relative;vertical-align:top;margin-left:var(--td-avatar-margin-left,0)}.t-avatar--large{width:var(--td-avatar-large-width,128rpx);height:var(--td-avatar-large-width,128rpx);font-size:var(--td-avatar-text-large-font-size,var(--td-font-size-xl,40rpx))}.t-avatar--large .t-avatar__icon{font-size:var(--td-avatar-icon-large-font-size,64rpx)}.t-avatar--medium{width:var(--td-avatar-medium-width,96rpx);height:var(--td-avatar-medium-width,96rpx);font-size:var(--td-avatar-text-medium-font-size,var(--td-font-size-m,32rpx))}.t-avatar--medium .t-avatar__icon{font-size:var(--td-avatar-icon-medium-font-size,48rpx)}.t-avatar--small{width:var(--td-avatar-small-width,80rpx);height:var(--td-avatar-small-width,80rpx);font-size:var(--td-avatar-text-small-font-size,var(--td-font-size-base,28rpx))}.t-avatar--small .t-avatar__icon{font-size:var(--td-avatar-icon-small-font-size,40rpx)}.t-avatar .t-image,.t-avatar__image{width:100%;height:100%}.t-avatar--circle{border-radius:var(--td-avatar-circle-border-radius,var(--td-radius-circle,50%));overflow:hidden}.t-avatar--round{border-radius:var(--td-avatar-round-border-radius,var(--td-radius-default,12rpx));overflow:hidden}.t-avatar__icon,.t-avatar__text{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.t-avatar__icon:empty,.t-avatar__text:empty{width:0;height:0}.t-avatar--border{border-color:var(--td-avatar-border-color,#fff);border-style:solid}.t-avatar--border-small{border-width:var(--td-avatar-border-width-small,2rpx)}.t-avatar--border-medium{border-width:var(--td-avatar-border-width-medium,4rpx)}.t-avatar--border-large{border-width:var(--td-avatar-border-width-large,6rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar/props.d.ts
new file mode 100644
index 0000000..f3e7907
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdAvatarProps } from './type';
+declare const props: TdAvatarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/props.js b/miniprogram_npm/tdesign-miniprogram/avatar/props.js
new file mode 100644
index 0000000..e586fb3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/props.js
@@ -0,0 +1 @@
+const props={alt:{type:String,value:""},badgeProps:{type:Object},bordered:{type:Boolean,value:!1},hideOnLoadFailed:{type:Boolean,value:!1},icon:{type:null},image:{type:String,value:""},imageProps:{type:Object},shape:{type:String},size:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/avatar/type.d.ts
new file mode 100644
index 0000000..79cac9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/type.d.ts
@@ -0,0 +1,41 @@
+import { BadgeProps } from '../badge/index';
+import { ImageProps } from '../image/index';
+import { ShapeEnum } from '../common/common';
+export interface TdAvatarProps {
+ alt?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hideOnLoadFailed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: ImageProps;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: ShapeEnum;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/avatar/type.js b/miniprogram_npm/tdesign-miniprogram/avatar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/avatar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/back-top.d.ts b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.d.ts
new file mode 100644
index 0000000..ced948c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.d.ts
@@ -0,0 +1,26 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class BackTop extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdBackTopProps;
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ _icon: any;
+ hidden: boolean;
+ };
+ observers: {
+ icon(): void;
+ scrollTop(value: number): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ setIcon(v: any): void;
+ toTop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/back-top.js b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.js
new file mode 100644
index 0000000..9a9becb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-back-top`;let BackTop=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-text`],this.options={multipleSlots:!0},this.properties=props,this.relations={"../pull-down-refresh/pull-down-refresh":{type:"ancestor"}},this.data={prefix:prefix,classPrefix:name,_icon:null,hidden:!0},this.observers={icon(){this.setIcon()},scrollTop(o){const{visibilityHeight:t}=this.properties;this.setData({hidden:o{{text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/back-top.wxss b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.wxss
new file mode 100644
index 0000000..eed10f4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/back-top.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-back-top{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:transparent;overflow:hidden;box-sizing:border-box;transition:height .2s;height:auto}.t-back-top--fixed{position:fixed;right:var(--td-spacer,16rpx);bottom:calc(var(--td-spacer-2,32rpx) + env(safe-area-inset-bottom))}.t-back-top--round,.t-back-top--round-dark{width:96rpx;height:96rpx;border-radius:var(--td-back-top-round-border-radius,var(--td-radius-circle,50%))}.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{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}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/props.d.ts b/miniprogram_npm/tdesign-miniprogram/back-top/props.d.ts
new file mode 100644
index 0000000..5ac1e9f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/props.d.ts
@@ -0,0 +1,3 @@
+import { TdBackTopProps } from './type';
+declare const props: TdBackTopProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/props.js b/miniprogram_npm/tdesign-miniprogram/back-top/props.js
new file mode 100644
index 0000000..f1233c8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/props.js
@@ -0,0 +1 @@
+const props={fixed:{type:Boolean,value:!0},icon:{type:null,value:!0},scrollTop:{type:Number,value:0},style:{type:String,value:""},text:{type:String,value:""},theme:{type:String,value:"round"},visibilityHeight:{type:Number,value:200}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/type.d.ts b/miniprogram_npm/tdesign-miniprogram/back-top/type.d.ts
new file mode 100644
index 0000000..9071651
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdBackTopProps {
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ scrollTop?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'round' | 'half-round' | 'round-dark' | 'half-round-dark';
+ };
+ visibilityHeight?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/back-top/type.js b/miniprogram_npm/tdesign-miniprogram/back-top/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/back-top/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/badge.d.ts
new file mode 100644
index 0000000..2680a17
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdBadgeProps } from './type';
+export interface BadgeProps extends TdBadgeProps {
+}
+export default class Badge extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: TdBadgeProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ value: string;
+ labelID: string;
+ descriptionID: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.js b/miniprogram_npm/tdesign-miniprogram/badge/badge.js
new file mode 100644
index 0000000..90075aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.js
@@ -0,0 +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;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.json b/miniprogram_npm/tdesign-miniprogram/badge/badge.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.wxml b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxml
new file mode 100644
index 0000000..81e7b25
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxml
@@ -0,0 +1 @@
+{{content}}{{ _this.getBadgeValue({dot, count, maxCount}) }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.wxs b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxs
new file mode 100644
index 0000000..613263c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxs
@@ -0,0 +1,71 @@
+var getBadgeValue = function (props) {
+ if (props.dot) {
+ return '';
+ }
+ if (isNaN(props.count) || isNaN(props.maxCount)) {
+ return props.count;
+ }
+ return parseInt(props.count) > props.maxCount ? props.maxCount + '+' : props.count;
+};
+
+var hasUnit = function (unit) {
+ return (
+ unit.indexOf('px') > 0 ||
+ unit.indexOf('rpx') > 0 ||
+ unit.indexOf('em') > 0 ||
+ unit.indexOf('rem') > 0 ||
+ unit.indexOf('%') > 0 ||
+ unit.indexOf('vh') > 0 ||
+ unit.indexOf('vm') > 0
+ );
+};
+
+var getBadgeStyles = function (props) {
+ var styleStr = '';
+ if (props.color) {
+ styleStr += 'background:' + props.color + ';';
+ }
+ if (props.offset[0]) {
+ styleStr +=
+ 'left: calc(100% + ' + (hasUnit(props.offset[0].toString()) ? props.offset[0] : props.offset[0] + 'px') + ');';
+ }
+ if (props.offset[1]) {
+ styleStr += 'top:' + (hasUnit(props.offset[1].toString()) ? props.offset[1] : props.offset[1] + 'px') + ';';
+ }
+ 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 classNames = [
+ baseClass + '--basic',
+ props.dot ? baseClass + '--dot' : '',
+ baseClass + '--' + props.size,
+ baseClass + '--' + props.shape,
+ !props.dot && props.count ? baseClass + '--count' : '',
+ ];
+ return classNames.join(' ');
+};
+
+var isShowBadge = function (props) {
+ if (props.dot) {
+ return true;
+ }
+ if (!props.showZero && !isNaN(props.count) && parseInt(props.count) === 0) {
+ return false;
+ }
+ if (props.count == null) return false;
+ return true;
+};
+
+module.exports.getBadgeValue = getBadgeValue;
+module.exports.getBadgeStyles = getBadgeStyles;
+module.exports.getBadgeOuterClass = getBadgeOuterClass;
+module.exports.getBadgeInnerClass = getBadgeInnerClass;
+module.exports.isShowBadge = isShowBadge;
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/badge.wxss b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxss
new file mode 100644
index 0000000..170baba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/badge.wxss
@@ -0,0 +1 @@
+@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--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--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--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))))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/index.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/index.d.ts
new file mode 100644
index 0000000..85b119a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './badge';
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/index.js b/miniprogram_npm/tdesign-miniprogram/badge/index.js
new file mode 100644
index 0000000..0ab74dd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./badge";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/props.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/props.d.ts
new file mode 100644
index 0000000..e1702ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/props.d.ts
@@ -0,0 +1,3 @@
+import { TdBadgeProps } from './type';
+declare const props: TdBadgeProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/props.js b/miniprogram_npm/tdesign-miniprogram/badge/props.js
new file mode 100644
index 0000000..c470449
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/props.js
@@ -0,0 +1 @@
+const props={color:{type:String,value:""},content:{type:String,value:""},count:{type:null,value:0},dot:{type:Boolean,value:!1},externalClasses:{type:Array},maxCount:{type:Number,value:99},offset:{type:Array},shape:{type:String,value:"circle"},showZero:{type:Boolean,value:!1},size:{type:String,value:"medium"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/type.d.ts b/miniprogram_npm/tdesign-miniprogram/badge/type.d.ts
new file mode 100644
index 0000000..2029271
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/type.d.ts
@@ -0,0 +1,42 @@
+export interface TdBadgeProps {
+ color?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ count?: {
+ type: null;
+ value?: string | number;
+ };
+ dot?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-content', 't-class-count'];
+ };
+ maxCount?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ offset?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'circle' | 'square' | 'bubble' | 'ribbon';
+ };
+ showZero?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'medium' | 'large';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/badge/type.js b/miniprogram_npm/tdesign-miniprogram/badge/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/badge/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.d.ts b/miniprogram_npm/tdesign-miniprogram/button/button.d.ts
new file mode 100644
index 0000000..4e88efd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdButtonProps } from './type';
+export interface ButtonProps extends TdButtonProps {
+}
+export default class Button extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ properties: TdButtonProps;
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ className: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'theme, size, plain, block, shape, disabled, loading, variant'(): void;
+ icon(icon: any): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ setClass(): void;
+ getuserinfo(e: any): void;
+ contact(e: any): void;
+ getphonenumber(e: any): void;
+ error(e: any): void;
+ opensetting(e: any): void;
+ launchapp(e: any): void;
+ chooseavatar(e: any): void;
+ agreeprivacyauthorization(e: any): void;
+ handleTap(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.js b/miniprogram_npm/tdesign-miniprogram/button/button.js
new file mode 100644
index 0000000..1ca405a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{canIUseFormFieldButton}from"../common/version";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-button`;let Button=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-loading`],this.behaviors=canIUseFormFieldButton()?["wx://form-field-button"]:[],this.properties=props,this.options={multipleSlots:!0},this.data={prefix:prefix,className:"",classPrefix:name},this.observers={"theme, size, plain, block, shape, disabled, loading, variant"(){this.setClass()},icon(t){this.setData({_icon:calcIcon(t,"")})}},this.lifetimes={attached(){this.setClass()}},this.methods={setClass(){const t=[name,`${prefix}-class`,`${name}--${this.data.variant||"base"}`,`${name}--${this.data.theme||"default"}`,`${name}--${this.data.shape||"rectangle"}`,`${name}--size-${this.data.size||"medium"}`];this.data.block&&t.push(`${name}--block`),this.data.disabled&&t.push(`${name}--disabled`),this.data.ghost&&t.push(`${name}--ghost`),this.setData({className:t.join(" ")})},getuserinfo(t){this.triggerEvent("getuserinfo",t.detail)},contact(t){this.triggerEvent("contact",t.detail)},getphonenumber(t){this.triggerEvent("getphonenumber",t.detail)},error(t){this.triggerEvent("error",t.detail)},opensetting(t){this.triggerEvent("opensetting",t.detail)},launchapp(t){this.triggerEvent("launchapp",t.detail)},chooseavatar(t){this.triggerEvent("chooseavatar",t.detail)},agreeprivacyauthorization(t){this.triggerEvent("agreeprivacyauthorization",t.detail)},handleTap(t){this.data.disabled||this.data.loading||this.triggerEvent("tap",t)}}}};Button=__decorate([wxComponent()],Button);export default Button;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.json b/miniprogram_npm/tdesign-miniprogram/button/button.json
new file mode 100644
index 0000000..18ba7f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-loading":"../loading/loading"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.wxml b/miniprogram_npm/tdesign-miniprogram/button/button.wxml
new file mode 100644
index 0000000..d6a05ec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/button.wxss b/miniprogram_npm/tdesign-miniprogram/button/button.wxss
new file mode 100644
index 0000000..b33d7f8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/button.wxss
@@ -0,0 +1 @@
+@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-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-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-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--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}.t-button--default.t-button--hover,.t-button--default.t-button--hover::after{background-color:var(--td-button-default-active-bg-color,var(--td-bg-color-component-active,var(--td-gray-color-6,#a6a6a6)));border-color:var(--td-button-default-active-border-color,var(--td-bg-color-component-active,var(--td-gray-color-6,#a6a6a6)))}.t-button--default.t-button--disabled{color:var(--td-button-default-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-button-default-disabled-bg,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-button--default.t-button--disabled,.t-button--default.t-button--disabled::after{border-color:var(--td-button-default-disabled-border-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-button--primary{color:var(--td-button-primary-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-button-primary-bg-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-button-primary-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--primary::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-primary-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--primary.t-button--hover{z-index:0}.t-button--primary.t-button--hover,.t-button--primary.t-button--hover::after{background-color:var(--td-button-primary-active-bg-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)));border-color:var(--td-button-primary-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--primary.t-button--disabled{color:var(--td-button-primary-disabled-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-button-primary-disabled-bg,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--primary.t-button--disabled,.t-button--primary.t-button--disabled::after{border-color:var(--td-button-primary-disabled-border-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--light{color:var(--td-button-light-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-button-light-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));border-color:var(--td-button-light-border-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--light::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-light-border-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--light.t-button--hover{z-index:0}.t-button--light.t-button--hover,.t-button--light.t-button--hover::after{background-color:var(--td-button-light-active-bg-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)));border-color:var(--td-button-light-active-border-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)))}.t-button--light.t-button--disabled{color:var(--td-button-light-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)));background-color:var(--td-button-light-disabled-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--light.t-button--disabled,.t-button--light.t-button--disabled::after{border-color:var(--td-button-light-disabled-border-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--danger{color:var(--td-button-danger-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-button-danger-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-button-danger-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--danger::after{border-width:var(--td-button-border-width,4rpx);border-color:var(--td-button-danger-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--danger.t-button--hover{z-index:0}.t-button--danger.t-button--hover,.t-button--danger.t-button--hover::after{background-color:var(--td-button-danger-active-bg-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)));border-color:var(--td-button-danger-active-border-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--danger.t-button--disabled{color:var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff));background-color:var(--td-button-danger-disabled-bg,var(--td-error-color-3,#ffb9b0))}.t-button--danger.t-button--disabled,.t-button--danger.t-button--disabled::after{border-color:var(--td-button-danger-disabled-border-color,var(--td-error-color-3,#ffb9b0))}.t-button{display:inline-flex;align-items:center;justify-content:center;position:relative;white-space:nowrap;text-align:center;background-image:none;transition:all .3s;touch-action:manipulation;border-radius:var(--td-button-border-radius,var(--td-radius-default,12rpx));outline:0;font-family:PingFang SC,Microsoft YaHei,Arial Regular;font-weight:var(--td-button-font-weight,600);vertical-align:top;box-sizing:border-box;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-appearance:none}.t-button::after{border-radius:calc(var(--td-button-border-radius,var(--td-radius-default,12rpx)) * 2)}.t-button--text{color:var(--td-button-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:transparent}.t-button--text,.t-button--text::after{border:0}.t-button--text.t-button--hover,.t-button--text.t-button--hover::after{background-color:var(--td-button-default-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--primary{color:var(--td-button-primary-text-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:transparent}.t-button--text.t-button--primary.t-button--hover,.t-button--text.t-button--primary.t-button--hover::after{background-color:var(--td-button-primary-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--primary.t-button--disabled{color:var(--td-button-primary-text-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-button--text.t-button--danger{color:var(--td-button-danger-text-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:transparent}.t-button--text.t-button--danger.t-button--hover,.t-button--text.t-button--danger.t-button--hover::after{background-color:var(--td-button-danger-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--danger.t-button--disabled{color:var(--td-button-danger-text-disabled-color,var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff)));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-button--text.t-button--light{color:var(--td-button-light-text-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:transparent}.t-button--text.t-button--light.t-button--hover,.t-button--text.t-button--light.t-button--hover::after{background-color:var(--td-button-light-text-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)))}.t-button--text.t-button--disabled{color:var(--td-button-default-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-button--outline{color:var(--td-button-default-outline-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-button--outline,.t-button--outline::after{border-color:var(--td-button-default-outline-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--hover,.t-button--outline.t-button--hover::after{background-color:var(--td-button-default-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-default-outline-active-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--disabled{color:var(--td-button-default-outline-disabled-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--disabled,.t-button--outline.t-button--disabled::after{border-color:var(--td-button-default-outline-disabled-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--outline.t-button--primary{color:var(--td-button-primary-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--outline.t-button--primary,.t-button--outline.t-button--primary::after{border-color:var(--td-button-primary-outline-border-color,var(--td-button-primary-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-button--outline.t-button--primary.t-button--hover{color:var(--td-button-primary-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--primary.t-button--hover::after{background-color:var(--td-button-primary-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-primary-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--primary.t-button--disabled{background-color:transparent;color:var(--td-button-primary-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--outline.t-button--primary.t-button--disabled,.t-button--outline.t-button--primary.t-button--disabled::after{border-color:var(--td-button-primary-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--outline.t-button--danger{color:var(--td-button-danger-outline-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--outline.t-button--danger,.t-button--outline.t-button--danger::after{border-color:var(--td-button-danger-outline-border-color,var(--td-button-danger-outline-color,var(--td-error-color,var(--td-error-color-6,#d54941))))}.t-button--outline.t-button--danger.t-button--hover{color:var(--td-button-danger-outline-active-border-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--outline.t-button--danger.t-button--hover::after{background-color:var(--td-button-danger-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-danger-outline-active-border-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--outline.t-button--danger.t-button--disabled{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-button-danger-outline-disabled-color,var(--td-error-color-3,#ffb9b0))}.t-button--outline.t-button--danger.t-button--disabled,.t-button--outline.t-button--danger.t-button--disabled::after{border-color:var(--td-button-danger-outline-disabled-color,var(--td-error-color-3,#ffb9b0))}.t-button--outline.t-button--light{color:var(--td-button-light-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-button-light-outline-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-button--outline.t-button--light,.t-button--outline.t-button--light::after{border-color:var(--td-button-light-outline-border-color,var(--td-button-light-outline-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-button--outline.t-button--light.t-button--hover{color:var(--td-button-light-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--light.t-button--hover,.t-button--outline.t-button--light.t-button--hover::after{background-color:var(--td-button-light-outline-active-bg-color,var(--td-brand-color-light-active,var(--td-primary-color-2,#d9e1ff)));border-color:var(--td-button-light-outline-active-border-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--outline.t-button--light.t-button--disabled{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-button-light-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--outline.t-button--light.t-button--disabled,.t-button--outline.t-button--light.t-button--disabled::after{border-color:var(--td-button-light-outline-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--dashed{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));border-style:dashed;border-width:2rpx}.t-button--dashed::after{border:0}.t-button--dashed.t-button--hover,.t-button--dashed.t-button--hover::after{background-color:var(--td-button-default-outline-active-bg-color,var(--td-bg-color-container-active,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-button-default-outline-active-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-button--dashed.t-button--primary{color:var(--td-button-primary-dashed-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--dashed.t-button--primary,.t-button--dashed.t-button--primary::after{border-color:var(--td-button-primary-dashed-border-color,var(--td-button-primary-dashed-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-button--dashed.t-button--primary.t-button--disabled{background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-button-primary-dashed-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--dashed.t-button--primary.t-button--disabled,.t-button--dashed.t-button--primary.t-button--disabled::after{border-color:var(--td-button-primary-dashed-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-button--dashed.t-button--danger{color:var(--td-button-danger-dashed-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--dashed.t-button--danger,.t-button--dashed.t-button--danger::after{border-color:var(--td-button-danger-dashed-border-color,var(--td-button-danger-dashed-color,var(--td-error-color,var(--td-error-color-6,#d54941))))}.t-button--dashed.t-button--danger.t-button--disabled{background-color:transparent;color:var(--td-button-danger-dashed-disabled-color,var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff)))}.t-button--dashed.t-button--danger.t-button--disabled::after{border-color:var(--td-button-danger-dashed-disabled-color,var(--td-button-danger-disabled-color,var(--td-font-white-1,#fff)))}.t-button--ghost{background-color:transparent;color:var(--td-button-ghost-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-button--ghost,.t-button--ghost::after{border-color:var(--td-button-ghost-border-color,var(--td-button-ghost-color,var(--td-text-color-anti,var(--td-font-white-1,#fff))))}.t-button--ghost.t-button--default.t-button--hover{color:var(--td-button-ghost-hover-color,var(--td-font-white-2,rgba(255,255,255,.55)))}.t-button--ghost.t-button--default.t-button--hover,.t-button--ghost.t-button--default.t-button--hover::after{background-color:transparent;border-color:var(--td-button-ghost-hover-color,var(--td-font-white-2,rgba(255,255,255,.55)))}.t-button--ghost.t-button--primary{color:var(--td-button-ghost-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--ghost.t-button--primary,.t-button--ghost.t-button--primary::after{border-color:var(--td-button-ghost-primary-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-button--ghost.t-button--primary.t-button--hover{color:var(--td-button-ghost-primary-hover-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--ghost.t-button--primary.t-button--hover,.t-button--ghost.t-button--primary.t-button--hover::after{background-color:transparent;border-color:var(--td-button-ghost-primary-hover-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-button--ghost.t-button--primary.t-button--text.t-button--hover,.t-button--ghost.t-button--primary.t-button--text.t-button--hover::after{background-color:var(--td-gray-color-10,#4b4b4b)}.t-button--ghost.t-button--primary.t-button--disabled{background-color:transparent;color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--primary.t-button--disabled,.t-button--ghost.t-button--primary.t-button--disabled::after{border-color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--danger{color:var(--td-button-ghost-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--ghost.t-button--danger,.t-button--ghost.t-button--danger::after{border-color:var(--td-button-ghost-danger-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-button--ghost.t-button--danger.t-button--hover{color:var(--td-button-ghost-danger-hover-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--ghost.t-button--danger.t-button--hover,.t-button--ghost.t-button--danger.t-button--hover::after{background-color:transparent;border-color:var(--td-button-ghost-danger-hover-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-button--ghost.t-button--danger.t-button--text.t-button--hover,.t-button--ghost.t-button--danger.t-button--text.t-button--hover::after{background-color:var(--td-gray-color-10,#4b4b4b)}.t-button--ghost.t-button--danger.t-button--disabled{background-color:transparent;color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--danger.t-button--disabled,.t-button--ghost.t-button--danger.t-button--disabled::after{border-color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--default.t-button--text.t-button--hover,.t-button--ghost.t-button--default.t-button--text.t-button--hover::after{background-color:var(--td-gray-color-10,#4b4b4b)}.t-button--ghost.t-button--default.t-button--disabled{background-color:transparent;color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button--ghost.t-button--default.t-button--disabled,.t-button--ghost.t-button--default.t-button--disabled::after{border-color:var(--td-button-ghost-disabled-color,var(--td-font-white-4,rgba(255,255,255,.22)))}.t-button__icon+.t-button__content:not(:empty),.t-button__loading+.t-button__content:not(:empty){margin-left:8rpx}.t-button__icon{border-radius:var(--td-button-icon-border-radius,8rpx)}.t-button--round.t-button--size-large{border-radius:calc(var(--td-button-large-height,96rpx)/ 2)}.t-button--round.t-button--size-large::after{border-radius:var(--td-button-large-height,96rpx)}.t-button--round.t-button--size-medium{border-radius:calc(var(--td-button-medium-height,80rpx)/ 2)}.t-button--round.t-button--size-medium::after{border-radius:var(--td-button-medium-height,80rpx)}.t-button--round.t-button--size-small{border-radius:calc(var(--td-button-small-height,64rpx)/ 2)}.t-button--round.t-button--size-small::after{border-radius:var(--td-button-small-height,64rpx)}.t-button--round.t-button--size-extra-small{border-radius:calc(var(--td-button-extra-small-height,56rpx)/ 2)}.t-button--round.t-button--size-extra-small::after{border-radius:var(--td-button-extra-small-height,56rpx)}.t-button--square{padding:0}.t-button--square.t-button--size-large{width:var(--td-button-large-height,96rpx)}.t-button--square.t-button--size-medium{width:var(--td-button-medium-height,80rpx)}.t-button--square.t-button--size-small{width:var(--td-button-small-height,64rpx)}.t-button--square.t-button--size-extra-small{width:var(--td-button-extra-small-height,56rpx)}.t-button--circle{padding:0;border-radius:50%}.t-button--circle.t-button--size-large{width:var(--td-button-large-height,96rpx)}.t-button--circle.t-button--size-large::after{border-radius:50%}.t-button--circle.t-button--size-medium{width:var(--td-button-medium-height,80rpx)}.t-button--circle.t-button--size-medium::after{border-radius:50%}.t-button--circle.t-button--size-small{width:var(--td-button-small-height,64rpx)}.t-button--circle.t-button--size-small::after{border-radius:50%}.t-button--circle.t-button--size-extra-small{width:var(--td-button-extra-small-height,56rpx)}.t-button--circle.t-button--size-extra-small::after{border-radius:50%}.t-button--block{display:flex;width:100%}.t-button--disabled{cursor:not-allowed}.t-button__loading--wrapper{display:flex;align-items:center;justify-content:center}.t-button.t-button--hover::after{z-index:-1}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/index.d.ts b/miniprogram_npm/tdesign-miniprogram/button/index.d.ts
new file mode 100644
index 0000000..beb0ad5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './button';
diff --git a/miniprogram_npm/tdesign-miniprogram/button/index.js b/miniprogram_npm/tdesign-miniprogram/button/index.js
new file mode 100644
index 0000000..aba62c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./button";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/props.d.ts b/miniprogram_npm/tdesign-miniprogram/button/props.d.ts
new file mode 100644
index 0000000..00dc5fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/props.d.ts
@@ -0,0 +1,3 @@
+import { TdButtonProps } from './type';
+declare const props: TdButtonProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/button/props.js b/miniprogram_npm/tdesign-miniprogram/button/props.js
new file mode 100644
index 0000000..f940974
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/props.js
@@ -0,0 +1 @@
+const props={appParameter:{type:String,value:""},block:{type:Boolean,value:!1},content:{type:String},customDataset:{type:null},disabled:{type:null,value:void 0},ghost:{type:Boolean,value:!1},hoverClass:{type:String,value:""},hoverStartTime:{type:Number,value:20},hoverStayTime:{type:Number,value:70},hoverStopPropagation:{type:Boolean,value:!1},icon:{type:null},lang:{type:String},loading:{type:Boolean,value:!1},loadingProps:{type:Object},openType:{type:String},phoneNumberNoQuotaToast:{type:Boolean,value:!0},sendMessageImg:{type:String,value:"截图"},sendMessagePath:{type:String,value:"当前分享路径"},sendMessageTitle:{type:String,value:"当前标题"},sessionFrom:{type:String,value:""},shape:{type:String,value:"rectangle"},showMessageCard:{type:Boolean,value:!1},size:{type:String,value:"medium"},style:{type:String,value:""},tId:{type:String,value:""},theme:{type:String,value:"default"},type:{type:String},variant:{type:String,value:"base"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/button/type.d.ts b/miniprogram_npm/tdesign-miniprogram/button/type.d.ts
new file mode 100644
index 0000000..5a07a2a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/type.d.ts
@@ -0,0 +1,115 @@
+import { LoadingProps } from '../loading/index';
+export interface TdButtonProps {
+ appParameter?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ customDataset?: {
+ type: null;
+ value?: null;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ ghost?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hoverClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ hoverStartTime?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ hoverStayTime?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ hoverStopPropagation?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ lang?: {
+ type: StringConstructor;
+ value?: 'en' | 'zh_CN' | 'zh_TW';
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ loadingProps?: {
+ type: ObjectConstructor;
+ value?: LoadingProps;
+ };
+ openType?: {
+ type: StringConstructor;
+ value?: 'contact' | 'share' | 'getPhoneNumber' | 'getUserInfo' | 'launchApp' | 'openSetting' | 'feedback' | 'chooseAvatar' | 'agreePrivacyAuthorization';
+ };
+ phoneNumberNoQuotaToast?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ sendMessageImg?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ sendMessagePath?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ sendMessageTitle?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ sessionFrom?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'rectangle' | 'square' | 'round' | 'circle';
+ };
+ showMessageCard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'extra-small' | 'small' | 'medium' | 'large';
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ tId?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'primary' | 'danger' | 'light';
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'submit' | 'reset';
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'base' | 'outline' | 'dashed' | 'text';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/button/type.js b/miniprogram_npm/tdesign-miniprogram/button/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/button/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar-header.wxml b/miniprogram_npm/tdesign-miniprogram/calendar/calendar-header.wxml
new file mode 100644
index 0000000..57bf570
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar-header.wxml
@@ -0,0 +1 @@
+{{ title }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.d.ts
new file mode 100644
index 0000000..29f5038
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.d.ts
@@ -0,0 +1,63 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { TdCalendarProps } from './type';
+export interface CalendarProps extends TdCalendarProps {
+}
+export default class Calendar extends SuperComponent {
+ behaviors: string[];
+ externalClasses: string[];
+ options: WechatMiniprogram.Component.ComponentOptions;
+ properties: TdCalendarProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ months: any[];
+ scrollIntoView: string;
+ innerConfirmBtn: {};
+ realLocalText: {};
+ currentMonth: {};
+ actionButtons: {
+ preYearBtnDisable: boolean;
+ prevMonthBtnDisable: boolean;
+ nextMonthBtnDisable: boolean;
+ nextYearBtnDisable: boolean;
+ };
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ lifetimes: {
+ created(): void;
+ ready(): void;
+ };
+ observers: {
+ type(v: any): void;
+ confirmBtn(v: any): void;
+ 'firstDayOfWeek,minDate,maxDate'(firstDayOfWeek: any, minDate: any, maxDate: any): void;
+ value(v: any): void;
+ visible(v: any): void;
+ format(v: any): void;
+ };
+ methods: {
+ initialValue(): void;
+ scrollIntoView(): void;
+ getCurrentYearAndMonth(v: Date): {
+ year: number;
+ month: number;
+ };
+ updateActionButton(value: Date): void;
+ updateCurrentMonth(): void;
+ calcCurrentMonth(newValue?: any): void;
+ calcMonths(): void;
+ close(trigger: any): void;
+ onVisibleChange(): void;
+ handleClose(): void;
+ handleSelect(e: any): void;
+ onTplButtonTap(): void;
+ toTime(val: any): any;
+ onScroll(e: any): void;
+ getCurrentDate(): any;
+ handleSwitchModeChange(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.js b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.js
new file mode 100644
index 0000000..ce3c02d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import TCalendar from"../common/shared/calendar/index";import useCustomNavbar from"../mixins/using-custom-navbar";import{getPrevMonth,getPrevYear,getNextMonth,getNextYear}from"./utils";const{prefix:prefix}=config,name=`${prefix}-calendar`,defaultLocaleText={title:"请选择日期",weekdays:["日","一","二","三","四","五","六"],monthTitle:"{year} 年 {month}",months:["1 月","2 月","3 月","4 月","5 月","6 月","7 月","8 月","9 月","10 月","11 月","12 月"],confirm:"确认"};let Calendar=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,months:[],scrollIntoView:"",innerConfirmBtn:{},realLocalText:{},currentMonth:{},actionButtons:{preYearBtnDisable:!1,prevMonthBtnDisable:!1,nextMonthBtnDisable:!1,nextYearBtnDisable:!1}},this.controlledProps=[{key:"value",event:"confirm"},{key:"value",event:"change"}],this.lifetimes={created(){this.base=new TCalendar(this.properties)},ready(){const t=Object.assign(Object.assign({},defaultLocaleText),this.properties.localeText);this.initialValue(),this.setData({days:this.base.getDays(t.weekdays),realLocalText:t}),this.calcMonths(),this.updateCurrentMonth(),this.data.usePopup||this.scrollIntoView()}},this.observers={type(t){this.base.type=t},confirmBtn(t){"string"==typeof t?this.setData({innerConfirmBtn:"slot"===t?"slot":{content:t}}):"object"==typeof t&&this.setData({innerConfirmBtn:t})},"firstDayOfWeek,minDate,maxDate"(t,e,a){t&&(this.base.firstDayOfWeek=t),e&&(this.base.minDate=e),a&&(this.base.maxDate=a),this.calcMonths()},value(t){this.base.value=t,this.calcMonths(),this.updateCurrentMonth()},visible(t){t&&(this.scrollIntoView(),this.base.value=this.data.value,this.calcMonths())},format(t){const{usePopup:e,visible:a}=this.data;this.base.format=t,e&&!a||this.calcMonths()}},this.methods={initialValue(){const{value:t,type:e,minDate:a}=this.data;if(!t){const t=new Date,n=a||new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),s="single"===e?n:[n];"range"===e&&(s[1]=n+864e5),this.setData({value:s}),this.base.value=s}},scrollIntoView(){const{value:t}=this.data;if(!t)return;const e=new Date(Array.isArray(t)?t[0]:t);e&&this.setData({scrollIntoView:`year_${e.getFullYear()}_month_${e.getMonth()}`})},getCurrentYearAndMonth(t){const e=new Date(t);return{year:e.getFullYear(),month:e.getMonth()}},updateActionButton(t){const e=this.getCurrentYearAndMonth(this.base.minDate),a=this.getCurrentYearAndMonth(this.base.maxDate),n=new Date(e.year,e.month,1).getTime(),s=new Date(a.year,a.month,1).getTime(),r=getPrevYear(t).getTime(),i=getPrevMonth(t).getTime(),o=getNextMonth(t).getTime(),h=getNextYear(t).getTime(),l=rs||h>s,u=o>s;this.setData({actionButtons:{preYearBtnDisable:l,prevMonthBtnDisable:c,nextYearBtnDisable:m,nextMonthBtnDisable:u}})},updateCurrentMonth(){"none"!==this.data.switchMode&&this.calcCurrentMonth()},calcCurrentMonth(t){const e=t||this.getCurrentDate(),{year:a,month:n}=this.getCurrentYearAndMonth(e),s=this.data.months.filter((t=>t.year===a&&t.month===n));this.updateActionButton(e),this.setData({currentMonth:s.length>0?s:[this.data.months[0]]})},calcMonths(){const t=this.base.getMonths();this.setData({months:t})},close(t){this.data.autoClose&&this.setData({visible:!1}),this.triggerEvent("close",{trigger:t})},onVisibleChange(){this.close("overlay")},handleClose(){this.close("close-btn")},handleSelect(t){const{date:e,year:a,month:n}=t.currentTarget.dataset;if("disabled"===e.type)return;const s=this.base.select({cellType:e.type,year:a,month:n,date:e.day}),r=this.toTime(s);this.calcMonths(),this.updateCurrentMonth(),null==this.data.confirmBtn&&("single"!==this.data.type&&2!==s.length||(this.setData({visible:!1}),this._trigger("change",{value:r}))),this.triggerEvent("select",{value:r})},onTplButtonTap(){const t=this.base.getTrimValue(),e=this.toTime(t);this.close("confirm-btn"),this._trigger("confirm",{value:e})},toTime:t=>t?Array.isArray(t)?t.map((t=>t.getTime())):t.getTime():null,onScroll(t){this.triggerEvent("scroll",t.detail)},getCurrentDate(){var t,e;let a=Array.isArray(this.base.value)?this.base.value[0]:this.base.value;if(this.data.currentMonth.length>0){const n=null===(t=this.data.currentMonth[0])||void 0===t?void 0:t.year,s=null===(e=this.data.currentMonth[0])||void 0===e?void 0:e.month;a=new Date(n,s,1).getTime()}return a},handleSwitchModeChange(t){const{type:e,disabled:a}=t.currentTarget.dataset;if(a)return;const n=this.getCurrentDate(),s={"pre-year":()=>getPrevYear(n),"pre-month":()=>getPrevMonth(n),"next-month":()=>getNextMonth(n),"next-year":()=>getNextYear(n)}[e]();if(!s)return;const{year:r,month:i}=this.getCurrentYearAndMonth(s);this.triggerEvent("panel-change",{year:r,month:i+1}),this.calcCurrentMonth(s)}}}};Calendar=__decorate([wxComponent()],Calendar);export default Calendar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.json b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.json
new file mode 100644
index 0000000..8a91a83
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup","t-button":"../button/button","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxml b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxml
new file mode 100644
index 0000000..e963b1f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxs b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxs
new file mode 100644
index 0000000..ad5d507
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxs
@@ -0,0 +1,44 @@
+function getDateLabel(monthItem, dateItem) {
+ var weekdayText = ['日', '一', '二', '三', '四', '五', '六'];
+ var weekday = (monthItem.weekdayOfFirstDay + dateItem.day - 1) % 7;
+ var label = monthItem.month + 1 + '月' + dateItem.day + '日, 星期' + weekdayText[weekday];
+ if (dateItem.type === 'start') {
+ label = '开始日期:' + label;
+ }
+ if (dateItem.type === 'end') {
+ label = '结束日期:' + label;
+ }
+ if (isDateSelected(dateItem)) {
+ label = '已选中, ' + label;
+ }
+ if (dateItem.prefix) {
+ label += ', ' + dateItem.prefix;
+ }
+ if (dateItem.suffix) {
+ label += ', ' + dateItem.suffix;
+ }
+ return label;
+}
+
+function isDateSelected(dateItem) {
+ return ['start', 'end', 'selected', 'centre'].indexOf(dateItem.type) >= 0;
+}
+
+function getMonthTitle(year, month, pattern = '') {
+ // prettier-ignore
+ var REGEXP = getRegExp('\{year\}|\{month\}', 'g');
+
+ return pattern.replace(REGEXP, function (match) {
+ var replacements = {
+ '{year}': year,
+ '{month}': month < 10 ? '0' + month : month,
+ };
+ return replacements[match] || match;
+ });
+}
+
+module.exports = {
+ getDateLabel: getDateLabel,
+ isDateSelected: isDateSelected,
+ getMonthTitle: getMonthTitle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxss b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxss
new file mode 100644
index 0000000..8673bfd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/calendar.wxss
@@ -0,0 +1 @@
+@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: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__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__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-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)))}.t-calendar__dates-item-suffix--disabled{color:var(--td-calendar-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-calendar__dates-item--end,.t-calendar__dates-item--selected,.t-calendar__dates-item--start{background:var(--td-calendar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));color:var(--td-calendar-selected-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx))}.t-calendar__dates-item--start{border-radius:var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx)) 0 0 var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx))}.t-calendar__dates-item--end{border-radius:0 var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx)) var(--td-calendar-selected-border-radius,var(--td-radius-default,12rpx)) 0}.t-calendar__dates-item--start+.t-calendar__dates-item--end::before{content:'';display:block;position:absolute;top:0;width:8rpx;height:100%;background:var(--td-calendar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-calendar__dates-item--start+.t-calendar__dates-item--end:before{left:-8rpx}.t-calendar__dates-item--centre{border-radius:0;background-color:var(--td-calendar-item-centre-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-calendar__dates-item--centre::after,.t-calendar__dates-item--centre::before{content:'';display:block;position:absolute;top:0;width:8rpx;height:100%;background-color:var(--td-calendar-item-centre-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-calendar__dates-item--centre:before{left:-8rpx}.t-calendar__dates-item--centre:after{right:-8rpx}.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__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__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))))}.t-calendar-header__title{text-align:left}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/index.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/index.d.ts
new file mode 100644
index 0000000..cf0e3b8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/index.d.ts
@@ -0,0 +1,2 @@
+export * from './type';
+export * from './calendar';
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/index.js b/miniprogram_npm/tdesign-miniprogram/calendar/index.js
new file mode 100644
index 0000000..2dc1889
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./calendar";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/props.d.ts
new file mode 100644
index 0000000..a42879c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCalendarProps } from './type';
+declare const props: TdCalendarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/props.js b/miniprogram_npm/tdesign-miniprogram/calendar/props.js
new file mode 100644
index 0000000..046bd84
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!0},confirmBtn:{type:null,value:""},firstDayOfWeek:{type:Number,value:0},format:{type:null},localeText:{type:Object},maxDate:{type:Number},minDate:{type:Number},switchMode:{type:String,value:"none"},title:{type:String},type:{type:String,value:"single"},usePopup:{type:Boolean,value:!0},usingCustomNavbar:{type:Boolean,value:!1},value:{type:null,value:null},defaultValue:{type:null},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/template.wxml b/miniprogram_npm/tdesign-miniprogram/calendar/template.wxml
new file mode 100644
index 0000000..1f6655e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/template.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/type.d.ts
new file mode 100644
index 0000000..5df9dff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/type.d.ts
@@ -0,0 +1,80 @@
+import { ButtonProps } from '../button/index';
+export interface TdCalendarProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmBtn?: {
+ type: null;
+ value?: string | ButtonProps | null;
+ };
+ firstDayOfWeek?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ format?: {
+ type: undefined;
+ value?: CalendarFormatType;
+ };
+ localeText?: {
+ type: ObjectConstructor;
+ value?: CalendarLocaleText;
+ };
+ maxDate?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ minDate?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ switchMode?: {
+ type: StringConstructor;
+ value?: 'none' | 'month' | 'year-month';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'single' | 'multiple' | 'range';
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: number | number[];
+ };
+ defaultValue?: {
+ type: null;
+ value?: number | number[];
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type CalendarFormatType = (day: TDate) => TDate;
+export declare type TDateType = 'selected' | 'disabled' | 'start' | 'centre' | 'end' | '';
+export interface TDate {
+ date: Date;
+ day: number;
+ type: TDateType;
+ className?: string;
+ prefix?: string;
+ suffix?: string;
+}
+export interface CalendarLocaleText {
+ title?: string;
+ weekdays?: string[];
+ monthTitle?: string;
+ months?: string[];
+ confirm?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/type.js b/miniprogram_npm/tdesign-miniprogram/calendar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/calendar/utils.d.ts
new file mode 100644
index 0000000..800daa0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/utils.d.ts
@@ -0,0 +1,6 @@
+export declare function getMonthByOffset(date: Date, offset: number): Date;
+export declare function getYearByOffset(date: Date, offset: number): Date;
+export declare const getPrevMonth: (date: Date) => Date;
+export declare const getNextMonth: (date: Date) => Date;
+export declare const getPrevYear: (date: Date) => Date;
+export declare const getNextYear: (date: Date) => Date;
diff --git a/miniprogram_npm/tdesign-miniprogram/calendar/utils.js b/miniprogram_npm/tdesign-miniprogram/calendar/utils.js
new file mode 100644
index 0000000..81fc01c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/calendar/utils.js
@@ -0,0 +1 @@
+export function getMonthByOffset(t,e){const n=new Date(t);return n.setMonth(n.getMonth()+e),n.setDate(1),n}export function getYearByOffset(t,e){const n=new Date(t);return n.setFullYear(n.getFullYear()+e),n.setDate(1),n}export const getPrevMonth=t=>getMonthByOffset(t,-1);export const getNextMonth=t=>getMonthByOffset(t,1);export const getPrevYear=t=>getYearByOffset(t,-1);export const getNextYear=t=>getYearByOffset(t,1);
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.d.ts b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.d.ts
new file mode 100644
index 0000000..7aa5bde
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.d.ts
@@ -0,0 +1,59 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { TdCascaderProps } from './type';
+export interface CascaderProps extends TdCascaderProps {
+}
+export default class Cascader extends SuperComponent {
+ externalClasses: string[];
+ options: WechatMiniprogram.Component.ComponentOptions;
+ properties: TdCascaderProps>;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ state: {
+ contentHeight: number;
+ stepHeight: number;
+ tabsHeight: number;
+ subTitlesHeight: number;
+ stepsInitHeight: number;
+ };
+ data: {
+ prefix: string;
+ name: string;
+ stepIndex: number;
+ selectedIndexes: any[];
+ selectedValue: any[];
+ scrollTopList: any[];
+ steps: any[];
+ _optionsHeight: number;
+ };
+ observers: {
+ visible(v: any): void;
+ value(): void;
+ options(): void;
+ selectedIndexes(): void;
+ stepIndex(): Promise;
+ };
+ methods: {
+ updateOptionsHeight(steps: number): void;
+ initOptionsHeight(steps: number): Promise;
+ initWithValue(): void;
+ getIndexesByValue(options: import("../common/common").TreeOptionData[], value: any): any[];
+ updateScrollTop(): void;
+ hide(trigger: any): void;
+ onVisibleChange(): void;
+ onClose(): void;
+ onStepClick(e: any): void;
+ onTabChange(e: any): void;
+ genItems(): {
+ selectedValue: any[];
+ steps: any[];
+ items: {
+ [x: string]: any;
+ }[][];
+ };
+ handleSelect(e: any): void;
+ triggerChange(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.js b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.js
new file mode 100644
index 0000000..831c2ee
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-cascader`;function parseOptions(e,t){var s,i;const l=null!==(s=null==t?void 0:t.label)&&void 0!==s?s:"label",n=null!==(i=null==t?void 0:t.value)&&void 0!==i?i:"value";return e.map((e=>({[l]:e[l],[n]:e[n]})))}const defaultState={contentHeight:0,stepHeight:0,tabsHeight:0,subTitlesHeight:0,stepsInitHeight:0};let Cascader=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0,pureDataPattern:/^options$/},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.state=Object.assign({},defaultState),this.data={prefix:prefix,name:name,stepIndex:0,selectedIndexes:[],selectedValue:[],scrollTopList:[],steps:[],_optionsHeight:0},this.observers={visible(e){if(e){const e=this.selectComponent("#tabs");null==e||e.setTrack(),null==e||e.getTabHeight().then((e=>{this.state.tabsHeight=e.height})),this.initOptionsHeight(this.data.steps.length),this.updateScrollTop(),this.initWithValue()}else this.state=Object.assign({},defaultState)},value(){this.initWithValue()},options(){const{selectedValue:e,steps:t,items:s}=this.genItems();this.setData({steps:t,items:s,selectedValue:e,stepIndex:s.length-1})},selectedIndexes(){const{visible:e,theme:t}=this.properties,{selectedValue:s,steps:i,items:l}=this.genItems(),n={steps:i,selectedValue:s,stepIndex:l.length-1};JSON.stringify(l)!==JSON.stringify(this.data.items)&&Object.assign(n,{items:l}),this.setData(n),e&&"step"===t&&this.updateOptionsHeight(i.length)},stepIndex(){return __awaiter(this,void 0,void 0,(function*(){const{visible:e}=this.data;e&&this.updateScrollTop()}))}},this.methods={updateOptionsHeight(e){const{contentHeight:t,stepsInitHeight:s,stepHeight:i,subTitlesHeight:l}=this.state;this.setData({_optionsHeight:t-s-l-(e-1)*i})},initOptionsHeight(e){return __awaiter(this,void 0,void 0,(function*(){const{theme:t,subTitles:s}=this.properties,{height:i}=yield getRect(this,`.${name}__content`);if(this.state.contentHeight=i,"step"===t&&(yield Promise.all([getRect(this,`.${name}__steps`),getRect(this,`.${name}__step`)]).then((([t,s])=>{this.state.stepsInitHeight=t.height-(e-1)*s.height,this.state.stepHeight=s.height}))),s.length>0){const{height:e}=yield getRect(this,`.${name}__options-title`);this.state.subTitlesHeight=e}const l=this.state.contentHeight-this.state.subTitlesHeight;this.setData({_optionsHeight:"step"===t?l-this.state.stepsInitHeight-(e-1)*this.state.stepHeight:l-this.state.tabsHeight})}))},initWithValue(){if(null!=this.data.value&&""!==this.data.value){const e=this.getIndexesByValue(this.data.options,this.data.value);e&&this.setData({selectedIndexes:e})}else this.setData({selectedIndexes:[]})},getIndexesByValue(e,t){var s,i,l;const{keys:n}=this.data;for(let a=0,h=e.length;a{var l;const n=e.height/(null===(l=t[0])||void 0===l?void 0:l.length);this.setData({[`scrollTopList[${i}]`]:n*s[i]})}))},hide(e){this.setData({visible:!1}),this.triggerEvent("close",{trigger:e})},onVisibleChange(){this.hide("overlay")},onClose(){this.data.checkStrictly&&this.triggerChange(),this.hide("close-btn")},onStepClick(e){const{index:t}=e.currentTarget.dataset;this.setData({stepIndex:t})},onTabChange(e){const{value:t}=e.detail;this.setData({stepIndex:t})},genItems(){var e,t,s,i,l;const{options:n,selectedIndexes:a,keys:h,placeholder:o}=this.data,d=[],r=[],c=[parseOptions(n,h)];if(n.length>0){let o=n;for(let n=0,u=a.length;n{var t;return e[null!==(t=null==c?void 0:c.value)&&void 0!==t?t:"value"]===h}));let v=d.slice(0,a).reduce(((e,t,s)=>{var i;return 0===s?e[t]:e[null!==(i=null==c?void 0:c.children)&&void 0!==i?i:"children"][t]}),u);if(v=0===a?v[g]:v[null!==(t=null==c?void 0:c.children)&&void 0!==t?t:"children"][g],v.disabled)return;if(this.triggerEvent("pick",{value:v[null!==(s=null==c?void 0:c.value)&&void 0!==s?s:"value"],label:v[null!==(i=null==c?void 0:c.label)&&void 0!==i?i:"label"],index:g,level:a}),d[a]=g,o&&p.includes(String(h)))return d.length=a,void this.setData({selectedIndexes:d});d.length=a+1;const{items:m}=this.genItems();(null===(n=null==v?void 0:v[null!==(l=null==c?void 0:c.children)&&void 0!==l?l:"children"])||void 0===n?void 0:n.length)>=0?this.setData({selectedIndexes:d,[`items[${a+1}]`]:m[a+1]}):(this.setData({selectedIndexes:d},this.triggerChange),this.hide("finish"))},triggerChange(){var e;const{items:t,selectedValue:s,selectedIndexes:i}=this.data;this._trigger("change",{value:null!==(e=s[s.length-1])&&void 0!==e?e:"",selectedOptions:t.map(((e,t)=>e[i[t]])).filter(Boolean)})}}}};Cascader=__decorate([wxComponent()],Cascader);export default Cascader;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.json b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.json
new file mode 100644
index 0000000..98d4316
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-popup":"../popup/popup","t-tabs":"../tabs/tabs","t-tab-panel":"../tab-panel/tab-panel","t-radio-group":"../radio-group/radio-group"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxml b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxml
new file mode 100644
index 0000000..acb0917
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxml
@@ -0,0 +1 @@
+{{title}}{{ item }}{{subTitles[stepIndex]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxss b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxss
new file mode 100644
index 0000000..5783fc2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/cascader.wxss
@@ -0,0 +1 @@
+@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-extra-large,24rpx) var(--td-radius-extra-large,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-cascder-title-font-size,36rpx)}.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-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}.t-cascader__steps::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-cascader-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)))}.t-cascader__steps::after{height:1px;left:0;right:0;transform:scaleY(.5)}.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--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}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/props.d.ts b/miniprogram_npm/tdesign-miniprogram/cascader/props.d.ts
new file mode 100644
index 0000000..9009f89
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCascaderProps } from './type';
+declare const props: TdCascaderProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/props.js b/miniprogram_npm/tdesign-miniprogram/cascader/props.js
new file mode 100644
index 0000000..b051517
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/props.js
@@ -0,0 +1 @@
+const props={checkStrictly:{type:Boolean,value:!1},closeBtn:{type:Boolean,value:!0},keys:{type:Object},options:{type:Array,value:[]},placeholder:{type:String,value:"选择选项"},subTitles:{type:Array,value:[]},theme:{type:String,value:"step"},title:{type:String},value:{type:null,value:null},defaultValue:{type:null,value:null},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/type.d.ts b/miniprogram_npm/tdesign-miniprogram/cascader/type.d.ts
new file mode 100644
index 0000000..37edc3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/type.d.ts
@@ -0,0 +1,47 @@
+import { TreeOptionData, KeysType } from '../common/common';
+export interface TdCascaderProps {
+ checkStrictly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ closeBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ subTitles?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'step' | 'tab';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cascader/type.js b/miniprogram_npm/tdesign-miniprogram/cascader/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cascader/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.d.ts b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.d.ts
new file mode 100644
index 0000000..30d14dc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.d.ts
@@ -0,0 +1,13 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class CellGroup extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ properties: import("./type").TdCellGroupProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ methods: {
+ updateLastChid(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.js b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.js
new file mode 100644
index 0000000..a9f01fc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.js
@@ -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}-cell-group`;let CellGroup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-title`],this.relations={"../cell/cell":{type:"child",linked(){this.updateLastChid()},unlinked(){this.updateLastChid()}}},this.properties=props,this.data={prefix:prefix,classPrefix:name},this.methods={updateLastChid(){const e=this.$children;e.forEach(((t,o)=>t.setData({isLastChild:o===e.length-1})))}}}};CellGroup=__decorate([wxComponent()],CellGroup);export default CellGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.json b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxml b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxml
new file mode 100644
index 0000000..a7caad1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxml
@@ -0,0 +1 @@
+{{ title }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxss b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxss
new file mode 100644
index 0000000..04fd57a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/cell-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-cell-group{position:relative}.t-cell-group__title{font-family:PingFangSC-Regular;font-size:var(--td-cell-group-title-font-size,28rpx);color:var(--td-cell-group-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));text-align:left;line-height:var(--td-cell-group-title-line-height,90rpx);background-color:var(--td-cell-group-title-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));padding-left:var(--td-cell-group-title-padding-left,32rpx)}.t-cell-group--bordered::before{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;top:0;border-top:1px solid var(--td-cell-group-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:0 0;transform-origin:top;z-index:1}.t-cell-group--bordered::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;bottom:0;border-bottom:1px solid var(--td-cell-group-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:bottom;z-index:1}.t-cell-group--card{margin:0 32rpx;border-radius:var(--td-radius-large,18rpx);overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/cell-group/props.d.ts
new file mode 100644
index 0000000..4c4a9d0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCellGroupProps } from './type';
+declare const props: TdCellGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/props.js b/miniprogram_npm/tdesign-miniprogram/cell-group/props.js
new file mode 100644
index 0000000..8a43b88
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/props.js
@@ -0,0 +1 @@
+const props={bordered:{type:Boolean,value:!1},theme:{type:String,value:"default"},title:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/cell-group/type.d.ts
new file mode 100644
index 0000000..f7aedeb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/type.d.ts
@@ -0,0 +1,14 @@
+export interface TdCellGroupProps {
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'card';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell-group/type.js b/miniprogram_npm/tdesign-miniprogram/cell-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.d.ts b/miniprogram_npm/tdesign-miniprogram/cell/cell.d.ts
new file mode 100644
index 0000000..d6a8910
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Cell extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdCellProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ isLastChild: boolean;
+ };
+ observers: {
+ leftIcon(v: any): void;
+ rightIcon(v: any): void;
+ arrow(v: any): void;
+ };
+ setIcon(name: any, value: any, defaultValue: any): void;
+ onClick(e: any): void;
+ jumpLink(urlKey?: string, link?: string): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.js b/miniprogram_npm/tdesign-miniprogram/cell/cell.js
new file mode 100644
index 0000000..ea134d9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-cell`;let Cell=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-title`,`${prefix}-class-description`,`${prefix}-class-note`,`${prefix}-class-hover`,`${prefix}-class-image`,`${prefix}-class-left`,`${prefix}-class-left-icon`,`${prefix}-class-center`,`${prefix}-class-right`,`${prefix}-class-right-icon`],this.relations={"../cell-group/cell-group":{type:"parent"}},this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,isLastChild:!1},this.observers={leftIcon(e){this.setIcon("_leftIcon",e,"")},rightIcon(e){this.setIcon("_rightIcon",e,"")},arrow(e){this.setIcon("_arrow",e,"chevron-right")}}}setIcon(e,t,s){this.setData({[e]:calcIcon(t,s)})}onClick(e){this.triggerEvent("click",e.detail),this.jumpLink()}jumpLink(e="url",t="jumpType"){const s=this.data[e],i=this.data[t];s&&wx[i]({url:s})}};Cell=__decorate([wxComponent()],Cell);export default Cell;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.json b/miniprogram_npm/tdesign-miniprogram/cell/cell.json
new file mode 100644
index 0000000..dd7b01e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.wxml b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxml
new file mode 100644
index 0000000..d0029e0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxml
@@ -0,0 +1 @@
+{{ title}} *{{description}}{{note}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/cell.wxss b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxss
new file mode 100644
index 0000000..b76a9ec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/cell.wxss
@@ -0,0 +1 @@
+@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)))}.t-cell::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--borderless::after{display:none}.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-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__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-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--middle{align-items:center}.t-cell__right--top{align-items:flex-start}.t-cell__right--bottom{align-items:flex-end}.t-cell--hover{background-color:var(--td-cell-hover-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-cell--required{font-size:var(--td-cell-required-font-size,var(--td-font-size-m,32rpx));color:var(--td-cell-required-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/props.d.ts b/miniprogram_npm/tdesign-miniprogram/cell/props.d.ts
new file mode 100644
index 0000000..ad657e5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCellProps } from './type';
+declare const props: TdCellProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/props.js b/miniprogram_npm/tdesign-miniprogram/cell/props.js
new file mode 100644
index 0000000..23dca76
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"middle"},arrow:{type:null,value:!1},bordered:{type:Boolean,value:!0},description:{type:String},hover:{type:Boolean},image:{type:String},jumpType:{type:String,value:"navigateTo"},leftIcon:{type:null},note:{type:String},required:{type:Boolean,value:!1},rightIcon:{type:null},title:{type:String},url:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/type.d.ts b/miniprogram_npm/tdesign-miniprogram/cell/type.d.ts
new file mode 100644
index 0000000..7ba2258
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/type.d.ts
@@ -0,0 +1,54 @@
+export interface TdCellProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'top' | 'middle' | 'bottom';
+ };
+ arrow?: {
+ type: null;
+ value?: boolean | object;
+ };
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ hover?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ jumpType?: {
+ type: StringConstructor;
+ value?: 'switchTab' | 'reLaunch' | 'redirectTo' | 'navigateTo';
+ };
+ leftIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ note?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ required?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ rightIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ url?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/cell/type.js b/miniprogram_npm/tdesign-miniprogram/cell/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/cell/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.d.ts b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.d.ts
new file mode 100644
index 0000000..cbea034
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.d.ts
@@ -0,0 +1,29 @@
+import { SuperComponent } from '../common/src/index';
+export default class CheckTag extends SuperComponent {
+ data: {
+ prefix: string;
+ classPrefix: string;
+ className: string;
+ };
+ properties: import("./type").TdCheckTagProps;
+ externalClasses: string[];
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ options: {
+ multipleSlots: boolean;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ observers: {
+ 'size, disabled, checked'(): void;
+ icon(v: any): void;
+ };
+ methods: {
+ setClass(): void;
+ onClick(): void;
+ onClose(e: WechatMiniprogram.BaseEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.js b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.js
new file mode 100644
index 0000000..53dbaaa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{classNames,calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-tag`;let CheckTag=class extends SuperComponent{constructor(){super(...arguments),this.data={prefix:prefix,classPrefix:name,className:""},this.properties=props,this.externalClasses=[`${prefix}-class`],this.controlledProps=[{key:"checked",event:"change"}],this.options={multipleSlots:!0},this.lifetimes={attached(){this.setClass()}},this.observers={"size, disabled, checked"(){this.setClass()},icon(e){this.setData({_icon:calcIcon(e)})}},this.methods={setClass(){const{classPrefix:e}=this.data,{size:s,variant:t,disabled:i,checked:a,shape:c}=this.properties,o=classNames([e,`${e}--checkable`,i?`${e}--disabled`:"",a?`${e}--checked`:"",`${e}--${a?"primary":"default"}`,`${e}--${s}`,`${e}--${t}`,`${e}--${c}`]);this.setData({className:o})},onClick(){if(this.data.disabled)return;const{checked:e}=this.data;this._trigger("click"),this._trigger("change",{checked:!e})},onClose(e){this.data.disabled||this._trigger("close",e)}}}};CheckTag=__decorate([wxComponent()],CheckTag);export default CheckTag;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.json b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxml b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxml
new file mode 100644
index 0000000..640d0bc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxml
@@ -0,0 +1 @@
+{{checked ? content[0] : content[1]}}{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxss b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxss
new file mode 100644
index 0000000..d1357d3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/check-tag.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tag{display:inline-flex;align-items:center;border:2rpx solid transparent;box-sizing:border-box;border-radius:var(--td-tag-square-border-radius,8rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx));user-select:none;vertical-align:middle}.t-tag__text{word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-tag__icon{display:flex;align-items:center}.t-tag__icon:not(:empty)+.t-tag__text:not(:empty){margin-left:8rpx}.t-tag--small{height:var(--td-tag-small-height,40rpx);line-height:var(--td-tag-small-height,40rpx);padding:0 var(--td-tag-small-padding,11rpx);font-size:var(--td-tag-small-font-size,var(--td-font-size,20rpx))}.t-tag--small .t-icon,.t-tag--small .t-icon-close{font-size:var(--td-tag-small-icon-size,24rpx)}.t-tag--medium{height:var(--td-tag-medium-height,48rpx);line-height:var(--td-tag-medium-height,48rpx);padding:0 var(--td-tag-medium-padding,15rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx))}.t-tag--medium .t-icon,.t-tag--medium .t-icon-close{font-size:var(--td-tag-medium-icon-size,28rpx)}.t-tag--large{height:var(--td-tag-large-height,56rpx);line-height:var(--td-tag-large-height,56rpx);padding:0 var(--td-tag-large-padding,15rpx);font-size:var(--td-tag-large-font-size,var(--td-font-size-base,28rpx))}.t-tag--large .t-icon,.t-tag--large .t-icon-close{font-size:var(--td-tag-large-icon-size,32rpx)}.t-tag--extra-large{height:var(--td-tag-extra-large-height,80rpx);line-height:var(--td-tag-extra-large-height,80rpx);padding:0 var(--td-tag-extra-large-padding,31rpx);font-size:var(--td-tag-extra-large-font-size,var(--td-font-size-base,28rpx))}.t-tag--extra-large .t-icon,.t-tag--extra-large .t-icon-close{font-size:var(--td-tag-extra-large-icon-size,32rpx)}.t-tag.t-tag--square{border-radius:var(--td-tag-square-border-radius,8rpx)}.t-tag.t-tag--round{border-radius:var(--td-tag-round-border-radius,999px)}.t-tag.t-tag--mark{border-radius:0 var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px)) var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px)) 0}.t-tag--dark.t-tag--default{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-tag--dark.t-tag--primary{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tag--dark.t-tag--success{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-tag--dark.t-tag--warning{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-tag--dark.t-tag--danger{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-tag--dark.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--primary{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--success{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--warning{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--danger{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--light.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light-outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light-outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light-outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light-outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-tag.t-tag--closable.t-tag--disabled{cursor:not-allowed;color:var(--td-tag-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-tag-disabled-background-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)));border-color:var(--td-tag-disabled-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/props.d.ts b/miniprogram_npm/tdesign-miniprogram/check-tag/props.d.ts
new file mode 100644
index 0000000..57c816f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCheckTagProps } from './type';
+declare const props: TdCheckTagProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/props.js b/miniprogram_npm/tdesign-miniprogram/check-tag/props.js
new file mode 100644
index 0000000..6d29e68
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/props.js
@@ -0,0 +1 @@
+const props={checked:{type:null,value:void 0},defaultChecked:{type:null,value:void 0},closable:{type:Boolean,value:!1},content:{type:null},disabled:{type:Boolean,value:!1},icon:{type:null},shape:{type:String,value:"square"},size:{type:String,value:"medium"},variant:{type:String,value:"dark"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/type.d.ts b/miniprogram_npm/tdesign-miniprogram/check-tag/type.d.ts
new file mode 100644
index 0000000..c047f1b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/type.d.ts
@@ -0,0 +1,39 @@
+import { SizeEnum } from '../common/common';
+export interface TdCheckTagProps {
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ closable?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: null;
+ value?: string | number | string[];
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'square' | 'round' | 'mark';
+ };
+ size?: {
+ type: StringConstructor;
+ value?: SizeEnum;
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'dark' | 'light' | 'outline' | 'light-outline';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/check-tag/type.js b/miniprogram_npm/tdesign-miniprogram/check-tag/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/check-tag/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.d.ts
new file mode 100644
index 0000000..fe1681b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.d.ts
@@ -0,0 +1,38 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class CheckBoxGroup extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ checkboxOptions: any[];
+ };
+ properties: import("./type").TdCheckboxGroupProps;
+ observers: {
+ value(): void;
+ options(): void;
+ disabled(v: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ $checkAll: any;
+ methods: {
+ getChildren(): any;
+ updateChildren(): void;
+ updateValue({ value, checked, checkAll, item, indeterminate }: {
+ value: any;
+ checked: any;
+ checkAll: any;
+ item: any;
+ indeterminate: any;
+ }): void;
+ initWithOptions(): void;
+ handleInnerChildChange(e: any): void;
+ setCheckall(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.js b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.js
new file mode 100644
index 0000000..42d9154
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.js
@@ -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}-checkbox-group`;let CheckBoxGroup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.relations={"../checkbox/checkbox":{type:"descendant"}},this.data={prefix:prefix,classPrefix:name,checkboxOptions:[]},this.properties=props,this.observers={value(){this.updateChildren()},options(){this.initWithOptions()},disabled(e){var t;(null===(t=this.data.options)||void 0===t?void 0:t.length)?this.initWithOptions():this.getChildren().forEach((t=>{t.setDisabled(e)}))}},this.lifetimes={ready(){this.setCheckall()}},this.controlledProps=[{key:"value",event:"change"}],this.$checkAll=null,this.methods={getChildren(){let e=this.$children;return e.length||(e=this.selectAllComponents(`.${prefix}-checkbox-option`)),e||[]},updateChildren(){const e=this.getChildren(),{value:t}=this.data;e.length>0&&(e.forEach((e=>{!e.data.checkAll&&e.setData({checked:null==t?void 0:t.includes(e.data.value)})})),e.some((e=>e.data.checkAll))&&this.setCheckall())},updateValue({value:e,checked:t,checkAll:l,item:i,indeterminate:a}){let{value:s}=this.data;const{max:n}=this.data,c=new Set(this.getChildren().map((e=>e.data.value)));if(s=s.filter((e=>c.has(e))),!n||!t||s.length!==n){if(l){const e=this.getChildren();s=!t&&a?e.filter((({data:e})=>!(e.disabled&&!s.includes(e.value)))).map((e=>e.data.value)):e.filter((({data:e})=>e.disabled?s.includes(e.value):t&&!e.checkAll)).map((({data:e})=>e.value))}else if(t)s=s.concat(e);else{const t=s.findIndex((t=>t===e));s.splice(t,1)}this._trigger("change",{value:s,context:i})}},initWithOptions(){const{options:e,value:t,keys:l}=this.data;if(!(null==e?void 0:e.length)||!Array.isArray(e))return;const i=e.map((e=>{var i,a,s;return["number","string"].includes(typeof e)?{label:`${e}`,value:e,checked:null==t?void 0:t.includes(e)}:Object.assign(Object.assign({},e),{label:e[null!==(i=null==l?void 0:l.label)&&void 0!==i?i:"label"],value:e[null!==(a=null==l?void 0:l.value)&&void 0!==a?a:"value"],checked:null==t?void 0:t.includes(e[null!==(s=null==l?void 0:l.value)&&void 0!==s?s:"value"])})}));this.setData({checkboxOptions:i})},handleInnerChildChange(e){var t;const{item:l}=e.target.dataset,{checked:i}=e.detail,a={};l.checkAll&&(a.indeterminate=null===(t=this.$checkAll)||void 0===t?void 0:t.data.indeterminate),this.updateValue(Object.assign(Object.assign(Object.assign({},l),{checked:i,item:l}),a))},setCheckall(){const e=this.getChildren();if(this.$checkAll||(this.$checkAll=e.find((e=>e.data.checkAll))),!this.$checkAll)return;const{value:t}=this.data,l=new Set(null==t?void 0:t.filter((e=>e!==this.$checkAll.data.value))),i=e.every((e=>!!e.data.checkAll||l.has(e.data.value)));this.$checkAll.setData({checked:l.size>0,indeterminate:!i})}}}};CheckBoxGroup=__decorate([wxComponent()],CheckBoxGroup);export default CheckBoxGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.json b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.json
new file mode 100644
index 0000000..e58cba0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-checkbox":"../checkbox/checkbox"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxml b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxml
new file mode 100644
index 0000000..9c5e723
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxss b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/checkbox-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.d.ts
new file mode 100644
index 0000000..f6e5bf5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCheckboxGroupProps } from './type';
+declare const props: TdCheckboxGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.js b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.js
new file mode 100644
index 0000000..68ffc3f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/props.js
@@ -0,0 +1 @@
+const props={borderless:{type:Boolean,value:!1},disabled:{type:null,value:void 0},keys:{type:Object},max:{type:Number,value:void 0},name:{type:String,value:""},options:{type:Array,value:[]},value:{type:Array,value:null},defaultValue:{type:Array,value:[]}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.d.ts
new file mode 100644
index 0000000..568a469
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.d.ts
@@ -0,0 +1,43 @@
+import { KeysType } from '../common/common';
+export interface TdCheckboxGroupProps {
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ value?: {
+ type: ArrayConstructor;
+ value?: T;
+ };
+ defaultValue?: {
+ type: ArrayConstructor;
+ value?: T;
+ };
+}
+export declare type CheckboxOption = string | number | CheckboxOptionObj;
+export interface CheckboxOptionObj {
+ label?: string;
+ value?: string | number;
+ disabled?: boolean;
+ checkAll?: true;
+}
+export declare type CheckboxGroupValue = Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.js b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.d.ts
new file mode 100644
index 0000000..3cfb0f9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.d.ts
@@ -0,0 +1,100 @@
+import { SuperComponent, ComponentsOptionsType, RelationsOptions } from '../common/src/index';
+export default class CheckBox extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ relations: RelationsOptions;
+ options: ComponentsOptionsType;
+ properties: {
+ theme: {
+ type: StringConstructor;
+ value: string;
+ };
+ tId: {
+ type: StringConstructor;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checkAll?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string[] | "rectangle" | "circle" | "line";
+ };
+ indeterminate?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: "left" | "right";
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: string | number | boolean;
+ };
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ _disabled: boolean;
+ };
+ observers: {
+ disabled(v: any): void;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ methods: {
+ handleTap(e: WechatMiniprogram.TouchEvent): void;
+ setDisabled(disabled: Boolean): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.js b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.js
new file mode 100644
index 0000000..e4b6e08
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.js
@@ -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}-checkbox`;let CheckBox=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-label`,`${prefix}-class-icon`,`${prefix}-class-content`,`${prefix}-class-border`],this.behaviors=["wx://form-field"],this.relations={"../checkbox-group/checkbox-group":{type:"ancestor",linked(e){const{value:t,disabled:s,borderless:a}=e.data,i=new Set(t),o=i.has(this.data.value),c={_disabled:null==this.data.disabled?s:this.data.disabled};a&&(c.borderless=!0),c.checked=this.data.checked||o,this.data.checked&&e.updateValue(this.data),this.data.checkAll&&(c.checked=i.size>0),this.setData(c)}}},this.options={multipleSlots:!0},this.properties=Object.assign(Object.assign({},Props),{theme:{type:String,value:"default"},tId:{type:String}}),this.data={prefix:prefix,classPrefix:name,_disabled:!1},this.observers={disabled(e){this.setData({_disabled:e})}},this.controlledProps=[{key:"checked",event:"change"}],this.methods={handleTap(e){const{_disabled:t,readonly:s,contentDisabled:a}=this.data,{target:i}=e.currentTarget.dataset;if(t||s||"text"===i&&a)return;const{value:o,label:c}=this.data,d=!this.data.checked,r=this.$parent;r?r.updateValue(Object.assign(Object.assign({},this.data),{checked:d,item:{label:c,value:o,checked:d}})):this._trigger("change",{context:{value:o,label:c},checked:d})},setDisabled(e){this.setData({_disabled:this.data.disabled||e})}}}};CheckBox=__decorate([wxComponent()],CheckBox);export default CheckBox;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.json b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxml b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxml
new file mode 100644
index 0000000..71439ca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxml
@@ -0,0 +1 @@
+{{label}}{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxss b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxss
new file mode 100644
index 0000000..e3aace5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/checkbox.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-checkbox{display:inline-flex;vertical-align:middle;position:relative;font-size:var(--td-checkbox-font-size,32rpx);background:var(--td-checkbox-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-checkbox:focus{outline:0}.t-checkbox--block{display:flex;padding:var(--td-checkbox-vertical-padding,32rpx)}.t-checkbox--right{flex-direction:row-reverse}.t-checkbox .limit-title-row{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.t-checkbox .image-center{position:absolute;top:50%;transform:translateY(-50%)}.t-checkbox__icon-left{margin-right:20rpx;width:40rpx}.t-checkbox__icon-right{right:0;display:contents;position:absolute;top:50%;transform:translateY(-50%)}.t-checkbox__icon-image{width:var(--td-checkbox-icon-size,48rpx);height:var(--td-checkbox-icon-size,48rpx);vertical-align:top}.t-checkbox__icon{position:relative;display:block;width:var(--td-checkbox-icon-size,48rpx);height:var(--td-checkbox-icon-size,48rpx);color:var(--td-checkbox-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));font-size:var(--td-checkbox-icon-size,48rpx);margin-top:calc((var(--td-checkbox-title-line-height,48rpx) - var(--td-checkbox-icon-size,48rpx))/ 2)}.t-checkbox__icon:empty{display:none}.t-checkbox__icon--checked{color:var(--td-checkbox-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-checkbox__icon--disabled{cursor:not-allowed;color:var(--td-checkbox-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-checkbox__icon--left{margin-right:16rpx}.t-checkbox__icon-circle{width:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx) * 2);height:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx) * 2);border:calc(4rpx * 2) solid var(--td-checkbox-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box}.t-checkbox__icon-circle--disabled{background:var(--td-checkbox-icon-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-checkbox__icon-rectangle{width:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx * 2) * 2);height:calc((var(--td-checkbox-icon-size,48rpx) - 4rpx * 2) * 2);border:calc(4rpx * 2) solid var(--td-checkbox-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box}.t-checkbox__icon-rectangle--disabled{background:var(--td-checkbox-icon-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-checkbox__icon-line::after,.t-checkbox__icon-line::before{content:'';display:block;position:absolute;width:5rpx;border-radius:2rpx;background:var(--td-checkbox-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));transform-origin:top center}.t-checkbox__icon-line::before{height:16rpx;left:8rpx;top:22rpx;transform:rotate(-45deg)}.t-checkbox__icon-line::after{height:26rpx;right:8rpx;top:14rpx;transform:rotate(45deg)}.t-checkbox__icon-line--disabled::after,.t-checkbox__icon-line--disabled::before{background:var(--td-checkbox-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-checkbox__content{flex:1}.t-checkbox__title{color:var(--td-checkbox-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:var(--td-checkbox-title-line-height,48rpx);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.t-checkbox__title--disabled{color:var(--td-checkbox-title-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-checkbox__description{color:var(--td-checkbox-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;font-size:28rpx;line-height:var(--td-checkbox-description-line-height,44rpx)}.t-checkbox__description--disabled{color:var(--td-checkbox-description-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-checkbox__title+.t-checkbox__description:not(:empty){margin-top:8rpx}.t-checkbox__border{position:absolute;bottom:0;left:96rpx;right:0;height:1px;background:var(--td-checkbox-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5)}.t-checkbox__border--right{left:32rpx}.t-checkbox--tag{font-size:28rpx;padding-top:16rpx;padding-bottom:16rpx;text-align:center;background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));border-radius:12rpx}.t-checkbox--tag.t-checkbox--checked{color:var(--td-checkbox-tag-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-checkbox-tag-active-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-checkbox--tag .t-checkbox__title--checked{color:var(--td-checkbox-tag-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-checkbox--tag .t-checkbox__content{margin-right:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/props.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox/props.d.ts
new file mode 100644
index 0000000..81c619e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCheckboxProps } from './type';
+declare const props: TdCheckboxProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/props.js b/miniprogram_npm/tdesign-miniprogram/checkbox/props.js
new file mode 100644
index 0000000..dc20895
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/props.js
@@ -0,0 +1 @@
+const props={block:{type:Boolean,value:!0},borderless:{type:Boolean,value:!1},checkAll:{type:Boolean,value:!1},checked:{type:Boolean,value:null},defaultChecked:{type:Boolean,value:!1},content:{type:String},contentDisabled:{type:Boolean},disabled:{type:null,value:void 0},icon:{type:null,value:"circle"},indeterminate:{type:Boolean,value:!1},label:{type:String},maxContentRow:{type:Number,value:5},maxLabelRow:{type:Number,value:3},name:{type:String,value:""},placement:{type:String,value:"left"},readonly:{type:Boolean,value:!1},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/type.d.ts b/miniprogram_npm/tdesign-miniprogram/checkbox/type.d.ts
new file mode 100644
index 0000000..1250d5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/type.d.ts
@@ -0,0 +1,70 @@
+export interface TdCheckboxProps {
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checkAll?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: 'circle' | 'line' | 'rectangle' | string[];
+ };
+ indeterminate?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: string | number | boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/checkbox/type.js b/miniprogram_npm/tdesign-miniprogram/checkbox/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/checkbox/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.d.ts b/miniprogram_npm/tdesign-miniprogram/col/col.d.ts
new file mode 100644
index 0000000..ecebf64
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.d.ts
@@ -0,0 +1,10 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Col extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdColProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ relations: RelationsOptions;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.js b/miniprogram_npm/tdesign-miniprogram/col/col.js
new file mode 100644
index 0000000..0c5f5d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.js
@@ -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}-col`;let Col=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.relations={"../row/row":{type:"parent"}}}};Col=__decorate([wxComponent()],Col);export default Col;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.json b/miniprogram_npm/tdesign-miniprogram/col/col.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.wxml b/miniprogram_npm/tdesign-miniprogram/col/col.wxml
new file mode 100644
index 0000000..a095548
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.wxs b/miniprogram_npm/tdesign-miniprogram/col/col.wxs
new file mode 100644
index 0000000..1822c0b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.wxs
@@ -0,0 +1,17 @@
+var utils = require('../common/utils.wxs');
+
+function getColStyles(gutter, style, customStyle) {
+ var _style = '';
+ if (gutter) {
+ _style = utils._style({
+ 'padding-right': utils.addUnit(gutter / 2),
+ 'padding-left': utils.addUnit(gutter / 2),
+ });
+ }
+
+ return utils._style([style, customStyle]) + _style;
+}
+
+module.exports = {
+ getColStyles: getColStyles,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/col/col.wxss b/miniprogram_npm/tdesign-miniprogram/col/col.wxss
new file mode 100644
index 0000000..d0374a4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/col.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-col{display:block;box-sizing:border-box;min-height:1px}.t-col--1{width:4.16666667%}.t-col--offset-1{margin-left:4.16666667%}.t-col--2{width:8.33333333%}.t-col--offset-2{margin-left:8.33333333%}.t-col--3{width:12.5%}.t-col--offset-3{margin-left:12.5%}.t-col--4{width:16.66666667%}.t-col--offset-4{margin-left:16.66666667%}.t-col--5{width:20.83333333%}.t-col--offset-5{margin-left:20.83333333%}.t-col--6{width:25%}.t-col--offset-6{margin-left:25%}.t-col--7{width:29.16666667%}.t-col--offset-7{margin-left:29.16666667%}.t-col--8{width:33.33333333%}.t-col--offset-8{margin-left:33.33333333%}.t-col--9{width:37.5%}.t-col--offset-9{margin-left:37.5%}.t-col--10{width:41.66666667%}.t-col--offset-10{margin-left:41.66666667%}.t-col--11{width:45.83333333%}.t-col--offset-11{margin-left:45.83333333%}.t-col--12{width:50%}.t-col--offset-12{margin-left:50%}.t-col--13{width:54.16666667%}.t-col--offset-13{margin-left:54.16666667%}.t-col--14{width:58.33333333%}.t-col--offset-14{margin-left:58.33333333%}.t-col--15{width:62.5%}.t-col--offset-15{margin-left:62.5%}.t-col--16{width:66.66666667%}.t-col--offset-16{margin-left:66.66666667%}.t-col--17{width:70.83333333%}.t-col--offset-17{margin-left:70.83333333%}.t-col--18{width:75%}.t-col--offset-18{margin-left:75%}.t-col--19{width:79.16666667%}.t-col--offset-19{margin-left:79.16666667%}.t-col--20{width:83.33333333%}.t-col--offset-20{margin-left:83.33333333%}.t-col--21{width:87.5%}.t-col--offset-21{margin-left:87.5%}.t-col--22{width:91.66666667%}.t-col--offset-22{margin-left:91.66666667%}.t-col--23{width:95.83333333%}.t-col--offset-23{margin-left:95.83333333%}.t-col--24{width:100%}.t-col--offset-24{margin-left:100%}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/props.d.ts b/miniprogram_npm/tdesign-miniprogram/col/props.d.ts
new file mode 100644
index 0000000..15de965
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/props.d.ts
@@ -0,0 +1,3 @@
+import { TdColProps } from './type';
+declare const props: TdColProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/col/props.js b/miniprogram_npm/tdesign-miniprogram/col/props.js
new file mode 100644
index 0000000..c12761e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/props.js
@@ -0,0 +1 @@
+const props={offset:{type:null},span:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/col/type.d.ts b/miniprogram_npm/tdesign-miniprogram/col/type.d.ts
new file mode 100644
index 0000000..af55fa4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/type.d.ts
@@ -0,0 +1,10 @@
+export interface TdColProps {
+ offset?: {
+ type: null;
+ value?: string | number;
+ };
+ span?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/col/type.js b/miniprogram_npm/tdesign-miniprogram/col/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/col/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.d.ts
new file mode 100644
index 0000000..4ae0ff4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+import type { TdCollapsePanelProps } from './type';
+export interface CollapsePanelProps extends TdCollapsePanelProps {
+}
+export default class CollapsePanel extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ properties: TdCollapsePanelProps;
+ data: {
+ prefix: string;
+ expanded: boolean;
+ classPrefix: string;
+ classBasePrefix: string;
+ ultimateExpandIcon: boolean;
+ ultimateDisabled: boolean;
+ };
+ observers: {
+ disabled(v: any): void;
+ };
+ methods: {
+ updateExpanded(activeValues?: any[]): void;
+ updateStyle(expanded: boolean): Promise;
+ onClick(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.js b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.js
new file mode 100644
index 0000000..d106071
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-collapse-panel`;let CollapsePanel=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-header`],this.options={multipleSlots:!0},this.relations={"../collapse/collapse":{type:"ancestor",linked(e){const{value:t,expandIcon:a,disabled:s}=e.properties;this.setData({ultimateExpandIcon:null==this.properties.expandIcon?a:this.properties.expandIcon,ultimateDisabled:null==this.properties.disabled?s:this.properties.disabled}),this.updateExpanded(t)}}},this.properties=props,this.data={prefix:prefix,expanded:!1,classPrefix:name,classBasePrefix:prefix,ultimateExpandIcon:!1,ultimateDisabled:!1},this.observers={disabled(e){this.setData({ultimateDisabled:!!e})}},this.methods={updateExpanded(e=[]){if(!this.$parent)return;const{value:t}=this.properties,{defaultExpandAll:a}=this.$parent.data,s=a?!this.data.expanded:e.includes(t);s!==this.properties.expanded&&(this.setData({expanded:s}),this.updateStyle(s))},updateStyle(e){return getRect(this,`.${name}__content`).then((e=>e.height)).then((t=>{const a=wx.createAnimation({duration:0,timingFunction:"ease-in-out"});e?a.height(t).top(0).step({duration:300}).height("auto").step():a.height(t).top(1).step({duration:1}).height(0).step({duration:300}),this.setData({animation:a.export()})}))},onClick(){const{ultimateDisabled:e}=this.data,{value:t}=this.properties;e||(this.$parent.data.defaultExpandAll?this.updateExpanded():this.$parent.switch(t))}}}};CollapsePanel=__decorate([wxComponent()],CollapsePanel);export default CollapsePanel;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.json b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.json
new file mode 100644
index 0000000..e599fc8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-cell":"../cell/cell"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxml b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxml
new file mode 100644
index 0000000..b9b5334
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxss b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxss
new file mode 100644
index 0000000..ec504b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/collapse-panel.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-collapse-panel{background-color:var(--td-collapse-panel-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-collapse-panel--disabled{pointer-events:none}.t-collapse-panel--disabled .t-collapse-panel__content,.t-collapse-panel--disabled .t-collapse-panel__header{opacity:.3}.t-collapse-panel--top{display:flex;flex-direction:column-reverse}.t-collapse-panel__header{position:relative;display:flex;justify-content:space-between;align-items:center;padding-left:var(--td-collapse-horizontal-padding,32rpx);height:var(--td-collapse-header-height,auto);color:var(--td-collapse-header-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-collapse-panel__header--top{position:relative}.t-collapse-panel__header--top::after{content:'';display:block;position:absolute;top:0;bottom:unset;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__header--top::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__header--bottom{position:relative}.t-collapse-panel__header--bottom::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__header--bottom::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__header::after{left:32rpx}.t-collapse-panel__header-right{display:inline-flex;align-items:center;height:100%}.t-collapse-panel__header-icon{height:100%;padding-left:8px;width:44px;padding-right:8px;color:var(--td-collapse-icon-color,var(--td-font-gray-3,rgba(0,0,0,.4)))}.t-collapse-panel__extra{font-size:var(--td-collapse-extra-font-size,var(--td-font-size-m,32rpx))}.t-collapse-panel__body{position:relative}.t-collapse-panel__body::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__body::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__wrapper{height:0;overflow:hidden}.t-collapse-panel__content{color:var(--td-collapse-content-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-collapse-content-font-size,var(--td-font-size-base,28rpx));padding:var(--td-collapse-content-padding,32rpx);line-height:var(--td-collapse-content-line-height,1.5)}.t-collapse-panel__content--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}.t-collapse-panel__content--expanded.t-collapse-panel__content--bottom{position:relative}.t-collapse-panel__content--expanded.t-collapse-panel__content--bottom::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__content--expanded.t-collapse-panel__content--bottom::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__content--expanded.t-collapse-panel__content--top{position:relative}.t-collapse-panel__content--expanded.t-collapse-panel__content--top::after{content:'';display:block;position:absolute;top:0;bottom:unset;left:unset;right:unset;background-color:var(--td-collapse-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-collapse-panel__content--expanded.t-collapse-panel__content--top::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-collapse-panel__arrow--top{transform:rotate(180deg)}.class-title{font-size:var(--td-collapse-title-font-size,var(--td-font-size-m,32rpx))}.class-title--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}.class-note--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}.class-right-icon--disabled{color:var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.d.ts
new file mode 100644
index 0000000..829dbea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCollapsePanelProps } from './type';
+declare const props: TdCollapsePanelProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.js b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.js
new file mode 100644
index 0000000..028b453
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/props.js
@@ -0,0 +1 @@
+const props={content:{type:String},disabled:{type:null,value:void 0},expandIcon:{type:null,value:void 0},externalClasses:{type:Array},header:{type:String},headerLeftIcon:{type:String},headerRightContent:{type:String},placement:{type:String,value:"bottom"},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.d.ts
new file mode 100644
index 0000000..9834253
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.d.ts
@@ -0,0 +1,38 @@
+export interface TdCollapsePanelProps {
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ expandIcon?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-header', 't-class-content'];
+ };
+ header?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ headerLeftIcon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ headerRightContent?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'bottom' | 'top';
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.js b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse-panel/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.d.ts
new file mode 100644
index 0000000..9fcf0ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.d.ts
@@ -0,0 +1,24 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+import type { CollapseValue, TdCollapseProps } from './type';
+export interface CollapseProps extends TdCollapseProps {
+}
+export default class Collapse extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ properties: TdCollapseProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'value, expandMutex '(): void;
+ };
+ methods: {
+ updateExpanded(): void;
+ switch(panelValue: CollapseValue): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.js b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.js
new file mode 100644
index 0000000..b140f52
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.js
@@ -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}-collapse`;let Collapse=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.relations={"../collapse-panel/collapse-panel":{type:"descendant"}},this.controlledProps=[{key:"value",event:"change"}],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.observers={"value, expandMutex "(){this.updateExpanded()}},this.methods={updateExpanded(){this.$children.forEach((e=>{e.updateExpanded(this.properties.value)}))},switch(e){const{expandMutex:t,value:o}=this.properties;let p=[];p=o.indexOf(e)>-1?o.filter((t=>t!==e)):t?[e]:o.concat(e),this._trigger("change",{value:p})}}}};Collapse=__decorate([wxComponent()],Collapse);export default Collapse;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.json b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxml b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxml
new file mode 100644
index 0000000..93bde30
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxss b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxss
new file mode 100644
index 0000000..24dc13c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/collapse.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-collapse--card{margin:0 32rpx;border-radius:var(--td-radius-large,18rpx);overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/index.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/index.d.ts
new file mode 100644
index 0000000..69a68c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/index.d.ts
@@ -0,0 +1,4 @@
+export { default as Collapse } from './collapse';
+export * from './type';
+export * from './props';
+export { CollapseProps } from './collapse';
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/index.js b/miniprogram_npm/tdesign-miniprogram/collapse/index.js
new file mode 100644
index 0000000..67a070a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/index.js
@@ -0,0 +1 @@
+export{default as Collapse}from"./collapse";export*from"./type";export*from"./props";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/props.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/props.d.ts
new file mode 100644
index 0000000..8ab2059
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCollapseProps } from './type';
+declare const props: TdCollapseProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/props.js b/miniprogram_npm/tdesign-miniprogram/collapse/props.js
new file mode 100644
index 0000000..0eb56f5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/props.js
@@ -0,0 +1 @@
+const props={defaultExpandAll:{type:Boolean,value:!1},disabled:{type:Boolean},expandIcon:{type:Boolean,value:!0},expandMutex:{type:Boolean,value:!1},theme:{type:String,value:"default"},value:{type:Array,value:null},defaultValue:{type:Array,value:[]}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/type.d.ts b/miniprogram_npm/tdesign-miniprogram/collapse/type.d.ts
new file mode 100644
index 0000000..8599bc1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/type.d.ts
@@ -0,0 +1,31 @@
+export interface TdCollapseProps {
+ defaultExpandAll?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ expandIcon?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ expandMutex?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'card';
+ };
+ value?: {
+ type: ArrayConstructor;
+ value?: CollapseValue;
+ };
+ defaultValue?: {
+ type: ArrayConstructor;
+ value?: CollapseValue;
+ };
+}
+export declare type CollapseValue = Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/collapse/type.js b/miniprogram_npm/tdesign-miniprogram/collapse/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/collapse/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.d.ts
new file mode 100644
index 0000000..751ec5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.d.ts
@@ -0,0 +1,104 @@
+import { SuperComponent } from '../common/src/index';
+import type { Coordinate } from './interfaces';
+import { Color } from './utils';
+export default class ColorPicker extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdColorPickerProps;
+ observers: {
+ format(): void;
+ swatchColors(value: any): void;
+ type(value: any): void;
+ 'usePopup, visible'(usePopup: boolean, visible: boolean): void;
+ value(v: string): void;
+ };
+ color: Color;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ panelRect: {
+ width: number;
+ height: number;
+ };
+ sliderRect: {
+ width: number;
+ left: number;
+ };
+ saturationInfo: {
+ saturation: number;
+ value: number;
+ };
+ saturationThumbStyle: {
+ left: number;
+ top: number;
+ };
+ sliderInfo: {
+ value: number;
+ };
+ hueSliderStyle: {
+ left: number;
+ };
+ alphaSliderStyle: {
+ left: number;
+ };
+ innerValue: string;
+ showPrimaryColorPreview: boolean;
+ previewColor: string;
+ formatList: any[];
+ innerSwatchList: any;
+ isMultiple: boolean;
+ defaultOverlayProps: {};
+ };
+ lifetimes: {
+ ready(): void;
+ attached(): void;
+ detached(): void;
+ };
+ methods: {
+ init(): void;
+ updateEleRect(e: WechatMiniprogram.TouchEvent): void;
+ getEleReact(): void;
+ clickSwatch(e: any): void;
+ setCoreStyle(): void;
+ emitColorChange(trigger: any): void;
+ defaultEmptyColor(): string;
+ updateColor(): void;
+ getSaturationAndValueByCoordinate(coordinate: Coordinate): {
+ saturation: number;
+ value: number;
+ };
+ getSaturationThumbStyle({ saturation, value }: {
+ saturation: any;
+ value: any;
+ }): {
+ color: any;
+ left: string;
+ top: string;
+ };
+ getSliderThumbStyle({ value, maxValue }: {
+ value: any;
+ maxValue: any;
+ }): {
+ left: string;
+ color: any;
+ };
+ onChangeSaturation({ saturation, value }: {
+ saturation: any;
+ value: any;
+ }): void;
+ formatValue(): any;
+ onChangeSlider({ value, isAlpha }: {
+ value: any;
+ isAlpha: any;
+ }): void;
+ handleSaturationDrag(e: any): void;
+ handleSliderDrag(e: any, isAlpha?: boolean): void;
+ handleDiffDrag(e: any): void;
+ onTouchStart(e: any): void;
+ onTouchMove(e: any): void;
+ onTouchEnd(e: any): void;
+ close(trigger: string): void;
+ onVisibleChange(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.js b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.js
new file mode 100644
index 0000000..8cd8529
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{SATURATION_PANEL_DEFAULT_HEIGHT,SATURATION_PANEL_DEFAULT_WIDTH,SLIDER_DEFAULT_WIDTH,DEFAULT_COLOR,ALPHA_MAX,HUE_MAX,DEFAULT_SYSTEM_SWATCH_COLORS}from"./constants";import{getRect,debounce}from"../common/utils";import{Color,getColorObject}from"./utils";const{prefix:prefix}=config,name=`${prefix}-color-picker`,getCoordinate=(t,e,a)=>{var o;const{pageX:i,pageY:r,clientY:l}=t.changedTouches[0]||{},s=a?e.top:null===(o=t.currentTarget)||void 0===o?void 0:o.offsetTop;return{x:Math.min(Math.max(0,i-e.left),e.width),y:Math.min(Math.max(0,(a?l:r)-s),e.height)}},getFormatList=(t,e)=>{const a={HSV:Object.values(e.getHsva()),HSVA:Object.values(e.getHsva()),HSL:Object.values(e.getHsla()),HSLA:Object.values(e.getHsla()),HSB:Object.values(e.getHsla()),RGB:Object.values(e.getRgba()),RGBA:Object.values(e.getRgba()),CMYK:[...Object.values(e.getCmyk()),0],CSS:[e.css,0],HEX:[e.hex,0]},o=a[t];return o?[...o.slice(0,o.length-1),`${Math.round(100*e.alpha)}%`]:a.RGB},genSwatchList=t=>void 0===t?DEFAULT_SYSTEM_SWATCH_COLORS:t&&t.length?t:[];let ColorPicker=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=props,this.observers={format(){this.setCoreStyle()},swatchColors(t){this.setData({innerSwatchList:genSwatchList(t)})},type(t){this.setData({isMultiple:"multiple"===t})},"usePopup, visible"(t,e){this.timer&&clearTimeout(this.timer),t&&e&&(this.timer=setTimeout((()=>{this.getEleReact()}),350))},value(t){t&&this.init()}},this.color=new Color(props.defaultValue.value||props.value.value||DEFAULT_COLOR),this.data={prefix:prefix,classPrefix:name,panelRect:{width:SATURATION_PANEL_DEFAULT_WIDTH,height:SATURATION_PANEL_DEFAULT_HEIGHT},sliderRect:{width:SLIDER_DEFAULT_WIDTH,left:0},saturationInfo:{saturation:0,value:0},saturationThumbStyle:{left:0,top:0},sliderInfo:{value:0},hueSliderStyle:{left:0},alphaSliderStyle:{left:0},innerValue:props.defaultValue.value||props.value.value,showPrimaryColorPreview:!1,previewColor:props.defaultValue.value||props.value.value,formatList:getFormatList(props.format.value,this.color),innerSwatchList:genSwatchList(props.swatchColors.value),isMultiple:"multiple"===props.type.value,defaultOverlayProps:{}},this.lifetimes={ready(){this.init()},attached(){this.debouncedUpdateEleRect=debounce((t=>this.updateEleRect(t)),150)},detached(){clearTimeout(this.timer)}},this.methods={init(){const{value:t,defaultValue:e}=this.properties,a=t||e;a&&this.setData({innerValue:a}),this.color=new Color(a||DEFAULT_COLOR),this.updateColor(),this.getEleReact()},updateEleRect(t){if(!t)return;const{scrollTop:e}=t.detail,{width:a,height:o,left:i,initTop:r}=this.data.panelRect;this.setData({panelRect:{width:a,height:o,left:i,top:r-e,initTop:r}})},getEleReact(){Promise.all([getRect(this,`.${name}__saturation`),getRect(this,`.${name}__slider`)]).then((([t,e])=>{this.setData({panelRect:{width:t.width||SATURATION_PANEL_DEFAULT_WIDTH,height:t.height||SATURATION_PANEL_DEFAULT_HEIGHT,left:t.left||0,top:t.top||0,initTop:t.top||0},sliderRect:{left:e.left||0,width:e.width||SLIDER_DEFAULT_WIDTH}},(()=>{this.setCoreStyle()}))}))},clickSwatch(t){const e=t.currentTarget.dataset.value;this.color.update(e),this.emitColorChange("preset"),this.setCoreStyle()},setCoreStyle(){this.setData({sliderInfo:{value:this.color.hue},hueSliderStyle:this.getSliderThumbStyle({value:this.color.hue,maxValue:HUE_MAX}),alphaSliderStyle:this.getSliderThumbStyle({value:100*this.color.alpha,maxValue:ALPHA_MAX}),saturationInfo:{saturation:this.color.saturation,value:this.color.value},saturationThumbStyle:this.getSaturationThumbStyle({saturation:this.color.saturation,value:this.color.value}),previewColor:this.color.rgba,formatList:getFormatList(this.properties.format,this.color)})},emitColorChange(t){this.setData({innerValue:this.formatValue()}),this.triggerEvent("change",{value:this.formatValue(),context:{trigger:t,color:getColorObject(this.color)}})},defaultEmptyColor:()=>DEFAULT_COLOR,updateColor(){const t=this.data.innerValue||this.defaultEmptyColor();this.color.update(t)},getSaturationAndValueByCoordinate(t){const{width:e,height:a}=this.data.panelRect,{x:o,y:i}=t;let r=o/e,l=1-i/a;return r=Math.min(1,Math.max(0,r)),l=Math.min(1,Math.max(0,l)),{saturation:r,value:l}},getSaturationThumbStyle({saturation:t,value:e}){const{width:a,height:o}=this.data.panelRect,i=Math.round((1-e)*o),r=Math.round(t*a);return{color:this.color.rgb,left:`${r}px`,top:`${i}px`}},getSliderThumbStyle({value:t,maxValue:e}){const{width:a}=this.data.sliderRect;if(!a)return;return{left:`${Math.round(t/e*100)}%`,color:this.color.rgb}},onChangeSaturation({saturation:t,value:e}){const{saturation:a,value:o}=this.color;let i="palette-saturation-brightness";if(e!==o&&t!==a)this.color.saturation=t,this.color.value=e,i="palette-saturation-brightness";else if(t!==a)this.color.saturation=t,i="palette-saturation";else{if(e===o)return;this.color.value=e,i="palette-brightness"}this.triggerEvent("palette-bar-change",{color:getColorObject(this.color)}),this.emitColorChange(i),this.setCoreStyle()},formatValue(){return this.color.getFormatsColorMap()[this.properties.format]||this.color.css},onChangeSlider({value:t,isAlpha:e}){e?this.color.alpha=t/100:this.color.hue=t,this.emitColorChange(e?"palette-alpha-bar":"palette-hue-bar"),this.setCoreStyle()},handleSaturationDrag(t){const{usePopup:e,fixed:a}=this.properties,o=getCoordinate(t,this.data.panelRect,e||a),{saturation:i,value:r}=this.getSaturationAndValueByCoordinate(o);this.onChangeSaturation({saturation:i,value:r})},handleSliderDrag(t,e=!1){const{width:a}=this.data.sliderRect,o=getCoordinate(t,this.data.sliderRect),{x:i}=o,r=e?ALPHA_MAX:HUE_MAX;let l=Math.round(i/a*r*100)/100;l<0&&(l=0),l>r&&(l=r),this.onChangeSlider({value:l,isAlpha:e})},handleDiffDrag(t){switch(t.target.dataset.type||t.currentTarget.dataset.type){case"saturation":this.handleSaturationDrag(t);break;case"hue-slider":this.handleSliderDrag(t);break;case"alpha-slider":this.handleSliderDrag(t,!0)}},onTouchStart(t){this.handleDiffDrag(t)},onTouchMove(t){this.handleDiffDrag(t)},onTouchEnd(t){wx.nextTick((()=>{this.handleDiffDrag(t)}))},close(t){this.properties.autoClose&&this.setData({visible:!1}),this.triggerEvent("close",{trigger:t})},onVisibleChange(){this.close("overlay")}}}};ColorPicker=__decorate([wxComponent()],ColorPicker);export default ColorPicker;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.json b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.json
new file mode 100644
index 0000000..4139673
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.json
@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxml b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxml
new file mode 100644
index 0000000..b064e62
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxss b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxss
new file mode 100644
index 0000000..7a77351
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/color-picker.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-color-picker__panel{padding:0;width:var(--td-color-picker-panel-width,750rpx);background:var(--td-color-picker-background,#fff);border-top-left-radius:var(--td-color-picker-panel-radius,24rpx);border-top-right-radius:var(--td-color-picker-panel-radius,24rpx);user-select:none}.t-color-picker__body{padding:var(--td-color-picker-panel-padding,32rpx);padding-bottom:56rpx}.t-color-picker__thumb{position:absolute;z-index:1;outline:0;width:var(--td-color-picker-slider-thumb-size,48rpx);height:var(--td-color-picker-slider-thumb-size,48rpx);border-radius:var(--td-color-picker-border-radius-circle,50%);box-shadow:var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12));color:var(--td-text-color-brand,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));box-sizing:border-box}.t-color-picker__thumb::after,.t-color-picker__thumb::before{content:'';position:absolute;border-radius:var(--td-color-picker-border-radius-circle,50%);box-sizing:border-box;display:block;border:1px solid #dcdcdc}.t-color-picker__thumb::before{left:0;top:0;width:100%;height:100%;background-color:#fff}.t-color-picker__thumb::after{left:3px;top:3px;width:calc(100% - 6px);height:calc(100% - 6px);padding:var(--td-color-picker-slider-thumb-padding,6rpx);background:currentcolor}.t-color-picker__saturation{height:var(--td-color-picker-saturation-height,288rpx);border-radius:var(--td-color-picker-saturation-radius,12rpx);position:relative;overflow:hidden;background:0 0}.t-color-picker__saturation::after,.t-color-picker__saturation::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%}.t-color-picker__saturation::before{background:linear-gradient(90deg,#fff,transparent)}.t-color-picker__saturation::after{background:linear-gradient(0deg,#000,transparent)}.t-color-picker__saturation .t-color-picker__thumb{width:var(--td-color-picker-saturation-thumb-size,48rpx);height:var(--td-color-picker-saturation-thumb-size,48rpx);border-radius:var(--td-color-picker-border-radius-circle,50%);transform:translate(-50%,-50%)}.t-color-picker__slider-wrapper{border-radius:calc(var(--td-color-picker-slider-height,16rpx)/ 2);padding:var(--td-color-picker-slider-wrapper-padding,0 18rpx);position:relative}.t-color-picker__slider-wrapper--hue-type{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);margin:16rpx 0}.t-color-picker__slider-wrapper--alpha-type{background:var(--td-text-color-anti,var(--td-font-white-1,#fff));margin:40rpx 0 16rpx 0;background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-size:6px 6px;background-position:0 0,3px 3px}.t-color-picker__slider-wrapper--alpha-type .t-color-picker__rail{background:linear-gradient(to right,transparent,currentcolor)}.t-color-picker__slider-padding{position:absolute;left:0;top:0;width:100%;height:var(--td-color-picker-slider-height,16rpx);border-radius:calc(var(--td-color-picker-slider-height,16rpx)/ 2)}.t-color-picker__slider{height:var(--td-color-picker-slider-height,16rpx);position:relative;border-radius:calc(var(--td-color-picker-slider-height,16rpx)/ 2);color:transparent;outline:0;z-index:1}.t-color-picker__slider .t-color-picker__thumb{transform:translate(var(--td-color-picker-slider-thumb-transform-x,-18rpx),-50%);top:50%}.t-color-picker__slider .t-color-picker__rail{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;border-radius:inherit}.t-color-picker__sliders-wrapper{display:flex;align-items:center;margin:32rpx 0 40rpx}.t-color-picker__sliders{width:100%}.t-color-picker__sliders-preview{flex-shrink:0;margin-left:var(--td-color-picker-margin,24rpx);width:var(--td-color-picker-gradient-preview-width,56rpx);height:var(--td-color-picker-gradient-preview-height,56rpx);border-radius:var(--td-color-picker-gradient-preview-radius,6rpx);overflow:hidden;background:var(--td-text-color-anti,var(--td-font-white-1,#fff));background-image:linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5),linear-gradient(45deg,#c5c5c5 25%,transparent 0,transparent 75%,#c5c5c5 0,#c5c5c5);background-size:6px 6px;background-position:0 0,3px 3px}.t-color-picker__sliders-preview-inner{display:block;width:100%;height:100%}.t-color-picker__format{display:flex;align-items:center;justify-content:space-between;color:rgba(0,0,0,.4);font-size:28rpx;text-align:center;line-height:56rpx;height:56rpx;margin-top:40rpx}.t-color-picker__format-item{background:var(--td-color-picker-format-background-color,var(--td-gray-color-1,#f3f3f3))}.t-color-picker__format-item--first{flex-shrink:0;width:136rpx;border:1px solid #dcdcdc;border-radius:12rpx;margin-right:24rpx}.t-color-picker__format-item--second{flex:1}.t-color-picker__format-inputs{display:flex;align-items:center;justify-content:space-around}.t-color-picker__format-input{flex:1;width:0;margin-left:-1px;border:1px solid #dcdcdc;border-radius:12rpx}.t-color-picker__format-input:not(:first-child):not(:last-child){border-radius:0}.t-color-picker__format-input:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.t-color-picker__format-input:last-child:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.t-color-picker__format-input--fixed{flex-shrink:0;flex-grow:0;flex-basis:133rpx}.t-color-picker__swatches-wrap{margin-top:56rpx;position:relative}.t-color-picker__swatches+.t-color-picker__swatches{margin-top:var(--td-color-picker-margin,24rpx)}.t-color-picker__swatches-title{font:var(--td-color-picker-swatches-title-font,32rpx);padding:0;color:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:space-between;height:48rpx;line-height:48rpx}.t-color-picker__swatches-items{margin-top:24rpx;width:100%;list-style:none;display:flex;overflow-x:auto;overflow-y:auto}.t-color-picker__swatches-items::-webkit-scrollbar{display:none;width:0;height:0;color:transparent}.t-color-picker__swatches-item{width:var(--td-color-picker-swatch-width,48rpx);height:var(--td-color-picker-swatch-height,48rpx);border-radius:6rpx;padding:var(--td-color-picker-swatch-padding,0);overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative;transform-origin:center;transition:all var(--td-anim-duration-base,.2s) var(--td-anim-time-fn-easing,cubic-bezier(.38,0,.24,1));box-sizing:border-box;flex-shrink:0;margin-right:24rpx;border-radius:var(--td-color-picker-swatch-border-radius,6rpx)}.t-color-picker__swatches-item::after{content:'';width:100%;height:100%;position:absolute;left:0;top:0;opacity:0;background:rgba(0,0,0,.2)}.t-color-picker__swatches-item:active::after{opacity:1}.t-color-picker__swatches-inner{width:100%;height:100%;display:block;border-radius:var(--td-color-picker-swatch-border-radius,6rpx);position:relative}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/constants.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.d.ts
new file mode 100644
index 0000000..95998fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.d.ts
@@ -0,0 +1,7 @@
+export declare const DEFAULT_COLOR = "#001F97";
+export declare const DEFAULT_SYSTEM_SWATCH_COLORS: string[];
+export declare const SATURATION_PANEL_DEFAULT_WIDTH = 343;
+export declare const SATURATION_PANEL_DEFAULT_HEIGHT = 144;
+export declare const SLIDER_DEFAULT_WIDTH = 303;
+export declare const HUE_MAX = 360;
+export declare const ALPHA_MAX = 100;
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/constants.js b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.js
new file mode 100644
index 0000000..ee1c4b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/constants.js
@@ -0,0 +1 @@
+export const DEFAULT_COLOR="#001F97";export const DEFAULT_SYSTEM_SWATCH_COLORS=["#F2F3FF","#D9E1FF","#B5C7FF","#8EABFF","#618DFF","#366EF4","#0052D9","#003CAB","#002A7C","#001A57"];export const SATURATION_PANEL_DEFAULT_WIDTH=343;export const SATURATION_PANEL_DEFAULT_HEIGHT=144;export const SLIDER_DEFAULT_WIDTH=303;export const HUE_MAX=360;export const ALPHA_MAX=100;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.d.ts
new file mode 100644
index 0000000..df8e678
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.d.ts
@@ -0,0 +1,5 @@
+export interface Coordinate {
+ x: number;
+ y: number;
+}
+export declare type ColorPickerChangeTrigger = 'palette-saturation-brightness' | 'palette-saturation' | 'palette-brightness' | 'palette-hue-bar' | 'palette-alpha-bar' | 'preset';
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.js b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/interfaces.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/props.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/props.d.ts
new file mode 100644
index 0000000..177f6e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/props.d.ts
@@ -0,0 +1,3 @@
+import { TdColorPickerProps } from './type';
+declare const props: TdColorPickerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/props.js b/miniprogram_npm/tdesign-miniprogram/color-picker/props.js
new file mode 100644
index 0000000..fb8fa6e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!0},enableAlpha:{type:Boolean,value:!1},fixed:{type:Boolean,value:!1},format:{type:String,value:"RGB"},popupProps:{type:Object,value:{}},swatchColors:{type:Array},type:{type:String,value:"base"},usePopup:{type:Boolean,value:!1},value:{type:String,value:null},defaultValue:{type:String,value:""},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/template.wxml b/miniprogram_npm/tdesign-miniprogram/color-picker/template.wxml
new file mode 100644
index 0000000..00f1f0e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/template.wxml
@@ -0,0 +1 @@
+{{format}}{{item}}系统预设色彩
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/type.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/type.d.ts
new file mode 100644
index 0000000..c307246
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/type.d.ts
@@ -0,0 +1,48 @@
+import { PopupProps } from '../popup/index';
+export interface TdColorPickerProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ enableAlpha?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ format?: {
+ type: StringConstructor;
+ value?: 'RGB' | 'RGBA' | 'HSL' | 'HSLA' | 'HSB' | 'HSV' | 'HSVA' | 'HEX' | 'CMYK' | 'CSS';
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ swatchColors?: {
+ type: ArrayConstructor;
+ value?: Array | null;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: TypeEnum;
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ defaultValue?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type TypeEnum = 'base' | 'multiple';
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/type.js b/miniprogram_npm/tdesign-miniprogram/color-picker/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.d.ts
new file mode 100644
index 0000000..c985ed7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.d.ts
@@ -0,0 +1 @@
+export * from '../common/shared/color-picker/index';
diff --git a/miniprogram_npm/tdesign-miniprogram/color-picker/utils.js b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.js
new file mode 100644
index 0000000..4bdc293
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/color-picker/utils.js
@@ -0,0 +1 @@
+export*from"../common/shared/color-picker/index";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/bus.d.ts b/miniprogram_npm/tdesign-miniprogram/common/bus.d.ts
new file mode 100644
index 0000000..fddbb54
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/bus.d.ts
@@ -0,0 +1,7 @@
+export default class Bus {
+ listeners: Map;
+ emitted: Set;
+ constructor();
+ on(evtName: string, listener: any): void;
+ emit(evtName: string): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/bus.js b/miniprogram_npm/tdesign-miniprogram/common/bus.js
new file mode 100644
index 0000000..9cd79ab
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/bus.js
@@ -0,0 +1 @@
+export default class Bus{constructor(){this.listeners=new Map,this.emitted=new Set}on(t,e){if(this.emitted.has(t))return void e();const s=this.listeners.get(t)||[];s.push(e),this.listeners.set(t,s)}emit(t){const e=this.listeners.get(t);e&&e.forEach((t=>t())),this.emitted.add(t)}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/common.d.ts b/miniprogram_npm/tdesign-miniprogram/common/common.d.ts
new file mode 100644
index 0000000..12f8f81
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/common.d.ts
@@ -0,0 +1,56 @@
+export declare type Classes = Array;
+export interface Styles {
+ [css: string]: string | number;
+}
+export declare type ImageEvent = any;
+export declare type PlainObject = {
+ [key: string]: any;
+};
+export declare type OptionData = {
+ label?: string;
+ value?: string | number;
+} & PlainObject;
+export declare type TreeOptionData = {
+ children?: Array> | boolean;
+ label?: string;
+ text?: string;
+ value?: T;
+ content?: string;
+} & PlainObject;
+export declare type SizeEnum = 'small' | 'medium' | 'large';
+export declare type ShapeEnum = 'circle' | 'round';
+export declare type HorizontalAlignEnum = 'left' | 'center' | 'right';
+export declare type VerticalAlignEnum = 'top' | 'middle' | 'bottom';
+export declare type LayoutEnum = 'vertical' | 'horizontal';
+export declare type ClassName = {
+ [className: string]: any;
+} | ClassName[] | string;
+export declare type CSSSelector = string;
+export interface KeysType {
+ value?: string;
+ label?: string;
+ disabled?: string;
+}
+export interface TreeKeysType extends KeysType {
+ children?: string;
+}
+export interface HTMLElementAttributes {
+ [attribute: string]: string;
+}
+export interface TScroll {
+ bufferSize?: number;
+ isFixedRowHeight?: boolean;
+ rowHeight?: number;
+ threshold?: number;
+ type: 'lazy' | 'virtual';
+}
+export declare type InfinityScroll = TScroll;
+export interface ScrollToElementParams {
+ index?: number;
+ top?: number;
+ time?: number;
+ behavior?: 'auto' | 'smooth';
+}
+export interface ComponentScrollToElementParams extends ScrollToElementParams {
+ key?: string | number;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/common.js b/miniprogram_npm/tdesign-miniprogram/common/common.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/common.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/component.d.ts b/miniprogram_npm/tdesign-miniprogram/common/component.d.ts
new file mode 100644
index 0000000..a8d86ae
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/component.d.ts
@@ -0,0 +1,3 @@
+///
+declare const TComponent: typeof Component;
+export default TComponent;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/component.js b/miniprogram_npm/tdesign-miniprogram/common/component.js
new file mode 100644
index 0000000..980c886
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/component.js
@@ -0,0 +1 @@
+const TComponent=o=>(o.options=Object.assign({multipleSlots:!0,addGlobalClass:!0},o.options),Component(o));export default TComponent;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/config.d.ts b/miniprogram_npm/tdesign-miniprogram/common/config.d.ts
new file mode 100644
index 0000000..4a844b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/config.d.ts
@@ -0,0 +1,6 @@
+///
+declare const _default: {
+ prefix: string;
+};
+export default _default;
+export declare const prefix = "t";
diff --git a/miniprogram_npm/tdesign-miniprogram/common/config.js b/miniprogram_npm/tdesign-miniprogram/common/config.js
new file mode 100644
index 0000000..b655b28
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/config.js
@@ -0,0 +1 @@
+export default{prefix:"t"};export const prefix="t";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.d.ts
new file mode 100644
index 0000000..d9336de
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.d.ts
@@ -0,0 +1,19 @@
+import type { TDate, TCalendarType, TCalendarValue } from './type';
+export default class TCalendar {
+ firstDayOfWeek: number;
+ value: TCalendarValue | TCalendarValue[];
+ type: TCalendarType;
+ minDate: Date;
+ maxDate: Date;
+ format: (day: TDate) => TDate;
+ constructor(options?: {});
+ getTrimValue(): Date | Date[];
+ getDays(weekdays: string[]): any[];
+ getMonths(): any[];
+ select({ cellType, year, month, date }: {
+ cellType: any;
+ year: any;
+ month: any;
+ date: any;
+ }): Date | TCalendarValue[];
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.js b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.js
new file mode 100644
index 0000000..a9caa03
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/index.js
@@ -0,0 +1 @@
+import{getDateRect,isSameDate,getMonthDateRect,isValidDate,getDate}from"../date";export default class TCalendar{constructor(e={}){this.type="single",Object.assign(this,e),this.minDate||(this.minDate=getDate()),this.maxDate||(this.maxDate=getDate(6))}getTrimValue(){const{value:e,type:t}=this,a=e=>e instanceof Date?e:"number"==typeof e?new Date(e):new Date;if("single"===t&&isValidDate(e))return a(e);if("multiple"===t||"range"===t){if(Array.isArray(e)){return e.every((e=>isValidDate(e)))?e.map((e=>a(e))):[]}return[]}}getDays(e){const t=[];let a=this.firstDayOfWeek%7;for(;t.length<7;)t.push(e[a]),a=(a+1)%7;return t}getMonths(){const e=[],t=this.getTrimValue(),{minDate:a,maxDate:i,type:r,format:s}=this,n=getDateRect(a);let{year:m,month:l}=n;const{time:o}=n,{year:D,month:h,time:u}=getDateRect(i),y=(e,a,i)=>{const s=new Date(e,a,i,23,59,59);if("single"===r&&t&&isSameDate({year:e,month:a,date:i},t))return"selected";if("multiple"===r&&t){if(t.some((t=>isSameDate({year:e,month:a,date:i},t))))return"selected"}if("range"===r&&t&&Array.isArray(t)){const[r,n]=t;if(r&&isSameDate({year:e,month:a,date:i},r))return"start";if(n&&isSameDate({year:e,month:a,date:i},n))return"end";if(r&&n&&s.getTime()>r.getTime()&&s.getTime()u?"disabled":""};for(;mt.lastDate);e+=1){const t={date:new Date(m,l,e),day:e,type:y(m,l,e)};a.push(s?s(t):t)}e.push({year:m,month:l,months:a,weekdayOfFirstDay:t.weekdayOfFirstDay});const i=getDateRect(new Date(m,l+1,1));m=i.year,l=i.month}return e}select({cellType:e,year:t,month:a,date:i}){const{type:r}=this,s=this.getTrimValue();if("disabled"===e)return;const n=new Date(t,a,i);if(this.value=n,"range"===r&&Array.isArray(s))1===s.length&&n>s[0]?this.value=[s[0],n]:this.value=[n];else if("multiple"===r&&Array.isArray(s)){const e=[...s],t=s.findIndex((e=>isSameDate(e,n)));t>-1?e.splice(t,1):e.push(n),this.value=e}return this.value}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.d.ts
new file mode 100644
index 0000000..f5da97a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.d.ts
@@ -0,0 +1,11 @@
+export declare type TCalendarValue = number | Date;
+export declare type TDateType = 'selected' | 'disabled' | 'start' | 'centre' | 'end' | '';
+export declare type TCalendarType = 'single' | 'multiple' | 'range';
+export interface TDate {
+ date: Date;
+ day: number;
+ type: TDateType;
+ className?: string;
+ prefix?: string;
+ suffix?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.js b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/calendar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.d.ts
new file mode 100644
index 0000000..d0e92a8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.d.ts
@@ -0,0 +1,7 @@
+export declare const rgb2cmyk: (red: number, green: number, blue: number) => number[];
+export declare const cmyk2rgb: (cyan: number, magenta: number, yellow: number, black: number) => {
+ r: number;
+ g: number;
+ b: number;
+};
+export declare const cmykInputToColor: (input: string) => string;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.js
new file mode 100644
index 0000000..6fa325a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/cmyk.js
@@ -0,0 +1 @@
+export const rgb2cmyk=(t,r,e)=>{let n=0,o=0,c=0,a=0;const s=parseInt(`${t}`.replace(/\s/g,""),10),m=parseInt(`${r}`.replace(/\s/g,""),10),u=parseInt(`${e}`.replace(/\s/g,""),10);if(0===s&&0===m&&0===u)return a=1,[0,0,0,1];n=1-s/255,o=1-m/255,c=1-u/255;const p=Math.min(n,Math.min(o,c));return n=(n-p)/(1-p),o=(o-p)/(1-p),c=(c-p)/(1-p),a=p,[n,o,c,a]};export const cmyk2rgb=(t,r,e,n)=>{let o=t/100,c=r/100,a=e/100;const s=n/100;o=o*(1-s)+s,c=c*(1-s)+s,a=a*(1-s)+s;let m=1-o,u=1-c,p=1-a;return m=Math.round(255*m),u=Math.round(255*u),p=Math.round(255*p),{r:m,g:u,b:p}};const REG_CMYK_STRING=/cmyk\((\d+%?),(\d+%?),(\d+%?),(\d+%?)\)/,toNumber=t=>Math.max(0,Math.min(255,parseInt(t,10)));export const cmykInputToColor=t=>{if(/cmyk/i.test(t)){const r=t.replace(/\s/g,"").match(REG_CMYK_STRING),e=toNumber(r[1]),n=toNumber(r[2]),o=toNumber(r[3]),c=toNumber(r[4]),{r:a,g:s,b:m}=cmyk2rgb(e,n,o,c);return`rgb(${a}, ${s}, ${m})`}return t};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.d.ts
new file mode 100644
index 0000000..9b17162
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.d.ts
@@ -0,0 +1,107 @@
+import tinyColor from 'tinycolor2/esm/tinycolor';
+import { GradientColors, GradientColorPoint } from './gradient';
+export interface ColorObject {
+ alpha: number;
+ css: string;
+ hex: string;
+ hex8: string;
+ hsl: string;
+ hsla: string;
+ hsv: string;
+ hsva: string;
+ rgb: string;
+ rgba: string;
+ saturation: number;
+ value: number;
+ isGradient: boolean;
+ linearGradient?: string;
+}
+interface ColorStates {
+ s: number;
+ v: number;
+ h: number;
+ a: number;
+}
+interface GradientStates {
+ colors: GradientColorPoint[];
+ degree: number;
+ selectedId: string;
+ css?: string;
+}
+export declare const gradientColors2string: (object: GradientColors) => string;
+export declare const getColorWithoutAlpha: (color: string) => any;
+export declare const genId: () => string;
+export declare const genGradientPoint: (left: number, color: string) => GradientColorPoint;
+export declare class Color {
+ states: ColorStates;
+ originColor: string;
+ isGradient: boolean;
+ gradientStates: GradientStates;
+ constructor(input: string);
+ update(input: string): void;
+ get saturation(): number;
+ set saturation(value: number);
+ get value(): number;
+ set value(value: number);
+ get hue(): number;
+ set hue(value: number);
+ get alpha(): number;
+ set alpha(value: number);
+ get rgb(): string;
+ get rgba(): string;
+ get hsv(): string;
+ get hsva(): string;
+ get hsl(): string;
+ get hsla(): string;
+ get hex(): any;
+ get hex8(): any;
+ get cmyk(): string;
+ get css(): string;
+ get linearGradient(): string;
+ get gradientColors(): GradientColorPoint[];
+ set gradientColors(colors: GradientColorPoint[]);
+ get gradientSelectedId(): string;
+ set gradientSelectedId(id: string);
+ get gradientDegree(): number;
+ set gradientDegree(degree: number);
+ get gradientSelectedPoint(): GradientColorPoint;
+ getFormatsColorMap(): {
+ HEX: any;
+ CMYK: string;
+ RGB: string;
+ RGBA: string;
+ HSL: string;
+ HSLA: string;
+ HSV: string;
+ HSVA: string;
+ CSS: string;
+ HEX8: any;
+ };
+ updateCurrentGradientColor(): false | this;
+ updateStates(input: string): void;
+ getRgba(): {
+ r: number;
+ g: number;
+ b: number;
+ a: tinyColor.ColorFormats.RGBA;
+ };
+ getCmyk(): {
+ c: number;
+ m: number;
+ y: number;
+ k: number;
+ };
+ getHsva(): tinyColor.ColorFormats.HSVA;
+ getHsla(): tinyColor.ColorFormats.HSLA;
+ equals(color: string): boolean;
+ static isValid(color: string): boolean;
+ static hsva2color(h: number, s: number, v: number, a: number): any;
+ static hsla2color(h: number, s: number, l: number, a: number): any;
+ static rgba2color(r: number, g: number, b: number, a: number): any;
+ static hex2color(hex: string, a: number): any;
+ static object2color(object: any, format: string): any;
+ static isGradientColor: (input: string) => boolean;
+ static compare: (color1: string, color2: string) => boolean;
+}
+export declare const getColorObject: (color: Color) => ColorObject;
+export default Color;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.js
new file mode 100644
index 0000000..27bc699
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/color.js
@@ -0,0 +1 @@
+import tinyColor from"tinycolor2/esm/tinycolor";import{cmykInputToColor,rgb2cmyk}from"./cmyk";import{parseGradientString,isGradientColor}from"./gradient";const mathRound=Math.round,hsv2rgba=t=>tinyColor(t).toRgb(),hsv2hsva=t=>tinyColor(t).toHsv(),hsv2hsla=t=>tinyColor(t).toHsl();export const gradientColors2string=t=>{const{points:e,degree:r}=t;return`linear-gradient(${r}deg,${e.sort(((t,e)=>t.left-e.left)).map((t=>`${t.color} ${Math.round(100*t.left)/100}%`)).join(",")})`};export const getColorWithoutAlpha=t=>tinyColor(t).setAlpha(1).toHexString();export const genId=()=>(1+4294967295*Math.random()).toString(16);export const genGradientPoint=(t,e)=>({id:genId(),left:t,color:e});export class Color{constructor(t){this.states={s:100,v:100,h:100,a:1},this.gradientStates={colors:[],degree:0,selectedId:null,css:""},this.update(t)}update(t){var e,r;const s=parseGradientString(t);if(this.isGradient&&!s){const e=tinyColor(t).toHsv();return this.states=e,void this.updateCurrentGradientColor()}this.originColor=t,this.isGradient=!1;let a=t;if(s){this.isGradient=!0;const t=s,i=t.points.map((t=>genGradientPoint(t.left,t.color)));this.gradientStates={colors:i,degree:t.degree,selectedId:(null===(e=i[0])||void 0===e?void 0:e.id)||null},this.gradientStates.css=this.linearGradient,a=null===(r=this.gradientSelectedPoint)||void 0===r?void 0:r.color}this.updateStates(a)}get saturation(){return this.states.s}set saturation(t){this.states.s=Math.max(0,Math.min(100,t)),this.updateCurrentGradientColor()}get value(){return this.states.v}set value(t){this.states.v=Math.max(0,Math.min(100,t)),this.updateCurrentGradientColor()}get hue(){return this.states.h}set hue(t){this.states.h=Math.max(0,Math.min(360,t)),this.updateCurrentGradientColor()}get alpha(){return this.states.a}set alpha(t){this.states.a=Math.max(0,Math.min(1,Math.round(100*t)/100)),this.updateCurrentGradientColor()}get rgb(){const{r:t,g:e,b:r}=hsv2rgba(this.states);return`rgb(${mathRound(t)}, ${mathRound(e)}, ${mathRound(r)})`}get rgba(){const{r:t,g:e,b:r,a:s}=hsv2rgba(this.states);return`rgba(${mathRound(t)}, ${mathRound(e)}, ${mathRound(r)}, ${s})`}get hsv(){const{h:t,s:e,v:r}=this.getHsva();return`hsv(${t}, ${e}%, ${r}%)`}get hsva(){const{h:t,s:e,v:r,a:s}=this.getHsva();return`hsva(${t}, ${e}%, ${r}%, ${s})`}get hsl(){const{h:t,s:e,l:r}=this.getHsla();return`hsl(${t}, ${e}%, ${r}%)`}get hsla(){const{h:t,s:e,l:r,a:s}=this.getHsla();return`hsla(${t}, ${e}%, ${r}%, ${s})`}get hex(){return tinyColor(this.states).toHexString()}get hex8(){return tinyColor(this.states).toHex8String()}get cmyk(){const{c:t,m:e,y:r,k:s}=this.getCmyk();return`cmyk(${t}, ${e}, ${r}, ${s})`}get css(){return this.isGradient?this.linearGradient:this.rgba}get linearGradient(){const{gradientColors:t,gradientDegree:e}=this;return gradientColors2string({points:t,degree:e})}get gradientColors(){return this.gradientStates.colors}set gradientColors(t){this.gradientStates.colors=t,this.gradientStates.css=this.linearGradient}get gradientSelectedId(){return this.gradientStates.selectedId}set gradientSelectedId(t){var e;t!==this.gradientSelectedId&&(this.gradientStates.selectedId=t,this.updateStates(null===(e=this.gradientSelectedPoint)||void 0===e?void 0:e.color))}get gradientDegree(){return this.gradientStates.degree}set gradientDegree(t){this.gradientStates.degree=Math.max(0,Math.min(360,t)),this.gradientStates.css=this.linearGradient}get gradientSelectedPoint(){const{gradientColors:t,gradientSelectedId:e}=this;return t.find((t=>t.id===e))}getFormatsColorMap(){return{HEX:this.hex,CMYK:this.cmyk,RGB:this.rgb,RGBA:this.rgba,HSL:this.hsl,HSLA:this.hsla,HSV:this.hsv,HSVA:this.hsva,CSS:this.css,HEX8:this.hex8}}updateCurrentGradientColor(){const{isGradient:t,gradientColors:e,gradientSelectedId:r}=this,{length:s}=e,a=this.gradientSelectedPoint;if(!t||0===s||!a)return!1;const i=e.findIndex((t=>t.id===r)),n=Object.assign(Object.assign({},a),{color:this.rgba});return e.splice(i,1,n),this.gradientColors=e.slice(),this}updateStates(t){const e=tinyColor(cmykInputToColor(t)).toHsv();this.states=e}getRgba(){const{r:t,g:e,b:r,a:s}=hsv2rgba(this.states);return{r:mathRound(t),g:mathRound(e),b:mathRound(r),a:s}}getCmyk(){const{r:t,g:e,b:r}=this.getRgba(),[s,a,i,n]=rgb2cmyk(t,e,r);return{c:mathRound(100*s),m:mathRound(100*a),y:mathRound(100*i),k:mathRound(100*n)}}getHsva(){let{h:t,s:e,v:r,a:s}=hsv2hsva(this.states);return t=mathRound(t),e=mathRound(100*e),r=mathRound(100*r),s*=1,{h:t,s:e,v:r,a:s}}getHsla(){let{h:t,s:e,l:r,a:s}=hsv2hsla(this.states);return t=mathRound(t),e=mathRound(100*e),r=mathRound(100*r),s*=1,{h:t,s:e,l:r,a:s}}equals(t){return tinyColor.equals(this.rgba,t)}static isValid(t){return!!parseGradientString(t)||tinyColor(t).isValid()}static hsva2color(t,e,r,s){return tinyColor({h:t,s:e,v:r,a:s}).toHsvString()}static hsla2color(t,e,r,s){return tinyColor({h:t,s:e,l:r,a:s}).toHslString()}static rgba2color(t,e,r,s){return tinyColor({r:t,g:e,b:r,a:s}).toHsvString()}static hex2color(t,e){const r=tinyColor(t);return r.setAlpha(e),r.toHexString()}static object2color(t,e){if("CMYK"===e){const{c:e,m:r,y:s,k:a}=t;return`cmyk(${e}, ${r}, ${s}, ${a})`}return tinyColor(t,{format:e}).toRgbString()}}Color.isGradientColor=t=>!!isGradientColor(t),Color.compare=(t,e)=>{const r=Color.isGradientColor(t),s=Color.isGradientColor(e);if(r&&s){return gradientColors2string(parseGradientString(t))===gradientColors2string(parseGradientString(e))}return!r&&!s&&tinyColor.equals(t,e)};const COLOR_OBJECT_OUTPUT_KEYS=["alpha","css","hex","hex8","hsl","hsla","hsv","hsva","rgb","rgba","saturation","value","isGradient"];export const getColorObject=t=>{if(!t)return null;const e=Object.create(null);return COLOR_OBJECT_OUTPUT_KEYS.forEach((r=>e[r]=t[r])),t.isGradient&&(e.linearGradient=t.linearGradient),e};export default Color;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.d.ts
new file mode 100644
index 0000000..3f496b0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.d.ts
@@ -0,0 +1,12 @@
+export interface GradientColorPoint {
+ id?: string;
+ color?: string;
+ left?: number;
+}
+export interface GradientColors {
+ points: GradientColorPoint[];
+ degree: number;
+}
+export declare const isGradientColor: (input: string) => null | RegExpExecArray;
+export declare const parseGradientString: (input: string) => GradientColors | boolean;
+export default parseGradientString;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.js
new file mode 100644
index 0000000..2c585c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/gradient.js
@@ -0,0 +1 @@
+import tinyColor from"tinycolor2/esm/tinycolor";import{isString,isNull}from"../../validator";const combineRegExp=(e,t)=>{let o="";for(let t=0;t{const e=/\s*,\s*/,t=/(?:[+-]?\d*\.?\d+)(?:%|[a-z]+)?/,o=combineRegExp(["(?:",/#(?:[a-f0-9]{6}|[a-f0-9]{3})/,"|","(?:rgb|hsl)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*\)/,"|","(?:rgba|hsla)",/\(\s*(?:\d{1,3}\s*,\s*){2}\d{1,3}\s*,\s*\d*\.?\d+\)/,"|",/[_a-z-][_a-z0-9-]*/,")"],""),r=combineRegExp([o,"(?:\\s+",t,"(?:\\s+",t,")?)?"],""),i=combineRegExp(["(?:",r,e,")*",r],""),n=combineRegExp(["(?:(",/(?:[+-]?\d*\.?\d+)(?:deg|grad|rad|turn)/,")|",/to\s+((?:(?:left|right|top|bottom)(?:\s+(?:top|bottom|left|right))?))/,")"],"");return{gradientSearch:combineRegExp(["(?:(",n,")",e,")?(",i,")"],"gi"),colorStopSearch:combineRegExp(["\\s*(",o,")","(?:\\s+","(",t,"))?","(?:",e,"\\s*)?"],"gi")}},parseGradient=(e,t)=>{let o,r,i;e.gradientSearch.lastIndex=0;const n=e.gradientSearch.exec(t);if(!isNull(n))for(o={original:n[0],colorStopList:[]},n[1]&&(o.line=n[1]),n[2]&&(o.angle=n[2]),n[3]&&(o.sideCorner=n[3]),e.colorStopSearch.lastIndex=0,r=e.colorStopSearch.exec(n[4]);!isNull(r);)i={color:r[1]},r[2]&&(i.position=r[2]),o.colorStopList.push(i),r=e.colorStopSearch.exec(n[4]);return o},REGEXP_LIB=generateRegExp(),REG_GRADIENT=/.*gradient\s*\(((?:\([^)]*\)|[^)(]*)*)\)/gim;export const isGradientColor=e=>(REG_GRADIENT.lastIndex=0,REG_GRADIENT.exec(e));const sideCornerDegreeMap={top:0,right:90,bottom:180,left:270,"top left":225,"left top":225,"top right":135,"right top":135,"bottom left":315,"left bottom":315,"bottom right":45,"right bottom":45};export const parseGradientString=e=>{const t=isGradientColor(e);if(!t)return!1;const o={points:[],degree:0},r=parseGradient(REGEXP_LIB,t[1]);if(r.original.trim()!==t[1].trim())return!1;const i=r.colorStopList.map((({color:e,position:t})=>{const o=Object.create(null);return o.color=tinyColor(e).toRgbString(),o.left=parseFloat(t),o}));o.points=i;let n=parseInt(r.angle,10);return Number.isNaN(n)&&(n=sideCornerDegreeMap[r.sideCorner]||90),o.degree=n,o};export default parseGradientString;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.d.ts
new file mode 100644
index 0000000..ad18475
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.d.ts
@@ -0,0 +1,3 @@
+export * from './cmyk';
+export * from './color';
+export * from './gradient';
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.js b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.js
new file mode 100644
index 0000000..7cae9f3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/color-picker/index.js
@@ -0,0 +1 @@
+export*from"./cmyk";export*from"./color";export*from"./gradient";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/date.d.ts b/miniprogram_npm/tdesign-miniprogram/common/shared/date.d.ts
new file mode 100644
index 0000000..e123831
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/date.d.ts
@@ -0,0 +1,21 @@
+export declare type CompareDate = Date | number | {
+ year: number;
+ month: number;
+ date: number;
+};
+export declare const getDateRect: (date: Date | number) => {
+ year: number;
+ month: number;
+ date: number;
+ day: number;
+ time: number;
+};
+export declare const isSameDate: (date1: CompareDate, date2: CompareDate) => boolean;
+export declare const getMonthDateRect: (date: Date | number) => {
+ year: number;
+ month: number;
+ weekdayOfFirstDay: number;
+ lastDate: number;
+};
+export declare const isValidDate: (val: any) => boolean;
+export declare const getDate: (...args: any[]) => any;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/shared/date.js b/miniprogram_npm/tdesign-miniprogram/common/shared/date.js
new file mode 100644
index 0000000..ce1e365
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/shared/date.js
@@ -0,0 +1 @@
+export const getDateRect=e=>{const t=new Date(e);return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),day:t.getDay(),time:t.getTime()}};export const isSameDate=(e,t)=>{(e instanceof Date||"number"==typeof e)&&(e=getDateRect(e)),(t instanceof Date||"number"==typeof t)&&(t=getDateRect(t));return["year","month","date"].every((a=>e[a]===t[a]))};export const getMonthDateRect=e=>{const{year:t,month:a}=getDateRect(e);return{year:t,month:a,weekdayOfFirstDay:new Date(t,a,1).getDay(),lastDate:new Date(+new Date(t,a+1,1)-864e5).getDate()}};export const isValidDate=e=>"number"==typeof e||e instanceof Date;export const getDate=(...e)=>{const t=new Date;if(0===e.length)return t;if(1===e.length&&e[0]<=1e3){const{year:a,month:n,date:r}=getDateRect(t);return new Date(a,n+e[0],r)}return Date.apply(null,e)};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/control.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/control.d.ts
new file mode 100644
index 0000000..ed3f4a0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/control.d.ts
@@ -0,0 +1,15 @@
+declare type ControlInstance = {
+ controlled: boolean;
+ initValue: any;
+ set(newVal: any, extObj?: Object, fn?: any): void;
+ get(): any;
+ change(newVal: any, customChangeData?: any, customUpdateFn?: any): void;
+};
+declare type ControlOption = {
+ valueKey?: string;
+ defaultValueKey?: string;
+ changeEventName?: string;
+ strict?: boolean;
+};
+declare function useControl(this: any, option?: ControlOption): ControlInstance;
+export { ControlOption, ControlInstance, useControl };
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/control.js b/miniprogram_npm/tdesign-miniprogram/common/src/control.js
new file mode 100644
index 0000000..9010a19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/control.js
@@ -0,0 +1 @@
+const defaultOption={valueKey:"value",defaultValueKey:"defaultValue",changeEventName:"change",strict:!0};function useControl(e={}){const{valueKey:t,defaultValueKey:a,changeEventName:n,strict:s}=Object.assign(Object.assign({},defaultOption),e),l=this.properties||{},i=l[t],u=l[s?a:t];let o=!1;s&&null!=i&&(o=!0);const c=(e,a,n)=>{this.setData(Object.assign({[`_${t}`]:e},a),n)};return{controlled:o,initValue:o?i:u,set:c,get:()=>this.data[`_${t}`],change:(e,t,a)=>{this.triggerEvent(n,void 0!==t?t:e),o||("function"==typeof a?a():c(e))}}}export{useControl};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.d.ts
new file mode 100644
index 0000000..7fe850a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.d.ts
@@ -0,0 +1,13 @@
+export declare const getPrototypeOf: (obj: any) => any;
+export declare const iterateInheritedPrototype: (callback: (proto: Record) => boolean | void, fromCtor: any, toCtor: any, includeToCtor?: boolean) => void;
+export interface ClassInstanceToObjectOptions {
+ bindTo?: any;
+ excludes?: string[];
+ till?: any;
+ enumerable?: 0 | boolean;
+ configurable?: 0 | boolean;
+ writable?: 0 | boolean;
+}
+export declare const toObject: (something: any, options?: ClassInstanceToObjectOptions) => {
+ [key: string]: any;
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.js b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.js
new file mode 100644
index 0000000..d7675d4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/flatTool.js
@@ -0,0 +1 @@
+import{isObject}from"../../common/validator";export const getPrototypeOf=function(t){return Object.getPrototypeOf?Object.getPrototypeOf(t):t.__proto__};export const iterateInheritedPrototype=function(t,e,o,r=!0){let n=e.prototype||e;const c=o.prototype||o;for(;n&&(r||n!==c)&&!1!==t(n)&&n!==c;)n=getPrototypeOf(n)};export const toObject=function(t,e={}){const o={};if(!isObject(t))return o;const r=e.excludes||["constructor"],{enumerable:n=!0,configurable:c=0,writable:i=0}=e,p={};return 0!==n&&(p.enumerable=n),0!==c&&(p.configurable=c),0!==i&&(p.writable=i),iterateInheritedPrototype((t=>{Object.getOwnPropertyNames(t).forEach((n=>{if(r.indexOf(n)>=0)return;if(Object.prototype.hasOwnProperty.call(o,n))return;const c=Object.getOwnPropertyDescriptor(t,n);["get","set","value"].forEach((t=>{if("function"==typeof c[t]){const o=c[t];c[t]=function(...t){return o.apply(Object.prototype.hasOwnProperty.call(e,"bindTo")?e.bindTo:this,t)}}})),Object.defineProperty(o,n,Object.assign(Object.assign({},c),p))}))}),t,e.till||Object,!1),o};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/index.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/index.d.ts
new file mode 100644
index 0000000..94e7ce1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/index.d.ts
@@ -0,0 +1,4 @@
+export * from './superComponent';
+export * from './flatTool';
+export * from './instantiationDecorator';
+export * from './control';
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/index.js b/miniprogram_npm/tdesign-miniprogram/common/src/index.js
new file mode 100644
index 0000000..f711ddc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/index.js
@@ -0,0 +1 @@
+export*from"./superComponent";export*from"./flatTool";export*from"./instantiationDecorator";export*from"./control";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.d.ts
new file mode 100644
index 0000000..3a06f2c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.d.ts
@@ -0,0 +1,3 @@
+import { SuperComponent } from './superComponent';
+export declare const toComponent: (options: Record) => Record;
+export declare const wxComponent: () => (constructor: new () => SuperComponent) => void;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.js b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.js
new file mode 100644
index 0000000..740f19e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/instantiationDecorator.js
@@ -0,0 +1 @@
+import{toObject}from"./flatTool";import{isPlainObject}from"../validator";import{canUseVirtualHost}from"../version";const RawLifeCycles=["Created","Attached","Ready","Moved","Detached","Error"],NativeLifeCycles=RawLifeCycles.map((e=>e.toLowerCase())),ComponentNativeProps=["properties","data","observers","methods","behaviors",...NativeLifeCycles,"relations","externalClasses","options","lifetimes","pageLifeTimes","definitionFilter"];export const toComponent=function(e){const{relations:t,behaviors:o=[],externalClasses:i=[]}=e;if(e.properties){Object.keys(e.properties).forEach((t=>{let o=e.properties[t];isPlainObject(o)||(o={type:o}),e.properties[t]=o}));[{key:"ariaHidden",type:Boolean},{key:"ariaRole",type:String},{key:"ariaLabel",type:String},{key:"ariaLabelledby",type:String},{key:"ariaDescribedby",type:String},{key:"ariaBusy",type:Boolean}].forEach((({key:t,type:o})=>{e.properties[t]={type:o}})),e.properties.style={type:String,value:""},e.properties.customStyle={type:String,value:""}}e.methods||(e.methods={}),e.lifetimes||(e.lifetimes={});const s={};if(t){const e=(e,t)=>Behavior({created(){Object.defineProperty(this,`$${e}`,{get:()=>{const o=this.getRelationNodes(t)||[];return"parent"===e?o[0]:o}})}}),i={};Object.keys(t).forEach((o=>{const s=t[o],r=["parent","ancestor"].includes(s.type)?"parent":"children",n=e(r,o);i[r]=n})),o.push(...Object.keys(i).map((e=>i[e])))}if(e.behaviors=[...o],e.externalClasses=["class",...i],Object.getOwnPropertyNames(e).forEach((t=>{const o=Object.getOwnPropertyDescriptor(e,t);o&&(NativeLifeCycles.indexOf(t)<0&&"function"==typeof o.value?(Object.defineProperty(e.methods,t,o),delete e[t]):ComponentNativeProps.indexOf(t)<0?s[t]=o:NativeLifeCycles.indexOf(t)>=0&&(e.lifetimes[t]=e[t]))})),Object.keys(s).length){const t=e.lifetimes.created,o=e.lifetimes.attached,{controlledProps:i=[]}=e;e.lifetimes.created=function(...e){Object.defineProperties(this,s),t&&t.apply(this,e)},e.lifetimes.attached=function(...e){o&&o.apply(this,e),i.forEach((({key:e})=>{const t=`default${e.replace(/^(\w)/,((e,t)=>t.toUpperCase()))}`,o=this.properties;null==o[e]&&(this._selfControlled=!0),null==o[e]&&null!=o[t]&&this.setData({[e]:o[t]})}))},e.methods._trigger=function(e,t,o){const s=i.find((t=>t.event===e));if(s){const{key:e}=s;this._selfControlled&&this.setData({[e]:t[e]})}this.triggerEvent(e,t,o)}}return e};export const wxComponent=function(){return function(e){const t=new class extends e{};t.options=t.options||{},canUseVirtualHost()&&(t.options.virtualHost=!0);const o=toComponent(toObject(t));Component(o)}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.d.ts b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.d.ts
new file mode 100644
index 0000000..4455e19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.d.ts
@@ -0,0 +1,19 @@
+///
+export interface ComponentsOptionsType extends WechatMiniprogram.Component.ComponentOptions {
+ styleIsolation?: 'isolated' | 'apply-shared' | 'shared' | 'page-isolated' | 'page-apply-shared' | 'page-shared';
+}
+export interface RelationsOptions {
+ [componentName: string]: WechatMiniprogram.Component.RelationOption;
+}
+export interface SuperComponent extends WechatMiniprogram.Component.Lifetimes, WechatMiniprogram.Component.OtherOption, WechatMiniprogram.Component.InstanceMethods {
+ properties: P;
+ data: D;
+ options: ComponentsOptionsType;
+ methods: M | Record any>;
+ $global: Function;
+ [x: string]: any;
+}
+export declare class SuperComponent {
+ readonly app: any;
+ constructor();
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.js b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.js
new file mode 100644
index 0000000..cf00ae2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/src/superComponent.js
@@ -0,0 +1 @@
+export class SuperComponent{constructor(){this.app=getApp()}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/_variables.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/_variables.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/base.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/base.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/icons.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/icons.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/index.wxss
new file mode 100644
index 0000000..c6b6b97
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/index.wxss
@@ -0,0 +1 @@
+.hotspot-expanded.relative{position:relative}.hotspot-expanded::after{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;transform:scale(1.5)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_border.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_border.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_clearfix.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_clearfix.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_cursor.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_cursor.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_ellipsis.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_ellipsis.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_hairline.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_hairline.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_index.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_other.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/mixins/_other.wxss
new file mode 100644
index 0000000..e69de29
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_components.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_components.wxss
new file mode 100644
index 0000000..c81b9db
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_components.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:light){.page,page{--td-picker-transparent-color:rgba(255, 255, 255, 0)}}@media (prefers-color-scheme:dark){.page,page{--td-button-primary-disabled-color:var(--td-font-white-4);--td-skeleton-animation-gradient:rgba(255, 255, 255, 0.06);--td-slider-dot-bg-color:var(--td-gray-color-4);--td-slider-dot-disabled-bg-color:var(--td-gray-color-11);--td-slider-dot-disabled-border-color:var(--td-gray-color-12);--td-picker-transparent-color:transparent;--td-switch-dot-disabled-color:var(--td-font-white-2)}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_dark.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_dark.wxss
new file mode 100644
index 0000000..ebe8b99
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_dark.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:dark){.page,page{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:rgba(255, 255, 255, 0.9);--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-9);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-4);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-5);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-4);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.4);--td-mask-disabled:rgba(0, 0, 0, 0.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-container-active:var(--td-gray-color-12);--td-bg-color-secondarycontainer-active:var(--td-gray-color-11);--td-bg-color-component-active:var(--td-gray-color-10);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-primary-color-8);--td-text-color-link:var(--td-primary-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0, 0, 0, 0.06),0 1px 10px rgba(0, 0, 0, 0.08),0 2px 4px rgba(0, 0, 0, 0.12);--td-shadow-2:0 8px 10px rgba(0, 0, 0, 0.12),0 3px 14px rgba(0, 0, 0, 0.1),0 5px 5px rgba(0, 0, 0, 0.16);--td-shadow-3:0 16px 24px rgba(0, 0, 0, 0.14),0 6px 30px rgba(0, 0, 0, 0.12),0 8px 10px rgba(0, 0, 0, 0.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0, 0, 0, 0.55);--td-scrollbar-color:rgba(255, 255, 255, 0.1);--td-scroll-track-color:#333}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_font.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_font.wxss
new file mode 100644
index 0000000..f289268
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_font.wxss
@@ -0,0 +1 @@
+.page,page{--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:24rpx;--td-font-size-link-medium:28rpx;--td-font-size-link-large:32rpx;--td-font-size-mark-extra-small:20rpx;--td-font-size-mark-small:24rpx;--td-font-size-mark-medium:28rpx;--td-font-size-mark-large:32rpx;--td-font-size-body-extra-small:20rpx;--td-font-size-body-small:24rpx;--td-font-size-body-medium:28rpx;--td-font-size-body-large:32rpx;--td-font-size-title-small:28rpx;--td-font-size-title-medium:32rpx;--td-font-size-title-large:36rpx;--td-font-size-title-extra-large:40rpx;--td-font-size-headline-small:48rpx;--td-font-size-headline-medium:56rpx;--td-font-size-headline-large:72rpx;--td-font-size-display-medium:96rpx;--td-font-size-display-large:128rpx;--td-font-size:20rpx;--td-font-size-xs:var(--td-font-size-body-extra-small);--td-font-size-s:var(--td-font-size-body-small);--td-font-size-base:var(--td-font-size-title-small);--td-font-size-m:var(--td-font-size-title-medium);--td-font-size-l:var(--td-font-size-title-large);--td-font-size-xl:var(--td-font-size-title-extra-large);--td-font-size-xxl:var(--td-font-size-headline-large)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss
new file mode 100644
index 0000000..0814a7a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_index.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:light){.page,page{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eeeeee;--td-gray-color-3:#e7e7e7;--td-gray-color-4:#dcdcdc;--td-gray-color-5:#c5c5c5;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#ffffff;--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-8);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.6);--td-mask-disabled:rgba(255, 255, 255, 0.6);--td-bg-color-page:var(--td-gray-color-1);--td-bg-color-container:var(--td-font-white-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-brand-color);--td-text-color-link:var(--td-brand-color);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0, 0, 0, 0.05),0 4px 5px rgba(0, 0, 0, 0.08),0 2px 4px -1px rgba(0, 0, 0, 0.12);--td-shadow-2:0 3px 14px 2px rgba(0, 0, 0, 0.05),0 8px 10px 1px rgba(0, 0, 0, 0.06),0 5px 5px -3px rgba(0, 0, 0, 0.1);--td-shadow-3:0 6px 30px 5px rgba(0, 0, 0, 0.05),0 16px 24px 2px rgba(0, 0, 0, 0.04),0 8px 10px -5px rgba(0, 0, 0, 0.08);--td-shadow-4:0 2px 8px 0 rgba(0, 0, 0, 0.06);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0, 0, 0, 0.08);--td-scrollbar-color:rgba(0, 0, 0, 0.1);--td-scrollbar-hover-color:rgba(0, 0, 0, 0.3);--td-scroll-track-color:#fff}}@media (prefers-color-scheme:dark){.page,page{--td-brand-color-1:#1b2f51;--td-brand-color-2:#173463;--td-brand-color-3:#143975;--td-brand-color-4:#103d88;--td-brand-color-5:#0d429a;--td-brand-color-6:#054bbe;--td-brand-color-7:#2667d4;--td-brand-color-8:#4582e6;--td-brand-color-9:#699ef5;--td-brand-color-10:#96bbf8;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#4f2a1d;--td-warning-color-2:#582f21;--td-warning-color-3:#733c23;--td-warning-color-4:#a75d2b;--td-warning-color-5:#cf6e2d;--td-warning-color-6:#dc7633;--td-warning-color-7:#e8935c;--td-warning-color-8:#ecbf91;--td-warning-color-9:#eed7bf;--td-warning-color-10:#f3e9dc;--td-error-color-1:#472324;--td-error-color-2:#5e2a2d;--td-error-color-3:#703439;--td-error-color-4:#83383e;--td-error-color-5:#a03f46;--td-error-color-6:#c64751;--td-error-color-7:#de6670;--td-error-color-8:#ec888e;--td-error-color-9:#edb1b6;--td-error-color-10:#eeced0;--td-success-color-1:#193a2a;--td-success-color-2:#1a4230;--td-success-color-3:#17533d;--td-success-color-4:#0d7a55;--td-success-color-5:#059465;--td-success-color-6:#43af8a;--td-success-color-7:#46bf96;--td-success-color-8:#80d2b6;--td-success-color-9:#b4e1d3;--td-success-color-10:#deede8;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eee;--td-gray-color-3:#e8e8e8;--td-gray-color-4:#ddd;--td-gray-color-5:#c6c6c6;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:rgba(255, 255, 255, 0.9);--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-8);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-9);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-active:var(--td-warning-color-4);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-5);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-4);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.4);--td-mask-disabled:rgba(0, 0, 0, 0.6);--td-bg-color-page:var(--td-gray-color-14);--td-bg-color-container:var(--td-gray-color-13);--td-bg-color-secondarycontainer:var(--td-gray-color-12);--td-bg-color-component:var(--td-gray-color-11);--td-bg-color-container-active:var(--td-gray-color-12);--td-bg-color-secondarycontainer-active:var(--td-gray-color-11);--td-bg-color-component-active:var(--td-gray-color-10);--td-bg-color-component-disabled:var(--td-gray-color-12);--td-bg-color-specialcomponent:transparent;--td-text-color-primary:var(--td-font-white-1);--td-text-color-secondary:var(--td-font-white-2);--td-text-color-placeholder:var(--td-font-white-3);--td-text-color-disabled:var(--td-font-white-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-primary-color-8);--td-text-color-link:var(--td-primary-color-8);--td-border-level-1-color:var(--td-gray-color-11);--td-component-stroke:var(--td-gray-color-11);--td-border-level-2-color:var(--td-gray-color-9);--td-component-border:var(--td-gray-color-9);--td-shadow-1:0 4px 6px rgba(0, 0, 0, 0.06),0 1px 10px rgba(0, 0, 0, 0.08),0 2px 4px rgba(0, 0, 0, 0.12);--td-shadow-2:0 8px 10px rgba(0, 0, 0, 0.12),0 3px 14px rgba(0, 0, 0, 0.1),0 5px 5px rgba(0, 0, 0, 0.16);--td-shadow-3:0 16px 24px rgba(0, 0, 0, 0.14),0 6px 30px rgba(0, 0, 0, 0.12),0 8px 10px rgba(0, 0, 0, 0.2);--td-shadow-inset-top:inset 0 0.5px 0 #5e5e5e;--td-shadow-inset-right:inset 0.5px 0 0 #5e5e5e;--td-shadow-inset-bottom:inset 0 -0.5px 0 #5e5e5e;--td-shadow-inset-left:inset -0.5px 0 0 #5e5e5e;--td-table-shadow-color:rgba(0, 0, 0, 0.55);--td-scrollbar-color:rgba(255, 255, 255, 0.1);--td-scroll-track-color:#333}}.page,page{--td-radius-small:6rpx;--td-radius-default:12rpx;--td-radius-large:18rpx;--td-radius-extra-large:24rpx;--td-radius-round:999px;--td-radius-circle:50%}.page,page{--td-font-family:PingFang SC,Microsoft YaHei,Arial Regular;--td-font-family-medium:PingFang SC,Microsoft YaHei,Arial Medium;--td-font-size-link-small:24rpx;--td-font-size-link-medium:28rpx;--td-font-size-link-large:32rpx;--td-font-size-mark-extra-small:20rpx;--td-font-size-mark-small:24rpx;--td-font-size-mark-medium:28rpx;--td-font-size-mark-large:32rpx;--td-font-size-body-extra-small:20rpx;--td-font-size-body-small:24rpx;--td-font-size-body-medium:28rpx;--td-font-size-body-large:32rpx;--td-font-size-title-small:28rpx;--td-font-size-title-medium:32rpx;--td-font-size-title-large:36rpx;--td-font-size-title-extra-large:40rpx;--td-font-size-headline-small:48rpx;--td-font-size-headline-medium:56rpx;--td-font-size-headline-large:72rpx;--td-font-size-display-medium:96rpx;--td-font-size-display-large:128rpx;--td-font-size:20rpx;--td-font-size-xs:var(--td-font-size-body-extra-small);--td-font-size-s:var(--td-font-size-body-small);--td-font-size-base:var(--td-font-size-title-small);--td-font-size-m:var(--td-font-size-title-medium);--td-font-size-l:var(--td-font-size-title-large);--td-font-size-xl:var(--td-font-size-title-extra-large);--td-font-size-xxl:var(--td-font-size-headline-large)}.page,page{--td-spacer:16rpx;--td-spacer-1:24rpx;--td-spacer-2:32rpx;--td-spacer-3:48rpx;--td-spacer-4:64rpx;--td-spacer-5:96rpx;--td-spacer-6:160rpx}@media (prefers-color-scheme:light){.page,page{--td-picker-transparent-color:rgba(255, 255, 255, 0)}}@media (prefers-color-scheme:dark){.page,page{--td-button-primary-disabled-color:var(--td-font-white-4);--td-skeleton-animation-gradient:rgba(255, 255, 255, 0.06);--td-slider-dot-bg-color:var(--td-gray-color-4);--td-slider-dot-disabled-bg-color:var(--td-gray-color-11);--td-slider-dot-disabled-border-color:var(--td-gray-color-12);--td-picker-transparent-color:transparent;--td-switch-dot-disabled-color:var(--td-font-white-2)}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_light.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_light.wxss
new file mode 100644
index 0000000..2d1dab5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_light.wxss
@@ -0,0 +1 @@
+@media (prefers-color-scheme:light){.page,page{--td-brand-color-1:#f2f3ff;--td-brand-color-2:#d9e1ff;--td-brand-color-3:#b5c7ff;--td-brand-color-4:#8eabff;--td-brand-color-5:#618dff;--td-brand-color-6:#366ef4;--td-brand-color-7:#0052d9;--td-brand-color-8:#003cab;--td-brand-color-9:#002a7c;--td-brand-color-10:#001a57;--td-primary-color-1:var(--td-brand-color-1);--td-primary-color-2:var(--td-brand-color-2);--td-primary-color-3:var(--td-brand-color-3);--td-primary-color-4:var(--td-brand-color-4);--td-primary-color-5:var(--td-brand-color-5);--td-primary-color-6:var(--td-brand-color-6);--td-primary-color-7:var(--td-brand-color-7);--td-primary-color-8:var(--td-brand-color-8);--td-primary-color-9:var(--td-brand-color-9);--td-primary-color-10:var(--td-brand-color-10);--td-warning-color-1:#fff1e9;--td-warning-color-2:#ffd9c2;--td-warning-color-3:#ffb98c;--td-warning-color-4:#fa9550;--td-warning-color-5:#e37318;--td-warning-color-6:#be5a00;--td-warning-color-7:#954500;--td-warning-color-8:#713300;--td-warning-color-9:#532300;--td-warning-color-10:#3b1700;--td-error-color-1:#fff0ed;--td-error-color-2:#ffd8d2;--td-error-color-3:#ffb9b0;--td-error-color-4:#ff9285;--td-error-color-5:#f6685d;--td-error-color-6:#d54941;--td-error-color-7:#ad352f;--td-error-color-8:#881f1c;--td-error-color-9:#68070a;--td-error-color-10:#490002;--td-success-color-1:#e3f9e9;--td-success-color-2:#c6f3d7;--td-success-color-3:#92dab2;--td-success-color-4:#56c08d;--td-success-color-5:#2ba471;--td-success-color-6:#008858;--td-success-color-7:#006c45;--td-success-color-8:#005334;--td-success-color-9:#003b23;--td-success-color-10:#002515;--td-gray-color-1:#f3f3f3;--td-gray-color-2:#eeeeee;--td-gray-color-3:#e7e7e7;--td-gray-color-4:#dcdcdc;--td-gray-color-5:#c5c5c5;--td-gray-color-6:#a6a6a6;--td-gray-color-7:#8b8b8b;--td-gray-color-8:#777777;--td-gray-color-9:#5e5e5e;--td-gray-color-10:#4b4b4b;--td-gray-color-11:#383838;--td-gray-color-12:#2c2c2c;--td-gray-color-13:#242424;--td-gray-color-14:#181818;--td-font-white-1:#ffffff;--td-font-white-2:rgba(255, 255, 255, 0.55);--td-font-white-3:rgba(255, 255, 255, 0.35);--td-font-white-4:rgba(255, 255, 255, 0.22);--td-font-gray-1:rgba(0, 0, 0, 0.9);--td-font-gray-2:rgba(0, 0, 0, 0.6);--td-font-gray-3:rgba(0, 0, 0, 0.4);--td-font-gray-4:rgba(0, 0, 0, 0.26);--td-brand-color:var(--td-primary-color-7);--td-warning-color:var(--td-warning-color-5);--td-error-color:var(--td-error-color-6);--td-success-color:var(--td-success-color-5);--td-brand-color-focus:var(--td-primary-color-1);--td-brand-color-active:var(--td-primary-color-8);--td-brand-color-disabled:var(--td-primary-color-3);--td-brand-color-light:var(--td-primary-color-1);--td-brand-color-light-active:var(--td-primary-color-2);--td-warning-color-active:var(--td-warning-color-6);--td-warning-color-disabled:var(--td-warning-color-3);--td-warning-color-focus:var(--td-warning-color-2);--td-warning-color-light:var(--td-warning-color-1);--td-warning-color-light-active:var(--td-warning-color-2);--td-error-color-focus:var(--td-error-color-2);--td-error-color-active:var(--td-error-color-7);--td-error-color-disabled:var(--td-error-color-3);--td-error-color-light:var(--td-error-color-1);--td-error-color-light-active:var(--td-error-color-2);--td-success-color-focus:var(--td-success-color-2);--td-success-color-active:var(--td-success-color-6);--td-success-color-disabled:var(--td-success-color-3);--td-success-color-light:var(--td-success-color-1);--td-success-color-light-active:var(--td-success-color-2);--td-mask-active:rgba(0, 0, 0, 0.6);--td-mask-disabled:rgba(255, 255, 255, 0.6);--td-bg-color-page:var(--td-gray-color-1);--td-bg-color-container:var(--td-font-white-1);--td-bg-color-container-active:var(--td-gray-color-3);--td-bg-color-secondarycontainer:var(--td-gray-color-1);--td-bg-color-secondarycontainer-active:var(--td-gray-color-4);--td-bg-color-component:var(--td-gray-color-3);--td-bg-color-component-active:var(--td-gray-color-6);--td-bg-color-component-disabled:var(--td-gray-color-2);--td-bg-color-secondarycomponent:var(--td-gray-color-4);--td-bg-color-secondarycomponent-active:var(--td-gray-color-6);--td-bg-color-specialcomponent:#fff;--td-text-color-primary:var(--td-font-gray-1);--td-text-color-secondary:var(--td-font-gray-2);--td-text-color-placeholder:var(--td-font-gray-3);--td-text-color-disabled:var(--td-font-gray-4);--td-text-color-anti:var(--td-font-white-1);--td-text-color-brand:var(--td-brand-color);--td-text-color-link:var(--td-brand-color);--td-border-level-1-color:var(--td-gray-color-3);--td-component-stroke:var(--td-gray-color-3);--td-border-level-2-color:var(--td-gray-color-4);--td-component-border:var(--td-gray-color-4);--td-shadow-1:0 1px 10px rgba(0, 0, 0, 0.05),0 4px 5px rgba(0, 0, 0, 0.08),0 2px 4px -1px rgba(0, 0, 0, 0.12);--td-shadow-2:0 3px 14px 2px rgba(0, 0, 0, 0.05),0 8px 10px 1px rgba(0, 0, 0, 0.06),0 5px 5px -3px rgba(0, 0, 0, 0.1);--td-shadow-3:0 6px 30px 5px rgba(0, 0, 0, 0.05),0 16px 24px 2px rgba(0, 0, 0, 0.04),0 8px 10px -5px rgba(0, 0, 0, 0.08);--td-shadow-4:0 2px 8px 0 rgba(0, 0, 0, 0.06);--td-shadow-inset-top:inset 0 0.5px 0 #dcdcdc;--td-shadow-inset-right:inset 0.5px 0 0 #dcdcdc;--td-shadow-inset-bottom:inset 0 -0.5px 0 #dcdcdc;--td-shadow-inset-left:inset -0.5px 0 0 #dcdcdc;--td-table-shadow-color:rgba(0, 0, 0, 0.08);--td-scrollbar-color:rgba(0, 0, 0, 0.1);--td-scrollbar-hover-color:rgba(0, 0, 0, 0.3);--td-scroll-track-color:#fff}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_radius.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_radius.wxss
new file mode 100644
index 0000000..9d178bd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_radius.wxss
@@ -0,0 +1 @@
+.page,page{--td-radius-small:6rpx;--td-radius-default:12rpx;--td-radius-large:18rpx;--td-radius-extra-large:24rpx;--td-radius-round:999px;--td-radius-circle:50%}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/theme/_spacer.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_spacer.wxss
new file mode 100644
index 0000000..e0bee20
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/theme/_spacer.wxss
@@ -0,0 +1 @@
+.page,page{--td-spacer:16rpx;--td-spacer-1:24rpx;--td-spacer-2:32rpx;--td-spacer-3:48rpx;--td-spacer-4:64rpx;--td-spacer-5:96rpx;--td-spacer-6:160rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/style/utilities/_index.wxss b/miniprogram_npm/tdesign-miniprogram/common/style/utilities/_index.wxss
new file mode 100644
index 0000000..c6b6b97
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/style/utilities/_index.wxss
@@ -0,0 +1 @@
+.hotspot-expanded.relative{position:relative}.hotspot-expanded::after{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;transform:scale(1.5)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/badge.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/badge.wxml
new file mode 100644
index 0000000..c9b3eed
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/badge.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/button.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/button.wxml
new file mode 100644
index 0000000..f89efee
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/button.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/icon.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/icon.wxml
new file mode 100644
index 0000000..c57fbec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/icon.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/template/image.wxml b/miniprogram_npm/tdesign-miniprogram/common/template/image.wxml
new file mode 100644
index 0000000..8d4bdfc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/template/image.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/common/utils.d.ts
new file mode 100644
index 0000000..49f0583
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/utils.d.ts
@@ -0,0 +1,33 @@
+///
+///
+///
+export declare const systemInfo: WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
+export declare const appBaseInfo: WechatMiniprogram.AppBaseInfo | WechatMiniprogram.SystemInfo;
+export declare const deviceInfo: WechatMiniprogram.DeviceInfo | WechatMiniprogram.SystemInfo;
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+export declare const debounce: (func: any, wait?: number) => (...rest: any[]) => void;
+export declare const throttle: (func: any, wait?: number, options?: any) => (...args: any[]) => void;
+export declare const classNames: (...args: any[]) => string;
+export declare const styles: (styleObj: any) => string;
+export declare const getAnimationFrame: (context: any, cb: Function) => any;
+export declare const getRect: (context: any, selector: string, needAll?: boolean) => Promise;
+export declare const isIOS: () => boolean;
+export declare const addUnit: (value?: string | number) => string | undefined;
+export declare const getCharacterLength: (type: string, char: string | number, max?: number) => {
+ length: number;
+ characters: string;
+};
+export declare const chunk: (arr: any[], size: number) => any[][];
+export declare const getInstance: (context?: Context, selector?: string) => WechatMiniprogram.Component.TrivialInstance;
+export declare const unitConvert: (value: number | string | null | undefined) => number;
+export declare const setIcon: (iconName: any, icon: any, defaultIcon: any) => {
+ [x: string]: any;
+};
+export declare const toCamel: (str: any) => any;
+export declare const getCurrentPage: () => T & WechatMiniprogram.OptionalInterface & WechatMiniprogram.Page.InstanceProperties & WechatMiniprogram.Page.InstanceMethods & WechatMiniprogram.Page.Data & WechatMiniprogram.IAnyObject;
+export declare const uniqueFactory: (compName: any) => () => string;
+export declare const calcIcon: (icon: string | Record, defaultIcon?: string) => Record;
+export declare const isOverSize: (size: any, sizeLimit: any) => boolean;
+export declare const rpx2px: (rpx: any) => number;
+export declare const nextTick: () => Promise;
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/common/utils.js b/miniprogram_npm/tdesign-miniprogram/common/utils.js
new file mode 100644
index 0000000..eed0680
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/utils.js
@@ -0,0 +1 @@
+import{prefix}from"./config";import{isString,isNumber,isDef,isBoolean,isObject}from"./validator";import{getWindowInfo,getAppBaseInfo,getDeviceInfo}from"./wechat";export const systemInfo=getWindowInfo();export const appBaseInfo=getAppBaseInfo();export const deviceInfo=getDeviceInfo();export const debounce=function(e,t=500){let n;return function(...o){n&&clearTimeout(n),n=setTimeout((()=>{e.apply(this,o)}),t)}};export const throttle=(e,t=100,n=null)=>{let o=0,r=null;return n||(n={leading:!0}),function(...s){const c=Date.now();o||n.leading||(o=c);const i=this;t-(c-o)<=0&&(r&&(clearTimeout(r),r=null),o=c,e.apply(i,s))}};export const classNames=function(...e){const t={}.hasOwnProperty,n=[];return e.forEach((e=>{if(!e)return;const o=typeof e;if("string"===o||"number"===o)n.push(e);else if(Array.isArray(e)&&e.length){const t=classNames(...e);t&&n.push(t)}else if("object"===o)for(const o in e)t.call(e,o)&&e[o]&&n.push(o)})),n.join(" ")};export const styles=function(e){return Object.keys(e).map((t=>`${t}: ${e[t]}`)).join("; ")};export const getAnimationFrame=function(e,t){return e.createSelectorQuery().selectViewport().boundingClientRect().exec((()=>{t()}))};export const getRect=function(e,t,n=!1){return new Promise(((o,r)=>{e.createSelectorQuery()[n?"selectAll":"select"](t).boundingClientRect((e=>{e?o(e):r(e)})).exec()}))};export const isIOS=function(){var e;return!!((null===(e=null==deviceInfo?void 0:deviceInfo.system)||void 0===e?void 0:e.toLowerCase().search("ios"))+1)};export const addUnit=function(e){if(isDef(e))return e=String(e),isNumber(e)?`${e}px`:e};export const getCharacterLength=(e,t,n)=>{const o=String(null!=t?t:"");if(0===o.length)return{length:0,characters:""};if("maxcharacter"===e){let e=0;for(let t=0;t127||94===o.charCodeAt(t)?2:1,e+r>n)return{length:e,characters:o.slice(0,t)};e+=r}return{length:e,characters:o}}if("maxlength"===e){const e=o.length>n?n:o.length;return{length:e,characters:o.slice(0,e)}}return{length:o.length,characters:o}};export const chunk=(e,t)=>Array.from({length:Math.ceil(e.length/t)},((n,o)=>e.slice(o*t,o*t+t)));export const getInstance=function(e,t){if(!e){const t=getCurrentPages(),n=t[t.length-1];e=n.$$basePage||n}const n=e?e.selectComponent(t):null;return n||(console.warn("未找到组件,请检查selector是否正确"),null)};export const unitConvert=e=>{var t;return"string"==typeof e?e.includes("rpx")?parseInt(e,10)*(null!==(t=null==systemInfo?void 0:systemInfo.screenWidth)&&void 0!==t?t:750)/750:parseInt(e,10):null!=e?e:0};export const setIcon=(e,t,n)=>t?"string"==typeof t?{[`${e}Name`]:t,[`${e}Data`]:{}}:"object"==typeof t?{[`${e}Name`]:"",[`${e}Data`]:t}:{[`${e}Name`]:n,[`${e}Data`]:{}}:{[`${e}Name`]:"",[`${e}Data`]:{}};export const toCamel=e=>e.replace(/-(\w)/g,((e,t)=>t.toUpperCase()));export const getCurrentPage=function(){const e=getCurrentPages();return e[e.length-1]};export const uniqueFactory=e=>{let t=0;return()=>{const n=`${prefix}_${e}_${t}`;return t+=1,n}};export const calcIcon=(e,t)=>e&&(isBoolean(e)&&t||isString(e))?{name:isBoolean(e)?t:e}:isObject(e)?e:null;export const isOverSize=(e,t)=>{var n;if(!t)return!1;const o=1e3,r={B:1,KB:o,MB:1e6,GB:1e9};return e>("number"==typeof t?t*o:(null==t?void 0:t.size)*r[null!==(n=null==t?void 0:t.unit)&&void 0!==n?n:"KB"])};export const rpx2px=e=>Math.floor(systemInfo.windowWidth*e/750);export const nextTick=()=>new Promise((e=>{wx.nextTick((()=>{e()}))}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/utils.wxs b/miniprogram_npm/tdesign-miniprogram/common/utils.wxs
new file mode 100644
index 0000000..8b7259e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/utils.wxs
@@ -0,0 +1,149 @@
+/* utils */
+
+/**
+ * addUnit */
+// 为 css 添加单位
+function addUnit(value) {
+ // prettier-ignore
+ var REGEXP = getRegExp('^-?\d+(.\d+)?$');
+ if (value == null) {
+ return undefined;
+ }
+ return REGEXP.test('' + value) ? value + 'px' : value;
+}
+
+function isString(string) {
+ return string && string.constructor === 'String';
+}
+
+function isArray(array) {
+ return array && array.constructor === 'Array';
+}
+
+function isObject(obj) {
+ return obj && obj.constructor === 'Object';
+}
+
+function isBoolean(value) {
+ return typeof value === 'boolean';
+}
+
+var isNoEmptyObj = function (obj) {
+ return isObject(obj) && JSON.stringify(obj) !== '{}';
+};
+
+function includes(arr, value) {
+ if (!arr || !isArray(arr)) return false;
+
+ var i = 0;
+ var len = arr.length;
+
+ for (; i < len; i++) {
+ if (arr[i] === value) return true;
+ }
+ return false;
+}
+
+function cls(base, arr) {
+ var res = [base];
+ var i = 0;
+ for (var size = arr.length; i < size; i++) {
+ var item = arr[i];
+
+ if (item && item.constructor === 'Array') {
+ var key = arr[i][0];
+ var value = arr[i][1];
+
+ if (value) {
+ res.push(base + '--' + key);
+ }
+ } else if (typeof item === 'string' || typeof item === 'number') {
+ if (item) {
+ res.push(base + '--' + item);
+ }
+ }
+ }
+ return res.join(' ');
+}
+
+function getBadgeAriaLabel(options) {
+ var maxCount = options.maxCount || 99;
+ if (options.dot) {
+ return '有新的消息';
+ }
+ if (options.count === '...') {
+ return '有很多消息';
+ }
+ if (isNaN(options.count)) {
+ return options.count;
+ }
+ var str1 = '有' + maxCount + '+条消息';
+ var str2 = '有' + options.count + '条消息';
+ return Number(options.count) > maxCount ? str1 : str2;
+}
+
+function endsWith(str, endStr) {
+ return str.slice(-endStr.length) === endStr ? str : str + endStr;
+}
+
+function keys(obj) {
+ return JSON.stringify(obj)
+ .replace(getRegExp('{|}|"', 'g'), '')
+ .split(',')
+ .map(function (item) {
+ return item.split(':')[0];
+ });
+}
+
+function kebabCase(str) {
+ return str
+ .replace(getRegExp('[A-Z]', 'g'), function (ele) {
+ return '-' + ele;
+ })
+ .toLowerCase();
+}
+
+function _style(styles) {
+ if (isArray(styles)) {
+ return styles
+ .filter(function (item) {
+ return item != null && item !== '';
+ })
+ .map(function (item) {
+ return isArray(item) ? _style(item) : endsWith(item, ';');
+ })
+ .join(' ');
+ }
+
+ if (isObject(styles)) {
+ return keys(styles)
+ .filter(function (key) {
+ return styles[key] != null && styles[key] !== '';
+ })
+ .map(function (key) {
+ return [kebabCase(key), [styles[key]]].join(':');
+ })
+ .join(';');
+ }
+
+ return styles;
+}
+
+function isValidIconName(str) {
+ // prettier-ignore
+ return getRegExp('^[A-Za-z0-9\-]+$').test(str);
+}
+
+module.exports = {
+ addUnit: addUnit,
+ isString: isString,
+ isArray: isArray,
+ isObject: isObject,
+ isBoolean: isBoolean,
+ isNoEmptyObj: isNoEmptyObj,
+ includes: includes,
+ cls: cls,
+ getBadgeAriaLabel: getBadgeAriaLabel,
+ _style: _style,
+ isValidIconName: isValidIconName,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/common/validator.d.ts b/miniprogram_npm/tdesign-miniprogram/common/validator.d.ts
new file mode 100644
index 0000000..2e377aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/validator.d.ts
@@ -0,0 +1,9 @@
+export declare function isFunction(val: unknown): val is Function;
+export declare const isString: (val: unknown) => val is string;
+export declare const isNull: (value: T) => value is null;
+export declare const isUndefined: (value: T) => value is undefined;
+export declare function isDef(value: unknown): boolean;
+export declare function isNumber(value: string): boolean;
+export declare function isBoolean(value: unknown): value is boolean;
+export declare function isObject(x: unknown): x is Record;
+export declare function isPlainObject(val: unknown): val is Record;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/validator.js b/miniprogram_npm/tdesign-miniprogram/common/validator.js
new file mode 100644
index 0000000..3cb3c73
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/validator.js
@@ -0,0 +1 @@
+export function isFunction(t){return"function"==typeof t}export const isString=t=>"string"==typeof t;export const isNull=t=>null===t;export const isUndefined=t=>void 0===t;export function isDef(t){return!isUndefined(t)&&!isNull(t)}export function isNumber(t){return/^\d+(\.\d+)?$/.test(t)}export function isBoolean(t){return"boolean"==typeof t}export function isObject(t){const n=typeof t;return null!==t&&("object"===n||"function"===n)}export function isPlainObject(t){return null!==t&&"object"==typeof t&&"[object Object]"===Object.prototype.toString.call(t)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/version.d.ts b/miniprogram_npm/tdesign-miniprogram/common/version.d.ts
new file mode 100644
index 0000000..21e0b9e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/version.d.ts
@@ -0,0 +1,4 @@
+export declare function compareVersion(v1: any, v2: any): 0 | 1 | -1;
+export declare function canIUseFormFieldButton(): boolean;
+export declare function canUseVirtualHost(): boolean;
+export declare function canUseProxyScrollView(): boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/version.js b/miniprogram_npm/tdesign-miniprogram/common/version.js
new file mode 100644
index 0000000..a186b0f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/version.js
@@ -0,0 +1 @@
+import{getAppBaseInfo}from"./wechat";let systemInfo;function getSystemInfo(){return null==systemInfo&&(systemInfo=getAppBaseInfo()),systemInfo}export function compareVersion(e,n){e=e.split("."),n=n.split(".");const t=Math.max(e.length,n.length);for(;e.lengtho)return 1;if(t=0}export function canIUseFormFieldButton(){return judgeByVersion("2.10.3")}export function canUseVirtualHost(){return judgeByVersion("2.19.2")}export function canUseProxyScrollView(){return judgeByVersion("2.19.2")}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/common/wechat.d.ts b/miniprogram_npm/tdesign-miniprogram/common/wechat.d.ts
new file mode 100644
index 0000000..db57069
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/wechat.d.ts
@@ -0,0 +1,4 @@
+export declare const getObserver: (context: any, selector: string) => Promise;
+export declare const getWindowInfo: () => WechatMiniprogram.WindowInfo | WechatMiniprogram.SystemInfo;
+export declare const getAppBaseInfo: () => WechatMiniprogram.SystemInfo | WechatMiniprogram.AppBaseInfo;
+export declare const getDeviceInfo: () => WechatMiniprogram.SystemInfo | WechatMiniprogram.DeviceInfo;
diff --git a/miniprogram_npm/tdesign-miniprogram/common/wechat.js b/miniprogram_npm/tdesign-miniprogram/common/wechat.js
new file mode 100644
index 0000000..62f7af1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/common/wechat.js
@@ -0,0 +1 @@
+export const getObserver=(e,t)=>new Promise((o=>{e.createIntersectionObserver(e).relativeToViewport().observe(t,(e=>{o(e)}))}));export const getWindowInfo=()=>wx.getWindowInfo&&wx.getWindowInfo()||wx.getSystemInfoSync();export const getAppBaseInfo=()=>wx.getAppBaseInfo&&wx.getAppBaseInfo()||wx.getSystemInfoSync();export const getDeviceInfo=()=>wx.getDeviceInfo&&wx.getDeviceInfo()||wx.getSystemInfoSync();
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.d.ts
new file mode 100644
index 0000000..111e788
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.d.ts
@@ -0,0 +1,34 @@
+import { SuperComponent } from '../common/src/index';
+export default class CountDown extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdCountDownProps;
+ observers: {
+ time(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ timeDataUnit: {
+ DD: string;
+ HH: string;
+ mm: string;
+ ss: string;
+ SSS: string;
+ };
+ timeData: import("./utils").TimeData;
+ formattedTime: string;
+ };
+ timeoutId: null | number;
+ isInitialTime: boolean;
+ lifetimes: {
+ detached(): void;
+ };
+ methods: {
+ start(): void;
+ pause(): void;
+ reset(): void;
+ getTime(): number;
+ updateTime(remain: number): void;
+ doCount(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.js b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.js
new file mode 100644
index 0000000..148aa4d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{isSameSecond,parseFormat,parseTimeData,TimeDataUnit}from"./utils";const{prefix:prefix}=config,name=`${prefix}-count-down`;let CountDown=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-count`,`${prefix}-class-split`],this.properties=props,this.observers={time(){this.reset()}},this.data={prefix:prefix,classPrefix:name,timeDataUnit:TimeDataUnit,timeData:parseTimeData(0),formattedTime:"0"},this.timeoutId=null,this.isInitialTime=!1,this.lifetimes={detached(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}},this.methods={start(){this.counting||(this.counting=!0,this.endTime=Date.now()+this.remain,this.doCount())},pause(){this.counting=!1,this.timeoutId&&clearTimeout(this.timeoutId)},reset(){this.pause(),this.remain=this.properties.time,this.updateTime(this.remain),this.properties.autoStart&&this.remain>0&&this.start(),this.isInitialTime=!0},getTime(){return Math.max(this.endTime-Date.now(),0)},updateTime(t){const{format:i}=this.properties;this.remain=t;const e=parseTimeData(t);this.triggerEvent("change",e);const{timeText:s}=parseFormat(t,i),o=i.split(":");this.setData({timeRange:o,timeData:e,formattedTime:s.replace(/:/g," : ")}),0===t&&(this.counting||this.isInitialTime)&&(this.pause(),this.triggerEvent("finish"),this.counting=!1)},doCount(){this.timeoutId=setTimeout((()=>{const t=this.getTime();this.properties.millisecond?this.updateTime(t):isSameSecond(t,this.remain)&&0!==t||this.updateTime(t),0!==t&&this.doCount()}),33)}}}};CountDown=__decorate([wxComponent()],CountDown);export default CountDown;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.json b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxml b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxml
new file mode 100644
index 0000000..2db5e3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxml
@@ -0,0 +1 @@
+{{formattedTime}}{{_this.format(timeData[timeRange[index]])}}{{splitWithUnit ? timeDataUnit[timeRange[index]] : ':'}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxs b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxs
new file mode 100644
index 0000000..0d17afa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxs
@@ -0,0 +1,3 @@
+module.exports.format = function (num) {
+ return num < 10 ? '0' + num : num;
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxss b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxss
new file mode 100644
index 0000000..ce27f4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/count-down.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-count-down--small.t-count-down--default{font-size:var(--td-font-size-base,28rpx)}.t-count-down--small.t-count-down--round>.t-count-down__item{font-size:var(--td-font-size-s,24rpx)}.t-count-down--small.t-count-down--square>.t-count-down__item{font-size:var(--td-font-size-s,24rpx)}.t-count-down--small.t-count-down--round>.t-count-down__item,.t-count-down--small.t-count-down--square>.t-count-down__item{width:40rpx;height:40rpx}.t-count-down--small.t-count-down--round>.t-count-down__split--dot,.t-count-down--small.t-count-down--square>.t-count-down__split--dot{margin:0 4rpx;font-size:var(--td-font-size-base,28rpx);font-weight:700}.t-count-down--small.t-count-down--round>.t-count-down__split--text,.t-count-down--small.t-count-down--square>.t-count-down__split--text{margin:0 8rpx;font-size:var(--td-font-size,20rpx)}.t-count-down--medium.t-count-down--default{font-size:var(--td-font-size-m,32rpx)}.t-count-down--medium.t-count-down--round>.t-count-down__item{font-size:var(--td-font-size-base,28rpx)}.t-count-down--medium.t-count-down--square>.t-count-down__item{font-size:var(--td-font-size-base,28rpx)}.t-count-down--medium.t-count-down--round>.t-count-down__item,.t-count-down--medium.t-count-down--square>.t-count-down__item{width:48rpx;height:48rpx}.t-count-down--medium.t-count-down--round>.t-count-down__split--dot,.t-count-down--medium.t-count-down--square>.t-count-down__split--dot{margin:0 6rpx;font-size:var(--td-font-size-m,32rpx);font-weight:700}.t-count-down--medium.t-count-down--round>.t-count-down__split--text,.t-count-down--medium.t-count-down--square>.t-count-down__split--text{margin:0 10rpx;font-size:var(--td-font-size-s,24rpx)}.t-count-down--large.t-count-down--default{font-size:36rpx}.t-count-down--large.t-count-down--round>.t-count-down__item{font-size:var(--td-font-size-m,32rpx)}.t-count-down--large.t-count-down--square>.t-count-down__item{font-size:var(--td-font-size-m,32rpx)}.t-count-down--large.t-count-down--round>.t-count-down__item,.t-count-down--large.t-count-down--square>.t-count-down__item{width:56rpx;height:56rpx}.t-count-down--large.t-count-down--round>.t-count-down__split--dot,.t-count-down--large.t-count-down--square>.t-count-down__split--dot{margin:0 12rpx;font-size:36rpx;font-weight:700}.t-count-down--large.t-count-down--round>.t-count-down__split--text,.t-count-down--large.t-count-down--square>.t-count-down__split--text{margin:0 12rpx;font-size:var(--td-font-size-base,28rpx)}.t-count-down{font-family:TCloudNumber,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Hiragino Sans GB,Microsoft YaHei UI,Microsoft YaHei,Source Han Sans CN,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;display:flex}.t-count-down .t-count-down__item,.t-count-down .t-count-down__split{display:flex;align-items:center;justify-content:center}.t-count-down--round>.t-count-down__split--dot,.t-count-down--square>.t-count-down__split--dot{color:var(--td-error-color,var(--td-error-color-6,#d54941))}.t-count-down--round>.t-count-down__split--text,.t-count-down--square>.t-count-down__split--text{color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)))}.t-count-down--default{color:var(--td-countdown-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-count-down--square{color:var(--td-countdown-round-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-count-down--square>.t-count-down__item{border-radius:var(--td-countdown-square-border-radius,var(--td-radius-small,6rpx));background:var(--td-countdown-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-count-down--round{color:var(--td-countdown-round-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-count-down--round>.t-count-down__item{border-radius:var(--td-countdown-round-border-radius,var(--td-radius-circle,50%));background:var(--td-countdown-bg-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/props.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/props.d.ts
new file mode 100644
index 0000000..8cab4af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/props.d.ts
@@ -0,0 +1,3 @@
+import { TdCountDownProps } from './type';
+declare const props: TdCountDownProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/props.js b/miniprogram_npm/tdesign-miniprogram/count-down/props.js
new file mode 100644
index 0000000..0897077
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/props.js
@@ -0,0 +1 @@
+const props={autoStart:{type:Boolean,value:!0},content:{type:String,value:"default"},format:{type:String,value:"HH:mm:ss"},millisecond:{type:Boolean,value:!1},size:{type:String,value:"medium"},splitWithUnit:{type:Boolean,value:!1},theme:{type:String,value:"default"},time:{type:Number,value:0,required:!0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/type.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/type.d.ts
new file mode 100644
index 0000000..2d362a6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/type.d.ts
@@ -0,0 +1,35 @@
+export interface TdCountDownProps {
+ autoStart?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ format?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ millisecond?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'small' | 'medium' | 'large';
+ };
+ splitWithUnit?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'round' | 'square';
+ };
+ time: {
+ type: NumberConstructor;
+ value?: number;
+ required?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/type.js b/miniprogram_npm/tdesign-miniprogram/count-down/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/count-down/utils.d.ts
new file mode 100644
index 0000000..18c1fac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/utils.d.ts
@@ -0,0 +1,25 @@
+export interface TimeData {
+ DD: number;
+ HH: number;
+ mm: number;
+ ss: number;
+ SSS: number;
+}
+export declare const TimeDataUnit: {
+ DD: string;
+ HH: string;
+ mm: string;
+ ss: string;
+ SSS: string;
+};
+export declare const parseTimeData: (time: number) => TimeData;
+export declare const isSameSecond: (time1: number, time2: number) => boolean;
+export declare type TTimeList = {
+ digit: string;
+ unit: string;
+ match: string;
+}[];
+export declare const parseFormat: (time: number, format: string) => {
+ timeText: string;
+ timeList: TTimeList;
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/count-down/utils.js b/miniprogram_npm/tdesign-miniprogram/count-down/utils.js
new file mode 100644
index 0000000..03f92a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/count-down/utils.js
@@ -0,0 +1 @@
+export const TimeDataUnit={DD:"天",HH:"时",mm:"分",ss:"秒",SSS:"毫秒"};const SECOND=1e3,MINUTE=6e4,HOUR=36e5,DAY=24*HOUR;export const parseTimeData=function(t){return{DD:Math.floor(t/DAY),HH:Math.floor(t%DAY/HOUR),mm:Math.floor(t%HOUR/6e4),ss:Math.floor(t%6e4/1e3),SSS:Math.floor(t%1e3)}};export const isSameSecond=function(t,e){return Math.floor(t/1e3)===Math.floor(e/1e3)};export const parseFormat=function(t,e){const o={"D+":Math.floor(t/864e5),"H+":Math.floor(t%864e5/36e5),"m+":Math.floor(t%36e5/6e4),"s+":Math.floor(t%6e4/1e3),"S+":Math.floor(t%1e3)},r=[];let n=e;return Object.keys(o).forEach((t=>{new RegExp(`(${t})`).test(n)&&(n=n.replace(RegExp.$1,((e,n,s)=>{const a=`${o[t]}`;let l=a;e.length>1&&(l=(e.replace(new RegExp(e[0],"g"),"0")+a).substr(a.length));const h=s.substr(n+e.length),c=r[r.length-1];if(c){const t=c.unit.indexOf(e);-1!==t&&(c.unit=c.unit.substr(0,t))}return r.push({digit:l,unit:h,match:e}),l})))})),{timeText:n,timeList:r}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.d.ts
new file mode 100644
index 0000000..e29ab2c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.d.ts
@@ -0,0 +1,80 @@
+import type { Dayjs } from 'dayjs';
+import { SuperComponent } from '../common/src/index';
+declare enum ModeItem {
+ YEAR = "year",
+ MONTH = "month",
+ DATE = "date",
+ HOUR = "hour",
+ MINUTE = "minute",
+ SECOND = "second"
+}
+interface ColumnItemValue {
+ value: string | number;
+ label: string | number;
+}
+export default class DateTimePicker extends SuperComponent {
+ properties: import("./type").TdDateTimePickerProps;
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ observers: {
+ 'start, end, value': () => void;
+ customLocale(v: any): void;
+ mode(m: any): void;
+ };
+ date: any;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ columns: any[];
+ columnsValue: any[];
+ fullModes: any[];
+ locale: any;
+ dayjsLocale: any;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ methods: {
+ updateColumns(): void;
+ getDaysOfWeekInMonth(date: Dayjs): Array<{
+ value: string;
+ label: string;
+ }>;
+ getParseDate(): Dayjs;
+ normalize(val: string | number, defaultDay: Dayjs): Dayjs;
+ getMinDate(): Dayjs;
+ getMaxDate(): Dayjs;
+ getDateRect(type?: string): any[];
+ getDate(): Dayjs;
+ clipDate(date: Dayjs): Dayjs;
+ setYear(date: Dayjs, year: number): Dayjs;
+ setMonth(date: Dayjs, month: number): Dayjs;
+ getColumnOptions(): any[];
+ getOptionByType(type: string): any;
+ getYearOptions(dateParams: any): ColumnItemValue[];
+ getOptionEdge(minOrMax: 'min' | 'max', type: any): any;
+ getMonthOptions(): ColumnItemValue[];
+ getDayOptions(): ColumnItemValue[];
+ getHourOptions(): ColumnItemValue[];
+ getMinuteOptions(): ColumnItemValue[];
+ getValueCols(this: DateTimePicker): {
+ columns: any;
+ columnsValue: any;
+ };
+ getColumnsValue(): string[];
+ getNewDate(value: number, type: ModeItem): Dayjs;
+ onColumnChange(e: WechatMiniprogram.CustomEvent): void;
+ onConfirm(): void;
+ onCancel(): void;
+ onVisibleChange(e: any): void;
+ onClose(e: any): void;
+ resetColumns(): void;
+ };
+ getFullModeArray(mode: any): any;
+ getFullModeByModeString(modeString: any, matchModes: any): any;
+ isTimeMode(): boolean;
+}
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.js
new file mode 100644
index 0000000..25fd4f2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.js
@@ -0,0 +1 @@
+var _a,_b;import{__decorate}from"tslib";import config from"../common/config";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import dayjsLocaleMap from"./locale/dayjs";const dayjs=require("dayjs"),localeData=require("dayjs/plugin/localeData");dayjs.extend(localeData),dayjs.locale("zh-cn");const defaultLocale=(null===(_a=dayjsLocaleMap[dayjs.locale()])||void 0===_a?void 0:_a.key)||(null===(_b=dayjsLocaleMap.default)||void 0===_b?void 0:_b.key),{prefix:prefix}=config,name=`${prefix}-date-time-picker`;var ModeItem;!function(e){e.YEAR="year",e.MONTH="month",e.DATE="date",e.HOUR="hour",e.MINUTE="minute",e.SECOND="second"}(ModeItem||(ModeItem={}));const DATE_MODES=["year","month","date"],TIME_MODES=["hour","minute","second"],FULL_MODES=[...DATE_MODES,...TIME_MODES];let DateTimePicker=class extends SuperComponent{constructor(){super(...arguments),this.properties=props,this.externalClasses=[`${prefix}-class`,`${prefix}-class-confirm`,`${prefix}-class-cancel`,`${prefix}-class-title`],this.options={multipleSlots:!0},this.observers={"start, end, value":function(){this.updateColumns()},customLocale(e){e&&dayjsLocaleMap[e].key&&this.setData({locale:dayjsLocaleMap[e].i18n,dayjsLocale:dayjsLocaleMap[e].key})},mode(e){const t=this.getFullModeArray(e);this.setData({fullModes:t}),this.updateColumns()}},this.date=null,this.data={prefix:prefix,classPrefix:name,columns:[],columnsValue:[],fullModes:[],locale:dayjsLocaleMap[defaultLocale].i18n,dayjsLocale:dayjsLocaleMap[defaultLocale].key},this.controlledProps=[{key:"value",event:"change"}],this.methods={updateColumns(){this.date=this.getParseDate();const{columns:e,columnsValue:t}=this.getValueCols();this.setData({columns:e,columnsValue:t})},getDaysOfWeekInMonth(e){const{locale:t,dayjsLocale:a}=this.data,s=e.startOf("month"),o=e.endOf("month"),n=[];for(let e=0;e<=o.diff(s,"days");e+=1){const o=s.add(e,"days").locale(a).format("ddd");n.push({value:`${e+1}`,label:`${e+1}${t.date||""} ${o}`})}return n},getParseDate(){const{value:e,defaultValue:t}=this.properties,a=this.getMinDate();let s=e||t;if(this.isTimeMode()){const e=dayjs(a).format("YYYY-MM-DD");s=dayjs(`${e} ${s}`)}const o=dayjs(s||a);return o.isValid()?o:a},normalize:(e,t)=>e&&dayjs(e).isValid()?dayjs(e):t,getMinDate(){return this.normalize(this.properties.start,dayjs().subtract(10,"year"))},getMaxDate(){return this.normalize(this.properties.end,dayjs().add(10,"year"))},getDateRect(e="default"){const t=this[{min:"getMinDate",max:"getMaxDate",default:"getDate"}[e]]();return["year","month","date","hour","minute","second"].map((e=>{var a;return null===(a=t[e])||void 0===a?void 0:a.call(t)}))},getDate(){return this.clipDate((null==this?void 0:this.date)||this.getMinDate())},clipDate(e){const t=this.getMinDate(),a=this.getMaxDate();return dayjs(Math.min(Math.max(t.valueOf(),e.valueOf()),a.valueOf()))},setYear(e,t){const a=e.date(),s=e.year(t).daysInMonth();return e.date(Math.min(a.valueOf(),s.valueOf())).year(t)},setMonth(e,t){const a=e.date(),s=e.month(t).daysInMonth();return e.date(Math.min(a.valueOf(),s.valueOf())).month(t)},getColumnOptions(){const{fullModes:e,filter:t}=this.data,a=[];return null==e||e.forEach((e=>{const s=this.getOptionByType(e);"function"==typeof t?a.push(t(e,s)):a.push(s)})),a},getOptionByType(e){var t;const{locale:a,steps:s,showWeek:o}=this.data,n=[],l=this.getOptionEdge("min",e),i=this.getOptionEdge("max",e),r=null!==(t=null==s?void 0:s[e])&&void 0!==t?t:1,u=dayjs().locale(this.data.dayjsLocale).localeData().monthsShort();if("date"===e&&o)return this.getDaysOfWeekInMonth(this.date);for(let t=l;t<=i;t+=r)n.push({value:`${t}`,label:"month"===e?u[t]:`${t+a[e]}`});return n},getYearOptions(e){const{locale:t}=this.data,{minDateYear:a,maxDateYear:s}=e,o=[];for(let e=a;e<=s;e+=1)o.push({value:`${e}`,label:`${e+t.year}`});return o},getOptionEdge(e,t){const a=this.getDateRect(),s=this.getDateRect(e),o={month:[0,11],date:[1,this.getDate().daysInMonth()],hour:[0,23],minute:[0,59],second:[0,59]},n=["year","month","date","hour","minute","second"];for(let l=0,i=a.length;l{a.push(`${t[e]()}`)})),a},getNewDate(e,t){let a=this.getDate();switch(t){case ModeItem.YEAR:a=this.setYear(a,e);break;case ModeItem.MONTH:a=this.setMonth(a,e);break;case ModeItem.DATE:a=a.date(e);break;case ModeItem.HOUR:a=a.hour(e);break;case ModeItem.MINUTE:a=a.minute(e);break;case ModeItem.SECOND:a=a.second(e)}return this.clipDate(a)},onColumnChange(e){const{value:t,column:a}=null==e?void 0:e.detail,{fullModes:s,format:o}=this.data,n=null==t?void 0:t[a],l=null==s?void 0:s[a],i=this.getNewDate(parseInt(n,10),l);this.date=i;const{columns:r,columnsValue:u}=this.getValueCols();this.setData({columns:r,columnsValue:u});const d=this.getDate(),h=o?d.format(o):d.valueOf();this.triggerEvent("pick",{value:h})},onConfirm(){const{format:e}=this.properties,t=this.getDate(),a=e?t.format(e):t.valueOf();this._trigger("change",{value:a}),this.triggerEvent("confirm",{value:a}),this.resetColumns()},onCancel(){this.resetColumns(),this.triggerEvent("cancel")},onVisibleChange(e){e.detail.visible||this.resetColumns()},onClose(e){const{trigger:t}=e.detail;this.triggerEvent("close",{trigger:t})},resetColumns(){const e=this.getParseDate();this.date=e;const{columns:t,columnsValue:a}=this.getValueCols();this.setData({columns:t,columnsValue:a})}}}getFullModeArray(e){if("string"==typeof e||e instanceof String)return this.getFullModeByModeString(e,FULL_MODES);if(Array.isArray(e)){if(1===(null==e?void 0:e.length))return this.getFullModeByModeString(e[0],FULL_MODES);if(2===(null==e?void 0:e.length)){return[...this.getFullModeByModeString(e[0],DATE_MODES),...this.getFullModeByModeString(e[1],TIME_MODES)]}}}getFullModeByModeString(e,t){if(!e)return[];const a=null==t?void 0:t.findIndex((t=>e===t));return null==t?void 0:t.slice(0,a+1)}isTimeMode(){const{fullModes:e}=this.data;return e[0]===ModeItem.HOUR}};DateTimePicker=__decorate([wxComponent()],DateTimePicker);export default DateTimePicker;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.json b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.json
new file mode 100644
index 0000000..d89c31e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-picker":"../picker/picker","t-picker-item":"../picker-item/picker-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxml b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxml
new file mode 100644
index 0000000..e26589a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxss b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxss
new file mode 100644
index 0000000..2f40c37
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/date-time-picker.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-date-time-picker__item--roomly{width:var(--td-data-time-picker-year-width,128rpx);flex:0 0 var(--td-data-time-picker-year-width,128rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.d.ts
new file mode 100644
index 0000000..0d6f6df
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.d.ts
@@ -0,0 +1,174 @@
+import enLocale from 'dayjs/locale/en';
+declare const _default: {
+ default: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ en: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ 'zh-cn': {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ zh: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ 'zh-tw': {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ tc: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ ko: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ kr: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ ja: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+ ru: {
+ key: string;
+ label: string;
+ locale: enLocale.Locale;
+ i18n: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+ };
+ };
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.js
new file mode 100644
index 0000000..976f7af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/dayjs.js
@@ -0,0 +1 @@
+import enLocale from"dayjs/locale/en";import zhLocale from"dayjs/locale/zh-cn";import tcLocale from"dayjs/locale/zh-tw";import koLocale from"dayjs/locale/ko";import jaLocale from"dayjs/locale/ja";import ruLocale from"dayjs/locale/ru";import en from"./en";import zh from"./zh";import tc from"./tc";import ko from"./ko";import ja from"./ja";import ru from"./ru";export default{default:{key:"zh-cn",label:"简体中文",locale:zhLocale,i18n:zh},en:{key:"en",label:"English",locale:enLocale,i18n:en},"zh-cn":{key:"zh-cn",label:"简体中文",locale:zhLocale,i18n:zh},zh:{key:"zh-cn",label:"简体中文",locale:zhLocale,i18n:zh},"zh-tw":{key:"zh-tw",label:"繁体中文",locale:tcLocale,i18n:tc},tc:{key:"zh-tw",label:"繁体中文",locale:tcLocale,i18n:tc},ko:{key:"ko",label:"한국어",locale:koLocale,i18n:ko},kr:{key:"ko",label:"한국어",locale:koLocale,i18n:ko},ja:{key:"ja",label:"日本語",locale:jaLocale,i18n:ja},ru:{key:"ru",label:"русский",locale:ruLocale,i18n:ru}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.js
new file mode 100644
index 0000000..f5c7622
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/en.js
@@ -0,0 +1 @@
+export default{year:"",month:"",date:"",hour:"",minute:"",second:"",am:"AM",pm:"PM",confirm:"confirm",cancel:"cancel"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.js
new file mode 100644
index 0000000..0086028
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ja.js
@@ -0,0 +1 @@
+export default{year:"年",month:"月",date:"日",hour:"時",minute:"分",second:"秒",am:"午前",pm:"午後",confirm:"確認",cancel:"キャンセル"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.js
new file mode 100644
index 0000000..ec143c4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ko.js
@@ -0,0 +1 @@
+export default{year:"년",month:"월",date:"일",hour:"시",minute:"분",second:"초",am:"오전",pm:"오후",confirm:"확인",cancel:"취소"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.js
new file mode 100644
index 0000000..b6655dd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/ru.js
@@ -0,0 +1 @@
+export default{year:"",month:"",date:"",hour:"",minute:"",second:"",am:"до полудня",pm:"после полудня",confirm:"подтвердить",cancel:"отменить"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.js
new file mode 100644
index 0000000..f9ef748
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/tc.js
@@ -0,0 +1 @@
+export default{year:"年",month:"月",date:"日",hour:"時",minute:"分",second:"秒",am:"上午",pm:"下午",confirm:"確定",cancel:"取消"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.d.ts
new file mode 100644
index 0000000..9665c2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.d.ts
@@ -0,0 +1,13 @@
+declare const _default: {
+ year: string;
+ month: string;
+ date: string;
+ hour: string;
+ minute: string;
+ second: string;
+ am: string;
+ pm: string;
+ confirm: string;
+ cancel: string;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.js
new file mode 100644
index 0000000..ed21da3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/locale/zh.js
@@ -0,0 +1 @@
+export default{year:"年",month:"月",date:"日",hour:"时",minute:"分",second:"秒",am:"上午",pm:"下午",confirm:"确定",cancel:"取消"};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.d.ts
new file mode 100644
index 0000000..8837a6a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDateTimePickerProps } from './type';
+declare const props: TdDateTimePickerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.js
new file mode 100644
index 0000000..2452c15
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!1},cancelBtn:{type:String,value:"取消"},confirmBtn:{type:String,value:""},customLocale:{type:String,value:"zh"},end:{type:null},filter:{type:null},format:{type:String,value:"YYYY-MM-DD HH:mm:ss"},formatter:{type:null},header:{type:Boolean,value:!0},mode:{type:null,value:"date"},popupProps:{type:Object,value:{}},showWeek:{type:Boolean,value:!1},start:{type:null},steps:{type:Object},title:{type:String,value:""},usePopup:{type:Boolean,value:!0},value:{type:null,value:null},defaultValue:{type:null},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.d.ts b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.d.ts
new file mode 100644
index 0000000..0d5a678
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.d.ts
@@ -0,0 +1,87 @@
+import { PopupProps } from '../popup/index';
+export interface TdDateTimePickerProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ cancelBtn?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ confirmBtn?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ customLocale?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ end?: {
+ type: null;
+ value?: string | number;
+ };
+ filter?: {
+ type: undefined;
+ value?: (type: TimeModeValues, columns: DateTimePickerColumn) => DateTimePickerColumn;
+ };
+ format?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ formatter?: {
+ type: undefined;
+ value?: (option: DateTimePickerColumnItem, columnIndex: number) => DateTimePickerColumnItem;
+ };
+ header?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ mode?: {
+ type: null;
+ value?: DateTimePickerMode;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ showWeek?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ start?: {
+ type: null;
+ value?: string | number;
+ };
+ steps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: DateValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: DateValue;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type DateTimePickerColumn = DateTimePickerColumnItem[];
+export interface DateTimePickerColumnItem {
+ label: string;
+ value: string;
+}
+export declare type DateTimePickerMode = TimeModeValues | Array;
+export declare type TimeModeValues = 'year' | 'month' | 'date' | 'hour' | 'minute' | 'second';
+export declare type DateValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.js b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/date-time-picker/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.d.ts
new file mode 100644
index 0000000..4efa470
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent } from '../common/src/index';
+export default class Dialog extends SuperComponent {
+ behaviors: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: import("./type").TdDialogProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ buttonVariant: string;
+ };
+ observers: {
+ 'confirmBtn, cancelBtn'(confirm: any, cancel: any): void;
+ };
+ methods: {
+ onTplButtonTap(e: any): void;
+ onConfirm(): void;
+ onCancel(): void;
+ onClose(): void;
+ close(): void;
+ overlayClick(): void;
+ onActionTap(index: number): void;
+ openValueCBHandle(e: any): void;
+ openValueErrCBHandle(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.js b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.js
new file mode 100644
index 0000000..fe049df
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{toCamel}from"../common/utils";import{isObject}from"../common/validator";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-dialog`;let Dialog=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-confirm`,`${prefix}-class-cancel`,`${prefix}-class-action`],this.properties=props,this.data={prefix:prefix,classPrefix:name,buttonVariant:"text"},this.observers={"confirmBtn, cancelBtn"(t,e){const{prefix:o,classPrefix:i,buttonLayout:n}=this.data,s={buttonVariant:"text"},r=[t,e].some((t=>isObject(t)&&t.variant&&"text"!==t.variant)),a={confirm:t,cancel:e},c=[`${i}__button`],l=[];r?(s.buttonVariant="base",c.push(`${i}__button--${n}`)):(c.push(`${i}__button--text`),l.push(`${i}-button`)),Object.keys(a).forEach((t=>{const e=a[t],n={block:!0,rootClass:[...c,`${i}__button--${t}`],tClass:[...l,`${o}-class-${t}`],variant:s.buttonVariant,openType:""};"cancel"===t&&"base"===s.buttonVariant&&(n.theme="light"),s[`_${t}`]="string"==typeof e?Object.assign(Object.assign({},n),{content:e}):e&&"object"==typeof e?Object.assign(Object.assign({},n),e):null})),this.setData(Object.assign({},s))}},this.methods={onTplButtonTap(t){var e,o,i;const n=t.type,{type:s,extra:r}=t.target.dataset,a=this.data[`_${s}`],c=`bind${n}`;if("action"===s)return void this.onActionTap(r);if("function"==typeof a[c]){a[c](t)&&this.close()}if(!!!a.openType&&["confirm","cancel"].includes(s)&&(null===(e=this[toCamel(`on-${s}`)])||void 0===e||e.call(this,s)),"tap"!==n){const e=(null===(i=null===(o=t.detail)||void 0===o?void 0:o.errMsg)||void 0===i?void 0:i.indexOf("ok"))>-1;this.triggerEvent(e?"open-type-event":"open-type-error-event",t.detail)}},onConfirm(){this.triggerEvent("confirm"),this._onConfirm&&(this._onConfirm({trigger:"confirm"}),this.close())},onCancel(){const t={trigger:"cancel"};this.triggerEvent("cancel"),this.triggerEvent("close",t),this._onCancel&&(this._onCancel(t),this.close())},onClose(){var t;const e={trigger:"close-btn"};this.triggerEvent("close",e),null===(t=this._onCancel)||void 0===t||t.call(this,e),this.close()},close(){this.setData({visible:!1})},overlayClick(){var t;if(this.triggerEvent("overlay-click"),this.properties.closeOnOverlayClick){const e={trigger:"overlay"};this.triggerEvent("close",e),null===(t=this._onCancel)||void 0===t||t.call(this,e),this.close()}},onActionTap(t){this.triggerEvent("action",{index:t}),this._onAction&&(this._onAction({index:t}),this.close())},openValueCBHandle(t){this.triggerEvent("open-type-event",t.detail)},openValueErrCBHandle(t){this.triggerEvent("open-type-error-event",t.detail)}}}};Dialog=__decorate([wxComponent()],Dialog);export default Dialog;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.json b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.json
new file mode 100644
index 0000000..02f8832
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup","t-icon":"../icon/icon","t-button":"../button/button"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxml b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxml
new file mode 100644
index 0000000..15386d6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxs b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxs
new file mode 100644
index 0000000..8f70e47
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxs
@@ -0,0 +1,13 @@
+module.exports.getTypeof = function (obj) {
+ return typeof obj;
+};
+
+module.exports.getActionClass = function (prefix, buttonLayout) {
+ var cls = [prefix + '__button', prefix + '__button--action'];
+
+ if (buttonLayout) {
+ cls.push(prefix + '__button--' + buttonLayout);
+ }
+
+ return cls.join(' ');
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxss b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxss
new file mode 100644
index 0000000..f00ef36
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/dialog.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-dialog{overflow:hidden;width:var(--td-dialog-width,622rpx);border-radius:var(--td-dialog-border-radius,var(--td-radius-extra-large,24rpx));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff))}.t-dialog__wrapper{--td-popup-border-radius:var(--td-dialog-border-radius, var(--td-radius-extra-large, 24rpx))}.t-dialog__close-btn{position:absolute;top:var(--td-spacer,16rpx);right:var(--td-spacer,16rpx);color:var(--td-dialog-close-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));z-index:1}.t-dialog__content{padding-top:var(--td-spacer-3,48rpx);padding-right:var(--td-spacer-3,48rpx);padding-bottom:0;padding-left:var(--td-spacer-3,48rpx);max-height:var(--td-dialog-body-max-height,912rpx);box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;font-size:var(--td-font-size-m,32rpx)}.t-dialog__content:empty{display:none}.t-dialog__header{text-align:center;font-weight:700;font-size:var(--td-dialog-title-font-size,36rpx);line-height:var(--td-dialog-title-line-height,52rpx);color:var(--td-dialog-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-dialog__header+.t-dialog__body{margin-top:var(--td-spacer,16rpx)}.t-dialog__body{overflow-y:scroll;text-align:center;-webkit-overflow-scrolling:touch;font-size:var(--td-dialog-content-font-size,32rpx);color:var(--td-dialog-content-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));line-height:var(--td-dialog-content-line-height,48rpx)}.t-dialog__body-text{word-wrap:break-word}.t-dialog__body--left{text-align:left}.t-dialog__body--right{text-align:right}.t-dialog__footer{display:flex;padding:var(--td-spacer-3,48rpx)}.t-dialog__footer--column{flex-flow:column-reverse}.t-dialog__footer--column .t-dialog__button{width:100%}.t-dialog__footer--full{padding:var(--td-spacer-4,64rpx) 0 0}.t-dialog__button{position:relative;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-dialog__button--horizontal+.t-dialog__button--horizontal{margin-left:var(--td-spacer-1,24rpx)}.t-dialog__button--vertical+.t-dialog__button--vertical{margin-bottom:var(--td-spacer-1,24rpx)}.t-dialog__button--text{flex:1;--td-button-border-radius:0;--td-button-medium-height:112rpx;border-radius:0}.t-dialog__button--text:before{content:' ';position:absolute;box-sizing:border-box;top:0;left:0;border-top:1px solid var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7));border-left:1px solid var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7));transform:scale(.5);transform-origin:0 0;width:200%;height:200%;border-radius:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/index.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/index.d.ts
new file mode 100644
index 0000000..8c8cf22
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/index.d.ts
@@ -0,0 +1,44 @@
+///
+///
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+interface DialogAlertOptionsType {
+ context?: Context;
+ selector?: string;
+ title?: string;
+ content?: string;
+ zIndex?: number;
+ asyncClose?: boolean;
+ confirmButtonText?: string;
+ textAlign?: string;
+ cancelBtn?: string | object;
+ confirmBtn?: string | object;
+ showOverlay?: boolean;
+ closeOnOverlayClick?: boolean;
+ preventScrollThrough?: boolean;
+}
+interface DialogConfirmOptionsType extends DialogAlertOptionsType {
+ cancelButtonText?: string;
+}
+interface Action {
+ content: string;
+ theme?: 'default' | 'primary' | 'danger' | 'light';
+}
+interface DialogActionOptionsType {
+ context?: Context;
+ selector?: string;
+ title?: string;
+ content: string;
+ zIndex?: number;
+ asyncClose?: boolean;
+ actions?: Action[];
+ buttonLayout?: 'vertical' | 'horizontal';
+}
+declare const _default: {
+ alert(options: DialogAlertOptionsType): Promise;
+ confirm(options: DialogConfirmOptionsType): Promise;
+ close(options?: DialogConfirmOptionsType): Promise;
+ action(options: DialogActionOptionsType): Promise<{
+ index: number;
+ }>;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/index.js b/miniprogram_npm/tdesign-miniprogram/dialog/index.js
new file mode 100644
index 0000000..dfdab67
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import props from"./props";import{getInstance}from"../common/utils";const defaultOptions={actions:[],buttonLayout:props.buttonLayout.value,cancelBtn:props.cancelBtn.value,closeOnOverlayClick:props.closeOnOverlayClick.value,confirmBtn:props.confirmBtn.value,content:"",preventScrollThrough:props.preventScrollThrough.value,showOverlay:props.showOverlay.value,title:"",visible:props.visible.value};export default{alert(t){const e=Object.assign({},t),{context:s,selector:o="#t-dialog"}=e,n=__rest(e,["context","selector"]),c=getInstance(s,o);return c?new Promise((t=>{const e=Object.assign(Object.assign(Object.assign({},defaultOptions),c.properties),n);c.setData(Object.assign(Object.assign({cancelBtn:""},e),{visible:!0})),c._onConfirm=t})):Promise.reject()},confirm(t){const e=Object.assign({},t),{context:s,selector:o="#t-dialog"}=e,n=__rest(e,["context","selector"]),c=getInstance(s,o);return c?new Promise(((t,e)=>{const s=Object.assign(Object.assign(Object.assign({},defaultOptions),c.properties),n);c.setData(Object.assign(Object.assign({},s),{visible:!0})),c._onConfirm=t,c._onCancel=e})):Promise.reject()},close(t){const{context:e,selector:s="#t-dialog"}=Object.assign({},t),o=getInstance(e,s);return o?(o.close(),Promise.resolve()):Promise.reject()},action(t){const e=Object.assign({},t),{context:s,selector:o="#t-dialog"}=e,n=__rest(e,["context","selector"]),c=getInstance(s,o);if(!c)return Promise.reject();const{buttonLayout:r="vertical",actions:i=c.properties.actions}=t,a="vertical"===r?7:3;return(!i||"object"==typeof i&&(0===i.length||i.length>a))&&console.warn(`action 数量建议控制在1至${a}个`),new Promise((t=>{const e=Object.assign(Object.assign(Object.assign({},defaultOptions),c.properties),n);c.setData(Object.assign(Object.assign({},e),{buttonLayout:r,visible:!0})),c._onAction=t}))}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/props.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/props.d.ts
new file mode 100644
index 0000000..15d9d87
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDialogProps } from './type';
+declare const props: TdDialogProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/props.js b/miniprogram_npm/tdesign-miniprogram/dialog/props.js
new file mode 100644
index 0000000..250cbcb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/props.js
@@ -0,0 +1 @@
+const props={actions:{type:Array},buttonLayout:{type:String,value:"horizontal"},cancelBtn:{type:null},closeBtn:{type:null,value:!1},closeOnOverlayClick:{type:Boolean,value:!1},confirmBtn:{type:null},content:{type:String},overlayProps:{type:Object,value:{}},preventScrollThrough:{type:Boolean,value:!0},showOverlay:{type:Boolean,value:!0},title:{type:String},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean},zIndex:{type:Number,value:11500}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/type.d.ts b/miniprogram_npm/tdesign-miniprogram/dialog/type.d.ts
new file mode 100644
index 0000000..a495cfa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/type.d.ts
@@ -0,0 +1,60 @@
+import { ButtonProps } from '../button/index';
+import { OverlayProps } from '../overlay/index';
+export interface TdDialogProps {
+ actions?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ buttonLayout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ cancelBtn?: {
+ type: null;
+ value?: string | ButtonProps | null;
+ };
+ closeBtn?: {
+ type: null;
+ value?: boolean | ButtonProps | null;
+ };
+ closeOnOverlayClick?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmBtn?: {
+ type: null;
+ value?: string | ButtonProps | null;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ overlayProps?: {
+ type: ObjectConstructor;
+ value?: OverlayProps;
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dialog/type.js b/miniprogram_npm/tdesign-miniprogram/dialog/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dialog/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.d.ts b/miniprogram_npm/tdesign-miniprogram/divider/divider.d.ts
new file mode 100644
index 0000000..d4d837c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.d.ts
@@ -0,0 +1,18 @@
+import { SuperComponent } from '../common/src/index';
+export default class Divider extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdDividerProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ lineColor(): void;
+ };
+ methods: {
+ setStyle(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.js b/miniprogram_npm/tdesign-miniprogram/divider/divider.js
new file mode 100644
index 0000000..9d084aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.js
@@ -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}-divider`;let Divider=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name},this.observers={lineColor(){this.setStyle()}},this.methods={setStyle(){const{lineColor:e}=this.properties,o=""+(e?`border-color: ${e};`:"");this.setData({dividerStyle:o})}}}};Divider=__decorate([wxComponent()],Divider);export default Divider;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.json b/miniprogram_npm/tdesign-miniprogram/divider/divider.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.wxml b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxml
new file mode 100644
index 0000000..9ed265c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/divider.wxss b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxss
new file mode 100644
index 0000000..9e9e48d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/divider.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-divider{display:flex;color:var(--td-divider-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-divider-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-style:var(--td-divider-content-line-style,solid);border-width:0}.t-divider::after,.t-divider::before{content:'';display:block;flex:1;box-sizing:border-box;border:inherit;border-color:inherit;border-style:inherit}.t-divider--horizontal{align-items:center;margin:var(--td-divider-horizontal-margin,20rpx) 0}.t-divider--horizontal::after,.t-divider--horizontal::before{border-top-width:var(--td-divider-border-width,2rpx);transform:scaleY(.5);transform-origin:center}.t-divider--horizontal .t-divider__content:not(:empty){margin:0 var(--td-divider-content-margin,var(--td-spacer-1,24rpx))}.t-divider--vertical{flex-direction:column;height:28rpx;margin:0 var(--td-divider-vertical-margin,var(--td-spacer,16rpx))}.t-divider--vertical::after,.t-divider--vertical::before{border-left-width:var(--td-divider-border-width,2rpx);transform:scaleX(.5);transform-origin:center}.t-divider--vertical-center{align-items:center;height:100%}.t-divider--dashed{border-style:dashed}.t-divider__content{font-size:var(--td-divider-content-font-size,var(--td-font-size-s,24rpx));line-height:var(--td-divider-content-line-height,40rpx);color:var(--td-divider-content-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-divider--left::before,.t-divider--right::after{max-width:60rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/props.d.ts b/miniprogram_npm/tdesign-miniprogram/divider/props.d.ts
new file mode 100644
index 0000000..806aab2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDividerProps } from './type';
+declare const props: TdDividerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/props.js b/miniprogram_npm/tdesign-miniprogram/divider/props.js
new file mode 100644
index 0000000..70fd183
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"center"},content:{type:String},dashed:{type:Boolean,value:!1},layout:{type:String,value:"horizontal"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/type.d.ts b/miniprogram_npm/tdesign-miniprogram/divider/type.d.ts
new file mode 100644
index 0000000..424a7b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/type.d.ts
@@ -0,0 +1,18 @@
+export interface TdDividerProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'left' | 'right' | 'center';
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ dashed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/divider/type.js b/miniprogram_npm/tdesign-miniprogram/divider/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/divider/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.d.ts b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.d.ts
new file mode 100644
index 0000000..22932ab
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.d.ts
@@ -0,0 +1,16 @@
+import { ComponentsOptionsType, SuperComponent } from '../common/src/index';
+export default class Drawer extends SuperComponent {
+ behaviors: string[];
+ externalClasses: any[];
+ options: ComponentsOptionsType;
+ properties: import("./type").TdDrawerProps;
+ data: {
+ classPrefix: string;
+ };
+ methods: {
+ visibleChange({ detail }: {
+ detail: any;
+ }): void;
+ itemClick(detail: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.js b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.js
new file mode 100644
index 0000000..03c69f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-drawer`;let Drawer=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.externalClasses=[],this.options={multipleSlots:!0},this.properties=props,this.data={classPrefix:name},this.methods={visibleChange({detail:e}){const{visible:t}=e,{showOverlay:r}=this.data;this.setData({visible:t}),t||this.triggerEvent("close",{trigger:"overlay"}),r&&this.triggerEvent("overlay-click",{visible:t})},itemClick(e){const{index:t,item:r}=e.currentTarget.dataset;this.triggerEvent("item-click",{index:t,item:r})}}}};Drawer=__decorate([wxComponent()],Drawer);export default Drawer;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.json b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.json
new file mode 100644
index 0000000..711afb8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxml b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxml
new file mode 100644
index 0000000..1d5b01f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxml
@@ -0,0 +1 @@
+{{title}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxss b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxss
new file mode 100644
index 0000000..e2927f8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/drawer.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-drawer{background:var(--td-drawer-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));width:var(--td-drawer-width,560rpx);height:100%;display:flex;flex-direction:column}.t-drawer--hover{background-color:var(--td-drawer-hover-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-drawer__title{font-weight:600;font-size:var(--td-drawer-title-font-size,36rpx);padding:48rpx 32rpx 16rpx;color:var(--td-drawer-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-drawer__sidebar{height:var(--td-drawer-sidebar-height,70vh)}.t-drawer__sidebar-item{display:flex;align-items:center;position:relative;padding-top:var(--td-drawer-item-padding,32rpx);padding-right:0;padding-bottom:var(--td-drawer-item-padding,32rpx);padding-left:var(--td-drawer-item-padding,32rpx);line-height:var(--td-drawer-item-height,48rpx)}.t-drawer__sidebar-item::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-drawer-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-drawer__sidebar-item::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-drawer__sidebar-item::after{left:var(--td-drawer-item-padding,32rpx)}.t-drawer__sidebar-item-title{flex:1;color:var(--td-drawer-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-drawer__sidebar-item-icon{padding-right:16rpx;color:var(--td-drawer-item-icon-color,var(--td-drawer-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)))));font-size:var(--td-drawer-item-icon-size,48rpx)}.t-drawer__footer{flex:1;display:flex;flex-direction:column;padding-bottom:var(--td-drawer-footer-padding-bottom,40rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/props.d.ts b/miniprogram_npm/tdesign-miniprogram/drawer/props.d.ts
new file mode 100644
index 0000000..dbb379d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDrawerProps } from './type';
+declare const props: TdDrawerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/props.js b/miniprogram_npm/tdesign-miniprogram/drawer/props.js
new file mode 100644
index 0000000..f8ac27c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/props.js
@@ -0,0 +1 @@
+const props={closeOnOverlayClick:{type:Boolean,value:!0},destroyOnClose:{type:Boolean,value:!1},items:{type:Array},placement:{type:String,value:"right"},showOverlay:{type:Boolean,value:!0},title:{type:String},visible:{type:Boolean,value:!1},zIndex:{type:Number,value:11500}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/type.d.ts b/miniprogram_npm/tdesign-miniprogram/drawer/type.d.ts
new file mode 100644
index 0000000..7efbbbe
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/type.d.ts
@@ -0,0 +1,42 @@
+export interface TdDrawerProps {
+ closeOnOverlayClick?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ destroyOnClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ items?: {
+ type: ArrayConstructor;
+ value?: DrawerItem[];
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
+export interface DrawerItem {
+ title: string;
+ icon: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/drawer/type.js b/miniprogram_npm/tdesign-miniprogram/drawer/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/drawer/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.d.ts
new file mode 100644
index 0000000..21473e9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.d.ts
@@ -0,0 +1,48 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+import type { TdDropdownItemProps } from './type';
+export interface DropdownItemProps extends TdDropdownItemProps {
+}
+export default class DropdownMenuItem extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: TdDropdownItemProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ show: boolean;
+ top: number;
+ maskHeight: number;
+ initValue: any;
+ hasChanged: boolean;
+ duration: string | number;
+ zIndex: number;
+ overlay: boolean;
+ labelAlias: string;
+ valueAlias: string;
+ computedLabel: string;
+ firstCheckedValue: string;
+ };
+ relations: RelationsOptions;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ keys(obj: any): void;
+ value(v: any): void;
+ 'label, computedLabel, disabled'(): void;
+ show(visible: any): void;
+ };
+ methods: {
+ closeDropdown(): void;
+ getParentBottom(cb: any): void;
+ handleTreeClick(e: any): void;
+ handleRadioChange(e: any): void;
+ handleMaskClick(): void;
+ handleReset(): void;
+ handleConfirm(): void;
+ onLeaved(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.js b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.js
new file mode 100644
index 0000000..775e675
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import menuProps from"../dropdown-menu/props";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-dropdown-item`;let DropdownMenuItem=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-column`,`${prefix}-class-column-item`,`${prefix}-class-column-item-label`,`${prefix}-class-footer`],this.properties=props,this.data={prefix:prefix,classPrefix:name,show:!1,top:0,maskHeight:0,initValue:null,hasChanged:!1,duration:menuProps.duration.value,zIndex:menuProps.zIndex.value,overlay:menuProps.showOverlay.value,labelAlias:"label",valueAlias:"value",computedLabel:"",firstCheckedValue:""},this.relations={"../dropdown-menu/dropdown-menu":{type:"parent",linked(e){const{zIndex:t,duration:a,showOverlay:s}=e.properties;this.setData({zIndex:t,duration:a,showOverlay:s})}}},this.controlledProps=[{key:"value",event:"change"}],this.observers={keys(e){this.setData({labelAlias:e.label||"label",valueAlias:e.value||"value"})},value(e){const{options:t,labelAlias:a,valueAlias:s}=this.data;if(this.data.multiple&&!Array.isArray(e))throw TypeError("应传入数组类型的 value");const o=t.find((t=>t[s]===e));o&&this.setData({computedLabel:o[a]})},"label, computedLabel, disabled"(){var e;null===(e=this.$parent)||void 0===e||e.getAllItems()},show(e){e&&this.getParentBottom((()=>{this.setData({wrapperVisible:!0})}))}},this.methods={closeDropdown(){var e;null===(e=this.$parent)||void 0===e||e.setData({activeIdx:-1}),this.setData({show:!1}),this.triggerEvent("close")},getParentBottom(e){getRect(this.$parent,`#${prefix}-bar`).then((t=>{this.setData({top:t.bottom,maskHeight:t.top},e)}))},handleTreeClick(e){const{level:t,value:a}=e.currentTarget.dataset,{value:s}=this.data;s[t]=a,this._trigger("change",{value:s})},handleRadioChange(e){const{value:t}=e.detail;if(this._trigger("change",{value:t}),this.data.multiple){const e=this.data.options.find((e=>t.includes(e.value)));e&&(this.data.firstCheckedValue=e.value)}else this.closeDropdown()},handleMaskClick(){var e;(null===(e=this.$parent)||void 0===e?void 0:e.properties.closeOnClickOverlay)&&this.closeDropdown()},handleReset(){this._trigger("change",{value:[]}),this._trigger("reset")},handleConfirm(){this._trigger("confirm",{value:this.data.value}),this.closeDropdown(),this.setData({firstCheckedValue:this.data.firstCheckedValue})},onLeaved(){this.setData({wrapperVisible:!1})}}}};DropdownMenuItem=__decorate([wxComponent()],DropdownMenuItem);export default DropdownMenuItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.json b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.json
new file mode 100644
index 0000000..28335a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-button":"../button/button","t-radio":"../radio/radio","t-radio-group":"../radio-group/radio-group","t-checkbox":"../checkbox/checkbox","t-checkbox-group":"../checkbox-group/checkbox-group","t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml
new file mode 100644
index 0000000..1317201
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxss b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxss
new file mode 100644
index 0000000..3f6ffd5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/dropdown-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-dropdown-item{position:fixed;right:0;left:0;top:0;overflow:hidden;bottom:0}.t-dropdown-item__content{display:flex;flex-direction:column;z-index:11600;overflow:hidden}.t-dropdown-item__popup-host{display:block;width:100%;overflow:hidden;position:absolute;left:0;top:0}.t-dropdown-item__body{flex:1;background:var(--td-dropdown-menu-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));overflow:auto;max-height:var(--td-dropdown-body-max-height,560rpx)}.t-dropdown-item__body--tree{display:flex;overflow:hidden}.t-dropdown-item__body--multi{padding-top:var(--td-spacer,16rpx);padding-bottom:var(--td-spacer,16rpx);overflow-y:auto}.t-dropdown-item__scroll{max-height:var(--td-dropdown-body-max-height,560rpx)}.t-dropdown-item__footer{display:flex;background:var(--td-dropdown-menu-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));padding:32rpx;position:relative}.t-dropdown-item__footer::after{content:'';display:block;position:absolute;top:0;bottom:unset;left:unset;right:unset;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-dropdown-item__footer::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-dropdown-item__footer-btn{flex:1}.t-dropdown-item__footer-btn+.t-dropdown-item__footer-btn{margin-left:32rpx}.t-dropdown-item__body:empty,.t-dropdown-item__footer:empty{display:none}.t-dropdown-item__checkbox,.t-dropdown-item__radio{width:100%;overflow:scroll;box-sizing:border-box}.t-dropdown-item__checkbox-group,.t-dropdown-item__radio-group{display:grid;grid-gap:24rpx}.t-dropdown-item__radio-group{display:grid;grid-gap:0rpx}.t-dropdown-item__checkbox-group{padding:32rpx}.t-dropdown-item__tree-item{height:var(--td-tree-item-height,96rpx);line-height:var(--td-tree-item-height,96rpx);font-size:var(--td-tree-item-font-size,32rpx);padding-left:32rpx}.t-dropdown-item__tree-item--active{color:var(--td-tree-item-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-dropdown-item__mask{position:fixed;width:100vh;top:0;left:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/index.wxs b/miniprogram_npm/tdesign-miniprogram/dropdown-item/index.wxs
new file mode 100644
index 0000000..e774f06
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/index.wxs
@@ -0,0 +1,9 @@
+var getStyles = function (top, zIndex) {
+ var topStyle = top ? 'top:' + top + 'px;' : '';
+ var zIndexStyle = zIndex ? 'z-index:' + zIndex + ';' : '';
+ return topStyle + zIndexStyle;
+};
+
+module.exports = {
+ getStyles: getStyles,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.d.ts
new file mode 100644
index 0000000..aa95de6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDropdownItemProps } from './type';
+declare const props: TdDropdownItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.js b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.js
new file mode 100644
index 0000000..54c6b23
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:Boolean,value:!1},externalClasses:{type:Array},keys:{type:Object},label:{type:String,value:""},multiple:{type:Boolean,value:!1},options:{type:Array,value:[]},optionsColumns:{type:null,value:1},placement:{type:String,value:"left"},value:{type:null,value:void 0},defaultValue:{type:null,value:void 0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.d.ts
new file mode 100644
index 0000000..ca43657
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.d.ts
@@ -0,0 +1,56 @@
+import { KeysType } from '../common/common';
+export interface TdDropdownItemProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: [
+ 't-class',
+ 't-class-content',
+ 't-class-column',
+ 't-class-column-item',
+ 't-class-column-item-label',
+ 't-class-footer'
+ ];
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ multiple?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ optionsColumns?: {
+ type: null;
+ value?: string | number;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ value?: {
+ type: null;
+ value?: DropdownValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: DropdownValue;
+ };
+}
+export interface DropdownOption {
+ label: string;
+ disabled: boolean;
+ value: DropdownValue;
+}
+export declare type DropdownValue = string | number | Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.js b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.d.ts
new file mode 100644
index 0000000..c92f0e4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.d.ts
@@ -0,0 +1,33 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+import type { TdDropdownMenuProps } from './type';
+export interface DropdownMenuProps extends TdDropdownMenuProps {
+}
+export default class DropdownMenu extends SuperComponent {
+ externalClasses: string[];
+ properties: TdDropdownMenuProps;
+ nodes: any;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ menus: any;
+ activeIdx: number;
+ bottom: number;
+ _arrowIcon: {
+ name: string | object;
+ };
+ };
+ relations: RelationsOptions;
+ lifetimes: {
+ ready(): void;
+ };
+ observers: {
+ arrowIcon(v: any): void;
+ activeIdx(v: number): void;
+ };
+ methods: {
+ toggle(index: number): void;
+ getAllItems(): void;
+ handleToggle(e: WechatMiniprogram.BaseEvent): void;
+ noop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.js
new file mode 100644
index 0000000..6da6107
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-dropdown-menu`;let DropdownMenu=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-item`,`${prefix}-class-label`,`${prefix}-class-icon`],this.properties=props,this.nodes=null,this.data={prefix:prefix,classPrefix:name,menus:null,activeIdx:-1,bottom:0,_arrowIcon:{name:props.arrowIcon.value}},this.relations={"../dropdown-item/dropdown-item":{type:"child"}},this.lifetimes={ready(){this.getAllItems()}},this.observers={arrowIcon(e){this.setData({_arrowIcon:calcIcon(e)})},activeIdx(e){this.triggerEvent(-1===e?"close":"open")}},this.methods={toggle(e){const{activeIdx:t,duration:o}=this.data,s=this.$children[t],r=this.$children[e];(null==r?void 0:r.data.disabled)||(-1!==t&&(s.triggerEvent("close"),s.setData({show:!1},(()=>{setTimeout((()=>{s.triggerEvent("closed")}),o)}))),null==e||t===e?this.setData({activeIdx:-1}):(r.triggerEvent("open"),this.setData({activeIdx:e}),r.setData({show:!0},(()=>{setTimeout((()=>{r.triggerEvent("opened")}),o)}))))},getAllItems(){const e=this.$children.map((({data:e})=>({label:e.label||e.computedLabel,disabled:e.disabled})));this.setData({menus:e})},handleToggle(e){const{index:t}=e.currentTarget.dataset;this.toggle(t)},noop(){}}}};DropdownMenu=__decorate([wxComponent()],DropdownMenu);export default DropdownMenu;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.json b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxml b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxml
new file mode 100644
index 0000000..80b19bf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxml
@@ -0,0 +1 @@
+{{item.label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxss b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxss
new file mode 100644
index 0000000..f533a77
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/dropdown-menu.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-dropdown-menu{display:flex;height:var(--td-dropdown-menu-height,96rpx);background:var(--td-dropdown-menu-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));position:relative}.t-dropdown-menu::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-dropdown-menu::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-dropdown-menu:after{height:var(--td-dropdown-menu-border-width,1px)}.t-dropdown-menu__item{display:flex;flex:1;align-items:center;justify-content:center;padding:0 var(--td-spacer,16rpx);position:relative;overflow:hidden;color:var(--td-dropdown-menu-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-dropdown-menu__item--active{color:var(--td-dropdown-menu-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-dropdown-menu__item--disabled{color:var(--td-dropdown-menu-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-dropdown-menu__icon{font-size:var(--td-dropdown-menu-icon-size,40rpx);padding:4rpx;box-sizing:border-box;transition:transform 240ms ease}.t-dropdown-menu__icon--active{transform:rotate(180deg)}.t-dropdown-menu__icon:not(:empty){margin-left:8rpx}.t-dropdown-menu__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--td-dropdown-menu-font-size,28rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.d.ts
new file mode 100644
index 0000000..dea9f1d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './dropdown-menu';
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.js
new file mode 100644
index 0000000..42cc330
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./dropdown-menu";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.d.ts
new file mode 100644
index 0000000..b662f85
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDropdownMenuProps } from './type';
+declare const props: TdDropdownMenuProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.js
new file mode 100644
index 0000000..f3946a9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/props.js
@@ -0,0 +1 @@
+const props={arrowIcon:{type:null,value:"caret-down-small"},closeOnClickOverlay:{type:Boolean,value:!0},duration:{type:null,value:200},showOverlay:{type:Boolean,value:!0},zIndex:{type:Number,value:11600}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.d.ts b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.d.ts
new file mode 100644
index 0000000..07734f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.d.ts
@@ -0,0 +1,22 @@
+export interface TdDropdownMenuProps {
+ arrowIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ closeOnClickOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ duration?: {
+ type: null;
+ value?: string | number;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.js b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/dropdown-menu/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.d.ts b/miniprogram_npm/tdesign-miniprogram/empty/empty.d.ts
new file mode 100644
index 0000000..cd582e0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.d.ts
@@ -0,0 +1,15 @@
+import { SuperComponent } from '../common/src/index';
+export default class extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: import("./type").TdEmptyProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ icon(icon: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.js b/miniprogram_npm/tdesign-miniprogram/empty/empty.js
new file mode 100644
index 0000000..917b212
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{setIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-empty`;let default_1=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-description`,`${prefix}-class-image`],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.observers={icon(e){const o=setIcon("icon",e,"");this.setData(Object.assign({},o))}}}};default_1=__decorate([wxComponent()],default_1);export default default_1;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.json b/miniprogram_npm/tdesign-miniprogram/empty/empty.json
new file mode 100644
index 0000000..dd7b01e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.wxml b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxml
new file mode 100644
index 0000000..a0a3a96
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxml
@@ -0,0 +1 @@
+{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/empty.wxss b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxss
new file mode 100644
index 0000000..28973d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/empty.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-empty{display:flex;flex-direction:column;align-items:center}.t-empty__icon{font-size:192rpx;color:var(--td-empty-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-empty__thumb+.t-empty__description:not(:empty){margin-top:var(--td-empty-description-margin-top,var(--td-spacer-2,32rpx))}.t-empty__description{text-align:center;color:var(--td-empty-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-empty-description-font-size,var(--td-font-size-base,28rpx));line-height:var(--td-empty-description-line-height,44rpx);white-space:pre-wrap}.t-empty__description+.t-empty__actions:not(:empty){margin-top:var(--td-empty-action-margin-top,var(--td-spacer-4,64rpx))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/props.d.ts b/miniprogram_npm/tdesign-miniprogram/empty/props.d.ts
new file mode 100644
index 0000000..6f04c79
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/props.d.ts
@@ -0,0 +1,3 @@
+import { TdEmptyProps } from './type';
+declare const props: TdEmptyProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/props.js b/miniprogram_npm/tdesign-miniprogram/empty/props.js
new file mode 100644
index 0000000..d0fb219
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/props.js
@@ -0,0 +1 @@
+const props={description:{type:String},externalClasses:{type:Array},icon:{type:null},image:{type:String}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/type.d.ts b/miniprogram_npm/tdesign-miniprogram/empty/type.d.ts
new file mode 100644
index 0000000..8a319f3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/type.d.ts
@@ -0,0 +1,18 @@
+export interface TdEmptyProps {
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-description', 't-class-image', 't-class-actions'];
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/empty/type.js b/miniprogram_npm/tdesign-miniprogram/empty/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/empty/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.d.ts
new file mode 100644
index 0000000..9a5320c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../../common/src/index';
+import type { TdDraggableProps } from './type';
+export interface DraggableProps extends TdDraggableProps {
+}
+export default class Draggable extends SuperComponent {
+ properties: TdDraggableProps;
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ onTouchStart(e: any): void;
+ onTouchMove(e: any): void;
+ onTouchEnd(e: any): Promise;
+ computedRect(): Promise;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.js
new file mode 100644
index 0000000..a0eef06
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../../common/src/index";import config from"../../common/config";import props from"./props";import{getRect,systemInfo}from"../../common/utils";const{prefix:prefix}=config,name=`${prefix}-draggable`;let Draggable=class extends SuperComponent{constructor(){super(...arguments),this.properties=props,this.externalClasses=[`${prefix}-class`],this.data={prefix:prefix,classPrefix:name},this.lifetimes={ready(){this.computedRect()}},this.methods={onTouchStart(t){"none"!==this.properties.direction&&(this.startX=t.touches[0].clientX+systemInfo.windowWidth-this.rect.right,this.startY=t.touches[0].clientY+systemInfo.windowHeight-this.rect.bottom,this.triggerEvent("start",{startX:this.startX,startY:this.startY,rect:this.rect,e:t}))},onTouchMove(t){if("none"===this.properties.direction)return;let e=this.startX-t.touches[0].clientX,i=this.startY-t.touches[0].clientY;"vertical"===this.properties.direction&&(e=systemInfo.windowWidth-this.rect.right),"horizontal"===this.properties.direction&&(i=systemInfo.windowHeight-this.rect.bottom),this.triggerEvent("move",{x:e,y:i,rect:this.rect,e:t})},onTouchEnd(t){return __awaiter(this,void 0,void 0,(function*(){"none"!==this.properties.direction&&(yield this.computedRect(),this.triggerEvent("end",{rect:this.rect,e:t}))}))},computedRect(){return __awaiter(this,void 0,void 0,(function*(){this.rect={right:0,bottom:0,width:0,height:0};try{this.rect=yield getRect(this,`.${this.data.classPrefix}`)}catch(t){}}))}}}};Draggable=__decorate([wxComponent()],Draggable);export default Draggable;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.json b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.json
new file mode 100644
index 0000000..1450e2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.json
@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxml b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxml
new file mode 100644
index 0000000..d1ff9ad
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxss b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxss
new file mode 100644
index 0000000..2953ebc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/draggable.wxss
@@ -0,0 +1 @@
+@import '../../common/style/index.wxss';.hotspot-expanded.relative{position:relative}.hotspot-expanded::after{content:'';display:block;position:absolute;left:0;top:0;right:0;bottom:0;transform:scale(1.5)}.t-draggable{position:fixed}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.d.ts
new file mode 100644
index 0000000..6c4d04d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './draggable';
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.js
new file mode 100644
index 0000000..5722e5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./draggable";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.d.ts
new file mode 100644
index 0000000..65e51bb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.d.ts
@@ -0,0 +1,3 @@
+import { TdDraggableProps } from './type';
+declare const props: TdDraggableProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.js
new file mode 100644
index 0000000..fede98f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/props.js
@@ -0,0 +1 @@
+const props={direction:{type:String,value:"all"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.d.ts
new file mode 100644
index 0000000..580f63d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.d.ts
@@ -0,0 +1,6 @@
+export interface TdDraggableProps {
+ direction?: {
+ type: StringConstructor;
+ value?: 'all' | 'vertical' | 'horizontal' | 'none';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.js b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/draggable/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/fab.d.ts
new file mode 100644
index 0000000..7c4503d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.d.ts
@@ -0,0 +1,27 @@
+import { SuperComponent } from '../common/src/index';
+export default class Fab extends SuperComponent {
+ behaviors: string[];
+ properties: import("./type").TdFabProps;
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ buttonData: {
+ size: string;
+ shape: string;
+ theme: string;
+ tClass: string;
+ };
+ moveStyle: any;
+ };
+ observers: {
+ 'buttonProps.**, icon, text, ariaLabel, yBounds'(): void;
+ };
+ methods: {
+ onTplButtonTap(e: any): void;
+ onStart(e: any): void;
+ onMove(e: any): void;
+ onEnd(e: any): void;
+ computedSize(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.js b/miniprogram_npm/tdesign-miniprogram/fab/fab.js
new file mode 100644
index 0000000..3486a40
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";import{unitConvert,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-fab`,baseButtonProps={size:"large",shape:"circle",theme:"primary",tClass:`${prefix}-fab__button`};let Fab=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.properties=props,this.externalClasses=["class",`${prefix}-class`,`${prefix}-class-button`],this.data={prefix:prefix,classPrefix:name,buttonData:baseButtonProps,moveStyle:null},this.observers={"buttonProps.**, icon, text, ariaLabel, yBounds"(){var t;this.setData({buttonData:Object.assign(Object.assign(Object.assign(Object.assign({},baseButtonProps),{shape:this.properties.text?"round":"circle",icon:this.properties.icon}),this.properties.buttonProps),{content:this.properties.text,ariaLabel:this.properties.ariaLabel})},null===(t=this.computedSize)||void 0===t?void 0:t.bind(this))}},this.methods={onTplButtonTap(t){this.triggerEvent("click",t)},onStart(t){this.triggerEvent("dragstart",t.detail.e)},onMove(t){const{yBounds:e}=this.properties,{distanceTop:o}=this.data,{x:s,y:i,rect:r}=t.detail,a=systemInfo.windowWidth-r.width,n=systemInfo.windowHeight-Math.max(o,unitConvert(e[0]))-r.height,p=Math.max(0,Math.min(s,a)),m=Math.max(0,unitConvert(e[1]),Math.min(i,n));this.setData({moveStyle:`right: ${p}px; bottom: ${m}px;`})},onEnd(t){this.triggerEvent("dragend",t.detail.e)},computedSize(){var t,e;if(!this.properties.draggable)return;const o=this.selectComponent("#draggable");(null===(e=null===(t=this.properties)||void 0===t?void 0:t.yBounds)||void 0===e?void 0:e[1])?this.setData({moveStyle:`bottom: ${unitConvert(this.properties.yBounds[1])}px`},o.computedRect):o.computedRect()}}}};Fab=__decorate([wxComponent()],Fab);export default Fab;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.json b/miniprogram_npm/tdesign-miniprogram/fab/fab.json
new file mode 100644
index 0000000..7273f2a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-button":"../button/button","t-draggable":"./draggable/draggable"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.wxml b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxml
new file mode 100644
index 0000000..999cc1a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/fab.wxss b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxss
new file mode 100644
index 0000000..f64d244
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/fab.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-fab{position:fixed}.t-fab__button{box-shadow:var(--td-fab-shadow,var(--td-shadow-2,0 3px 14px 2px rgba(0,0,0,.05),0 8px 10px 1px rgba(0,0,0,.06),0 5px 5px -3px rgba(0,0,0,.1)))}.t-fab__draggable{position:fixed}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/props.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/props.d.ts
new file mode 100644
index 0000000..2cf4647
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/props.d.ts
@@ -0,0 +1,3 @@
+import { TdFabProps } from './type';
+declare const props: TdFabProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/props.js b/miniprogram_npm/tdesign-miniprogram/fab/props.js
new file mode 100644
index 0000000..8ff0761
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/props.js
@@ -0,0 +1 @@
+const props={buttonProps:{type:Object},draggable:{type:null,value:!1},icon:{type:String,value:""},style:{type:String,value:"right: 16px; bottom: 32px;"},text:{type:String,value:""},usingCustomNavbar:{type:Boolean,value:!1},yBounds:{type:Array}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/template/draggable.wxml b/miniprogram_npm/tdesign-miniprogram/fab/template/draggable.wxml
new file mode 100644
index 0000000..f22d77f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/template/draggable.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/template/view.wxml b/miniprogram_npm/tdesign-miniprogram/fab/template/view.wxml
new file mode 100644
index 0000000..92ccff8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/template/view.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/type.d.ts b/miniprogram_npm/tdesign-miniprogram/fab/type.d.ts
new file mode 100644
index 0000000..722cf6d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/type.d.ts
@@ -0,0 +1,32 @@
+import { ButtonProps } from '../button/index';
+export interface TdFabProps {
+ buttonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ draggable?: {
+ type: null;
+ value?: boolean | FabDirectionEnum;
+ };
+ icon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ yBounds?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+}
+export declare type FabDirectionEnum = 'all' | 'vertical' | 'horizontal';
diff --git a/miniprogram_npm/tdesign-miniprogram/fab/type.js b/miniprogram_npm/tdesign-miniprogram/fab/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/fab/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.d.ts b/miniprogram_npm/tdesign-miniprogram/footer/footer.d.ts
new file mode 100644
index 0000000..6ffe46b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.d.ts
@@ -0,0 +1,9 @@
+import { SuperComponent } from '../common/src/index';
+export default class Footer extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdFooterProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.js b/miniprogram_npm/tdesign-miniprogram/footer/footer.js
new file mode 100644
index 0000000..0282185
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.js
@@ -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}-footer`;let Footer=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={prefix:prefix,classPrefix:name}}};Footer=__decorate([wxComponent()],Footer);export default Footer;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.json b/miniprogram_npm/tdesign-miniprogram/footer/footer.json
new file mode 100644
index 0000000..1e4e103
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.wxml b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxml
new file mode 100644
index 0000000..7870d23
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxml
@@ -0,0 +1 @@
+{{logo.title}}{{item.name}}|{{text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/footer.wxss b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxss
new file mode 100644
index 0000000..b2b844f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/footer.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-footer{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.t-footer__text{font-size:var(--td-footer-text-font-size,var(--td-font-size-s,24rpx));line-height:var(--td-footer-text-line-height,40rpx);color:var(--td-footer-text-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-footer__link-list+.t-footer__text:not(:empty){margin-top:var(--td-footer-text-margin-top,8rpx)}.t-footer__link-list{display:flex;justify-content:center;align-items:center}.t-footer__link-item{color:var(--td-footer-link-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-size:var(--td-footer-link-font-size,var(--td-font-size-s,24rpx));line-height:var(--td-footer-link-line-height,40rpx);text-decoration:underline}.t-footer__link-line{font-size:24rpx;color:var(--td-footer-link-dividing-line-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));display:inline-block;padding:0 var(--td-footer-link-dividing-line-padding,var(--td-spacer-1,24rpx))}.t-footer__logo{display:flex;justify-content:center;align-items:center}.t-footer__icon{width:var(--td-footer-logo-icon-width,48rpx);height:var(--td-footer-logo-icon-height,48rpx);margin-right:var(--td-footer-logo-icon-margin-right,var(--td-spacer,16rpx))}.t-footer__title{color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)));font-weight:700;font-size:var(--td-footer-logo-title-font-size,var(--td-font-size-m,32rpx));line-height:var(--td-footer-logo-title-line-height,48rpx);font-style:italic}.t-footer__title-url{width:var(--td-footer-logo-title-url-width,256rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/props.d.ts b/miniprogram_npm/tdesign-miniprogram/footer/props.d.ts
new file mode 100644
index 0000000..f9a5618
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/props.d.ts
@@ -0,0 +1,3 @@
+import { TdFooterProps } from './type';
+declare const props: TdFooterProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/props.js b/miniprogram_npm/tdesign-miniprogram/footer/props.js
new file mode 100644
index 0000000..f4be9f2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/props.js
@@ -0,0 +1 @@
+const props={links:{type:Array,value:[]},logo:{type:Object},text:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/type.d.ts b/miniprogram_npm/tdesign-miniprogram/footer/type.d.ts
new file mode 100644
index 0000000..1a69105
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/type.d.ts
@@ -0,0 +1,24 @@
+export interface TdFooterProps {
+ links?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ logo?: {
+ type: ObjectConstructor;
+ value?: FooterLogo;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export interface LinkObj {
+ name: string;
+ url?: string;
+ openType?: 'navigate' | 'redirect' | 'relaunch' | 'switchTab' | 'navigateBack';
+}
+export interface FooterLogo {
+ icon: string;
+ title?: string;
+ url?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/footer/type.js b/miniprogram_npm/tdesign-miniprogram/footer/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/footer/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.d.ts b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.d.ts
new file mode 100644
index 0000000..4c43196
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.d.ts
@@ -0,0 +1,31 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class GridItem extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ properties: import("./type").TdGridItemProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ gridItemStyle: string;
+ gridItemWrapperStyle: string;
+ gridItemContentStyle: string;
+ align: string;
+ column: number;
+ describedbyID: string;
+ };
+ observers: {
+ icon(icon: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ updateStyle(): void;
+ getWidthStyle(): string;
+ getPaddingStyle(): string;
+ getBorderStyle(): string;
+ onClick(e: any): void;
+ jumpLink(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.js b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.js
new file mode 100644
index 0000000..b4bd236
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{uniqueFactory,setIcon}from"../common/utils";import{isObject}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-grid-item`,getUniqueID=uniqueFactory("grid_item");var LinkTypes;!function(t){t["redirect-to"]="redirectTo",t["switch-tab"]="switchTab",t.relaunch="reLaunch",t["navigate-to"]="navigateTo"}(LinkTypes||(LinkTypes={}));let GridItem=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-image`,`${prefix}-class-text`,`${prefix}-class-description`],this.options={multipleSlots:!0},this.relations={"../grid/grid":{type:"ancestor",linked(t){this.parent=t,this.updateStyle(),this.setData({column:t.data.column})}}},this.properties=props,this.data={prefix:prefix,classPrefix:name,gridItemStyle:"",gridItemWrapperStyle:"",gridItemContentStyle:"",align:"center",column:0,describedbyID:""},this.observers={icon(t){const e=setIcon("icon",t,"");this.setData(Object.assign({},e))}},this.lifetimes={ready(){this.setData({describedbyID:getUniqueID()})}}}updateStyle(){const{hover:t,align:e}=this.parent.properties,r=[],i=[],o=[],s=this.getWidthStyle(),n=this.getPaddingStyle(),p=this.getBorderStyle();s&&r.push(s),n&&i.push(n),p&&o.push(p),this.setData({gridItemStyle:`${r.join(";")}`,gridItemWrapperStyle:i.join(";"),gridItemContentStyle:o.join(";"),hover:t,layout:this.properties.layout,align:e})}getWidthStyle(){const{column:t}=this.parent.properties;return t>0?`width:${1/t*100}%`:""}getPaddingStyle(){const{gutter:t}=this.parent.properties;return t?`padding-left:${t}rpx;padding-top:${t}rpx`:""}getBorderStyle(){const{gutter:t}=this.parent.properties;let{border:e}=this.parent.properties;if(!e)return"";isObject(e)||(e={});const{color:r="#266FE8",width:i=2,style:o="solid"}=e;return t?`border:${i}rpx ${o} ${r}`:`border-top:${i}rpx ${o} ${r};border-left:${i}rpx ${o} ${r}`}onClick(t){const{item:e}=t.currentTarget.dataset;this.triggerEvent("click",e),this.jumpLink()}jumpLink(){const{url:t,jumpType:e}=this.properties;t&&e&&LinkTypes[e]&&wx[LinkTypes[e]]({url:t})}};GridItem=__decorate([wxComponent()],GridItem);export default GridItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.json b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.json
new file mode 100644
index 0000000..22e1326
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-image":"../image/image","t-icon":"../icon/icon","t-badge":"../badge/badge"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxml b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxml
new file mode 100644
index 0000000..964a334
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxml
@@ -0,0 +1 @@
+module.exports.getImageSize = function(column) { if (column >= 5) return 'small'; if (column == 4) return 'middle'; return 'large'; }{{text}}{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxss b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxss
new file mode 100644
index 0000000..d11d9e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/grid-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-grid-item{box-sizing:border-box;height:100%;display:inline-block;vertical-align:top;background-color:var(--td-grid-item-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-grid-item--hover{background-color:var(--td-grid-item-hover-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-grid-item--auto-size{width:168rpx}.t-grid-item__content{display:flex;flex-direction:column;align-items:center;overflow:hidden;position:relative;padding:var(--td-grid-item-padding,32rpx) 0 24rpx}.t-grid-item__content--horizontal{flex-direction:row;padding-left:var(--td-grid-item-padding,32rpx)}.t-grid-item__content--left{justify-self:flex-start;align-items:flex-start}.t-grid-item__content--left .t-grid-item__words{text-align:left}.t-grid-item__words{width:100%;text-align:center;position:relative;flex-direction:column;display:flex;flex:1;justify-content:center;align-items:center}.t-grid-item__words--horizontal{margin-left:24rpx}.t-grid-item__words:empty{display:none}.t-grid-item__image:not(:empty){width:var(--td-grid-item-image-width,96rpx);height:var(--td-grid-item-image-width,96rpx)}.t-grid-item__image:not(:empty).t-grid-item__image--small{width:var(--td-grid-item-image-small-width,64rpx);height:var(--td-grid-item-image-small-width,64rpx)}.t-grid-item__image:not(:empty).t-grid-item__image--middle{width:var(--td-grid-item-image-middle-width,80rpx);height:var(--td-grid-item-image-middle-width,80rpx)}.t-grid-item__image:not(:empty) .t-grid__image{width:100%;height:100%}.t-grid-item__image--icon{display:flex;align-items:center;justify-content:center;background:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));border-radius:var(--td-radius-default,12rpx)}.t-grid-item__text{width:inherit;color:var(--td-grid-item-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-grid-item-text-font-size,28rpx);line-height:var(--td-grid-item-text-line-height,44rpx);padding-top:var(--td-grid-item-text-padding-top,16rpx)}.t-grid-item__text--small{font-size:var(--td-grid-item-text-small-font-size,24rpx)}.t-grid-item__text--middle{font-size:var(--td-grid-item-text-middle-font-size,24rpx)}.t-grid-item__text--horizontal{padding-top:0;text-align:left}.t-grid-item__description{padding-top:var(--td-grid-item-description-padding-top,0);width:inherit;color:var(--td-grid-item-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-grid-item-description-font-size,24rpx);line-height:var(--td-grid-item-description-line-height,40rpx)}.t-grid-item__description--horizontal{margin-top:var(--td-grid-item-horizontal-text-description-top,0);padding-left:var(--td-grid-item-horizontal-text-padding-left,0);text-align-last:left}.t-grid-item__icon{font-size:48rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/grid-item/props.d.ts
new file mode 100644
index 0000000..bd6c2fb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdGridItemProps } from './type';
+declare const props: TdGridItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/props.js b/miniprogram_npm/tdesign-miniprogram/grid-item/props.js
new file mode 100644
index 0000000..6d7fc9c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object,value:null},description:{type:String},icon:{type:null},image:{type:String},imageProps:{type:Object},jumpType:{type:String,value:"navigate-to"},layout:{type:String,value:"vertical"},text:{type:String},url:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/grid-item/type.d.ts
new file mode 100644
index 0000000..f4dc902
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/type.d.ts
@@ -0,0 +1,40 @@
+import { BadgeProps } from '../badge/index';
+import { ImageProps } from '../image/index';
+export interface TdGridItemProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: ImageProps;
+ };
+ jumpType?: {
+ type: StringConstructor;
+ value?: 'redirect-to' | 'switch-tab' | 'relaunch' | 'navigate-to';
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'vertical' | 'horizontal';
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ url?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid-item/type.js b/miniprogram_npm/tdesign-miniprogram/grid-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.d.ts b/miniprogram_npm/tdesign-miniprogram/grid/grid.d.ts
new file mode 100644
index 0000000..5bc9604
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Grid extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ properties: import("./type").TdGridProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ contentStyle: string;
+ };
+ observers: {
+ 'column,hover,align,gutter,border'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ doForChild(action: (item: WechatMiniprogram.Component.TrivialInstance) => void): void;
+ updateContentStyle(): void;
+ getContentMargin(): string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.js b/miniprogram_npm/tdesign-miniprogram/grid/grid.js
new file mode 100644
index 0000000..0b083a2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{isObject}from"../common/validator";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-grid`;let Grid=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=["t-class"],this.relations={"../grid-item/grid-item":{type:"descendant"}},this.properties=props,this.data={prefix:prefix,classPrefix:name,contentStyle:""},this.observers={"column,hover,align,gutter,border"(){this.updateContentStyle(),this.doForChild((t=>t.updateStyle()))}},this.lifetimes={attached(){this.updateContentStyle()}},this.methods={doForChild(t){this.$children.forEach(t)},updateContentStyle(){const t=[],e=this.getContentMargin();e&&t.push(e),this.setData({contentStyle:t.join(";")})},getContentMargin(){const{gutter:t}=this.properties;let{border:e}=this.properties;if(!e)return`margin-left:-${t}rpx; margin-top:-${t}rpx`;isObject(e)||(e={});const{width:r=2}=e;return`margin-left:-${r}rpx; margin-top:-${r}rpx`}}}};Grid=__decorate([wxComponent()],Grid);export default Grid;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.json b/miniprogram_npm/tdesign-miniprogram/grid/grid.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.wxml b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxml
new file mode 100644
index 0000000..95f0fbb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/grid.wxss b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxss
new file mode 100644
index 0000000..8a70a65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/grid.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-grid{position:relative;overflow:hidden;background-color:var(--td-grid-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-grid__content{width:auto}.t-grid--card{margin:0 32rpx;border-radius:var(--td-grid-card-radius,var(--td-radius-large,18rpx));overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/props.d.ts b/miniprogram_npm/tdesign-miniprogram/grid/props.d.ts
new file mode 100644
index 0000000..f8f2feb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/props.d.ts
@@ -0,0 +1,3 @@
+import { TdGridProps } from './type';
+declare const props: TdGridProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/props.js b/miniprogram_npm/tdesign-miniprogram/grid/props.js
new file mode 100644
index 0000000..2c14f63
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"center"},border:{type:null,value:!1},column:{type:Number,value:4},gutter:{type:Number},hover:{type:Boolean,value:!1},theme:{type:String,value:"default"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/type.d.ts b/miniprogram_npm/tdesign-miniprogram/grid/type.d.ts
new file mode 100644
index 0000000..bb10d5e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdGridProps {
+ align?: {
+ type: StringConstructor;
+ value?: 'left' | 'center';
+ };
+ border?: {
+ type: null;
+ value?: boolean | {
+ color?: string;
+ width?: string;
+ style?: 'solid' | 'dashed' | 'dotted' | 'double' | 'groove' | 'inset' | 'outset';
+ };
+ };
+ column?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ gutter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ hover?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'card';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/grid/type.js b/miniprogram_npm/tdesign-miniprogram/grid/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/grid/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/content.wxml b/miniprogram_npm/tdesign-miniprogram/guide/content.wxml
new file mode 100644
index 0000000..70702f7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/content.wxml
@@ -0,0 +1 @@
+{{title}}{{body}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.d.ts b/miniprogram_npm/tdesign-miniprogram/guide/guide.d.ts
new file mode 100644
index 0000000..b94871d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.d.ts
@@ -0,0 +1,103 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { TdGuideProps, GuideStep } from './type';
+export interface GuideProps extends TdGuideProps {
+}
+export { GuideStep };
+export default class Guide extends SuperComponent {
+ externalClasses: string[];
+ properties: TdGuideProps;
+ options: WechatMiniprogram.Component.ComponentOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ visible: boolean;
+ _current: number;
+ _steps: any[];
+ buttonProps: {};
+ referenceStyle: string;
+ popoverStyle: string;
+ title: string;
+ body: string;
+ nonOverlay: boolean;
+ modeType: string;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'steps, current, showOverlay'(): Promise;
+ };
+ lifetimes: {
+ created(): void;
+ attached(): void;
+ };
+ methods: {
+ init(): Promise;
+ placementOffset({ placement, offset }: GuideStep, place: CSSStyleDeclaration): Promise;
+ buttonProps(step: any, mode: any): {
+ skipButton: any;
+ nextButton: any;
+ backButton: any;
+ finishButton: any;
+ };
+ renderCounter(): any;
+ buttonContent(button: any): string;
+ onTplButtonTap(e: any): void;
+ getPlacement(): {
+ center: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ bottom: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'bottom-left': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'bottom-right': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ left: (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ 'left-top': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ 'left-bottom': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ right: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'right-top': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'right-bottom': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ top: (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'top-left': (rect: any, place: any, offset: any) => {
+ top: string;
+ left: string;
+ };
+ 'top-right': (rect: any, place: any, offset: any) => {
+ top: string;
+ right: string;
+ };
+ };
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.js b/miniprogram_npm/tdesign-miniprogram/guide/guide.js
new file mode 100644
index 0000000..674567f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{isFunction,isNumber}from"../common/validator";import{debounce,getRect,rpx2px,styles,unitConvert,nextTick,systemInfo}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-guide`;let Guide=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-reference`,`${prefix}-class-popover`,`${prefix}-class-tooltip`,`${prefix}-class-title`,`${prefix}-class-body`,`${prefix}-class-footer`,`${prefix}-class-skip`,`${prefix}-class-next`,`${prefix}-class-back`,`${prefix}-class-finish`],this.properties=props,this.options={pureDataPattern:/^_/,multipleSlots:!0},this.data={prefix:prefix,classPrefix:name,visible:!1,_current:-1,_steps:[],buttonProps:{},referenceStyle:"",popoverStyle:"",title:"",body:"",nonOverlay:!1,modeType:""},this.controlledProps=[{key:"current",event:"change"}],this.observers={"steps, current, showOverlay"(){return __awaiter(this,void 0,void 0,(function*(){this._init()}))}},this.lifetimes={created(){this._init=debounce((()=>this.init()),20),this._getPlacement=this.getPlacement()},attached(){this._init()}},this.methods={init(){var t,e,i,s,a,o,n;return __awaiter(this,void 0,void 0,(function*(){const{steps:r,current:p}=this.properties,{_steps:l,_current:h}=this.data,c=r[p];if(!c)return this.setData({visible:!1});const u="dialog"===(null!==(t=c.mode)&&void 0!==t?t:this.data.mode)?"dialog":"popover",x=null!==(e=c.showOverlay)&&void 0!==e?e:this.data.showOverlay;if(this.setData({nonOverlay:!x,modeType:u}),r!==l||p!==h)if("popover"===u){const t=yield c.element();if(!t)return;const e=rpx2px(null!==(i=c.highlightPadding)&&void 0!==i?i:this.data.highlightPadding),o={top:`${t.top-e}px`,right:`${systemInfo.windowWidth-t.right-e}px`,left:`${t.left-e}px`,width:`${t.width+2*e}px`,height:`${t.height+2*e}px`};this.setData({_steps:this.data.steps,_current:this.data.current,visible:!0,referenceStyle:styles(o),title:null!==(s=c.title)&&void 0!==s?s:"",body:null!==(a=c.body)&&void 0!==a?a:"",buttonProps:this.buttonProps(c,"popover")});const n=yield this.placementOffset(c,o);this.setData({popoverStyle:n})}else this.setData({_steps:this.data.steps,_current:this.data.current,visible:!0,title:null!==(o=c.title)&&void 0!==o?o:"",body:null!==(n=c.body)&&void 0!==n?n:"",buttonProps:this.buttonProps(c,"dialog")})}))},placementOffset({placement:t,offset:e},i){var s,a;return __awaiter(this,void 0,void 0,(function*(){yield nextTick();const o=yield getRect(this,`.${name}__container`),n=null===(a=(s=this._getPlacement)[t])||void 0===a?void 0:a.call(s,o,i,e);return styles(Object.assign({position:"absolute"},n))}))},buttonProps(t,e){var i,s,a,o;let n=null!==(i=t.skipButtonProps)&&void 0!==i?i:this.data.skipButtonProps;const r="popover"===e?"extra-small":"medium";n=Object.assign(Object.assign({theme:"light",content:"跳过",size:r},n),{tClass:`${prefix}-class-skip ${name}__button ${(null==n?void 0:n.class)||""}`,type:"skip"});let p=null!==(s=t.nextButtonProps)&&void 0!==s?s:this.data.nextButtonProps;p=Object.assign(Object.assign({theme:"primary",content:"下一步",size:r},p),{tClass:`${prefix}-class-next ${name}__button ${(null==p?void 0:p.class)||""}`,type:"next"}),p=Object.assign(Object.assign({},p),{content:this.buttonContent(p)});let l=null!==(a=t.backButtonProps)&&void 0!==a?a:this.data.backButtonProps;l=Object.assign(Object.assign({theme:"light",content:"返回",size:r},l),{tClass:`${prefix}-class-back ${name}__button ${(null==l?void 0:l.class)||""}`,type:"back"});let h=null!==(o=t.finishButtonProps)&&void 0!==o?o:this.data.finishButtonProps;return h=Object.assign(Object.assign({theme:"primary",content:"完成",size:r},h),{tClass:`${prefix}-class-finish ${name}__button ${(null==h?void 0:h.class)||""}`,type:"finish"}),h=Object.assign(Object.assign({},h),{content:this.buttonContent(h)}),{skipButton:n,nextButton:p,backButton:l,finishButton:h}},renderCounter(){const{steps:t,current:e,counter:i}=this.data,s=t.length,a=e+1,o=isFunction(i)?i({total:s,current:a}):i;return i?o:`(${a}/${s})`},buttonContent(t){const{hideCounter:e}=this.data;return`${t.content.replace(/ \(.*?\)/,"")} ${e?"":this.renderCounter()}`},onTplButtonTap(t){const{type:e}=t.target.dataset,i={e:t,current:this.data.current,total:this.data.steps.length};switch(e){case"next":this.triggerEvent("next-step-click",Object.assign({next:this.data.current+1},i)),this.setData({current:this.data.current+1});break;case"skip":this.triggerEvent("skip",i),this.setData({current:-1});break;case"back":this.triggerEvent("back",i),this.setData({current:0});break;case"finish":this.triggerEvent("finish",i),this.setData({current:-1})}this.triggerEvent("change",{current:this.data.current})},getPlacement(){const t=rpx2px(32),e=t=>unitConvert(isNumber(null==t?void 0:t[0])?`${null==t?void 0:t[0]}rpx`:(null==t?void 0:t[0])||0),i=t=>unitConvert(isNumber(null==t?void 0:t[1])?`${null==t?void 0:t[1]}rpx`:(null==t?void 0:t[1])||0),s=t=>parseFloat(t.left),a=t=>parseFloat(t.right),o=t=>parseFloat(t.top),n=t=>parseFloat(t.height),r=t=>parseFloat(t.width);return{center:(a,p,l)=>({top:`${Math.max(n(p)+o(p)+t+i(l),1)}px`,left:`${Math.max(r(p)/2+s(p)-a.width/2+e(l),1)}px`}),bottom:(a,p,l)=>({top:`${Math.max(n(p)+o(p)+t+i(l),1)}px`,left:`${Math.max(r(p)/2+s(p)-a.width/2+e(l),1)}px`}),"bottom-left":(a,r,p)=>({top:`${Math.max(n(r)+o(r)+t+i(p),1)}px`,left:`${Math.max(s(r)+e(p),1)}px`}),"bottom-right":(s,r,p)=>({top:`${Math.max(n(r)+o(r)+t+i(p),1)}px`,right:`${Math.max(a(r)-e(p),1)}px`}),left:(s,p,l)=>({top:`${Math.max(n(p)/2+o(p)-s.height/2+i(l),1)}px`,right:`${Math.max(r(p)+a(p)+t-e(l),1)}px`}),"left-top":(s,n,p)=>({top:`${Math.max(o(n)+i(p),1)}px`,right:`${Math.max(r(n)+a(n)+t-e(p),1)}px`}),"left-bottom":(s,p,l)=>({top:`${Math.max(o(p)+n(p)-s.height-i(l),1)}px`,right:`${Math.max(r(p)+a(p)+t-e(l),1)}px`}),right:(a,p,l)=>({top:`${Math.max(n(p)/2+o(p)-a.height/2+i(l),1)}px`,left:`${Math.max(s(p)+r(p)+t+e(l),1)}px`}),"right-top":(a,n,p)=>({top:`${Math.max(o(n)+i(p),1)}px`,left:`${Math.max(s(n)+r(n)+t+e(p),1)}px`}),"right-bottom":(a,p,l)=>({top:`${Math.max(o(p)+n(p)-a.height-i(l),1)}px`,left:`${Math.max(s(p)+r(p)+t+e(l),1)}px`}),top:(a,n,p)=>({top:`${Math.max(o(n)-a.height-t+i(p),1)}px`,left:`${Math.max(r(n)/2+s(n)-a.width/2+e(p),1)}px`}),"top-left":(a,n,r)=>({top:`${Math.max(o(n)-a.height-t+i(r),1)}px`,left:`${Math.max(s(n)+e(r),1)}px`}),"top-right":(s,n,r)=>({top:`${Math.max(o(n)-s.height-t+i(r),1)}px`,right:`${Math.max(a(n)-e(r),1)}px`})}}}}};Guide=__decorate([wxComponent()],Guide);export default Guide;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.json b/miniprogram_npm/tdesign-miniprogram/guide/guide.json
new file mode 100644
index 0000000..3abf592
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-overlay":"../overlay/overlay","t-button":"../button/button","t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.wxml b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxml
new file mode 100644
index 0000000..0a6067a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/guide.wxss b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxss
new file mode 100644
index 0000000..e1e5ebf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/guide.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-guide__reference{position:absolute;box-shadow:0 0 0 0 var(--td-guide-reference-mask-color,var(--td-font-gray-2,rgba(0,0,0,.6))),var(--td-guide-reference-mask-color,var(--td-font-gray-2,rgba(0,0,0,.6))) 0 0 0 5000px;border-radius:var(--td-guide-reference-border-radius,var(--td-radius-default,12rpx));transition:all var(--td-anim-duration-base,.2s) var(--td-anim-time-fn-ease-out,cubic-bezier(0,0,.15,1))}.t-guide__reference--nonoverlay{box-shadow:none;border:var(--td-guide-reference-border,4rpx solid var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-guide__container{display:inline-block}.t-guide__container--popover{background-color:var(--td-guide-popover-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border:var(--td-guide-popover-border,2rpx solid var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));border-radius:var(--td-guide-popover-border-radius,var(--td-radius-large,18rpx));box-shadow:var(--td-guide-popover-shadow,var(--td-shadow-3,0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08)));padding:var(--td-guide-popover-padding,var(--td-spacer-2,32rpx));min-width:var(--td-guide-popover-min-width,480rpx);max-width:var(--td-guide-popover-max-width,540rpx)}.t-guide__container--dialog{background-color:var(--td-guide-popover-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border-radius:var(--td-guide-dialog-border-radius,var(--td-radius-extra-large,24rpx));padding:var(--td-guide-dialog-padding,var(--td-spacer-3,48rpx) 0);width:var(--td-guide-dialog-width,622rpx)}.t-guide__title--popover{text-align:var(--td-guide-popover-title-text-align,left);color:var(--td-guide-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-guide-popover-title-font-size,var(--td-font-size-m,32rpx));font-weight:var(--td-guide-title-font-weight,600);line-height:var(--td-guide-popover-title-line-height,48rpx)}.t-guide__title--dialog{text-align:var(--td-guide-dialog-title-text-align,center);color:var(--td-guide-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-guide-dialog-title-font-size,36rpx);font-weight:var(--td-guide-title-font-weight,600);line-height:var(--td-guide-dialog-title-line-height,52rpx)}.t-guide__body--popover{margin-top:var(--td-guide-popover-body-margin-top,8rpx);text-align:var(--td-guide-popover-body-text-align,left);color:var(--td-guide-body-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-guide-popover-body-font-size,var(--td-font-size-base,28rpx));font-weight:var(--td-guide-body-font-weight,400);line-height:var(--td-guide-popover-body-line-height,44rpx)}.t-guide__body--dialog{margin-top:var(--td-guide-dialog-body-margin-top,16rpx);text-align:var(--td-guide-dialog-body-text-align,center);color:var(--td-guide-body-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-guide-dialog-body-font-size,var(--td-font-size-m,32rpx));font-weight:var(--td-guide-body-font-weight,400);line-height:var(--td-guide-dialog-body-line-height,48rpx)}.t-guide__footer{text-align:var(--td-guide-footer-text-align,right);margin-top:var(--td-guide-footer-margin-top,var(--td-spacer-3,48rpx))}.t-guide__footer .t-guide__button+.t-guide__button{margin-left:var(--td-guide-footer-button-space,var(--td-spacer-1,24rpx))}.t-guide__footer--dialog{display:flex;padding:var(--td-guide-dialog-footer-button-padding,0 var(--td-spacer-3,48rpx))}.t-guide__footer--dialog .t-guide__button:last-child{flex-grow:1}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/props.d.ts b/miniprogram_npm/tdesign-miniprogram/guide/props.d.ts
new file mode 100644
index 0000000..208d046
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/props.d.ts
@@ -0,0 +1,3 @@
+import { TdGuideProps } from './type';
+declare const props: TdGuideProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/props.js b/miniprogram_npm/tdesign-miniprogram/guide/props.js
new file mode 100644
index 0000000..0604e19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/props.js
@@ -0,0 +1 @@
+const props={backButtonProps:{type:Object},counter:{type:null},current:{type:Number,value:null},defaultCurrent:{type:Number},finishButtonProps:{type:Object},hideBack:{type:Boolean,value:!1},hideCounter:{type:Boolean,value:!1},hideSkip:{type:Boolean,value:!1},highlightPadding:{type:Number,value:16},mode:{type:String,value:"popover"},nextButtonProps:{type:Object},showOverlay:{type:Boolean,value:!0},skipButtonProps:{type:Object},steps:{type:Array},usingCustomNavbar:{type:Boolean,value:!1},zIndex:{type:Number,value:999999}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/type.d.ts b/miniprogram_npm/tdesign-miniprogram/guide/type.d.ts
new file mode 100644
index 0000000..54b7bdb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/type.d.ts
@@ -0,0 +1,87 @@
+///
+import { ButtonProps } from '../button/index';
+export interface TdGuideProps {
+ backButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ counter?: {
+ type: StringConstructor;
+ value?: string | ((params: {
+ total: number;
+ current: number;
+ }) => string);
+ };
+ current?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ defaultCurrent?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ finishButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ hideBack?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hideCounter?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hideSkip?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ highlightPadding?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ mode?: {
+ type: StringConstructor;
+ value?: 'popover' | 'dialog';
+ };
+ nextButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ skipButtonProps?: {
+ type: ObjectConstructor;
+ value?: ButtonProps;
+ };
+ steps?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
+export interface GuideStep {
+ backButtonProps?: ButtonProps;
+ body?: string;
+ element: StepElement;
+ finishButtonProps?: ButtonProps;
+ highlightPadding?: number;
+ mode?: 'popover' | 'dialog';
+ nextButtonProps?: ButtonProps;
+ offset?: Array;
+ placement?: StepPopoverPlacement;
+ showOverlay?: boolean;
+ skipButtonProps?: ButtonProps;
+ title?: string;
+}
+export declare type StepElement = () => Promise;
+export declare type StepPopoverPlacement = 'top' | 'left' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom' | 'center';
diff --git a/miniprogram_npm/tdesign-miniprogram/guide/type.js b/miniprogram_npm/tdesign-miniprogram/guide/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/guide/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.d.ts b/miniprogram_npm/tdesign-miniprogram/icon/icon.d.ts
new file mode 100644
index 0000000..b70696a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.d.ts
@@ -0,0 +1,18 @@
+import { SuperComponent } from '../common/src/index';
+export default class Icon extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdIconProps;
+ data: {
+ componentPrefix: string;
+ classPrefix: string;
+ isImage: boolean;
+ iconStyle: any;
+ };
+ observers: {
+ 'name, color, size, style'(): void;
+ };
+ methods: {
+ onTap(event: any): void;
+ setIconStyle(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.js b/miniprogram_npm/tdesign-miniprogram/icon/icon.js
new file mode 100644
index 0000000..0259367
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{styles,addUnit,getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-icon`;let Icon=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={componentPrefix:prefix,classPrefix:name,isImage:!1,iconStyle:void 0},this.observers={"name, color, size, style"(){this.setIconStyle()}},this.methods={onTap(t){this.triggerEvent("click",t.detail)},setIconStyle(){const{name:t,color:e,size:o,classPrefix:i}=this.data,s=-1!==t.indexOf("/"),n=addUnit(o),r=e?{color:e}:{},c=o?{"font-size":n}:{},a=Object.assign(Object.assign({},r),c);this.setData({isImage:s},(()=>__awaiter(this,void 0,void 0,(function*(){if(s){let t=n;t||(yield getRect(this,`.${i}`).then((e=>{t=addUnit(null==e?void 0:e.height)})).catch((()=>{}))),a.width=t,a.height=t}this.setData({iconStyle:`${styles(a)}`})}))))}}}};Icon=__decorate([wxComponent()],Icon);export default Icon;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.json b/miniprogram_npm/tdesign-miniprogram/icon/icon.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.wxml b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxml
new file mode 100644
index 0000000..4b635a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/icon.wxss b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxss
new file mode 100644
index 0000000..3818614
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/icon.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';@font-face{font-family:t;src:url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.eot),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.eot?#iefix) format('ded-opentype'),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.woff) format('woff'),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.ttf) format('truetype'),url(https://tdesign.gtimg.com/icon/0.3.2/fonts/t.svg) format('svg');font-weight:400;font-style:normal}.t-icon--image{width:100%;height:100%}.t-icon__image{vertical-align:top;width:100%;height:100%}.t-icon-base{font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;text-align:center;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.t-icon{font-family:t!important}.t-icon-accessibility-filled:before{content:'\E001'}.t-icon-accessibility:before{content:'\E002'}.t-icon-activity-filled:before{content:'\E003'}.t-icon-activity:before{content:'\E004'}.t-icon-add-and-subtract:before{content:'\E005'}.t-icon-add-circle-filled:before{content:'\E006'}.t-icon-add-circle:before{content:'\E007'}.t-icon-add-rectangle-filled:before{content:'\E008'}.t-icon-add-rectangle:before{content:'\E009'}.t-icon-add:before{content:'\E00A'}.t-icon-address-book-filled:before{content:'\E00B'}.t-icon-address-book:before{content:'\E00C'}.t-icon-adjustment-filled:before{content:'\E00D'}.t-icon-adjustment:before{content:'\E00E'}.t-icon-airplay-wave-filled:before{content:'\E00F'}.t-icon-airplay-wave:before{content:'\E010'}.t-icon-alarm-add-filled:before{content:'\E011'}.t-icon-alarm-add:before{content:'\E012'}.t-icon-alarm-filled:before{content:'\E013'}.t-icon-alarm-off-filled:before{content:'\E014'}.t-icon-alarm-off:before{content:'\E015'}.t-icon-alarm:before{content:'\E016'}.t-icon-align-top:before{content:'\E017'}.t-icon-align-vertical:before{content:'\E018'}.t-icon-alpha:before{content:'\E019'}.t-icon-analytics-filled:before{content:'\E01A'}.t-icon-analytics:before{content:'\E01B'}.t-icon-anchor:before{content:'\E01C'}.t-icon-angry-filled:before{content:'\E01D'}.t-icon-angry:before{content:'\E01E'}.t-icon-animation-1-filled:before{content:'\E01F'}.t-icon-animation-1:before{content:'\E020'}.t-icon-animation-filled:before{content:'\E021'}.t-icon-animation:before{content:'\E022'}.t-icon-anticlockwise-filled:before{content:'\E023'}.t-icon-anticlockwise:before{content:'\E024'}.t-icon-api:before{content:'\E025'}.t-icon-app-filled:before{content:'\E026'}.t-icon-app:before{content:'\E027'}.t-icon-apple-filled:before{content:'\E028'}.t-icon-apple:before{content:'\E029'}.t-icon-application-filled:before{content:'\E02A'}.t-icon-application:before{content:'\E02B'}.t-icon-architecture-hui-style-filled:before{content:'\E02C'}.t-icon-architecture-hui-style:before{content:'\E02D'}.t-icon-archway-1-filled:before{content:'\E02E'}.t-icon-archway-1:before{content:'\E02F'}.t-icon-archway-filled:before{content:'\E030'}.t-icon-archway:before{content:'\E031'}.t-icon-arrow-down-circle-filled:before{content:'\E032'}.t-icon-arrow-down-circle:before{content:'\E033'}.t-icon-arrow-down-rectangle-filled:before{content:'\E034'}.t-icon-arrow-down-rectangle:before{content:'\E035'}.t-icon-arrow-down:before{content:'\E036'}.t-icon-arrow-left-circle-filled:before{content:'\E037'}.t-icon-arrow-left-circle:before{content:'\E038'}.t-icon-arrow-left-down-circle-filled:before{content:'\E039'}.t-icon-arrow-left-down-circle:before{content:'\E03A'}.t-icon-arrow-left-down:before{content:'\E03B'}.t-icon-arrow-left-right-1:before{content:'\E03C'}.t-icon-arrow-left-right-2:before{content:'\E03D'}.t-icon-arrow-left-right-3:before{content:'\E03E'}.t-icon-arrow-left-right-circle-filled:before{content:'\E03F'}.t-icon-arrow-left-right-circle:before{content:'\E040'}.t-icon-arrow-left-up-circle-filled:before{content:'\E041'}.t-icon-arrow-left-up-circle:before{content:'\E042'}.t-icon-arrow-left-up:before{content:'\E043'}.t-icon-arrow-left:before{content:'\E044'}.t-icon-arrow-right-circle-filled:before{content:'\E045'}.t-icon-arrow-right-circle:before{content:'\E046'}.t-icon-arrow-right-down-circle-filled:before{content:'\E047'}.t-icon-arrow-right-down-circle:before{content:'\E048'}.t-icon-arrow-right-down:before{content:'\E049'}.t-icon-arrow-right-up-circle-filled:before{content:'\E04A'}.t-icon-arrow-right-up-circle:before{content:'\E04B'}.t-icon-arrow-right-up:before{content:'\E04C'}.t-icon-arrow-right:before{content:'\E04D'}.t-icon-arrow-triangle-down-filled:before{content:'\E04E'}.t-icon-arrow-triangle-down:before{content:'\E04F'}.t-icon-arrow-triangle-up-filled:before{content:'\E050'}.t-icon-arrow-triangle-up:before{content:'\E051'}.t-icon-arrow-up-circle-filled:before{content:'\E052'}.t-icon-arrow-up-circle:before{content:'\E053'}.t-icon-arrow-up-down-1:before{content:'\E054'}.t-icon-arrow-up-down-2:before{content:'\E055'}.t-icon-arrow-up-down-3:before{content:'\E056'}.t-icon-arrow-up-down-circle-filled:before{content:'\E057'}.t-icon-arrow-up-down-circle:before{content:'\E058'}.t-icon-arrow-up:before{content:'\E059'}.t-icon-artboard:before{content:'\E05A'}.t-icon-article-filled:before{content:'\E05B'}.t-icon-article:before{content:'\E05C'}.t-icon-assignment-checked-filled:before{content:'\E05D'}.t-icon-assignment-checked:before{content:'\E05E'}.t-icon-assignment-code-filled:before{content:'\E05F'}.t-icon-assignment-code:before{content:'\E060'}.t-icon-assignment-error-filled:before{content:'\E061'}.t-icon-assignment-error:before{content:'\E062'}.t-icon-assignment-filled:before{content:'\E063'}.t-icon-assignment-user-filled:before{content:'\E064'}.t-icon-assignment-user:before{content:'\E065'}.t-icon-assignment:before{content:'\E066'}.t-icon-attach:before{content:'\E067'}.t-icon-attic-1-filled:before{content:'\E068'}.t-icon-attic-1:before{content:'\E069'}.t-icon-attic-filled:before{content:'\E06A'}.t-icon-attic:before{content:'\E06B'}.t-icon-audio-filled:before{content:'\E06C'}.t-icon-audio:before{content:'\E06D'}.t-icon-awkward-filled:before{content:'\E06E'}.t-icon-awkward:before{content:'\E06F'}.t-icon-backtop-rectangle-filled:before{content:'\E070'}.t-icon-backtop-rectangle:before{content:'\E071'}.t-icon-backtop:before{content:'\E072'}.t-icon-backup-filled:before{content:'\E073'}.t-icon-backup:before{content:'\E074'}.t-icon-backward-filled:before{content:'\E075'}.t-icon-backward:before{content:'\E076'}.t-icon-bad-laugh-filled:before{content:'\E077'}.t-icon-bad-laugh:before{content:'\E078'}.t-icon-bamboo-shoot-filled:before{content:'\E079'}.t-icon-bamboo-shoot:before{content:'\E07A'}.t-icon-banana-filled:before{content:'\E07B'}.t-icon-banana:before{content:'\E07C'}.t-icon-barbecue-filled:before{content:'\E07D'}.t-icon-barbecue:before{content:'\E07E'}.t-icon-barcode-1:before{content:'\E07F'}.t-icon-barcode:before{content:'\E080'}.t-icon-base-station:before{content:'\E081'}.t-icon-battery-add-filled:before{content:'\E082'}.t-icon-battery-add:before{content:'\E083'}.t-icon-battery-charging-filled:before{content:'\E084'}.t-icon-battery-charging:before{content:'\E085'}.t-icon-battery-filled:before{content:'\E086'}.t-icon-battery-low-filled:before{content:'\E087'}.t-icon-battery-low:before{content:'\E088'}.t-icon-battery:before{content:'\E089'}.t-icon-bean-filled:before{content:'\E08A'}.t-icon-bean:before{content:'\E08B'}.t-icon-beer-filled:before{content:'\E08C'}.t-icon-beer:before{content:'\E08D'}.t-icon-beta:before{content:'\E08E'}.t-icon-bifurcate-filled:before{content:'\E08F'}.t-icon-bifurcate:before{content:'\E090'}.t-icon-bill-filled:before{content:'\E091'}.t-icon-bill:before{content:'\E092'}.t-icon-bluetooth:before{content:'\E093'}.t-icon-bone-filled:before{content:'\E094'}.t-icon-bone:before{content:'\E095'}.t-icon-book-filled:before{content:'\E096'}.t-icon-book-open-filled:before{content:'\E097'}.t-icon-book-open:before{content:'\E098'}.t-icon-book-unknown-filled:before{content:'\E099'}.t-icon-book-unknown:before{content:'\E09A'}.t-icon-book:before{content:'\E09B'}.t-icon-bookmark-add-filled:before{content:'\E09C'}.t-icon-bookmark-add:before{content:'\E09D'}.t-icon-bookmark-checked-filled:before{content:'\E09E'}.t-icon-bookmark-checked:before{content:'\E09F'}.t-icon-bookmark-double-filled:before{content:'\E0A0'}.t-icon-bookmark-double:before{content:'\E0A1'}.t-icon-bookmark-filled:before{content:'\E0A2'}.t-icon-bookmark-minus-filled:before{content:'\E0A3'}.t-icon-bookmark-minus:before{content:'\E0A4'}.t-icon-bookmark:before{content:'\E0A5'}.t-icon-braces:before{content:'\E0A6'}.t-icon-brackets:before{content:'\E0A7'}.t-icon-bread-filled:before{content:'\E0A8'}.t-icon-bread:before{content:'\E0A9'}.t-icon-bridge-1-filled:before{content:'\E0AA'}.t-icon-bridge-1:before{content:'\E0AB'}.t-icon-bridge-2-filled:before{content:'\E0AC'}.t-icon-bridge-2:before{content:'\E0AD'}.t-icon-bridge-3:before{content:'\E0AE'}.t-icon-bridge-4:before{content:'\E0AF'}.t-icon-bridge-5-filled:before{content:'\E0B0'}.t-icon-bridge-5:before{content:'\E0B1'}.t-icon-bridge-6-filled:before{content:'\E0B2'}.t-icon-bridge-6:before{content:'\E0B3'}.t-icon-bridge:before{content:'\E0B4'}.t-icon-brightness-1-filled:before{content:'\E0B5'}.t-icon-brightness-1:before{content:'\E0B6'}.t-icon-brightness-filled:before{content:'\E0B7'}.t-icon-brightness:before{content:'\E0B8'}.t-icon-broccoli-filled:before{content:'\E0B9'}.t-icon-broccoli:before{content:'\E0BA'}.t-icon-browse-filled:before{content:'\E0BB'}.t-icon-browse-gallery-filled:before{content:'\E0BC'}.t-icon-browse-gallery:before{content:'\E0BD'}.t-icon-browse-off-filled:before{content:'\E0BE'}.t-icon-browse-off:before{content:'\E0BF'}.t-icon-browse:before{content:'\E0C0'}.t-icon-brush-filled:before{content:'\E0C1'}.t-icon-brush:before{content:'\E0C2'}.t-icon-bug-filled:before{content:'\E0C3'}.t-icon-bug-report-filled:before{content:'\E0C4'}.t-icon-bug-report:before{content:'\E0C5'}.t-icon-bug:before{content:'\E0C6'}.t-icon-building-1-filled:before{content:'\E0C7'}.t-icon-building-1:before{content:'\E0C8'}.t-icon-building-2-filled:before{content:'\E0C9'}.t-icon-building-2:before{content:'\E0CA'}.t-icon-building-3-filled:before{content:'\E0CB'}.t-icon-building-3:before{content:'\E0CC'}.t-icon-building-4-filled:before{content:'\E0CD'}.t-icon-building-4:before{content:'\E0CE'}.t-icon-building-5-filled:before{content:'\E0CF'}.t-icon-building-5:before{content:'\E0D0'}.t-icon-building-filled:before{content:'\E0D1'}.t-icon-building:before{content:'\E0D2'}.t-icon-bulletpoint:before{content:'\E0D3'}.t-icon-button-filled:before{content:'\E0D4'}.t-icon-button:before{content:'\E0D5'}.t-icon-cabbage-filled:before{content:'\E0D6'}.t-icon-cabbage:before{content:'\E0D7'}.t-icon-cake-filled:before{content:'\E0D8'}.t-icon-cake:before{content:'\E0D9'}.t-icon-calculation-1-filled:before{content:'\E0DA'}.t-icon-calculation-1:before{content:'\E0DB'}.t-icon-calculation:before{content:'\E0DC'}.t-icon-calculator-1:before{content:'\E0DD'}.t-icon-calculator-filled:before{content:'\E0DE'}.t-icon-calculator:before{content:'\E0DF'}.t-icon-calendar-1-filled:before{content:'\E0E0'}.t-icon-calendar-1:before{content:'\E0E1'}.t-icon-calendar-2-filled:before{content:'\E0E2'}.t-icon-calendar-2:before{content:'\E0E3'}.t-icon-calendar-edit-filled:before{content:'\E0E4'}.t-icon-calendar-edit:before{content:'\E0E5'}.t-icon-calendar-event-filled:before{content:'\E0E6'}.t-icon-calendar-event:before{content:'\E0E7'}.t-icon-calendar-filled:before{content:'\E0E8'}.t-icon-calendar:before{content:'\E0E9'}.t-icon-call-1-filled:before{content:'\E0EA'}.t-icon-call-1:before{content:'\E0EB'}.t-icon-call-cancel-filled:before{content:'\E0EC'}.t-icon-call-cancel:before{content:'\E0ED'}.t-icon-call-filled:before{content:'\E0EE'}.t-icon-call-forwarded-filled:before{content:'\E0EF'}.t-icon-call-forwarded:before{content:'\E0F0'}.t-icon-call-incoming-filled:before{content:'\E0F1'}.t-icon-call-incoming:before{content:'\E0F2'}.t-icon-call-off-filled:before{content:'\E0F3'}.t-icon-call-off:before{content:'\E0F4'}.t-icon-call:before{content:'\E0F5'}.t-icon-calm-1-filled:before{content:'\E0F6'}.t-icon-calm-1:before{content:'\E0F7'}.t-icon-calm-filled:before{content:'\E0F8'}.t-icon-calm:before{content:'\E0F9'}.t-icon-camera-1-filled:before{content:'\E0FA'}.t-icon-camera-1:before{content:'\E0FB'}.t-icon-camera-2-filled:before{content:'\E0FC'}.t-icon-camera-2:before{content:'\E0FD'}.t-icon-camera-filled:before{content:'\E0FE'}.t-icon-camera-off-filled:before{content:'\E0FF'}.t-icon-camera-off:before{content:'\E100'}.t-icon-camera:before{content:'\E101'}.t-icon-candy-filled:before{content:'\E102'}.t-icon-candy:before{content:'\E103'}.t-icon-card-filled:before{content:'\E104'}.t-icon-card:before{content:'\E105'}.t-icon-cardmembership-filled:before{content:'\E106'}.t-icon-cardmembership:before{content:'\E107'}.t-icon-caret-down-small:before{content:'\E108'}.t-icon-caret-down:before{content:'\E109'}.t-icon-caret-left-small:before{content:'\E10A'}.t-icon-caret-left:before{content:'\E10B'}.t-icon-caret-right-small:before{content:'\E10C'}.t-icon-caret-right:before{content:'\E10D'}.t-icon-caret-up-small:before{content:'\E10E'}.t-icon-caret-up:before{content:'\E10F'}.t-icon-cart-add-filled:before{content:'\E110'}.t-icon-cart-add:before{content:'\E111'}.t-icon-cart-filled:before{content:'\E112'}.t-icon-cart:before{content:'\E113'}.t-icon-cast-filled:before{content:'\E114'}.t-icon-cast:before{content:'\E115'}.t-icon-castle-1-filled:before{content:'\E116'}.t-icon-castle-1:before{content:'\E117'}.t-icon-castle-2-filled:before{content:'\E118'}.t-icon-castle-2:before{content:'\E119'}.t-icon-castle-3-filled:before{content:'\E11A'}.t-icon-castle-3:before{content:'\E11B'}.t-icon-castle-4-filled:before{content:'\E11C'}.t-icon-castle-4:before{content:'\E11D'}.t-icon-castle-5-filled:before{content:'\E11E'}.t-icon-castle-5:before{content:'\E11F'}.t-icon-castle-6-filled:before{content:'\E120'}.t-icon-castle-6:before{content:'\E121'}.t-icon-castle-7-filled:before{content:'\E122'}.t-icon-castle-7:before{content:'\E123'}.t-icon-castle-filled:before{content:'\E124'}.t-icon-castle:before{content:'\E125'}.t-icon-cat-filled:before{content:'\E126'}.t-icon-cat:before{content:'\E127'}.t-icon-catalog-filled:before{content:'\E128'}.t-icon-catalog:before{content:'\E129'}.t-icon-cd-filled:before{content:'\E12A'}.t-icon-cd:before{content:'\E12B'}.t-icon-celsius:before{content:'\E12C'}.t-icon-center-focus-strong-filled:before{content:'\E12D'}.t-icon-center-focus-strong:before{content:'\E12E'}.t-icon-centimeter:before{content:'\E12F'}.t-icon-certificate-1-filled:before{content:'\E130'}.t-icon-certificate-1:before{content:'\E131'}.t-icon-certificate-filled:before{content:'\E132'}.t-icon-certificate:before{content:'\E133'}.t-icon-chart-3d-filled:before{content:'\E134'}.t-icon-chart-3d:before{content:'\E135'}.t-icon-chart-add-filled:before{content:'\E136'}.t-icon-chart-add:before{content:'\E137'}.t-icon-chart-analytics:before{content:'\E138'}.t-icon-chart-area-filled:before{content:'\E139'}.t-icon-chart-area-multi-filled:before{content:'\E13A'}.t-icon-chart-area-multi:before{content:'\E13B'}.t-icon-chart-area:before{content:'\E13C'}.t-icon-chart-bar-filled:before{content:'\E13D'}.t-icon-chart-bar:before{content:'\E13E'}.t-icon-chart-bubble-filled:before{content:'\E13F'}.t-icon-chart-bubble:before{content:'\E140'}.t-icon-chart-column-filled:before{content:'\E141'}.t-icon-chart-column:before{content:'\E142'}.t-icon-chart-combo-filled:before{content:'\E143'}.t-icon-chart-combo:before{content:'\E144'}.t-icon-chart-filled:before{content:'\E145'}.t-icon-chart-line-data-1:before{content:'\E146'}.t-icon-chart-line-data:before{content:'\E147'}.t-icon-chart-line-multi:before{content:'\E148'}.t-icon-chart-line:before{content:'\E149'}.t-icon-chart-maximum:before{content:'\E14A'}.t-icon-chart-median:before{content:'\E14B'}.t-icon-chart-minimum:before{content:'\E14C'}.t-icon-chart-pie-filled:before{content:'\E14D'}.t-icon-chart-pie:before{content:'\E14E'}.t-icon-chart-radar-filled:before{content:'\E14F'}.t-icon-chart-radar:before{content:'\E150'}.t-icon-chart-radial:before{content:'\E151'}.t-icon-chart-ring-1-filled:before{content:'\E152'}.t-icon-chart-ring-1:before{content:'\E153'}.t-icon-chart-ring-filled:before{content:'\E154'}.t-icon-chart-ring:before{content:'\E155'}.t-icon-chart-scatter:before{content:'\E156'}.t-icon-chart-stacked-filled:before{content:'\E157'}.t-icon-chart-stacked:before{content:'\E158'}.t-icon-chart:before{content:'\E159'}.t-icon-chat-add-filled:before{content:'\E15A'}.t-icon-chat-add:before{content:'\E15B'}.t-icon-chat-bubble-1-filled:before{content:'\E15C'}.t-icon-chat-bubble-1:before{content:'\E15D'}.t-icon-chat-bubble-add-filled:before{content:'\E15E'}.t-icon-chat-bubble-add:before{content:'\E15F'}.t-icon-chat-bubble-error-filled:before{content:'\E160'}.t-icon-chat-bubble-error:before{content:'\E161'}.t-icon-chat-bubble-filled:before{content:'\E162'}.t-icon-chat-bubble-help-filled:before{content:'\E163'}.t-icon-chat-bubble-help:before{content:'\E164'}.t-icon-chat-bubble-history-filled:before{content:'\E165'}.t-icon-chat-bubble-history:before{content:'\E166'}.t-icon-chat-bubble-locked-filled:before{content:'\E167'}.t-icon-chat-bubble-locked:before{content:'\E168'}.t-icon-chat-bubble-smile-filled:before{content:'\E169'}.t-icon-chat-bubble-smile:before{content:'\E16A'}.t-icon-chat-bubble:before{content:'\E16B'}.t-icon-chat-checked-filled:before{content:'\E16C'}.t-icon-chat-checked:before{content:'\E16D'}.t-icon-chat-clear-filled:before{content:'\E16E'}.t-icon-chat-clear:before{content:'\E16F'}.t-icon-chat-double-filled:before{content:'\E170'}.t-icon-chat-double:before{content:'\E171'}.t-icon-chat-error-filled:before{content:'\E172'}.t-icon-chat-error:before{content:'\E173'}.t-icon-chat-filled:before{content:'\E174'}.t-icon-chat-heart-filled:before{content:'\E175'}.t-icon-chat-heart:before{content:'\E176'}.t-icon-chat-message-filled:before{content:'\E177'}.t-icon-chat-message:before{content:'\E178'}.t-icon-chat-off-filled:before{content:'\E179'}.t-icon-chat-off:before{content:'\E17A'}.t-icon-chat-poll-filled:before{content:'\E17B'}.t-icon-chat-poll:before{content:'\E17C'}.t-icon-chat-setting-filled:before{content:'\E17D'}.t-icon-chat-setting:before{content:'\E17E'}.t-icon-chat:before{content:'\E17F'}.t-icon-check-circle-filled:before{content:'\E180'}.t-icon-check-circle:before{content:'\E181'}.t-icon-check-double:before{content:'\E182'}.t-icon-check-rectangle-filled:before{content:'\E183'}.t-icon-check-rectangle:before{content:'\E184'}.t-icon-check:before{content:'\E185'}.t-icon-cheese-filled:before{content:'\E186'}.t-icon-cheese:before{content:'\E187'}.t-icon-cherry-filled:before{content:'\E188'}.t-icon-cherry:before{content:'\E189'}.t-icon-chevron-down-circle-filled:before{content:'\E18A'}.t-icon-chevron-down-circle:before{content:'\E18B'}.t-icon-chevron-down-double-s:before{content:'\E18C'}.t-icon-chevron-down-double:before{content:'\E18D'}.t-icon-chevron-down-rectangle-filled:before{content:'\E18E'}.t-icon-chevron-down-rectangle:before{content:'\E18F'}.t-icon-chevron-down-s:before{content:'\E190'}.t-icon-chevron-down:before{content:'\E191'}.t-icon-chevron-left-circle-filled:before{content:'\E192'}.t-icon-chevron-left-circle:before{content:'\E193'}.t-icon-chevron-left-double-s:before{content:'\E194'}.t-icon-chevron-left-double:before{content:'\E195'}.t-icon-chevron-left-rectangle-filled:before{content:'\E196'}.t-icon-chevron-left-rectangle:before{content:'\E197'}.t-icon-chevron-left-s:before{content:'\E198'}.t-icon-chevron-left:before{content:'\E199'}.t-icon-chevron-right-circle-filled:before{content:'\E19A'}.t-icon-chevron-right-circle:before{content:'\E19B'}.t-icon-chevron-right-double-s:before{content:'\E19C'}.t-icon-chevron-right-double:before{content:'\E19D'}.t-icon-chevron-right-rectangle-filled:before{content:'\E19E'}.t-icon-chevron-right-rectangle:before{content:'\E19F'}.t-icon-chevron-right-s:before{content:'\E1A0'}.t-icon-chevron-right:before{content:'\E1A1'}.t-icon-chevron-up-circle-filled:before{content:'\E1A2'}.t-icon-chevron-up-circle:before{content:'\E1A3'}.t-icon-chevron-up-double-s:before{content:'\E1A4'}.t-icon-chevron-up-double:before{content:'\E1A5'}.t-icon-chevron-up-rectangle-filled:before{content:'\E1A6'}.t-icon-chevron-up-rectangle:before{content:'\E1A7'}.t-icon-chevron-up-s:before{content:'\E1A8'}.t-icon-chevron-up:before{content:'\E1A9'}.t-icon-chicken:before{content:'\E1AA'}.t-icon-chili-filled:before{content:'\E1AB'}.t-icon-chili:before{content:'\E1AC'}.t-icon-chimney-1-filled:before{content:'\E1AD'}.t-icon-chimney-1:before{content:'\E1AE'}.t-icon-chimney-2-filled:before{content:'\E1AF'}.t-icon-chimney-2:before{content:'\E1B0'}.t-icon-chimney-filled:before{content:'\E1B1'}.t-icon-chimney:before{content:'\E1B2'}.t-icon-chinese-cabbage-filled:before{content:'\E1B3'}.t-icon-chinese-cabbage:before{content:'\E1B4'}.t-icon-church-filled:before{content:'\E1B5'}.t-icon-church:before{content:'\E1B6'}.t-icon-circle-filled:before{content:'\E1B7'}.t-icon-circle:before{content:'\E1B8'}.t-icon-city-1-filled:before{content:'\E1B9'}.t-icon-city-1:before{content:'\E1BA'}.t-icon-city-10-filled:before{content:'\E1BB'}.t-icon-city-10:before{content:'\E1BC'}.t-icon-city-11-filled:before{content:'\E1BD'}.t-icon-city-11:before{content:'\E1BE'}.t-icon-city-12-filled:before{content:'\E1BF'}.t-icon-city-12:before{content:'\E1C0'}.t-icon-city-13-filled:before{content:'\E1C1'}.t-icon-city-13:before{content:'\E1C2'}.t-icon-city-14-filled:before{content:'\E1C3'}.t-icon-city-14:before{content:'\E1C4'}.t-icon-city-15-filled:before{content:'\E1C5'}.t-icon-city-15:before{content:'\E1C6'}.t-icon-city-2-filled:before{content:'\E1C7'}.t-icon-city-2:before{content:'\E1C8'}.t-icon-city-3-filled:before{content:'\E1C9'}.t-icon-city-3:before{content:'\E1CA'}.t-icon-city-4-filled:before{content:'\E1CB'}.t-icon-city-4:before{content:'\E1CC'}.t-icon-city-5-filled:before{content:'\E1CD'}.t-icon-city-5:before{content:'\E1CE'}.t-icon-city-6-filled:before{content:'\E1CF'}.t-icon-city-6:before{content:'\E1D0'}.t-icon-city-7-filled:before{content:'\E1D1'}.t-icon-city-7:before{content:'\E1D2'}.t-icon-city-8-filled:before{content:'\E1D3'}.t-icon-city-8:before{content:'\E1D4'}.t-icon-city-9-filled:before{content:'\E1D5'}.t-icon-city-9:before{content:'\E1D6'}.t-icon-city-ancient-1-filled:before{content:'\E1D7'}.t-icon-city-ancient-1:before{content:'\E1D8'}.t-icon-city-ancient-2-filled:before{content:'\E1D9'}.t-icon-city-ancient-2:before{content:'\E1DA'}.t-icon-city-ancient-filled:before{content:'\E1DB'}.t-icon-city-ancient:before{content:'\E1DC'}.t-icon-city-filled:before{content:'\E1DD'}.t-icon-city:before{content:'\E1DE'}.t-icon-clear-filled:before{content:'\E1DF'}.t-icon-clear-formatting-1-filled:before{content:'\E1E0'}.t-icon-clear-formatting-1:before{content:'\E1E1'}.t-icon-clear-formatting-filled:before{content:'\E1E2'}.t-icon-clear-formatting:before{content:'\E1E3'}.t-icon-clear:before{content:'\E1E4'}.t-icon-close-circle-filled:before{content:'\E1E5'}.t-icon-close-circle:before{content:'\E1E6'}.t-icon-close-octagon-filled:before{content:'\E1E7'}.t-icon-close-octagon:before{content:'\E1E8'}.t-icon-close-rectangle-filled:before{content:'\E1E9'}.t-icon-close-rectangle:before{content:'\E1EA'}.t-icon-close:before{content:'\E1EB'}.t-icon-cloud-download:before{content:'\E1EC'}.t-icon-cloud-filled:before{content:'\E1ED'}.t-icon-cloud-upload:before{content:'\E1EE'}.t-icon-cloud:before{content:'\E1EF'}.t-icon-cloudy-day-filled:before{content:'\E1F0'}.t-icon-cloudy-day:before{content:'\E1F1'}.t-icon-cloudy-night-filled:before{content:'\E1F2'}.t-icon-cloudy-night-rain-filled:before{content:'\E1F3'}.t-icon-cloudy-night-rain:before{content:'\E1F4'}.t-icon-cloudy-night:before{content:'\E1F5'}.t-icon-cloudy-rain-filled:before{content:'\E1F6'}.t-icon-cloudy-rain:before{content:'\E1F7'}.t-icon-cloudy-sunny-filled:before{content:'\E1F8'}.t-icon-cloudy-sunny:before{content:'\E1F9'}.t-icon-code-1:before{content:'\E1FA'}.t-icon-code-off:before{content:'\E1FB'}.t-icon-code:before{content:'\E1FC'}.t-icon-cola-filled:before{content:'\E1FD'}.t-icon-cola:before{content:'\E1FE'}.t-icon-collage-filled:before{content:'\E1FF'}.t-icon-collage:before{content:'\E200'}.t-icon-collection-filled:before{content:'\E201'}.t-icon-collection:before{content:'\E202'}.t-icon-color-invert-filled:before{content:'\E203'}.t-icon-color-invert:before{content:'\E204'}.t-icon-combination-filled:before{content:'\E205'}.t-icon-combination:before{content:'\E206'}.t-icon-command:before{content:'\E207'}.t-icon-compass-1-filled:before{content:'\E208'}.t-icon-compass-1:before{content:'\E209'}.t-icon-compass-filled:before{content:'\E20A'}.t-icon-compass:before{content:'\E20B'}.t-icon-component-breadcrumb-filled:before{content:'\E20C'}.t-icon-component-breadcrumb:before{content:'\E20D'}.t-icon-component-checkbox-filled:before{content:'\E20E'}.t-icon-component-checkbox:before{content:'\E20F'}.t-icon-component-divider-horizontal-filled:before{content:'\E210'}.t-icon-component-divider-horizontal:before{content:'\E211'}.t-icon-component-divider-vertical-filled:before{content:'\E212'}.t-icon-component-divider-vertical:before{content:'\E213'}.t-icon-component-dropdown-filled:before{content:'\E214'}.t-icon-component-dropdown:before{content:'\E215'}.t-icon-component-grid-filled:before{content:'\E216'}.t-icon-component-grid:before{content:'\E217'}.t-icon-component-input-filled:before{content:'\E218'}.t-icon-component-input:before{content:'\E219'}.t-icon-component-layout-filled:before{content:'\E21A'}.t-icon-component-layout:before{content:'\E21B'}.t-icon-component-radio:before{content:'\E21C'}.t-icon-component-space-filled:before{content:'\E21D'}.t-icon-component-space:before{content:'\E21E'}.t-icon-component-steps-filled:before{content:'\E21F'}.t-icon-component-steps:before{content:'\E220'}.t-icon-component-switch-filled:before{content:'\E221'}.t-icon-component-switch:before{content:'\E222'}.t-icon-constraint:before{content:'\E223'}.t-icon-contrast-1-filled:before{content:'\E224'}.t-icon-contrast-1:before{content:'\E225'}.t-icon-contrast-filled:before{content:'\E226'}.t-icon-contrast:before{content:'\E227'}.t-icon-control-platform-filled:before{content:'\E228'}.t-icon-control-platform:before{content:'\E229'}.t-icon-cooperate-filled:before{content:'\E22A'}.t-icon-cooperate:before{content:'\E22B'}.t-icon-coordinate-system-filled:before{content:'\E22C'}.t-icon-coordinate-system:before{content:'\E22D'}.t-icon-copy-filled:before{content:'\E22E'}.t-icon-copy:before{content:'\E22F'}.t-icon-copyright-filled:before{content:'\E230'}.t-icon-copyright:before{content:'\E231'}.t-icon-corn-filled:before{content:'\E232'}.t-icon-corn:before{content:'\E233'}.t-icon-coupon-filled:before{content:'\E234'}.t-icon-coupon:before{content:'\E235'}.t-icon-course-filled:before{content:'\E236'}.t-icon-course:before{content:'\E237'}.t-icon-cpu-filled:before{content:'\E238'}.t-icon-cpu:before{content:'\E239'}.t-icon-crack-filled:before{content:'\E23A'}.t-icon-crack:before{content:'\E23B'}.t-icon-creditcard-add-filled:before{content:'\E23C'}.t-icon-creditcard-add:before{content:'\E23D'}.t-icon-creditcard-filled:before{content:'\E23E'}.t-icon-creditcard-off-filled:before{content:'\E23F'}.t-icon-creditcard-off:before{content:'\E240'}.t-icon-creditcard:before{content:'\E241'}.t-icon-crooked-smile-filled:before{content:'\E242'}.t-icon-crooked-smile:before{content:'\E243'}.t-icon-cry-and-laugh-filled:before{content:'\E244'}.t-icon-cry-and-laugh:before{content:'\E245'}.t-icon-cry-loudly-filled:before{content:'\E246'}.t-icon-cry-loudly:before{content:'\E247'}.t-icon-css3-filled:before{content:'\E248'}.t-icon-css3:before{content:'\E249'}.t-icon-cucumber:before{content:'\E24A'}.t-icon-currency-exchange:before{content:'\E24B'}.t-icon-cursor-filled:before{content:'\E24C'}.t-icon-cursor:before{content:'\E24D'}.t-icon-curtain-filled:before{content:'\E24E'}.t-icon-curtain:before{content:'\E24F'}.t-icon-curve:before{content:'\E250'}.t-icon-cut-1:before{content:'\E251'}.t-icon-cut:before{content:'\E252'}.t-icon-dam-1-filled:before{content:'\E253'}.t-icon-dam-1:before{content:'\E254'}.t-icon-dam-2-filled:before{content:'\E255'}.t-icon-dam-2:before{content:'\E256'}.t-icon-dam-3-filled:before{content:'\E257'}.t-icon-dam-3:before{content:'\E258'}.t-icon-dam-4-filled:before{content:'\E259'}.t-icon-dam-4:before{content:'\E25A'}.t-icon-dam-5-filled:before{content:'\E25B'}.t-icon-dam-5:before{content:'\E25C'}.t-icon-dam-6-filled:before{content:'\E25D'}.t-icon-dam-6:before{content:'\E25E'}.t-icon-dam-7-filled:before{content:'\E25F'}.t-icon-dam-7:before{content:'\E260'}.t-icon-dam-filled:before{content:'\E261'}.t-icon-dam:before{content:'\E262'}.t-icon-dart-board-filled:before{content:'\E263'}.t-icon-dart-board:before{content:'\E264'}.t-icon-dashboard-1-filled:before{content:'\E265'}.t-icon-dashboard-1:before{content:'\E266'}.t-icon-dashboard-filled:before{content:'\E267'}.t-icon-dashboard:before{content:'\E268'}.t-icon-data-base-filled:before{content:'\E269'}.t-icon-data-base:before{content:'\E26A'}.t-icon-data-checked-filled:before{content:'\E26B'}.t-icon-data-checked:before{content:'\E26C'}.t-icon-data-display:before{content:'\E26D'}.t-icon-data-error-filled:before{content:'\E26E'}.t-icon-data-error:before{content:'\E26F'}.t-icon-data-filled:before{content:'\E270'}.t-icon-data-search-filled:before{content:'\E271'}.t-icon-data-search:before{content:'\E272'}.t-icon-data:before{content:'\E273'}.t-icon-delete-1-filled:before{content:'\E274'}.t-icon-delete-1:before{content:'\E275'}.t-icon-delete-filled:before{content:'\E276'}.t-icon-delete-time-filled:before{content:'\E277'}.t-icon-delete-time:before{content:'\E278'}.t-icon-delete:before{content:'\E279'}.t-icon-delta-filled:before{content:'\E27A'}.t-icon-delta:before{content:'\E27B'}.t-icon-depressed-filled:before{content:'\E27C'}.t-icon-depressed:before{content:'\E27D'}.t-icon-desktop-1-filled:before{content:'\E27E'}.t-icon-desktop-1:before{content:'\E27F'}.t-icon-desktop-filled:before{content:'\E280'}.t-icon-desktop:before{content:'\E281'}.t-icon-despise-filled:before{content:'\E282'}.t-icon-despise:before{content:'\E283'}.t-icon-device-filled:before{content:'\E284'}.t-icon-device:before{content:'\E285'}.t-icon-discount-filled:before{content:'\E286'}.t-icon-discount:before{content:'\E287'}.t-icon-dissatisfaction-filled:before{content:'\E288'}.t-icon-dissatisfaction:before{content:'\E289'}.t-icon-divide:before{content:'\E28A'}.t-icon-dividers-1:before{content:'\E28B'}.t-icon-dividers:before{content:'\E28C'}.t-icon-doge-filled:before{content:'\E28D'}.t-icon-doge:before{content:'\E28E'}.t-icon-double-storey-filled:before{content:'\E28F'}.t-icon-double-storey:before{content:'\E290'}.t-icon-download-1:before{content:'\E291'}.t-icon-download-2-filled:before{content:'\E292'}.t-icon-download-2:before{content:'\E293'}.t-icon-download:before{content:'\E294'}.t-icon-downscale:before{content:'\E295'}.t-icon-drag-drop:before{content:'\E296'}.t-icon-drag-move:before{content:'\E297'}.t-icon-drink-filled:before{content:'\E298'}.t-icon-drink:before{content:'\E299'}.t-icon-drumstick-filled:before{content:'\E29A'}.t-icon-drumstick:before{content:'\E29B'}.t-icon-dv-filled:before{content:'\E29C'}.t-icon-dv:before{content:'\E29D'}.t-icon-dvd-filled:before{content:'\E29E'}.t-icon-dvd:before{content:'\E29F'}.t-icon-earphone-filled:before{content:'\E2A0'}.t-icon-earphone:before{content:'\E2A1'}.t-icon-earth-filled:before{content:'\E2A2'}.t-icon-earth:before{content:'\E2A3'}.t-icon-edit-1-filled:before{content:'\E2A4'}.t-icon-edit-1:before{content:'\E2A5'}.t-icon-edit-2-filled:before{content:'\E2A6'}.t-icon-edit-2:before{content:'\E2A7'}.t-icon-edit-filled:before{content:'\E2A8'}.t-icon-edit-off-filled:before{content:'\E2A9'}.t-icon-edit-off:before{content:'\E2AA'}.t-icon-edit:before{content:'\E2AB'}.t-icon-education-filled:before{content:'\E2AC'}.t-icon-education:before{content:'\E2AD'}.t-icon-eggplant-filled:before{content:'\E2AE'}.t-icon-eggplant:before{content:'\E2AF'}.t-icon-ellipsis:before{content:'\E2B0'}.t-icon-emo-emotional-filled:before{content:'\E2B1'}.t-icon-emo-emotional:before{content:'\E2B2'}.t-icon-enter:before{content:'\E2B3'}.t-icon-equal:before{content:'\E2B4'}.t-icon-error-circle-filled:before{content:'\E2B5'}.t-icon-error-circle:before{content:'\E2B6'}.t-icon-error-triangle-filled:before{content:'\E2B7'}.t-icon-error-triangle:before{content:'\E2B8'}.t-icon-error:before{content:'\E2B9'}.t-icon-excited-1-filled:before{content:'\E2BA'}.t-icon-excited-1:before{content:'\E2BB'}.t-icon-excited-filled:before{content:'\E2BC'}.t-icon-excited:before{content:'\E2BD'}.t-icon-expand-down-filled:before{content:'\E2BE'}.t-icon-expand-down:before{content:'\E2BF'}.t-icon-expand-horizontal:before{content:'\E2C0'}.t-icon-expand-up-filled:before{content:'\E2C1'}.t-icon-expand-up:before{content:'\E2C2'}.t-icon-expand-vertical:before{content:'\E2C3'}.t-icon-explore-filled:before{content:'\E2C4'}.t-icon-explore-off-filled:before{content:'\E2C5'}.t-icon-explore-off:before{content:'\E2C6'}.t-icon-explore:before{content:'\E2C7'}.t-icon-exposure-filled:before{content:'\E2C8'}.t-icon-exposure:before{content:'\E2C9'}.t-icon-extension-filled:before{content:'\E2CA'}.t-icon-extension-off-filled:before{content:'\E2CB'}.t-icon-extension-off:before{content:'\E2CC'}.t-icon-extension:before{content:'\E2CD'}.t-icon-face-retouching-filled:before{content:'\E2CE'}.t-icon-face-retouching:before{content:'\E2CF'}.t-icon-fact-check-filled:before{content:'\E2D0'}.t-icon-fact-check:before{content:'\E2D1'}.t-icon-fahrenheit-scale:before{content:'\E2D2'}.t-icon-feel-at-ease-filled:before{content:'\E2D3'}.t-icon-feel-at-ease:before{content:'\E2D4'}.t-icon-ferocious-filled:before{content:'\E2D5'}.t-icon-ferocious:before{content:'\E2D6'}.t-icon-ferris-wheel-filled:before{content:'\E2D7'}.t-icon-ferris-wheel:before{content:'\E2D8'}.t-icon-file-1-filled:before{content:'\E2D9'}.t-icon-file-1:before{content:'\E2DA'}.t-icon-file-add-1-filled:before{content:'\E2DB'}.t-icon-file-add-1:before{content:'\E2DC'}.t-icon-file-add-filled:before{content:'\E2DD'}.t-icon-file-add:before{content:'\E2DE'}.t-icon-file-attachment-filled:before{content:'\E2DF'}.t-icon-file-attachment:before{content:'\E2E0'}.t-icon-file-blocked-filled:before{content:'\E2E1'}.t-icon-file-blocked:before{content:'\E2E2'}.t-icon-file-code-1-filled:before{content:'\E2E3'}.t-icon-file-code-1:before{content:'\E2E4'}.t-icon-file-code-filled:before{content:'\E2E5'}.t-icon-file-code:before{content:'\E2E6'}.t-icon-file-copy-filled:before{content:'\E2E7'}.t-icon-file-copy:before{content:'\E2E8'}.t-icon-file-download-filled:before{content:'\E2E9'}.t-icon-file-download:before{content:'\E2EA'}.t-icon-file-excel-filled:before{content:'\E2EB'}.t-icon-file-excel:before{content:'\E2EC'}.t-icon-file-export-filled:before{content:'\E2ED'}.t-icon-file-export:before{content:'\E2EE'}.t-icon-file-filled:before{content:'\E2EF'}.t-icon-file-icon-filled:before{content:'\E2F0'}.t-icon-file-icon:before{content:'\E2F1'}.t-icon-file-image-filled:before{content:'\E2F2'}.t-icon-file-image:before{content:'\E2F3'}.t-icon-file-import-filled:before{content:'\E2F4'}.t-icon-file-import:before{content:'\E2F5'}.t-icon-file-locked-filled:before{content:'\E2F6'}.t-icon-file-locked:before{content:'\E2F7'}.t-icon-file-minus-filled:before{content:'\E2F8'}.t-icon-file-minus:before{content:'\E2F9'}.t-icon-file-music-filled:before{content:'\E2FA'}.t-icon-file-music:before{content:'\E2FB'}.t-icon-file-onenote-filled:before{content:'\E2FC'}.t-icon-file-onenote:before{content:'\E2FD'}.t-icon-file-outlook-filled:before{content:'\E2FE'}.t-icon-file-outlook:before{content:'\E2FF'}.t-icon-file-paste-filled:before{content:'\E300'}.t-icon-file-paste:before{content:'\E301'}.t-icon-file-pdf-filled:before{content:'\E302'}.t-icon-file-pdf:before{content:'\E303'}.t-icon-file-powerpoint-filled:before{content:'\E304'}.t-icon-file-powerpoint:before{content:'\E305'}.t-icon-file-restore-filled:before{content:'\E306'}.t-icon-file-restore:before{content:'\E307'}.t-icon-file-safety-filled:before{content:'\E308'}.t-icon-file-safety:before{content:'\E309'}.t-icon-file-search-filled:before{content:'\E30A'}.t-icon-file-search:before{content:'\E30B'}.t-icon-file-setting-filled:before{content:'\E30C'}.t-icon-file-setting:before{content:'\E30D'}.t-icon-file-teams-filled:before{content:'\E30E'}.t-icon-file-teams:before{content:'\E30F'}.t-icon-file-transmit-double-filled:before{content:'\E310'}.t-icon-file-transmit-double:before{content:'\E311'}.t-icon-file-transmit-filled:before{content:'\E312'}.t-icon-file-transmit:before{content:'\E313'}.t-icon-file-unknown-filled:before{content:'\E314'}.t-icon-file-unknown:before{content:'\E315'}.t-icon-file-unlocked-filled:before{content:'\E316'}.t-icon-file-unlocked:before{content:'\E317'}.t-icon-file-word-filled:before{content:'\E318'}.t-icon-file-word:before{content:'\E319'}.t-icon-file-zip-filled:before{content:'\E31A'}.t-icon-file-zip:before{content:'\E31B'}.t-icon-file:before{content:'\E31C'}.t-icon-fill-color-1-filled:before{content:'\E31D'}.t-icon-fill-color-1:before{content:'\E31E'}.t-icon-fill-color-filled:before{content:'\E31F'}.t-icon-fill-color:before{content:'\E320'}.t-icon-film-1-filled:before{content:'\E321'}.t-icon-film-1:before{content:'\E322'}.t-icon-film-filled:before{content:'\E323'}.t-icon-film:before{content:'\E324'}.t-icon-filter-1-filled:before{content:'\E325'}.t-icon-filter-1:before{content:'\E326'}.t-icon-filter-2-filled:before{content:'\E327'}.t-icon-filter-2:before{content:'\E328'}.t-icon-filter-3-filled:before{content:'\E329'}.t-icon-filter-3:before{content:'\E32A'}.t-icon-filter-clear-filled:before{content:'\E32B'}.t-icon-filter-clear:before{content:'\E32C'}.t-icon-filter-filled:before{content:'\E32D'}.t-icon-filter-off-filled:before{content:'\E32E'}.t-icon-filter-off:before{content:'\E32F'}.t-icon-filter-sort-filled:before{content:'\E330'}.t-icon-filter-sort:before{content:'\E331'}.t-icon-filter:before{content:'\E332'}.t-icon-fingerprint-1:before{content:'\E333'}.t-icon-fingerprint-2:before{content:'\E334'}.t-icon-fingerprint-3:before{content:'\E335'}.t-icon-fingerprint:before{content:'\E336'}.t-icon-fish-filled:before{content:'\E337'}.t-icon-fish:before{content:'\E338'}.t-icon-flag-1-filled:before{content:'\E339'}.t-icon-flag-1:before{content:'\E33A'}.t-icon-flag-2-filled:before{content:'\E33B'}.t-icon-flag-2:before{content:'\E33C'}.t-icon-flag-3-filled:before{content:'\E33D'}.t-icon-flag-3:before{content:'\E33E'}.t-icon-flag-4-filled:before{content:'\E33F'}.t-icon-flag-4:before{content:'\E340'}.t-icon-flag-filled:before{content:'\E341'}.t-icon-flag:before{content:'\E342'}.t-icon-flashlight-filled:before{content:'\E343'}.t-icon-flashlight:before{content:'\E344'}.t-icon-flight-landing-filled:before{content:'\E345'}.t-icon-flight-landing:before{content:'\E346'}.t-icon-flight-takeoff-filled:before{content:'\E347'}.t-icon-flight-takeoff:before{content:'\E348'}.t-icon-flip-smiling-face-filled:before{content:'\E349'}.t-icon-flip-smiling-face:before{content:'\E34A'}.t-icon-flip-to-back-filled:before{content:'\E34B'}.t-icon-flip-to-back:before{content:'\E34C'}.t-icon-flip-to-front-filled:before{content:'\E34D'}.t-icon-flip-to-front:before{content:'\E34E'}.t-icon-focus-filled:before{content:'\E34F'}.t-icon-focus:before{content:'\E350'}.t-icon-fog-filled:before{content:'\E351'}.t-icon-fog-night-filled:before{content:'\E352'}.t-icon-fog-night:before{content:'\E353'}.t-icon-fog-sunny-filled:before{content:'\E354'}.t-icon-fog-sunny:before{content:'\E355'}.t-icon-fog:before{content:'\E356'}.t-icon-folder-1-filled:before{content:'\E357'}.t-icon-folder-1:before{content:'\E358'}.t-icon-folder-add-1-filled:before{content:'\E359'}.t-icon-folder-add-1:before{content:'\E35A'}.t-icon-folder-add-filled:before{content:'\E35B'}.t-icon-folder-add:before{content:'\E35C'}.t-icon-folder-blocked-filled:before{content:'\E35D'}.t-icon-folder-blocked:before{content:'\E35E'}.t-icon-folder-details-filled:before{content:'\E35F'}.t-icon-folder-details:before{content:'\E360'}.t-icon-folder-export-filled:before{content:'\E361'}.t-icon-folder-export:before{content:'\E362'}.t-icon-folder-filled:before{content:'\E363'}.t-icon-folder-import-filled:before{content:'\E364'}.t-icon-folder-import:before{content:'\E365'}.t-icon-folder-locked-filled:before{content:'\E366'}.t-icon-folder-locked:before{content:'\E367'}.t-icon-folder-minus-filled:before{content:'\E368'}.t-icon-folder-minus:before{content:'\E369'}.t-icon-folder-move-filled:before{content:'\E36A'}.t-icon-folder-move:before{content:'\E36B'}.t-icon-folder-off-filled:before{content:'\E36C'}.t-icon-folder-off:before{content:'\E36D'}.t-icon-folder-open-1-filled:before{content:'\E36E'}.t-icon-folder-open-1:before{content:'\E36F'}.t-icon-folder-open-filled:before{content:'\E370'}.t-icon-folder-open:before{content:'\E371'}.t-icon-folder-search-filled:before{content:'\E372'}.t-icon-folder-search:before{content:'\E373'}.t-icon-folder-setting-filled:before{content:'\E374'}.t-icon-folder-setting:before{content:'\E375'}.t-icon-folder-shared-filled:before{content:'\E376'}.t-icon-folder-shared:before{content:'\E377'}.t-icon-folder-unlocked-filled:before{content:'\E378'}.t-icon-folder-unlocked:before{content:'\E379'}.t-icon-folder-zip-filled:before{content:'\E37A'}.t-icon-folder-zip:before{content:'\E37B'}.t-icon-folder:before{content:'\E37C'}.t-icon-forest-filled:before{content:'\E37D'}.t-icon-forest:before{content:'\E37E'}.t-icon-fork-filled:before{content:'\E37F'}.t-icon-fork:before{content:'\E380'}.t-icon-form-filled:before{content:'\E381'}.t-icon-form:before{content:'\E382'}.t-icon-format-horizontal-align-bottom:before{content:'\E383'}.t-icon-format-horizontal-align-center:before{content:'\E384'}.t-icon-format-horizontal-align-top:before{content:'\E385'}.t-icon-format-vertical-align-center:before{content:'\E386'}.t-icon-format-vertical-align-left:before{content:'\E387'}.t-icon-format-vertical-align-right:before{content:'\E388'}.t-icon-forward-filled:before{content:'\E389'}.t-icon-forward:before{content:'\E38A'}.t-icon-frame-1-filled:before{content:'\E38B'}.t-icon-frame-1:before{content:'\E38C'}.t-icon-frame-filled:before{content:'\E38D'}.t-icon-frame:before{content:'\E38E'}.t-icon-fries-filled:before{content:'\E38F'}.t-icon-fries:before{content:'\E390'}.t-icon-fullscreen-1:before{content:'\E391'}.t-icon-fullscreen-2:before{content:'\E392'}.t-icon-fullscreen-exit-1:before{content:'\E393'}.t-icon-fullscreen-exit:before{content:'\E394'}.t-icon-fullscreen:before{content:'\E395'}.t-icon-function-curve:before{content:'\E396'}.t-icon-functions-1:before{content:'\E397'}.t-icon-functions:before{content:'\E398'}.t-icon-gamepad-1-filled:before{content:'\E399'}.t-icon-gamepad-1:before{content:'\E39A'}.t-icon-gamepad-filled:before{content:'\E39B'}.t-icon-gamepad:before{content:'\E39C'}.t-icon-gamma:before{content:'\E39D'}.t-icon-garlic-filled:before{content:'\E39E'}.t-icon-garlic:before{content:'\E39F'}.t-icon-gender-female:before{content:'\E3A0'}.t-icon-gender-male:before{content:'\E3A1'}.t-icon-gesture-applause-filled:before{content:'\E3A2'}.t-icon-gesture-applause:before{content:'\E3A3'}.t-icon-gesture-click-filled:before{content:'\E3A4'}.t-icon-gesture-click:before{content:'\E3A5'}.t-icon-gesture-down-filled:before{content:'\E3A6'}.t-icon-gesture-down:before{content:'\E3A7'}.t-icon-gesture-expansion-filled:before{content:'\E3A8'}.t-icon-gesture-expansion:before{content:'\E3A9'}.t-icon-gesture-left-filled:before{content:'\E3AA'}.t-icon-gesture-left-slip-filled:before{content:'\E3AB'}.t-icon-gesture-left-slip:before{content:'\E3AC'}.t-icon-gesture-left:before{content:'\E3AD'}.t-icon-gesture-open-filled:before{content:'\E3AE'}.t-icon-gesture-open:before{content:'\E3AF'}.t-icon-gesture-pray-filled:before{content:'\E3B0'}.t-icon-gesture-pray:before{content:'\E3B1'}.t-icon-gesture-press-filled:before{content:'\E3B2'}.t-icon-gesture-press:before{content:'\E3B3'}.t-icon-gesture-ranslation-filled:before{content:'\E3B4'}.t-icon-gesture-ranslation:before{content:'\E3B5'}.t-icon-gesture-right-filled:before{content:'\E3B6'}.t-icon-gesture-right-slip-filled:before{content:'\E3B7'}.t-icon-gesture-right-slip:before{content:'\E3B8'}.t-icon-gesture-right:before{content:'\E3B9'}.t-icon-gesture-slide-left-and-right-filled:before{content:'\E3BA'}.t-icon-gesture-slide-left-and-right:before{content:'\E3BB'}.t-icon-gesture-slide-up-filled:before{content:'\E3BC'}.t-icon-gesture-slide-up:before{content:'\E3BD'}.t-icon-gesture-typing-filled:before{content:'\E3BE'}.t-icon-gesture-typing:before{content:'\E3BF'}.t-icon-gesture-up-and-down-filled:before{content:'\E3C0'}.t-icon-gesture-up-and-down:before{content:'\E3C1'}.t-icon-gesture-up-filled:before{content:'\E3C2'}.t-icon-gesture-up:before{content:'\E3C3'}.t-icon-gesture-wipe-down-filled:before{content:'\E3C4'}.t-icon-gesture-wipe-down:before{content:'\E3C5'}.t-icon-gift-filled:before{content:'\E3C6'}.t-icon-gift:before{content:'\E3C7'}.t-icon-giggle-filled:before{content:'\E3C8'}.t-icon-giggle:before{content:'\E3C9'}.t-icon-git-branch-filled:before{content:'\E3CA'}.t-icon-git-branch:before{content:'\E3CB'}.t-icon-git-commit-filled:before{content:'\E3CC'}.t-icon-git-commit:before{content:'\E3CD'}.t-icon-git-merge-filled:before{content:'\E3CE'}.t-icon-git-merge:before{content:'\E3CF'}.t-icon-git-pull-request-filled:before{content:'\E3D0'}.t-icon-git-pull-request:before{content:'\E3D1'}.t-icon-git-repository-commits-filled:before{content:'\E3D2'}.t-icon-git-repository-commits:before{content:'\E3D3'}.t-icon-git-repository-filled:before{content:'\E3D4'}.t-icon-git-repository-private-filled:before{content:'\E3D5'}.t-icon-git-repository-private:before{content:'\E3D6'}.t-icon-git-repository:before{content:'\E3D7'}.t-icon-gps-filled:before{content:'\E3D8'}.t-icon-gps:before{content:'\E3D9'}.t-icon-grape-filled:before{content:'\E3DA'}.t-icon-grape:before{content:'\E3DB'}.t-icon-greater-than-or-equal:before{content:'\E3DC'}.t-icon-greater-than:before{content:'\E3DD'}.t-icon-green-onion:before{content:'\E3DE'}.t-icon-grid-add-filled:before{content:'\E3DF'}.t-icon-grid-add:before{content:'\E3E0'}.t-icon-grid-view-filled:before{content:'\E3E1'}.t-icon-grid-view:before{content:'\E3E2'}.t-icon-guitar-filled:before{content:'\E3E3'}.t-icon-guitar:before{content:'\E3E4'}.t-icon-hamburger-filled:before{content:'\E3E5'}.t-icon-hamburger:before{content:'\E3E6'}.t-icon-happy-filled:before{content:'\E3E7'}.t-icon-happy:before{content:'\E3E8'}.t-icon-hard-disk-storage-filled:before{content:'\E3E9'}.t-icon-hard-disk-storage:before{content:'\E3EA'}.t-icon-hard-drive-filled:before{content:'\E3EB'}.t-icon-hard-drive:before{content:'\E3EC'}.t-icon-hashtag:before{content:'\E3ED'}.t-icon-hd-filled:before{content:'\E3EE'}.t-icon-hd:before{content:'\E3EF'}.t-icon-heart-filled:before{content:'\E3F0'}.t-icon-heart:before{content:'\E3F1'}.t-icon-help-circle-filled:before{content:'\E3F2'}.t-icon-help-circle:before{content:'\E3F3'}.t-icon-help-rectangle-filled:before{content:'\E3F4'}.t-icon-help-rectangle:before{content:'\E3F5'}.t-icon-help:before{content:'\E3F6'}.t-icon-highlight-1-filled:before{content:'\E3F7'}.t-icon-highlight-1:before{content:'\E3F8'}.t-icon-highlight:before{content:'\E3F9'}.t-icon-history-setting:before{content:'\E3FA'}.t-icon-history:before{content:'\E3FB'}.t-icon-home-filled:before{content:'\E3FC'}.t-icon-home:before{content:'\E3FD'}.t-icon-horizontal-filled:before{content:'\E3FE'}.t-icon-horizontal:before{content:'\E3FF'}.t-icon-hospital-1-filled:before{content:'\E400'}.t-icon-hospital-1:before{content:'\E401'}.t-icon-hospital-filled:before{content:'\E402'}.t-icon-hospital:before{content:'\E403'}.t-icon-hotspot-wave-filled:before{content:'\E404'}.t-icon-hotspot-wave:before{content:'\E405'}.t-icon-hourglass-filled:before{content:'\E406'}.t-icon-hourglass:before{content:'\E407'}.t-icon-houses-1-filled:before{content:'\E408'}.t-icon-houses-1:before{content:'\E409'}.t-icon-houses-2-filled:before{content:'\E40A'}.t-icon-houses-2:before{content:'\E40B'}.t-icon-houses-filled:before{content:'\E40C'}.t-icon-houses:before{content:'\E40D'}.t-icon-html5-filled:before{content:'\E40E'}.t-icon-html5:before{content:'\E40F'}.t-icon-https-filled:before{content:'\E410'}.t-icon-https:before{content:'\E411'}.t-icon-ice-cream-filled:before{content:'\E412'}.t-icon-ice-cream:before{content:'\E413'}.t-icon-icon-filled:before{content:'\E414'}.t-icon-icon:before{content:'\E415'}.t-icon-image-1-filled:before{content:'\E416'}.t-icon-image-1:before{content:'\E417'}.t-icon-image-add-filled:before{content:'\E418'}.t-icon-image-add:before{content:'\E419'}.t-icon-image-edit-filled:before{content:'\E41A'}.t-icon-image-edit:before{content:'\E41B'}.t-icon-image-error-filled:before{content:'\E41C'}.t-icon-image-error:before{content:'\E41D'}.t-icon-image-filled:before{content:'\E41E'}.t-icon-image-off-filled:before{content:'\E41F'}.t-icon-image-off:before{content:'\E420'}.t-icon-image-search-filled:before{content:'\E421'}.t-icon-image-search:before{content:'\E422'}.t-icon-image:before{content:'\E423'}.t-icon-indent-left:before{content:'\E424'}.t-icon-indent-right:before{content:'\E425'}.t-icon-indicator-filled:before{content:'\E426'}.t-icon-indicator:before{content:'\E427'}.t-icon-info-circle-filled:before{content:'\E428'}.t-icon-info-circle:before{content:'\E429'}.t-icon-ink-filled:before{content:'\E42A'}.t-icon-ink:before{content:'\E42B'}.t-icon-install-desktop-filled:before{content:'\E42C'}.t-icon-install-desktop:before{content:'\E42D'}.t-icon-install-filled:before{content:'\E42E'}.t-icon-install-mobile-filled:before{content:'\E42F'}.t-icon-install-mobile:before{content:'\E430'}.t-icon-install:before{content:'\E431'}.t-icon-institution-checked-filled:before{content:'\E432'}.t-icon-institution-checked:before{content:'\E433'}.t-icon-institution-filled:before{content:'\E434'}.t-icon-institution:before{content:'\E435'}.t-icon-internet-filled:before{content:'\E436'}.t-icon-internet:before{content:'\E437'}.t-icon-ipod-filled:before{content:'\E438'}.t-icon-ipod:before{content:'\E439'}.t-icon-joyful-filled:before{content:'\E43A'}.t-icon-joyful:before{content:'\E43B'}.t-icon-jump-double:before{content:'\E43C'}.t-icon-jump-off:before{content:'\E43D'}.t-icon-jump:before{content:'\E43E'}.t-icon-key-filled:before{content:'\E43F'}.t-icon-key:before{content:'\E440'}.t-icon-keyboard-filled:before{content:'\E441'}.t-icon-keyboard:before{content:'\E442'}.t-icon-laptop-filled:before{content:'\E443'}.t-icon-laptop:before{content:'\E444'}.t-icon-layers-filled:before{content:'\E445'}.t-icon-layers:before{content:'\E446'}.t-icon-layout-filled:before{content:'\E447'}.t-icon-layout:before{content:'\E448'}.t-icon-leaderboard-filled:before{content:'\E449'}.t-icon-leaderboard:before{content:'\E44A'}.t-icon-lemon-filled:before{content:'\E44B'}.t-icon-lemon-slice-filled:before{content:'\E44C'}.t-icon-lemon-slice:before{content:'\E44D'}.t-icon-lemon:before{content:'\E44E'}.t-icon-less-than-or-equal:before{content:'\E44F'}.t-icon-less-than:before{content:'\E450'}.t-icon-letters-a:before{content:'\E451'}.t-icon-letters-b:before{content:'\E452'}.t-icon-letters-c:before{content:'\E453'}.t-icon-letters-d:before{content:'\E454'}.t-icon-letters-e:before{content:'\E455'}.t-icon-letters-f:before{content:'\E456'}.t-icon-letters-g:before{content:'\E457'}.t-icon-letters-h:before{content:'\E458'}.t-icon-letters-i:before{content:'\E459'}.t-icon-letters-j:before{content:'\E45A'}.t-icon-letters-k:before{content:'\E45B'}.t-icon-letters-l:before{content:'\E45C'}.t-icon-letters-m:before{content:'\E45D'}.t-icon-letters-n:before{content:'\E45E'}.t-icon-letters-o:before{content:'\E45F'}.t-icon-letters-p:before{content:'\E460'}.t-icon-letters-q:before{content:'\E461'}.t-icon-letters-r:before{content:'\E462'}.t-icon-letters-s:before{content:'\E463'}.t-icon-letters-t:before{content:'\E464'}.t-icon-letters-u:before{content:'\E465'}.t-icon-letters-v:before{content:'\E466'}.t-icon-letters-w:before{content:'\E467'}.t-icon-letters-x:before{content:'\E468'}.t-icon-letters-y:before{content:'\E469'}.t-icon-letters-z:before{content:'\E46A'}.t-icon-lightbulb-circle-filled:before{content:'\E46B'}.t-icon-lightbulb-circle:before{content:'\E46C'}.t-icon-lightbulb-filled:before{content:'\E46D'}.t-icon-lightbulb:before{content:'\E46E'}.t-icon-lighthouse-1-filled:before{content:'\E46F'}.t-icon-lighthouse-1:before{content:'\E470'}.t-icon-lighthouse-2-filled:before{content:'\E471'}.t-icon-lighthouse-2:before{content:'\E472'}.t-icon-lighthouse-filled:before{content:'\E473'}.t-icon-lighthouse:before{content:'\E474'}.t-icon-lighting-circle-filled:before{content:'\E475'}.t-icon-lighting-circle:before{content:'\E476'}.t-icon-line-height:before{content:'\E477'}.t-icon-link-1:before{content:'\E478'}.t-icon-link-unlink:before{content:'\E479'}.t-icon-link:before{content:'\E47A'}.t-icon-liquor-filled:before{content:'\E47B'}.t-icon-liquor:before{content:'\E47C'}.t-icon-list-numbered:before{content:'\E47D'}.t-icon-list:before{content:'\E47E'}.t-icon-load:before{content:'\E47F'}.t-icon-loading:before{content:'\E480'}.t-icon-location-1-filled:before{content:'\E481'}.t-icon-location-1:before{content:'\E482'}.t-icon-location-enlargement-filled:before{content:'\E483'}.t-icon-location-enlargement:before{content:'\E484'}.t-icon-location-error-filled:before{content:'\E485'}.t-icon-location-error:before{content:'\E486'}.t-icon-location-filled:before{content:'\E487'}.t-icon-location-parking-place-filled:before{content:'\E488'}.t-icon-location-parking-place:before{content:'\E489'}.t-icon-location-reduction-filled:before{content:'\E48A'}.t-icon-location-reduction:before{content:'\E48B'}.t-icon-location-setting-filled:before{content:'\E48C'}.t-icon-location-setting:before{content:'\E48D'}.t-icon-location:before{content:'\E48E'}.t-icon-lock-off-filled:before{content:'\E48F'}.t-icon-lock-off:before{content:'\E490'}.t-icon-lock-on-filled:before{content:'\E491'}.t-icon-lock-on:before{content:'\E492'}.t-icon-lock-time-filled:before{content:'\E493'}.t-icon-lock-time:before{content:'\E494'}.t-icon-login:before{content:'\E495'}.t-icon-logo-adobe-illustrate-filled:before{content:'\E496'}.t-icon-logo-adobe-illustrate:before{content:'\E497'}.t-icon-logo-adobe-lightroom-filled:before{content:'\E498'}.t-icon-logo-adobe-lightroom:before{content:'\E499'}.t-icon-logo-adobe-photoshop-filled:before{content:'\E49A'}.t-icon-logo-adobe-photoshop:before{content:'\E49B'}.t-icon-logo-alipay-filled:before{content:'\E49C'}.t-icon-logo-alipay:before{content:'\E49D'}.t-icon-logo-android-filled:before{content:'\E49E'}.t-icon-logo-android:before{content:'\E49F'}.t-icon-logo-apple-filled:before{content:'\E4A0'}.t-icon-logo-apple:before{content:'\E4A1'}.t-icon-logo-behance-filled:before{content:'\E4A2'}.t-icon-logo-behance:before{content:'\E4A3'}.t-icon-logo-chrome-filled:before{content:'\E4A4'}.t-icon-logo-chrome:before{content:'\E4A5'}.t-icon-logo-cinema4d-filled:before{content:'\E4A6'}.t-icon-logo-cinema4d:before{content:'\E4A7'}.t-icon-logo-cnb-filled:before{content:'\E4A8'}.t-icon-logo-cnb:before{content:'\E4A9'}.t-icon-logo-codepen:before{content:'\E4AA'}.t-icon-logo-codesandbox:before{content:'\E4AB'}.t-icon-logo-dribbble-filled:before{content:'\E4AC'}.t-icon-logo-dribbble:before{content:'\E4AD'}.t-icon-logo-facebook-filled:before{content:'\E4AE'}.t-icon-logo-facebook:before{content:'\E4AF'}.t-icon-logo-figma-filled:before{content:'\E4B0'}.t-icon-logo-figma:before{content:'\E4B1'}.t-icon-logo-framer-filled:before{content:'\E4B2'}.t-icon-logo-framer:before{content:'\E4B3'}.t-icon-logo-github-filled:before{content:'\E4B4'}.t-icon-logo-github:before{content:'\E4B5'}.t-icon-logo-gitlab-filled:before{content:'\E4B6'}.t-icon-logo-gitlab:before{content:'\E4B7'}.t-icon-logo-ie-filled:before{content:'\E4B8'}.t-icon-logo-ie:before{content:'\E4B9'}.t-icon-logo-instagram-filled:before{content:'\E4BA'}.t-icon-logo-instagram:before{content:'\E4BB'}.t-icon-logo-miniprogram-filled:before{content:'\E4BC'}.t-icon-logo-miniprogram:before{content:'\E4BD'}.t-icon-logo-qq-filled:before{content:'\E4BE'}.t-icon-logo-qq:before{content:'\E4BF'}.t-icon-logo-twitter-filled:before{content:'\E4C0'}.t-icon-logo-twitter:before{content:'\E4C1'}.t-icon-logo-wechat-stroke-filled:before{content:'\E4C2'}.t-icon-logo-wechat-stroke:before{content:'\E4C3'}.t-icon-logo-wechatpay-filled:before{content:'\E4C4'}.t-icon-logo-wechatpay:before{content:'\E4C5'}.t-icon-logo-wecom:before{content:'\E4C6'}.t-icon-logo-windows-filled:before{content:'\E4C7'}.t-icon-logo-windows:before{content:'\E4C8'}.t-icon-logo-youtube-filled:before{content:'\E4C9'}.t-icon-logo-youtube:before{content:'\E4CA'}.t-icon-logout:before{content:'\E4CB'}.t-icon-look-around-filled:before{content:'\E4CC'}.t-icon-look-around:before{content:'\E4CD'}.t-icon-loudspeaker-filled:before{content:'\E4CE'}.t-icon-loudspeaker:before{content:'\E4CF'}.t-icon-mail-filled:before{content:'\E4D0'}.t-icon-mail:before{content:'\E4D1'}.t-icon-map-3d-filled:before{content:'\E4D2'}.t-icon-map-3d:before{content:'\E4D3'}.t-icon-map-add-filled:before{content:'\E4D4'}.t-icon-map-add:before{content:'\E4D5'}.t-icon-map-aiming-filled:before{content:'\E4D6'}.t-icon-map-aiming:before{content:'\E4D7'}.t-icon-map-blocked-filled:before{content:'\E4D8'}.t-icon-map-blocked:before{content:'\E4D9'}.t-icon-map-bubble-filled:before{content:'\E4DA'}.t-icon-map-bubble:before{content:'\E4DB'}.t-icon-map-cancel-filled:before{content:'\E4DC'}.t-icon-map-cancel:before{content:'\E4DD'}.t-icon-map-chat-filled:before{content:'\E4DE'}.t-icon-map-chat:before{content:'\E4DF'}.t-icon-map-checked-filled:before{content:'\E4E0'}.t-icon-map-checked:before{content:'\E4E1'}.t-icon-map-collection-filled:before{content:'\E4E2'}.t-icon-map-collection:before{content:'\E4E3'}.t-icon-map-connection-filled:before{content:'\E4E4'}.t-icon-map-connection:before{content:'\E4E5'}.t-icon-map-distance-filled:before{content:'\E4E6'}.t-icon-map-distance:before{content:'\E4E7'}.t-icon-map-double-filled:before{content:'\E4E8'}.t-icon-map-double:before{content:'\E4E9'}.t-icon-map-edit-filled:before{content:'\E4EA'}.t-icon-map-edit:before{content:'\E4EB'}.t-icon-map-filled:before{content:'\E4EC'}.t-icon-map-grid-filled:before{content:'\E4ED'}.t-icon-map-grid:before{content:'\E4EE'}.t-icon-map-information-1-filled:before{content:'\E4EF'}.t-icon-map-information-1:before{content:'\E4F0'}.t-icon-map-information-2-filled:before{content:'\E4F1'}.t-icon-map-information-2:before{content:'\E4F2'}.t-icon-map-information-filled:before{content:'\E4F3'}.t-icon-map-information:before{content:'\E4F4'}.t-icon-map-location-filled:before{content:'\E4F5'}.t-icon-map-location:before{content:'\E4F6'}.t-icon-map-locked-filled:before{content:'\E4F7'}.t-icon-map-locked:before{content:'\E4F8'}.t-icon-map-marked-filled:before{content:'\E4F9'}.t-icon-map-marked:before{content:'\E4FA'}.t-icon-map-navigation-filled:before{content:'\E4FB'}.t-icon-map-navigation:before{content:'\E4FC'}.t-icon-map-outline-filled:before{content:'\E4FD'}.t-icon-map-outline:before{content:'\E4FE'}.t-icon-map-route-planning-filled:before{content:'\E4FF'}.t-icon-map-route-planning:before{content:'\E500'}.t-icon-map-ruler-filled:before{content:'\E501'}.t-icon-map-ruler:before{content:'\E502'}.t-icon-map-safety-filled:before{content:'\E503'}.t-icon-map-safety:before{content:'\E504'}.t-icon-map-search-1-filled:before{content:'\E505'}.t-icon-map-search-1:before{content:'\E506'}.t-icon-map-search-filled:before{content:'\E507'}.t-icon-map-search:before{content:'\E508'}.t-icon-map-setting-filled:before{content:'\E509'}.t-icon-map-setting:before{content:'\E50A'}.t-icon-map-unlocked-filled:before{content:'\E50B'}.t-icon-map-unlocked:before{content:'\E50C'}.t-icon-map:before{content:'\E50D'}.t-icon-mark-as-unread-filled:before{content:'\E50E'}.t-icon-mark-as-unread:before{content:'\E50F'}.t-icon-markup-filled:before{content:'\E510'}.t-icon-markup:before{content:'\E511'}.t-icon-mathematics-filled:before{content:'\E512'}.t-icon-mathematics:before{content:'\E513'}.t-icon-measurement-1-filled:before{content:'\E514'}.t-icon-measurement-1:before{content:'\E515'}.t-icon-measurement-2-filled:before{content:'\E516'}.t-icon-measurement-2:before{content:'\E517'}.t-icon-measurement-filled:before{content:'\E518'}.t-icon-measurement:before{content:'\E519'}.t-icon-meat-pepper-filled:before{content:'\E51A'}.t-icon-meat-pepper:before{content:'\E51B'}.t-icon-media-library-filled:before{content:'\E51C'}.t-icon-media-library:before{content:'\E51D'}.t-icon-member-filled:before{content:'\E51E'}.t-icon-member:before{content:'\E51F'}.t-icon-menu-application:before{content:'\E520'}.t-icon-menu-filled:before{content:'\E521'}.t-icon-menu-fold:before{content:'\E522'}.t-icon-menu-unfold:before{content:'\E523'}.t-icon-menu:before{content:'\E524'}.t-icon-merge-cells-filled:before{content:'\E525'}.t-icon-merge-cells:before{content:'\E526'}.t-icon-microphone-1-filled:before{content:'\E527'}.t-icon-microphone-1:before{content:'\E528'}.t-icon-microphone-2-filled:before{content:'\E529'}.t-icon-microphone-2:before{content:'\E52A'}.t-icon-microphone-filled:before{content:'\E52B'}.t-icon-microphone:before{content:'\E52C'}.t-icon-milk-filled:before{content:'\E52D'}.t-icon-milk:before{content:'\E52E'}.t-icon-minus-circle-filled:before{content:'\E52F'}.t-icon-minus-circle:before{content:'\E530'}.t-icon-minus-rectangle-filled:before{content:'\E531'}.t-icon-minus-rectangle:before{content:'\E532'}.t-icon-minus:before{content:'\E533'}.t-icon-mirror-filled:before{content:'\E534'}.t-icon-mirror:before{content:'\E535'}.t-icon-mobile-blocked-filled:before{content:'\E536'}.t-icon-mobile-blocked:before{content:'\E537'}.t-icon-mobile-filled:before{content:'\E538'}.t-icon-mobile-list-filled:before{content:'\E539'}.t-icon-mobile-list:before{content:'\E53A'}.t-icon-mobile-navigation-filled:before{content:'\E53B'}.t-icon-mobile-navigation:before{content:'\E53C'}.t-icon-mobile-shortcut-filled:before{content:'\E53D'}.t-icon-mobile-shortcut:before{content:'\E53E'}.t-icon-mobile-vibrate-filled:before{content:'\E53F'}.t-icon-mobile-vibrate:before{content:'\E540'}.t-icon-mobile:before{content:'\E541'}.t-icon-mode-dark-filled:before{content:'\E542'}.t-icon-mode-dark:before{content:'\E543'}.t-icon-mode-light-filled:before{content:'\E544'}.t-icon-mode-light:before{content:'\E545'}.t-icon-module-filled:before{content:'\E546'}.t-icon-module:before{content:'\E547'}.t-icon-money-filled:before{content:'\E548'}.t-icon-money:before{content:'\E549'}.t-icon-monument-filled:before{content:'\E54A'}.t-icon-monument:before{content:'\E54B'}.t-icon-moon-fall-filled:before{content:'\E54C'}.t-icon-moon-fall:before{content:'\E54D'}.t-icon-moon-filled:before{content:'\E54E'}.t-icon-moon-rising-filled:before{content:'\E54F'}.t-icon-moon-rising:before{content:'\E550'}.t-icon-moon:before{content:'\E551'}.t-icon-more:before{content:'\E552'}.t-icon-mosque-1-filled:before{content:'\E553'}.t-icon-mosque-1:before{content:'\E554'}.t-icon-mosque-filled:before{content:'\E555'}.t-icon-mosque:before{content:'\E556'}.t-icon-mouse-filled:before{content:'\E557'}.t-icon-mouse:before{content:'\E558'}.t-icon-move-1:before{content:'\E559'}.t-icon-move:before{content:'\E55A'}.t-icon-movie-clapper-filled:before{content:'\E55B'}.t-icon-movie-clapper:before{content:'\E55C'}.t-icon-multiply:before{content:'\E55D'}.t-icon-museum-1-filled:before{content:'\E55E'}.t-icon-museum-1:before{content:'\E55F'}.t-icon-museum-2-filled:before{content:'\E560'}.t-icon-museum-2:before{content:'\E561'}.t-icon-museum-filled:before{content:'\E562'}.t-icon-museum:before{content:'\E563'}.t-icon-mushroom-1-filled:before{content:'\E564'}.t-icon-mushroom-1:before{content:'\E565'}.t-icon-mushroom-filled:before{content:'\E566'}.t-icon-mushroom:before{content:'\E567'}.t-icon-music-1-filled:before{content:'\E568'}.t-icon-music-1:before{content:'\E569'}.t-icon-music-2-filled:before{content:'\E56A'}.t-icon-music-2:before{content:'\E56B'}.t-icon-music-filled:before{content:'\E56C'}.t-icon-music-rectangle-add-filled:before{content:'\E56D'}.t-icon-music-rectangle-add:before{content:'\E56E'}.t-icon-music:before{content:'\E56F'}.t-icon-navigation-arrow-filled:before{content:'\E570'}.t-icon-navigation-arrow:before{content:'\E571'}.t-icon-next-filled:before{content:'\E572'}.t-icon-next:before{content:'\E573'}.t-icon-no-expression-filled:before{content:'\E574'}.t-icon-no-expression:before{content:'\E575'}.t-icon-noodle-filled:before{content:'\E576'}.t-icon-noodle:before{content:'\E577'}.t-icon-notification-add-filled:before{content:'\E578'}.t-icon-notification-add:before{content:'\E579'}.t-icon-notification-circle-filled:before{content:'\E57A'}.t-icon-notification-circle:before{content:'\E57B'}.t-icon-notification-error-filled:before{content:'\E57C'}.t-icon-notification-error:before{content:'\E57D'}.t-icon-notification-filled:before{content:'\E57E'}.t-icon-notification:before{content:'\E57F'}.t-icon-numbers-0-1:before{content:'\E580'}.t-icon-numbers-0:before{content:'\E581'}.t-icon-numbers-1-1:before{content:'\E582'}.t-icon-numbers-1:before{content:'\E583'}.t-icon-numbers-2-1:before{content:'\E584'}.t-icon-numbers-2:before{content:'\E585'}.t-icon-numbers-3-1:before{content:'\E586'}.t-icon-numbers-3:before{content:'\E587'}.t-icon-numbers-4-1:before{content:'\E588'}.t-icon-numbers-4:before{content:'\E589'}.t-icon-numbers-5-1:before{content:'\E58A'}.t-icon-numbers-5:before{content:'\E58B'}.t-icon-numbers-6-1:before{content:'\E58C'}.t-icon-numbers-6:before{content:'\E58D'}.t-icon-numbers-7-1:before{content:'\E58E'}.t-icon-numbers-7:before{content:'\E58F'}.t-icon-numbers-8-1:before{content:'\E590'}.t-icon-numbers-8:before{content:'\E591'}.t-icon-numbers-9-1:before{content:'\E592'}.t-icon-numbers-9:before{content:'\E593'}.t-icon-nut-filled:before{content:'\E594'}.t-icon-nut:before{content:'\E595'}.t-icon-object-storage:before{content:'\E596'}.t-icon-open-mouth-filled:before{content:'\E597'}.t-icon-open-mouth:before{content:'\E598'}.t-icon-opera-filled:before{content:'\E599'}.t-icon-opera:before{content:'\E59A'}.t-icon-order-adjustment-column:before{content:'\E59B'}.t-icon-order-ascending:before{content:'\E59C'}.t-icon-order-descending:before{content:'\E59D'}.t-icon-outbox-filled:before{content:'\E59E'}.t-icon-outbox:before{content:'\E59F'}.t-icon-page-first:before{content:'\E5A0'}.t-icon-page-head-filled:before{content:'\E5A1'}.t-icon-page-head:before{content:'\E5A2'}.t-icon-page-last:before{content:'\E5A3'}.t-icon-palace-1-filled:before{content:'\E5A4'}.t-icon-palace-1:before{content:'\E5A5'}.t-icon-palace-2-filled:before{content:'\E5A6'}.t-icon-palace-2:before{content:'\E5A7'}.t-icon-palace-3-filled:before{content:'\E5A8'}.t-icon-palace-3:before{content:'\E5A9'}.t-icon-palace-4-filled:before{content:'\E5AA'}.t-icon-palace-4:before{content:'\E5AB'}.t-icon-palace-filled:before{content:'\E5AC'}.t-icon-palace:before{content:'\E5AD'}.t-icon-palette-1-filled:before{content:'\E5AE'}.t-icon-palette-1:before{content:'\E5AF'}.t-icon-palette-filled:before{content:'\E5B0'}.t-icon-palette:before{content:'\E5B1'}.t-icon-panorama-horizontal-filled:before{content:'\E5B2'}.t-icon-panorama-horizontal:before{content:'\E5B3'}.t-icon-panorama-vertical-filled:before{content:'\E5B4'}.t-icon-panorama-vertical:before{content:'\E5B5'}.t-icon-pantone-filled:before{content:'\E5B6'}.t-icon-pantone:before{content:'\E5B7'}.t-icon-parabola:before{content:'\E5B8'}.t-icon-parentheses:before{content:'\E5B9'}.t-icon-paste-filled:before{content:'\E5BA'}.t-icon-paste:before{content:'\E5BB'}.t-icon-patio-filled:before{content:'\E5BC'}.t-icon-patio:before{content:'\E5BD'}.t-icon-pause-circle-filled:before{content:'\E5BE'}.t-icon-pause-circle-stroke-filled:before{content:'\E5BF'}.t-icon-pause-circle-stroke:before{content:'\E5C0'}.t-icon-pause-circle:before{content:'\E5C1'}.t-icon-pause:before{content:'\E5C2'}.t-icon-pea-filled:before{content:'\E5C3'}.t-icon-pea:before{content:'\E5C4'}.t-icon-peach-filled:before{content:'\E5C5'}.t-icon-peach:before{content:'\E5C6'}.t-icon-pear-filled:before{content:'\E5C7'}.t-icon-pear:before{content:'\E5C8'}.t-icon-pearl-of-the-orient-filled:before{content:'\E5C9'}.t-icon-pearl-of-the-orient:before{content:'\E5CA'}.t-icon-pen-ball-filled:before{content:'\E5CB'}.t-icon-pen-ball:before{content:'\E5CC'}.t-icon-pen-brush-filled:before{content:'\E5CD'}.t-icon-pen-brush:before{content:'\E5CE'}.t-icon-pen-filled:before{content:'\E5CF'}.t-icon-pen-mark-filled:before{content:'\E5D0'}.t-icon-pen-mark:before{content:'\E5D1'}.t-icon-pen-quill-filled:before{content:'\E5D2'}.t-icon-pen-quill:before{content:'\E5D3'}.t-icon-pen:before{content:'\E5D4'}.t-icon-pending-filled:before{content:'\E5D5'}.t-icon-pending:before{content:'\E5D6'}.t-icon-percent:before{content:'\E5D7'}.t-icon-personal-information-filled:before{content:'\E5D8'}.t-icon-personal-information:before{content:'\E5D9'}.t-icon-phone-locked-filled:before{content:'\E5DA'}.t-icon-phone-locked:before{content:'\E5DB'}.t-icon-phone-search-filled:before{content:'\E5DC'}.t-icon-phone-search:before{content:'\E5DD'}.t-icon-pi:before{content:'\E5DE'}.t-icon-piano-filled:before{content:'\E5DF'}.t-icon-piano:before{content:'\E5E0'}.t-icon-pin-filled:before{content:'\E5E1'}.t-icon-pin:before{content:'\E5E2'}.t-icon-play-circle-filled:before{content:'\E5E3'}.t-icon-play-circle-stroke-add-filled:before{content:'\E5E4'}.t-icon-play-circle-stroke-add:before{content:'\E5E5'}.t-icon-play-circle-stroke-filled:before{content:'\E5E6'}.t-icon-play-circle-stroke:before{content:'\E5E7'}.t-icon-play-circle:before{content:'\E5E8'}.t-icon-play-demo-filled:before{content:'\E5E9'}.t-icon-play-demo:before{content:'\E5EA'}.t-icon-play-rectangle-filled:before{content:'\E5EB'}.t-icon-play-rectangle:before{content:'\E5EC'}.t-icon-play:before{content:'\E5ED'}.t-icon-plus:before{content:'\E5EE'}.t-icon-popsicle-filled:before{content:'\E5EF'}.t-icon-popsicle:before{content:'\E5F0'}.t-icon-portrait-filled:before{content:'\E5F1'}.t-icon-portrait:before{content:'\E5F2'}.t-icon-pout-filled:before{content:'\E5F3'}.t-icon-pout:before{content:'\E5F4'}.t-icon-poweroff:before{content:'\E5F5'}.t-icon-precise-monitor:before{content:'\E5F6'}.t-icon-previous-filled:before{content:'\E5F7'}.t-icon-previous:before{content:'\E5F8'}.t-icon-print-filled:before{content:'\E5F9'}.t-icon-print:before{content:'\E5FA'}.t-icon-pumpkin-filled:before{content:'\E5FB'}.t-icon-pumpkin:before{content:'\E5FC'}.t-icon-pyramid-filled:before{content:'\E5FD'}.t-icon-pyramid-maya-filled:before{content:'\E5FE'}.t-icon-pyramid-maya:before{content:'\E5FF'}.t-icon-pyramid:before{content:'\E600'}.t-icon-qrcode:before{content:'\E601'}.t-icon-quadratic:before{content:'\E602'}.t-icon-questionnaire-double-filled:before{content:'\E603'}.t-icon-questionnaire-double:before{content:'\E604'}.t-icon-questionnaire-filled:before{content:'\E605'}.t-icon-questionnaire:before{content:'\E606'}.t-icon-queue-filled:before{content:'\E607'}.t-icon-queue:before{content:'\E608'}.t-icon-quote-filled:before{content:'\E609'}.t-icon-quote:before{content:'\E60A'}.t-icon-radar:before{content:'\E60B'}.t-icon-radio-1-filled:before{content:'\E60C'}.t-icon-radio-1:before{content:'\E60D'}.t-icon-radio-2-filled:before{content:'\E60E'}.t-icon-radio-2:before{content:'\E60F'}.t-icon-radish-filled:before{content:'\E610'}.t-icon-radish:before{content:'\E611'}.t-icon-rain-heavy:before{content:'\E612'}.t-icon-rain-light-filled:before{content:'\E613'}.t-icon-rain-light:before{content:'\E614'}.t-icon-rain-medium:before{content:'\E615'}.t-icon-rainbow:before{content:'\E616'}.t-icon-rectangle-filled:before{content:'\E617'}.t-icon-rectangle:before{content:'\E618'}.t-icon-refresh:before{content:'\E619'}.t-icon-relation:before{content:'\E61A'}.t-icon-relativity-filled:before{content:'\E61B'}.t-icon-relativity:before{content:'\E61C'}.t-icon-remote-wave-filled:before{content:'\E61D'}.t-icon-remote-wave:before{content:'\E61E'}.t-icon-remove:before{content:'\E61F'}.t-icon-replay-filled:before{content:'\E620'}.t-icon-replay:before{content:'\E621'}.t-icon-rice-ball-filled:before{content:'\E622'}.t-icon-rice-ball:before{content:'\E623'}.t-icon-rice-filled:before{content:'\E624'}.t-icon-rice:before{content:'\E625'}.t-icon-roast-filled:before{content:'\E626'}.t-icon-roast:before{content:'\E627'}.t-icon-rocket-filled:before{content:'\E628'}.t-icon-rocket:before{content:'\E629'}.t-icon-rollback:before{content:'\E62A'}.t-icon-rollfront:before{content:'\E62B'}.t-icon-root-list-filled:before{content:'\E62C'}.t-icon-root-list:before{content:'\E62D'}.t-icon-rotate-locked-filled:before{content:'\E62E'}.t-icon-rotate-locked:before{content:'\E62F'}.t-icon-rotate:before{content:'\E630'}.t-icon-rotation:before{content:'\E631'}.t-icon-round-filled:before{content:'\E632'}.t-icon-round:before{content:'\E633'}.t-icon-router-wave-filled:before{content:'\E634'}.t-icon-router-wave:before{content:'\E635'}.t-icon-rss:before{content:'\E636'}.t-icon-ruler-filled:before{content:'\E637'}.t-icon-ruler:before{content:'\E638'}.t-icon-sailing-hotel-filled:before{content:'\E639'}.t-icon-sailing-hotel:before{content:'\E63A'}.t-icon-sandwich-filled:before{content:'\E63B'}.t-icon-sandwich:before{content:'\E63C'}.t-icon-saturation-filled:before{content:'\E63D'}.t-icon-saturation:before{content:'\E63E'}.t-icon-sausage-filled:before{content:'\E63F'}.t-icon-sausage:before{content:'\E640'}.t-icon-save-filled:before{content:'\E641'}.t-icon-save:before{content:'\E642'}.t-icon-saving-pot-filled:before{content:'\E643'}.t-icon-saving-pot:before{content:'\E644'}.t-icon-scan:before{content:'\E645'}.t-icon-screen-4k-filled:before{content:'\E646'}.t-icon-screen-4k:before{content:'\E647'}.t-icon-screencast-filled:before{content:'\E648'}.t-icon-screencast:before{content:'\E649'}.t-icon-screenshot:before{content:'\E64A'}.t-icon-scroll-bar-filled:before{content:'\E64B'}.t-icon-scroll-bar:before{content:'\E64C'}.t-icon-sd-card-1-filled:before{content:'\E64D'}.t-icon-sd-card-1:before{content:'\E64E'}.t-icon-sd-card-filled:before{content:'\E64F'}.t-icon-sd-card:before{content:'\E650'}.t-icon-seal-filled:before{content:'\E651'}.t-icon-seal:before{content:'\E652'}.t-icon-search-error-filled:before{content:'\E653'}.t-icon-search-error:before{content:'\E654'}.t-icon-search-filled:before{content:'\E655'}.t-icon-search:before{content:'\E656'}.t-icon-secured-filled:before{content:'\E657'}.t-icon-secured:before{content:'\E658'}.t-icon-send-cancel-filled:before{content:'\E659'}.t-icon-send-cancel:before{content:'\E65A'}.t-icon-send-filled:before{content:'\E65B'}.t-icon-send:before{content:'\E65C'}.t-icon-sensors-1:before{content:'\E65D'}.t-icon-sensors-2:before{content:'\E65E'}.t-icon-sensors-off:before{content:'\E65F'}.t-icon-sensors:before{content:'\E660'}.t-icon-sequence-filled:before{content:'\E661'}.t-icon-sequence:before{content:'\E662'}.t-icon-serenity-filled:before{content:'\E663'}.t-icon-serenity:before{content:'\E664'}.t-icon-server-filled:before{content:'\E665'}.t-icon-server:before{content:'\E666'}.t-icon-service-filled:before{content:'\E667'}.t-icon-service:before{content:'\E668'}.t-icon-setting-1-filled:before{content:'\E669'}.t-icon-setting-1:before{content:'\E66A'}.t-icon-setting-filled:before{content:'\E66B'}.t-icon-setting:before{content:'\E66C'}.t-icon-share-1-filled:before{content:'\E66D'}.t-icon-share-1:before{content:'\E66E'}.t-icon-share-filled:before{content:'\E66F'}.t-icon-share:before{content:'\E670'}.t-icon-sharpness-filled:before{content:'\E671'}.t-icon-sharpness:before{content:'\E672'}.t-icon-shield-error-filled:before{content:'\E673'}.t-icon-shield-error:before{content:'\E674'}.t-icon-shimen-filled:before{content:'\E675'}.t-icon-shimen:before{content:'\E676'}.t-icon-shop-1-filled:before{content:'\E677'}.t-icon-shop-1:before{content:'\E678'}.t-icon-shop-2-filled:before{content:'\E679'}.t-icon-shop-2:before{content:'\E67A'}.t-icon-shop-3-filled:before{content:'\E67B'}.t-icon-shop-3:before{content:'\E67C'}.t-icon-shop-4-filled:before{content:'\E67D'}.t-icon-shop-4:before{content:'\E67E'}.t-icon-shop-5-filled:before{content:'\E67F'}.t-icon-shop-5:before{content:'\E680'}.t-icon-shop-filled:before{content:'\E681'}.t-icon-shop:before{content:'\E682'}.t-icon-shrimp-filled:before{content:'\E683'}.t-icon-shrimp:before{content:'\E684'}.t-icon-shrink-horizontal:before{content:'\E685'}.t-icon-shrink-vertical:before{content:'\E686'}.t-icon-shutter-filled:before{content:'\E687'}.t-icon-shutter:before{content:'\E688'}.t-icon-shutup-filled:before{content:'\E689'}.t-icon-shutup:before{content:'\E68A'}.t-icon-sim-card-1-filled:before{content:'\E68B'}.t-icon-sim-card-1:before{content:'\E68C'}.t-icon-sim-card-2-filled:before{content:'\E68D'}.t-icon-sim-card-2:before{content:'\E68E'}.t-icon-sim-card-filled:before{content:'\E68F'}.t-icon-sim-card:before{content:'\E690'}.t-icon-sinister-smile-filled:before{content:'\E691'}.t-icon-sinister-smile:before{content:'\E692'}.t-icon-sip-filled:before{content:'\E693'}.t-icon-sip:before{content:'\E694'}.t-icon-sitemap-filled:before{content:'\E695'}.t-icon-sitemap:before{content:'\E696'}.t-icon-slash:before{content:'\E697'}.t-icon-sleep-filled:before{content:'\E698'}.t-icon-sleep:before{content:'\E699'}.t-icon-slice-filled:before{content:'\E69A'}.t-icon-slice:before{content:'\E69B'}.t-icon-slideshow-filled:before{content:'\E69C'}.t-icon-slideshow:before{content:'\E69D'}.t-icon-smile-filled:before{content:'\E69E'}.t-icon-smile:before{content:'\E69F'}.t-icon-sneer-filled:before{content:'\E6A0'}.t-icon-sneer:before{content:'\E6A1'}.t-icon-snowflake:before{content:'\E6A2'}.t-icon-sonic:before{content:'\E6A3'}.t-icon-sound-down-filled:before{content:'\E6A4'}.t-icon-sound-down:before{content:'\E6A5'}.t-icon-sound-filled:before{content:'\E6A6'}.t-icon-sound-high-filled:before{content:'\E6A7'}.t-icon-sound-high:before{content:'\E6A8'}.t-icon-sound-low-filled:before{content:'\E6A9'}.t-icon-sound-low:before{content:'\E6AA'}.t-icon-sound-mute-1-filled:before{content:'\E6AB'}.t-icon-sound-mute-1:before{content:'\E6AC'}.t-icon-sound-mute-filled:before{content:'\E6AD'}.t-icon-sound-mute:before{content:'\E6AE'}.t-icon-sound-up-filled:before{content:'\E6AF'}.t-icon-sound-up:before{content:'\E6B0'}.t-icon-sound:before{content:'\E6B1'}.t-icon-space:before{content:'\E6B2'}.t-icon-speechless-1-filled:before{content:'\E6B3'}.t-icon-speechless-1:before{content:'\E6B4'}.t-icon-speechless-filled:before{content:'\E6B5'}.t-icon-speechless:before{content:'\E6B6'}.t-icon-star-filled:before{content:'\E6B7'}.t-icon-star:before{content:'\E6B8'}.t-icon-statue-of-jesus-filled:before{content:'\E6B9'}.t-icon-statue-of-jesus:before{content:'\E6BA'}.t-icon-sticky-note-filled:before{content:'\E6BB'}.t-icon-sticky-note:before{content:'\E6BC'}.t-icon-stop-circle-filled:before{content:'\E6BD'}.t-icon-stop-circle-stroke-filled:before{content:'\E6BE'}.t-icon-stop-circle-stroke:before{content:'\E6BF'}.t-icon-stop-circle:before{content:'\E6C0'}.t-icon-stop:before{content:'\E6C1'}.t-icon-store-filled:before{content:'\E6C2'}.t-icon-store:before{content:'\E6C3'}.t-icon-street-road-1-filled:before{content:'\E6C4'}.t-icon-street-road-1:before{content:'\E6C5'}.t-icon-street-road-filled:before{content:'\E6C6'}.t-icon-street-road:before{content:'\E6C7'}.t-icon-subtitle-filled:before{content:'\E6C8'}.t-icon-subtitle:before{content:'\E6C9'}.t-icon-subway-line-filled:before{content:'\E6CA'}.t-icon-subway-line:before{content:'\E6CB'}.t-icon-sum:before{content:'\E6CC'}.t-icon-sun-fall-filled:before{content:'\E6CD'}.t-icon-sun-fall:before{content:'\E6CE'}.t-icon-sun-rising-filled:before{content:'\E6CF'}.t-icon-sun-rising:before{content:'\E6D0'}.t-icon-sunny-filled:before{content:'\E6D1'}.t-icon-sunny:before{content:'\E6D2'}.t-icon-support-filled:before{content:'\E6D3'}.t-icon-support:before{content:'\E6D4'}.t-icon-surprised-1-filled:before{content:'\E6D5'}.t-icon-surprised-1:before{content:'\E6D6'}.t-icon-surprised-filled:before{content:'\E6D7'}.t-icon-surprised:before{content:'\E6D8'}.t-icon-swap-left:before{content:'\E6D9'}.t-icon-swap-right:before{content:'\E6DA'}.t-icon-swap:before{content:'\E6DB'}.t-icon-swear-1-filled:before{content:'\E6DC'}.t-icon-swear-1:before{content:'\E6DD'}.t-icon-swear-2-filled:before{content:'\E6DE'}.t-icon-swear-2:before{content:'\E6DF'}.t-icon-system-2:before{content:'\E6E0'}.t-icon-system-3-filled:before{content:'\E6E1'}.t-icon-system-3:before{content:'\E6E2'}.t-icon-system-application-filled:before{content:'\E6E3'}.t-icon-system-application:before{content:'\E6E4'}.t-icon-system-blocked-filled:before{content:'\E6E5'}.t-icon-system-blocked:before{content:'\E6E6'}.t-icon-system-code-filled:before{content:'\E6E7'}.t-icon-system-code:before{content:'\E6E8'}.t-icon-system-components-filled:before{content:'\E6E9'}.t-icon-system-components:before{content:'\E6EA'}.t-icon-system-coordinate-filled:before{content:'\E6EB'}.t-icon-system-coordinate:before{content:'\E6EC'}.t-icon-system-device-filled:before{content:'\E6ED'}.t-icon-system-device:before{content:'\E6EE'}.t-icon-system-interface-filled:before{content:'\E6EF'}.t-icon-system-interface:before{content:'\E6F0'}.t-icon-system-location-filled:before{content:'\E6F1'}.t-icon-system-location:before{content:'\E6F2'}.t-icon-system-locked-filled:before{content:'\E6F3'}.t-icon-system-locked:before{content:'\E6F4'}.t-icon-system-log-filled:before{content:'\E6F5'}.t-icon-system-log:before{content:'\E6F6'}.t-icon-system-marked-filled:before{content:'\E6F7'}.t-icon-system-marked:before{content:'\E6F8'}.t-icon-system-messages-filled:before{content:'\E6F9'}.t-icon-system-messages:before{content:'\E6FA'}.t-icon-system-regulation-filled:before{content:'\E6FB'}.t-icon-system-regulation:before{content:'\E6FC'}.t-icon-system-search-filled:before{content:'\E6FD'}.t-icon-system-search:before{content:'\E6FE'}.t-icon-system-setting-filled:before{content:'\E6FF'}.t-icon-system-setting:before{content:'\E700'}.t-icon-system-storage-filled:before{content:'\E701'}.t-icon-system-storage:before{content:'\E702'}.t-icon-system-sum:before{content:'\E703'}.t-icon-system-unlocked-filled:before{content:'\E704'}.t-icon-system-unlocked:before{content:'\E705'}.t-icon-tab-filled:before{content:'\E706'}.t-icon-tab:before{content:'\E707'}.t-icon-table-1-filled:before{content:'\E708'}.t-icon-table-1:before{content:'\E709'}.t-icon-table-2-filled:before{content:'\E70A'}.t-icon-table-2:before{content:'\E70B'}.t-icon-table-add-filled:before{content:'\E70C'}.t-icon-table-add:before{content:'\E70D'}.t-icon-table-filled:before{content:'\E70E'}.t-icon-table-split-filled:before{content:'\E70F'}.t-icon-table-split:before{content:'\E710'}.t-icon-table:before{content:'\E711'}.t-icon-tag-filled:before{content:'\E712'}.t-icon-tag:before{content:'\E713'}.t-icon-tangerinr-filled:before{content:'\E714'}.t-icon-tangerinr:before{content:'\E715'}.t-icon-tape-filled:before{content:'\E716'}.t-icon-tape:before{content:'\E717'}.t-icon-task-1-filled:before{content:'\E718'}.t-icon-task-1:before{content:'\E719'}.t-icon-task-add-1:before{content:'\E71A'}.t-icon-task-add-filled:before{content:'\E71B'}.t-icon-task-add:before{content:'\E71C'}.t-icon-task-checked-1:before{content:'\E71D'}.t-icon-task-checked-filled:before{content:'\E71E'}.t-icon-task-checked:before{content:'\E71F'}.t-icon-task-double-filled:before{content:'\E720'}.t-icon-task-double:before{content:'\E721'}.t-icon-task-error-filled:before{content:'\E722'}.t-icon-task-error:before{content:'\E723'}.t-icon-task-filled:before{content:'\E724'}.t-icon-task-location-filled:before{content:'\E725'}.t-icon-task-location:before{content:'\E726'}.t-icon-task-marked-filled:before{content:'\E727'}.t-icon-task-marked:before{content:'\E728'}.t-icon-task-setting-filled:before{content:'\E729'}.t-icon-task-setting:before{content:'\E72A'}.t-icon-task-time-filled:before{content:'\E72B'}.t-icon-task-time:before{content:'\E72C'}.t-icon-task-visible-filled:before{content:'\E72D'}.t-icon-task-visible:before{content:'\E72E'}.t-icon-task:before{content:'\E72F'}.t-icon-tea-filled:before{content:'\E730'}.t-icon-tea:before{content:'\E731'}.t-icon-teahouse-filled:before{content:'\E732'}.t-icon-teahouse:before{content:'\E733'}.t-icon-template-filled:before{content:'\E734'}.t-icon-template:before{content:'\E735'}.t-icon-temple-filled:before{content:'\E736'}.t-icon-temple:before{content:'\E737'}.t-icon-terminal-rectangle-1-filled:before{content:'\E738'}.t-icon-terminal-rectangle-1:before{content:'\E739'}.t-icon-terminal-rectangle-filled:before{content:'\E73A'}.t-icon-terminal-rectangle:before{content:'\E73B'}.t-icon-terminal-window-filled:before{content:'\E73C'}.t-icon-terminal-window:before{content:'\E73D'}.t-icon-terminal:before{content:'\E73E'}.t-icon-textbox-filled:before{content:'\E73F'}.t-icon-textbox:before{content:'\E740'}.t-icon-textformat-bold:before{content:'\E741'}.t-icon-textformat-color:before{content:'\E742'}.t-icon-textformat-italic:before{content:'\E743'}.t-icon-textformat-strikethrough:before{content:'\E744'}.t-icon-textformat-underline:before{content:'\E745'}.t-icon-textformat-wrap:before{content:'\E746'}.t-icon-theaters-filled:before{content:'\E747'}.t-icon-theaters:before{content:'\E748'}.t-icon-thumb-down-1-filled:before{content:'\E749'}.t-icon-thumb-down-1:before{content:'\E74A'}.t-icon-thumb-down-2-filled:before{content:'\E74B'}.t-icon-thumb-down-2:before{content:'\E74C'}.t-icon-thumb-down-filled:before{content:'\E74D'}.t-icon-thumb-down:before{content:'\E74E'}.t-icon-thumb-up-1-filled:before{content:'\E74F'}.t-icon-thumb-up-1:before{content:'\E750'}.t-icon-thumb-up-2-filled:before{content:'\E751'}.t-icon-thumb-up-2:before{content:'\E752'}.t-icon-thumb-up-filled:before{content:'\E753'}.t-icon-thumb-up:before{content:'\E754'}.t-icon-thunder:before{content:'\E755'}.t-icon-thunderstorm-night-filled:before{content:'\E756'}.t-icon-thunderstorm-night:before{content:'\E757'}.t-icon-thunderstorm-sunny-filled:before{content:'\E758'}.t-icon-thunderstorm-sunny:before{content:'\E759'}.t-icon-thunderstorm:before{content:'\E75A'}.t-icon-ticket-filled:before{content:'\E75B'}.t-icon-ticket:before{content:'\E75C'}.t-icon-time-filled:before{content:'\E75D'}.t-icon-time:before{content:'\E75E'}.t-icon-tips-double-filled:before{content:'\E75F'}.t-icon-tips-double:before{content:'\E760'}.t-icon-tips-filled:before{content:'\E761'}.t-icon-tips:before{content:'\E762'}.t-icon-tomato-filled:before{content:'\E763'}.t-icon-tomato:before{content:'\E764'}.t-icon-tools-circle-filled:before{content:'\E765'}.t-icon-tools-circle:before{content:'\E766'}.t-icon-tools-filled:before{content:'\E767'}.t-icon-tools:before{content:'\E768'}.t-icon-tornado:before{content:'\E769'}.t-icon-tower-1-filled:before{content:'\E76A'}.t-icon-tower-1:before{content:'\E76B'}.t-icon-tower-2-filled:before{content:'\E76C'}.t-icon-tower-2:before{content:'\E76D'}.t-icon-tower-3-filled:before{content:'\E76E'}.t-icon-tower-3:before{content:'\E76F'}.t-icon-tower-clock-filled:before{content:'\E770'}.t-icon-tower-clock:before{content:'\E771'}.t-icon-tower-filled:before{content:'\E772'}.t-icon-tower:before{content:'\E773'}.t-icon-town-filled:before{content:'\E774'}.t-icon-town:before{content:'\E775'}.t-icon-traffic-events-filled:before{content:'\E776'}.t-icon-traffic-events:before{content:'\E777'}.t-icon-traffic-filled:before{content:'\E778'}.t-icon-traffic:before{content:'\E779'}.t-icon-transform-1-filled:before{content:'\E77A'}.t-icon-transform-1:before{content:'\E77B'}.t-icon-transform-2:before{content:'\E77C'}.t-icon-transform-3:before{content:'\E77D'}.t-icon-transform-filled:before{content:'\E77E'}.t-icon-transform:before{content:'\E77F'}.t-icon-translate-1:before{content:'\E780'}.t-icon-translate:before{content:'\E781'}.t-icon-tree-round-dot-filled:before{content:'\E782'}.t-icon-tree-round-dot-vertical-filled:before{content:'\E783'}.t-icon-tree-round-dot-vertical:before{content:'\E784'}.t-icon-tree-round-dot:before{content:'\E785'}.t-icon-tree-square-dot-filled:before{content:'\E786'}.t-icon-tree-square-dot-vertical-filled:before{content:'\E787'}.t-icon-tree-square-dot-vertical:before{content:'\E788'}.t-icon-tree-square-dot:before{content:'\E789'}.t-icon-trending-down:before{content:'\E78A'}.t-icon-trending-up:before{content:'\E78B'}.t-icon-tv-1-filled:before{content:'\E78C'}.t-icon-tv-1:before{content:'\E78D'}.t-icon-tv-2-filled:before{content:'\E78E'}.t-icon-tv-2:before{content:'\E78F'}.t-icon-tv-filled:before{content:'\E790'}.t-icon-tv:before{content:'\E791'}.t-icon-typography-filled:before{content:'\E792'}.t-icon-typography:before{content:'\E793'}.t-icon-uncomfortable-1-filled:before{content:'\E794'}.t-icon-uncomfortable-1:before{content:'\E795'}.t-icon-uncomfortable-2-filled:before{content:'\E796'}.t-icon-uncomfortable-2:before{content:'\E797'}.t-icon-uncomfortable-filled:before{content:'\E798'}.t-icon-uncomfortable:before{content:'\E799'}.t-icon-undertake-delivery-filled:before{content:'\E79A'}.t-icon-undertake-delivery:before{content:'\E79B'}.t-icon-undertake-environment-protection-filled:before{content:'\E79C'}.t-icon-undertake-environment-protection:before{content:'\E79D'}.t-icon-undertake-filled:before{content:'\E79E'}.t-icon-undertake-hold-up-filled:before{content:'\E79F'}.t-icon-undertake-hold-up:before{content:'\E7A0'}.t-icon-undertake-transaction-filled:before{content:'\E7A1'}.t-icon-undertake-transaction:before{content:'\E7A2'}.t-icon-undertake:before{content:'\E7A3'}.t-icon-unfold-less:before{content:'\E7A4'}.t-icon-unfold-more:before{content:'\E7A5'}.t-icon-unhappy-1-filled:before{content:'\E7A6'}.t-icon-unhappy-1:before{content:'\E7A7'}.t-icon-unhappy-filled:before{content:'\E7A8'}.t-icon-unhappy:before{content:'\E7A9'}.t-icon-uninstall-filled:before{content:'\E7AA'}.t-icon-uninstall:before{content:'\E7AB'}.t-icon-upload-1:before{content:'\E7AC'}.t-icon-upload:before{content:'\E7AD'}.t-icon-upscale:before{content:'\E7AE'}.t-icon-usb-filled:before{content:'\E7AF'}.t-icon-usb:before{content:'\E7B0'}.t-icon-user-1-filled:before{content:'\E7B1'}.t-icon-user-1:before{content:'\E7B2'}.t-icon-user-add-filled:before{content:'\E7B3'}.t-icon-user-add:before{content:'\E7B4'}.t-icon-user-arrow-down-filled:before{content:'\E7B5'}.t-icon-user-arrow-down:before{content:'\E7B6'}.t-icon-user-arrow-left-filled:before{content:'\E7B7'}.t-icon-user-arrow-left:before{content:'\E7B8'}.t-icon-user-arrow-right-filled:before{content:'\E7B9'}.t-icon-user-arrow-right:before{content:'\E7BA'}.t-icon-user-arrow-up-filled:before{content:'\E7BB'}.t-icon-user-arrow-up:before{content:'\E7BC'}.t-icon-user-avatar-filled:before{content:'\E7BD'}.t-icon-user-avatar:before{content:'\E7BE'}.t-icon-user-blocked-filled:before{content:'\E7BF'}.t-icon-user-blocked:before{content:'\E7C0'}.t-icon-user-business-filled:before{content:'\E7C1'}.t-icon-user-business:before{content:'\E7C2'}.t-icon-user-checked-1-filled:before{content:'\E7C3'}.t-icon-user-checked-1:before{content:'\E7C4'}.t-icon-user-checked-filled:before{content:'\E7C5'}.t-icon-user-checked:before{content:'\E7C6'}.t-icon-user-circle-filled:before{content:'\E7C7'}.t-icon-user-circle:before{content:'\E7C8'}.t-icon-user-clear-filled:before{content:'\E7C9'}.t-icon-user-clear:before{content:'\E7CA'}.t-icon-user-error-1-filled:before{content:'\E7CB'}.t-icon-user-error-1:before{content:'\E7CC'}.t-icon-user-filled:before{content:'\E7CD'}.t-icon-user-invisible-filled:before{content:'\E7CE'}.t-icon-user-invisible:before{content:'\E7CF'}.t-icon-user-list-filled:before{content:'\E7D0'}.t-icon-user-list:before{content:'\E7D1'}.t-icon-user-locked-filled:before{content:'\E7D2'}.t-icon-user-locked:before{content:'\E7D3'}.t-icon-user-marked-filled:before{content:'\E7D4'}.t-icon-user-marked:before{content:'\E7D5'}.t-icon-user-password-filled:before{content:'\E7D6'}.t-icon-user-password:before{content:'\E7D7'}.t-icon-user-safety-filled:before{content:'\E7D8'}.t-icon-user-safety:before{content:'\E7D9'}.t-icon-user-search-filled:before{content:'\E7DA'}.t-icon-user-search:before{content:'\E7DB'}.t-icon-user-setting-filled:before{content:'\E7DC'}.t-icon-user-setting:before{content:'\E7DD'}.t-icon-user-talk-1-filled:before{content:'\E7DE'}.t-icon-user-talk-1:before{content:'\E7DF'}.t-icon-user-talk-filled:before{content:'\E7E0'}.t-icon-user-talk-off-1-filled:before{content:'\E7E1'}.t-icon-user-talk-off-1:before{content:'\E7E2'}.t-icon-user-talk:before{content:'\E7E3'}.t-icon-user-time-filled:before{content:'\E7E4'}.t-icon-user-time:before{content:'\E7E5'}.t-icon-user-transmit-filled:before{content:'\E7E6'}.t-icon-user-transmit:before{content:'\E7E7'}.t-icon-user-unknown-filled:before{content:'\E7E8'}.t-icon-user-unknown:before{content:'\E7E9'}.t-icon-user-unlocked-filled:before{content:'\E7EA'}.t-icon-user-unlocked:before{content:'\E7EB'}.t-icon-user-vip-filled:before{content:'\E7EC'}.t-icon-user-vip:before{content:'\E7ED'}.t-icon-user-visible-filled:before{content:'\E7EE'}.t-icon-user-visible:before{content:'\E7EF'}.t-icon-user:before{content:'\E7F0'}.t-icon-usercase-filled:before{content:'\E7F1'}.t-icon-usercase-link-filled:before{content:'\E7F2'}.t-icon-usercase-link:before{content:'\E7F3'}.t-icon-usercase:before{content:'\E7F4'}.t-icon-usergroup-add-filled:before{content:'\E7F5'}.t-icon-usergroup-add:before{content:'\E7F6'}.t-icon-usergroup-clear-filled:before{content:'\E7F7'}.t-icon-usergroup-clear:before{content:'\E7F8'}.t-icon-usergroup-filled:before{content:'\E7F9'}.t-icon-usergroup:before{content:'\E7FA'}.t-icon-vehicle-filled:before{content:'\E7FB'}.t-icon-vehicle:before{content:'\E7FC'}.t-icon-verified-filled:before{content:'\E7FD'}.t-icon-verified:before{content:'\E7FE'}.t-icon-verify-filled:before{content:'\E7FF'}.t-icon-verify:before{content:'\E800'}.t-icon-vertical-filled:before{content:'\E801'}.t-icon-vertical:before{content:'\E802'}.t-icon-video-camera-1-filled:before{content:'\E803'}.t-icon-video-camera-1:before{content:'\E804'}.t-icon-video-camera-2-filled:before{content:'\E805'}.t-icon-video-camera-2:before{content:'\E806'}.t-icon-video-camera-3-filled:before{content:'\E807'}.t-icon-video-camera-3:before{content:'\E808'}.t-icon-video-camera-dollar-filled:before{content:'\E809'}.t-icon-video-camera-dollar:before{content:'\E80A'}.t-icon-video-camera-filled:before{content:'\E80B'}.t-icon-video-camera-minus-filled:before{content:'\E80C'}.t-icon-video-camera-minus:before{content:'\E80D'}.t-icon-video-camera-music-filled:before{content:'\E80E'}.t-icon-video-camera-music:before{content:'\E80F'}.t-icon-video-camera-off-filled:before{content:'\E810'}.t-icon-video-camera-off:before{content:'\E811'}.t-icon-video-camera:before{content:'\E812'}.t-icon-video-filled:before{content:'\E813'}.t-icon-video-library-filled:before{content:'\E814'}.t-icon-video-library:before{content:'\E815'}.t-icon-video:before{content:'\E816'}.t-icon-view-agenda-filled:before{content:'\E817'}.t-icon-view-agenda:before{content:'\E818'}.t-icon-view-column:before{content:'\E819'}.t-icon-view-in-ar-filled:before{content:'\E81A'}.t-icon-view-in-ar:before{content:'\E81B'}.t-icon-view-list:before{content:'\E81C'}.t-icon-view-module-filled:before{content:'\E81D'}.t-icon-view-module:before{content:'\E81E'}.t-icon-visual-recognition-filled:before{content:'\E81F'}.t-icon-visual-recognition:before{content:'\E820'}.t-icon-wallet-filled:before{content:'\E821'}.t-icon-wallet:before{content:'\E822'}.t-icon-watch-filled:before{content:'\E823'}.t-icon-watch:before{content:'\E824'}.t-icon-watermelon-filled:before{content:'\E825'}.t-icon-watermelon:before{content:'\E826'}.t-icon-wave-bye-filled:before{content:'\E827'}.t-icon-wave-bye:before{content:'\E828'}.t-icon-wave-left-filled:before{content:'\E829'}.t-icon-wave-left:before{content:'\E82A'}.t-icon-wave-right-filled:before{content:'\E82B'}.t-icon-wave-right:before{content:'\E82C'}.t-icon-wealth-1-filled:before{content:'\E82D'}.t-icon-wealth-1:before{content:'\E82E'}.t-icon-wealth-filled:before{content:'\E82F'}.t-icon-wealth:before{content:'\E830'}.t-icon-widget-filled:before{content:'\E831'}.t-icon-widget:before{content:'\E832'}.t-icon-wifi-1-filled:before{content:'\E833'}.t-icon-wifi-1:before{content:'\E834'}.t-icon-wifi-off-1-filled:before{content:'\E835'}.t-icon-wifi-off-1:before{content:'\E836'}.t-icon-wifi-off:before{content:'\E837'}.t-icon-wifi:before{content:'\E838'}.t-icon-window-1-filled:before{content:'\E839'}.t-icon-window-1:before{content:'\E83A'}.t-icon-window-filled:before{content:'\E83B'}.t-icon-window:before{content:'\E83C'}.t-icon-windy-rain:before{content:'\E83D'}.t-icon-windy:before{content:'\E83E'}.t-icon-wink-filled:before{content:'\E83F'}.t-icon-wink:before{content:'\E840'}.t-icon-work-filled:before{content:'\E841'}.t-icon-work-history-filled:before{content:'\E842'}.t-icon-work-history:before{content:'\E843'}.t-icon-work-off-filled:before{content:'\E844'}.t-icon-work-off:before{content:'\E845'}.t-icon-work:before{content:'\E846'}.t-icon-wry-smile-filled:before{content:'\E847'}.t-icon-wry-smile:before{content:'\E848'}.t-icon-zoom-in-filled:before{content:'\E849'}.t-icon-zoom-in:before{content:'\E84A'}.t-icon-zoom-out-filled:before{content:'\E84B'}.t-icon-zoom-out:before{content:'\E84C'}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/props.d.ts b/miniprogram_npm/tdesign-miniprogram/icon/props.d.ts
new file mode 100644
index 0000000..a472c01
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/props.d.ts
@@ -0,0 +1,3 @@
+import { TdIconProps } from './type';
+declare const props: TdIconProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/props.js b/miniprogram_npm/tdesign-miniprogram/icon/props.js
new file mode 100644
index 0000000..b05c530
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/props.js
@@ -0,0 +1 @@
+const props={color:{type:String,value:""},name:{type:String,value:"",required:!0},prefix:{type:String,value:""},size:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/type.d.ts b/miniprogram_npm/tdesign-miniprogram/icon/type.d.ts
new file mode 100644
index 0000000..c92226c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/type.d.ts
@@ -0,0 +1,19 @@
+export interface TdIconProps {
+ color?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ name: {
+ type: StringConstructor;
+ value?: string;
+ required?: boolean;
+ };
+ prefix?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ size?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/icon/type.js b/miniprogram_npm/tdesign-miniprogram/icon/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/icon/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.d.ts b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.d.ts
new file mode 100644
index 0000000..d5766e9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.d.ts
@@ -0,0 +1,93 @@
+import { SuperComponent } from '../common/src/index';
+export default class ImageViewer extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ backgroundColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ closeBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ deleteBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ images?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ initialIndex?: {
+ type: NumberConstructor;
+ value?: Number;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showIndex?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ currentSwiperIndex: number;
+ loadedImageIndexes: any[];
+ windowHeight: number;
+ windowWidth: number;
+ swiperStyle: {};
+ imagesStyle: {};
+ maskTop: number;
+ };
+ options: {
+ multipleSlots: boolean;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ ready(): void;
+ observers: {
+ 'visible,initialIndex,images'(visible: any, initialIndex: any, images: any): void;
+ closeBtn(v: any): void;
+ deleteBtn(v: any): void;
+ };
+ methods: {
+ calcMaskTop(): void;
+ saveScreenSize(): void;
+ calcImageDisplayStyle(imageWidth: any, imageHeight: any): {
+ styleObj: {
+ width: string;
+ height: string;
+ left: string;
+ transform: string;
+ };
+ } | {
+ styleObj: {
+ width: string;
+ height: string;
+ left?: undefined;
+ transform?: undefined;
+ };
+ };
+ onImageLoadSuccess(e: WechatMiniprogram.TouchEvent): void;
+ onSwiperChange(e: WechatMiniprogram.TouchEvent): void;
+ onClose(e: any): void;
+ onDelete(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.js b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.js
new file mode 100644
index 0000000..2de47d7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{styles,calcIcon,systemInfo}from"../common/utils";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-image-viewer`;let ImageViewer=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,currentSwiperIndex:0,loadedImageIndexes:[],windowHeight:0,windowWidth:0,swiperStyle:{},imagesStyle:{},maskTop:0},this.options={multipleSlots:!0},this.controlledProps=[{key:"visible",event:"close"}],this.observers={"visible,initialIndex,images"(e,t,s){e&&(null==s?void 0:s.length)&&this.setData({loadedImageIndexes:[],currentSwiperIndex:t>=s.length?s.length-1:t})},closeBtn(e){this.setData({_closeBtn:calcIcon(e,"close")})},deleteBtn(e){this.setData({_deleteBtn:calcIcon(e,"delete")})}},this.methods={calcMaskTop(){if(this.data.usingCustomNavbar){const e=(null===wx||void 0===wx?void 0:wx.getMenuButtonBoundingClientRect())||null,{statusBarHeight:t}=systemInfo;e&&t&&this.setData({maskTop:e.top-t+e.bottom})}},saveScreenSize(){const{windowHeight:e,windowWidth:t}=systemInfo;this.setData({windowHeight:e,windowWidth:t})},calcImageDisplayStyle(e,t){const{windowWidth:s,windowHeight:i}=this.data,a=e/t;if(e=1)return{styleObj:{width:"100vw",height:s/a*2+"rpx"}};const n=a*i*2;return n{{currentSwiperIndex + 1}}/{{images.length}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxs b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxs
new file mode 100644
index 0000000..780bb4e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxs
@@ -0,0 +1,7 @@
+function shouldLoadImage(index, currentIndex, loadedIndexes) {
+ return Math.abs(index - currentIndex) <= 1 || (loadedIndexes && loadedIndexes.indexOf(index) !== -1);
+}
+
+module.exports = {
+ shouldLoadImage: shouldLoadImage,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxss b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxss
new file mode 100644
index 0000000..9acec8b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/image-viewer.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-image-viewer{position:fixed;top:var(--td-image-viewer-top,var(--td-position-fixed-top,0));left:0;bottom:0;right:0;z-index:1001;transform:translateZ(0);overflow:hidden}.t-image-viewer__mask{position:absolute;z-index:1000;left:0;top:0;width:100%;height:100%}.t-image-viewer__content{width:100vw;display:inline-block;position:absolute;top:50%;transform:translateY(-50%);z-index:1005}.t-image-viewer .swiper{outline:0}.t-image-viewer__image{width:100%;display:inline-block;position:absolute;top:50%;transform:translateY(-50%)}.t-image-viewer .t-image--external{width:inherit;height:inherit;display:block}.t-image-viewer__nav{width:100%;position:absolute;display:flex;align-items:center;justify-content:space-between;height:var(--td-image-viewer-nav-height,96rpx);background-color:var(--td-image-viewer-nav-bg-color,var(--td-font-gray-3,rgba(0,0,0,.4)));left:0;color:var(--td-image-viewer-nav-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));z-index:1005}.t-image-viewer__nav-close{margin-left:var(--td-image-viewer-close-margin-left,var(--td-spacer-1,24rpx))}.t-image-viewer__nav-close:empty{display:none}.t-image-viewer__nav-delete{margin-right:var(--td-image-viewer-delete-margin-right,var(--td-spacer-1,24rpx))}.t-image-viewer__nav-delete:empty{display:none}.t-image-viewer__nav-close,.t-image-viewer__nav-delete{font-size:48rpx}.t-image-viewer__nav-index{flex:1;font-size:var(--td-image-viewer-nav-index-font-size,var(--td-font-size-base,28rpx));text-align:center}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/props.d.ts b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.d.ts
new file mode 100644
index 0000000..9fec1e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.d.ts
@@ -0,0 +1,3 @@
+import { TdImageViewerProps } from './type';
+declare const props: TdImageViewerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/props.js b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.js
new file mode 100644
index 0000000..02d586a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/props.js
@@ -0,0 +1 @@
+const props={backgroundColor:{type:String,value:"rgba(0, 0, 0, 1)"},closeBtn:{type:null,value:!1},deleteBtn:{type:null,value:!1},images:{type:Array,value:[]},initialIndex:{type:Number,value:0},lazy:{type:Boolean,value:!0},showIndex:{type:Boolean,value:!1},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/type.d.ts b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.d.ts
new file mode 100644
index 0000000..8a5da94
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.d.ts
@@ -0,0 +1,42 @@
+export interface TdImageViewerProps {
+ backgroundColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ closeBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ deleteBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ images?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ initialIndex?: {
+ type: NumberConstructor;
+ value?: Number;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showIndex?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image-viewer/type.js b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image-viewer/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image-info.json b/miniprogram_npm/tdesign-miniprogram/image/image-info.json
new file mode 100644
index 0000000..e4999ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image-info.json
@@ -0,0 +1 @@
+{"key":"Image","label":"图片","icon":"","properties":[{"key":"error","type":["String","TNode"],"defaultValue":"'default'","desc":"加载失败时显示的内容。值为 `default` 则表示使用默认加载失败风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `error`;值为其他则表示普通文本内容,如“加载失败”","label":""},{"key":"externalClasses","type":["Array"],"defaultValue":"","desc":"组件类名,分别用于设置加载组件外层元素,中间内容等元素类名","label":""},{"key":"lazy","type":["Boolean"],"defaultValue":"false","desc":"是否开启图片懒加载","label":""},{"key":"loading","type":["String","TNode"],"defaultValue":"'default'","desc":"加载态内容。值为 `default` 则表示使用默认加载中风格;值为空或者 `slot` 表示使用插槽渲染,插槽名称为 `loading`;值为其他则表示普通文本内容,如“加载中”","label":""},{"key":"MP_EXCLUDE_PROPS","type":["String"],"defaultValue":"","desc":"为避免重复或冲突,需要过滤掉的小程序原生属性","label":""},{"key":"MP_PROPS","type":["String"],"defaultValue":"","desc":"[小程序原生属性](https://developers.weixin.qq.com/miniprogram/dev/component/image.html)","label":""},{"key":"shape","type":["String"],"defaultValue":"square","desc":"图片圆角类型","label":""},{"key":"src","type":["String"],"defaultValue":"","desc":"图片链接","label":""}],"events":[{"key":"error","desc":"图片加载失败时触发","label":""},{"key":"load","desc":"图片加载完成时触发","label":""}]}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.d.ts b/miniprogram_npm/tdesign-miniprogram/image/image.d.ts
new file mode 100644
index 0000000..36dc635
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.d.ts
@@ -0,0 +1,26 @@
+import { SuperComponent } from '../common/src/index';
+export default class Image extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdImageProps;
+ data: {
+ prefix: string;
+ isLoading: boolean;
+ isFailed: boolean;
+ innerStyle: string;
+ classPrefix: string;
+ };
+ preSrc: any;
+ observers: {
+ src(): void;
+ 'width, height'(width: any, height: any): void;
+ };
+ methods: {
+ onLoaded(e: any): void;
+ onLoadError(e: any): void;
+ calcSize(width: any, height: any): void;
+ update(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.js b/miniprogram_npm/tdesign-miniprogram/image/image.js
new file mode 100644
index 0000000..6a67fa8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import ImageProps from"./props";import config from"../common/config";import{addUnit,getRect,appBaseInfo}from"../common/utils";import{compareVersion}from"../common/version";const{prefix:prefix}=config,name=`${prefix}-image`;let Image=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-load`,`${prefix}-class-image`,`${prefix}-class-error`],this.options={multipleSlots:!0},this.properties=ImageProps,this.data={prefix:prefix,isLoading:!0,isFailed:!1,innerStyle:"",classPrefix:name},this.preSrc=void 0,this.observers={src(){this.preSrc!==this.properties.src&&this.update()},"width, height"(e,i){this.calcSize(e,i)}},this.methods={onLoaded(e){const i=appBaseInfo.SDKVersion,{mode:t,tId:s}=this.properties,r=compareVersion(i,"2.10.3")<0;if("heightFix"===t&&r){const{height:i,width:t}=e.detail;getRect(this,`#${s||"image"}`).then((e=>{const{height:s}=e,r=(s/i*t).toFixed(2);this.setData({innerStyle:`height: ${addUnit(s)}; width: ${r}px;`})}))}this.setData({isLoading:!1,isFailed:!1}),this.triggerEvent("load",e.detail)},onLoadError(e){this.setData({isLoading:!1,isFailed:!0}),this.triggerEvent("error",e.detail)},calcSize(e,i){let t="";e&&(t+=`width: ${addUnit(e)};`),i&&(t+=`height: ${addUnit(i)};`),this.setData({innerStyle:t})},update(){const{src:e}=this.properties;this.preSrc=e,e?this.setData({isLoading:!0,isFailed:!1}):this.onLoadError({errMsg:"图片链接为空"})}}}};Image=__decorate([wxComponent()],Image);export default Image;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.json b/miniprogram_npm/tdesign-miniprogram/image/image.json
new file mode 100644
index 0000000..3b6ed8c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-loading":"../loading/loading","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.wxml b/miniprogram_npm/tdesign-miniprogram/image/image.wxml
new file mode 100644
index 0000000..c735d3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.wxml
@@ -0,0 +1 @@
+{{loading}}{{error}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/image.wxss b/miniprogram_npm/tdesign-miniprogram/image/image.wxss
new file mode 100644
index 0000000..623b66f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/image.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-image{position:relative;display:inline-block}.t-image__img,.t-image__mask{color:var(--td-image-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));vertical-align:top;width:inherit;height:inherit}.t-image__mask{display:flex;align-items:center;justify-content:center;background-color:var(--td-image-loading-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));color:var(--td-image-loading-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-image--loading-text{width:0;height:0}.t-image__common{width:100%;height:100%}.t-image--lazy{position:absolute;top:0;left:0;z-index:-1}.t-image--shape-circle{border-radius:50%;overflow:hidden}.t-image--shape-round{border-radius:var(--td-image-round-radius,var(--td-radius-default,12rpx));overflow:hidden}.t-image--shape-square{border-radius:0;overflow:hidden}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/index.d.ts b/miniprogram_npm/tdesign-miniprogram/image/index.d.ts
new file mode 100644
index 0000000..0f85c43
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/index.d.ts
@@ -0,0 +1,4 @@
+import { TdImageProps } from './type';
+export declare type ImageProps = TdImageProps;
+export * from './props';
+export * from './image';
diff --git a/miniprogram_npm/tdesign-miniprogram/image/index.js b/miniprogram_npm/tdesign-miniprogram/image/index.js
new file mode 100644
index 0000000..b2b8ed2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./image";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/props.d.ts b/miniprogram_npm/tdesign-miniprogram/image/props.d.ts
new file mode 100644
index 0000000..0ab571b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/props.d.ts
@@ -0,0 +1,3 @@
+import { TdImageProps } from './type';
+declare const props: TdImageProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/image/props.js b/miniprogram_npm/tdesign-miniprogram/image/props.js
new file mode 100644
index 0000000..dd7132a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/props.js
@@ -0,0 +1 @@
+const props={error:{type:String,value:"default"},height:{type:null},lazy:{type:Boolean,value:!1},loading:{type:String,value:"default"},mode:{type:String,value:"scaleToFill"},shape:{type:String,value:"square"},showMenuByLongpress:{type:Boolean,value:!1},src:{type:String,value:""},tId:{type:String,value:""},webp:{type:Boolean,value:!1},width:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/image/type.d.ts b/miniprogram_npm/tdesign-miniprogram/image/type.d.ts
new file mode 100644
index 0000000..4279319
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/type.d.ts
@@ -0,0 +1,46 @@
+export interface TdImageProps {
+ error?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ height?: {
+ type: null;
+ value?: string | number;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ loading?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ mode?: {
+ type: StringConstructor;
+ value?: 'scaleToFill' | 'aspectFit' | 'aspectFill' | 'widthFix' | 'heightFix' | 'top' | 'bottom' | 'center' | 'left' | 'right' | 'top left' | 'top right' | 'bottom left' | 'bottom right';
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'circle' | 'round' | 'square';
+ };
+ showMenuByLongpress?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ src?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ tId?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ webp?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ width?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/image/type.js b/miniprogram_npm/tdesign-miniprogram/image/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/image/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/index.d.ts b/miniprogram_npm/tdesign-miniprogram/index.d.ts
new file mode 100644
index 0000000..9af8cc5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/index.d.ts
@@ -0,0 +1,4 @@
+export { default as ActionSheet, ActionSheetTheme } from './action-sheet/index';
+export { default as Dialog } from './dialog/index';
+export { default as Message } from './message/index';
+export { default as Toast } from './toast/index';
diff --git a/miniprogram_npm/tdesign-miniprogram/index.js b/miniprogram_npm/tdesign-miniprogram/index.js
new file mode 100644
index 0000000..c65d7b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/index.js
@@ -0,0 +1 @@
+export{default as ActionSheet,ActionSheetTheme}from"./action-sheet/index";export{default as Dialog}from"./dialog/index";export{default as Message}from"./message/index";export{default as Toast}from"./toast/index";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.d.ts
new file mode 100644
index 0000000..62d07a1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.d.ts
@@ -0,0 +1,13 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+export default class IndexesAnchor extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdIndexesAnchorProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ anchorStyle: string;
+ sticky: boolean;
+ active: boolean;
+ };
+ relations: RelationsOptions;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.js b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.js
new file mode 100644
index 0000000..7da837b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.js
@@ -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}-indexes-anchor`;let IndexesAnchor=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=props,this.data={prefix:prefix,classPrefix:name,anchorStyle:"",sticky:!1,active:!1},this.relations={"../indexes/indexes":{type:"parent"}}}};IndexesAnchor=__decorate([wxComponent()],IndexesAnchor);export default IndexesAnchor;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.json b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxml b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxml
new file mode 100644
index 0000000..5a5311b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxss b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxss
new file mode 100644
index 0000000..5094a6f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/indexes-anchor.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-indexes-anchor{color:var(--td-indexes-anchor-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-indexes-anchor-font-size,28rpx);line-height:var(--td-indexes-anchor-line-height,44rpx)}.t-indexes-anchor__header{display:none;padding:8rpx 32rpx;background-color:var(--td-indexes-anchor-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-indexes-anchor__header--active{background-color:var(--td-indexes-anchor-active-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));position:relative}.t-indexes-anchor__header--active::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-indexes-anchor__header--active::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-indexes-anchor__slot{overflow:hidden}.t-indexes-anchor__slot:empty+.t-indexes-anchor__header{display:block}.t-indexes-anchor__wrapper{will-change:transform}.t-indexes-anchor__wrapper--sticky{position:fixed;top:0;left:0;width:100%;z-index:1}.t-indexes-anchor__wrapper--active{color:var(--td-indexes-anchor-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:var(--td-indexes-anchor-active-font-weight,600)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.d.ts
new file mode 100644
index 0000000..7b52adf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.d.ts
@@ -0,0 +1,3 @@
+import { TdIndexesAnchorProps } from './type';
+declare const props: TdIndexesAnchorProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.js b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.js
new file mode 100644
index 0000000..d33a8b7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/props.js
@@ -0,0 +1 @@
+const props={index:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.d.ts
new file mode 100644
index 0000000..1e7fe4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.d.ts
@@ -0,0 +1,6 @@
+export interface TdIndexesAnchorProps {
+ index?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.js b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes-anchor/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.d.ts
new file mode 100644
index 0000000..0071d19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.d.ts
@@ -0,0 +1,45 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+export default class Indexes extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdIndexesProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ _height: number;
+ _indexList: any[];
+ scrollTop: number;
+ activeAnchor: any;
+ showTips: boolean;
+ };
+ relations: RelationsOptions;
+ behaviors: string[];
+ timer: any;
+ groupTop: any[];
+ sidebar: any;
+ currentTouchAnchor: any;
+ observers: {
+ indexList(v: any): void;
+ height(v: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ setHeight(height: string | number): void;
+ setIndexList(list: any): void;
+ getAllRect(): void;
+ getAnchorsRect(): Promise;
+ getSidebarRect(): void;
+ toggleTips(flag: boolean): void;
+ setAnchorByIndex(index: any): void;
+ onClick(e: any): void;
+ onTouchMove(e: any): void;
+ onTouchCancel(): void;
+ onTouchEnd(e: any): void;
+ onAnchorTouch: (...args: any[]) => void;
+ setAnchorOnScroll(scrollTop: number): void;
+ onScroll({ scrollTop }: {
+ scrollTop: any;
+ }): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.js b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.js
new file mode 100644
index 0000000..2f2d369
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect,throttle,systemInfo}from"../common/utils";import pageScrollMixin from"../mixins/page-scroll";const{prefix:prefix}=config,name=`${prefix}-indexes`;let Indexes=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-sidebar`,`${prefix}-class-sidebar-item`],this.properties=props,this.data={prefix:prefix,classPrefix:name,_height:0,_indexList:[],scrollTop:0,activeAnchor:null,showTips:!1},this.relations={"../indexes-anchor/indexes-anchor":{type:"child"}},this.behaviors=[pageScrollMixin()],this.timer=null,this.groupTop=[],this.sidebar=null,this.currentTouchAnchor=null,this.observers={indexList(t){this.setIndexList(t),this.setHeight(this.data._height)},height(t){this.setHeight(t)}},this.lifetimes={ready(){this.timer=null,this.groupTop=[],this.sidebar=null,0===this.data._height&&this.setHeight(),null===this.data.indexList&&this.setIndexList()}},this.methods={setHeight(t){if(!t){const{windowHeight:e}=systemInfo;t=e}this.setData({_height:t},(()=>{this.getAllRect()}))},setIndexList(t){if(t)this.setData({_indexList:t});else{const t="A".charCodeAt(0),e=[];for(let i=t,s=t+26;i{this.groupTop.forEach(((t,e)=>{const i=this.groupTop[e+1];t.totalHeight=((null==i?void 0:i.top)||1/0)-t.top})),this.setAnchorOnScroll(0)})),this.getSidebarRect()},getAnchorsRect(){return Promise.all(this.$children.map((t=>getRect(t,`.${name}-anchor`).then((e=>{this.groupTop.push({height:e.height,top:e.top,anchor:t.data.index})})))))},getSidebarRect(){getRect(this,`#id-${name}__bar`).then((t=>{const{top:e,height:i}=t,{length:s}=this.data._indexList;this.sidebar={top:e,height:i,itemHeight:(i-2*(s-1))/s}}))},toggleTips(t){t?this.setData({showTips:!0}):(clearInterval(this.timer),this.timer=setTimeout((()=>{this.setData({showTips:!1})}),300))},setAnchorByIndex(t){const{_indexList:e,stickyOffset:i}=this.data,s=e[t];if(null!==this.data.activeAnchor&&this.data.activeAnchor===s)return;const o=this.groupTop.find((t=>t.anchor===s));if(o){this.currentTouchAnchor=s;const t=o.top-i;wx.pageScrollTo({scrollTop:t,duration:0}),this.toggleTips(!0),this.triggerEvent("select",{index:s}),this.setData({activeAnchor:s})}},onClick(t){const{index:e}=t.currentTarget.dataset;this.setAnchorByIndex(e)},onTouchMove(t){this.onAnchorTouch(t)},onTouchCancel(){this.toggleTips(!1)},onTouchEnd(t){this.toggleTips(!1),this.onAnchorTouch(t)},onAnchorTouch:throttle((function(t){const e=(t=>{const e=t-this.sidebar.top;return e<=0?0:e>this.sidebar.height?this.data._indexList.length-1:Math.floor(e/this.sidebar.itemHeight)})(t.changedTouches[0].clientY);this.setAnchorByIndex(e)}),1e3/30),setAnchorOnScroll(t){if(!this.groupTop)return;const{sticky:e,stickyOffset:i,activeAnchor:s}=this.data;t+=i;const o=this.groupTop.findIndex((e=>t>=e.top-e.height&&t<=e.top+e.totalHeight-e.height));if(-1===o)return;const h=this.groupTop[o];if(null!==this.currentTouchAnchor?(this.triggerEvent("change",{index:h.anchor}),this.currentTouchAnchor=null):s!==h.anchor&&(this.triggerEvent("change",{index:h.anchor}),this.setData({activeAnchor:h.anchor})),e){const e=h.top-t,s=e0&&t>i;this.$children.forEach(((n,r)=>{if(r===o){const o=t>i,r=`transform: translate3d(0, ${s?e:0}px, 0); top: ${i}px`;r===n.data.anchorStyle&&o===n.data.sticky||n.setData({sticky:o,active:!0,style:`height: ${h.height}px`,anchorStyle:r})}else if(r+1===o){const t=`transform: translate3d(0, ${s?e-h.height:0}px, 0); top: ${i}px`;t!==n.data.anchorStyle&&n.setData({sticky:!0,active:!0,style:`height: ${h.height}px`,anchorStyle:t})}else n.setData({active:!1,sticky:!1,anchorStyle:""})}))}},onScroll({scrollTop:t}){this.setAnchorOnScroll(t)}}}};Indexes=__decorate([wxComponent()],Indexes);export default Indexes;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.json b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.json
new file mode 100644
index 0000000..020034e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-cell":"../cell/cell","t-cell-group":"../cell-group/cell-group"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxml b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxml
new file mode 100644
index 0000000..5d11a73
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxs b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxs
new file mode 100644
index 0000000..e8bbe2b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxs
@@ -0,0 +1,7 @@
+function getFirstCharacter(str) {
+ return str.toString().substring(0, 1);
+}
+
+module.exports = {
+ getFirstCharacter: getFirstCharacter,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxss b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxss
new file mode 100644
index 0000000..2cd267f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/indexes.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-indexes{position:relative;height:100vh}.t-indexes__sidebar{position:fixed;right:var(--td-indexes-sidebar-right,16rpx);width:var(--td-indexes-sidebar-item-size,40rpx);color:var(--td-indexes-sidebar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-indexes-sidebar-font-size,24rpx);line-height:var(--td-indexes-sidebar-line-height,40rpx);display:flex;flex-flow:column nowrap;top:50%;transform:translateY(-50%);z-index:1}.t-indexes__sidebar-item{border-radius:50%;position:relative;text-align:center}.t-indexes__sidebar-item--active{background-color:var(--td-indexes-sidebar-active-bg-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));color:var(--td-indexes-sidebar-active-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-indexes__sidebar-item+.t-indexes__sidebar-item{margin-top:4rpx}.t-indexes__sidebar-tips{min-width:var(--td-indexes-sidebar-tips-size,96rpx);max-width:198rpx;padding:0 32rpx;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:var(--td-indexes-sidebar-tips-size,96rpx);line-height:var(--td-indexes-sidebar-tips-size,96rpx);text-align:center;font-size:var(--td-indexes-sidebar-tips-font-size,40rpx);font-weight:700;color:var(--td-indexes-sidebar-tips-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-indexes-sidebar-tips-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));border-radius:var(--td-indexes-sidebar-tips-size,96rpx);position:absolute;top:50%;bottom:0;transform:translateY(-50%);right:var(--td-indexes-sidebar-tips-right,calc(100% + 32rpx))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/props.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes/props.d.ts
new file mode 100644
index 0000000..a3e1619
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/props.d.ts
@@ -0,0 +1,3 @@
+import { TdIndexesProps } from './type';
+declare const props: TdIndexesProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/props.js b/miniprogram_npm/tdesign-miniprogram/indexes/props.js
new file mode 100644
index 0000000..5da56b2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/props.js
@@ -0,0 +1 @@
+const props={indexList:{type:null},sticky:{type:Boolean,value:!0},stickyOffset:{type:Number,value:0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/type.d.ts b/miniprogram_npm/tdesign-miniprogram/indexes/type.d.ts
new file mode 100644
index 0000000..ecf0242
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/type.d.ts
@@ -0,0 +1,14 @@
+export interface TdIndexesProps {
+ indexList?: {
+ type: null;
+ value?: string[] | number[];
+ };
+ sticky?: {
+ type: BooleanConstructor;
+ value?: Boolean;
+ };
+ stickyOffset?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/indexes/type.js b/miniprogram_npm/tdesign-miniprogram/indexes/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/indexes/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.d.ts b/miniprogram_npm/tdesign-miniprogram/input/input.d.ts
new file mode 100644
index 0000000..94b84bc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.d.ts
@@ -0,0 +1,37 @@
+import { SuperComponent } from '../common/src/index';
+export default class Input extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ behaviors: string[];
+ properties: import("./type").TdInputProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ classBasePrefix: string;
+ showClearIcon: boolean;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ observers: {
+ prefixIcon(v: any): void;
+ suffixIcon(v: any): void;
+ clearable(v: any): void;
+ 'clearTrigger, clearable, disabled, readonly'(): void;
+ };
+ methods: {
+ updateValue(value: any): void;
+ updateClearIconVisible(value?: boolean): void;
+ onInput(e: any): void;
+ onFocus(e: any): void;
+ onBlur(e: any): void;
+ onConfirm(e: any): void;
+ onSuffixClick(): void;
+ onSuffixIconClick(): void;
+ clearInput(e: any): void;
+ onKeyboardHeightChange(e: any): void;
+ onNickNameReview(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.js b/miniprogram_npm/tdesign-miniprogram/input/input.js
new file mode 100644
index 0000000..1fc3069
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getCharacterLength,calcIcon}from"../common/utils";import{isDef}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-input`;let Input=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-prefix-icon`,`${prefix}-class-label`,`${prefix}-class-input`,`${prefix}-class-clearable`,`${prefix}-class-suffix`,`${prefix}-class-suffix-icon`,`${prefix}-class-tips`],this.behaviors=["wx://form-field"],this.properties=props,this.data={prefix:prefix,classPrefix:name,classBasePrefix:prefix,showClearIcon:!0},this.lifetimes={ready(){var e;const{value:t,defaultValue:i}=this.properties;this.updateValue(null!==(e=null!=t?t:i)&&void 0!==e?e:"")}},this.observers={prefixIcon(e){this.setData({_prefixIcon:calcIcon(e)})},suffixIcon(e){this.setData({_suffixIcon:calcIcon(e)})},clearable(e){this.setData({_clearIcon:calcIcon(e,"close-circle-filled")})},"clearTrigger, clearable, disabled, readonly"(){this.updateClearIconVisible()}},this.methods={updateValue(e){const{allowInputOverMax:t,maxcharacter:i,maxlength:r}=this.properties;if(!t&&i&&i>0&&!Number.isNaN(i)){const{length:t,characters:r}=getCharacterLength("maxcharacter",e,i);this.setData({value:r,count:t})}else if(!t&&r&&r>0&&!Number.isNaN(r)){const{length:t,characters:i}=getCharacterLength("maxlength",e,r);this.setData({value:i,count:t})}else this.setData({value:e,count:isDef(e)?String(e).length:0})},updateClearIconVisible(e=!1){const{clearTrigger:t,disabled:i,readonly:r}=this.properties;i||r?this.setData({showClearIcon:!1}):this.setData({showClearIcon:e||"always"===t})},onInput(e){const{value:t,cursor:i,keyCode:r}=e.detail;this.updateValue(t),this.triggerEvent("change",{value:this.data.value,cursor:i,keyCode:r})},onFocus(e){this.updateClearIconVisible(!0),this.triggerEvent("focus",e.detail)},onBlur(e){if(this.updateClearIconVisible(),"function"==typeof this.properties.format){const t=this.properties.format(e.detail.value);return this.updateValue(t),void this.triggerEvent("blur",{value:this.data.value,cursor:this.data.count})}this.triggerEvent("blur",e.detail)},onConfirm(e){this.triggerEvent("enter",e.detail)},onSuffixClick(){this.triggerEvent("click",{trigger:"suffix"})},onSuffixIconClick(){this.triggerEvent("click",{trigger:"suffix-icon"})},clearInput(e){this.triggerEvent("clear",e.detail),this.setData({value:""})},onKeyboardHeightChange(e){this.triggerEvent("keyboardheightchange",e.detail)},onNickNameReview(e){this.triggerEvent("nicknamereview",e.detail)}}}};Input=__decorate([wxComponent()],Input);export default Input;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.json b/miniprogram_npm/tdesign-miniprogram/input/input.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.wxml b/miniprogram_npm/tdesign-miniprogram/input/input.wxml
new file mode 100644
index 0000000..b7215d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.wxml
@@ -0,0 +1 @@
+{{label}}{{suffix}}{{tips}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.wxs b/miniprogram_npm/tdesign-miniprogram/input/input.wxs
new file mode 100644
index 0000000..ee9eb11
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.wxs
@@ -0,0 +1,16 @@
+function getInputClass(classPrefix, suffix, align, disabled) {
+ var className = [classPrefix + '__control'];
+
+ if (align) {
+ className.push(classPrefix + '--' + align);
+ }
+
+ if (disabled) {
+ className.push(classPrefix + '__control--disabled');
+ }
+ return className.join(' ');
+}
+
+module.exports = {
+ getInputClass: getInputClass,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/input/input.wxss b/miniprogram_npm/tdesign-miniprogram/input/input.wxss
new file mode 100644
index 0000000..bc19c66
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/input.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-input{background-color:var(--td-input-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));display:flex;align-items:var(--td-input-align-items,center);flex:1;padding:var(--td-input-vertical-padding,32rpx);overflow:hidden}.t-input--border{position:relative}.t-input--border::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-input-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)))}.t-input--border::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-input--border:after{left:var(--td-input-border-left-space,32rpx);right:var(--td-input-border-right-space,0)}.t-input--layout-vertical{flex-direction:column;align-items:start}.t-input__wrap--prefix{display:flex}.t-input__icon--prefix{font-size:48rpx;color:var(--td-input-prefix-icon-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-input__label:not(:empty){min-width:var(--td-input-label-min-width,2em);max-width:var(--td-input-label-max-width,5em);font-size:var(--td-font-size-m,32rpx);line-height:48rpx;color:var(--td-input-label-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));margin-right:var(--td-spacer-2,32rpx);word-wrap:break-word}.t-input--layout-vertical .t-input__label:not(:empty){font-size:var(--td-font-size-base,28rpx);padding-bottom:8rpx}.t-input__icon--prefix:not(:empty)+.t-input__label:not(:empty){padding-left:8rpx}.t-input__label:not(:empty)+.t-input__wrap{margin-left:var(--td-spacer-2,32rpx)}.t-input__icon--prefix:not(:empty)+.t-input__label:empty{margin-right:var(--td-spacer-2,32rpx)}.t-input__wrap{width:100%;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center;flex-shrink:1;flex:1}.t-input__wrap .t-input__content{display:flex;width:100%;align-items:center;line-height:48rpx;font-size:var(--td-font-size-m,32rpx)}.t-input__wrap--clearable-icon,.t-input__wrap--suffix,.t-input__wrap--suffix-icon{flex:0 0 auto;padding-left:var(--td-spacer-1,24rpx)}.t-input__wrap--clearable-icon:empty,.t-input__wrap--suffix-icon:empty,.t-input__wrap--suffix:empty{display:none}.t-input__wrap--clearable-icon,.t-input__wrap--suffix-icon{font-size:48rpx;color:var(--td-input-suffix-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-input__wrap--suffix{font-size:var(--td-font-size-m,32rpx);color:var(--td-input-suffix-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-input__icon--prefix:empty,.t-input__tips:empty,.t-input__wrap--clearable-icon:empty,.t-input__wrap--suffix-icon:empty,.t-input__wrap--suffix:empty{display:none}.t-input__control{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:48rpx;margin:0;padding:0;color:var(--td-input-default-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:inherit;background-color:transparent;border:0;resize:none;font-size:inherit}.t-input__control--disabled{color:var(--td-input-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));cursor:not-allowed;opacity:1;-webkit-text-fill-color:currentColor}.t-input__control--read-only{cursor:default}.t-input--left{text-align:left}.t-input--right{text-align:right}.t-input--center{text-align:center}.t-input__placeholder{color:var(--td-input-placeholder-text-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-input-placeholder-text-font-size,var(--td-font-size-m,32rpx))}.t-input__placeholder--disabled{color:var(--td-input-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-input__tips{font-size:var(--td-font-size-s,24rpx);line-height:40rpx;padding-top:8rpx}.t-input--default+.t-input__tips{color:var(--td-input-default-tips-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-input--success+.t-input__tips{color:var(--td-input-success-tips-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-input--warning+.t-input__tips{color:var(--td-input-warning-tips-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-input--error+.t-input__tips{color:var(--td-input-error-tips-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/props.d.ts b/miniprogram_npm/tdesign-miniprogram/input/props.d.ts
new file mode 100644
index 0000000..1bd2f9a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/props.d.ts
@@ -0,0 +1,3 @@
+import { TdInputProps } from './type';
+declare const props: TdInputProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/input/props.js b/miniprogram_npm/tdesign-miniprogram/input/props.js
new file mode 100644
index 0000000..819dfb7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/props.js
@@ -0,0 +1 @@
+const props={adjustPosition:{type:Boolean,value:!0},align:{type:String,value:"left"},allowInputOverMax:{type:Boolean,value:!1},alwaysEmbed:{type:Boolean,value:!1},autoFocus:{type:Boolean,value:!1},borderless:{type:Boolean,value:!1},clearTrigger:{type:String,value:"always"},clearable:{type:null,value:!1},confirmHold:{type:Boolean,value:!1},confirmType:{type:String,value:"done"},cursor:{type:Number,value:-1,required:!0},cursorColor:{type:String,value:"#0052d9"},cursorSpacing:{type:Number,value:0},disabled:{type:null,value:void 0},focus:{type:Boolean,value:!1},format:{type:null},holdKeyboard:{type:Boolean,value:!1},label:{type:String},layout:{type:String,value:"horizontal"},maxcharacter:{type:Number},maxlength:{type:Number,value:-1},placeholder:{type:String,value:void 0},placeholderClass:{type:String,value:"input-placeholder"},placeholderStyle:{type:String,value:"",required:!0},prefixIcon:{type:null},readonly:{type:null,value:void 0},safePasswordCertPath:{type:String,value:""},safePasswordCustomHash:{type:String,value:""},safePasswordLength:{type:Number},safePasswordNonce:{type:String,value:""},safePasswordSalt:{type:String,value:""},safePasswordTimeStamp:{type:Number},selectionEnd:{type:Number,value:-1},selectionStart:{type:Number,value:-1},status:{type:String,value:"default"},suffix:{type:String},suffixIcon:{type:null},tips:{type:String},type:{type:String,value:"text"},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/input/type.d.ts b/miniprogram_npm/tdesign-miniprogram/input/type.d.ts
new file mode 100644
index 0000000..a5b6b8a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/type.d.ts
@@ -0,0 +1,166 @@
+export interface TdInputProps {
+ adjustPosition?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ align?: {
+ type: StringConstructor;
+ value?: 'left' | 'center' | 'right';
+ };
+ allowInputOverMax?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ alwaysEmbed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ autoFocus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ clearTrigger?: {
+ type: StringConstructor;
+ value?: 'always' | 'focus';
+ };
+ clearable?: {
+ type: null;
+ value?: boolean | object;
+ };
+ confirmHold?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmType?: {
+ type: StringConstructor;
+ value?: 'send' | 'search' | 'next' | 'go' | 'done';
+ };
+ cursor: {
+ type: NumberConstructor;
+ value?: number;
+ required?: boolean;
+ };
+ cursorColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ cursorSpacing?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ focus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ format?: {
+ type: undefined;
+ value?: InputFormatType;
+ };
+ holdKeyboard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'vertical' | 'horizontal';
+ };
+ maxcharacter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxlength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderStyle: {
+ type: StringConstructor;
+ value?: string;
+ required?: boolean;
+ };
+ prefixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ safePasswordCertPath?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordCustomHash?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordLength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ safePasswordNonce?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordSalt?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ safePasswordTimeStamp?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionEnd?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionStart?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ status?: {
+ type: StringConstructor;
+ value?: 'default' | 'success' | 'warning' | 'error';
+ };
+ suffix?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ suffixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ tips?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'text' | 'number' | 'idcard' | 'digit' | 'safe-password' | 'password' | 'nickname';
+ };
+ value?: {
+ type: null;
+ value?: InputValue;
+ };
+}
+export declare type InputFormatType = (value: InputValue) => string;
+export declare type InputValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/input/type.js b/miniprogram_npm/tdesign-miniprogram/input/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/input/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.d.ts b/miniprogram_npm/tdesign-miniprogram/link/link.d.ts
new file mode 100644
index 0000000..f407a65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.d.ts
@@ -0,0 +1,26 @@
+import { SuperComponent } from '../common/src/index';
+export default class Link extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdLinkProps;
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'theme, disabled, size, underline, navigatorProps'(): void;
+ prefixIcon(v: any): void;
+ suffixIcon(v: any): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ setClass(): void;
+ onSuccess(e: any): void;
+ onFail(e: any): void;
+ onComplete(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.js b/miniprogram_npm/tdesign-miniprogram/link/link.js
new file mode 100644
index 0000000..bb939a3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-link`;let Link=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-hover`,`${prefix}-class-prefix-icon`,`${prefix}-class-content`,`${prefix}-class-suffix-icon`],this.properties=props,this.options={multipleSlots:!0},this.data={prefix:prefix,classPrefix:name},this.observers={"theme, disabled, size, underline, navigatorProps"(){this.setClass()},prefixIcon(e){this.setData({_prefixIcon:calcIcon(e)})},suffixIcon(e){this.setData({_suffixIcon:calcIcon(e)})}},this.lifetimes={attached(){this.setClass()}},this.methods={setClass(){const{theme:e,size:s,underline:i,navigatorProps:t,disabled:o}=this.properties,n=[name,`${name}--${e}`,`${name}--${s}`],{url:r,appId:a,shortLink:p,target:c,openType:l}=null!=t?t:{},m=!(r||"miniProgram"===c&&(a||p));i&&n.push(`${name}--underline`),(t&&m&&!["navigateBack","exit"].includes(l)||o)&&n.push(`${name}--disabled`),this.setData({className:n.join(" ")})},onSuccess(e){this.triggerEvent("success",e)},onFail(e){this.triggerEvent("fail",e)},onComplete(e){this.triggerEvent("complete",e)}}}};Link=__decorate([wxComponent()],Link);export default Link;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.json b/miniprogram_npm/tdesign-miniprogram/link/link.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.wxml b/miniprogram_npm/tdesign-miniprogram/link/link.wxml
new file mode 100644
index 0000000..8c2445e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/link.wxss b/miniprogram_npm/tdesign-miniprogram/link/link.wxss
new file mode 100644
index 0000000..1b42d83
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/link.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-link--small .t-link__content{font-size:24rpx;line-height:40rpx}.t-link--small .t-link__prefix-icon,.t-link--small .t-link__suffix-icon{font-size:28rpx}.t-link--medium .t-link__content{font-size:28rpx;line-height:44rpx}.t-link--medium .t-link__prefix-icon,.t-link--medium .t-link__suffix-icon{font-size:32rpx}.t-link--large .t-link__content{font-size:32rpx;line-height:48rpx}.t-link--large .t-link__prefix-icon,.t-link--large .t-link__suffix-icon{font-size:36rpx}.t-link--primary{color:var(--td-link-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-link--primary.t-link--underline::after{border-color:var(--td-link-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-link--primary.t-link--disabled{color:var(--td-link-primary-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-link--primary.t-link--hover{color:var(--td-link-primary-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--primary.t-link--hover.t-link--underline::after{border-color:var(--td-link-primary-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--success{color:var(--td-link-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-link--success.t-link--underline::after{border-color:var(--td-link-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-link--success.t-link--disabled{color:var(--td-link-success-disabled-color,var(--td-success-color-disabled,var(--td-success-color-3,#92dab2)))}.t-link--success.t-link--hover{color:var(--td-link-success-active-color,var(--td-success-color-active,var(--td-success-color-6,#008858)))}.t-link--success.t-link--hover.t-link--underline::after{border-color:var(--td-link-success-active-color,var(--td-success-color-active,var(--td-success-color-6,#008858)))}.t-link--warning{color:var(--td-link-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-link--warning.t-link--underline::after{border-color:var(--td-link-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-link--warning.t-link--disabled{color:var(--td-link-warning-disabled-color,var(--td-warning-color-disabled,var(--td-warning-color-3,#ffb98c)))}.t-link--warning.t-link--hover{color:var(--td-link-warning-active-color,var(--td-warning-color-active,var(--td-warning-color-6,#be5a00)))}.t-link--warning.t-link--hover.t-link--underline::after{border-color:var(--td-link-warning-active-color,var(--td-warning-color-active,var(--td-warning-color-6,#be5a00)))}.t-link--default{color:var(--td-link-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-link--default.t-link--underline::after{border-color:var(--td-link-default-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-link--default.t-link--disabled{color:var(--td-link-default-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-link--default.t-link--hover{color:var(--td-link-default-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--default.t-link--hover.t-link--underline::after{border-color:var(--td-link-default-active-color,var(--td-brand-color-active,var(--td-primary-color-8,#003cab)))}.t-link--danger{color:var(--td-link-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-link--danger.t-link--underline::after{border-color:var(--td-link-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-link--danger.t-link--disabled{color:var(--td-link-danger-disabled-color,var(--td-error-color-disabled,var(--td-error-color-3,#ffb9b0)))}.t-link--danger.t-link--hover{color:var(--td-link-danger-active-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-link--danger.t-link--hover.t-link--underline::after{border-color:var(--td-link-danger-active-color,var(--td-error-color-active,var(--td-error-color-7,#ad352f)))}.t-link{position:relative;display:flex;align-items:center;box-sizing:content-box}.t-link--underline::after{content:'';position:absolute;left:0;right:0;height:0;bottom:0;opacity:1;border-bottom:2rpx solid #cd0be7}.t-link__prefix-icon:not(:empty)+.t-link__content:not(:empty){padding-left:8rpx}.t-link__content:not(:empty)+.t-link__suffix-icon:not(:empty){padding-left:8rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/props.d.ts b/miniprogram_npm/tdesign-miniprogram/link/props.d.ts
new file mode 100644
index 0000000..bbdacae
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/props.d.ts
@@ -0,0 +1,3 @@
+import { TdLinkProps } from './type';
+declare const props: TdLinkProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/link/props.js b/miniprogram_npm/tdesign-miniprogram/link/props.js
new file mode 100644
index 0000000..b9738de
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/props.js
@@ -0,0 +1 @@
+const props={content:{type:String},disabled:{type:Boolean,value:!1},hover:{type:Boolean},navigatorProps:{type:Object},prefixIcon:{type:null},size:{type:String,value:"medium"},suffixIcon:{type:null},theme:{type:String,value:"default"},underline:{type:Boolean}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/link/type.d.ts b/miniprogram_npm/tdesign-miniprogram/link/type.d.ts
new file mode 100644
index 0000000..f261141
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/type.d.ts
@@ -0,0 +1,39 @@
+import { SizeEnum } from '../common/common';
+export interface TdLinkProps {
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ hover?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ navigatorProps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ prefixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: SizeEnum;
+ };
+ suffixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'primary' | 'danger' | 'warning' | 'success';
+ };
+ underline?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/link/type.js b/miniprogram_npm/tdesign-miniprogram/link/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/link/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/index.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/index.d.ts
new file mode 100644
index 0000000..2806bd6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './loading';
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/index.js b/miniprogram_npm/tdesign-miniprogram/loading/index.js
new file mode 100644
index 0000000..00a3bd6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./loading";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/loading.d.ts
new file mode 100644
index 0000000..4d2f2d4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.d.ts
@@ -0,0 +1,77 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdLoadingProps } from './type';
+export interface LoadingProps extends TdLoadingProps {
+}
+export default class Loading extends SuperComponent {
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ show: boolean;
+ };
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: {
+ delay?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ fullscreen?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ indicator?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inheritColor?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: "horizontal" | "vertical";
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ pause?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ progress?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ reverse?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: "circular" | "spinner" | "dots";
+ };
+ };
+ timer: any;
+ observers: {
+ loading(this: any, cur: any): void;
+ };
+ lifetimes: {
+ detached(): void;
+ };
+ refreshPage(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.js b/miniprogram_npm/tdesign-miniprogram/loading/loading.js
new file mode 100644
index 0000000..bb55f05
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.js
@@ -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}-loading`;let Loading=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-text`,`${prefix}-class-indicator`],this.data={prefix:prefix,classPrefix:name,show:!0},this.options={multipleSlots:!0},this.properties=Object.assign({},props),this.timer=null,this.observers={loading(e){const{delay:t}=this.properties;this.timer&&clearTimeout(this.timer),e&&t?this.timer=setTimeout((()=>{this.setData({show:e}),this.timer=null}),t):this.setData({show:e})}},this.lifetimes={detached(){clearTimeout(this.timer)}}}refreshPage(){this.triggerEvent("reload")}};Loading=__decorate([wxComponent()],Loading);export default Loading;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.json b/miniprogram_npm/tdesign-miniprogram/loading/loading.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.wxml b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxml
new file mode 100644
index 0000000..6ffc154
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxml
@@ -0,0 +1 @@
+{{text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/loading.wxss b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxss
new file mode 100644
index 0000000..be8d8c9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/loading.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-loading{display:inline-flex;align-items:center;justify-content:center;font-size:24rpx}.t-loading--fullscreen{position:fixed;display:flex;align-items:center;vertical-align:middle;justify-content:center;top:0;left:0;width:100%;height:100%;z-index:var(--td-loading-z-index,3500);background-color:var(--td-loading-full-bg-color,rgba(255,255,255,.6))}.t-loading__spinner{position:relative;box-sizing:border-box;width:100%;height:100%;max-width:100%;max-height:100%;animation:rotate .8s linear infinite;color:var(--td-loading-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-loading__spinner.reverse{animation-name:rotateReverse}.t-loading__spinner--spinner{animation-timing-function:steps(12);color:var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9)))}.t-loading__spinner--spinner .t-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.t-loading__spinner--spinner .t-loading__dot::before{display:block;width:5rpx;height:25%;margin:0 auto;background-color:var(--td-loading-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:40%;content:' '}.t-loading__spinner--circular .t-loading__circular{border-radius:100%;width:100%;height:100%;background:conic-gradient(from 180deg at 50% 50%,rgba(255,255,255,0) 0deg,rgba(255,255,255,0) 60deg,currentColor 330deg,rgba(255,255,255,0) 360deg);mask:radial-gradient(transparent calc(50% - 1rpx),#fff 50%);-webkit-mask:radial-gradient(transparent calc(50% - 1rpx),#fff 50%)}.t-loading__spinner--dots{display:flex;justify-content:space-between;align-items:center;animation:none}.t-loading__spinner--dots .t-loading__dot{width:20%;height:20%;border-radius:50%;background-color:var(--td-loading-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));animation-duration:1.8s;animation-name:dotting;animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}.t-loading__text{color:var(--td-loading-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-loading-text-font-size,24rpx);line-height:var(--td-loading-text-line-height,40rpx)}.t-loading__text--vertical:not(:first-child):not(:empty){margin-top:12rpx}.t-loading__text--horizontal:not(:first-child):not(:empty){margin-left:16rpx}.t-loading--vertical{flex-direction:column}.t-loading--horizontal{flex-direction:row;vertical-align:top}@keyframes t-bar{0%{width:0}50%{width:70%}100%{width:80%}}@keyframes t-bar-loaded{0%{height:6rpx;opacity:1;width:90%}50%{height:6rpx;opacity:1;width:100%}100%{height:0;opacity:0;width:100%}}.t-loading__dot-1{transform:rotate(30deg);opacity:0}.t-loading__dot-2{transform:rotate(60deg);opacity:.08333333}.t-loading__dot-3{transform:rotate(90deg);opacity:.16666667}.t-loading__dot-4{transform:rotate(120deg);opacity:.25}.t-loading__dot-5{transform:rotate(150deg);opacity:.33333333}.t-loading__dot-6{transform:rotate(180deg);opacity:.41666667}.t-loading__dot-7{transform:rotate(210deg);opacity:.5}.t-loading__dot-8{transform:rotate(240deg);opacity:.58333333}.t-loading__dot-9{transform:rotate(270deg);opacity:.66666667}.t-loading__dot-10{transform:rotate(300deg);opacity:.75}.t-loading__dot-11{transform:rotate(330deg);opacity:.83333333}.t-loading__dot-12{transform:rotate(360deg);opacity:.91666667}@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotateReverse{from{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes dotting{0%{opacity:.15}1%{opacity:.8}33%{opacity:.8}34%{opacity:.15}100%{opacity:.15}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/props.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/props.d.ts
new file mode 100644
index 0000000..a05a659
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/props.d.ts
@@ -0,0 +1,3 @@
+import { TdLoadingProps } from './type';
+declare const props: TdLoadingProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/props.js b/miniprogram_npm/tdesign-miniprogram/loading/props.js
new file mode 100644
index 0000000..2dcd35c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/props.js
@@ -0,0 +1 @@
+const props={delay:{type:Number,value:0},duration:{type:Number,value:800},fullscreen:{type:Boolean,value:!1},indicator:{type:Boolean,value:!0},inheritColor:{type:Boolean,value:!1},layout:{type:String,value:"horizontal"},loading:{type:Boolean,value:!0},pause:{type:Boolean,value:!1},progress:{type:Number},reverse:{type:Boolean},size:{type:String,value:"20px"},text:{type:String},theme:{type:String,value:"circular"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/type.d.ts b/miniprogram_npm/tdesign-miniprogram/loading/type.d.ts
new file mode 100644
index 0000000..1f9de06
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/type.d.ts
@@ -0,0 +1,54 @@
+export interface TdLoadingProps {
+ delay?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ fullscreen?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ indicator?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inheritColor?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ pause?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ progress?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ reverse?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ text?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'circular' | 'spinner' | 'dots';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/loading/type.js b/miniprogram_npm/tdesign-miniprogram/loading/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/loading/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/index.d.ts b/miniprogram_npm/tdesign-miniprogram/message-item/index.d.ts
new file mode 100644
index 0000000..82441ea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/index.d.ts
@@ -0,0 +1,17 @@
+///
+///
+///
+import { MessageProps } from '../message/message.interface';
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+interface MessageActionOptionsType extends Optional {
+ context?: Context;
+ selector?: string;
+}
+declare const _default: {
+ info(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ success(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ warning(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ error(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ hide(options: MessageActionOptionsType): void;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/index.js b/miniprogram_npm/tdesign-miniprogram/message-item/index.js
new file mode 100644
index 0000000..33d8d67
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{MessageType}from"../message/message.interface";import{getInstance}from"../common/utils";const showMessage=function(e,s=MessageType.info){const{context:t,selector:o="#t-message"}=e,n=__rest(e,["context","selector"]),a=getInstance(t,o);if(a)return a.resetData((()=>{a.setData(Object.assign({theme:s},n),a.show.bind(a))})),a;console.error("未找到组件,请确认 selector && context 是否正确")};export default{info:e=>showMessage(e,MessageType.info),success:e=>showMessage(e,MessageType.success),warning:e=>showMessage(e,MessageType.warning),error:e=>showMessage(e,MessageType.error),hide(e){const{context:s,selector:t="#t-message"}=Object.assign({},e),o=getInstance(s,t);o&&o.hide()}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.d.ts b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.d.ts
new file mode 100644
index 0000000..49bdb7e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.d.ts
@@ -0,0 +1,39 @@
+///
+import { SuperComponent, ComponentsOptionsType } from '../common/src/index';
+import { MessageProps } from '../message/message.interface';
+export default class Message extends SuperComponent {
+ externalClasses: string[];
+ options: ComponentsOptionsType;
+ properties: MessageProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ loop: number;
+ animation: any[];
+ showAnimation: any[];
+ wrapTop: number;
+ fadeClass: string;
+ };
+ closeTimeoutContext: number;
+ nextAnimationContext: number;
+ resetAnimation: WechatMiniprogram.Animation;
+ observers: {
+ marquee(val: any): void;
+ 'icon, theme'(icon: any, theme: any): void;
+ link(v: any): void;
+ closeBtn(v: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ detached(): void;
+ };
+ memoInitialData(): void;
+ resetData(cb: () => void): void;
+ checkAnimation(): void;
+ clearMessageAnimation(): void;
+ show(offsetHeight?: number): void;
+ hide(): void;
+ reset(): void;
+ handleClose(): void;
+ handleLinkClick(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.js b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.js
new file mode 100644
index 0000000..39b8085
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"../message/props";import{getRect,unitConvert,calcIcon}from"../common/utils";import{isObject}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-message`,SHOW_DURATION=500,THEME_ICON={info:"info-circle-filled",success:"check-circle-filled",warning:"info-circle-filled",error:"error-circle-filled"};let Message=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-icon`,`${prefix}-class-link`,`${prefix}-class-close-btn`],this.options={multipleSlots:!0},this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,loop:-1,animation:[],showAnimation:[],wrapTop:-999,fadeClass:""},this.closeTimeoutContext=0,this.nextAnimationContext=0,this.resetAnimation=wx.createAnimation({duration:0,timingFunction:"linear"}),this.observers={marquee(t){"{}"!==JSON.stringify(t)&&"true"!==JSON.stringify(t)||this.setData({marquee:{speed:50,loop:-1,delay:0}})},"icon, theme"(t,e){this.setData({_icon:calcIcon(t,THEME_ICON[e])})},link(t){const e=isObject(t)?Object.assign({},t):{content:t};this.setData({_link:e})},closeBtn(t){this.setData({_closeBtn:calcIcon(t,"close")})}},this.lifetimes={ready(){this.memoInitialData()},detached(){this.clearMessageAnimation()}}}memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)}resetData(t){this.setData(Object.assign({},this.initialData),t)}checkAnimation(){const{marquee:t}=this.properties;if(!t||0===t.loop)return;const e=t.speed;if(this.data.loop>0)this.data.loop-=1;else if(0===this.data.loop)return void this.setData({animation:this.resetAnimation.translateX(0).step().export()});this.nextAnimationContext&&this.clearMessageAnimation();const i=`#${name}__text-wrap`,s=`#${name}__text`;Promise.all([getRect(this,s),getRect(this,i)]).then((([t,i])=>{this.setData({animation:this.resetAnimation.translateX(i.width).step().export()},(()=>{const s=(t.width+i.width)/e*1e3,a=wx.createAnimation({duration:s}).translateX(-t.width).step().export();setTimeout((()=>{this.nextAnimationContext=setTimeout(this.checkAnimation.bind(this),s),this.setData({animation:a})}),20)}))}))}clearMessageAnimation(){clearTimeout(this.nextAnimationContext),this.nextAnimationContext=0}show(t=0){const{duration:e,marquee:i,offset:s,id:a}=this.properties;this.setData({visible:!0,loop:i.loop||this.data.loop,fadeClass:`${name}__fade`,wrapTop:unitConvert(s[0])+t}),this.reset(),this.checkAnimation(),e&&e>0&&(this.closeTimeoutContext=setTimeout((()=>{this.hide(),this.triggerEvent("duration-end",{self:this})}),e));getRect(this,a?`#${a}`:`#${name}`).then((t=>{this.setData({height:t.height},(()=>{this.setData({fadeClass:""})}))}))}hide(){this.reset(),this.setData({fadeClass:`${name}__fade`}),setTimeout((()=>{this.setData({visible:!1,animation:[]})}),500),"function"==typeof this.onHide&&this.onHide()}reset(){this.nextAnimationContext&&this.clearMessageAnimation(),clearTimeout(this.closeTimeoutContext),this.closeTimeoutContext=0}handleClose(){this.hide(),this.triggerEvent("close-btn-click")}handleLinkClick(){this.triggerEvent("link-click")}};Message=__decorate([wxComponent()],Message);export default Message;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.json b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.json
new file mode 100644
index 0000000..ddbc1d7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-link":"../link/link"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxml b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxml
new file mode 100644
index 0000000..3022a37
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxml
@@ -0,0 +1 @@
+{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxs b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxs
new file mode 100644
index 0000000..4cf0bd9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxs
@@ -0,0 +1,29 @@
+var isEmptyObj = function (obj) {
+ return JSON.stringify(obj) === '{}';
+};
+
+var changeNumToStr = function (arr) {
+ return arr.map(function (item) {
+ return typeof item === 'number' ? item + 'rpx' : item;
+ });
+};
+
+var getMessageStyles = function (zIndex, offset, wrapTop) {
+ var arr = changeNumToStr(offset || [0, 0]);
+ var left = arr[1] || 0;
+ var right = arr[1] || 0;
+
+ var zIndexStyle = zIndex ? 'z-index:' + zIndex + ';' : '';
+ var styleOffset = '';
+
+ styleOffset += 'top:' + wrapTop + 'px;';
+ styleOffset += 'left:' + left + ';';
+ styleOffset += 'right:' + right + ';';
+
+ return zIndexStyle + styleOffset;
+};
+
+module.exports = {
+ getMessageStyles: getMessageStyles,
+ isEmptyObj: isEmptyObj,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxss b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxss
new file mode 100644
index 0000000..728d398
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message-item/message-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-message{position:fixed;top:0;left:0;right:0;transition:opacity .3s,transform .4s,top .4s;display:flex;justify-content:flex-start;height:96rpx;align-items:center;z-index:15000;padding:0 32rpx;box-sizing:border-box;border-radius:var(--td-message-border-radius,var(--td-radius-default,12rpx));line-height:1;background-color:var(--td-message-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));box-shadow:var(--td-message-box-shadow,var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12)))}.t-message__text{display:inline-block;color:var(--td-message-content-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-font-size-base,28rpx);line-height:44rpx}.t-message__text-wrap{flex:1 1 auto;overflow-x:hidden;text-overflow:ellipsis}.t-message__text-nowrap{word-break:keep-all;white-space:nowrap}.t-message--info{color:var(--td-message-info-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-message--success{color:var(--td-message-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-message--warning{color:var(--td-message-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-message--error{color:var(--td-message-error-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-message__icon--left,.t-message__icon--right{font-size:44rpx}.t-message__icon--left:not(:empty){margin-right:var(--td-spacer,16rpx)}.t-message__icon--right{color:var(--td-message-close-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-message__icon--right:not(:empty),.t-message__link{flex:0 0 auto;margin-left:var(--td-spacer,16rpx)}.t-message__fade{opacity:0;transform:translateY(-100%)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/index.d.ts b/miniprogram_npm/tdesign-miniprogram/message/index.d.ts
new file mode 100644
index 0000000..a8cf1e3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/index.d.ts
@@ -0,0 +1,17 @@
+///
+///
+///
+import { MessageProps } from './message.interface';
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+interface MessageActionOptionsType extends Optional {
+ context?: Context;
+ selector?: string;
+}
+declare const _default: {
+ info(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ success(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ warning(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ error(options: MessageActionOptionsType): WechatMiniprogram.Component.TrivialInstance;
+ hide(options: MessageActionOptionsType): void;
+};
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/message/index.js b/miniprogram_npm/tdesign-miniprogram/message/index.js
new file mode 100644
index 0000000..8016163
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{MessageType}from"./message.interface";import{getInstance}from"../common/utils";const showMessage=function(e,s=MessageType.info){const{context:t,selector:o="#t-message"}=e,n=__rest(e,["context","selector"]),r=getInstance(t,o);if("boolean"!=typeof n.single&&(n.single=!0),r)return r.setMessage(n,s),r;console.error("未找到组件,请确认 selector && context 是否正确")};export default{info:e=>showMessage(e,MessageType.info),success:e=>showMessage(e,MessageType.success),warning:e=>showMessage(e,MessageType.warning),error:e=>showMessage(e,MessageType.error),hide(e){const{context:s,selector:t="#t-message"}=Object.assign({},e),o=getInstance(s,t);o&&o.hide()}};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.d.ts b/miniprogram_npm/tdesign-miniprogram/message/message.d.ts
new file mode 100644
index 0000000..e3de7ca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.d.ts
@@ -0,0 +1,37 @@
+///
+import { SuperComponent, ComponentsOptionsType } from '../common/src/index';
+import { MessageType, MessageProps } from './message.interface';
+export default class Message extends SuperComponent {
+ options: ComponentsOptionsType;
+ properties: MessageProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ messageList: any[];
+ };
+ index: number;
+ instances: any[];
+ gap: number;
+ observers: {
+ visible(value: any): void;
+ };
+ pageLifetimes: {
+ show(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ memoInitialData(): void;
+ setMessage(msg: MessageProps, theme?: MessageType): void;
+ addMessage(msgObj: MessageProps): void;
+ getOffsetHeight(index?: number): number;
+ showMessageItem(options: MessageProps, id: string, offsetHeight: number): WechatMiniprogram.Component.TrivialInstance;
+ close(id: any): void;
+ hide(id?: string): void;
+ hideAll(): void;
+ removeInstance(id: any): void;
+ removeMsg(id: any): void;
+ handleClose(): void;
+ handleLinkClick(): void;
+ handleDurationEnd(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.interface.d.ts b/miniprogram_npm/tdesign-miniprogram/message/message.interface.d.ts
new file mode 100644
index 0000000..1cfe3d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.interface.d.ts
@@ -0,0 +1,28 @@
+export declare enum MessageType {
+ info = "info",
+ success = "success",
+ warning = "warning",
+ error = "error"
+}
+export interface MessageMarquee {
+ speed?: number;
+ loop?: number;
+ delay?: number;
+}
+export interface MessageProps {
+ visible?: boolean;
+ content: string;
+ align?: string;
+ theme?: MessageType;
+ icon?: boolean | string;
+ link?: string | object;
+ closeBtn?: boolean;
+ action?: string;
+ marquee?: MessageMarquee;
+ offset?: object;
+ duration?: number;
+ zIndex?: number;
+ id?: string;
+ gap?: string | number;
+ single?: boolean;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.interface.js b/miniprogram_npm/tdesign-miniprogram/message/message.interface.js
new file mode 100644
index 0000000..89ec4c4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.interface.js
@@ -0,0 +1 @@
+export var MessageType;!function(e){e.info="info",e.success="success",e.warning="warning",e.error="error"}(MessageType||(MessageType={}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.js b/miniprogram_npm/tdesign-miniprogram/message/message.js
new file mode 100644
index 0000000..cb18993
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{MessageType}from"./message.interface";import props from"./props";import{unitConvert}from"../common/utils";const SHOW_DURATION=400,{prefix:prefix}=config,name=`${prefix}-message`;let Message=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.properties=Object.assign({},props),this.data={prefix:prefix,classPrefix:name,messageList:[]},this.index=0,this.instances=[],this.gap=12,this.observers={visible(s){s?this.setMessage(this.properties,this.properties.theme):this.setData({messageList:[]})}},this.pageLifetimes={show(){this.hideAll()}},this.lifetimes={ready(){this.memoInitialData()}}}memoInitialData(){this.initialData=Object.assign(Object.assign({},this.properties),this.data)}setMessage(s,e=MessageType.info){let t=`${name}_${this.index}`;s.single&&(t=name),this.gap=unitConvert(s.gap||this.gap);const i=Object.assign(Object.assign({},s),{theme:e,id:t,gap:this.gap}),n=this.instances.findIndex((s=>s.id===t));if(n<0)this.addMessage(i);else{const s=this.instances[n],e=this.getOffsetHeight(n);s.resetData((()=>{s.setData(i,s.show.bind(s,e)),s.onHide=()=>{this.close(t)}}))}}addMessage(s){const e=[...this.data.messageList,{id:s.id}];this.setData({messageList:e},(()=>{const e=this.getOffsetHeight(),t=this.showMessageItem(s,s.id,e);this.instances&&(this.instances.push(t),this.index+=1)}))}getOffsetHeight(s=-1){let e=0,t=s;(-1===t||t>this.instances.length)&&(t=this.instances.length);for(let s=0;s{i.setData(s,i.show.bind(i,t)),i.onHide=()=>{this.close(e)}})),i;console.error("未找到组件,请确认 selector && context 是否正确")}close(s){setTimeout((()=>{this.removeMsg(s)}),400),this.removeInstance(s)}hide(s){s||this.hideAll();const e=this.instances.find((e=>e.id===s));e&&e.hide()}hideAll(){for(let s=0;se.id===s));if(e<0)return;const t=this.instances[e].data.height;this.instances.splice(e,1);for(let s=e;se.id===s));e>-1&&(this.data.messageList.splice(e,1),this.setData({messageList:this.data.messageList}))}handleClose(){this.triggerEvent("close-btn-click")}handleLinkClick(){this.triggerEvent("link-click")}handleDurationEnd(){this.triggerEvent("duration-end")}};Message=__decorate([wxComponent()],Message);export default Message;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.json b/miniprogram_npm/tdesign-miniprogram/message/message.json
new file mode 100644
index 0000000..d44facc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-message-item":"../message-item/message-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.wxml b/miniprogram_npm/tdesign-miniprogram/message/message.wxml
new file mode 100644
index 0000000..de8c248
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/message.wxss b/miniprogram_npm/tdesign-miniprogram/message/message.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/message.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/props.d.ts b/miniprogram_npm/tdesign-miniprogram/message/props.d.ts
new file mode 100644
index 0000000..c5a8f65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/props.d.ts
@@ -0,0 +1,3 @@
+import { TdMessageProps } from './type';
+declare const props: TdMessageProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/message/props.js b/miniprogram_npm/tdesign-miniprogram/message/props.js
new file mode 100644
index 0000000..b95c20a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/props.js
@@ -0,0 +1 @@
+const props={align:{type:String,value:"left"},closeBtn:{type:null,value:!1},content:{type:String},duration:{type:Number,value:3e3},gap:{type:null,value:12},icon:{type:null,value:!0},link:{type:null},marquee:{type:null,value:!1},offset:{type:Array},single:{type:Boolean,value:!0},theme:{type:String,value:"info"},visible:{type:Boolean,value:!1},defaultVisible:{type:Boolean,value:!1},zIndex:{type:Number,value:15e3}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/message/type.d.ts b/miniprogram_npm/tdesign-miniprogram/message/type.d.ts
new file mode 100644
index 0000000..718bb3a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/type.d.ts
@@ -0,0 +1,65 @@
+export interface TdMessageProps {
+ align?: {
+ type: StringConstructor;
+ value?: MessageAlignType;
+ };
+ closeBtn?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ gap?: {
+ type: null;
+ value?: string | number | boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ link?: {
+ type: null;
+ value?: string | object;
+ };
+ marquee?: {
+ type: null;
+ value?: boolean | MessageMarquee;
+ };
+ offset?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ single?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: MessageThemeList;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
+export declare type MessageAlignType = 'left' | 'center';
+export interface MessageMarquee {
+ speed?: number;
+ loop?: number;
+ delay?: number;
+}
+export declare type MessageThemeList = 'info' | 'success' | 'warning' | 'error';
diff --git a/miniprogram_npm/tdesign-miniprogram/message/type.js b/miniprogram_npm/tdesign-miniprogram/message/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/message/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/index.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/index.js
new file mode 100644
index 0000000..2365cc3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/index.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=6e4,e=36e5,n="millisecond",r="second",i="minute",s="hour",u="day",a="week",o="month",c="quarter",f="year",h="date",d="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,$=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,y={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},M=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},m={s:M,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+M(r,2,"0")+":"+M(i,2,"0")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;g[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=m;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function y(t){this.$L=S(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[D]=!0}var M=y.prototype;return M.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},M.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},M.$utils=function(){return O},M.isValid=function(){return!(this.$d.toString()===d)},M.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},M.isAfter=function(t,e){return w(t)=2&&n%10<=4&&(n%100<10||n%100>=20)?s[1]:s[2])}var d=function(_,t){return o.test(t)?e[_.month()]:n[_.month()]};d.s=n,d.f=e;var u=function(_,t){return o.test(t)?s[_.month()]:r[_.month()]};u.s=r,u.f=s;var a={name:"ru",weekdays:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),weekdaysShort:"вск_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),months:d,monthsShort:u,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:i,mm:i,h:"час",hh:i,d:"день",dd:i,M:"месяц",MM:i,y:"год",yy:i},ordinal:function(_){return _},meridiem:function(_){return _<4?"ночи":_<12?"утра":_<17?"дня":"вечера"}};return t.default.locale(a,null,!0),a}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-cn.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-cn.js
new file mode 100644
index 0000000..b4a88af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-cn.js
@@ -0,0 +1 @@
+!function(e,_){"object"==typeof exports&&"undefined"!=typeof module?module.exports=_(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){"use strict";var _=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(e),t={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return _.default.locale(t,null,!0),t}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-tw.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-tw.js
new file mode 100644
index 0000000..1cb18ac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/locale/zh-tw.js
@@ -0,0 +1 @@
+!function(_,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("dayjs")):"function"==typeof define&&define.amd?define(["dayjs"],e):(_="undefined"!=typeof globalThis?globalThis:_||self).dayjs_locale_zh_tw=e(_.dayjs)}(this,(function(_){"use strict";var e=function(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}(_),t={name:"zh-tw",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(_,e){return"W"===e?_+"週":_+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"},meridiem:function(_,e){var t=100*_+e;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return e.default.locale(t,null,!0),t}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/plugin/localeData.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/plugin/localeData.js
new file mode 100644
index 0000000..55e01ee
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/dayjs/plugin/localeData.js
@@ -0,0 +1 @@
+!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){"use strict";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)}}}));
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tinycolor2/esm/tinycolor.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tinycolor2/esm/tinycolor.js
new file mode 100644
index 0000000..87d2670
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tinycolor2/esm/tinycolor.js
@@ -0,0 +1 @@
+function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}var trimLeft=/^\s+/,trimRight=/\s+$/;function tinycolor(t,r){if(r=r||{},(t=t||"")instanceof tinycolor)return t;if(!(this instanceof tinycolor))return new tinycolor(t,r);var e=inputToRGB(t);this._originalInput=t,this._r=e.r,this._g=e.g,this._b=e.b,this._a=e.a,this._roundA=Math.round(100*this._a)/100,this._format=r.format||e.format,this._gradientType=r.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=e.ok}function inputToRGB(t){var r={r:0,g:0,b:0},e=1,n=null,a=null,o=null,i=!1,s=!1;return"string"==typeof t&&(t=stringInputToObject(t)),"object"==_typeof(t)&&(isValidCSSUnit(t.r)&&isValidCSSUnit(t.g)&&isValidCSSUnit(t.b)?(r=rgbToRgb(t.r,t.g,t.b),i=!0,s="%"===String(t.r).substr(-1)?"prgb":"rgb"):isValidCSSUnit(t.h)&&isValidCSSUnit(t.s)&&isValidCSSUnit(t.v)?(n=convertToPercentage(t.s),a=convertToPercentage(t.v),r=hsvToRgb(t.h,n,a),i=!0,s="hsv"):isValidCSSUnit(t.h)&&isValidCSSUnit(t.s)&&isValidCSSUnit(t.l)&&(n=convertToPercentage(t.s),o=convertToPercentage(t.l),r=hslToRgb(t.h,n,o),i=!0,s="hsl"),t.hasOwnProperty("a")&&(e=t.a)),e=boundAlpha(e),{ok:i,format:t.format||s,r:Math.min(255,Math.max(r.r,0)),g:Math.min(255,Math.max(r.g,0)),b:Math.min(255,Math.max(r.b,0)),a:e}}function rgbToRgb(t,r,e){return{r:255*bound01(t,255),g:255*bound01(r,255),b:255*bound01(e,255)}}function rgbToHsl(t,r,e){t=bound01(t,255),r=bound01(r,255),e=bound01(e,255);var n,a,o=Math.max(t,r,e),i=Math.min(t,r,e),s=(o+i)/2;if(o==i)n=a=0;else{var h=o-i;switch(a=s>.5?h/(2-o-i):h/(o+i),o){case t:n=(r-e)/h+(r1&&(e-=1),e<1/6?t+6*(r-t)*e:e<.5?r:e<2/3?t+(r-t)*(2/3-e)*6:t}if(t=bound01(t,360),r=bound01(r,100),e=bound01(e,100),0===r)n=a=o=e;else{var s=e<.5?e*(1+r):e+r-e*r,h=2*e-s;n=i(h,s,t+1/3),a=i(h,s,t),o=i(h,s,t-1/3)}return{r:255*n,g:255*a,b:255*o}}function rgbToHsv(t,r,e){t=bound01(t,255),r=bound01(r,255),e=bound01(e,255);var n,a,o=Math.max(t,r,e),i=Math.min(t,r,e),s=o,h=o-i;if(a=0===o?0:h/o,o==i)n=0;else{switch(o){case t:n=(r-e)/h+(r>1)+720)%360;--r;)n.h=(n.h+a)%360,o.push(tinycolor(n));return o}function _monochromatic(t,r){r=r||6;for(var e=tinycolor(t).toHsv(),n=e.h,a=e.s,o=e.v,i=[],s=1/r;r--;)i.push(tinycolor({h:n,s:a,v:o})),o=(o+s)%1;return i}tinycolor.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,r,e,n=this.toRgb();return t=n.r/255,r=n.g/255,e=n.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))},setAlpha:function(t){return this._a=boundAlpha(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=rgbToHsv(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=rgbToHsv(this._r,this._g,this._b),r=Math.round(360*t.h),e=Math.round(100*t.s),n=Math.round(100*t.v);return 1==this._a?"hsv("+r+", "+e+"%, "+n+"%)":"hsva("+r+", "+e+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=rgbToHsl(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=rgbToHsl(this._r,this._g,this._b),r=Math.round(360*t.h),e=Math.round(100*t.s),n=Math.round(100*t.l);return 1==this._a?"hsl("+r+", "+e+"%, "+n+"%)":"hsla("+r+", "+e+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return rgbToHex(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return rgbaToHex(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*bound01(this._r,255))+"%",g:Math.round(100*bound01(this._g,255))+"%",b:Math.round(100*bound01(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*bound01(this._r,255))+"%, "+Math.round(100*bound01(this._g,255))+"%, "+Math.round(100*bound01(this._b,255))+"%)":"rgba("+Math.round(100*bound01(this._r,255))+"%, "+Math.round(100*bound01(this._g,255))+"%, "+Math.round(100*bound01(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(hexNames[rgbToHex(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var r="#"+rgbaToArgbHex(this._r,this._g,this._b,this._a),e=r,n=this._gradientType?"GradientType = 1, ":"";if(t){var a=tinycolor(t);e="#"+rgbaToArgbHex(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+r+",endColorstr="+e+")"},toString:function(t){var r=!!t;t=t||this._format;var e=!1,n=this._a<1&&this._a>=0;return r||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(e=this.toRgbString()),"prgb"===t&&(e=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(e=this.toHexString()),"hex3"===t&&(e=this.toHexString(!0)),"hex4"===t&&(e=this.toHex8String(!0)),"hex8"===t&&(e=this.toHex8String()),"name"===t&&(e=this.toName()),"hsl"===t&&(e=this.toHslString()),"hsv"===t&&(e=this.toHsvString()),e||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return tinycolor(this.toString())},_applyModification:function(t,r){var e=t.apply(null,[this].concat([].slice.call(r)));return this._r=e._r,this._g=e._g,this._b=e._b,this.setAlpha(e._a),this},lighten:function(){return this._applyModification(_lighten,arguments)},brighten:function(){return this._applyModification(_brighten,arguments)},darken:function(){return this._applyModification(_darken,arguments)},desaturate:function(){return this._applyModification(_desaturate,arguments)},saturate:function(){return this._applyModification(_saturate,arguments)},greyscale:function(){return this._applyModification(_greyscale,arguments)},spin:function(){return this._applyModification(_spin,arguments)},_applyCombination:function(t,r){return t.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(_analogous,arguments)},complement:function(){return this._applyCombination(_complement,arguments)},monochromatic:function(){return this._applyCombination(_monochromatic,arguments)},splitcomplement:function(){return this._applyCombination(_splitcomplement,arguments)},triad:function(){return this._applyCombination(polyad,[3])},tetrad:function(){return this._applyCombination(polyad,[4])}},tinycolor.fromRatio=function(t,r){if("object"==_typeof(t)){var e={};for(var n in t)t.hasOwnProperty(n)&&(e[n]="a"===n?t[n]:convertToPercentage(t[n]));t=e}return tinycolor(t,r)},tinycolor.equals=function(t,r){return!(!t||!r)&&tinycolor(t).toRgbString()==tinycolor(r).toRgbString()},tinycolor.random=function(){return tinycolor.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},tinycolor.mix=function(t,r,e){e=0===e?0:e||50;var n=tinycolor(t).toRgb(),a=tinycolor(r).toRgb(),o=e/100;return tinycolor({r:(a.r-n.r)*o+n.r,g:(a.g-n.g)*o+n.g,b:(a.b-n.b)*o+n.b,a:(a.a-n.a)*o+n.a})},tinycolor.readability=function(t,r){var e=tinycolor(t),n=tinycolor(r);return(Math.max(e.getLuminance(),n.getLuminance())+.05)/(Math.min(e.getLuminance(),n.getLuminance())+.05)},tinycolor.isReadable=function(t,r,e){var n,a,o=tinycolor.readability(t,r);switch(a=!1,(n=validateWCAG2Parms(e)).level+n.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7}return a},tinycolor.mostReadable=function(t,r,e){var n,a,o,i,s=null,h=0;a=(e=e||{}).includeFallbackColors,o=e.level,i=e.size;for(var l=0;lh&&(h=n,s=tinycolor(r[l]));return tinycolor.isReadable(t,s,{level:o,size:i})||!a?s:(e.includeFallbackColors=!1,tinycolor.mostReadable(t,["#fff","#000"],e))};var names=tinycolor.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},hexNames=tinycolor.hexNames=flip(names);function flip(t){var r={};for(var e in t)t.hasOwnProperty(e)&&(r[t[e]]=e);return r}function boundAlpha(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function bound01(t,r){isOnePointZero(t)&&(t="100%");var e=isPercentage(t);return t=Math.min(r,Math.max(0,parseFloat(t))),e&&(t=parseInt(t*r,10)/100),Math.abs(t-r)<1e-6?1:t%r/parseFloat(r)}function clamp01(t){return Math.min(1,Math.max(0,t))}function parseIntFromHex(t){return parseInt(t,16)}function isOnePointZero(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function isPercentage(t){return"string"==typeof t&&-1!=t.indexOf("%")}function pad2(t){return 1==t.length?"0"+t:""+t}function convertToPercentage(t){return t<=1&&(t=100*t+"%"),t}function convertDecimalToHex(t){return Math.round(255*parseFloat(t)).toString(16)}function convertHexToDecimal(t){return parseIntFromHex(t)/255}var matchers=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",r="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+r),rgba:new RegExp("rgba"+e),hsl:new RegExp("hsl"+r),hsla:new RegExp("hsla"+e),hsv:new RegExp("hsv"+r),hsva:new RegExp("hsva"+e),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function isValidCSSUnit(t){return!!matchers.CSS_UNIT.exec(t)}function stringInputToObject(t){t=t.replace(trimLeft,"").replace(trimRight,"").toLowerCase();var r,e=!1;if(names[t])t=names[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};return(r=matchers.rgb.exec(t))?{r:r[1],g:r[2],b:r[3]}:(r=matchers.rgba.exec(t))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=matchers.hsl.exec(t))?{h:r[1],s:r[2],l:r[3]}:(r=matchers.hsla.exec(t))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=matchers.hsv.exec(t))?{h:r[1],s:r[2],v:r[3]}:(r=matchers.hsva.exec(t))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=matchers.hex8.exec(t))?{r:parseIntFromHex(r[1]),g:parseIntFromHex(r[2]),b:parseIntFromHex(r[3]),a:convertHexToDecimal(r[4]),format:e?"name":"hex8"}:(r=matchers.hex6.exec(t))?{r:parseIntFromHex(r[1]),g:parseIntFromHex(r[2]),b:parseIntFromHex(r[3]),format:e?"name":"hex"}:(r=matchers.hex4.exec(t))?{r:parseIntFromHex(r[1]+""+r[1]),g:parseIntFromHex(r[2]+""+r[2]),b:parseIntFromHex(r[3]+""+r[3]),a:convertHexToDecimal(r[4]+""+r[4]),format:e?"name":"hex8"}:!!(r=matchers.hex3.exec(t))&&{r:parseIntFromHex(r[1]+""+r[1]),g:parseIntFromHex(r[2]+""+r[2]),b:parseIntFromHex(r[3]+""+r[3]),format:e?"name":"hex"}}function validateWCAG2Parms(t){var r,e;return"AA"!==(r=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==r&&(r="AA"),"small"!==(e=(t.size||"small").toLowerCase())&&"large"!==e&&(e="small"),{level:r,size:e}}export{tinycolor as default};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tslib/index.js b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tslib/index.js
new file mode 100644
index 0000000..3b890d3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/miniprogram_npm/tslib/index.js
@@ -0,0 +1 @@
+var __extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__createBinding,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension;!function(e){var t="object"==typeof global?global:"object"==typeof self?self:"object"==typeof this?this:{};function r(e,r){return e!==t&&("function"==typeof Object.create?Object.defineProperty(e,"__esModule",{value:!0}):e.__esModule=!0),function(t,n){return e[t]=r?r(t,n):n}}"function"==typeof define&&define.amd?define("tslib",["exports"],(function(n){e(r(t,r(n)))})):"object"==typeof module&&"object"==typeof module.exports?e(r(t,r(module.exports))):e(r(t))}((function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};__extends=function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)},__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i},__param=function(e,t){return function(r,n){t(r,n,e)}},__esDecorate=function(e,t,r,n,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var c,s=n.kind,_="getter"===s?"get":"setter"===s?"set":"value",u=!t&&e?n.static?e:e.prototype:null,l=t||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),f=!1,p=r.length-1;p>=0;p--){var y={};for(var d in n)y[d]="access"===d?{}:n[d];for(var d in n.access)y.access[d]=n.access[d];y.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var v=(0,r[p])("accessor"===s?{get:l.get,set:l.set}:l[_],y);if("accessor"===s){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(c=i(v.get))&&(l.get=c),(c=i(v.set))&&(l.set=c),(c=i(v.init))&&o.unshift(c)}else(c=i(v))&&("field"===s?o.unshift(c):l[_]=c)}u&&Object.defineProperty(u,n.name,l),f=!0},__runInitializers=function(e,t,r){for(var n=arguments.length>2,o=0;o0&&o[o.length-1])||6!==c[0]&&2!==c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i},__spread=function(){for(var e=[],t=0;t1||c(e,t)}))},t&&(n[e]=t(n[e])))}function c(e,t){try{(r=o[e](t)).value instanceof __await?Promise.resolve(r.value.v).then(s,_):u(a[0][2],r)}catch(e){u(a[0][3],e)}var r}function s(e){c("next",e)}function _(e){c("throw",e)}function u(e,t){e(t),a.shift(),a.length&&c(a[0][0],a[0][1])}},__asyncDelegator=function(e){var t,r;return t={},n("next"),n("throw",(function(e){throw e})),n("return"),t[Symbol.iterator]=function(){return this},t;function n(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:!1}:o?o(t):t}:o}},__asyncValues=function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e="function"==typeof __values?__values(e):e[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){(function(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)})(n,o,(t=e[r](t)).done,t.value)}))}}},__makeTemplateObject=function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e};var r=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)};__importStar=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=n(e),a=0;a string;
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/page-scroll.js b/miniprogram_npm/tdesign-miniprogram/mixins/page-scroll.js
new file mode 100644
index 0000000..bb775d1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/page-scroll.js
@@ -0,0 +1 @@
+import{getCurrentPage}from"../common/utils";const onPageScroll=function(r){const e=getCurrentPage();if(!e)return;const{pageScroller:o}=e;null==o||o.forEach((e=>{"function"==typeof e&&e(r)}))};export default(r="onScroll")=>Behavior({attached(){var e;const o=getCurrentPage();if(!o)return;const l=null===(e=this[r])||void 0===e?void 0:e.bind(this);l&&(this._pageScroller=l),Array.isArray(o.pageScroller)?o.pageScroller.push(l):o.pageScroller="function"==typeof o.onPageScroll?[o.onPageScroll.bind(o),l]:[l],o.onPageScroll=onPageScroll},detached(){var r;const e=getCurrentPage();e&&(e.pageScroller=(null===(r=e.pageScroller)||void 0===r?void 0:r.filter((r=>r!==this._pageScroller)))||[])}});
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.d.ts
new file mode 100644
index 0000000..4821f37
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.d.ts
@@ -0,0 +1,2 @@
+declare const themeChangeBehavior: string;
+export default themeChangeBehavior;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.js b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.js
new file mode 100644
index 0000000..335997b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/theme-change.js
@@ -0,0 +1 @@
+import{appBaseInfo}from"../common/utils";const themeChangeBehavior=Behavior({data:{theme:"light"},attached(){this._initTheme()},methods:{_initTheme(){const e=this;e.setData({theme:appBaseInfo.theme}),wx.onThemeChange((t=>{e.setData({theme:t.theme})}))}}});export default themeChangeBehavior;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/touch.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/touch.d.ts
new file mode 100644
index 0000000..ae80eca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/touch.d.ts
@@ -0,0 +1,2 @@
+declare const _default: string;
+export default _default;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/touch.js b/miniprogram_npm/tdesign-miniprogram/mixins/touch.js
new file mode 100644
index 0000000..0eccd27
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/touch.js
@@ -0,0 +1 @@
+const MinDistance=10,getDirection=(t,s)=>t>s&&t>10?"horizontal":s>t&&s>10?"vertical":"";export default Behavior({methods:{resetTouchStatus(){this.direction="",this.deltaX=0,this.deltaY=0,this.offsetX=0,this.offsetY=0},touchStart(t){this.resetTouchStatus();const[s]=t.touches;this.startX=s.clientX,this.startY=s.clientY},touchMove(t){const[s]=t.touches;this.deltaX=s.clientX-this.startX,this.deltaY=s.clientY-this.startY,this.offsetX=Math.abs(this.deltaX),this.offsetY=Math.abs(this.deltaY),this.direction=getDirection(this.offsetX,this.offsetY)}}});
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/transition.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/transition.d.ts
new file mode 100644
index 0000000..8c23e35
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/transition.d.ts
@@ -0,0 +1 @@
+export default function transition(): string;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/transition.js b/miniprogram_npm/tdesign-miniprogram/mixins/transition.js
new file mode 100644
index 0000000..173ec7b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/transition.js
@@ -0,0 +1 @@
+import config from"../common/config";const{prefix:prefix}=config;export default function transition(){return Behavior({properties:{visible:{type:Boolean,value:null,observer:"watchVisible"},appear:Boolean,name:{type:String,value:"fade"},durations:{type:Number,optionalTypes:[Array]}},data:{transitionClass:"",transitionDurations:300,className:"",realVisible:!1},created(){this.status="",this.transitionT=0},attached(){this.durations=this.getDurations(),this.data.visible&&this.enter(),this.inited=!0},detached(){clearTimeout(this.transitionT)},methods:{watchVisible(t,i){this.inited&&t!==i&&(t?this.enter():this.leave())},getDurations(){const{durations:t}=this.data;return Array.isArray(t)?t.map((t=>Number(t))):[Number(t),Number(t)]},enter(){const{name:t}=this.data,[i]=this.durations;this.status="entering",this.setData({realVisible:!0,transitionClass:`${prefix}-${t}-enter ${prefix}-${t}-enter-active`}),setTimeout((()=>{this.setData({transitionClass:`${prefix}-${t}-enter-active ${prefix}-${t}-enter-to`})}),30),"number"==typeof i&&i>0&&(this.transitionT=setTimeout(this.entered.bind(this),i+30))},entered(){this.customDuration=!1,clearTimeout(this.transitionT),this.status="entered",this.setData({transitionClass:""})},leave(){const{name:t}=this.data,[,i]=this.durations;this.status="leaving",this.setData({transitionClass:`${prefix}-${t}-leave ${prefix}-${t}-leave-active`}),clearTimeout(this.transitionT),setTimeout((()=>{this.setData({transitionClass:`${prefix}-${t}-leave-active ${prefix}-${t}-leave-to`})}),30),"number"==typeof i&&i>0&&(this.customDuration=!0,this.transitionT=setTimeout(this.leaved.bind(this),i+30))},leaved(){this.customDuration=!1,this.triggerEvent("leaved"),clearTimeout(this.transitionT),this.status="leaved",this.setData({transitionClass:""})},onTransitionEnd(){this.customDuration||(clearTimeout(this.transitionT),"entering"===this.status&&this.data.visible?this.entered():"leaving"!==this.status||this.data.visible||(this.leaved(),this.setData({realVisible:!1})))}}})}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.d.ts b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.d.ts
new file mode 100644
index 0000000..908f771
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.d.ts
@@ -0,0 +1,2 @@
+declare const useCustomNavbarBehavior: string;
+export default useCustomNavbarBehavior;
diff --git a/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.js b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.js
new file mode 100644
index 0000000..d455c92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/mixins/using-custom-navbar.js
@@ -0,0 +1 @@
+import{systemInfo}from"../common/utils";const useCustomNavbarBehavior=Behavior({properties:{usingCustomNavbar:{type:Boolean,value:!1},customNavbarHeight:{type:Number,value:0}},data:{distanceTop:0},lifetimes:{attached(){this.properties.usingCustomNavbar&&this.calculateCustomNavbarDistanceTop()}},methods:{calculateCustomNavbarDistanceTop(){const{statusBarHeight:t}=systemInfo,a=wx.getMenuButtonBoundingClientRect(),e=a.top+a.bottom-t;this.setData({distanceTop:Math.max(e,this.properties.customNavbarHeight+t)})}}});export default useCustomNavbarBehavior;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.d.ts b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.d.ts
new file mode 100644
index 0000000..a53dce9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent } from '../common/src/index';
+export default class Navbar extends SuperComponent {
+ externalClasses: string[];
+ timer: any;
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdNavbarProps;
+ observers: {
+ visible(this: Navbar, visible: any): void;
+ 'title,titleMaxLength'(this: any): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ boxStyle: string;
+ showTitle: string;
+ hideLeft: boolean;
+ hideCenter: boolean;
+ _menuRect: any;
+ _leftRect: any;
+ _boxStyle: {};
+ };
+ attached(): void;
+ detached(): void;
+ methods: {
+ initStyle(): void;
+ calcCenterStyle(leftRect: WechatMiniprogram.BoundingClientRectResult, menuRect: WechatMiniprogram.BoundingClientRectResult, defaultStyle: object): void;
+ getLeftRect(): void;
+ getMenuRect(): void;
+ onMenuButtonBoundingClientRectWeightChange(): void;
+ offMenuButtonBoundingClientRectWeightChange(): void;
+ queryElements(capsuleRect: any): void;
+ goBack(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.js b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.js
new file mode 100644
index 0000000..1814064
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{getRect,systemInfo}from"../common/utils";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-navbar`;let Navbar=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-placeholder`,`${prefix}-class-content`,`${prefix}-class-title`,`${prefix}-class-left`,`${prefix}-class-center`,`${prefix}-class-left-icon`,`${prefix}-class-home-icon`,`${prefix}-class-capsule`,`${prefix}-class-nav-btn`],this.timer=null,this.options={multipleSlots:!0},this.properties=props,this.observers={visible(t){const{animation:e}=this.properties,i=`${name}${t?"--visible":"--hide"}`;this.setData({visibleClass:`${i}${e?"-animation":""}`}),this.timer&&clearTimeout(this.timer),e&&(this.timer=setTimeout((()=>{this.setData({visibleClass:i})}),300))},"title,titleMaxLength"(){const{title:t}=this.properties,e=this.properties.titleMaxLength||Number.MAX_SAFE_INTEGER;let i=t.slice(0,e);e`${t}: ${e}`)).join("; ");this.setData({boxStyle:a,_boxStyle:s})},getLeftRect(){getRect(this,`.${name}__left`).then((t=>{t.right>this.data._leftRect.right&&this.calcCenterStyle(t,this.data._menuRect,this.data._boxStyle)}))},getMenuRect(){if(wx.getMenuButtonBoundingClientRect){const t=wx.getMenuButtonBoundingClientRect();this.setData({_menuRect:t,_leftRect:{right:systemInfo.windowWidth-t.left}})}},onMenuButtonBoundingClientRectWeightChange(){wx.onMenuButtonBoundingClientRectWeightChange&&wx.onMenuButtonBoundingClientRectWeightChange((t=>this.queryElements(t)))},offMenuButtonBoundingClientRectWeightChange(){wx.offMenuButtonBoundingClientRectWeightChange&&wx.offMenuButtonBoundingClientRectWeightChange((t=>this.queryElements(t)))},queryElements(t){Promise.all([getRect(this,`.${this.data.classPrefix}__left`),getRect(this,`.${this.data.classPrefix}__center`)]).then((([e,i])=>{Math.round(e.right)>t.left?this.setData({hideLeft:!0,hideCenter:!0}):Math.round(i.right)>t.left?this.setData({hideLeft:!1,hideCenter:!0}):this.setData({hideLeft:!1,hideCenter:!1})}))},goBack(){const{delta:t}=this.data,e=this;this.triggerEvent("go-back"),t>0&&wx.navigateBack({delta:t,fail(t){e.triggerEvent("fail",t)},complete(t){e.triggerEvent("complete",t)},success(t){e.triggerEvent("success",t)}})}}}attached(){this.initStyle(),this.getLeftRect(),this.onMenuButtonBoundingClientRectWeightChange()}detached(){this.offMenuButtonBoundingClientRectWeightChange()}};Navbar=__decorate([wxComponent()],Navbar);export default Navbar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.json b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxml b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxml
new file mode 100644
index 0000000..ddb1cb1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxml
@@ -0,0 +1 @@
+{{showTitle}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxss b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxss
new file mode 100644
index 0000000..1fcd8f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/navbar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-navbar--fixed .t-navbar__content{position:fixed;top:0;left:0;z-index:5001}.t-navbar--visible{display:''}.t-navbar--visible-animation{opacity:1;transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar--hide-animation{opacity:0;transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar--hide{display:none}.t-navbar__placeholder{height:var(--td-navbar-height,48px);padding-top:var(--td-navbar-padding-top,20px);position:relative;visibility:hidden;box-sizing:content-box}.t-navbar__content{position:relative;z-index:1;height:var(--td-navbar-height,48px);width:calc(100% - var(--td-navbar-right,95px));padding-right:var(--td-navbar-right,95px);padding-top:var(--td-navbar-padding-top,20px);color:var(--td-navbar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background-color:var(--td-navbar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));display:flex;align-items:center;box-sizing:content-box}.t-navbar__left{position:relative;box-sizing:border-box;max-width:var(--td-navbar-left-max-width);overflow:hidden;display:flex;align-items:center;margin-left:var(--td-spacer-1,24rpx);transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar__left-arrow{font-size:var(--td-navbar-left-arrow-size,24px)}.t-navbar__left--hide{opacity:0}.t-navbar__capsule{box-sizing:border-box;width:var(--td-navbar-capsule-width,88px);height:var(--td-navbar-capsule-height,32px);display:flex;align-items:center}.t-navbar__capsule::before{content:'';position:absolute;z-index:-1;top:0;left:0;width:200%;height:200%;transform:scale(.5);transform-origin:0 0;box-sizing:border-box;border-radius:calc(var(--td-navbar-capsule-border-radius,16px) * 2);border:2rpx solid var(--td-navbar-capsule-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)))}.t-navbar__capsule:empty{display:none}.t-navbar__center{font-size:18px;text-align:center;position:absolute;bottom:0;left:var(--td-navbar-center-left,var(--td-navbar-right,95px));width:var(--td-navbar-center-width);height:var(--td-navbar-height,48px);line-height:var(--td-navbar-height,48px);flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:opacity .3s cubic-bezier(.645,.045,.355,1)}.t-navbar__center:empty{display:none}.t-navbar__center-title{font-size:var(--td-navbar-title-font-size,18px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:var(--td-navbar-title-font-weight,600)}.t-navbar__center--hide{opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/navbar/props.d.ts
new file mode 100644
index 0000000..168bee2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdNavbarProps } from './type';
+declare const props: TdNavbarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/props.js b/miniprogram_npm/tdesign-miniprogram/navbar/props.js
new file mode 100644
index 0000000..34779c2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/props.js
@@ -0,0 +1 @@
+const props={animation:{type:Boolean,value:!0},delta:{type:Number,value:1},fixed:{type:Boolean,value:!0},leftArrow:{type:Boolean,value:!1},title:{type:String},titleMaxLength:{type:Number},visible:{type:Boolean,value:!0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/navbar/type.d.ts
new file mode 100644
index 0000000..11a4e77
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdNavbarProps {
+ animation?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ delta?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ leftArrow?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ titleMaxLength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/navbar/type.js b/miniprogram_npm/tdesign-miniprogram/navbar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/navbar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.d.ts b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.d.ts
new file mode 100644
index 0000000..783c09b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent, ComponentsOptionsType } from '../common/src/index';
+export default class NoticeBar extends SuperComponent {
+ externalClasses: string[];
+ options: ComponentsOptionsType;
+ properties: import("./type").TdNoticeBarProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ loop: number;
+ __ready: boolean;
+ };
+ observers: {
+ marquee(val: any): void;
+ visible(visible: any): void;
+ prefixIcon(prefixIcon: any): void;
+ suffixIcon(v: any): void;
+ content(): void;
+ };
+ lifetimes: {
+ created(): void;
+ detached(): void;
+ ready(): void;
+ };
+ methods: {
+ initAnimation(): void;
+ startScrollAnimation(isFirstScroll?: boolean): void;
+ show(): void;
+ clearNoticeBarAnimation(): void;
+ setPrefixIcon(v: any): void;
+ onChange(e: WechatMiniprogram.SwiperChange): void;
+ clickPrefixIcon(): void;
+ clickContent(): void;
+ clickSuffixIcon(): void;
+ clickOperation(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.js b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.js
new file mode 100644
index 0000000..c77be96
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{getRect,getAnimationFrame,calcIcon}from"../common/utils";import props from"./props";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-notice-bar`,THEME_ICON={info:"info-circle-filled",success:"check-circle-filled",warning:"info-circle-filled",error:"error-circle-filled"};let NoticeBar=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-prefix-icon`,`${prefix}-class-operation`,`${prefix}-class-suffix-icon`],this.options={multipleSlots:!0,pureDataPattern:/^__/},this.properties=props,this.data={prefix:prefix,classPrefix:name,loop:-1,__ready:!1},this.observers={marquee(t){"{}"!==JSON.stringify(t)&&"true"!==JSON.stringify(t)||this.setData({marquee:{speed:50,loop:-1,delay:0}})},visible(t){this.data.__ready&&(t?this.show():this.clearNoticeBarAnimation())},prefixIcon(t){this.setPrefixIcon(t)},suffixIcon(t){this.setData({_suffixIcon:calcIcon(t)})},content(){this.data.__ready&&(this.clearNoticeBarAnimation(),this.initAnimation())}},this.lifetimes={created(){this.resetAnimation=wx.createAnimation({duration:0,timingFunction:"linear"})},detached(){this.clearNoticeBarAnimation()},ready(){this.show(),this.setData({__ready:!0})}},this.methods={initAnimation(){const t=`.${name}__content-wrap`,i=`.${name}__content`;getAnimationFrame(this,(()=>{Promise.all([getRect(this,i),getRect(this,t)]).then((([t,i])=>{const{marquee:e}=this.properties;if(null!=t&&null!=i&&t.width&&i.width&&!1!==e&&(e||i.width{}))}))},startScrollAnimation(t=!1){this.clearNoticeBarAnimation();const{wrapWidth:i,nodeWidth:e,firstAnimationDuration:n,animationDuration:o,delay:a}=this.data,r=t?a:0,s=t?n:o;this.setData({animationData:this.resetAnimation.translateX(t?0:i).step().export()}),getAnimationFrame(this,(()=>{this.setData({animationData:wx.createAnimation({duration:s,timingFunction:"linear",delay:r}).translateX(-e).step().export()})})),this.nextAnimationContext=setTimeout((()=>{this.data.loop>0?(this.data.loop-=1,this.startScrollAnimation()):0===this.data.loop?this.setData({animationData:this.resetAnimation.translateX(0).step().export()}):this.data.loop<0&&this.startScrollAnimation()}),s+r)},show(){this.clearNoticeBarAnimation(),this.setPrefixIcon(this.properties.prefixIcon),this.initAnimation()},clearNoticeBarAnimation(){this.nextAnimationContext&&clearTimeout(this.nextAnimationContext),this.nextAnimationContext=null},setPrefixIcon(t){const{theme:i}=this.properties;this.setData({_prefixIcon:calcIcon(t,THEME_ICON[i])})},onChange(t){const{current:i,source:e}=t.detail;this.triggerEvent("change",{current:i,source:e})},clickPrefixIcon(){this.triggerEvent("click",{trigger:"prefix-icon"})},clickContent(){this.triggerEvent("click",{trigger:"content"})},clickSuffixIcon(){this.triggerEvent("click",{trigger:"suffix-icon"})},clickOperation(){this.triggerEvent("click",{trigger:"operation"})}}}};NoticeBar=__decorate([wxComponent()],NoticeBar);export default NoticeBar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.json b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxml b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxml
new file mode 100644
index 0000000..63ec32d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxml
@@ -0,0 +1 @@
+{{item}}{{content}}{{operation}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxss b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxss
new file mode 100644
index 0000000..190fccc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/notice-bar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-notice-bar{display:flex;align-items:flex-start;padding:26rpx 32rpx;font-size:var(--td-font-size-base,28rpx)}.t-notice-bar__content-wrap{flex:1;overflow-x:hidden;line-height:44rpx;color:var(--td-notice-bar-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-notice-bar__content{display:inline-block;white-space:nowrap}.t-notice-bar__content-wrapable{white-space:normal}.t-notice-bar__content--vertical{display:block;height:44rpx;line-height:44rpx}.t-notice-bar__content--vertical-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-notice-bar__prefix-icon{color:inherit}.t-notice-bar__prefix-icon:not(:empty){padding-right:var(--td-spacer,16rpx);width:44rpx}.t-notice-bar__suffix-icon{color:var(--td-notice-bar-suffix-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-notice-bar__prefix-icon,.t-notice-bar__suffix-icon{font-size:44rpx}.t-notice-bar__prefix-icon:empty,.t-notice-bar__suffix-icon:empty{display:none}.t-notice-bar__operation{display:inline-flex;vertical-align:top;color:var(--td-notice-bar-operation-font-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:700}.t-notice-bar__operation:empty{display:none}.t-notice-bar__suffix-icon:not(:empty){padding-left:var(--td-spacer,16rpx);width:44rpx}.t-notice-bar--info{color:var(--td-notice-bar-info-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-notice-bar-info-bg-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-notice-bar--success{color:var(--td-notice-bar-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-notice-bar-success-bg-color,var(--td-success-color-1,#e3f9e9))}.t-notice-bar--warning{color:var(--td-notice-bar-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-notice-bar-warning-bg-color,var(--td-warning-color-1,#fff1e9))}.t-notice-bar--error{color:var(--td-notice-bar-error-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-notice-bar-error-bg-color,var(--td-error-color-1,#fff0ed))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.d.ts
new file mode 100644
index 0000000..5fe19dc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdNoticeBarProps } from './type';
+declare const props: TdNoticeBarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/props.js b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.js
new file mode 100644
index 0000000..fed5df5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/props.js
@@ -0,0 +1 @@
+const props={content:{type:null},direction:{type:String,value:"horizontal"},interval:{type:Number,value:2e3},marquee:{type:null,value:!1},operation:{type:String},prefixIcon:{type:null,value:!0},suffixIcon:{type:null},theme:{type:String,value:"info"},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.d.ts
new file mode 100644
index 0000000..61c7ca6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.d.ts
@@ -0,0 +1,47 @@
+export interface TdNoticeBarProps {
+ content?: {
+ type: null;
+ value?: string | string[];
+ };
+ direction?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ interval?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ marquee?: {
+ type: null;
+ value?: boolean | NoticeBarMarquee;
+ };
+ operation?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ prefixIcon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ suffixIcon?: {
+ type: null;
+ value?: string | object;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'info' | 'success' | 'warning' | 'error';
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export interface NoticeBarMarquee {
+ speed?: number;
+ loop?: number;
+ delay?: number;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/notice-bar/type.js b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/notice-bar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/index.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/index.d.ts
new file mode 100644
index 0000000..164efb7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './overlay';
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/index.js b/miniprogram_npm/tdesign-miniprogram/overlay/index.js
new file mode 100644
index 0000000..fdfba01
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./overlay";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.d.ts
new file mode 100644
index 0000000..98ff36d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent } from '../common/src/index';
+import { TdOverlayProps } from './type';
+export interface OverlayProps extends TdOverlayProps {
+}
+export default class Overlay extends SuperComponent {
+ properties: TdOverlayProps;
+ behaviors: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ computedStyle: string;
+ _zIndex: number;
+ };
+ observers: {
+ backgroundColor(v: any): void;
+ zIndex(v: any): void;
+ };
+ methods: {
+ handleClick(): void;
+ noop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.js b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.js
new file mode 100644
index 0000000..98718b1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import transition from"../mixins/transition";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-overlay`;let Overlay=class extends SuperComponent{constructor(){super(...arguments),this.properties=props,this.behaviors=[transition(),useCustomNavbar],this.data={prefix:prefix,classPrefix:name,computedStyle:"",_zIndex:11e3},this.observers={backgroundColor(o){this.setData({computedStyle:o?`background-color: ${o};`:""})},zIndex(o){0!==o&&this.setData({_zIndex:o})}},this.methods={handleClick(){this.triggerEvent("click",{visible:!this.properties.visible})},noop(){}}}};Overlay=__decorate([wxComponent()],Overlay);export default Overlay;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.json b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxml b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxml
new file mode 100644
index 0000000..5543e5b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxss b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxss
new file mode 100644
index 0000000..2294ce6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/overlay.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-overlay{position:fixed;top:0;left:0;width:100%;bottom:0;background-color:var(--td-overlay-bg-color,var(--td-font-gray-2,rgba(0,0,0,.6)));transition-property:opacity;transition-duration:var(--td-overlay-transition-duration,300ms);transition-timing-function:ease}.t-fade-enter{opacity:0}.t-fade-leave-to{opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/props.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/props.d.ts
new file mode 100644
index 0000000..e42d7f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/props.d.ts
@@ -0,0 +1,3 @@
+import { TdOverlayProps } from './type';
+declare const props: TdOverlayProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/props.js b/miniprogram_npm/tdesign-miniprogram/overlay/props.js
new file mode 100644
index 0000000..d0ffe55
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/props.js
@@ -0,0 +1 @@
+const props={backgroundColor:{type:String,value:""},duration:{type:Number,value:300},preventScrollThrough:{type:Boolean,value:!0},zIndex:{type:Number,value:11e3}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/type.d.ts b/miniprogram_npm/tdesign-miniprogram/overlay/type.d.ts
new file mode 100644
index 0000000..e46cec9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/type.d.ts
@@ -0,0 +1,26 @@
+export interface TdOverlayProps {
+ backgroundColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/overlay/type.js b/miniprogram_npm/tdesign-miniprogram/overlay/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/overlay/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.d.ts b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.d.ts
new file mode 100644
index 0000000..29c54f9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.d.ts
@@ -0,0 +1,36 @@
+import { SuperComponent, RelationsOptions, ComponentsOptionsType } from '../common/src/index';
+import { PickerItemOption } from './type';
+export default class PickerItem extends SuperComponent {
+ relations: RelationsOptions;
+ options: ComponentsOptionsType;
+ externalClasses: string[];
+ properties: import("./type").TdPickerItemProps;
+ observers: {
+ 'options, pickerKeys'(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ offset: number;
+ duration: number;
+ value: string;
+ curIndex: number;
+ columnIndex: number;
+ pickerKeys: {
+ value: string;
+ label: string;
+ };
+ formatOptions: PickerItemOption[];
+ };
+ lifetimes: {
+ created(): void;
+ };
+ methods: {
+ onTouchStart(event: any): void;
+ onTouchMove(event: any): void;
+ onTouchEnd(event: any): void;
+ formatOption(options: PickerItemOption[], columnIndex: number, format: any): any[];
+ update(): void;
+ getCount(): any;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
new file mode 100644
index 0000000..05d7b6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.js
@@ -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}-picker-item`,ANIMATION_DURATION=1e3,INERTIA_TIME=300,INERTIA_DISTANCE=15,range=function(t,e,i){return Math.min(Math.max(t,e),i)},momentum=(t,e)=>{let i=t;return i=Math.abs(i/e)/.005*(i<0?-1:1),i};let PickerItem=class extends SuperComponent{constructor(){super(...arguments),this.relations={"../picker/picker":{type:"parent",linked(t){if("keys"in t.data){const{keys:e}=t.data;if(null===e||JSON.stringify(this.data.pickerKeys)===JSON.stringify(e))return;this.setData({pickerKeys:e})}}}},this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`],this.properties=props,this.observers={"options, pickerKeys"(){this.update()}},this.data={prefix:prefix,classPrefix:name,offset:0,duration:0,value:"",curIndex:0,columnIndex:0,pickerKeys:{value:"value",label:"label"},formatOptions:props.options.value},this.lifetimes={created(){this.StartY=0,this.StartOffset=0,this.startTime=0}},this.methods={onTouchStart(t){this.StartY=t.touches[0].clientY,this.StartOffset=this.data.offset,this.startTime=Date.now(),this.setData({duration:0})},onTouchMove(t){const{StartY:e,StartOffset:i}=this,{pickItemHeight:s}=this.data,o=t.touches[0].clientY-e,n=range(i+o,-this.getCount()*s,0);this.setData({offset:n})},onTouchEnd(t){const{offset:e,pickerKeys:i,columnIndex:s,pickItemHeight:o,formatOptions:n}=this.data,{startTime:a}=this;if(e===this.StartOffset)return;let r=0;const l=t.changedTouches[0].clientY-this.StartY,d=Date.now()-a;d<300&&Math.abs(l)>15&&(r=momentum(l,d));const c=range(e+r,-this.getCount()*o,0),u=range(Math.round(-c/o),0,this.getCount()-1);this.setData({offset:-u*o,duration:1e3,curIndex:u}),u!==this._selectedIndex&&(this._selectedIndex=u,wx.nextTick((()=>{var t,e,o;this._selectedIndex=u,this._selectedValue=null===(t=n[u])||void 0===t?void 0:t[null==i?void 0:i.value],this._selectedLabel=null===(e=n[u])||void 0===e?void 0:e[null==i?void 0:i.label],null===(o=this.$parent)||void 0===o||o.triggerColumnChange({index:u,column:s})})))},formatOption:(t,e,i)=>"function"!=typeof i?t:t.map((t=>i(t,e))),update(){var t,e,i,s;const{options:o,value:n,pickerKeys:a,pickItemHeight:r,format:l,columnIndex:d}=this.data,c=this.formatOption(o,d,l),u=c.findIndex((t=>t[null==a?void 0:a.value]===n)),h=u>0?u:0;this._selectedIndex=h,this._selectedValue=null===(t=c[h])||void 0===t?void 0:t[null==a?void 0:a.value],this._selectedLabel=null===(e=c[h])||void 0===e?void 0:e[null==a?void 0:a.label],this.setData({formatOptions:c,offset:-h*r,curIndex:h}),this._selectedIndex=h,this._selectedValue=null===(i=o[h])||void 0===i?void 0:i[null==a?void 0:a.value],this._selectedLabel=null===(s=o[h])||void 0===s?void 0:s[null==a?void 0:a.label]},getCount(){var t,e;return null===(e=null===(t=this.data)||void 0===t?void 0:t.options)||void 0===e?void 0:e.length}}}};PickerItem=__decorate([wxComponent()],PickerItem);export default PickerItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.json b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxml b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxml
new file mode 100644
index 0000000..e66f3b1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxml
@@ -0,0 +1 @@
+{{option[pickerKeys.label]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxss b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxss
new file mode 100644
index 0000000..318e8d0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/picker-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';:host{display:flex}.t-picker-item__group{height:var(--td-picker-group-height,400rpx);overflow:hidden;flex:1;z-index:1}.t-picker-item__wrapper{padding:144rpx 0}.t-picker-item__item{display:flex;justify-content:center;align-items:center;color:var(--td-picker-item-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-picker-item-font-size,var(--td-font-size-m,32rpx))}.t-picker-item__item-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.t-picker-item__item--active{color:var(--td-picker-item-active-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:600}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/picker-item/props.d.ts
new file mode 100644
index 0000000..1140c78
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPickerItemProps } from './type';
+declare const props: TdPickerItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/props.js b/miniprogram_npm/tdesign-miniprogram/picker-item/props.js
new file mode 100644
index 0000000..ab01464
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/props.js
@@ -0,0 +1 @@
+const props={format:{type:null},options:{type:Array,value:[]}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/picker-item/type.d.ts
new file mode 100644
index 0000000..661c9d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/type.d.ts
@@ -0,0 +1,14 @@
+export interface TdPickerItemProps {
+ format?: {
+ type: undefined;
+ value?: (option: PickerItemOption, columnIndex: number) => PickerItemOption;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: PickerItemOption[];
+ };
+}
+export interface PickerItemOption {
+ label: string;
+ value: string | number;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/picker-item/type.js b/miniprogram_npm/tdesign-miniprogram/picker-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.d.ts b/miniprogram_npm/tdesign-miniprogram/picker/picker.d.ts
new file mode 100644
index 0000000..c07d9b6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.d.ts
@@ -0,0 +1,37 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Picker extends SuperComponent {
+ behaviors: string[];
+ properties: import("./type").TdPickerProps;
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ observers: {
+ 'value, visible'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ defaultPopUpProps: {};
+ defaultPopUpzIndex: number;
+ pickItemHeight: number;
+ };
+ methods: {
+ updateChildren(): void;
+ getSelectedValue(): any[];
+ getColumnIndexes(): any;
+ onConfirm(): void;
+ triggerColumnChange({ column, index }: {
+ column: any;
+ index: any;
+ }): void;
+ onCancel(): void;
+ onPopupChange(e: any): void;
+ close(trigger: any): void;
+ };
+ ready(): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.js b/miniprogram_npm/tdesign-miniprogram/picker/picker.js
new file mode 100644
index 0000000..d2c1927
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{rpx2px}from"../common/utils";import config from"../common/config";import props from"./props";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-picker`;let Picker=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=[useCustomNavbar],this.properties=props,this.externalClasses=[`${prefix}-class`,`${prefix}-class-confirm`,`${prefix}-class-cancel`,`${prefix}-class-title`],this.options={multipleSlots:!0},this.relations={"../picker-item/picker-item":{type:"child",linked(){this.updateChildren()}}},this.observers={"value, visible"(){this.updateChildren()}},this.lifetimes={attached(){this.setData({pickItemHeight:rpx2px(this.properties.itemHeight)})}},this.data={prefix:prefix,classPrefix:name,defaultPopUpProps:{},defaultPopUpzIndex:11500,pickItemHeight:0},this.methods={updateChildren(){const{pickItemHeight:e}=this.data,{value:t,defaultValue:i}=this.properties;this.$children.forEach(((s,r)=>{var l,o;s.setData({value:null!==(o=null!==(l=null==t?void 0:t[r])&&void 0!==l?l:null==i?void 0:i[r])&&void 0!==o?o:"",columnIndex:r,pickItemHeight:e}),s.update()}))},getSelectedValue(){return[this.$children.map((e=>e._selectedValue)),this.$children.map((e=>e._selectedLabel))]},getColumnIndexes(){return this.$children.map(((e,t)=>({column:t,index:e._selectedIndex})))},onConfirm(){const[e,t]=this.getSelectedValue(),i=this.getColumnIndexes();this.close("confirm-btn"),this.triggerEvent("change",{value:e,label:t,columns:i}),this.triggerEvent("confirm",{value:e,label:t,columns:i})},triggerColumnChange({column:e,index:t}){const[i,s]=this.getSelectedValue();this.triggerEvent("pick",{value:i,label:s,column:e,index:t})},onCancel(){this.close("cancel-btn"),this.triggerEvent("cancel")},onPopupChange(e){const{visible:t}=e.detail;this.close("overlay"),this.triggerEvent("visible-change",{visible:t})},close(e){this.data.autoClose&&this.setData({visible:!1}),this.triggerEvent("close",{trigger:e})}}}ready(){this.$children.map(((e,t)=>e.columnIndex=t))}};Picker=__decorate([wxComponent()],Picker);export default Picker;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.json b/miniprogram_npm/tdesign-miniprogram/picker/picker.json
new file mode 100644
index 0000000..f34a4c1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-popup":"../popup/popup"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.wxml b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxml
new file mode 100644
index 0000000..a03e416
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/picker.wxss b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxss
new file mode 100644
index 0000000..35c260f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/picker.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-picker{position:relative;background-color:var(--td-picker-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border-top-left-radius:var(--td-picker-border-radius,24rpx);border-top-right-radius:var(--td-picker-border-radius,24rpx)}.t-picker__toolbar{display:flex;align-items:center;justify-content:space-between;overflow:hidden;height:var(--td-picker-toolbar-height,116rpx)}.t-picker__title{flex:1;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--td-picker-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:var(--td-picker-title-line-height,52rpx);font-weight:var(--td-picker-title-font-weight,600);font-size:var(--td-picker-title-font-size,36rpx)}.t-picker__cancel,.t-picker__confirm{display:flex;align-items:center;justify-content:center;user-select:none;font-size:var(--td-picker-button-font-size,32rpx);height:100%;padding:0 32rpx}.t-picker__cancel{color:var(--td-picker-cancel-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-picker__confirm{color:var(--td-picker-confirm-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-picker__main{position:relative;display:flex;justify-content:center;padding-left:64rpx;padding-right:64rpx}.t-picker__mask{position:absolute;left:0;right:0;z-index:3;backface-visibility:hidden;pointer-events:none;height:96rpx}.t-picker__mask--top{top:0;background:linear-gradient(180deg,var(--td-picker-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff))) 0,var(--td-picker-transparent-color) 100%)}.t-picker__mask--bottom{bottom:0;background:linear-gradient(180deg,var(--td-picker-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff))) 0,var(--td-picker-transparent-color) 100%);transform:matrix(1,0,0,-1,0,0)}.t-picker__indicator{position:absolute;left:32rpx;right:32rpx;top:144rpx;pointer-events:none;background-color:var(--td-picker-indicator-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));border-radius:var(--td-picker-indicator-border-radius,12rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/props.d.ts b/miniprogram_npm/tdesign-miniprogram/picker/props.d.ts
new file mode 100644
index 0000000..d673411
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPickerProps } from './type';
+declare const props: TdPickerProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/props.js b/miniprogram_npm/tdesign-miniprogram/picker/props.js
new file mode 100644
index 0000000..ec78d87
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/props.js
@@ -0,0 +1 @@
+const props={autoClose:{type:Boolean,value:!0},cancelBtn:{type:null,value:!0},confirmBtn:{type:null,value:!0},header:{type:Boolean,value:!0},itemHeight:{type:Number,value:80},keys:{type:Object},popupProps:{type:Object,value:{}},title:{type:String,value:""},usePopup:{type:Boolean,value:!0},usingCustomNavbar:{type:Boolean,value:!1},value:{type:Array,value:null},defaultValue:{type:Array},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/template.wxml b/miniprogram_npm/tdesign-miniprogram/picker/template.wxml
new file mode 100644
index 0000000..316651f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/template.wxml
@@ -0,0 +1 @@
+{{cancelBtn}}{{title}}{{confirmBtn}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/type.d.ts b/miniprogram_npm/tdesign-miniprogram/picker/type.d.ts
new file mode 100644
index 0000000..571b4e3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/type.d.ts
@@ -0,0 +1,57 @@
+import { PopupProps } from '../popup/index';
+import { KeysType } from '../common/common';
+export interface TdPickerProps {
+ autoClose?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ cancelBtn?: {
+ type: null;
+ value?: boolean | string;
+ };
+ confirmBtn?: {
+ type: null;
+ value?: boolean | string;
+ };
+ header?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ itemHeight?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ popupProps?: {
+ type: ObjectConstructor;
+ value?: PopupProps;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ usePopup?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ defaultValue?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type PickerValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/picker/type.js b/miniprogram_npm/tdesign-miniprogram/picker/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/picker/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/index.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/index.d.ts
new file mode 100644
index 0000000..03c4cf3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './popup';
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/index.js b/miniprogram_npm/tdesign-miniprogram/popup/index.js
new file mode 100644
index 0000000..64b982f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./popup";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/popup.d.ts
new file mode 100644
index 0000000..23dae8c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.d.ts
@@ -0,0 +1,19 @@
+import { TdPopupProps } from './type';
+import { SuperComponent } from '../common/src/index';
+export declare type PopupProps = TdPopupProps;
+export default class Popup extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: TdPopupProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ methods: {
+ handleOverlayClick(): void;
+ handleClose(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.js b/miniprogram_npm/tdesign-miniprogram/popup/popup.js
new file mode 100644
index 0000000..7cde77f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import transition from"../mixins/transition";import useCustomNavbar from"../mixins/using-custom-navbar";delete props.visible;const{prefix:prefix}=config,name=`${prefix}-popup`;let Popup=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`],this.behaviors=[transition(),useCustomNavbar],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name},this.methods={handleOverlayClick(){const{closeOnOverlayClick:e}=this.properties;e&&this.triggerEvent("visible-change",{visible:!1,trigger:"overlay"})},handleClose(){this.triggerEvent("visible-change",{visible:!1,trigger:"close-btn"})}}}};Popup=__decorate([wxComponent()],Popup);export default Popup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.json b/miniprogram_npm/tdesign-miniprogram/popup/popup.json
new file mode 100644
index 0000000..7782d34
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-overlay":"../overlay/overlay","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.wxml b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxml
new file mode 100644
index 0000000..97fc8d2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.wxs b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxs
new file mode 100644
index 0000000..2f4a01f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxs
@@ -0,0 +1,18 @@
+function getPopupStyles(zIndex, distanceTop, placement) {
+ var zIndexStyle = zIndex ? 'z-index:' + zIndex + ';' : '';
+ if ((placement === 'top' || placement === 'left' || placement === 'right') && distanceTop) {
+ zIndexStyle = zIndexStyle + 'top:' + distanceTop + 'px;' + '--td-popup-distance-top:' + distanceTop + 'px;';
+ }
+ return zIndexStyle;
+}
+
+function onContentTouchMove(e) {
+ if (e.target && e.target.dataset.prevention) {
+ return false;
+ }
+}
+
+module.exports = {
+ getPopupStyles: getPopupStyles,
+ onContentTouchMove: onContentTouchMove,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/popup.wxss b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxss
new file mode 100644
index 0000000..03d77c8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/popup.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-popup{position:fixed;z-index:11500;max-height:calc(100vh - var(--td-popup-distance-top,0));transition:all .3s ease;background-color:var(--td-popup-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-popup__content{position:relative;height:100%;z-index:1}.t-popup__close{position:absolute;top:0;right:0;padding:20rpx;line-height:1;color:var(--td-popup-close-btn-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-popup--top{top:0;left:0;width:100%;border-bottom-left-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx));border-bottom-right-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx))}.t-popup--bottom{bottom:0;left:0;width:100%;border-top-left-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx));border-top-right-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx));padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.t-popup--left{top:0;left:0;height:100%}.t-popup--right{top:0;right:0;height:100%}.t-popup--center{top:50%;left:50%;transform:scale(1) translate3d(-50%,-50%,0);transform-origin:0 0;border-radius:var(--td-popup-border-radius,var(--td-radius-extra-large,24rpx))}.t-popup.t-fade-enter.t-popup--top,.t-popup.t-fade-leave-to.t-popup--top{transform:translateY(-100%)}.t-popup.t-fade-enter.t-popup--bottom,.t-popup.t-fade-leave-to.t-popup--bottom{transform:translateY(100%)}.t-popup.t-fade-enter.t-popup--left,.t-popup.t-fade-leave-to.t-popup--left{transform:translateX(-100%)}.t-popup.t-fade-enter.t-popup--right,.t-popup.t-fade-leave-to.t-popup--right{transform:translateX(100%)}.t-popup.t-fade-enter.t-popup--center,.t-popup.t-fade-leave-to.t-popup--center{transform:scale(.6) translate3d(-50%,-50%,0);opacity:0}.t-popup.t-dialog-enter.t-popup--center,.t-popup.t-dialog-leave-to.t-popup--center{transform:scale(.6) translate3d(-50%,-50%,0);opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/props.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/props.d.ts
new file mode 100644
index 0000000..e23cd6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPopupProps } from './type';
+declare const props: TdPopupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/props.js b/miniprogram_npm/tdesign-miniprogram/popup/props.js
new file mode 100644
index 0000000..af388c4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/props.js
@@ -0,0 +1 @@
+const props={closeBtn:{type:Boolean},closeOnOverlayClick:{type:Boolean,value:!0},content:{type:String},duration:{type:Number,value:240},externalClasses:{type:Array},overlayProps:{type:Object,value:{}},placement:{type:String,value:"top"},preventScrollThrough:{type:Boolean,value:!0},showOverlay:{type:Boolean,value:!0},usingCustomNavbar:{type:Boolean,value:!1},visible:{type:Boolean,value:null},defaultVisible:{type:Boolean},zIndex:{type:Number,value:11500}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/type.d.ts b/miniprogram_npm/tdesign-miniprogram/popup/type.d.ts
new file mode 100644
index 0000000..914749e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/type.d.ts
@@ -0,0 +1,55 @@
+import { OverlayProps } from '../overlay/index';
+export interface TdPopupProps {
+ closeBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ closeOnOverlayClick?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-overlay', 't-class-content'];
+ };
+ overlayProps?: {
+ type: ObjectConstructor;
+ value?: OverlayProps;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'top' | 'left' | 'right' | 'bottom' | 'center';
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultVisible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/popup/type.js b/miniprogram_npm/tdesign-miniprogram/popup/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/popup/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/progress.d.ts
new file mode 100644
index 0000000..ea66946
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.d.ts
@@ -0,0 +1,24 @@
+import { SuperComponent } from '../common/src/index';
+export default class Progress extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdProgressProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ colorBar: string;
+ heightBar: string;
+ computedStatus: string;
+ computedProgress: number;
+ isIOS: boolean;
+ };
+ attached(): void;
+ observers: {
+ percentage(percentage: any): void;
+ color(color: any): void;
+ strokeWidth(strokeWidth: any): string;
+ trackColor(trackColor: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.js b/miniprogram_npm/tdesign-miniprogram/progress/progress.js
new file mode 100644
index 0000000..02f2d59
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getBackgroundColor}from"./utils";import{unitConvert,isIOS as isIOSValidator}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-progress`;let Progress=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-bar`,`${prefix}-class-label`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,colorBar:"",heightBar:"",computedStatus:"",computedProgress:0,isIOS:!1},this.observers={percentage(o){o=Math.max(0,Math.min(o,100)),this.setData({computedStatus:100===o?"success":"",computedProgress:o})},color(o){this.setData({colorBar:getBackgroundColor(o),colorCircle:"object"==typeof o?"":o})},strokeWidth(o){if(!o)return"";this.setData({heightBar:unitConvert(o)})},trackColor(o){this.setData({bgColorBar:o})}}}attached(){const o=isIOSValidator();this.setData({isIOS:o})}};Progress=__decorate([wxComponent()],Progress);export default Progress;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.json b/miniprogram_npm/tdesign-miniprogram/progress/progress.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.wxml b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxml
new file mode 100644
index 0000000..7a504e3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxml
@@ -0,0 +1 @@
+{{ _.isString(label)? label: computedProgress + '%' }}{{ _.isString(label)? label: computedProgress + '%' }}{{ _.isString(label)? label: computedProgress + '%' }}{{ _.isString(label)? label: computedProgress + '%' }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.wxs b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxs
new file mode 100644
index 0000000..2a514ea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxs
@@ -0,0 +1,80 @@
+var utils = require('../common/utils.wxs');
+
+var STATUS = ['success', 'error', 'warning'];
+var STATUS_TEXT = ['success', 'error', 'warning', 'active'];
+
+var PRO_THEME = {
+ LINE: 'line',
+ PLUMP: 'plump',
+ CIRCLE: 'circle',
+};
+
+var STATUS_COLOR = {
+ success: '#00a870',
+ error: '#e34d59',
+ warning: '#ed7b2f',
+};
+
+var LINE_STATUS_ICON = {
+ success: 'check-circle-filled',
+ error: 'error-circle-filled',
+ warning: 'error-circle-filled',
+};
+
+var CIRCLE_STATUS_ICON = {
+ success: 'check',
+ error: 'close',
+ warning: 'error',
+};
+
+/**
+ *
+ * 1. getIOSAriaLabel, getAndroidAriaLabel 两个函数的初衷是处理progress异常情况的文案识别。
+ * 2. iOS可以识别%,而安卓不会识别%,如 80, iOS可以识别成 80%, 而安卓只会80,因此android部分做了一个% 拼接,后续看是否有更好的方案去解决。
+ * 3. 安卓 talkback 版本为 8.1.0.278818032 ,只会读一次 80, 最新版本talkback 会读 80.0, 80。(目前也是一个痛点,啰嗦了)
+ *
+ */
+
+function getIOSAriaLabel(status) {
+ if (status === 'error') {
+ return '进度失败';
+ }
+ if (status === 'warning') {
+ return '进度异常';
+ }
+ return '';
+}
+
+function getAndroidAriaLabel(status) {
+ if (status === 'error') {
+ return '%' + ',进度失败';
+ }
+ if (status === 'warning') {
+ return '%' + ',进度异常';
+ }
+ return '%';
+}
+
+function getCircleStyle(size, strokeWidth) {
+ var styles = {
+ '--td-progress-stroke-circle-width': utils.addUnit(strokeWidth),
+ };
+
+ if (!utils.includes(['default', 'micro'], size)) {
+ styles['--td-progress-circle-width'] = utils.addUnit(size);
+ }
+
+ return utils._style(styles);
+}
+
+module.exports = {
+ STATUS: STATUS,
+ STATUS_TEXT: STATUS_TEXT,
+ PRO_THEME: PRO_THEME,
+ STATUS_COLOR: STATUS_COLOR,
+ LINE_STATUS_ICON: LINE_STATUS_ICON,
+ CIRCLE_STATUS_ICON: CIRCLE_STATUS_ICON,
+ getAndroidAriaLabel: getAndroidAriaLabel,
+ getIOSAriaLabel: getIOSAriaLabel,
+ getCircleStyle: getCircleStyle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/progress.wxss b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxss
new file mode 100644
index 0000000..8ccf05b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/progress.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-progress{--td-progress-inner-bg-color:var(--td-brand-color, var(--td-primary-color-7, #0052d9));--td-progress-track-bg-color:var(--td-bg-color-component, var(--td-gray-color-3, #e7e7e7));--td-progress-circle-from:0deg}.t-progress__inner{position:relative;height:100%;background:var(--td-progress-inner-bg-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:var(--td-radius-round,999px);transition:all var(--td-anim-duration-base,.2s) var(--td-anim-time-fn-easing,cubic-bezier(.38,0,.24,1))}.t-progress__bar{width:100%;height:var(--td-progress-line-stroke-width,12rpx);overflow:hidden;background:var(--td-progress-track-bg-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-radius:var(--td-radius-round,999px)}.t-progress__info{padding-left:var(--td-spacer,16rpx);box-sizing:border-box;color:var(--td-progress-info-dark-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));white-space:nowrap;display:inline-flex}.t-progress--thin{display:flex;justify-content:space-between;align-items:center}.t-progress--thin .t-progress__icon{font-size:calc(var(--td-font-size-base,28rpx) + 2px)}.t-progress--plump{height:var(--td-progress-stroke-plump-width,40rpx);border-radius:calc(var(--td-progress-stroke-plump-width,40rpx)/ 2);display:flex;align-items:center}.t-progress--plump .t-progress__info{font-size:var(--td-font-size-s,24rpx)}.t-progress--over-ten .t-progress__info{position:absolute;top:50%;right:var(--td-spacer,16rpx);color:var(--td-progress-info-light-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));transform:translateY(-50%)}.t-progress--under-ten .t-progress__info,.t-progress--under-ten .t-progress__inner{display:inline-block}.t-progress--under-ten .t-progress__info{vertical-align:top}.t-progress__canvas--circle{position:relative;width:var(--td-progress-circle-width,224rpx);height:var(--td-progress-circle-width,224rpx);border-radius:var(--td-radius-circle,50%)}.t-progress__canvas--circle .t-progress__canvas--inner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - var(--td-progress-stroke-circle-width,12rpx)*2);height:calc(100% - var(--td-progress-stroke-circle-width,12rpx)*2);border-radius:var(--td-radius-circle,50%);display:flex;flex-direction:row;justify-content:center;align-items:center;background-color:var(--td-progress-circle-inner-bg-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-progress__canvas--circle .t-progress__info{margin:0;font-size:var(--td-progress-circle-label-font-size,40rpx);font-weight:var(--td-progress-circle-label-font-weight,700);line-height:var(--td-progress-circle-label-line-height,56rpx);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.t-progress__canvas--circle--micro{--td-progress-circle-width:48rpx;--td-progress-stroke-circle-width:4rpx;--td-progress-circle-icon-font-size:40rpx}.t-progress--status--active .t-progress__inner::before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:'';animation:progress-active-animation 2s cubic-bezier(.23,.99,.86,.2) infinite;background:var(--td-progress-inner-bg-color-active,var(--td-bg-color-container,var(--td-font-white-1,#fff)));opacity:.2}.t-progress--status--success .t-progress__inner{background:var(--td-progress-inner-bg-color-success,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-progress--status--success .t-progress__icon{color:var(--td-success-color,var(--td-success-color-5,#2ba471))}.t-progress--status--warning .t-progress__inner{background:var(--td-progress-inner-bg-color-warning,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-progress--status--warning .t-progress__icon{color:var(--td-warning-color,var(--td-warning-color-5,#e37318))}.t-progress--status--error .t-progress__inner{background:var(--td-progress-inner-bg-color-error,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-progress--status--error .t-progress__icon{color:var(--td-error-color,var(--td-error-color-6,#d54941))}@keyframes progress-active-animation{0%{width:0;opacity:.1}35%{width:50%;opacity:.4}100%{width:100%;opacity:0}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/props.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/props.d.ts
new file mode 100644
index 0000000..214f11a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/props.d.ts
@@ -0,0 +1,3 @@
+import { TdProgressProps } from './type';
+declare const props: TdProgressProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/props.js b/miniprogram_npm/tdesign-miniprogram/progress/props.js
new file mode 100644
index 0000000..a9d2f19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/props.js
@@ -0,0 +1 @@
+const props={color:{type:null,value:""},label:{type:null,value:!0},percentage:{type:Number,value:0},size:{type:null,value:"default"},status:{type:String},strokeWidth:{type:null},theme:{type:String,value:"line"},trackColor:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/type.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/type.d.ts
new file mode 100644
index 0000000..a77b327
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/type.d.ts
@@ -0,0 +1,36 @@
+export interface TdProgressProps {
+ color?: {
+ type: null;
+ value?: string | Array | Record;
+ };
+ label?: {
+ type: null;
+ value?: string | boolean;
+ };
+ percentage?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ size?: {
+ type: null;
+ value?: string | number;
+ };
+ status?: {
+ type: StringConstructor;
+ value?: ProgressStatus;
+ };
+ strokeWidth?: {
+ type: null;
+ value?: string | number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: ProgressTheme;
+ };
+ trackColor?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export declare type ProgressStatus = 'success' | 'error' | 'warning' | 'active';
+export declare type ProgressTheme = 'line' | 'plump' | 'circle';
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/type.js b/miniprogram_npm/tdesign-miniprogram/progress/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/utils.d.ts b/miniprogram_npm/tdesign-miniprogram/progress/utils.d.ts
new file mode 100644
index 0000000..84b7889
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/utils.d.ts
@@ -0,0 +1,11 @@
+export declare type Gradients = {
+ [percent: string]: string;
+};
+export declare type FromTo = {
+ from: string;
+ to: string;
+};
+export declare type LinearGradient = {
+ direction?: string;
+} & (Gradients | FromTo);
+export declare function getBackgroundColor(color: string | string[] | LinearGradient): string;
diff --git a/miniprogram_npm/tdesign-miniprogram/progress/utils.js b/miniprogram_npm/tdesign-miniprogram/progress/utils.js
new file mode 100644
index 0000000..6ff6c76
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/progress/utils.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";export function getBackgroundColor(r){if("string"==typeof r)return r;if(Array.isArray(r))return r[0]&&"#"===r[0][0]&&r.unshift("90deg"),`linear-gradient( ${r.join(",")} )`;const{from:t,to:e,direction:n="to right"}=r,i=__rest(r,["from","to","direction"]);let o=Object.keys(i);if(o.length){o=o.sort(((r,t)=>parseFloat(r.substr(0,r.length-1))-parseFloat(t.substr(0,t.length-1))));return`linear-gradient(${n}, ${o.map((r=>`${i[r]} ${r}`)).join(",")})`}return`linear-gradient(${n}, ${t}, ${e})`}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.d.ts b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.d.ts
new file mode 100644
index 0000000..b7cb543
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.d.ts
@@ -0,0 +1,3 @@
+import { TdPullDownRefreshProps } from './type';
+declare const props: TdPullDownRefreshProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.js b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.js
new file mode 100644
index 0000000..d655b8a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:Boolean,value:!1},enableBackToTop:{type:Boolean,value:!0},enablePassive:{type:Boolean,value:!1},externalClasses:{type:Array},loadingBarHeight:{type:null,value:50},loadingProps:{type:Object},loadingTexts:{type:Array,value:[]},lowerThreshold:{type:null,value:50},maxBarHeight:{type:null,value:80},refreshTimeout:{type:Number,value:3e3},scrollIntoView:{type:String,value:""},showScrollbar:{type:Boolean,value:!0},upperThreshold:{type:null,value:50},usingCustomNavbar:{type:Boolean,value:!1},value:{type:Boolean,value:null},defaultValue:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.d.ts b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.d.ts
new file mode 100644
index 0000000..106f65f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.d.ts
@@ -0,0 +1,59 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+export default class PullDownRefresh extends SuperComponent {
+ pixelRatio: number;
+ startPoint: {
+ pageX: number;
+ pageY: number;
+ } | null;
+ isPulling: boolean;
+ maxRefreshAnimateTimeFlag: number;
+ closingAnimateTimeFlag: number;
+ refreshStatusTimer: any;
+ externalClasses: string[];
+ behaviors: string[];
+ options: {
+ multipleSlots: boolean;
+ pureDataPattern: RegExp;
+ };
+ relations: RelationsOptions;
+ properties: import("./type").TdPullDownRefreshProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ distanceTop: number;
+ barHeight: number;
+ tipsHeight: number;
+ refreshStatus: number;
+ loosing: boolean;
+ enableToRefresh: boolean;
+ scrollTop: number;
+ _maxBarHeight: number;
+ _loadingBarHeight: number;
+ };
+ lifetimes: {
+ attached(): void;
+ detached(): void;
+ };
+ observers: {
+ value(val: any): void;
+ barHeight(val: any): void;
+ maxBarHeight(v: any): void;
+ loadingBarHeight(v: any): void;
+ };
+ methods: {
+ resetTimer(): void;
+ onScrollToBottom(): void;
+ onScrollToTop(): void;
+ onScroll(e: any): void;
+ onTouchStart(e: WechatMiniprogram.Component.TrivialInstance): void;
+ onTouchMove(e: WechatMiniprogram.Component.TrivialInstance): void;
+ onTouchEnd(e: WechatMiniprogram.Component.TrivialInstance): void;
+ onDragStart(e: WechatMiniprogram.ScrollViewDragStart): void;
+ onDragging(e: WechatMiniprogram.ScrollViewDragging): void;
+ onDragEnd(e: WechatMiniprogram.ScrollViewDragEnd): void;
+ doRefresh(): void;
+ setRefreshBarHeight(value: number): Promise;
+ setScrollTop(scrollTop: number): void;
+ scrollToTop(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.js b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.js
new file mode 100644
index 0000000..829b91c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect,systemInfo,unitConvert}from"../common/utils";import{canUseProxyScrollView}from"../common/version";const{prefix:prefix}=config,name=`${prefix}-pull-down-refresh`,defaultLoadingTexts=["下拉刷新","松手刷新","正在刷新","刷新完成"];let PullDownRefresh=class extends SuperComponent{constructor(){super(...arguments),this.pixelRatio=1,this.startPoint=null,this.isPulling=!1,this.maxRefreshAnimateTimeFlag=0,this.closingAnimateTimeFlag=0,this.refreshStatusTimer=null,this.externalClasses=[`${prefix}-class`,`${prefix}-class-loading`,`${prefix}-class-text`,`${prefix}-class-indicator`],this.behaviors=canUseProxyScrollView()?["wx://proxy-scroll-view"]:[],this.options={multipleSlots:!0,pureDataPattern:/^_/},this.relations={"../back-top/back-top":{type:"descendant"}},this.properties=props,this.data={prefix:prefix,classPrefix:name,distanceTop:0,barHeight:0,tipsHeight:0,refreshStatus:-1,loosing:!1,enableToRefresh:!0,scrollTop:0,_maxBarHeight:0,_loadingBarHeight:0},this.lifetimes={attached(){const{screenWidth:t}=systemInfo,{loadingTexts:e,maxBarHeight:s,loadingBarHeight:i}=this.properties,r=Array.isArray(e)&&e.length>=4;this.setData({_maxBarHeight:unitConvert(s),_loadingBarHeight:unitConvert(i),loadingTexts:r?e:defaultLoadingTexts}),this.pixelRatio=750/t,getRect(this,`.${name}`).then((t=>{this.setData({distanceTop:t.top})}))},detached(){clearTimeout(this.maxRefreshAnimateTimeFlag),clearTimeout(this.closingAnimateTimeFlag),this.resetTimer()}},this.observers={value(t){t?this.doRefresh():(clearTimeout(this.maxRefreshAnimateTimeFlag),this.data.refreshStatus>0&&this.setData({refreshStatus:3}),this.setData({barHeight:0}))},barHeight(t){this.resetTimer(),0===t&&-1!==this.data.refreshStatus&&(this.refreshStatusTimer=setTimeout((()=>{this.setData({refreshStatus:-1})}),240)),this.setData({tipsHeight:Math.min(t,this.data._loadingBarHeight)})},maxBarHeight(t){this.setData({_maxBarHeight:unitConvert(t)})},loadingBarHeight(t){this.setData({_loadingBarHeight:unitConvert(t)})}},this.methods={resetTimer(){this.refreshStatusTimer&&(clearTimeout(this.refreshStatusTimer),this.refreshStatusTimer=null)},onScrollToBottom(){this.triggerEvent("scrolltolower")},onScrollToTop(){this.setData({enableToRefresh:!0})},onScroll(t){const{scrollTop:e}=t.detail;this.setData({enableToRefresh:0===e}),this.triggerEvent("scroll",{scrollTop:e})},onTouchStart(t){if(this.isPulling||!this.data.enableToRefresh||this.properties.disabled)return;const{touches:e}=t;if(1!==e.length)return;const{pageX:s,pageY:i}=e[0];this.setData({loosing:!1}),this.startPoint={pageX:s,pageY:i},this.isPulling=!0},onTouchMove(t){if(!this.startPoint||this.properties.disabled)return;const{touches:e}=t;if(1!==e.length)return;const{pageY:s}=e[0],i=s-this.startPoint.pageY;i>0&&this.setRefreshBarHeight(i)},onTouchEnd(t){if(!this.startPoint||this.properties.disabled)return;const{changedTouches:e}=t;if(1!==e.length)return;const{pageY:s}=e[0],i=s-this.startPoint.pageY;this.startPoint=null,this.isPulling=!1,this.setData({loosing:!0}),i>this.data._loadingBarHeight?(this._trigger("change",{value:!0}),this.triggerEvent("refresh")):this.setData({barHeight:0})},onDragStart(t){const{scrollTop:e,scrollLeft:s}=t.detail;this.triggerEvent("dragstart",{scrollTop:e,scrollLeft:s})},onDragging(t){const{scrollTop:e,scrollLeft:s}=t.detail;this.triggerEvent("dragging",{scrollTop:e,scrollLeft:s})},onDragEnd(t){const{scrollTop:e,scrollLeft:s}=t.detail;this.triggerEvent("dragend",{scrollTop:e,scrollLeft:s})},doRefresh(){this.properties.disabled||(this.setData({barHeight:this.data._loadingBarHeight,refreshStatus:2,loosing:!0}),this.maxRefreshAnimateTimeFlag=setTimeout((()=>{this.maxRefreshAnimateTimeFlag=null,2===this.data.refreshStatus&&(this.triggerEvent("timeout"),this._trigger("change",{value:!1}))}),this.properties.refreshTimeout))},setRefreshBarHeight(t){const e=Math.min(t,this.data._maxBarHeight),s={barHeight:e};return e>=this.data._loadingBarHeight?s.refreshStatus=1:s.refreshStatus=0,new Promise((t=>{this.setData(s,(()=>t(e)))}))},setScrollTop(t){this.setData({scrollTop:t})},scrollToTop(){this.setScrollTop(0)}}}};PullDownRefresh=__decorate([wxComponent()],PullDownRefresh);export default PullDownRefresh;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.json b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.json
new file mode 100644
index 0000000..656034e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-loading":"../loading/loading"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxml b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxml
new file mode 100644
index 0000000..30eac27
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxml
@@ -0,0 +1 @@
+{{loadingTexts[refreshStatus]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxss b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxss
new file mode 100644
index 0000000..9dada32
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/pull-down-refresh.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-pull-down-refresh{overflow:hidden;height:100%}.t-pull-down-refresh__track{position:relative}.t-pull-down-refresh__track--loosing{transition:transform ease .24s}.t-pull-down-refresh__tips{position:absolute;color:var(--td-pull-down-refresh-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:24rpx;top:0;width:100%;transform:translateY(-100%);display:flex;justify-content:center;align-items:center;flex-direction:column;overflow:hidden}.t-pull-down-refresh__tips--loosing{transition:height ease .24s}.t-pull-down-refresh__text{margin:16rpx 0 0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.d.ts b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.d.ts
new file mode 100644
index 0000000..def88f7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.d.ts
@@ -0,0 +1,67 @@
+import { LoadingProps } from '../loading/index';
+export interface TdPullDownRefreshProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ enableBackToTop?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ enablePassive?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-loading', 't-class-text', 't-class-indicator'];
+ };
+ loadingBarHeight?: {
+ type: null;
+ value?: string | number;
+ };
+ loadingProps?: {
+ type: ObjectConstructor;
+ value?: LoadingProps;
+ };
+ loadingTexts?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ lowerThreshold?: {
+ type: null;
+ value?: string | number;
+ };
+ maxBarHeight?: {
+ type: null;
+ value?: string | number;
+ };
+ refreshTimeout?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ scrollIntoView?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ showScrollbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ upperThreshold?: {
+ type: null;
+ value?: string | number;
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultValue?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.js b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/pull-down-refresh/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/props.d.ts b/miniprogram_npm/tdesign-miniprogram/radio-group/props.d.ts
new file mode 100644
index 0000000..40dcb03
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRadioGroupProps } from './type';
+declare const props: TdRadioGroupProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/props.js b/miniprogram_npm/tdesign-miniprogram/radio-group/props.js
new file mode 100644
index 0000000..850d529
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/props.js
@@ -0,0 +1 @@
+const props={allowUncheck:{type:Boolean,value:!1},borderless:{type:Boolean,value:!1},disabled:{type:null,value:void 0},icon:{type:null,value:"circle"},keys:{type:Object},name:{type:String,value:""},options:{type:Array},placement:{type:String,value:"left"},readonly:{type:null,value:void 0},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.d.ts b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.d.ts
new file mode 100644
index 0000000..ee08cb5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.d.ts
@@ -0,0 +1,27 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class RadioGroup extends SuperComponent {
+ behaviors: string[];
+ externalClasses: string[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ radioOptions: any[];
+ };
+ relations: RelationsOptions;
+ properties: import("./type").TdRadioGroupProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(v: any): void;
+ options(): void;
+ disabled(v: any): void;
+ };
+ methods: {
+ getChildren(): any;
+ updateValue(value: any): void;
+ handleRadioChange(e: any): void;
+ initWithOptions(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.js b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.js
new file mode 100644
index 0000000..42bcb77
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import config from"../common/config";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-radio-group`;let RadioGroup=class extends SuperComponent{constructor(){super(...arguments),this.behaviors=["wx://form-field"],this.externalClasses=[`${prefix}-class`],this.data={prefix:prefix,classPrefix:name,radioOptions:[]},this.relations={"../radio/radio":{type:"descendant",linked(e){const{value:t,disabled:i,readonly:o}=this.data;e.setData({checked:t===e.data.value}),e.setDisabled(i),e.setReadonly(o)}}},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={value(e){this.getChildren().forEach((t=>{t.setData({checked:e===t.data.value})}))},options(){this.initWithOptions()},disabled(e){var t;(null===(t=this.data.options)||void 0===t?void 0:t.length)?this.initWithOptions():this.getChildren().forEach((t=>{t.setDisabled(e)}))}},this.methods={getChildren(){let e=this.$children;return(null==e?void 0:e.length)||(e=this.selectAllComponents(`.${prefix}-radio-option`)),e},updateValue(e){this._trigger("change",{value:e})},handleRadioChange(e){const{checked:t}=e.detail,{value:i,index:o,allowUncheck:a}=e.target.dataset;this._trigger("change",!1===t&&a?{value:null,index:o}:{value:i,index:o})},initWithOptions(){const{options:e,value:t,keys:i,disabled:o,readonly:a}=this.data;if(!(null==e?void 0:e.length)||!Array.isArray(e))return void this.setData({radioOptions:[]});const s=[];try{e.forEach((e=>{var l,r,n;const d=typeof e;"number"===d||"string"===d?s.push({label:`${e}`,value:e,checked:t===e,disabled:o,readonly:a}):"object"===d&&s.push(Object.assign(Object.assign({},e),{label:e[null!==(l=null==i?void 0:i.label)&&void 0!==l?l:"label"],value:e[null!==(r=null==i?void 0:i.value)&&void 0!==r?r:"value"],checked:t===e[null!==(n=null==i?void 0:i.value)&&void 0!==n?n:"value"],disabled:e.disabled||o,readonly:e.readonly||a}))})),this.setData({radioOptions:s})}catch(e){console.error("error",e)}}}}};RadioGroup=__decorate([wxComponent()],RadioGroup);export default RadioGroup;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.json b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.json
new file mode 100644
index 0000000..2e52c48
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-radio":"../radio/radio"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxml b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxml
new file mode 100644
index 0000000..b5679a9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxss b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/radio-group.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/type.d.ts b/miniprogram_npm/tdesign-miniprogram/radio-group/type.d.ts
new file mode 100644
index 0000000..d7954bd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/type.d.ts
@@ -0,0 +1,56 @@
+import { KeysType } from '../common/common';
+export interface TdRadioGroupProps {
+ allowUncheck?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ borderless?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: 'circle' | 'line' | 'dot' | Array;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: KeysType;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: T;
+ };
+ defaultValue?: {
+ type: null;
+ value?: T;
+ };
+}
+export declare type RadioOption = string | number | RadioOptionObj;
+export interface RadioOptionObj {
+ label?: string;
+ value?: string | number;
+ readonly?: boolean;
+ disabled?: boolean;
+ allowUncheck?: boolean;
+}
+export declare type RadioValue = string | number | boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio-group/type.js b/miniprogram_npm/tdesign-miniprogram/radio-group/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio-group/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/props.d.ts b/miniprogram_npm/tdesign-miniprogram/radio/props.d.ts
new file mode 100644
index 0000000..c59a8d0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRadioProps } from './type';
+declare const props: TdRadioProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/props.js b/miniprogram_npm/tdesign-miniprogram/radio/props.js
new file mode 100644
index 0000000..0fcbdaf
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/props.js
@@ -0,0 +1 @@
+const props={allowUncheck:{type:Boolean,value:!1},block:{type:Boolean,value:!0},checked:{type:Boolean,value:null},defaultChecked:{type:Boolean,value:!1},content:{type:String},contentDisabled:{type:Boolean,value:!1},disabled:{type:null,value:void 0},icon:{type:null,value:"circle"},label:{type:String},maxContentRow:{type:Number,value:5},maxLabelRow:{type:Number,value:3},name:{type:String,value:""},placement:{type:String},readonly:{type:null,value:void 0},value:{type:null,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.d.ts b/miniprogram_npm/tdesign-miniprogram/radio/radio.d.ts
new file mode 100644
index 0000000..5e142e1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.d.ts
@@ -0,0 +1,107 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Radio extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ properties: {
+ borderless: {
+ type: BooleanConstructor;
+ value: boolean;
+ };
+ tId: {
+ type: StringConstructor;
+ };
+ allowUncheck?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string[] | "circle" | "line" | "dot";
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: "left" | "right";
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: import("./type").RadioValue;
+ };
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ customIcon: boolean;
+ slotIcon: boolean;
+ optionLinked: boolean;
+ iconVal: any[];
+ _placement: string;
+ _disabled: boolean;
+ _readonly: boolean;
+ };
+ observers: {
+ disabled(v: any): void;
+ readonly(v: any): void;
+ };
+ methods: {
+ handleTap(e: any): void;
+ doChange(): void;
+ init(): void;
+ setDisabled(disabled: Boolean): void;
+ setReadonly(readonly: Boolean): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.js b/miniprogram_npm/tdesign-miniprogram/radio/radio.js
new file mode 100644
index 0000000..6178e80
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import config from"../common/config";import{SuperComponent,wxComponent}from"../common/src/index";import Props from"./props";const{prefix:prefix}=config,name=`${prefix}-radio`;let Radio=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-label`,`${prefix}-class-icon`,`${prefix}-class-content`,`${prefix}-class-border`],this.behaviors=["wx://form-field"],this.relations={"../radio-group/radio-group":{type:"ancestor",linked(e){e.data.borderless&&this.setData({borderless:!0})}}},this.options={multipleSlots:!0},this.lifetimes={attached(){this.init()}},this.properties=Object.assign(Object.assign({},Props),{borderless:{type:Boolean,value:!1},tId:{type:String}}),this.controlledProps=[{key:"checked",event:"change"}],this.data={prefix:prefix,classPrefix:name,customIcon:!1,slotIcon:!1,optionLinked:!1,iconVal:[],_placement:"",_disabled:!1,_readonly:!1},this.observers={disabled(e){this.setData({_disabled:e})},readonly(e){this.setData({_readonly:e})}},this.methods={handleTap(e){const{_disabled:t,_readonly:a,contentDisabled:o}=this.data,{target:s}=e.currentTarget.dataset;t||a||"text"===s&&o||this.doChange()},doChange(){var e;const{value:t,checked:a,allowUncheck:o}=this.data,s=Boolean(o||(null===(e=this.$parent)||void 0===e?void 0:e.data.allowUncheck));this.$parent?this.$parent.updateValue(a&&s?null:t):this._trigger("change",{checked:!s||!a})},init(){var e,t,a,o;const{icon:s}=this.data,i=Array.isArray((null===(e=this.$parent)||void 0===e?void 0:e.icon)||s);this.setData({customIcon:i,slotIcon:"slot"===s,iconVal:i?(null===(t=this.$parent)||void 0===t?void 0:t.icon)||s:[],_placement:this.data.placement||(null===(o=null===(a=this.$parent)||void 0===a?void 0:a.data)||void 0===o?void 0:o.placement)||"left"})},setDisabled(e){this.setData({_disabled:this.data.disabled||e})},setReadonly(e){this.setData({_readonly:this.data.readonly||e})}}}};Radio=__decorate([wxComponent()],Radio);export default Radio;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.json b/miniprogram_npm/tdesign-miniprogram/radio/radio.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.wxml b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxml
new file mode 100644
index 0000000..c6fe3a6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxml
@@ -0,0 +1 @@
+{{label}}{{content}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/radio.wxss b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxss
new file mode 100644
index 0000000..15b0a09
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/radio.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.limit-title-row{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.t-radio{position:relative;display:inline-flex;vertical-align:middle;font-size:var(--td-radio-font-size,32rpx);background:var(--td-radio-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-radio:focus{outline:0}.t-radio--block{display:flex;padding:var(--td-radio-vertical-padding,32rpx)}.t-radio--right{flex-direction:row-reverse}.t-radio__icon{position:relative;margin-top:calc((var(--td-radio-label-line-height,48rpx) - var(--td-radio-icon-size,48rpx))/ 2);width:var(--td-radio-icon-size,48rpx);height:var(--td-radio-icon-size,48rpx);font-size:var(--td-radio-icon-size,48rpx);color:var(--td-radio-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));overflow:hidden}.t-radio__icon:empty{display:none}.t-radio__icon--left{margin-right:16rpx}.t-radio__icon--checked{color:var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-radio__icon--disabled{cursor:not-allowed;color:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__icon-circle{width:var(--td-radio-icon-size,48rpx);height:var(--td-radio-icon-size,48rpx);box-sizing:border-box}.t-radio__icon-circle::after{content:'';width:calc(200% - 6rpx);height:calc(200% - 6rpx);border-radius:50%;border:3px solid var(--td-radio-icon-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box}.t-radio__icon-circle--disabled::after{background:var(--td-radio-icon-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-radio__icon-line::after,.t-radio__icon-line::before{content:'';display:block;position:absolute;width:5rpx;border-radius:2rpx;background:var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));transform-origin:top center}.t-radio__icon-line::before{height:16rpx;left:8rpx;top:22rpx;transform:rotate(-45deg)}.t-radio__icon-line::after{height:26rpx;right:8rpx;top:14rpx;transform:rotate(45deg)}.t-radio__icon-line--disabled::after,.t-radio__icon-line--disabled::before{background:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__icon-dot{width:calc((var(--td-radio-icon-size,48rpx) - 6rpx) * 2);height:calc((var(--td-radio-icon-size,48rpx) - 6rpx) * 2);border:6rpx solid var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.5);box-sizing:border-box;display:flex;align-items:center;justify-content:center}.t-radio__icon-dot::after{content:'';display:block;width:var(--td-radio-icon-size,48rpx);height:var(--td-radio-icon-size,48rpx);background:var(--td-radio-icon-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:50%}.t-radio__icon-dot--disabled{border-color:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__icon-dot--disabled::after{background:var(--td-radio-icon-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-radio__image{line-height:var(--td-radio-icon-size,48rpx)}.t-radio-icon__image{height:var(--td-radio-icon-size,48rpx);width:var(--td-radio-icon-size,48rpx);vertical-align:sub}.t-radio__content{flex:1}.t-radio__content:empty{display:none}.t-radio__title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;color:var(--td-radio-label-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:var(--td-radio-label-line-height,48rpx)}.t-radio__title--checked{color:var(--td-radio-label-checked-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-radio__title--disabled{cursor:not-allowed;color:var(--td-radio-label-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-radio__description{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;color:var(--td-radio-content-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-radio-content-font-size,28rpx);line-height:var(--td-radio-content-line-height,44rpx)}.t-radio__description--checked{color:var(--td-radio-content-checked-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))))}.t-radio__description--disabled{cursor:not-allowed;color:var(--td-radio-content-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-radio__description:empty{display:none}.t-radio__title+.t-radio__description{margin-top:8rpx}.t-radio__border{position:absolute;bottom:0;height:1px;background:var(--td-radio-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)));left:96rpx;right:0;transform:scaleY(.5)}.t-radio__border--right{left:32rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/type.d.ts b/miniprogram_npm/tdesign-miniprogram/radio/type.d.ts
new file mode 100644
index 0000000..c39da7f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/type.d.ts
@@ -0,0 +1,63 @@
+export interface TdRadioProps {
+ allowUncheck?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ block?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ checked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ defaultChecked?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ contentDisabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: 'circle' | 'line' | 'dot' | Array;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxContentRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxLabelRow?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'left' | 'right';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: T;
+ };
+}
+export declare type RadioValue = string | number | boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/radio/type.js b/miniprogram_npm/tdesign-miniprogram/radio/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/radio/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/props.d.ts b/miniprogram_npm/tdesign-miniprogram/rate/props.d.ts
new file mode 100644
index 0000000..f908fa5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRateProps } from './type';
+declare const props: TdRateProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/props.js b/miniprogram_npm/tdesign-miniprogram/rate/props.js
new file mode 100644
index 0000000..98acf92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/props.js
@@ -0,0 +1 @@
+const props={allowHalf:{type:Boolean,value:!1},color:{type:null,value:"#ED7B2F"},count:{type:Number,value:5},disabled:{type:null,value:void 0},gap:{type:null,value:8},icon:{type:null},iconPrefix:{type:String,value:void 0},placement:{type:String,value:"top"},showText:{type:Boolean,value:!1},size:{type:String,value:"24px"},texts:{type:Array,value:[]},value:{type:Number,value:null},defaultValue:{type:Number,value:0},variant:{type:String,value:"outline"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.d.ts b/miniprogram_npm/tdesign-miniprogram/rate/rate.d.ts
new file mode 100644
index 0000000..e6070ab
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.d.ts
@@ -0,0 +1,29 @@
+import { SuperComponent } from '../common/src/index';
+export default class Rate extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdRateProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ defaultTexts: string[];
+ tipsVisible: boolean;
+ tipsLeft: number;
+ actionType: string;
+ scaleIndex: number;
+ isVisibleToScreenReader: boolean;
+ };
+ methods: {
+ onTouch(e: WechatMiniprogram.TouchEvent, eventType: 'tap' | 'move'): void;
+ onTap(e: WechatMiniprogram.TouchEvent): void;
+ onTouchStart(): void;
+ onTouchMove(e: WechatMiniprogram.TouchEvent): void;
+ onTouchEnd(): void;
+ hideTips(): void;
+ onSelect(e: WechatMiniprogram.TouchEvent): void;
+ showAlertText(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.js b/miniprogram_npm/tdesign-miniprogram/rate/rate.js
new file mode 100644
index 0000000..92f2b73
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{unitConvert,getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-rate`;let Rate=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-icon`,`${prefix}-class-text`],this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.data={prefix:prefix,classPrefix:name,defaultTexts:["极差","失望","一般","满意","惊喜"],tipsVisible:!1,tipsLeft:0,actionType:"",scaleIndex:-1,isVisibleToScreenReader:!1},this.methods={onTouch(e,t){const{count:i,allowHalf:s,gap:o,value:a,size:n}=this.properties,[r]=e.changedTouches,c=unitConvert(o);getRect(this,`.${name}__wrapper`).then((e=>{const{width:p,left:h}=e,l=(p-(i-1)*c)/i,d=(r.pageX-h+c)/(l+c),m=d%1,u=d-m;let T=m<=.5&&s?u+.5:u+1;if(T>i?T=i:T<0&&(T=0),"move"===t||"tap"===t&&s){const e=Math.ceil(T-1)*(unitConvert(o)+unitConvert(n))+.5*unitConvert(n);this.setData({tipsVisible:!0,actionType:t,scaleIndex:Math.ceil(T),tipsLeft:Math.max(e,0)})}T!==a&&this._trigger("change",{value:T}),this.touchEnd&&this.hideTips()}))},onTap(e){const{disabled:t}=this.properties;t||this.onTouch(e,"tap")},onTouchStart(){this.touchEnd=!1},onTouchMove(e){this.onTouch(e,"move"),this.showAlertText()},onTouchEnd(){this.touchEnd=!0,this.hideTips()},hideTips(){"move"===this.data.actionType&&this.setData({tipsVisible:!1,scaleIndex:-1})},onSelect(e){const{value:t}=e.currentTarget.dataset,{actionType:i}=this.data;"move"!==i&&(this._trigger("change",{value:t}),setTimeout((()=>this.setData({tipsVisible:!1,scaleIndex:-1})),300))},showAlertText(){!0!==this.data.isVisibleToScreenReader&&(this.setData({isVisibleToScreenReader:!0}),setTimeout((()=>{this.setData({isVisibleToScreenReader:!1})}),2e3))}}}};Rate=__decorate([wxComponent()],Rate);export default Rate;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.json b/miniprogram_npm/tdesign-miniprogram/rate/rate.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.wxml b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxml
new file mode 100644
index 0000000..0dbd117
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxml
@@ -0,0 +1 @@
+{{utils.getText(texts,value,defaultTexts)}}{{value+'星'}} {{utils.getText(texts,value,defaultTexts)}}{{utils.ceil(value) - 0.5}}{{utils.ceil(value)}}{{value}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.wxs b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxs
new file mode 100644
index 0000000..8387b10
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxs
@@ -0,0 +1,65 @@
+module.exports = {
+ getText: function (texts, val, defaultTexts) {
+ if (!texts.length) {
+ texts = defaultTexts;
+ }
+ var curVal = Math.floor(val - 1);
+ return texts[curVal] || '未评分';
+ },
+
+ getIconName: function (defaultValue, value, index, icon) {
+ var curVal = value >= 0 ? value : defaultValue;
+ var name = ['star-filled', 'star-filled'];
+
+ if (icon) {
+ name = icon.constructor == 'Array' ? icon : [icon, icon];
+ }
+
+ return name[curVal >= index + 1 ? 0 : 1];
+ },
+
+ getIconClass: function (classPrefix, defaultValue, value, index, allowHalf, disabled, scaleIndex) {
+ var curVal = value >= 0 ? value : defaultValue;
+ var className = [];
+ if (curVal >= index + 1) {
+ className.push(classPrefix + '--selected');
+ if (disabled) {
+ className.push(classPrefix + '--disabled');
+ }
+ if (scaleIndex === index + 1) {
+ className.push(classPrefix + '--current');
+ }
+ } else if (allowHalf && curVal - index > 0) {
+ className.push(classPrefix + '--selected-half');
+ if (scaleIndex === index + 1) {
+ className.push(classPrefix + '--current');
+ }
+ if (disabled) {
+ className.push(classPrefix + '--disabled-half');
+ }
+ } else {
+ className.push(classPrefix + '--unselected');
+ }
+ return className.join(' ');
+ },
+
+ ceil: function (value) {
+ return Math.ceil(value);
+ },
+
+ getColor: function (color) {
+ if (color.constructor === 'Array' && color.length === 2) {
+ return ';--td-rate-selected-color: ' + color[0] + '; --td-rate-unselected-color: ' + color[1];
+ }
+
+ if (typeof color === 'string') {
+ return ';--td-rate-selected-color: ' + color;
+ }
+
+ return '';
+ },
+
+ regSize: function (val) {
+ return val.indexOf('px') ? val : val + 'px';
+ },
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/rate.wxss b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxss
new file mode 100644
index 0000000..325d66c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/rate.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-rate{position:relative;display:flex;align-items:center;justify-content:flex-start}.t-rate__wrapper{line-height:1em;display:inline-flex}.t-rate__icon{display:block;line-height:1em;width:1em;transition:transform .3s ease}.t-rate__icon--current{transform:scale(var(--td-rate-icon-scale,1.33))}.t-rate__icon--selected{color:var(--td-rate-selected-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-rate__icon--selected-half{color:transparent;background:linear-gradient(to right,var(--td-rate-selected-color,var(--td-warning-color,var(--td-warning-color-5,#e37318))) 0,var(--td-rate-selected-color,var(--td-warning-color,var(--td-warning-color-5,#e37318))) 50%,var(--td-rate-unselected-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc))) 51%,var(--td-rate-unselected-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc))) 100%);-webkit-background-clip:text;background-clip:text}.t-rate__icon--unselected{color:var(--td-rate-unselected-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-rate__text{font-size:var(--td-rate-text-font-size,var(--td-font-size-m,32rpx));color:var(--td-rate-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));margin-left:32rpx;vertical-align:middle}.t-rate__text--active{color:var(--td-rate-text-active-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-weight:var(--td-rate-text-active-font-weight,600)}.t-rate__text--sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}.t-rate__tips{position:absolute;display:flex;align-items:center;bottom:calc(100% + 16rpx);padding:8rpx;border-radius:12rpx;box-shadow:var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12));background-color:var(--td-bg-color-container,var(--td-font-white-1,#fff));transform:translateX(-50%)}.t-rate__tips--bottom{top:calc(100% + 16rpx);bottom:auto}.t-rate__tips-item{display:flex;flex-direction:column;align-items:center;width:64rpx;border-radius:6rpx}.t-rate__tips-item--active{background-color:var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7))}.t-rate__tips-text{text-align:center;font-size:24rpx;line-height:40rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/type.d.ts b/miniprogram_npm/tdesign-miniprogram/rate/type.d.ts
new file mode 100644
index 0000000..0518e2e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/type.d.ts
@@ -0,0 +1,58 @@
+export interface TdRateProps {
+ allowHalf?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ color?: {
+ type: null;
+ value?: string | Array;
+ };
+ count?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ gap?: {
+ type: null;
+ value?: string | number;
+ };
+ icon?: {
+ type: null;
+ value?: string | string[];
+ };
+ iconPrefix?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'top' | 'bottom' | '';
+ };
+ showText?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ texts?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ value?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ defaultValue?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'outline' | 'filled';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/rate/type.js b/miniprogram_npm/tdesign-miniprogram/rate/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/rate/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/index.d.ts b/miniprogram_npm/tdesign-miniprogram/result/index.d.ts
new file mode 100644
index 0000000..74469ef
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './result';
diff --git a/miniprogram_npm/tdesign-miniprogram/result/index.js b/miniprogram_npm/tdesign-miniprogram/result/index.js
new file mode 100644
index 0000000..3f23200
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./result";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/props.d.ts b/miniprogram_npm/tdesign-miniprogram/result/props.d.ts
new file mode 100644
index 0000000..7336c63
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/props.d.ts
@@ -0,0 +1,3 @@
+import { TdResultProps } from './type';
+declare const props: TdResultProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/result/props.js b/miniprogram_npm/tdesign-miniprogram/result/props.js
new file mode 100644
index 0000000..12fb666
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/props.js
@@ -0,0 +1 @@
+const props={description:{type:String},icon:{type:null,value:!0},image:{type:String},theme:{type:String,value:"default"},title:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.d.ts b/miniprogram_npm/tdesign-miniprogram/result/result.d.ts
new file mode 100644
index 0000000..9dfa5ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../common/src/index';
+export default class extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ externalClasses: string[];
+ properties: import("./type").TdResultProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ observers: {
+ 'icon, theme'(): void;
+ };
+ methods: {
+ initIcon(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.js b/miniprogram_npm/tdesign-miniprogram/result/result.js
new file mode 100644
index 0000000..009a276
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{calcIcon}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-result`,THEME_ICON={default:"error-circle",success:"check-circle",warning:"error-circle",error:"close-circle"};let default_1=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.externalClasses=[`${prefix}-class`,`${prefix}-class-image`,`${prefix}-class-title`,`${prefix}-class-description`],this.properties=props,this.data={prefix:prefix,classPrefix:name},this.lifetimes={ready(){this.initIcon()}},this.observers={"icon, theme"(){this.initIcon()}},this.methods={initIcon(){const{icon:e,theme:o}=this.properties;this.setData({_icon:calcIcon(e,THEME_ICON[o])})}}}};default_1=__decorate([wxComponent()],default_1);export default default_1;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.json b/miniprogram_npm/tdesign-miniprogram/result/result.json
new file mode 100644
index 0000000..dd7b01e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.wxml b/miniprogram_npm/tdesign-miniprogram/result/result.wxml
new file mode 100644
index 0000000..8a101a8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.wxml
@@ -0,0 +1 @@
+{{title}}{{description}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/result.wxss b/miniprogram_npm/tdesign-miniprogram/result/result.wxss
new file mode 100644
index 0000000..2085bea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/result.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-result{display:flex;flex-direction:column;align-items:center}.t-result__icon{font-size:160rpx}.t-result__title{line-height:var(--td-result-title-line-height,56rpx);font-size:var(--td-result-title-font-size,var(--td-font-size-xl,40rpx));font-weight:700;color:var(--td-result-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-result__thumb:not(:empty)+.t-result__title:not(:empty){margin-top:var(--td-result-title-margin-top,var(--td-spacer-1,24rpx))}.t-result__description{text-align:center;color:var(--td-result-description-color,var(--td-text-color-secondary,var(--td-font-gray-2,rgba(0,0,0,.6))));font-size:var(--td-result-description-font-size,var(--td-font-size-base,28rpx));line-height:var(--td-result-description-line-height,44rpx)}.t-result__title+.t-result__description:not(:empty){margin-top:var(--td-result-description-margin-top,var(--td-spacer,16rpx))}.t-result--theme-default{color:var(--td-result-icon-default-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-result--theme-success{color:var(--td-result-icon-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-result--theme-warning{color:var(--td-result-icon-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-result--theme-error{color:var(--td-result-icon-error-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/result/type.d.ts b/miniprogram_npm/tdesign-miniprogram/result/type.d.ts
new file mode 100644
index 0000000..80b4136
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/type.d.ts
@@ -0,0 +1,22 @@
+export interface TdResultProps {
+ description?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ icon?: {
+ type: null;
+ value?: string | boolean | object;
+ };
+ image?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'success' | 'warning' | 'error';
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/result/type.js b/miniprogram_npm/tdesign-miniprogram/result/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/result/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/props.d.ts b/miniprogram_npm/tdesign-miniprogram/row/props.d.ts
new file mode 100644
index 0000000..34bd697
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/props.d.ts
@@ -0,0 +1,3 @@
+import { TdRowProps } from './type';
+declare const props: TdRowProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/row/props.js b/miniprogram_npm/tdesign-miniprogram/row/props.js
new file mode 100644
index 0000000..3710d43
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/props.js
@@ -0,0 +1 @@
+const props={gutter:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.d.ts b/miniprogram_npm/tdesign-miniprogram/row/row.d.ts
new file mode 100644
index 0000000..136e65c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.d.ts
@@ -0,0 +1,15 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Row extends SuperComponent {
+ externalClasses: any[];
+ properties: import("./type").TdRowProps;
+ data: {
+ prefix: string;
+ };
+ relations: RelationsOptions;
+ observers: {
+ gutter(): void;
+ };
+ methods: {
+ setGutter(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.js b/miniprogram_npm/tdesign-miniprogram/row/row.js
new file mode 100644
index 0000000..f7c8f4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.js
@@ -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;let Row=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[],this.properties=props,this.data={prefix:prefix},this.relations={"../col/col":{type:"child",linked(t){const{gutter:o}=this.data;o&&t.setData({gutter:o})}}},this.observers={gutter(){this.setGutter()}},this.methods={setGutter(){const{gutter:t}=this.data;this.$children.forEach((o=>{o.setData({gutter:t})}))}}}};Row=__decorate([wxComponent()],Row);export default Row;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.json b/miniprogram_npm/tdesign-miniprogram/row/row.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.wxml b/miniprogram_npm/tdesign-miniprogram/row/row.wxml
new file mode 100644
index 0000000..a438348
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.wxs b/miniprogram_npm/tdesign-miniprogram/row/row.wxs
new file mode 100644
index 0000000..9d83b9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.wxs
@@ -0,0 +1,17 @@
+var utils = require('../common/utils.wxs');
+
+function getRowStyles(gutter, style, customStyle) {
+ var _style = '';
+ if (gutter) {
+ _style = utils._style({
+ 'margin-right': utils.addUnit(-gutter / 2),
+ 'margin-left': utils.addUnit(-gutter / 2),
+ });
+ }
+
+ return utils._style([style, customStyle]) + _style;
+}
+
+module.exports = {
+ getRowStyles: getRowStyles,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/row/row.wxss b/miniprogram_npm/tdesign-miniprogram/row/row.wxss
new file mode 100644
index 0000000..4418a25
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/row.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-row{display:flex;flex-direction:row;flex-wrap:wrap;box-sizing:border-box}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/row/type.d.ts b/miniprogram_npm/tdesign-miniprogram/row/type.d.ts
new file mode 100644
index 0000000..f151c1c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/type.d.ts
@@ -0,0 +1,6 @@
+export interface TdRowProps {
+ gutter?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/row/type.js b/miniprogram_npm/tdesign-miniprogram/row/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/row/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.d.ts b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.d.ts
new file mode 100644
index 0000000..e42dd4c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.d.ts
@@ -0,0 +1,10 @@
+import { SuperComponent } from '../common/src/index';
+export default class ScrollView extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ properties: {
+ scrollIntoView: {
+ type: StringConstructor;
+ };
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.js b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.js
new file mode 100644
index 0000000..1dc78d2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{canUseProxyScrollView}from"../common/version";const{prefix:prefix}=config;let ScrollView=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.behaviors=canUseProxyScrollView()?["wx://proxy-scroll-view"]:[],this.properties={scrollIntoView:{type:String}}}};ScrollView=__decorate([wxComponent()],ScrollView);export default ScrollView;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.json b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxml b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxml
new file mode 100644
index 0000000..c17227d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxss b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxss
new file mode 100644
index 0000000..aed803e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/scroll-view/scroll-view.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/props.d.ts b/miniprogram_npm/tdesign-miniprogram/search/props.d.ts
new file mode 100644
index 0000000..81c5bff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSearchProps } from './type';
+declare const props: TdSearchProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/search/props.js b/miniprogram_npm/tdesign-miniprogram/search/props.js
new file mode 100644
index 0000000..372e8a7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/props.js
@@ -0,0 +1 @@
+const props={action:{type:String,value:""},adjustPosition:{type:Boolean,value:!0},alwaysEmbed:{type:Boolean,value:!1},center:{type:Boolean,value:!1},clearTrigger:{type:String,value:"always"},clearable:{type:Boolean,value:!0},confirmHold:{type:Boolean,value:!1},confirmType:{type:String,value:"search"},cursor:{type:Number,value:-1,required:!0},cursorSpacing:{type:Number,value:0},disabled:{type:Boolean,value:!1},focus:{type:Boolean,value:!1},holdKeyboard:{type:Boolean,value:!1},leftIcon:{type:String,value:"search"},maxcharacter:{type:Number},maxlength:{type:Number,value:-1},placeholder:{type:String,value:""},placeholderClass:{type:String,value:"input-placeholder"},placeholderStyle:{type:String,value:"",required:!0},readonly:{type:null,value:void 0},resultList:{type:Array,value:[]},selectionEnd:{type:Number,value:-1},selectionStart:{type:Number,value:-1},shape:{type:String,value:"square"},type:{type:String,value:"text"},value:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.d.ts b/miniprogram_npm/tdesign-miniprogram/search/search.d.ts
new file mode 100644
index 0000000..bb16745
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.d.ts
@@ -0,0 +1,27 @@
+import { SuperComponent } from '../common/src/index';
+export default class Search extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdSearchProps;
+ observers: {
+ resultList(val: any): void;
+ 'clearTrigger, clearable, disabled, readonly'(): void;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ isShowResultList: boolean;
+ isSelected: boolean;
+ showClearIcon: boolean;
+ };
+ updateClearIconVisible(value?: boolean): void;
+ onInput(e: any): void;
+ onFocus(e: any): void;
+ onBlur(e: any): void;
+ handleClear(): void;
+ onConfirm(e: any): void;
+ onActionClick(): void;
+ onSelectResultItem(e: any): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.js b/miniprogram_npm/tdesign-miniprogram/search/search.js
new file mode 100644
index 0000000..a65b718
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getCharacterLength}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-search`;let Search=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-input-container`,`${prefix}-class-input`,`${prefix}-class-action`,`${prefix}-class-left`,`${prefix}-class-clear`],this.options={multipleSlots:!0},this.properties=props,this.observers={resultList(e){const{isSelected:t}=this.data;e.length?t?this.setData({isShowResultList:!1,isSelected:!1}):this.setData({isShowResultList:!0}):this.setData({isShowResultList:!1})},"clearTrigger, clearable, disabled, readonly"(){this.updateClearIconVisible()}},this.data={classPrefix:name,prefix:prefix,isShowResultList:!1,isSelected:!1,showClearIcon:!0}}updateClearIconVisible(e=!1){const{clearTrigger:t,disabled:s,readonly:i}=this.properties;s||i?this.setData({showClearIcon:!1}):this.setData({showClearIcon:e||"always"===String(t)})}onInput(e){let{value:t}=e.detail;const{maxcharacter:s}=this.properties;if(s&&"number"==typeof s&&s>0){const{characters:e}=getCharacterLength("maxcharacter",t,s);t=e}this.setData({value:t}),this.triggerEvent("change",{value:t})}onFocus(e){const{value:t}=e.detail;this.updateClearIconVisible(!0),this.triggerEvent("focus",{value:t})}onBlur(e){const{value:t}=e.detail;this.updateClearIconVisible(),this.triggerEvent("blur",{value:t})}handleClear(){this.setData({value:""}),this.triggerEvent("clear",{value:""}),this.triggerEvent("change",{value:""})}onConfirm(e){const{value:t}=e.detail;this.triggerEvent("submit",{value:t})}onActionClick(){this.triggerEvent("action-click")}onSelectResultItem(e){const{index:t}=e.currentTarget.dataset,s=this.properties.resultList[t];this.setData({value:s,isSelected:!0}),this.triggerEvent("change",{value:s}),this.triggerEvent("selectresult",{index:t,item:s})}};Search=__decorate([wxComponent()],Search);export default Search;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.json b/miniprogram_npm/tdesign-miniprogram/search/search.json
new file mode 100644
index 0000000..e7cf83b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-cell":"../cell/cell"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.wxml b/miniprogram_npm/tdesign-miniprogram/search/search.wxml
new file mode 100644
index 0000000..5118c56
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.wxml
@@ -0,0 +1 @@
+{{action}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.wxs b/miniprogram_npm/tdesign-miniprogram/search/search.wxs
new file mode 100644
index 0000000..ac86989
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.wxs
@@ -0,0 +1,6 @@
+var highLight = function (label, keyword) {
+ return label.replace(keyword, '' + keyword + '');
+};
+module.exports = {
+ highLight: highLight,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/search/search.wxss b/miniprogram_npm/tdesign-miniprogram/search/search.wxss
new file mode 100644
index 0000000..ec74663
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/search.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-search{display:flex;justify-content:space-between;align-items:center}.t-search__label{padding:8rpx;color:var(--td-search-label-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-search__input-box{flex:1;box-sizing:border-box;display:flex;height:var(--td-search-height,80rpx);align-items:center;border:2rpx solid var(--td-search-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));background:var(--td-search-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));padding:var(--td-search-padding,16rpx 24rpx)}.t-search__input-box.t-is-focused{border-color:var(--td-search-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-search__input-box--round{border-radius:calc(var(--td-search-height,80rpx)/ 2)}.t-search__input-box--square{border-radius:var(--td-search-square-radius,var(--td-radius-default,12rpx))}.t-search__input-box--center{text-align:center}.t-search__input-box .t-input__keyword{display:inline-block;flex:1;color:var(--td-search-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));font-size:var(--td-search-font-size,var(--td-font-size-m,32rpx));padding-left:10rpx;min-height:48rpx;line-height:48rpx}.t-search__input-box .t-input--disabled{color:var(--td-search-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));cursor:not-allowed;opacity:1;-webkit-text-fill-color:currentColor}.t-search__input-box .t-icon{color:var(--td-search-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-search-icon-font-size,48rpx)}.t-search__clear{position:relative;margin-left:10px;font-size:var(--td-search-clear-icon-font-size,48rpx);color:var(--td-search-clear-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-search__search-action{margin-left:30rpx;font-size:var(--td-search-font-size,var(--td-font-size-m,32rpx));color:var(--td-search-action-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-search__placeholder{color:var(--td-search-placeholder-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-search__placeholder--center{text-align:center}.t-search__result-item--highLight{color:var(--td-search-result-high-light-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-search__result-list .t-search__result-item{padding-left:0}.t-search__result-list .t-search__result-item::after{left:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/search/type.d.ts b/miniprogram_npm/tdesign-miniprogram/search/type.d.ts
new file mode 100644
index 0000000..c7f2370
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/type.d.ts
@@ -0,0 +1,108 @@
+export interface TdSearchProps {
+ action?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ adjustPosition?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ alwaysEmbed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ center?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ clearTrigger?: {
+ type: StringConstructor;
+ value?: 'always' | 'focus';
+ };
+ clearable?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmHold?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmType?: {
+ type: StringConstructor;
+ value?: 'send' | 'search' | 'next' | 'go' | 'done';
+ };
+ cursor: {
+ type: NumberConstructor;
+ value?: number;
+ required?: boolean;
+ };
+ cursorSpacing?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ focus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ holdKeyboard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ leftIcon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxcharacter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxlength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderStyle: {
+ type: StringConstructor;
+ value?: string;
+ required?: boolean;
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ resultList?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ selectionEnd?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionStart?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'square' | 'round';
+ };
+ type?: {
+ type: StringConstructor;
+ value?: 'text' | 'number' | 'idcard' | 'digit' | 'nickname';
+ };
+ value?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/search/type.js b/miniprogram_npm/tdesign-miniprogram/search/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/search/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.d.ts
new file mode 100644
index 0000000..cdda046
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSideBarItemProps } from './type';
+declare const props: TdSideBarItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.js b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.js
new file mode 100644
index 0000000..c442da0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object},disabled:{type:Boolean,value:!1},icon:{type:null},label:{type:String,value:""},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.d.ts
new file mode 100644
index 0000000..fd2334f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.d.ts
@@ -0,0 +1,44 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class SideBarItem extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ tId: {
+ type: StringConstructor;
+ };
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: import("../badge").BadgeProps;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ };
+ relations: RelationsOptions;
+ observers: {
+ icon(v: any): void;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ active: boolean;
+ isPre: boolean;
+ isNext: boolean;
+ };
+ methods: {
+ updateActive(value: any): void;
+ handleClick(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.js b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.js
new file mode 100644
index 0000000..ced9c65
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.js
@@ -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}-side-bar-item`;let SideBarItem=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties=Object.assign(Object.assign({},props),{tId:{type:String}}),this.relations={"../side-bar/side-bar":{type:"parent",linked(e){this.parent=e,this.updateActive(e.data.value)}}},this.observers={icon(e){this.setData({_icon:"string"==typeof e?{name:e}:e})}},this.data={classPrefix:name,prefix:prefix,active:!1,isPre:!1,isNext:!1},this.methods={updateActive(e){const t=e===this.data.value;this.setData({active:t})},handleClick(){var e;if(this.data.disabled)return;const{value:t,label:i}=this.data;null===(e=this.parent)||void 0===e||e.doChange({value:t,label:i})}}}};SideBarItem=__decorate([wxComponent()],SideBarItem);export default SideBarItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.json b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.json
new file mode 100644
index 0000000..53d0ea9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-badge":"../badge/badge","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxml b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxml
new file mode 100644
index 0000000..b46786d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxml
@@ -0,0 +1 @@
+{{label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxss b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxss
new file mode 100644
index 0000000..7187e0c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/side-bar-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-side-bar-item{display:flex;align-items:center;position:relative;padding:32rpx;font-size:var(--td-side-bar-font-size,32rpx);color:var(--td-side-bar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));background:var(--td-side-bar-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));min-height:var(--td-side-bar-item-height,112rpx);box-sizing:border-box;white-space:wrap;line-height:var(--td-side-bar-item-line-height,48rpx)}.t-side-bar-item--active{font-weight:600;background:var(--td-bg-color-container,var(--td-font-white-1,#fff));color:var(--td-side-bar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));--td-badge-content-text-color:var(--td-side-bar-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)))}.t-side-bar-item__icon{font-size:var(--td-side-bar-icon-size,40rpx);margin-right:4rpx}.t-side-bar-item__prefix,.t-side-bar-item__suffix{z-index:1;position:absolute;right:0;width:100%;height:calc(var(--td-side-bar-border-radius,18rpx) * 2);background:var(--td-bg-color-container,var(--td-font-white-1,#fff));pointer-events:none}.t-side-bar-item__prefix::after,.t-side-bar-item__suffix::after{content:'';display:block;width:100%;height:100%;background-color:var(--td-side-bar-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-side-bar-item__prefix{top:calc(var(--td-side-bar-border-radius,18rpx) * -2)}.t-side-bar-item__prefix::after{border-bottom-right-radius:var(--td-side-bar-border-radius,18rpx)}.t-side-bar-item__suffix{bottom:calc(var(--td-side-bar-border-radius,18rpx) * -2)}.t-side-bar-item__suffix::after{border-top-right-radius:var(--td-side-bar-border-radius,18rpx)}.t-side-bar-item--disabled{color:var(--td-side-bar-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-side-bar-item__line{width:6rpx;height:28rpx;position:absolute;left:0;top:50%;transform:translateY(-50%);background:var(--td-side-bar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-radius:8rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.d.ts
new file mode 100644
index 0000000..94aff15
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.d.ts
@@ -0,0 +1,23 @@
+import { BadgeProps } from '../badge/index';
+export interface TdSideBarItemProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.js b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar/props.d.ts
new file mode 100644
index 0000000..fcab408
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSideBarProps } from './type';
+declare const props: TdSideBarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/props.js b/miniprogram_npm/tdesign-miniprogram/side-bar/props.js
new file mode 100644
index 0000000..cab6349
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/props.js
@@ -0,0 +1 @@
+const props={value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.d.ts
new file mode 100644
index 0000000..f5ac06e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.d.ts
@@ -0,0 +1,24 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class SideBar extends SuperComponent {
+ externalClasses: string[];
+ children: any[];
+ relations: RelationsOptions;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ properties: import("./type").TdSideBarProps;
+ observers: {
+ value(v: any): void;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ };
+ methods: {
+ doChange({ value, label }: {
+ value: any;
+ label: any;
+ }): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.js b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.js
new file mode 100644
index 0000000..dc077d3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.js
@@ -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}-side-bar`,relationsPath="../side-bar-item/side-bar-item";let SideBar=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.children=[],this.relations={[relationsPath]:{type:"child",linked(e){this.children.push(e)},unlinked(e){const i=this.children.findIndex((i=>i===e));this.children.splice(i,1)}}},this.controlledProps=[{key:"value",event:"change"}],this.properties=props,this.observers={value(e){this.$children.forEach((i=>{i.updateActive(e)}))}},this.data={classPrefix:name,prefix:prefix},this.methods={doChange({value:e,label:i}){this._trigger("change",{value:e,label:i})}}}};SideBar=__decorate([wxComponent()],SideBar);export default SideBar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.json b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.json
new file mode 100644
index 0000000..4b9f595
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-side-bar-item":"../side-bar-item/side-bar-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxml b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxml
new file mode 100644
index 0000000..eb0c986
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxss b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxss
new file mode 100644
index 0000000..a118303
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/side-bar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-side-bar{display:flex;flex-direction:column;width:var(--td-side-bar-width,206rpx);height:var(--td-side-bar-height,100%);overflow-y:auto}.t-side-bar::-webkit-scrollbar{display:none}.t-side-bar__padding{flex:1;background-color:var(--td-side-bar-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/side-bar/type.d.ts
new file mode 100644
index 0000000..39d8876
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/type.d.ts
@@ -0,0 +1,10 @@
+export interface TdSideBarProps {
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/side-bar/type.js b/miniprogram_npm/tdesign-miniprogram/side-bar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/side-bar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/props.d.ts b/miniprogram_npm/tdesign-miniprogram/skeleton/props.d.ts
new file mode 100644
index 0000000..2c8f4af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSkeletonProps } from './type';
+declare const props: TdSkeletonProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/props.js b/miniprogram_npm/tdesign-miniprogram/skeleton/props.js
new file mode 100644
index 0000000..564c251
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/props.js
@@ -0,0 +1 @@
+const props={animation:{type:String,value:"none"},delay:{type:Number,value:0},loading:{type:Boolean,value:!0},rowCol:{type:Array},theme:{type:String,value:"text"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.d.ts b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.d.ts
new file mode 100644
index 0000000..f7e1353
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.d.ts
@@ -0,0 +1,25 @@
+import { SuperComponent } from '../common/src/index';
+import { SkeletonRowColObj } from './type';
+import { ClassName, Styles } from '../common/common';
+export default class Skeleton extends SuperComponent {
+ externalClasses: string[];
+ properties: import("./type").TdSkeletonProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ parsedRowcols: any[];
+ };
+ observers: {
+ rowCol(): void;
+ 'loading, delay'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ init(): void;
+ getColItemClass(obj: SkeletonRowColObj): ClassName;
+ getColItemStyle(obj: SkeletonRowColObj): Styles;
+ isShowSkeleton(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.js b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.js
new file mode 100644
index 0000000..37331ef
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{classNames}from"../common/utils";import{isNumber}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-skeleton`,ThemeMap={avatar:[{type:"circle",size:"96rpx"}],image:[{type:"rect",size:"144rpx"}],text:[[{width:"24%",height:"32rpx",marginRight:"32rpx"},{width:"76%",height:"32rpx"}],1],paragraph:[1,1,1,{width:"55%"}]};let Skeleton=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-col`,`${prefix}-class-row`],this.properties=props,this.data={prefix:prefix,classPrefix:name,parsedRowcols:[]},this.observers={rowCol(){this.init()},"loading, delay"(){this.isShowSkeleton()}},this.lifetimes={attached(){this.init(),this.isShowSkeleton()}},this.methods={init(){const{theme:t,rowCol:e}=this.properties,s=[];e.length?s.push(...e):s.push(...ThemeMap[t||"text"]);const i=s.map((t=>{if(isNumber(t))return[{class:this.getColItemClass({type:"text"}),style:{}}];if(Array.isArray(t))return t.map((t=>Object.assign(Object.assign({},t),{class:this.getColItemClass(t),style:this.getColItemStyle(t)})));const e=t;return[Object.assign(Object.assign({},e),{class:this.getColItemClass(e),style:this.getColItemStyle(e)})]}));this.setData({parsedRowcols:i})},getColItemClass(t){return classNames([`${name}__col`,`${name}--type-${t.type||"text"}`,`${name}--animation-${this.properties.animation}`])},getColItemStyle(t){const e={};return["width","height","marginRight","marginLeft","margin","size","background","backgroundColor","borderRadius"].forEach((s=>{if(s in t){const i=isNumber(t[s])?`${t[s]}px`:t[s];"size"===s?[e.width,e.height]=[i,i]:e[s]=i}})),e},isShowSkeleton(){const{loading:t,delay:e}=this.properties;t&&0!==e?setTimeout((()=>{this.setData({isShow:t})}),e):this.setData({isShow:t})}}}};Skeleton=__decorate([wxComponent()],Skeleton);export default Skeleton;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.json b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxml b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxml
new file mode 100644
index 0000000..0f5a8e7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxss b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxss
new file mode 100644
index 0000000..001a314
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/skeleton.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-skeleton{box-sizing:border-box}.t-skeleton__row{display:flex;margin-bottom:var(--td-skeleton-row-spacing,var(--td-spacer-2,32rpx));align-items:center;justify-content:space-between}.t-skeleton__row:last-child,.t-skeleton__row:only-child{margin-bottom:0}.t-skeleton__col{background-color:var(--td-skeleton-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));display:flex;align-items:center;justify-content:center}.t-skeleton__col:first-child:last-child,.t-skeleton__col:last-child{margin-right:0}.t-skeleton--type-text{width:100%;height:var(--td-skeleton-text-height,32rpx);border-radius:var(--td-skeleton-text-border-radius,var(--td-radius-small,6rpx))}.t-skeleton--type-rect{width:100%;height:var(--td-skeleton-rect-height,32rpx);border-radius:var(--td-skeleton-rect-border-radius,var(--td-radius-default,12rpx))}.t-skeleton--type-circle{width:var(--td-skeleton-circle-height,96rpx);height:var(--td-skeleton-circle-height,96rpx);border-radius:var(--td-skeleton-circle-border-radius,var(--td-skeleton-circle-border-radius,var(--td-radius-circle,50%)));flex-shrink:0}.t-skeleton--animation-gradient{position:relative;overflow-x:hidden}.t-skeleton--animation-gradient::after{content:' ';position:absolute;bottom:0;left:0;right:0;top:0;background:linear-gradient(90deg,rgba(255,255,255,0),var(--td-skeleton-animation-gradient,rgba(0,0,0,.04)),rgba(255,255,255,0));animation:t-skeleton--gradient 1.5s linear 2s infinite}.t-skeleton--animation-flashed{animation:t-skeleton--flashed 2s linear 2s infinite}@keyframes t-skeleton--gradient{0%{transform:translateX(-100%) skewX(-15deg)}100%{transform:translateX(100%) skewX(-15deg)}}@keyframes t-skeleton--flashed{0%{opacity:1}50%{background-color:var(--td-skeleton-animation-flashed,rgba(230,230,230,.3));opacity:.3}100%{opacity:1}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/type.d.ts b/miniprogram_npm/tdesign-miniprogram/skeleton/type.d.ts
new file mode 100644
index 0000000..c96ee71
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/type.d.ts
@@ -0,0 +1,32 @@
+export interface TdSkeletonProps {
+ animation?: {
+ type: StringConstructor;
+ value?: 'gradient' | 'flashed' | 'none';
+ };
+ delay?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ rowCol?: {
+ type: ArrayConstructor;
+ value?: SkeletonRowCol;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'avatar' | 'image' | 'text' | 'paragraph';
+ };
+}
+export declare type SkeletonRowCol = Array>;
+export interface SkeletonRowColObj {
+ width?: string;
+ size?: string;
+ height?: string;
+ marginRight?: string;
+ marginLeft?: string;
+ margin?: string;
+ type?: 'rect' | 'circle' | 'text';
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/skeleton/type.js b/miniprogram_npm/tdesign-miniprogram/skeleton/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/skeleton/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/props.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/props.d.ts
new file mode 100644
index 0000000..f6d03ac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSliderProps } from './type';
+declare const props: TdSliderProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/props.js b/miniprogram_npm/tdesign-miniprogram/slider/props.js
new file mode 100644
index 0000000..0afd3cb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:null,value:void 0},label:{type:null,value:!1},marks:{type:null,value:{}},max:{type:Number,value:100},min:{type:Number,value:0},range:{type:Boolean,value:!1},showExtremeValue:{type:Boolean,value:!1},step:{type:Number,value:1},theme:{type:String,value:"default"},value:{type:null,value:null},defaultValue:{type:null,value:0},vertical:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/slider.d.ts
new file mode 100644
index 0000000..271b245
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.d.ts
@@ -0,0 +1,67 @@
+///
+import { SuperComponent } from '../common/src/index';
+import type { SliderValue } from './type';
+declare type dataType = {
+ sliderStyles: string;
+ classPrefix: string;
+ initialLeft: number | null;
+ initialRight: number | null;
+ activeLeft: number;
+ activeRight: number;
+ maxRange: number;
+ lineLeft: number;
+ lineRight: number;
+ dotTopValue: number[];
+ blockSize: number;
+ isScale: boolean;
+ scaleArray: any[];
+ scaleTextArray: any[];
+ _value: SliderValue;
+ prefix: string;
+ isVisibleToScreenReader: boolean;
+ identifier: number[];
+ __inited: boolean;
+};
+export default class Slider extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ pureDataPattern: RegExp;
+ };
+ properties: import("./type").TdSliderProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: dataType;
+ observers: {
+ value(newValue: SliderValue): void;
+ _value(newValue: SliderValue): void;
+ marks(val: any): void;
+ };
+ lifetimes: {
+ created(): void;
+ attached(): void;
+ };
+ injectPageScroll(): void;
+ observerScrollTop(rest: any): void;
+ toggleA11yTips(): void;
+ renderLine(val: any): void;
+ triggerValue(value?: SliderValue): void;
+ handlePropsChange(newValue: SliderValue): void;
+ valueToPosition(value: number): number;
+ handleMark(marks: any): void;
+ setSingleBarWidth(value: number): void;
+ init(): Promise;
+ stepValue(value: number): number;
+ onSingleLineTap(e: WechatMiniprogram.TouchEvent): void;
+ getSingleChangeValue(e: WechatMiniprogram.TouchEvent): number;
+ convertPosToValue(posValue: number, dir: 0 | 1): number;
+ onLineTap(e: WechatMiniprogram.TouchEvent): void;
+ onTouchStart(e: WechatMiniprogram.TouchEvent): void;
+ onTouchMoveLeft(e: WechatMiniprogram.TouchEvent): void;
+ onTouchMoveRight(e: WechatMiniprogram.TouchEvent): void;
+ setLineStyle(left: number, right: number): void;
+ onTouchEnd(e: WechatMiniprogram.TouchEvent): void;
+ getPagePosition(touch: any): any;
+}
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.js b/miniprogram_npm/tdesign-miniprogram/slider/slider.js
new file mode 100644
index 0000000..dd0db19
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import{trimSingleValue,trimValue}from"./tool";import props from"./props";import{getRect}from"../common/utils";import Bus from"../common/bus";const{prefix:prefix}=config,name=`${prefix}-slider`;let Slider=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-bar`,`${prefix}-class-bar-active`,`${prefix}-class-bar-disabled`,`${prefix}-class-cursor`],this.options={pureDataPattern:/^__/},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.data={sliderStyles:"",classPrefix:name,initialLeft:null,initialRight:null,activeLeft:0,activeRight:0,maxRange:0,lineLeft:0,lineRight:0,dotTopValue:[0,0],_value:0,blockSize:20,isScale:!1,scaleArray:[],scaleTextArray:[],prefix:prefix,isVisibleToScreenReader:!1,identifier:[-1,-1],__inited:!1},this.observers={value(e){this.handlePropsChange(e)},_value(e){this.bus.on("initial",(()=>this.renderLine(e))),this.toggleA11yTips()},marks(e){this.bus.on("initial",(()=>this.handleMark(e)))}},this.lifetimes={created(){this.bus=new Bus},attached(){const{value:e}=this.properties;e||this.handlePropsChange(0),this.init(),this.injectPageScroll()}}}injectPageScroll(){const{range:e,vertical:t}=this.properties;if(!e||!t)return;const i=getCurrentPages()||[];let s=null;if(i&&i.length-1>=0&&(s=i[i.length-1]),!s)return;const r=null==s?void 0:s.onPageScroll;s.onPageScroll=e=>{null==r||r.call(this,e),this.observerScrollTop(e)}}observerScrollTop(e){const{scrollTop:t}=e||{};this.pageScrollTop=t}toggleA11yTips(){this.setData({isVisibleToScreenReader:!0}),setTimeout((()=>{this.setData({isVisibleToScreenReader:!1})}),2e3)}renderLine(e){const{min:t,max:i,range:s}=this.properties,{maxRange:r}=this.data;if(s){const s=r*(e[0]-Number(t))/(Number(i)-Number(t)),a=r*(Number(i)-e[1])/(Number(i)-Number(t));this.setLineStyle(s,a)}else this.setSingleBarWidth(e)}triggerValue(e){this.preval!==e&&(this.preval=e,this._trigger("change",{value:trimValue(e,this.properties)}))}handlePropsChange(e){const t=trimValue(e,this.properties),i=()=>{this.setData({_value:t})};0!==this.data.maxRange?i():this.init().then(i)}valueToPosition(e){const{min:t,max:i,theme:s}=this.properties,{blockSize:r,maxRange:a}=this.data,n="capsule"===s?Number(r)/2:0;return Math.round((Number(e)-Number(t))/(Number(i)-Number(t))*a)+n}handleMark(e){const t=e=>e.map((e=>({val:e,left:this.valueToPosition(e)})));if((null==e?void 0:e.length)&&Array.isArray(e)&&this.setData({isScale:!0,scaleArray:t(e),scaleTextArray:[]}),"[object Object]"===Object.prototype.toString.call(e)){const i=Object.keys(e).map((e=>Number(e))),s=i.map((t=>e[t]));this.setData({isScale:i.length>0,scaleArray:t(i),scaleTextArray:s})}}setSingleBarWidth(e){const t=this.valueToPosition(e);this.setData({lineBarWidth:`${t}px`})}init(){return __awaiter(this,void 0,void 0,(function*(){if(this.data.__inited)return;const e=yield getRect(this,"#sliderLine"),{blockSize:t}=this.data,{theme:i,vertical:s}=this.properties,r=Number(t)/2,{top:a,bottom:n,right:o,left:l}=e;let h=s?n-a:o-l,c=s?a:l,u=s?n:o;0===c&&0===u||("capsule"===i&&(h=h-Number(t)-6,c-=r,u-=r),this.setData({maxRange:h,initialLeft:c,initialRight:u,__inited:!0}),this.bus.emit("initial"))}))}stepValue(e){const{step:t,min:i,max:s}=this.properties,r=String(t).indexOf(".")>-1?String(t).length-String(t).indexOf(".")-1:0;return trimSingleValue(Number((Math.round(e/Number(t))*Number(t)).toFixed(r)),Number(i),Number(s))}onSingleLineTap(e){const{disabled:t}=this.properties;if(t)return;const i=-1===this.data.identifier[0];if(i){const[t]=e.changedTouches;this.data.identifier[0]=t.identifier}const s=this.getSingleChangeValue(e);i&&(this.data.identifier[0]=-1),this.triggerValue(s)}getSingleChangeValue(e){const{min:t,max:i,theme:s,vertical:r}=this.properties,{initialLeft:a,maxRange:n,blockSize:o}=this.data,l=e.changedTouches.find((e=>e.identifier===this.data.identifier[0])),h=this.getPagePosition(l);let c=0;"capsule"===s?(c=Number(o),r&&(c*=2),c+=6):r&&(c=Number(o));const u=h-a-c;let p=0;return p=u<=0?Number(t):u>=n?Number(i):u/n*(Number(i)-Number(t))+Number(t),this.stepValue(p)}convertPosToValue(e,t){const{maxRange:i}=this.data,{max:s,min:r}=this.properties;return 0===t?e/i*(Number(s)-Number(r))+Number(r):Number(s)-e/i*(Number(s)-Number(r))}onLineTap(e){const{disabled:t,theme:i,vertical:s}=this.properties,{initialLeft:r,initialRight:a,maxRange:n,blockSize:o}=this.data;if(t)return;const[l]=e.changedTouches,h=this.getPagePosition(l),c="capsule"===i?Number(o)/2:0;h-r<0||-(h-a)>n+Number(o)||Promise.all([getRect(this,"#leftDot"),getRect(this,"#rightDot")]).then((([e,t])=>{const n=this.pageScrollTop||0,l=s?e.top+n:e.left,u=Math.abs(h-l-c),p=s?t.top+n:t.left,d=ue.identifier===this.data.identifier[0])),l=this.getPagePosition(o);let h=0;"capsule"===i&&(h+=Number(n)),s&&(h+=Number(n)+6);const c=l-r-h,u=[...a],p=this.convertPosToValue(c,0);u[0]=this.stepValue(p),this.triggerValue(u)}onTouchMoveRight(e){const{disabled:t,vertical:i}=this.properties,{initialRight:s,_value:r,blockSize:a}=this.data;if(t)return;const n=e.changedTouches.find((e=>e.identifier===this.data.identifier[1])),o=this.getPagePosition(n);let l=0;i&&(l+=Number(a)/2+6);const h=-(o-s-l),c=[...r],u=this.convertPosToValue(h,1);c[1]=this.stepValue(u),this.triggerValue(c)}setLineStyle(e,t){const{theme:i}=this.properties,{blockSize:s,maxRange:r}=this.data,a="capsule"===i?Number(s)/2:0,[n,o]=this.data._value,l=e=>parseInt(e,10);this.setData({dotTopValue:[n,o]}),e+t<=r?this.setData({lineLeft:l(e+a),lineRight:l(t+a)}):this.setData({lineLeft:l(r+a-t),lineRight:l(r-e+1.5*a)})}onTouchEnd(e){this.triggerEvent("dragend",{e:e,value:this.data._value}),"rightDot"===e.currentTarget.id?this.data.identifier[1]=-1:this.data.identifier[0]=-1}getPagePosition(e){const{pageX:t,pageY:i}=e,{vertical:s}=this.properties;return s?i:t}};Slider=__decorate([wxComponent()],Slider);export default Slider;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.json b/miniprogram_npm/tdesign-miniprogram/slider/slider.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.wxml b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxml
new file mode 100644
index 0000000..d5503ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxml
@@ -0,0 +1 @@
+{{ label ? t.getValue(label, min) : min}}{{scaleTextArray[index]}}{{t.getValue(label, _value) || _value}}{{ label ? t.getValue(label, max) : max}}{{min}}{{scaleTextArray[index]}}{{t.getValue(label, dotTopValue[0]) || dotTopValue[0]}}{{t.getValue(label, dotTopValue[1]) || dotTopValue[1]}}{{max}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.wxs b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxs
new file mode 100644
index 0000000..b4be3ff
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxs
@@ -0,0 +1,10 @@
+var REGEXP = getRegExp('[$][{value}]{7}');
+
+function getValue(label, value) {
+ if (label && label === 'true') return value;
+ if (REGEXP.test(label)) return label.replace(REGEXP, value);
+}
+
+module.exports = {
+ getValue: getValue,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/slider.wxss b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxss
new file mode 100644
index 0000000..71c40ae
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/slider.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-slider{width:100%;font-size:14px;display:flex;align-items:center}.t-slider--disabled .t-slider__dot-value,.t-slider--disabled .t-slider__range-extreme,.t-slider--disabled .t-slider__scale-desc,.t-slider--disabled .t-slider__value{color:var(--td-slider-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-slider--disabled .t-slider__dot{background-color:var(--td-slider-dot-disabled-bg-color,#fff);border-color:var(--td-slider-dot-disabled-border-color,#f3f3f3)}.t-slider--top{padding-top:40rpx}.t-slider__line{position:absolute;top:0;height:var(--td-slider-bar-height,8rpx);border-radius:calc(var(--td-slider-bar-height,8rpx)/ 2);background-color:var(--td-slider-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-slider__line--disabled{background-color:var(--td-slider-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-slider__line--capsule{height:var(--td-slider-capsule-line-heihgt,36rpx)}.t-slider__line--capsule.t-slider__line--single{border-top-left-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2);border-bottom-left-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2)}.t-slider__dot{border-radius:50%;border:2rpx solid var(--td-slider-dot-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));position:absolute;top:50%;right:0;transform:translate3d(50%,-50%,0);z-index:2;background-color:var(--td-slider-dot-bg-color,#fff);width:var(--td-slider-dot-size,40rpx);height:var(--td-slider-dot-size,40rpx);box-shadow:var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12));box-sizing:border-box}.t-slider__dot--left{left:0;transform:translate3d(-50%,-50%,0)}.t-slider__dot-value{position:relative;left:50%;transform:translateX(-50%);top:-52rpx;text-align:center;width:96rpx;height:44rpx;line-height:44rpx}.t-slider__dot-value,.t-slider__range-extreme,.t-slider__value{color:var(--td-slider-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-slider__dot-value--sr-only,.t-slider__range-extreme--sr-only,.t-slider__value--sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%);border:0}.t-slider__dot-slider{width:100%;height:100%;position:absolute;left:0;top:0}.t-slider__value--min{margin-left:32rpx}.t-slider__value--max{margin-right:32rpx}.t-slider__value--right{flex-basis:80rpx}.t-slider__value--right__value--text{margin-right:32rpx;text-align:right;display:block}.t-slider__bar{margin:16rpx 32rpx;flex:10;background-clip:content-box;height:var(--td-slider-bar-height,8rpx);border-radius:calc(var(--td-slider-bar-height,8rpx)/ 2);position:relative;background-color:var(--td-slider-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-slider__bar--capsule{height:var(--td-slider-capsule-bar-heihgt,48rpx);border-radius:calc(var(--td-slider-capsule-bar-heihgt,48rpx)/ 2);background-color:var(--td-slider-capsule-bar-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border:6rpx solid var(--td-slider-capsule-bar-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));box-sizing:border-box}.t-slider__bar--marks{background-color:var(--td-slider-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-slider__bar--disabled{background-color:var(--td-slider-default-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-slider__range-extreme--min{margin-left:32rpx;text-align:left}.t-slider__range-extreme--max{margin-right:32rpx;text-align:right}.t-slider__scale-item{background-color:var(--td-slider-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));width:var(--td-slider-bar-height,8rpx);height:16rpx;width:16rpx;border-radius:50%;position:absolute;top:50%;margin-top:-8rpx;z-index:1}.t-slider__scale-item--active{background-color:var(--td-slider-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-slider__scale-item--disabled{background-color:var(--td-slider-default-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-slider__scale-item--active.t-slider__scale-item--disabled{background-color:var(--td-slider-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-slider__scale-item--capsule{height:var(--td-slider-capsule-line-heihgt,36rpx);width:4rpx;border-radius:0;background-color:var(--td-slider-capsule-bar-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));margin-top:calc(-.5 * var(--td-slider-capsule-line-heihgt,36rpx))}.t-slider__scale-item--hidden{background-color:transparent}.t-slider__scale-desc{position:absolute;left:50%;color:var(--td-slider-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));transform:translateX(-50%);bottom:32rpx}.t-slider__scale-desc--capsule{bottom:46rpx}.t-slider--vertical{--td-slider-bar-height:400rpx;height:var(--td-slider-bar-height,8rpx);justify-content:center;position:relative}.t-slider--vertical .t-slider__bar{flex:none;height:100%;width:var(--td-slider-bar-width,8rpx)}.t-slider--vertical .t-slider__bar--capsule{width:var(--td-slider-capsule-bar-width,48rpx);border-radius:calc(var(--td-slider-capsule-bar-width,48rpx)/ 2)}.t-slider--vertical .t-slider__line{width:100%;height:unset;left:0;border-radius:calc(var(--td-slider-bar-width,8rpx)/ 2)}.t-slider--vertical .t-slider__line--capsule.t-slider__line--single{border-top-left-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2);border-top-right-radius:calc(var(--td-slider-capsule-line-heihgt,36rpx)/ 2)}.t-slider--vertical .t-slider__dot{left:50%;top:100%;transform:translate(-50%,-50%)}.t-slider--vertical .t-slider__dot--left{top:0;transform:translate(-50%,-50%);left:50%}.t-slider--vertical .t-slider__dot--right{left:50%;transform:translate(-50%,-50%);top:100%}.t-slider--vertical .t-slider__dot-value{left:54rpx;top:50%;transform:translate(0,-50%);width:auto}.t-slider--vertical .t-slider__range-extreme{position:absolute;left:50%;transform:translateX(-50%);margin:0}.t-slider--vertical .t-slider__range-extreme--min{top:0}.t-slider--vertical .t-slider__range-extreme--max{bottom:0}.t-slider--vertical .t-slider__scale-item{left:50%;margin-top:0}.t-slider--vertical .t-slider__scale-item--capsule{height:4rpx;width:var(--td-slider-capsule-line-heihgt,36rpx)}.t-slider--vertical .t-slider__scale-desc{top:50%;transform:translateY(-50%);bottom:unset;left:38rpx}.t-slider--vertical .t-slider__scale-desc--capsule{left:52rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/tool.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/tool.d.ts
new file mode 100644
index 0000000..b9383e6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/tool.d.ts
@@ -0,0 +1,2 @@
+export declare const trimSingleValue: (value: any, min: number, max: number) => number;
+export declare const trimValue: (value: number | number[], props: any) => number | number[];
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/tool.js b/miniprogram_npm/tdesign-miniprogram/slider/tool.js
new file mode 100644
index 0000000..5f5cd96
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/tool.js
@@ -0,0 +1 @@
+export const trimSingleValue=(r,e,i)=>ri?i:r;export const trimValue=(r,e)=>{const{min:i,max:t,range:n}=e;return n&&Array.isArray(r)?(r[0]=trimSingleValue(r[0],i,t),r[1]=trimSingleValue(r[1],i,t),r[0]<=r[1]?r:[r[1],r[0]]):n?[i,t]:n?void 0:trimSingleValue(r,i,t)};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/type.d.ts b/miniprogram_npm/tdesign-miniprogram/slider/type.d.ts
new file mode 100644
index 0000000..099ed6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/type.d.ts
@@ -0,0 +1,51 @@
+export interface TdSliderProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: null;
+ value?: string | boolean;
+ };
+ marks?: {
+ type: null;
+ value?: Record | Array;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ min?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ range?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showExtremeValue?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ step?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'capsule';
+ };
+ value?: {
+ type: null;
+ value?: SliderValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: SliderValue;
+ };
+ vertical?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export declare type SliderValue = number | Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/slider/type.js b/miniprogram_npm/tdesign-miniprogram/slider/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/slider/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/step-item/props.d.ts
new file mode 100644
index 0000000..d941a41
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStepItemProps } from './type';
+declare const props: TdStepItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/props.js b/miniprogram_npm/tdesign-miniprogram/step-item/props.js
new file mode 100644
index 0000000..9c438f9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/props.js
@@ -0,0 +1 @@
+const props={content:{type:String,value:""},icon:{type:String},status:{type:String,value:"default"},title:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.d.ts b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.d.ts
new file mode 100644
index 0000000..c2f2ecc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.d.ts
@@ -0,0 +1,34 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class StepItem extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ relations: RelationsOptions;
+ externalClasses: string[];
+ properties: import("./type").TdStepItemProps;
+ data: {
+ classPrefix: string;
+ prefix: string;
+ index: number;
+ isDot: boolean;
+ curStatus: string;
+ layout: string;
+ isLastChild: boolean;
+ sequence: string;
+ };
+ observers: {
+ status(value: any): void;
+ };
+ methods: {
+ updateStatus({ current, currentStatus, index, theme, layout, items, sequence }: {
+ current: any;
+ currentStatus: any;
+ index: any;
+ theme: any;
+ layout: any;
+ items: any;
+ sequence: any;
+ }): void;
+ onTap(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.js b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.js
new file mode 100644
index 0000000..5d02097
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-steps-item`;let StepItem=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.relations={"../steps/steps":{type:"parent"}},this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`,`${prefix}-class-title`,`${prefix}-class-description`,`${prefix}-class-extra`],this.properties=props,this.data={classPrefix:name,prefix:prefix,index:0,isDot:!1,curStatus:"",layout:"vertical",isLastChild:!1,sequence:"positive"},this.observers={status(t){const{curStatus:e}=this.data;""!==e&&t!==e&&this.setData({curStatus:t})}},this.methods={updateStatus({current:t,currentStatus:e,index:s,theme:i,layout:r,items:o,sequence:a}){let p=this.data.status;"default"===p&&(s{{index + 1}}{{ title }}{{ content }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxs b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxs
new file mode 100644
index 0000000..491902c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxs
@@ -0,0 +1,7 @@
+function getAriaLabel(index, title, content) {
+ return '第' + (index + 1) + '步,' + title + ',' + content;
+}
+
+module.exports = {
+ getAriaLabel: getAriaLabel,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxss b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxss
new file mode 100644
index 0000000..61c1d7b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/step-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-steps-item{flex:1;vertical-align:top;position:relative;display:flex}.t-steps-item__circle--default{color:var(--td-step-item-default-circle-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));background-color:var(--td-step-item-default-circle-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-steps-item__title--default{color:var(--td-step-item-default-title-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-steps-item__icon--default{color:var(--td-step-item-default-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-steps-item__dot--default{border-color:var(--td-step-item-default-dot-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));background-color:var(--td-step-item-default-dot-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-steps-item__circle--process{color:var(--td-step-item-process-circle-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));background-color:var(--td-step-item-process-circle-bg,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__title--process{color:var(--td-step-item-process-title-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__icon--process{color:var(--td-step-item-process-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__dot--process{border-color:var(--td-step-item-process-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-step-item-process-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__circle--finish{color:var(--td-step-item-finish-circle-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-step-item-finish-circle-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-steps-item__title--finish{color:var(--td-step-item-finish-title-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-steps-item__icon--finish{color:var(--td-step-item-finish-icon-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__dot--finish{border-color:var(--td-step-item-finish-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-step-item-finish-dot-border-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__circle--error{color:var(--td-step-item-error-circle-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-step-item-error-circle-bg,var(--td-error-color-1,#fff0ed))}.t-steps-item__title--error{color:var(--td-step-item-error-title-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-steps-item__icon--error{color:var(--td-step-item-error-icon-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-steps-item__dot--error{border-color:var(--td-step-item-error-dot-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-step-item-error-dot-border-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-steps-item--horizontal{flex-direction:column;justify-content:center;align-items:center}.t-steps-item__anchor{display:flex;align-items:center;justify-content:center}.t-steps-item__anchor--vertical{width:var(--td-step-item-circle-size,44rpx);height:var(--td-step-item-circle-size,44rpx)}.t-steps-item__circle{display:flex;justify-content:center;align-items:center;width:var(--td-step-item-circle-size,44rpx);height:var(--td-step-item-circle-size,44rpx);text-align:center;border-radius:50%;font-size:var(--td-step-item-circle-font-size,28rpx)}.t-steps-item__icon{z-index:1;vertical-align:top;font-size:var(--td-font-size-base,28rpx);position:relative}.t-steps-item__dot{width:var(--td-step-item-dot-size,16rpx);height:var(--td-step-item-dot-size,16rpx);border-radius:50%;border-width:1px;border-style:solid;box-sizing:border-box}.t-steps-item__content{text-align:center}.t-steps-item__content--horizontal{max-width:80px;margin-top:16rpx}.t-steps-item__content--vertical{margin-left:16rpx;flex:1;padding-bottom:32rpx}.t-steps-item__content--vertical.t-steps-item__content--last{padding-bottom:0}.t-steps-item__title{position:relative;line-height:var(--td-step-item-circle-size,44rpx);font-size:var(--td-font-size-base,28rpx)}.t-steps-item__title--process{font-weight:600}.t-steps-item__title--vertical{text-align:left;display:flex;align-items:center;justify-content:space-between;margin-bottom:8rpx}.t-steps-item__description{color:var(--td-step-item-description-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));line-height:40rpx;font-size:var(--td-font-size-s,24rpx)}.t-steps-item__description--vertical{text-align:left}.t-steps-item__extra:not(:empty){margin-top:16rpx}.t-steps-item__line{background-color:var(--td-step-item-line-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));content:'';display:block;position:absolute}.t-steps-item__line--horizontal{height:1px;transform:translateY(-50%);width:calc(100% - 32rpx - var(--td-step-item-circle-size,44rpx));top:calc(var(--td-step-item-circle-size,44rpx)/ 2 + 1px);left:calc(50% + var(--td-step-item-circle-size,44rpx)/ 2 + 16rpx)}.t-steps-item__line--horizontal.t-steps-item__line--dot{top:calc(var(--td-step-item-dot-size,16rpx)/ 2)}.t-steps-item__line--finish,.t-steps-item__line--reverse.t-steps-item__line--process{background-color:var(--td-step-item-finish-line-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-steps-item__line--vertical{height:calc(100% - 32rpx - var(--td-step-item-circle-size,44rpx));width:1px;transform:translateX(-50%);left:calc(var(--td-step-item-circle-size,44rpx)/ 2);top:calc(var(--td-step-item-circle-size,44rpx) + 16rpx)}.t-steps-item__line--vertical.t-steps-item__line--dot{top:var(--td-step-item-circle-size,44rpx);height:calc(100% - var(--td-step-item-circle-size,44rpx))}:host{flex:1;vertical-align:top;position:relative;align-self:flex-start;width:inherit}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/step-item/type.d.ts
new file mode 100644
index 0000000..ca5e4b4
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/type.d.ts
@@ -0,0 +1,19 @@
+export interface TdStepItemProps {
+ content?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ icon?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ status?: {
+ type: StringConstructor;
+ value?: StepStatus;
+ };
+ title?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export declare type StepStatus = 'default' | 'process' | 'finish' | 'error';
diff --git a/miniprogram_npm/tdesign-miniprogram/step-item/type.js b/miniprogram_npm/tdesign-miniprogram/step-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/step-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/props.d.ts b/miniprogram_npm/tdesign-miniprogram/stepper/props.d.ts
new file mode 100644
index 0000000..7f9e104
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStepperProps } from './type';
+declare const props: TdStepperProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/props.js b/miniprogram_npm/tdesign-miniprogram/stepper/props.js
new file mode 100644
index 0000000..f72fa3e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/props.js
@@ -0,0 +1 @@
+const props={disableInput:{type:Boolean,value:!1},disabled:{type:null,value:void 0},inputWidth:{type:Number},integer:{type:Boolean,value:!0},max:{type:Number,value:100},min:{type:Number,value:0},size:{type:String,value:"medium"},step:{type:Number,value:1},theme:{type:String,value:"normal"},value:{type:null,value:null},defaultValue:{type:null,value:0}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.d.ts b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.d.ts
new file mode 100644
index 0000000..3938064
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.d.ts
@@ -0,0 +1,78 @@
+import { SuperComponent } from '../common/src/index';
+export default class Stepper extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ disableInput?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inputWidth?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ integer?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ min?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: import("../common/common").SizeEnum;
+ };
+ step?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: "outline" | "filled" | "normal";
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(v: any): void;
+ };
+ data: {
+ currentValue: number;
+ classPrefix: string;
+ prefix: string;
+ };
+ lifetimes: {
+ attached(): void;
+ };
+ methods: {
+ isDisabled(type: any): boolean;
+ getLen(num: number): number;
+ add(a: number, b: number): number;
+ format(value: any): string;
+ setValue(value: any): void;
+ minusValue(): boolean;
+ plusValue(): boolean;
+ filterIllegalChar(value: string | number): string;
+ handleFocus(e: any): void;
+ handleInput(e: any): void;
+ handleBlur(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.js b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.js
new file mode 100644
index 0000000..a07dfb9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.js
@@ -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}-stepper`;let Stepper=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-input`,`${prefix}-class-minus`,`${prefix}-class-plus`],this.properties=Object.assign({},props),this.controlledProps=[{key:"value",event:"change"}],this.observers={value(e){this.preValue=Number(e),this.setData({currentValue:this.format(Number(e))})}},this.data={currentValue:0,classPrefix:name,prefix:prefix},this.lifetimes={attached(){const{value:e,min:t}=this.properties;this.setData({currentValue:e?Number(e):t})}},this.methods={isDisabled(e){const{min:t,max:s,disabled:r}=this.properties,{currentValue:i}=this.data;return!!r||("minus"===e&&i<=t||"plus"===e&&i>=s)},getLen(e){const t=e.toString();return-1===t.indexOf(".")?0:t.split(".")[1].length},add(e,t){const s=Math.max(this.getLen(e),this.getLen(t)),r=Math.pow(10,s);return Math.round(e*r+t*r)/r},format(e){const{min:t,max:s,step:r}=this.properties,i=Math.max(this.getLen(r),this.getLen(e));return Math.max(Math.min(s,e,Number.MAX_SAFE_INTEGER),t,Number.MIN_SAFE_INTEGER).toFixed(i)},setValue(e){e=this.format(e),this.preValue!==e&&(this.preValue=e,this._trigger("change",{value:Number(e)}))},minusValue(){if(this.isDisabled("minus"))return this.triggerEvent("overlimit",{type:"minus"}),!1;const{currentValue:e,step:t}=this.data;this.setValue(this.add(e,-t))},plusValue(){if(this.isDisabled("plus"))return this.triggerEvent("overlimit",{type:"plus"}),!1;const{currentValue:e,step:t}=this.data;this.setValue(this.add(e,t))},filterIllegalChar(e){const t=String(e).replace(/[^0-9.]/g,""),s=t.indexOf(".");return this.properties.integer&&-1!==s?t.split(".")[0]:this.properties.integer||-1===s||s===t.lastIndexOf(".")?t:t.split(".",2).join(".")},handleFocus(e){const{value:t}=e.detail;this.triggerEvent("focus",{value:t})},handleInput(e){const{value:t}=e.detail;if(""===t)return;const s=this.filterIllegalChar(t);this.setData({currentValue:s}),this.triggerEvent("input",{value:s})},handleBlur(e){const{value:t}=e.detail,s=this.format(t);this.setValue(s),this.triggerEvent("blur",{value:s})}}}};Stepper=__decorate([wxComponent()],Stepper);export default Stepper;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.json b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.json
new file mode 100644
index 0000000..eacfbb7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-cell":"../cell/cell","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxml b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxml
new file mode 100644
index 0000000..ba2b243
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxss b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxss
new file mode 100644
index 0000000..97b7eb2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/stepper.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-stepper{display:flex;align-items:center;color:var(--td-stepper-input-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-stepper__input{margin:0 8rpx;text-align:center;vertical-align:top;height:inherit;min-height:inherit}.t-stepper__minus,.t-stepper__plus{padding:8rpx;box-sizing:border-box}.t-stepper__input,.t-stepper__minus-icon,.t-stepper__plus-icon{color:inherit}.t-stepper__input--filled,.t-stepper__input--normal,.t-stepper__input--outline{height:inherit;box-sizing:border-box}.t-stepper--small{height:40rpx;font-size:20rpx}.t-stepper--medium{height:48rpx;font-size:24rpx}.t-stepper--large{height:56rpx;font-size:32rpx}.t-stepper__input--small{width:68rpx}.t-stepper__input--medium{height:48rpx;width:76rpx}.t-stepper__input--large{width:90rpx}.t-stepper__icon--small{width:40rpx;height:40rpx;font-size:24rpx}.t-stepper__icon--medium{width:48rpx;height:48rpx;font-size:32rpx}.t-stepper__icon--large{width:56rpx;height:56rpx;font-size:40rpx}.t-stepper__minus--outline,.t-stepper__plus--outline{border:2rpx solid var(--td-stepper-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-stepper__input--outline{border:none;border-top:2rpx solid var(--td-stepper-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)));border-bottom:2rpx solid var(--td-stepper-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-stepper__minus--filled,.t-stepper__minus--outline{border-radius:0;border-top-left-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx));border-bottom-left-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx))}.t-stepper__plus--filled,.t-stepper__plus--outline{border-radius:0;border-top-right-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx));border-bottom-right-radius:var(--td-stepper-border-radius,var(--td-radius-small,6rpx))}.t-stepper__minus--filled,.t-stepper__plus--filled{background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3))}.t-stepper__input--filled{background-color:var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3));margin:0 8rpx}.t-stepper__input--filled .t-stepper__input{margin:0}.t-stepper--normal-disabled{color:var(--td-stepper-input-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-stepper--filled-disabled,.t-stepper--outline-disabled{color:var(--td-stepper-input-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-stepper-input-disabled-bg,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/type.d.ts b/miniprogram_npm/tdesign-miniprogram/stepper/type.d.ts
new file mode 100644
index 0000000..31499e7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/type.d.ts
@@ -0,0 +1,47 @@
+import { SizeEnum } from '../common/common';
+export interface TdStepperProps {
+ disableInput?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ inputWidth?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ integer?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ min?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: SizeEnum;
+ };
+ step?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'normal' | 'filled' | 'outline';
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/stepper/type.js b/miniprogram_npm/tdesign-miniprogram/stepper/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/stepper/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/props.d.ts b/miniprogram_npm/tdesign-miniprogram/steps/props.d.ts
new file mode 100644
index 0000000..fef4049
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStepsProps } from './type';
+declare const props: TdStepsProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/props.js b/miniprogram_npm/tdesign-miniprogram/steps/props.js
new file mode 100644
index 0000000..706db9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/props.js
@@ -0,0 +1 @@
+const props={current:{type:null,value:null},defaultCurrent:{type:null},currentStatus:{type:String,value:"process"},layout:{type:String,value:"horizontal"},readonly:{type:Boolean,value:!1},sequence:{type:String,value:"positive"},theme:{type:String,value:"default"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.d.ts b/miniprogram_npm/tdesign-miniprogram/steps/steps.d.ts
new file mode 100644
index 0000000..9f4edc0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.d.ts
@@ -0,0 +1,22 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Steps extends SuperComponent {
+ relations: RelationsOptions;
+ externalClasses: string[];
+ properties: import("./type").TdStepsProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ observers: {
+ 'current, theme, sequence'(): void;
+ };
+ methods: {
+ updateChildren(): void;
+ updateLastChid(): void;
+ handleClick(index: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.js b/miniprogram_npm/tdesign-miniprogram/steps/steps.js
new file mode 100644
index 0000000..0ed927a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-steps`;let Steps=class extends SuperComponent{constructor(){super(...arguments),this.relations={"../step-item/step-item":{type:"child",linked(e){this.updateChildren();const{readonly:t}=this.data;e.setData({readonly:t})},unlinked(){this.updateLastChid()}}},this.externalClasses=[`${prefix}-class`],this.properties=props,this.controlledProps=[{key:"current",event:"change"}],this.data={prefix:prefix,classPrefix:name},this.observers={"current, theme, sequence"(){this.updateChildren()}},this.methods={updateChildren(){const e=this.$children;e.forEach(((t,s)=>{t.updateStatus(Object.assign({index:s,items:e},this.data))}))},updateLastChid(){const e=this.$children;e.forEach(((t,s)=>t.setData({isLastChild:s===e.length-1})))},handleClick(e){if(!this.data.readonly){const t=this.data.current;this._trigger("change",{previous:t,current:e})}}}}};Steps=__decorate([wxComponent()],Steps);export default Steps;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.json b/miniprogram_npm/tdesign-miniprogram/steps/steps.json
new file mode 100644
index 0000000..d2480dd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-step":"../step-item/step-item"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.wxml b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxml
new file mode 100644
index 0000000..56b7a9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/steps.wxss b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxss
new file mode 100644
index 0000000..be96c07
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/steps.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';:host{display:flex}.t-step--vertical{padding-right:32rpx}.t-steps{display:flex;width:100%}.t-steps--vertical{flex-direction:column}.t-steps--reverse{flex-direction:row-reverse}.t-steps--vertical.t-steps--reverse{flex-direction:column-reverse}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/type.d.ts b/miniprogram_npm/tdesign-miniprogram/steps/type.d.ts
new file mode 100644
index 0000000..d0e9147
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdStepsProps {
+ current?: {
+ type: null;
+ value?: string | number;
+ };
+ defaultCurrent?: {
+ type: null;
+ value?: string | number;
+ };
+ currentStatus?: {
+ type: StringConstructor;
+ value?: 'default' | 'process' | 'finish' | 'error';
+ };
+ layout?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ sequence?: {
+ type: StringConstructor;
+ value?: 'positive' | 'reverse';
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'dot';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/steps/type.js b/miniprogram_npm/tdesign-miniprogram/steps/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/steps/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/index.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/index.d.ts
new file mode 100644
index 0000000..a6df66d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/index.d.ts
@@ -0,0 +1,3 @@
+export * from './props';
+export * from './type';
+export * from './sticky';
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/index.js b/miniprogram_npm/tdesign-miniprogram/sticky/index.js
new file mode 100644
index 0000000..af29307
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";export*from"./sticky";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/props.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/props.d.ts
new file mode 100644
index 0000000..175af72
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/props.d.ts
@@ -0,0 +1,3 @@
+import { TdStickyProps } from './type';
+declare const props: TdStickyProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/props.js b/miniprogram_npm/tdesign-miniprogram/sticky/props.js
new file mode 100644
index 0000000..cdab8a5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/props.js
@@ -0,0 +1 @@
+const props={container:{type:null},disabled:{type:Boolean,value:!1},offsetTop:{type:null,value:0},zIndex:{type:Number,value:99}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.d.ts
new file mode 100644
index 0000000..89ba546
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.d.ts
@@ -0,0 +1,30 @@
+import { SuperComponent } from '../common/src/index';
+import type { TdStickyProps } from './type';
+export interface StickyProps extends TdStickyProps {
+}
+export default class Sticky extends SuperComponent {
+ externalClasses: string[];
+ properties: TdStickyProps;
+ behaviors: string[];
+ observers: {
+ 'offsetTop, disabled, container'(): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ containerStyle: string;
+ contentStyle: string;
+ };
+ ready(): void;
+ methods: {
+ onScroll(event?: {
+ scrollTop: number;
+ }): void;
+ setDataAfterDiff(data: {
+ isFixed: boolean;
+ height?: number;
+ transform?: number;
+ }): void;
+ getContainerRect(): Promise;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.js b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.js
new file mode 100644
index 0000000..3d505ca
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import pageScrollMixin from"../mixins/page-scroll";import{getRect}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-sticky`,ContainerClass=`.${name}`;let Sticky=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-content`],this.properties=props,this.behaviors=[pageScrollMixin()],this.observers={"offsetTop, disabled, container"(){this.onScroll()}},this.data={prefix:prefix,classPrefix:name,containerStyle:"",contentStyle:""},this.methods={onScroll(t){const{scrollTop:e}=t||{},{container:i,offsetTop:o,disabled:s}=this.properties;s?this.setDataAfterDiff({isFixed:!1,transform:0}):(this.scrollTop=e||this.scrollTop,"function"!=typeof i?getRect(this,ContainerClass).then((t=>{t&&(o>=t.top?(this.setDataAfterDiff({isFixed:!0,height:t.height}),this.transform=0):this.setDataAfterDiff({isFixed:!1}))})):Promise.all([getRect(this,ContainerClass),this.getContainerRect()]).then((([t,e])=>{t&&e&&(o+t.height>e.height+e.top?this.setDataAfterDiff({isFixed:!1,transform:e.height-t.height}):o>=t.top?this.setDataAfterDiff({isFixed:!0,height:t.height,transform:0}):this.setDataAfterDiff({isFixed:!1,transform:0}))})))},setDataAfterDiff(t){const{offsetTop:e}=this.properties,{containerStyle:i,contentStyle:o}=this.data,{isFixed:s,height:r,transform:n}=t;wx.nextTick((()=>{let t="",a="";if(s&&(t+=`height:${r}px;`,a+=`position:fixed;top:${e}px;left:0;right:0;`),n){const t=`translate3d(0, ${n}px, 0)`;a+=`-webkit-transform:${t};transform:${t};`}i===t&&o===a||this.setData({containerStyle:t,contentStyle:a}),this.triggerEvent("scroll",{scrollTop:this.scrollTop,isFixed:s})}))},getContainerRect(){const t=this.properties.container();return new Promise((e=>t.boundingClientRect(e).exec()))}}}ready(){this.onScroll()}};Sticky=__decorate([wxComponent()],Sticky);export default Sticky;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.json b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxml b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxml
new file mode 100644
index 0000000..802adb8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxss b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxss
new file mode 100644
index 0000000..d0fe63e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/sticky.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-sticky{position:relative}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/type.d.ts b/miniprogram_npm/tdesign-miniprogram/sticky/type.d.ts
new file mode 100644
index 0000000..36195d9
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/type.d.ts
@@ -0,0 +1,18 @@
+export interface TdStickyProps {
+ container?: {
+ type: undefined;
+ value?: null;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ offsetTop?: {
+ type: null;
+ value?: string | number;
+ };
+ zIndex?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/sticky/type.js b/miniprogram_npm/tdesign-miniprogram/sticky/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/sticky/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.d.ts b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.d.ts
new file mode 100644
index 0000000..9a3159c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwipeCellProps } from './type';
+declare const props: TdSwipeCellProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.js b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.js
new file mode 100644
index 0000000..cc244d5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/props.js
@@ -0,0 +1 @@
+const props={disabled:{type:Boolean},left:{type:Array},opened:{type:null,value:!1},right:{type:Array},style:{type:String,value:""}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.d.ts b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.d.ts
new file mode 100644
index 0000000..8faa283
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.d.ts
@@ -0,0 +1,31 @@
+import { SuperComponent } from '../common/src/index';
+export default class SwiperCell extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdSwipeCellProps;
+ data: {
+ prefix: string;
+ wrapperStyle: string;
+ closed: boolean;
+ classPrefix: string;
+ skipMove: boolean;
+ };
+ observers: {
+ 'left, right'(): void;
+ };
+ lifetimes: {
+ attached(): void;
+ ready(): void;
+ detached(): void;
+ };
+ setSwipeWidth(): void;
+ skipMove(): void;
+ catchMove(): void;
+ open(): void;
+ close(): void;
+ closeOther(): void;
+ onTap(): void;
+ onActionTap(event: any): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.js b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.js
new file mode 100644
index 0000000..42778fe
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect}from"../common/utils";import{getObserver}from"../common/wechat";let ARRAY=[];const{prefix:prefix}=config,name=`${prefix}-swipe-cell`,ContainerClass=`.${name}`;let SwiperCell=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,wrapperStyle:"",closed:!0,classPrefix:name,skipMove:!1},this.observers={"left, right"(){this.setSwipeWidth()}},this.lifetimes={attached(){ARRAY.push(this)},ready(){this.setSwipeWidth()},detached(){ARRAY=ARRAY.filter((e=>e!==this))}}}setSwipeWidth(){Promise.all([getRect(this,`${ContainerClass}__left`),getRect(this,`${ContainerClass}__right`)]).then((([e,t])=>{0!==e.width||0!==t.width||this._hasObserved||(this._hasObserved=!0,getObserver(this,`.${name}`).then((()=>{this.setSwipeWidth()}))),this.setData({leftWidth:e.width,rightWidth:t.width})}))}skipMove(){this.data.skipMove||this.setData({skipMove:!0})}catchMove(){this.data.skipMove&&this.setData({skipMove:!1})}open(){this.setData({opened:!0})}close(){this.setData({opened:!1})}closeOther(){ARRAY.filter((e=>e!==this)).forEach((e=>e.close()))}onTap(){this.close()}onActionTap(e){const{currentTarget:{dataset:{action:t}}}=e;this.triggerEvent("click",t)}};SwiperCell=__decorate([wxComponent()],SwiperCell);export default SwiperCell;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.json b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.json
new file mode 100644
index 0000000..9269b92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxml b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxml
new file mode 100644
index 0000000..3a3c776
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxml
@@ -0,0 +1 @@
+{{item.text}}{{item.text}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxs b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxs
new file mode 100644
index 0000000..14efbf6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxs
@@ -0,0 +1,185 @@
+var THRESHOLD = 0.3;
+var MIN_DISTANCE = 10;
+var owner;
+var state;
+
+var getState = function (ownerInstance) {
+ owner = ownerInstance;
+ state = owner.getState();
+ state.leftWidth = state.leftWidth || 0;
+ state.rightWidth = state.rightWidth || 0;
+ state.offset = state.offset || 0;
+ state.startOffset = state.startOffset || 0;
+ state.opened = state.opened || false;
+};
+
+var initRightWidth = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ state.rightWidth = newVal;
+ initOpen(ownerInstance);
+};
+
+var initLeftWidth = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ state.leftWidth = newVal;
+ initOpen(ownerInstance);
+};
+
+var initOpen = function (ownerInstance) {
+ getState(ownerInstance);
+ if (state.opened.constructor === 'Boolean') {
+ // opened为boolean类型,判断默认打开
+ if (state.opened && state.rightWidth > 0) {
+ swipeMove(-state.rightWidth);
+ } else if (state.opened && state.leftWidth > 0) {
+ swipeMove(state.leftWidth);
+ }
+ }
+
+ if (state.opened.constructor === 'Array') {
+ // opened为array类型,判断默认打开,同时设定左右action时优先打开右边
+ if (state.opened[1] && state.rightWidth > 0) {
+ swipeMove(-state.rightWidth);
+ } else if (state.opened[0] && state.leftWidth > 0) {
+ swipeMove(state.leftWidth);
+ }
+ }
+};
+
+var resetTouchStatus = function () {
+ state.direction = '';
+ state.deltaX = 0;
+ state.deltaY = 0;
+ state.offsetX = 0;
+ state.offsetY = 0;
+};
+
+var touchMove = function (event) {
+ var touchPoint = event.touches[0];
+ state.deltaX = touchPoint.clientX - state.startX;
+ state.deltaY = touchPoint.clientY - state.startY;
+ state.offsetX = Math.abs(state.deltaX);
+ state.offsetY = Math.abs(state.deltaY);
+ state.direction = state.direction || getDirection(state.offsetX, state.offsetY);
+};
+
+var getDirection = function (x, y) {
+ if (x > y && x > MIN_DISTANCE) {
+ return 'horizontal';
+ }
+ if (y > x && y > MIN_DISTANCE) {
+ return 'vertical';
+ }
+ return '';
+};
+
+var range = function (num, min, max) {
+ return Math.min(Math.max(num, min), max);
+};
+
+var swipeMove = function (_offset) {
+ if (_offset === undefined) _offset = 0;
+ state.offset = range(_offset, -state.rightWidth, +state.leftWidth);
+ var transform = 'translate3d(' + state.offset + 'px, 0, 0)';
+ var transition = state.dragging ? 'none' : 'transform .6s cubic-bezier(0.18, 0.89, 0.32, 1)';
+ owner.selectComponent('#wrapper').setStyle({
+ '-webkit-transform': transform,
+ '-webkit-transition': transition,
+ transform: transform,
+ transition: transition,
+ });
+};
+
+var close = function () {
+ swipeMove(0);
+};
+
+var onCloseChange = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ if (newVal === oldVal) return;
+ if (newVal) {
+ close();
+ }
+};
+
+var onOpenedChange = function (newVal, oldVal, ownerInstance) {
+ getState(ownerInstance);
+ state.opened = newVal;
+ if (newVal === oldVal) return;
+ if (!newVal) {
+ close();
+ }
+};
+
+var touchStart = function (event) {
+ resetTouchStatus();
+ state.startOffset = state.offset;
+ var touchPoint = event.touches[0];
+ state.startX = touchPoint.clientX;
+ state.startY = touchPoint.clientY;
+ owner.callMethod('closeOther');
+};
+
+var startDrag = function (event, ownerInstance) {
+ ownerInstance.callMethod('catchMove');
+ getState(ownerInstance);
+ touchStart(event);
+};
+
+var onDrag = function (event, ownerInstance) {
+ getState(ownerInstance);
+ touchMove(event);
+ if (state.direction === 'vertical') {
+ ownerInstance.callMethod('skipMove');
+ }
+ if (state.direction !== 'horizontal') {
+ return;
+ }
+ if (!state.dragging) {
+ ownerInstance.triggerEvent('dragstart');
+ }
+ state.dragging = true;
+ swipeMove(state.startOffset + state.deltaX);
+ return false;
+};
+
+var open = function (position) {
+ var _offset = position === 'left' ? +state.leftWidth : -state.rightWidth;
+ owner.callMethod('open', { position: position });
+ swipeMove(_offset);
+};
+
+var endDrag = function (event, ownerInstance) {
+ getState(ownerInstance);
+ state.dragging = false;
+ // 左/右侧有可滑动区域,且当前不是已open状态,且滑动幅度超过阈值时open左/右侧(滚动到该侧的最边上)
+ if (
+ +state.rightWidth > 0 &&
+ -state.startOffset < +state.rightWidth &&
+ -state.offset > +state.rightWidth * THRESHOLD
+ ) {
+ open('right');
+ } else if (
+ +state.leftWidth > 0 &&
+ state.startOffset < +state.leftWidth &&
+ state.offset > +state.leftWidth * THRESHOLD
+ ) {
+ open('left');
+ } else {
+ // 仅在有发生侧滑的情况下自动关闭(由js控制是否异步关闭)
+ if (state.startOffset !== state.offset) {
+ close();
+ }
+ }
+ ownerInstance.triggerEvent('dragend');
+};
+
+module.exports = {
+ initLeftWidth: initLeftWidth,
+ initRightWidth: initRightWidth,
+ startDrag: startDrag,
+ onDrag: onDrag,
+ endDrag: endDrag,
+ onCloseChange: onCloseChange,
+ onOpenedChange: onOpenedChange,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxss b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxss
new file mode 100644
index 0000000..6e5b164
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/swipe-cell.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-swipe-cell{position:relative;overflow:hidden}.t-swipe-cell__left,.t-swipe-cell__right{position:absolute;top:0;height:100%}.t-swipe-cell__left{left:0;transform:translate3d(-100%,0,0)}.t-swipe-cell__right{right:0;transform:translate3d(100%,0,0)}.t-swipe-cell__content{display:inline-flex;justify-content:center;align-items:center;padding:0 var(--td-spacer-2,32rpx)}.t-swipe-cell__icon{font-size:var(--td-font-size-xl,40rpx)}.t-swipe-cell__icon+.t-swipe-cell__text:not(:empty){margin-left:var(--td-spacer,16rpx);font-size:var(--td-font-size-base,28rpx);line-height:44rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.d.ts b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.d.ts
new file mode 100644
index 0000000..de819ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.d.ts
@@ -0,0 +1,30 @@
+export interface TdSwipeCellProps {
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ left?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ opened?: {
+ type: null;
+ value?: boolean | Array;
+ };
+ right?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ style?: {
+ type: StringConstructor;
+ value?: string;
+ };
+}
+export interface SwipeActionItem {
+ text?: string;
+ icon?: string | object;
+ className?: string;
+ style?: string;
+ onClick?: () => void;
+ [key: string]: any;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.js b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swipe-cell/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.d.ts
new file mode 100644
index 0000000..5dcaf6b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.d.ts
@@ -0,0 +1,3 @@
+export * from './type';
+export * from './props';
+export * from './swiper-nav';
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.js
new file mode 100644
index 0000000..315c833
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/index.js
@@ -0,0 +1 @@
+export*from"./type";export*from"./props";export*from"./swiper-nav";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.d.ts
new file mode 100644
index 0000000..70971ea
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwiperNavProps } from './type';
+declare const props: TdSwiperNavProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.js
new file mode 100644
index 0000000..adbb8a7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/props.js
@@ -0,0 +1 @@
+const props={current:{type:Number,value:0},direction:{type:String,value:"horizontal"},minShowNum:{type:Number,value:2},paginationPosition:{type:String,value:"bottom"},showControls:{type:Boolean,value:!1},total:{type:Number,value:0},type:{type:String,value:"dots"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.d.ts
new file mode 100644
index 0000000..ce01166
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.d.ts
@@ -0,0 +1,45 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+import { TdSwiperNavProps } from './type';
+export interface SwiperNavProps extends TdSwiperNavProps {
+}
+export default class SwiperNav extends SuperComponent {
+ externalClasses: string[];
+ properties: {
+ current: {
+ type: NumberConstructor;
+ value: number;
+ };
+ total: {
+ type: NumberConstructor;
+ value: number;
+ };
+ type: {
+ type: StringConstructor;
+ value: string;
+ };
+ minShowNum: {
+ type: NumberConstructor;
+ value: number;
+ };
+ showControls: {
+ type: BooleanConstructor;
+ value: boolean;
+ };
+ direction: {
+ type: StringConstructor;
+ value: string;
+ };
+ paginationPosition: {
+ type: StringConstructor;
+ value: string;
+ };
+ };
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ methods: {
+ nav(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.js
new file mode 100644
index 0000000..ad4da4f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.js
@@ -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}-swiper-nav`;let SwiperNav=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.properties={current:{type:Number,value:0},total:{type:Number,value:0},type:{type:String,value:"dots"},minShowNum:{type:Number,value:2},showControls:{type:Boolean,value:!1},direction:{type:String,value:"horizontal"},paginationPosition:{type:String,value:"bottom"}},this.relations={"../swiper/swiper":{type:"parent"}},this.data={prefix:prefix,classPrefix:name},this.methods={nav(e){var t;const{dir:r}=e.target.dataset;this.triggerEvent("nav-btn-change",{dir:r,source:"nav"}),this.$parent&&(null===(t=this.$parent)||void 0===t||t.doNavBtnChange(r,"nav"))}}}};SwiperNav=__decorate([wxComponent()],SwiperNav);export default SwiperNav;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.json b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.json
new file mode 100644
index 0000000..1bbd8ba
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared"}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxml b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxml
new file mode 100644
index 0000000..2f3bf1a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxss b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxss
new file mode 100644
index 0000000..965a757
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/swiper-nav.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-swiper-nav__dots,.t-swiper-nav__dots-bar{display:flex;flex-direction:row}.t-swiper-nav__dots-bar-item,.t-swiper-nav__dots-item{width:var(--td-swiper-nav-dot-size,12rpx);height:var(--td-swiper-nav-dot-size,12rpx);background:var(--td-swiper-nav-dot-color,var(--td-font-white-2,rgba(255,255,255,.55)));border-radius:50%;margin:0 10rpx;transition:all .4s ease-in}.t-swiper-nav__dots-bar-item--vertical,.t-swiper-nav__dots-item--vertical{margin:10rpx 0}.t-swiper-nav__dots-bar-item--active,.t-swiper-nav__dots-item--active{background-color:var(--td-swiper-nav-dot-active-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-swiper-nav__dots-bar-item--vertical.t-swiper-nav__dots-bar-item--active{width:var(--td-swiper-nav-dot-size,12rpx);height:var(--td-swiper-nav-dots-bar-active-width,40rpx)}.t-swiper-nav__dots-bar-item--active{width:var(--td-swiper-nav-dots-bar-active-width,40rpx);border-radius:calc(var(--td-swiper-nav-dot-size,12rpx)/ 2);background-color:var(--td-swiper-nav-dot-active-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)))}.t-swiper-nav--left{position:absolute;left:24rpx;top:50%;transform:translateY(-50%)}.t-swiper-nav--right{position:absolute;right:24rpx;top:50%;transform:translateY(-50%)}.t-swiper-nav--top-left{position:absolute;top:24rpx;left:24rpx}.t-swiper-nav--top{position:absolute;left:50%;top:24rpx;transform:translateX(-50%)}.t-swiper-nav--top-right{position:absolute;top:24rpx;right:24rpx}.t-swiper-nav--bottom-left{position:absolute;left:24rpx;bottom:24rpx}.t-swiper-nav--bottom{position:absolute;left:50%;bottom:24rpx;transform:translateX(-50%)}.t-swiper-nav--bottom-right{position:absolute;right:24rpx;bottom:24rpx}.t-swiper-nav--vertical{flex-direction:column}.t-swiper-nav__fraction{padding:0 16rpx;height:var(--td-swiper-nav-fraction-height,48rpx);line-height:var(--td-swiper-nav-fraction-height,48rpx);border-radius:calc(var(--td-swiper-nav-fraction-height,48rpx)/ 2);background:var(--td-swiper-nav-fraction-bg-color,var(--td-font-gray-3,rgba(0,0,0,.4)));color:var(--td-swiper-nav-fraction-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));font-size:var(--td-swiper-nav-fraction-font-size,24rpx)}.t-swiper-nav__btn{width:100%;position:absolute;top:50%;transform:translateY(-50%)}.t-swiper-nav__btn--next,.t-swiper-nav__btn--prev{position:absolute;top:50%;transform:translateY(-50%);width:var(--td-swiper-nav-btn-size,48rpx);height:var(--td-swiper-nav-btn-size,48rpx);border-radius:50%;background:var(--td-swiper-nav-btn-bg-color,var(--td-font-gray-3,rgba(0,0,0,.4)))}.t-swiper-nav__btn--next::after,.t-swiper-nav__btn--prev::after{position:absolute;left:50%;top:50%;display:block;content:'';width:12rpx;height:12rpx;border-color:var(--td-swiper-nav-btn-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));border-style:solid}.t-swiper-nav__btn--prev{left:30rpx}.t-swiper-nav__btn--prev::after{margin-left:4rpx;border-width:2rpx 0 0 2rpx;transform:translate(-50%,-50%) rotateZ(-45deg)}.t-swiper-nav__btn--next{right:30rpx}.t-swiper-nav__btn--next::after{margin-left:-4rpx;border-width:2rpx 2rpx 0 0;transform:translate(-50%,-50%) rotateZ(45deg)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.d.ts
new file mode 100644
index 0000000..5fa2712
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.d.ts
@@ -0,0 +1,31 @@
+export interface TdSwiperNavProps {
+ current?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ direction?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ minShowNum?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ paginationPosition?: {
+ type: StringConstructor;
+ value?: 'top-left' | 'top' | 'top-right' | 'bottom-left' | 'bottom' | 'bottom-right';
+ };
+ showControls?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ total?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ type?: {
+ type: StringConstructor;
+ value?: SwiperNavigationType;
+ };
+}
+export declare type SwiperNavigationType = 'dots' | 'dots-bar' | 'fraction';
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.js b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper-nav/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/index.wxs b/miniprogram_npm/tdesign-miniprogram/swiper/index.wxs
new file mode 100644
index 0000000..41eca3d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/index.wxs
@@ -0,0 +1,25 @@
+function isPrev(current, index, list) {
+ return (current - 1 + list.length) % list.length === index;
+}
+
+function isNext(current, index, list) {
+ return (current + 1 + list.length) % list.length === index;
+}
+
+function getImageClass(prefix, current, index, list) {
+ var arr = [prefix + '-swiper__image-host', prefix + '-swiper__image', prefix + '-class-image'];
+
+ if (isPrev(current, index, list)) {
+ arr.push(prefix + '-class-prev-image');
+ }
+
+ if (isNext(current, index, list)) {
+ arr.push(prefix + '-class-next-image');
+ }
+
+ return arr.join(' ');
+}
+
+module.exports.isPrev = isPrev;
+module.exports.isNext = isNext;
+module.exports.getImageClass = getImageClass;
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/props.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper/props.d.ts
new file mode 100644
index 0000000..399c9af
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwiperProps } from './type';
+declare const props: TdSwiperProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/props.js b/miniprogram_npm/tdesign-miniprogram/swiper/props.js
new file mode 100644
index 0000000..eb4c100
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/props.js
@@ -0,0 +1 @@
+const props={autoplay:{type:Boolean,value:!0},current:{type:Number,value:0},direction:{type:String,value:"horizontal"},displayMultipleItems:{type:Number,value:1},duration:{type:Number,value:300},easingFunction:{type:String,value:"default"},height:{type:null,value:192},imageProps:{type:Object},interval:{type:Number,value:5e3},list:{type:Array},loop:{type:Boolean,value:!0},navigation:{type:null,value:!0},nextMargin:{type:null,value:0},paginationPosition:{type:String,value:"bottom"},previousMargin:{type:null,value:0},snapToEdge:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.d.ts
new file mode 100644
index 0000000..e653a57
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Swiper extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdSwiperProps;
+ observers: {
+ navCurrent(v: any): void;
+ };
+ $nav: any;
+ relations: RelationsOptions;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ updateNav(currentValue: any): void;
+ onTap(e: any): void;
+ onChange(e: any): void;
+ onNavBtnChange(e: any): void;
+ doNavBtnChange(dir: any, source: any): void;
+ onImageLoad(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.js b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.js
new file mode 100644
index 0000000..a5c71c0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.js
@@ -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}-swiper`;let Swiper=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-nav`,`${prefix}-class-image`,`${prefix}-class-prev-image`,`${prefix}-class-next-image`],this.options={multipleSlots:!0},this.properties=props,this.observers={navCurrent(t){this.updateNav(t)}},this.$nav=null,this.relations={"../swiper-nav/swiper-nav":{type:"child"}},this.data={prefix:prefix,classPrefix:name},this.lifetimes={ready(){const{current:t}=this.properties;this.setData({navCurrent:t})}},this.methods={updateNav(t){var e;if(this.data.navigation)return;const i=null===(e=this.getRelationNodes("./swiper-nav"))||void 0===e?void 0:e[0];if(!i)return;const{direction:r,paginationPosition:n,list:s}=this.properties;i.setData({current:t,total:s.length,direction:r,paginationPosition:n})},onTap(t){const{index:e}=t.currentTarget.dataset;this.triggerEvent("click",{index:e})},onChange(t){const{current:e,source:i}=t.detail;this.setData({navCurrent:e}),this.triggerEvent("change",{current:e,source:i})},onNavBtnChange(t){const{dir:e,source:i}=t.detail;this.doNavBtnChange(e,i)},doNavBtnChange(t,e){const{current:i,list:r,loop:n}=this.data,s=r.length;let o="next"===t?i+1:i-1;o=n?"next"===t?(i+1)%s:(i-1+s)%s:o<0||o>=s?i:o,o!==i&&(this.setData({current:o}),this.triggerEvent("change",{current:o,source:e}))},onImageLoad(t){this.triggerEvent("image-load",{index:t.target.dataset.custom})}}}};Swiper=__decorate([wxComponent()],Swiper);export default Swiper;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.json b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.json
new file mode 100644
index 0000000..fd6447e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-swiper-nav":"../swiper-nav/swiper-nav","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxml b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxml
new file mode 100644
index 0000000..0d55e92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxss b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxss
new file mode 100644
index 0000000..edfd003
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/swiper.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-swiper{position:relative}.t-swiper-host{border-radius:var(--td-swiper-radius,var(--td-radius-large,18rpx));overflow:hidden;transform:translateY(0)}.t-swiper__item{display:flex;align-items:center;box-sizing:border-box;padding:var(--td-swiper-item-padding,0)}.t-swiper__image{width:100%;transition:all .3s ease}.t-swiper__image-host{width:100%}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/type.d.ts b/miniprogram_npm/tdesign-miniprogram/swiper/type.d.ts
new file mode 100644
index 0000000..2c4a1ce
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/type.d.ts
@@ -0,0 +1,71 @@
+import { SwiperNavProps } from '../swiper-nav/index';
+export interface TdSwiperProps {
+ autoplay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ current?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ direction?: {
+ type: StringConstructor;
+ value?: 'horizontal' | 'vertical';
+ };
+ displayMultipleItems?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ easingFunction?: {
+ type: StringConstructor;
+ value?: 'default' | 'linear' | 'easeInCubic' | 'easeOutCubic' | 'easeInOutCubic';
+ };
+ height?: {
+ type: null;
+ value?: string | number;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ interval?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ list?: {
+ type: ArrayConstructor;
+ value?: string[] | SwiperList[];
+ };
+ loop?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ navigation?: {
+ type: null;
+ value?: SwiperNavProps | boolean;
+ };
+ nextMargin?: {
+ type: null;
+ value?: string | number;
+ };
+ paginationPosition?: {
+ type: StringConstructor;
+ value?: 'top-left' | 'top' | 'top-right' | 'bottom-left' | 'bottom' | 'bottom-right';
+ };
+ previousMargin?: {
+ type: null;
+ value?: string | number;
+ };
+ snapToEdge?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
+export interface SwiperList {
+ value: string;
+ ariaLabel: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/swiper/type.js b/miniprogram_npm/tdesign-miniprogram/swiper/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/swiper/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/props.d.ts b/miniprogram_npm/tdesign-miniprogram/switch/props.d.ts
new file mode 100644
index 0000000..489f18a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/props.d.ts
@@ -0,0 +1,3 @@
+import { TdSwitchProps } from './type';
+declare const props: TdSwitchProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/props.js b/miniprogram_npm/tdesign-miniprogram/switch/props.js
new file mode 100644
index 0000000..a99a069
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/props.js
@@ -0,0 +1 @@
+const props={customValue:{type:Array,value:[!0,!1]},disabled:{type:null,value:void 0},icon:{type:Array,value:[]},label:{type:Array,value:[]},loading:{type:Boolean,value:!1},size:{type:String,value:"medium"},value:{type:null,value:null},defaultValue:{type:null,value:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.d.ts b/miniprogram_npm/tdesign-miniprogram/switch/switch.d.ts
new file mode 100644
index 0000000..7db8002
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.d.ts
@@ -0,0 +1,21 @@
+import { SuperComponent } from '../common/src/index';
+export default class Switch extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ properties: import("./type").TdSwitchProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ checked: boolean;
+ };
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(val: any): void;
+ };
+ methods: {
+ handleSwitch(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.js b/miniprogram_npm/tdesign-miniprogram/switch/switch.js
new file mode 100644
index 0000000..e951498
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-switch`;let Switch=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=["t-class","t-class-label","t-class-body","t-class-dot"],this.behaviors=["wx://form-field"],this.properties=props,this.data={prefix:prefix,classPrefix:name,checked:!1},this.controlledProps=[{key:"value",event:"change"}],this.observers={value(e){const[t]=this.data.customValue;this.setData({checked:e===t})}},this.methods={handleSwitch(){const{loading:e,disabled:t,value:s,customValue:o}=this.data,[i,r]=o;e||t||this._trigger("change",{value:s===i?r:i})}}}};Switch=__decorate([wxComponent()],Switch);export default Switch;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.json b/miniprogram_npm/tdesign-miniprogram/switch/switch.json
new file mode 100644
index 0000000..18ba7f1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-loading":"../loading/loading"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.wxml b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxml
new file mode 100644
index 0000000..fa792d2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxml
@@ -0,0 +1 @@
+{{checked ? label[0] : label[1]}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/switch.wxss b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxss
new file mode 100644
index 0000000..66e43fe
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/switch.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-switch{display:flex;align-items:center;overflow:hidden}.t-switch__label{position:absolute;top:0;left:0;bottom:0;width:100%;display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;font-size:var(--td-switch-label-font-size,28rpx);color:var(--td-switch-label-color,var(--td-bg-color-secondarycontainer-active,var(--td-gray-color-4,#dcdcdc)));overflow:hidden}.t-switch__label--checked{color:var(--td-switch-label-checked-color,var(--td-switch-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-switch__label--disabled{color:var(--td-switch-unchecked-disabled-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-switch__label--checked.t-switch__label--disabled{color:var(--td-switch-checked-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-switch__label--large{font-size:var(--td-switch-label-large-font-size,32rpx)}.t-switch__label--small{font-size:var(--td-switch-label-small-font-size,24rpx)}.t-switch__label:empty{display:none}.t-switch__icon{font-size:var(--td-switch-icon-size,40rpx)}.t-switch__icon--large{font-size:var(--td-switch-icon-large-size,48rpx)}.t-switch__icon--small{font-size:var(--td-switch-icon-small-size,32rpx)}.t-switch__loading{color:var(--td-switch-label-checked-color,var(--td-switch-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9))))}.t-switch__body{vertical-align:middle;width:var(--td-switch-width,90rpx);height:var(--td-switch-height,56rpx);border-radius:var(--td-switch-radius,calc(var(--td-switch-height,56rpx)/ 2));background-color:var(--td-switch-unchecked-color,var(--td-bg-color-secondarycontainer-active,var(--td-gray-color-4,#dcdcdc)));position:relative;transition:all .3s ease;overflow:hidden}.t-switch__body--checked{background-color:var(--td-switch-checked-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-switch__body--disabled{background-color:var(--td-switch-unchecked-disabled-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)))}.t-switch__body--checked.t-switch__body--disabled{background-color:var(--td-switch-checked-disabled-color,var(--td-brand-color-disabled,var(--td-primary-color-3,#b5c7ff)))}.t-switch__body--large{width:var(--td-switch-large-width,104rpx);height:var(--td-switch-large-height,64rpx);border-radius:var(--td-switch-large-radius,calc(var(--td-switch-large-height,64rpx)/ 2))}.t-switch__body--small{width:var(--td-switch-small-width,78rpx);height:var(--td-switch-small-height,48rpx);border-radius:var(--td-switch-small-radius,calc(var(--td-switch-small-height,48rpx)/ 2))}.t-switch__dot{position:absolute;left:var(--td-switch-dot-horizontal-margin,6rpx);top:50%;width:var(--td-switch-dot-size,44rpx);height:var(--td-switch-dot-size,44rpx);border-radius:50%;background-color:var(--td-text-color-anti,var(--td-font-white-1,#fff));transition:all .3s;transform:translateY(-50%);box-shadow:var(--td-switch-dot-shadow,var(--td-shadow-1,0 1px 10px rgba(0,0,0,.05),0 4px 5px rgba(0,0,0,.08),0 2px 4px -1px rgba(0,0,0,.12)))}.t-switch__dot--disabled{background-color:var(--td-switch-dot-disabled-color,var(--td-font-white-1,#fff))}.t-switch__dot--large{width:var(--td-switch-dot-large-size,52rpx);height:var(--td-switch-dot-large-size,52rpx)}.t-switch__dot--small{width:var(--td-switch-dot-small-size,36rpx);height:var(--td-switch-dot-small-size,36rpx)}.t-switch__dot--checked{left:calc(var(--td-switch-width,90rpx) - var(--td-switch-dot-size,44rpx) - var(--td-switch-dot-horizontal-margin,6rpx))}.t-switch__dot--large.t-switch__dot--checked{left:calc(var(--td-switch-large-width,104rpx) - var(--td-switch-dot-large-size,52rpx) - var(--td-switch-dot-horizontal-margin,6rpx))}.t-switch__dot--small.t-switch__dot--checked{left:calc(var(--td-switch-small-width,78rpx) - var(--td-switch-dot-small-size,36rpx) - var(--td-switch-dot-horizontal-margin,6rpx))}.t-switch__dot--plain:not(.t-switch__dot--checked){width:var(--td-switch-dot-plain-size,36rpx);height:var(--td-switch-dot-plain-size,36rpx);left:var(--td-switch-dot-plain-horizontal-margin,10rpx)}.t-switch__dot--large.t-switch__dot--plain:not(.t-switch__dot--checked){width:var(--td-switch-dot-plain-large-size,44rpx);height:var(--td-switch-dot-plain-large-size,44rpx)}.t-switch__dot--small.t-switch__dot--plain:not(.t-switch__dot--checked){width:var(--td-switch-dot-plain-small-size,28rpx);height:var(--td-switch-dot-plain-small-size,28rpx)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/type.d.ts b/miniprogram_npm/tdesign-miniprogram/switch/type.d.ts
new file mode 100644
index 0000000..eecf253
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/type.d.ts
@@ -0,0 +1,35 @@
+export interface TdSwitchProps {
+ customValue?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ label?: {
+ type: ArrayConstructor;
+ value?: string[];
+ };
+ loading?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'small' | 'medium' | 'large';
+ };
+ value?: {
+ type: null;
+ value?: SwitchValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: SwitchValue;
+ };
+}
+export declare type SwitchValue = string | number | boolean;
diff --git a/miniprogram_npm/tdesign-miniprogram/switch/type.js b/miniprogram_npm/tdesign-miniprogram/switch/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/switch/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.d.ts
new file mode 100644
index 0000000..026ee8b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabBarItemProps } from './type';
+declare const props: TdTabBarItemProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.js b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.js
new file mode 100644
index 0000000..d92b620
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object},icon:{type:null},subTabBar:{type:Array},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.d.ts
new file mode 100644
index 0000000..4efd9f7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.d.ts
@@ -0,0 +1,37 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class TabBarItem extends SuperComponent {
+ externalClasses: string[];
+ parent: any;
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ isSpread: boolean;
+ isChecked: boolean;
+ hasChildren: boolean;
+ currentName: string;
+ split: boolean;
+ iconOnly: boolean;
+ theme: string;
+ crowded: boolean;
+ shape: string;
+ };
+ properties: import("./type").TdTabBarItemProps;
+ observers: {
+ subTabBar(value: Record[]): void;
+ icon(v: any): void;
+ };
+ lifetimes: {
+ attached(): Promise;
+ };
+ methods: {
+ showSpread(): void;
+ toggle(): void;
+ selectChild(event: any): void;
+ checkActive(value: any): void;
+ closeSpread(): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.js b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.js
new file mode 100644
index 0000000..30875cb
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getRect,calcIcon}from"../common/utils";const{prefix:prefix}=config,classPrefix=`${prefix}-tab-bar-item`;let TabBarItem=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.parent=null,this.relations={"../tab-bar/tab-bar":{type:"ancestor",linked(t){const{theme:e,split:a,shape:s}=t.data;this.setData({theme:e,split:a,shape:s,currentName:this.properties.value?this.properties.value:t.initName()}),t.updateChildren()}}},this.options={multipleSlots:!0},this.data={prefix:prefix,classPrefix:classPrefix,isSpread:!1,isChecked:!1,hasChildren:!1,currentName:"",split:!0,iconOnly:!1,theme:"",crowded:!1,shape:"normal"},this.properties=props,this.observers={subTabBar(t){this.setData({hasChildren:t.length>0})},icon(t){this.setData({_icon:calcIcon(t)})}},this.lifetimes={attached(){return __awaiter(this,void 0,void 0,(function*(){const t=yield getRect(this,`.${classPrefix}__text`);this.setData({iconOnly:0===t.height})}))}},this.methods={showSpread(){this.setData({isSpread:!0})},toggle(){const{currentName:t,hasChildren:e,isSpread:a}=this.data;e&&this.setData({isSpread:!a}),this.$parent.updateValue(t),this.$parent.changeOtherSpread(t)},selectChild(t){const{value:e}=t.target.dataset;this.$parent.updateValue(e),this.setData({isSpread:!1})},checkActive(t){const{currentName:e,subTabBar:a}=this.data,s=(null==a?void 0:a.some((e=>e.value===t)))||e===t;this.setData({isChecked:s})},closeSpread(){this.setData({isSpread:!1})}}}};TabBarItem=__decorate([wxComponent()],TabBarItem);export default TabBarItem;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.json b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.json
new file mode 100644
index 0000000..fb7b731
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-badge":"../badge/badge"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxml b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxml
new file mode 100644
index 0000000..6c9715d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxml
@@ -0,0 +1 @@
+{{ child.label }}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxss b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxss
new file mode 100644
index 0000000..8f7fe85
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/tab-bar-item.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';:host{flex:1}.t-tab-bar-item{flex:1;height:var(--td-tab-bar-height,80rpx);box-sizing:border-box;user-select:none;position:relative;margin:16rpx 0;background-color:var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));padding:0 24rpx}.t-tab-bar-item--text-only{font-size:32rpx}.t-tab-bar-item--split+.t-tab-bar-item--split::before{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:0;bottom:0;left:0;border-left:1px solid var(--td-tab-bar-border-color,var(--td-border-color,var(--td-gray-color-3,#e7e7e7)));transform:scaleX(.5);top:16rpx;bottom:16rpx}.t-tab-bar-item--crowded{padding:0 16rpx}.t-tab-bar-item--round{border-radius:99px}.t-tab-bar-item__content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16rpx;color:var(--td-tab-bar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tab-bar-item__content--checked{color:var(--td-tab-bar-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));font-weight:600}.t-tab-bar-item__content--tag{border-radius:99px}.t-tab-bar-item__content--tag.t-tab-bar-item__content--checked{background-color:var(--td-tab-bar-active-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tab-bar-item__icon{display:contents}.t-tab-bar-item__icon:empty{display:none}.t-tab-bar-item__text{display:flex;align-items:center}.t-tab-bar-item__text--small{font-size:20rpx;line-height:32rpx}.t-tab-bar-item__icon-menu{margin-right:8rpx}.t-tab-bar-item__spread{position:absolute;top:0;left:7%;width:86%;background-color:var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));transform:translate3d(0,calc(-100% - 32rpx),0);z-index:1;border-radius:12rpx;color:var(--td-tab-bar-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));box-shadow:var(--td-tab-bar-spread-shadow,var(--td-shadow-3,0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08)))}.t-tab-bar-item__spread::before{display:block;content:'';position:absolute;bottom:0;left:50%;width:0;height:0;border:16rpx solid transparent;border-top:16rpx solid var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));transform:translate3d(-50%,32rpx,0)}.t-tab-bar-item__spread-item{width:100%;height:96rpx;display:flex;align-items:center;justify-content:flex-start;position:relative;flex-direction:column}.t-tab-bar-item__spread-item--active{background-color:var(--td-tab-bar-hover-bg-color,rgba(0,0,0,.05))}.t-tab-bar-item__spread-item-split{box-sizing:border-box;content:' ';pointer-events:none;background-color:var(--td-tab-bar-spread-border-color,var(--td-border-color,var(--td-gray-color-3,#e7e7e7)));width:80%;height:1px;transform:translateY(.5)}.t-tab-bar-item__spread-item-text{padding-top:24rpx}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.d.ts
new file mode 100644
index 0000000..6fbbd6c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.d.ts
@@ -0,0 +1,23 @@
+import { BadgeProps } from '../badge/index';
+export interface TdTabBarItemProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: BadgeProps;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ subTabBar?: {
+ type: ArrayConstructor;
+ value?: SubTabBarItem[];
+ };
+ value?: {
+ type: null;
+ value?: string | number;
+ };
+}
+export interface SubTabBarItem {
+ value: string;
+ label: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.js b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar-item/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.d.ts
new file mode 100644
index 0000000..338c35e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabBarProps } from './type';
+declare const props: TdTabBarProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/props.js b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.js
new file mode 100644
index 0000000..f8f7f9e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/props.js
@@ -0,0 +1 @@
+const props={bordered:{type:Boolean,value:!0},externalClasses:{type:Array},fixed:{type:Boolean,value:!0},safeAreaInsetBottom:{type:Boolean,value:!0},shape:{type:String,value:"normal"},split:{type:Boolean,value:!0},theme:{type:String,value:"normal"},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.d.ts
new file mode 100644
index 0000000..13e2da6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.d.ts
@@ -0,0 +1,28 @@
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class Tabbar extends SuperComponent {
+ relations: RelationsOptions;
+ externalClasses: string[];
+ backupValue: number;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ };
+ properties: import("./type").TdTabBarProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ showChildren(): void;
+ updateChildren(): void;
+ updateValue(value: any): void;
+ changeOtherSpread(value: any): void;
+ initName(): any;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.js b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.js
new file mode 100644
index 0000000..8403dac
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,classPrefix=`${prefix}-tab-bar`;let Tabbar=class extends SuperComponent{constructor(){super(...arguments),this.relations={"../tab-bar-item/tab-bar-item":{type:"descendant"}},this.externalClasses=[`${prefix}-class`],this.backupValue=-1,this.data={prefix:prefix,classPrefix:classPrefix},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={value(){this.updateChildren()}},this.lifetimes={ready(){this.showChildren()}},this.methods={showChildren(){const{value:e}=this.data;this.$children.forEach((r=>{r.setData({crowded:this.$children.length>3}),r.properties.value===e&&r.showSpread()}))},updateChildren(){const{value:e}=this.data;this.$children.forEach((r=>{r.checkActive(e)}))},updateValue(e){this._trigger("change",{value:e})},changeOtherSpread(e){this.$children.forEach((r=>{r.properties.value!==e&&r.closeSpread()}))},initName(){return this.backupValue+=1}}}};Tabbar=__decorate([wxComponent()],Tabbar);export default Tabbar;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.json b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxml b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxml
new file mode 100644
index 0000000..0f9e9c0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxss b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxss
new file mode 100644
index 0000000..5baa929
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/tab-bar.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tab-bar{display:flex;flex-wrap:nowrap;align-items:center;position:relative;font-size:16px;background-color:var(--td-tab-bar-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));box-sizing:border-box}.t-tab-bar--normal.t-tab-bar--border::before{z-index:1;position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;left:0;top:0;border-top:1px solid var(--td-tab-bar-border-color,var(--td-border-level-1-color,var(--td-gray-color-3,#e7e7e7)));transform:scaleY(.5);transform-origin:0 0}.t-tab-bar--fixed{position:fixed;left:0;bottom:0;right:0}.t-tab-bar--normal.t-tab-bar--safe{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.t-tab-bar--round{margin-left:32rpx;margin-right:32rpx;border-radius:999px;box-shadow:var(--td-tab-bar-round-shadow,var(--td-shadow-3,0 6px 30px 5px rgba(0,0,0,.05),0 16px 24px 2px rgba(0,0,0,.04),0 8px 10px -5px rgba(0,0,0,.08)))}.t-tab-bar--fixed.t-tab-bar--round.t-tab-bar--safe{bottom:constant(safe-area-inset-bottom);bottom:env(safe-area-inset-bottom)}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.d.ts
new file mode 100644
index 0000000..32ec1d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.d.ts
@@ -0,0 +1,38 @@
+export interface TdTabBarProps {
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class'];
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ safeAreaInsetBottom?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'normal' | 'round';
+ };
+ split?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'normal' | 'tag';
+ };
+ value?: {
+ type: null;
+ value?: string | number | Array;
+ };
+ defaultValue?: {
+ type: null;
+ value?: string | number | Array;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-bar/type.js b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-bar/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.d.ts
new file mode 100644
index 0000000..9329be0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabPanelProps } from './type';
+declare const props: TdTabPanelProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/props.js b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.js
new file mode 100644
index 0000000..a71e197
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/props.js
@@ -0,0 +1 @@
+const props={badgeProps:{type:Object},disabled:{type:Boolean,value:!1},icon:{type:null},label:{type:String,value:""},lazy:{type:Boolean,value:!1},panel:{type:String},value:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.d.ts
new file mode 100644
index 0000000..c1a18de
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.d.ts
@@ -0,0 +1,25 @@
+///
+import { SuperComponent, RelationsOptions } from '../common/src/index';
+export default class TabPanel extends SuperComponent {
+ externalClasses: string[];
+ relations: RelationsOptions;
+ options: {
+ multipleSlots: boolean;
+ };
+ properties: import("./type").TdTabPanelProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ active: boolean;
+ hide: boolean;
+ id: string;
+ hasActivated: boolean;
+ };
+ setId(id: any): void;
+ observers: {
+ 'label, badgeProps, disabled, icon, panel, value, lazy'(): void;
+ };
+ getComputedName(): string;
+ update(): void;
+ render(active: Boolean, parent: WechatMiniprogram.Component.TrivialInstance): void;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.js b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.js
new file mode 100644
index 0000000..048be2b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.js
@@ -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}-tab-panel`;let TabPanel=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.relations={"../tabs/tabs":{type:"ancestor"}},this.options={multipleSlots:!0},this.properties=props,this.data={prefix:prefix,classPrefix:name,active:!1,hide:!0,id:"",hasActivated:!1},this.observers={"label, badgeProps, disabled, icon, panel, value, lazy"(){this.update()}}}setId(e){this.setData({id:e})}getComputedName(){return null!=this.properties.value?`${this.properties.value}`:`${this.index}`}update(){var e;null===(e=this.$parent)||void 0===e||e.updateTabs()}render(e,t){this.initialized=this.initialized||e,e&&!this.data.hasActivated&&this.setData({hasActivated:!0}),this.setData({active:e,hide:!t.data.animation&&!e})}};TabPanel=__decorate([wxComponent()],TabPanel);export default TabPanel;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.json b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxml b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxml
new file mode 100644
index 0000000..d8acb0b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxml
@@ -0,0 +1 @@
+{{panel}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxss b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxss
new file mode 100644
index 0000000..01be28b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/tab-panel.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tab-panel{flex-shrink:0;width:100%;height:100%;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.t-tab-panel--active{height:auto}.t-tab-panel--inactive{height:0;overflow:visible}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.d.ts
new file mode 100644
index 0000000..8c84fec
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.d.ts
@@ -0,0 +1,31 @@
+import { TabValue } from '../tabs/index';
+export interface TdTabPanelProps {
+ badgeProps?: {
+ type: ObjectConstructor;
+ value?: object;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ lazy?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ panel?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ value?: {
+ type: null;
+ value?: TabValue;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tab-panel/type.js b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tab-panel/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/index.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/index.d.ts
new file mode 100644
index 0000000..2f91d15
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/index.d.ts
@@ -0,0 +1,3 @@
+export * from './tabs';
+export * from './type';
+export * from './props';
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/index.js b/miniprogram_npm/tdesign-miniprogram/tabs/index.js
new file mode 100644
index 0000000..6f0131f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/index.js
@@ -0,0 +1 @@
+export*from"./tabs";export*from"./type";export*from"./props";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/props.d.ts
new file mode 100644
index 0000000..215fa49
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTabsProps } from './type';
+declare const props: TdTabsProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/props.js b/miniprogram_npm/tdesign-miniprogram/tabs/props.js
new file mode 100644
index 0000000..f624354
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/props.js
@@ -0,0 +1 @@
+const props={animation:{type:Object},bottomLineMode:{type:String,value:"fixed"},externalClasses:{type:Array},showBottomLine:{type:Boolean,value:!0},spaceEvenly:{type:Boolean,value:!0},split:{type:Boolean,value:!0},sticky:{type:Boolean,value:!1},stickyProps:{type:Object},swipeable:{type:Boolean,value:!0},theme:{type:String,value:"line"},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.d.ts
new file mode 100644
index 0000000..254d030
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.d.ts
@@ -0,0 +1,59 @@
+import { RelationsOptions, SuperComponent } from '../common/src/index';
+import { TdTabsProps } from './type';
+export interface TabsProps extends TdTabsProps {
+}
+export default class Tabs extends SuperComponent {
+ options: {
+ pureDataPattern: RegExp;
+ };
+ behaviors: string[];
+ externalClasses: string[];
+ relations: RelationsOptions;
+ properties: TdTabsProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ value(name: any): void;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ tabs: any[];
+ currentLabels: any[];
+ currentIndex: number;
+ trackOption: {
+ lineWidth: number;
+ distance: number;
+ isInit: boolean;
+ };
+ offset: number;
+ scrollLeft: number;
+ tabID: string;
+ placement: string;
+ };
+ lifetimes: {
+ created(): void;
+ attached(): void;
+ };
+ initChildId(): void;
+ methods: {
+ onScroll(e: any): void;
+ updateTabs(cb: any): void;
+ setCurrentIndexByName(name: any): void;
+ setCurrentIndex(index: number): void;
+ getCurrentName(): any;
+ calcScrollOffset(containerWidth: number, targetLeft: number, targetWidth: number, offset: number): number;
+ getTabHeight(): Promise;
+ getTrackSize(): Promise;
+ setTrack(): Promise;
+ onTabTap(event: any): void;
+ onTouchStart(event: any): void;
+ onTouchMove(event: any): void;
+ onTouchEnd(): void;
+ onTouchScroll(event: WechatMiniprogram.CustomEvent): void;
+ changeIndex(index: any): void;
+ getAvailableTabIndex(deltaX: number): any;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.js b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.js
new file mode 100644
index 0000000..eb0392c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.js
@@ -0,0 +1 @@
+import{__awaiter,__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import touch from"../mixins/touch";import{getRect,uniqueFactory}from"../common/utils";import{getObserver}from"../common/wechat";const{prefix:prefix}=config,name=`${prefix}-tabs`,getUniqueID=uniqueFactory("tabs");let Tabs=class extends SuperComponent{constructor(){super(...arguments),this.options={pureDataPattern:/^currentLabels$/},this.behaviors=[touch],this.externalClasses=[`${prefix}-class`,`${prefix}-class-item`,`${prefix}-class-active`,`${prefix}-class-track`,`${prefix}-class-content`],this.relations={"../tab-panel/tab-panel":{type:"descendant",linked(t){this.children.push(t),this.initChildId(),t.index=this.children.length-1,this.updateTabs()},unlinked(t){this.children=this.children.filter((e=>e.index!==t.index)),this.updateTabs((()=>this.setTrack())),this.initChildId()}}},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={value(t){t!==this.getCurrentName()&&this.setCurrentIndexByName(t)}},this.data={prefix:prefix,classPrefix:name,tabs:[],currentLabels:[],currentIndex:-1,trackOption:{lineWidth:0,distance:0,isInit:!0},offset:0,scrollLeft:0,tabID:"",placement:"top"},this.lifetimes={created(){this.children=this.children||[]},attached(){wx.nextTick((()=>{this.setTrack()})),getRect(this,`.${name}`).then((t=>{this.containerWidth=t.width})),this.setData({tabID:getUniqueID()})}},this.methods={onScroll(t){const{scrollLeft:e}=t.detail;this.setData({scrollLeft:e})},updateTabs(t){const{children:e}=this,i=e.map((t=>t.data));i.forEach((t=>{"string"==typeof t.icon&&(t.icon={name:t.icon})})),this.setData({tabs:i},t),this.setCurrentIndexByName(this.properties.value)},setCurrentIndexByName(t){const{children:e}=this,i=e.findIndex((e=>e.getComputedName()===`${t}`));i>-1&&this.setCurrentIndex(i)},setCurrentIndex(t){if(t<=-1||t>=this.children.length)return;const e=[];this.children.forEach(((i,s)=>{const r=t===s;r===i.data.active&&i.initialized||i.render(r,this),e.push(i.data.label)}));const{currentIndex:i,currentLabels:s}=this.data;i===t&&s.join("")===e.join("")||this.setData({currentIndex:t,currentLabels:e},(()=>{this.setTrack()}))},getCurrentName(){if(this.children){const t=this.children[this.data.currentIndex];if(t)return t.getComputedName()}},calcScrollOffset:(t,e,i,s)=>s+e-.5*t+i/2,getTabHeight(){return getRect(this,`.${name}`)},getTrackSize(){const{bottomLineMode:t}=this.properties,e={fixed:`.${prefix}-tabs__track`,auto:`.${prefix}-tabs__item--active .${prefix}-tabs__item-inner`,full:`.${prefix}-tabs__item--active`};return new Promise(((i,s)=>{this.trackWidth?i(this.trackWidth):getRect(this,e[t]||e.fixed).then((t=>{t&&i(t.width)})).catch(s)}))},setTrack(){return __awaiter(this,void 0,void 0,(function*(){const{children:t}=this;if(!t)return;const{currentIndex:e}=this.data;if(!(e<=-1))try{const t=yield getRect(this,`.${prefix}-tabs__item`,!0),i=t[e];if(!i)return;let s=0,r=0,n=0;if(t.forEach((t=>{sthis.setTrack())));const a=yield this.getTrackSize();"line"===this.data.theme&&(r+=(i.width-a)/2);const h=void 0===this.previousIndex;(h||this.previousIndex!==e)&&(this.previousIndex=e,this.setData({trackOption:{lineWidth:a,distance:r,isInit:h}}))}catch(t){this.triggerEvent("error",t)}}))},onTabTap(t){const{index:e}=t.currentTarget.dataset;this.changeIndex(e)},onTouchStart(t){this.properties.swipeable&&this.touchStart(t)},onTouchMove(t){this.properties.swipeable&&this.touchMove(t)},onTouchEnd(){if(!this.properties.swipeable)return;const{direction:t,deltaX:e,offsetX:i}=this;if("horizontal"===t&&i>=50){const t=this.getAvailableTabIndex(e);-1!==t&&this.changeIndex(t)}},onTouchScroll(t){this._trigger("scroll",t.detail)},changeIndex(t){const e=this.data.tabs[t],{value:i,label:s}=e;(null==e?void 0:e.disabled)||t===this.data.currentIndex||this._trigger("change",{value:i,label:s}),this._trigger("click",{value:i,label:s})},getAvailableTabIndex(t){const e=t>0?-1:1,{currentIndex:i,tabs:s}=this.data,r=s.length;for(let t=e;i+e>=0&&i+e=0&&e{t.setId(`${this.data.tabID}_panel_${e}`)}))}};Tabs=__decorate([wxComponent()],Tabs);export default Tabs;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.json b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.json
new file mode 100644
index 0000000..376444d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-sticky":"../sticky/sticky","t-badge":"../badge/badge","t-icon":"../icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxml b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxml
new file mode 100644
index 0000000..54fb414
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxml
@@ -0,0 +1 @@
+{{item.label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxs b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxs
new file mode 100644
index 0000000..7a173a1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxs
@@ -0,0 +1,30 @@
+var utils = require('../common/utils.wxs');
+
+function animate(options) {
+ if (options.duration) {
+ return utils._style({
+ 'transition-duration': options.duration + 's',
+ transform: 'translate3d( ' + -100 * options.currentIndex + '%,0, 0)',
+ });
+ }
+ return '';
+}
+
+function trackStyle(options) {
+ if (options.distance || options.lineWidth) {
+ return utils._style({
+ '-webkit-transform': 'translateX(' + options.distance + 'px)',
+ transform: 'translateX(' + options.distance + 'px)',
+ 'transition-duration': options.isInit ? '0' : '0.3s',
+ width: options.lineWidth + 'px',
+ opacity: 1,
+ });
+ }
+
+ return '';
+}
+
+module.exports = {
+ animate: animate,
+ trackStyle: trackStyle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxss b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxss
new file mode 100644
index 0000000..d71b984
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/tabs.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tabs{position:relative;font-size:var(--td-tab-font-size,28rpx);background:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));flex-wrap:wrap}.t-tabs__wrapper{display:flex;overflow:hidden;background:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tabs__wrapper--card{background:var(--td-tab-item-tag-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));--td-tab-border-color:transparent}.t-tabs__item{position:relative;display:flex;flex:none;align-items:center;justify-content:center;font-weight:400;color:var(--td-tab-item-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));padding:0 var(--td-spacer-2,32rpx);box-sizing:border-box;white-space:nowrap;overflow:hidden;height:var(--td-tab-item-height,96rpx)}.t-tabs__item--active{font-weight:600;color:var(--td-tab-item-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tabs__item--disabled{color:var(--td-tab-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-tabs__item--evenly{flex:1 0 auto}.t-tabs__item-inner{display:flex;align-items:center;justify-content:center}.t-tabs__item-inner--tag{width:100%;text-align:center;padding:0 var(--td-spacer-2,32rpx);line-height:var(--td-tab-item-tag-height,64rpx);border-radius:calc(var(--td-tab-item-tag-height,64rpx)/ 2);background-color:var(--td-tab-item-tag-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tabs__item-inner--active.t-tabs__item-inner--tag{background-color:var(--td-tab-item-tag-active-bg,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tabs__item--tag:not(.t-tabs__item--evenly){padding:0 calc(var(--td-spacer,16rpx)/ 2)}.t-tabs__item--tag:not(.t-tabs__item--evenly):first-child{margin-left:var(--td-spacer,16rpx)}.t-tabs__item--tag:not(.t-tabs__item--evenly):last-child{padding-right:var(--td-spacer-1,24rpx)}.t-tabs__item--tag{padding:0 var(--td-spacer,16rpx)}.t-tabs__item--card.t-tabs__item--active{background-color:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)));border-radius:var(--td-radius-large,18rpx) var(--td-radius-large,18rpx) 0 0}.t-tabs__item--card.t-tabs__item--active:first-child{border-top-left-radius:0}.t-tabs__item--card.t-tabs__item--active:last-child{border-top-right-radius:0}.t-tabs__item--card.t-tabs__item--pre{border-bottom-right-radius:var(--td-radius-large,18rpx)}.t-tabs__item-prefix,.t-tabs__item-suffix{position:absolute;bottom:0;width:18rpx;height:18rpx;background-color:var(--td-tab-nav-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tabs__item-prefix::after,.t-tabs__item-suffix::after{content:'';display:block;width:100%;height:100%;background-color:var(--td-tab-item-tag-bg,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tabs__item-prefix{right:0}.t-tabs__item-prefix::after{border-bottom-right-radius:var(--td-radius-large,18rpx)}.t-tabs__item-suffix{left:0}.t-tabs__item-suffix::after{border-bottom-left-radius:var(--td-radius-large,18rpx)}.t-tabs__badge--active{--td-badge-content-text-color:var(--td-tab-item-active-color, var(--td-brand-color, var(--td-primary-color-7, #0052d9)))}.t-tabs__badge--disabled{--td-badge-content-text-color:var(--td-tab-item-disabled-color, var(--td-text-color-disabled, var(--td-font-gray-4, rgba(0, 0, 0, 0.26))))}.t-tabs__icon{font-size:var(--td-tab-icon-size,36rpx);margin-right:calc(var(--td-spacer,16rpx)/ 4)}.t-tabs__content{overflow:hidden}.t-tabs__nav{position:relative;user-select:none;display:flex;flex-wrap:nowrap;align-items:center}.t-tabs__nav.t-tabs__nav--evenly{width:100%}.t-tabs__track{position:absolute;font-weight:600;z-index:1;opacity:0;background-color:var(--td-tab-track-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));left:0;bottom:1rpx;width:var(--td-tab-track-width,32rpx);height:var(--td-tab-track-thickness,6rpx);border-radius:var(--td-tab-track-radius,8rpx)}.t-tabs__scroll{position:relative;height:var(--td-tab-item-height,96rpx)}.t-tabs__scroll--split{position:relative}.t-tabs__scroll--split::after{content:'';display:block;position:absolute;top:unset;bottom:0;left:unset;right:unset;background-color:var(--td-tab-border-color,var(--td-component-stroke,var(--td-gray-color-3,#e7e7e7)))}.t-tabs__scroll--split::after{height:1px;left:0;right:0;transform:scaleY(.5)}.t-tabs__scroll::-webkit-scrollbar{display:none}.t-tabs__content{width:100%}.t-tabs__content-inner{display:block}.t-tabs__content--animated .t-tabs__content-inner{position:relative;width:100%;height:100%;display:flex;will-change:left;transition-property:transform}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tabs/type.d.ts
new file mode 100644
index 0000000..71699bd
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/type.d.ts
@@ -0,0 +1,55 @@
+import { StickyProps } from '../sticky/index';
+export interface TdTabsProps {
+ animation?: {
+ type: ObjectConstructor;
+ value?: TabAnimation;
+ };
+ bottomLineMode?: {
+ type: StringConstructor;
+ value?: 'fixed' | 'auto' | 'full';
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class', 't-class-item', 't-class-active', 't-class-track'];
+ };
+ showBottomLine?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ spaceEvenly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ split?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ sticky?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ stickyProps?: {
+ type: ObjectConstructor;
+ value?: StickyProps;
+ };
+ swipeable?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'line' | 'tag' | 'card';
+ };
+ value?: {
+ type: null;
+ value?: TabValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: TabValue;
+ };
+}
+export declare type TabAnimation = {
+ duration: number;
+} & Record;
+export declare type TabValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/tabs/type.js b/miniprogram_npm/tdesign-miniprogram/tabs/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tabs/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tag/props.d.ts
new file mode 100644
index 0000000..8074655
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTagProps } from './type';
+declare const props: TdTagProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/props.js b/miniprogram_npm/tdesign-miniprogram/tag/props.js
new file mode 100644
index 0000000..84a9521
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/props.js
@@ -0,0 +1 @@
+const props={closable:{type:null,value:!1},disabled:{type:Boolean,value:!1},externalClasses:{type:Array},icon:{type:null},maxWidth:{type:null},shape:{type:String,value:"square"},size:{type:String,value:"medium"},theme:{type:String,value:"default"},variant:{type:String,value:"dark"}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.d.ts b/miniprogram_npm/tdesign-miniprogram/tag/tag.d.ts
new file mode 100644
index 0000000..2c86ef0
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.d.ts
@@ -0,0 +1,28 @@
+///
+import { SuperComponent } from '../common/src/index';
+export default class Tag extends SuperComponent {
+ data: {
+ prefix: string;
+ classPrefix: string;
+ className: string;
+ tagStyle: string;
+ };
+ properties: import("./type").TdTagProps;
+ externalClasses: string[];
+ options: WechatMiniprogram.Component.ComponentOptions;
+ lifetimes: {
+ attached(): void;
+ };
+ observers: {
+ 'size, shape, theme, variant, closable, disabled'(): void;
+ maxWidth(): void;
+ icon(v: any): void;
+ closable(v: any): void;
+ };
+ methods: {
+ setClass(): void;
+ setTagStyle(): string;
+ handleClick(e: WechatMiniprogram.BaseEvent): void;
+ handleClose(e: WechatMiniprogram.BaseEvent): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.js b/miniprogram_npm/tdesign-miniprogram/tag/tag.js
new file mode 100644
index 0000000..086df92
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{wxComponent,SuperComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{classNames,calcIcon}from"../common/utils";import{isNumber}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-tag`;let Tag=class extends SuperComponent{constructor(){super(...arguments),this.data={prefix:prefix,classPrefix:name,className:"",tagStyle:""},this.properties=props,this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.lifetimes={attached(){this.setClass(),this.setTagStyle()}},this.observers={"size, shape, theme, variant, closable, disabled"(){this.setClass()},maxWidth(){this.setTagStyle()},icon(s){this.setData({_icon:calcIcon(s)})},closable(s){this.setData({_closable:calcIcon(s,"close")})}},this.methods={setClass(){const{prefix:s,classPrefix:t}=this.data,{size:e,shape:a,theme:i,variant:o,closable:l,disabled:r}=this.properties,c=classNames([t,`${t}--${i||"default"}`,`${t}--${o}`,l?`${t}--closable ${s}-is-closable`:"",r?`${t}--disabled ${s}-is-disabled`:"",`${t}--${e}`,`${t}--${a}`]);this.setData({className:c})},setTagStyle(){const{maxWidth:s}=this.properties;if(!s)return"";const t=isNumber(s)?`${s}px`:s;this.setData({tagStyle:`max-width:${t};`})},handleClick(s){this.data.disabled||this.triggerEvent("click",s)},handleClose(s){this.data.disabled||this.triggerEvent("close",s)}}}};Tag=__decorate([wxComponent()],Tag);export default Tag;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.json b/miniprogram_npm/tdesign-miniprogram/tag/tag.json
new file mode 100644
index 0000000..235b52f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":".././icon/icon"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.wxml b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxml
new file mode 100644
index 0000000..c3eb0a7
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/tag.wxss b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxss
new file mode 100644
index 0000000..18f4ce1
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/tag.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tag{display:inline-flex;align-items:center;border:2rpx solid transparent;box-sizing:border-box;border-radius:var(--td-tag-square-border-radius,8rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx));user-select:none;vertical-align:middle}.t-tag__text{word-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-tag__icon,.t-tag__icon-close{display:flex;align-items:center}.t-tag__icon-close{color:var(--td-tag-close-icon-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))))}.t-tag__icon:not(:empty)+.t-tag__text:not(:empty),.t-tag__text:not(:empty)+.t-tag__icon-close:not(:empty){margin-left:8rpx}.t-tag.t-tag--small{height:var(--td-tag-small-height,40rpx);line-height:var(--td-tag-small-height,40rpx);padding:0 var(--td-tag-small-padding,11rpx);font-size:var(--td-tag-small-font-size,var(--td-font-size,20rpx))}.t-tag.t-tag--small .t-icon,.t-tag.t-tag--small .t-icon-close{font-size:var(--td-tag-small-icon-size,24rpx)}.t-tag.t-tag--small .t-tag__icon:not(:empty)+.t-tag__text:not(:empty),.t-tag.t-tag--small .t-tag__text:not(:empty)+.t-tag__icon-close:not(:empty){margin-left:4rpx}.t-tag.t-tag--medium{height:var(--td-tag-medium-height,48rpx);line-height:var(--td-tag-medium-height,48rpx);padding:0 var(--td-tag-medium-padding,15rpx);font-size:var(--td-tag-medium-font-size,var(--td-font-size-s,24rpx))}.t-tag.t-tag--medium .t-icon,.t-tag.t-tag--medium .t-icon-close{font-size:var(--td-tag-medium-icon-size,28rpx)}.t-tag.t-tag--large{height:var(--td-tag-large-height,56rpx);line-height:var(--td-tag-large-height,56rpx);padding:0 var(--td-tag-large-padding,15rpx);font-size:var(--td-tag-large-font-size,var(--td-font-size-base,28rpx))}.t-tag.t-tag--large .t-icon,.t-tag.t-tag--large .t-icon-close{font-size:var(--td-tag-large-icon-size,32rpx)}.t-tag.t-tag--extra-large{height:var(--td-tag-extra-large-height,80rpx);line-height:var(--td-tag-extra-large-height,80rpx);padding:0 var(--td-tag-extra-large-padding,31rpx);font-size:var(--td-tag-extra-large-font-size,var(--td-font-size-base,28rpx))}.t-tag.t-tag--extra-large .t-icon,.t-tag.t-tag--extra-large .t-icon-close{font-size:var(--td-tag-extra-large-icon-size,32rpx)}.t-tag.t-tag--square{border-radius:var(--td-tag-square-border-radius,8rpx)}.t-tag.t-tag--round{border-radius:var(--td-tag-round-border-radius,999px)}.t-tag.t-tag--mark{border-radius:0;border-top-right-radius:var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px));border-bottom-right-radius:var(--td-tag-mark-border-radius,var(--td-tag-round-border-radius,999px))}.t-tag--dark.t-tag--default{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)))}.t-tag--dark.t-tag--primary{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tag--dark.t-tag--success{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)))}.t-tag--dark.t-tag--warning{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)))}.t-tag--dark.t-tag--danger{color:var(--td-text-color-anti,var(--td-font-white-1,#fff));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)))}.t-tag--dark.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--outline.t-tag--default{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--primary{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--success{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--warning{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--outline.t-tag--danger{background-color:var(--td-tag-outline-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tag--light.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));border-color:var(--td-tag-default-color,var(--td-bg-color-component,var(--td-gray-color-3,#e7e7e7)));background-color:var(--td-tag-default-light-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tag--light-outline.t-tag--primary{color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));border-color:var(--td-tag-primary-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)));background-color:var(--td-tag-primary-light-color,var(--td-brand-color-light,var(--td-primary-color-1,#f2f3ff)))}.t-tag--light-outline.t-tag--success{color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));border-color:var(--td-tag-success-color,var(--td-success-color,var(--td-success-color-5,#2ba471)));background-color:var(--td-tag-success-light-color,var(--td-success-color-1,#e3f9e9))}.t-tag--light-outline.t-tag--warning{color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));border-color:var(--td-tag-warning-color,var(--td-warning-color,var(--td-warning-color-5,#e37318)));background-color:var(--td-tag-warning-light-color,var(--td-warning-color-1,#fff1e9))}.t-tag--light-outline.t-tag--danger{color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));border-color:var(--td-tag-danger-color,var(--td-error-color,var(--td-error-color-6,#d54941)));background-color:var(--td-tag-danger-light-color,var(--td-error-color-1,#fff0ed))}.t-tag--light-outline.t-tag--default{color:var(--td-tag-default-font-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));border-color:var(--td-component-border,var(--td-gray-color-4,#dcdcdc))}.t-tag.t-tag--closable.t-tag--disabled{cursor:not-allowed;color:var(--td-tag-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))));background-color:var(--td-tag-disabled-background-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)));border-color:var(--td-tag-disabled-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tag/type.d.ts
new file mode 100644
index 0000000..bd1147d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/type.d.ts
@@ -0,0 +1,38 @@
+export interface TdTagProps {
+ closable?: {
+ type: null;
+ value?: boolean | object;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ externalClasses?: {
+ type: ArrayConstructor;
+ value?: ['t-class'];
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ maxWidth?: {
+ type: null;
+ value?: string | number;
+ };
+ shape?: {
+ type: StringConstructor;
+ value?: 'square' | 'round' | 'mark';
+ };
+ size?: {
+ type: StringConstructor;
+ value?: 'small' | 'medium' | 'large' | 'extra-large';
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'default' | 'primary' | 'warning' | 'danger' | 'success';
+ };
+ variant?: {
+ type: StringConstructor;
+ value?: 'dark' | 'light' | 'outline' | 'light-outline';
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tag/type.js b/miniprogram_npm/tdesign-miniprogram/tag/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tag/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/props.d.ts b/miniprogram_npm/tdesign-miniprogram/textarea/props.d.ts
new file mode 100644
index 0000000..83213f6
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTextareaProps } from './type';
+declare const props: TdTextareaProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/props.js b/miniprogram_npm/tdesign-miniprogram/textarea/props.js
new file mode 100644
index 0000000..6768842
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/props.js
@@ -0,0 +1 @@
+const props={adjustPosition:{type:Boolean,value:!0},allowInputOverMax:{type:Boolean,value:!1},autofocus:{type:Boolean,value:!1},autosize:{type:null,value:!1},bordered:{type:Boolean,value:!1},confirmHold:{type:Boolean,value:!1},confirmType:{type:String,value:"return"},cursor:{type:Number,value:-1},cursorSpacing:{type:Number,value:0},disableDefaultPadding:{type:Boolean,value:!1},disabled:{type:null,value:void 0},fixed:{type:Boolean,value:!1},focus:{type:Boolean,value:!1},holdKeyboard:{type:Boolean,value:!1},indicator:{type:Boolean,value:!1},label:{type:String},maxcharacter:{type:Number},maxlength:{type:Number,value:-1},placeholder:{type:String,value:void 0},placeholderClass:{type:String,value:"textarea-placeholder"},placeholderStyle:{type:String,value:""},readonly:{type:null,value:void 0},selectionEnd:{type:Number,value:-1},selectionStart:{type:Number,value:-1},showConfirmBar:{type:Boolean,value:!0},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.d.ts b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.d.ts
new file mode 100644
index 0000000..a3d8ec2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.d.ts
@@ -0,0 +1,34 @@
+import { SuperComponent } from '../common/src/index';
+export default class Textarea extends SuperComponent {
+ options: {
+ multipleSlots: boolean;
+ };
+ behaviors: string[];
+ externalClasses: string[];
+ properties: import("./type").TdTextareaProps;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ count: number;
+ };
+ observers: {
+ value(val: any): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ updateCount(val: any): void;
+ updateValue(val: any): void;
+ calculateValue(value: any, maxcharacter: any, maxlength: any): {
+ value: any;
+ count: number;
+ };
+ onInput(event: any): void;
+ onFocus(event: any): void;
+ onBlur(event: any): void;
+ onConfirm(event: any): void;
+ onLineChange(event: any): void;
+ onKeyboardHeightChange(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.js b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.js
new file mode 100644
index 0000000..094c0db
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import{getCharacterLength}from"../common/utils";const{prefix:prefix}=config,name=`${prefix}-textarea`;let Textarea=class extends SuperComponent{constructor(){super(...arguments),this.options={multipleSlots:!0},this.behaviors=["wx://form-field"],this.externalClasses=[`${prefix}-class`,`${prefix}-class-textarea`,`${prefix}-class-label`,`${prefix}-class-indicator`],this.properties=props,this.data={prefix:prefix,classPrefix:name,count:0},this.observers={value(e){this.updateCount(null!=e?e:this.properties.defaultValue)}},this.lifetimes={ready(){var e;const{value:t,defaultValue:a}=this.properties;this.updateValue(null!==(e=null!=t?t:a)&&void 0!==e?e:"")}},this.methods={updateCount(e){const{maxcharacter:t,maxlength:a}=this.properties,{count:r}=this.calculateValue(e,t,a);this.setData({count:r})},updateValue(e){const{maxcharacter:t,maxlength:a}=this.properties,{value:r,count:s}=this.calculateValue(e,t,a);this.setData({value:r,count:s})},calculateValue(e,t,a){const{allowInputOverMax:r}=this.properties;if(t>0&&!Number.isNaN(t)){const{length:a,characters:s}=getCharacterLength("maxcharacter",e,r?1/0:t);return{value:s,count:a}}if(a>0&&!Number.isNaN(a)){const{length:t,characters:s}=getCharacterLength("maxlength",e,r?1/0:a);return{value:s,count:t}}return{value:e,count:e?String(e).length:0}},onInput(e){const{value:t,cursor:a}=e.detail;this.updateValue(t),this.triggerEvent("change",{value:this.data.value,cursor:a})},onFocus(e){this.triggerEvent("focus",Object.assign({},e.detail))},onBlur(e){this.triggerEvent("blur",Object.assign({},e.detail))},onConfirm(e){this.triggerEvent("enter",Object.assign({},e.detail))},onLineChange(e){this.triggerEvent("line-change",Object.assign({},e.detail))},onKeyboardHeightChange(e){this.triggerEvent("keyboardheightchange",e.detail)}}}};Textarea=__decorate([wxComponent()],Textarea);export default Textarea;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.json b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxml b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxml
new file mode 100644
index 0000000..7074d58
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxml
@@ -0,0 +1 @@
+{{ label }}{{count}} / {{maxcharacter || maxlength}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxs b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxs
new file mode 100644
index 0000000..eae6814
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxs
@@ -0,0 +1,15 @@
+var utils = require('../common/utils.wxs');
+
+function textareaStyle(autosize) {
+ if (autosize && autosize.constructor === 'Object') {
+ return utils._style({
+ 'min-height': utils.addUnit(autosize.minHeight),
+ 'max-height': utils.addUnit(autosize.maxHeight),
+ });
+ }
+ return '';
+}
+
+module.exports = {
+ textareaStyle: textareaStyle,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxss b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxss
new file mode 100644
index 0000000..2192543
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/textarea.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-textarea{display:flex;flex-direction:column;box-sizing:border-box;padding:32rpx 32rpx;background-color:var(--td-textarea-background-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-textarea__label:not(:empty){font-size:var(--td-font-size-base,28rpx);color:var(--td-textarea-label-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));flex-shrink:0;line-height:44rpx;padding-bottom:var(--td-spacer,16rpx);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.t-textarea__wrapper{display:flex;flex-direction:column;width:100%;flex:1 1 auto;overflow:hidden}.t-textarea__wrapper-inner{flex:1 1 auto;box-sizing:border-box;width:inherit;min-width:0;min-height:20px;margin:0;padding:0;text-align:left;background-color:transparent;border:0;resize:none;font-size:var(--td-font-size-m,32rpx);color:var(--td-textarea-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))));line-height:48rpx}.t-textarea__placeholder{color:var(--td-textarea-placeholder-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-font-size-m,32rpx)}.t-textarea__indicator:not(:empty){flex-shrink:0;color:var(--td-textarea-indicator-text-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));font-size:var(--td-spacer-1,24rpx);text-align:right;line-height:40rpx;padding-top:var(--td-spacer,16rpx)}.t-textarea--border{border-radius:var(--td-textarea-border-radius,var(--td-radius-default,12rpx));border:2rpx solid var(--td-textarea-border-color,var(--td-component-border,var(--td-gray-color-4,#dcdcdc)))}.t-textarea .t-is-disabled{color:var(--td-textarea-disabled-text-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/type.d.ts b/miniprogram_npm/tdesign-miniprogram/textarea/type.d.ts
new file mode 100644
index 0000000..b113606
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/type.d.ts
@@ -0,0 +1,114 @@
+export interface TdTextareaProps {
+ adjustPosition?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ allowInputOverMax?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ autofocus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ autosize?: {
+ type: null;
+ value?: boolean | {
+ maxHeight?: number;
+ minHeight?: number;
+ };
+ };
+ bordered?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmHold?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ confirmType?: {
+ type: StringConstructor;
+ value?: 'return' | 'send' | 'search' | 'next' | 'go' | 'done';
+ };
+ cursor?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ cursorSpacing?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ disableDefaultPadding?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ fixed?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ focus?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ holdKeyboard?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ indicator?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ label?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ maxcharacter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ maxlength?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ placeholder?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderClass?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ placeholderStyle?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ readonly?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ selectionEnd?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ selectionStart?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ showConfirmBar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ value?: {
+ type: null;
+ value?: TextareaValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: TextareaValue;
+ };
+}
+export declare type TextareaValue = string | number;
diff --git a/miniprogram_npm/tdesign-miniprogram/textarea/type.js b/miniprogram_npm/tdesign-miniprogram/textarea/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/textarea/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/index.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/index.d.ts
new file mode 100644
index 0000000..681cfef
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/index.d.ts
@@ -0,0 +1,22 @@
+///
+///
+declare type Context = WechatMiniprogram.Page.TrivialInstance | WechatMiniprogram.Component.TrivialInstance;
+declare type ToastType = 'loading' | 'success' | 'warning' | 'error';
+declare type ToastPositionType = 'top' | 'middle' | 'bottom';
+declare type ToastDirectionType = 'row' | 'column';
+export declare type ToastOptionsType = {
+ context?: Context;
+ selector?: string;
+ icon?: string;
+ message?: string;
+ duration?: number;
+ theme?: ToastType;
+ placement?: ToastPositionType;
+ preventScrollThrough?: boolean;
+ direction?: ToastDirectionType;
+ close?: () => void;
+};
+declare function Toast(options: ToastOptionsType): void;
+declare function showToast(options?: ToastOptionsType): void;
+declare function hideToast(options?: ToastOptionsType): void;
+export { Toast as default, showToast, hideToast };
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/index.js b/miniprogram_npm/tdesign-miniprogram/toast/index.js
new file mode 100644
index 0000000..15c4d25
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/index.js
@@ -0,0 +1 @@
+import{__rest}from"tslib";import{getInstance}from"../common/utils";function Toast(t){var o;const{context:s,selector:e="#t-toast"}=t,n=__rest(t,["context","selector"]),a=getInstance(s,e);a&&a.show(Object.assign(Object.assign({},n),{duration:null!==(o=n.duration)&&void 0!==o?o:2e3}))}function showToast(t={}){Toast(t)}function hideToast(t={}){const{context:o,selector:s="#t-toast"}=t,e=getInstance(o,s);e&&e.hide()}export{Toast as default,showToast,hideToast};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/props.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/props.d.ts
new file mode 100644
index 0000000..c6b0f86
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/props.d.ts
@@ -0,0 +1,3 @@
+import { TdToastProps } from './type';
+declare const props: TdToastProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/props.js b/miniprogram_npm/tdesign-miniprogram/toast/props.js
new file mode 100644
index 0000000..62194a3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/props.js
@@ -0,0 +1 @@
+const props={direction:{type:String,value:"row"},duration:{type:Number,value:2e3},icon:{type:null},message:{type:String},overlayProps:{type:Object},placement:{type:String,value:"middle"},preventScrollThrough:{type:Boolean,value:!1},showOverlay:{type:Boolean,value:!1},theme:{type:String},usingCustomNavbar:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/toast.d.ts
new file mode 100644
index 0000000..ce0f9fc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.d.ts
@@ -0,0 +1,31 @@
+///
+import { SuperComponent } from '../common/src/index';
+import { ToastOptionsType } from './index';
+declare type Timer = NodeJS.Timeout | null;
+export default class Toast extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ behaviors: string[];
+ hideTimer: Timer;
+ data: {
+ prefix: string;
+ classPrefix: string;
+ typeMapIcon: string;
+ };
+ properties: import("./type").TdToastProps;
+ lifetimes: {
+ detached(): void;
+ };
+ pageLifetimes: {
+ hide(): void;
+ };
+ methods: {
+ show(options: ToastOptionsType): void;
+ hide(): void;
+ destroyed(): void;
+ loop(): void;
+ };
+}
+export {};
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.js b/miniprogram_npm/tdesign-miniprogram/toast/toast.js
new file mode 100644
index 0000000..e1219aa
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import config from"../common/config";import props from"./props";import transition from"../mixins/transition";import{calcIcon}from"../common/utils";import useCustomNavbar from"../mixins/using-custom-navbar";const{prefix:prefix}=config,name=`${prefix}-toast`;let Toast=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.behaviors=[transition(),useCustomNavbar],this.hideTimer=null,this.data={prefix:prefix,classPrefix:name,typeMapIcon:""},this.properties=props,this.lifetimes={detached(){this.destroyed()}},this.pageLifetimes={hide(){this.hide()}},this.methods={show(e){this.hideTimer&&clearTimeout(this.hideTimer);const i={loading:"loading",success:"check-circle",warning:"error-circle",error:"close-circle"}[null==e?void 0:e.theme],t={direction:props.direction.value,duration:props.duration.value,icon:props.icon.value,message:props.message.value,placement:props.placement.value,preventScrollThrough:props.preventScrollThrough.value,theme:props.theme.value},o=Object.assign(Object.assign(Object.assign({},t),e),{visible:!0,isLoading:"loading"===(null==e?void 0:e.theme),_icon:calcIcon(null!=i?i:e.icon)}),{duration:s}=o;this.setData(o),s>0&&(this.hideTimer=setTimeout((()=>{this.hide()}),s))},hide(){var e,i;this.data.visible&&(this.setData({visible:!1}),null===(i=null===(e=this.data)||void 0===e?void 0:e.close)||void 0===i||i.call(e),this.triggerEvent("close"))},destroyed(){this.hideTimer&&(clearTimeout(this.hideTimer),this.hideTimer=null),this.triggerEvent("destory")},loop(){}}}};Toast=__decorate([wxComponent()],Toast);export default Toast;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.json b/miniprogram_npm/tdesign-miniprogram/toast/toast.json
new file mode 100644
index 0000000..a594851
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-icon":"../icon/icon","t-loading":"../loading/loading","t-overlay":"../overlay/overlay"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.wxml b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxml
new file mode 100644
index 0000000..c502d01
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxml
@@ -0,0 +1 @@
+{{message}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/toast.wxss b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxss
new file mode 100644
index 0000000..3db4985
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/toast.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-toast{position:fixed;right:-50%;left:50%;transform:translate(-50%,-50%);z-index:12001;opacity:1;transition:opacity .3s ease;background-color:var(--td-toast-bg-color,var(--td-font-gray-2,rgba(0,0,0,.6)));border-radius:var(--td-toast-radius,8rpx);font-size:28rpx;color:var(--td-toast-color,var(--td-text-color-anti,var(--td-font-white-1,#fff)));max-width:var(--td-toast-max-width,374rpx);width:fit-content;box-sizing:border-box}.t-toast--column{padding:48rpx;min-width:160rpx;min-height:160rpx;border-radius:16rpx;display:flex;align-items:center;justify-content:center}.t-toast--loading.t-toast--with-text{min-width:204rpx;min-height:204rpx;padding-top:0;padding-bottom:0}.t-toast__content{align-items:center;line-height:44rpx}.t-toast__content--row{display:flex;text-align:left;padding:28rpx 44rpx}.t-toast__content--column{display:flex;flex-direction:column;justify-content:center;align-items:center}.t-toast__icon--row{display:flex;font-size:var(--td-toast-row-icon-size,48rpx)}.t-toast__icon--column{font-size:var(--td-toast-column-icon-size,64rpx)}.t-toast__text{overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;display:-webkit-box;-webkit-box-orient:vertical;white-space:pre-line}.t-toast__text--column:not(:empty):not(:only-child){margin-top:16rpx}.t-toast__text--row:not(:empty):not(:only-child){margin-left:16rpx}.t-toast.t-fade-enter,.t-toast.t-fade-leave-to{opacity:0}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/type.d.ts b/miniprogram_npm/tdesign-miniprogram/toast/type.d.ts
new file mode 100644
index 0000000..d7fd295
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/type.d.ts
@@ -0,0 +1,43 @@
+import { OverlayProps } from '../overlay/index';
+export interface TdToastProps {
+ direction?: {
+ type: StringConstructor;
+ value?: 'row' | 'column';
+ };
+ duration?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ icon?: {
+ type: null;
+ value?: string | object;
+ };
+ message?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ overlayProps?: {
+ type: ObjectConstructor;
+ value?: OverlayProps;
+ };
+ placement?: {
+ type: StringConstructor;
+ value?: 'top' | 'middle' | 'bottom';
+ };
+ preventScrollThrough?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ showOverlay?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ theme?: {
+ type: StringConstructor;
+ value?: 'loading' | 'success' | 'warning' | 'error';
+ };
+ usingCustomNavbar?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/toast/type.js b/miniprogram_npm/tdesign-miniprogram/toast/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/toast/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/index.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/index.d.ts
new file mode 100644
index 0000000..e5ac999
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/index.d.ts
@@ -0,0 +1,2 @@
+export * from './props';
+export * from './type';
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/index.js b/miniprogram_npm/tdesign-miniprogram/transition/index.js
new file mode 100644
index 0000000..cdff944
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/index.js
@@ -0,0 +1 @@
+export*from"./props";export*from"./type";
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/props.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/props.d.ts
new file mode 100644
index 0000000..0343aed
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTransitionProps } from './type';
+declare const props: TdTransitionProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/props.js b/miniprogram_npm/tdesign-miniprogram/transition/props.js
new file mode 100644
index 0000000..d764748
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/props.js
@@ -0,0 +1 @@
+const props={appear:{type:Boolean,value:!1},destoryOnHide:{type:Boolean,value:!1},durations:{type:null},name:{type:String,value:"t-transition"},visible:{type:Boolean,value:!1}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/transition.d.ts
new file mode 100644
index 0000000..e487bd5
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.d.ts
@@ -0,0 +1,8 @@
+import { SuperComponent } from '../common/src/index';
+export default class Transition extends SuperComponent {
+ externalClasses: string[];
+ behaviors: string[];
+ data: {
+ classPrefix: string;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.js b/miniprogram_npm/tdesign-miniprogram/transition/transition.js
new file mode 100644
index 0000000..5a12f8b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import transition from"../mixins/transition";import config from"../common/config";const{prefix:prefix}=config,name=`${prefix}-transition`;let Transition=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.behaviors=[transition()],this.data={classPrefix:name}}};Transition=__decorate([wxComponent()],Transition);export default Transition;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.json b/miniprogram_npm/tdesign-miniprogram/transition/transition.json
new file mode 100644
index 0000000..c673d75
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.wxml b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxml
new file mode 100644
index 0000000..1bba30f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/transition.wxss b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxss
new file mode 100644
index 0000000..c9a2eb3
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/transition.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-transition-enter{opacity:0}.t-transition-enter-to{opacity:1;transition:opacity 1s}.t-transition-leave{opacity:1}.t-transition-leave-to{opacity:0;transition:opacity 1s}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/type.d.ts b/miniprogram_npm/tdesign-miniprogram/transition/type.d.ts
new file mode 100644
index 0000000..998100c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/type.d.ts
@@ -0,0 +1,22 @@
+export interface TdTransitionProps {
+ appear?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ destoryOnHide?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ durations?: {
+ type: null;
+ value?: number | number[];
+ };
+ name?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ visible?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/transition/type.js b/miniprogram_npm/tdesign-miniprogram/transition/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/transition/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/index.wxs b/miniprogram_npm/tdesign-miniprogram/tree-select/index.wxs
new file mode 100644
index 0000000..dc28a9d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/index.wxs
@@ -0,0 +1,7 @@
+var getTreeClass = function (level, total) {
+ if (level === 0) return 'right';
+ if (level === 1 && level !== total - 1) return 'middle';
+ return 'left';
+};
+
+module.exports.getTreeClass = getTreeClass;
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/props.d.ts b/miniprogram_npm/tdesign-miniprogram/tree-select/props.d.ts
new file mode 100644
index 0000000..465bea2
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/props.d.ts
@@ -0,0 +1,3 @@
+import { TdTreeSelectProps } from './type';
+declare const props: TdTreeSelectProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/props.js b/miniprogram_npm/tdesign-miniprogram/tree-select/props.js
new file mode 100644
index 0000000..8dd3cb8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/props.js
@@ -0,0 +1 @@
+const props={customValue:{type:null},height:{type:null,value:336},keys:{type:Object},multiple:{type:Boolean,value:!1},options:{type:Array,value:[]},value:{type:null,value:null},defaultValue:{type:null}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.d.ts b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.d.ts
new file mode 100644
index 0000000..f45736e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.d.ts
@@ -0,0 +1,31 @@
+import { SuperComponent } from '../common/src/index';
+import type { TreeOptionData } from '../common/common';
+export default class TreeSelect extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ prefix: string;
+ classPrefix: string;
+ scrollIntoView: any;
+ };
+ properties: import("./type").TdTreeSelectProps>;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'value, customValue, options, keys, multiple'(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ methods: {
+ buildTreeOptions(): void;
+ getScrollIntoView(status: string): void;
+ onRootChange(e: any): void;
+ handleTreeClick(e: any): void;
+ handleChange(e: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.js b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.js
new file mode 100644
index 0000000..f924036
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.js
@@ -0,0 +1 @@
+import{__decorate}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import{isDef}from"../common/validator";import config from"../common/config";import props from"./props";const{prefix:prefix}=config,name=`${prefix}-tree-select`;let TreeSelect=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`,`${prefix}-class-left-column`,`${prefix}-class-left-item`,`${prefix}-class-middle-item`,`${prefix}-class-right-column`,`${prefix}-class-right-item`,`${prefix}-class-right-item-label`],this.options={multipleSlots:!0},this.data={prefix:prefix,classPrefix:name,scrollIntoView:null},this.properties=props,this.controlledProps=[{key:"value",event:"change"}],this.observers={"value, customValue, options, keys, multiple"(){this.buildTreeOptions()}},this.lifetimes={ready(){this.getScrollIntoView("init")}},this.methods={buildTreeOptions(){var e,l;const{options:t,value:i,customValue:o,multiple:n,keys:s}=this.data;if(!t.length)return;const r=[];let a=-1,c={children:t};for(;null==c?void 0:c.children;){a+=1;const t=c.children.map((e=>({label:e[(null==s?void 0:s.label)||"label"],value:e[(null==s?void 0:s.value)||"value"],disabled:e[(null==s?void 0:s.disabled)||"disabled"],children:e[(null==s?void 0:s.children)||"children"]})));r.push(t);const n=null!==(e=null==o?void 0:o[a])&&void 0!==e?e:null==i?void 0:i[a];c=n&&null!==(l=t.find((e=>e.value===n)))&&void 0!==l?l:t[0]}1===r.length&&(r.push([]),a+=1);const u=Math.max(0,a),d=o||r.map(((e,l)=>{var t,o,s;const a=l===r.length-1&&n?[null===(t=e[0])||void 0===t?void 0:t.value]:null===(o=e[0])||void 0===o?void 0:o.value;return null!==(s=null==i?void 0:i[l])&&void 0!==s?s:a}));this.setData({innerValue:d,leafLevel:u,treeOptions:r})},getScrollIntoView(e){const{value:l,customValue:t,scrollIntoView:i}=this.data;if("init"===e){const e=t||l,i=Array.isArray(e)?e.map((e=>Array.isArray(e)?e[0]:e)):[e];this.setData({scrollIntoView:i})}else{if(null===i)return;this.setData({scrollIntoView:null})}},onRootChange(e){const{innerValue:l}=this.data,{value:t}=e.detail;this.getScrollIntoView("none"),l[0]=t,this._trigger("change",{value:l,level:0})},handleTreeClick(e){const{level:l,value:t}=e.currentTarget.dataset,{innerValue:i}=this.data;i[l]=t,this.getScrollIntoView("none"),this._trigger("change",{value:i,level:1})},handleChange(e){const{innerValue:l}=this.data,{level:t,type:i}=e.target.dataset,{value:o}="multiple"===i?e.detail.context:e.detail;if("multiple"===i){isDef(l[t])||(l[t]=[]);const e=l[t].indexOf(o);-1===e?l[t].push(o):l[t].splice(e,1)}else l[t]=o;this.getScrollIntoView("none"),this._trigger("change",{value:l,level:t})}}}};TreeSelect=__decorate([wxComponent()],TreeSelect);export default TreeSelect;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.json b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.json
new file mode 100644
index 0000000..3b8f81a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-radio":"../radio/radio","t-radio-group":"../radio-group/radio-group","t-checkbox":"../checkbox/checkbox","t-checkbox-group":"../checkbox-group/checkbox-group","t-side-bar":"../side-bar/side-bar","t-side-bar-item":"../side-bar-item/side-bar-item","t-scroll-view":"../scroll-view/scroll-view"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxml b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxml
new file mode 100644
index 0000000..61ca34b
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxml
@@ -0,0 +1 @@
+{{item.label}}{{item.label}}{{item.label}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxss b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxss
new file mode 100644
index 0000000..8459f4d
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/tree-select.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-tree-select{display:flex;background-color:var(--td-tree-bg-color,var(--td-bg-color-container,var(--td-font-white-1,#fff)))}.t-tree-select__column{width:var(--td-tree-colum-width,206rpx);color:var(--td-tree-colum-text-color,var(--td-text-color-primary,var(--td-font-gray-1,rgba(0,0,0,.9))))}.t-tree-select__column--left{background:var(--td-tree-root-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)))}.t-tree-select__column--right{flex:1}.t-tree-select__column::-webkit-scrollbar{display:none;width:0;height:0;color:transparent}.t-tree-select__item{overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;height:var(--td-tree-item-height,112rpx);line-height:var(--td-tree-item-height,112rpx);font-size:var(--td-tree-item-font-size,32rpx);padding-left:32rpx}.t-tree-select__item--active{font-weight:600;color:var(--td-tree-item-active-color,var(--td-brand-color,var(--td-primary-color-7,#0052d9)))}.t-tree-select__item--disabled{pointer-events:none;cursor:not-allowed;color:var(--td-tree-item-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-tree-select-column{width:100%;height:auto}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/type.d.ts b/miniprogram_npm/tdesign-miniprogram/tree-select/type.d.ts
new file mode 100644
index 0000000..e7718fc
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/type.d.ts
@@ -0,0 +1,32 @@
+import { TreeOptionData, TreeKeysType } from '../common/common';
+export interface TdTreeSelectProps {
+ customValue?: {
+ type: null;
+ value?: TreeSelectValue;
+ };
+ height?: {
+ type: null;
+ value?: string | number;
+ };
+ keys?: {
+ type: ObjectConstructor;
+ value?: TreeKeysType;
+ };
+ multiple?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ options?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ value?: {
+ type: null;
+ value?: TreeSelectValue;
+ };
+ defaultValue?: {
+ type: null;
+ value?: TreeSelectValue;
+ };
+}
+export declare type TreeSelectValue = string | number | Array;
diff --git a/miniprogram_npm/tdesign-miniprogram/tree-select/type.js b/miniprogram_npm/tdesign-miniprogram/tree-select/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/tree-select/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/drag.wxs b/miniprogram_npm/tdesign-miniprogram/upload/drag.wxs
new file mode 100644
index 0000000..a136b58
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/drag.wxs
@@ -0,0 +1,238 @@
+var classPrefix = '';
+var startIndex = 0;
+var endIndex = 0;
+var dragCollisionList = [];
+
+var isOutRange = function (x1, y1, x2, y2, x3, y3) {
+ return x1 < 0 || x1 >= y1 || x2 < 0 || x2 >= y2 || x3 < 0 || x3 >= y3;
+};
+
+var sortCore = function (sKey, eKey, st) {
+ var _ = st.dragBaseData;
+
+ var excludeFix = function (cKey, type) {
+ if (st.list[cKey].fixed) {
+ // fixed 元素位置不会变化, 这里直接用 cKey(sortKey) 获取, 更加快捷
+ type ? --cKey : ++cKey;
+ return excludeFix(cKey, type);
+ }
+ return cKey;
+ };
+
+ // 先获取到 endKey 对应的 realKey, 防止下面排序过程中该 realKey 被修改
+ var endRealKey = -1;
+ st.list.forEach(function (item) {
+ if (item.sortKey === eKey) endRealKey = item.realKey;
+ });
+
+ return st.list.map(function (item) {
+ if (item.fixed) return item;
+ var cKey = item.sortKey;
+ var rKey = item.realKey;
+
+ if (sKey < eKey) {
+ // 正序拖动
+ if (cKey > sKey && cKey <= eKey) {
+ --rKey;
+ cKey = excludeFix(--cKey, true);
+ } else if (cKey === sKey) {
+ rKey = endRealKey;
+ cKey = eKey;
+ }
+ } else if (sKey > eKey) {
+ // 倒序拖动
+ if (cKey >= eKey && cKey < sKey) {
+ ++rKey;
+ cKey = excludeFix(++cKey, false);
+ } else if (cKey === sKey) {
+ rKey = endRealKey;
+ cKey = eKey;
+ }
+ }
+
+ if (item.sortKey !== cKey) {
+ item.tranX = (cKey % _.columns) * 100 + '%';
+ item.tranY = Math.floor(cKey / _.columns) * 100 + '%';
+ item.sortKey = cKey;
+ item.realKey = rKey;
+ }
+ return item;
+ });
+};
+
+var triggerCustomEvent = function (list, type, ins) {
+ var _list = [],
+ listData = [];
+
+ list.forEach(function (item) {
+ _list[item.sortKey] = item;
+ });
+
+ _list.forEach(function (item) {
+ if (!item.extraNode) {
+ listData.push(item.data);
+ }
+ });
+
+ ins.triggerEvent(type, { listData: listData });
+};
+
+var longPress = function (event, ownerInstance) {
+ var ins = event.instance;
+ var st = ownerInstance.getState();
+ var _ = st.dragBaseData;
+
+ var sTouch = event.changedTouches[0];
+ if (!sTouch) return;
+
+ st.cur = ins.getDataset().index;
+ longPressIndex = st.cur;
+
+ // 初始项是固定项则返回
+ var item = st.list[st.cur];
+ if (item && item.fixed) return;
+
+ // 如果已经在 drag 中则返回, 防止多指触发 drag 动作, touchstart 事件中有效果
+ if (st.dragging) return;
+ st.dragging = true;
+ ownerInstance.callMethod('dragStatusChange', { dragging: true });
+
+ // 计算X,Y轴初始位移, 使 item 中心移动到点击处, 单列时候X轴初始不做位移
+ st.tranX = _.columns === 1 ? 0 : sTouch.pageX - (_.itemWidth / 2 + _.wrapLeft);
+ st.tranY = sTouch.pageY - (_.itemHeight / 2 + _.wrapTop);
+ st.sId = sTouch.identifier;
+ ins.setStyle({
+ transform: 'translate3d(' + st.tranX + 'px, ' + st.tranY + 'px, 0)',
+ });
+ st.itemsInstance.forEach(function (item, index) {
+ item.removeClass(classPrefix + '__drag--tran').removeClass(classPrefix + '__drag--cur');
+ item.addClass(index === st.cur ? classPrefix + '__drag--cur' : classPrefix + '__drag--tran');
+ });
+ ownerInstance.callMethod('dragVibrate', { vibrateType: 'longPress' });
+};
+
+var touchMove = function (event, ownerInstance) {
+ var ins = event.instance;
+ var st = ownerInstance.getState();
+ var _ = st.dragBaseData;
+
+ var mTouch = event.changedTouches[0];
+ if (!mTouch) return;
+
+ if (!st.dragging) return;
+
+ // 如果不是同一个触发点则返回
+ if (st.sId !== mTouch.identifier) return;
+
+ // 计算X,Y轴位移, 单列时候X轴初始不做位移
+ var tranX = _.columns === 1 ? 0 : mTouch.pageX - (_.itemWidth / 2 + _.wrapLeft);
+ var tranY = mTouch.pageY - (_.itemHeight / 2 + _.wrapTop);
+
+ // 到顶到底自动滑动
+ if (mTouch.clientY > _.windowHeight - _.itemHeight - _.realBottomSize) {
+ // 当前触摸点pageY + item高度 - (屏幕高度 - 底部固定区域高度)
+ ownerInstance.callMethod('pageScroll', {
+ scrollTop: mTouch.pageY + _.itemHeight - (_.windowHeight - _.realBottomSize),
+ });
+ } else if (mTouch.clientY < _.itemHeight + _.realTopSize) {
+ // 当前触摸点pageY - item高度 - 顶部固定区域高度
+ ownerInstance.callMethod('pageScroll', {
+ scrollTop: mTouch.pageY - _.itemHeight - _.realTopSize,
+ });
+ }
+
+ // 设置当前激活元素偏移量
+ ins.setStyle({
+ transform: 'translate3d(' + tranX + 'px, ' + tranY + 'px, 0)',
+ });
+
+ var startKey = st.list[st.cur].sortKey;
+ var curX = Math.round(tranX / _.itemWidth);
+ var curY = Math.round(tranY / _.itemHeight);
+ var endKey = curX + _.columns * curY;
+
+ // 目标项是固定项则返回
+ var item = st.list[endKey];
+ if (item && item.fixed) return;
+
+ // X轴或Y轴超出范围则返回
+ if (isOutRange(curX, _.columns, curY, _.rows, endKey, st.list.length)) return;
+
+ // 防止拖拽过程中发生乱序问题
+ if (startKey === endKey || startKey === st.preStartKey) return;
+ st.preStartKey = startKey;
+
+ dragCollisionList = sortCore(startKey, endKey, st);
+ startIndex = startKey;
+ endIndex = endKey;
+ st.itemsInstance.forEach(function (itemIns, index) {
+ var item = dragCollisionList[index];
+ if (index !== st.cur) {
+ itemIns.setStyle({
+ transform: 'translate3d(' + item.tranX + ',' + item.tranY + ', 0)',
+ });
+ }
+ });
+
+ ownerInstance.callMethod('dragVibrate', { vibrateType: 'touchMove' });
+ ownerInstance.callMethod('dragCollision', {
+ dragCollisionList: dragCollisionList,
+ startIndex: startIndex,
+ endIndex: endIndex,
+ });
+ triggerCustomEvent(dragCollisionList, 'change', ownerInstance);
+};
+
+var touchEnd = function (event, ownerInstance) {
+ var ins = event.instance;
+ var st = ownerInstance.getState();
+
+ if (!st.dragging) return;
+ triggerCustomEvent(st.list, 'sortend', ownerInstance);
+ ins.addClass(classPrefix + '__drag--tran');
+ ins.setStyle({
+ transform: 'translate3d(' + st.list[st.cur].tranX + ',' + st.list[st.cur].tranY + ', 0)',
+ });
+ st.preStartKey = -1;
+ st.dragging = false;
+ ownerInstance.callMethod('dragStatusChange', { dragging: false });
+ ownerInstance.callMethod('dragEnd', {
+ dragCollisionList: dragCollisionList,
+ startIndex: startIndex,
+ endIndex: endIndex,
+ });
+ st.cur = -1;
+ st.tranX = 0;
+ st.tranY = 0;
+};
+
+var baseDataObserver = function (newVal, oldVal, ownerInstance, ins) {
+ var st = ownerInstance.getState();
+ st.dragBaseData = newVal;
+ classPrefix = newVal.classPrefix;
+};
+
+var listObserver = function (newVal, oldVal, ownerInstance, ins) {
+ var st = ownerInstance.getState();
+ st.itemsInstance = ownerInstance.selectAllComponents('.' + classPrefix + '__drag-item');
+ st.list = newVal || [];
+ st.list.forEach(function (item, index) {
+ var itemIns = st.itemsInstance[index];
+ if (item && itemIns) {
+ itemIns.removeClass(classPrefix + '__drag--tran');
+ itemIns.setStyle({
+ transform: 'translate3d(' + item.tranX + ',' + item.tranY + ', 0)',
+ });
+ if (item.fixed) itemIns.addClass(classPrefix + '__drag--fixed');
+ }
+ });
+ dragCollisionList = [];
+};
+
+module.exports = {
+ longPress: longPress,
+ touchMove: touchMove,
+ touchEnd: touchEnd,
+ baseDataObserver: baseDataObserver,
+ listObserver: listObserver,
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/props.d.ts b/miniprogram_npm/tdesign-miniprogram/upload/props.d.ts
new file mode 100644
index 0000000..2f7371c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/props.d.ts
@@ -0,0 +1,3 @@
+import { TdUploadProps } from './type';
+declare const props: TdUploadProps;
+export default props;
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/props.js b/miniprogram_npm/tdesign-miniprogram/upload/props.js
new file mode 100644
index 0000000..152bb87
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/props.js
@@ -0,0 +1 @@
+const props={addBtn:{type:Boolean,value:!0},addContent:{type:String},allowUploadDuplicateFile:{type:Boolean,value:!1},config:{type:Object},disabled:{type:null,value:void 0},draggable:{type:null},files:{type:Array,value:null},defaultFiles:{type:Array},gridConfig:{type:Object},gutter:{type:Number,value:16},imageProps:{type:Object},max:{type:Number,value:0},mediaType:{type:Array,value:["image","video"]},removeBtn:{type:Boolean,value:!0},requestMethod:{type:null},sizeLimit:{type:null},source:{type:String,value:"media"},transition:{type:Object,value:{backTransition:!0,duration:300,timingFunction:"ease"}}};export default props;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/type.d.ts b/miniprogram_npm/tdesign-miniprogram/upload/type.d.ts
new file mode 100644
index 0000000..66f1723
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/type.d.ts
@@ -0,0 +1,117 @@
+import { ImageProps } from '../image/index';
+export interface TdUploadProps {
+ addBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ addContent?: {
+ type: StringConstructor;
+ value?: string;
+ };
+ allowUploadDuplicateFile?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ config?: {
+ type: ObjectConstructor;
+ value?: UploadMpConfig;
+ };
+ disabled?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ draggable?: {
+ type: null;
+ value?: boolean | {
+ vibrate?: boolean;
+ collisionVibrate?: boolean;
+ };
+ };
+ files?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ defaultFiles?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ gridConfig?: {
+ type: ObjectConstructor;
+ value?: {
+ column?: number;
+ width?: number;
+ height?: number;
+ };
+ };
+ gutter?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ imageProps?: {
+ type: ObjectConstructor;
+ value?: ImageProps;
+ };
+ max?: {
+ type: NumberConstructor;
+ value?: number;
+ };
+ mediaType?: {
+ type: ArrayConstructor;
+ value?: Array;
+ };
+ removeBtn?: {
+ type: BooleanConstructor;
+ value?: boolean;
+ };
+ requestMethod?: {
+ type: undefined;
+ value?: null;
+ };
+ sizeLimit?: {
+ type: null;
+ value?: number | SizeLimitObj;
+ };
+ source?: {
+ type: StringConstructor;
+ value?: 'media' | 'messageFile';
+ };
+ transition?: {
+ type: ObjectConstructor;
+ value?: Transition;
+ };
+}
+export declare type UploadMpConfig = ImageConfig | VideoConfig;
+export interface ImageConfig {
+ count?: number;
+ sizeType?: Array;
+ sourceType?: Array;
+}
+export declare type SizeTypeValues = 'original' | 'compressed';
+export declare type SourceTypeValues = 'album' | 'camera';
+export interface VideoConfig {
+ sourceType?: Array;
+ compressed?: boolean;
+ maxDuration?: number;
+ camera?: 'back' | 'front';
+}
+export interface UploadFile {
+ url: string;
+ name?: string;
+ size?: number;
+ type?: 'image' | 'video';
+ percent?: number;
+ status: 'loading' | 'reload' | 'failed' | 'done';
+}
+export declare type MediaType = 'image' | 'video';
+export interface SizeLimitObj {
+ size: number;
+ unit: SizeUnit;
+ message?: string;
+}
+export declare type SizeUnitArray = ['B', 'KB', 'MB', 'GB'];
+export declare type SizeUnit = SizeUnitArray[number];
+export interface Transition {
+ backTransition?: boolean;
+ duration?: number;
+ timingFunction?: string;
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/type.js b/miniprogram_npm/tdesign-miniprogram/upload/type.js
new file mode 100644
index 0000000..17bca46
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/type.js
@@ -0,0 +1 @@
+export{};
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload-info.json b/miniprogram_npm/tdesign-miniprogram/upload/upload-info.json
new file mode 100644
index 0000000..a19ec9e
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload-info.json
@@ -0,0 +1 @@
+{"key":"Upload","label":"上传","icon":"","properties":[{"key":"addContent","type":["String","TNode"],"defaultValue":"","desc":"添加按钮内容。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"config","type":["Object"],"defaultValue":"","desc":"图片上传配置,视频上传配置,文件上传配置等,包含图片尺寸、图片来源、视频来源、视频拍摄最长时间等。更多细节查看小程序官网。[图片上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html)。[视频上传](https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseVideo.html)","label":""},{"key":"deleteBtn","type":["String","TNode"],"defaultValue":"","desc":"删除图标。值为空,使用默认图标渲染;值为 slot 则表示使用插槽渲染;其他值无效。","label":""},{"key":"fileListDisplay","type":["TNode"],"defaultValue":"","desc":"【开发中】用于完全自定义文件列表内容","label":""},{"key":"files","type":["Array"],"defaultValue":"","desc":"已上传文件列表","label":""},{"key":"gridConfig","type":["Object"],"defaultValue":"","desc":"upload组件每行上传图片列数以及图片的宽度和高度","label":""},{"key":"gutter","type":["Number"],"defaultValue":"16","desc":"预览窗格的 gutter 大小,单位 rpx","label":""},{"key":"imageProps","type":["Object"],"defaultValue":"","desc":"透传 Image 组件全部属性","label":""},{"key":"max","type":["Number"],"defaultValue":"0","desc":"用于控制文件上传数量,值为 0 则不限制","label":""},{"key":"mediaType","type":["Array"],"defaultValue":"['image', 'video']","desc":"支持上传的文件类型,图片或视频","label":""},{"key":"requestMethod","type":["Function"],"defaultValue":"","desc":"自定义上传方法","label":""},{"key":"sizeLimit","type":["Number","Object"],"defaultValue":"","desc":"图片文件大小限制,单位 KB。可选单位有:`'B' | 'KB' | 'MB' | 'GB'`。示例一:`1000`。示例二:`{ size: 2, unit: 'MB', message: '图片大小不超过 {sizeLimit} MB' }`","label":""}],"events":[{"key":"add","desc":"上传成功后触发,仅包含本次选择的照片;`context.url` 表示选定视频的临时文件路径 (本地路径)。`context.duration` 表示选定视频的时间长度。`context.size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""},{"key":"complete","desc":"上传成功或失败后触发","label":""},{"key":"fail","desc":"上传失败后触发","label":""},{"key":"remove","desc":"移除文件时触发","label":""},{"key":"selectChange","desc":"选择文件或图片之后,上传之前,触发该事件。
`params.value` 表示之前已经上传完成的文件列表。
`params.currentSelectedFiles` 表示本次上传选中的文件列表","label":""},{"key":"success","desc":"上传成功后触发,包含所有上传的文件;`context.url` 表示选定视频的临时文件路径 (本地路径)。`context.duration` 表示选定视频的时间长度。`context.size`选定视频的数据量大小。更多描述参考 wx.chooseMedia 小程序官网描述","label":""}]}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.d.ts b/miniprogram_npm/tdesign-miniprogram/upload/upload.d.ts
new file mode 100644
index 0000000..6c3225a
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.d.ts
@@ -0,0 +1,60 @@
+import { SuperComponent } from '../common/src/index';
+import { UploadFile } from './type';
+export default class Upload extends SuperComponent {
+ externalClasses: string[];
+ options: {
+ multipleSlots: boolean;
+ };
+ data: {
+ classPrefix: string;
+ prefix: string;
+ current: boolean;
+ proofs: any[];
+ customFiles: UploadFile[];
+ customLimit: number;
+ column: number;
+ dragBaseData: {};
+ rows: number;
+ dragWrapStyle: string;
+ dragList: any[];
+ dragging: boolean;
+ dragLayout: boolean;
+ };
+ properties: import("./type").TdUploadProps;
+ controlledProps: {
+ key: string;
+ event: string;
+ }[];
+ observers: {
+ 'files, max, draggable'(files: UploadFile, max: number): void;
+ gridConfig(): void;
+ };
+ lifetimes: {
+ ready(): void;
+ };
+ onProofTap(e: any): void;
+ handleLimit(customFiles: UploadFile[], max: number): void;
+ triggerSuccessEvent(files: any): void;
+ triggerFailEvent(err: any): void;
+ onFileClick(e: any): void;
+ getFileType(mediaType: string[], tempFilePath: string, fileType?: string): string;
+ getRandFileName(filePath: any): string;
+ onDelete(e: any): void;
+ deleteHandle(index: number): void;
+ updateGrid(): void;
+ initDragLayout(): void;
+ initDragList(): void;
+ initDragBaseData(): void;
+ methods: {
+ uploadFiles(files: UploadFile[]): Promise;
+ startUpload(files: UploadFile[]): any;
+ onAddTap(): void;
+ chooseMedia(mediaType: any): void;
+ chooseMessageFile(mediaType: any): void;
+ afterSelect(files: any): void;
+ dragVibrate(e: any): void;
+ dragStatusChange(e: any): void;
+ dragEnd(e: any): void;
+ triggerDropEvent(files: any): void;
+ };
+}
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.js b/miniprogram_npm/tdesign-miniprogram/upload/upload.js
new file mode 100644
index 0000000..93943e8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.js
@@ -0,0 +1 @@
+import{__decorate,__rest}from"tslib";import{SuperComponent,wxComponent}from"../common/src/index";import props from"./props";import config from"../common/config";import{isOverSize}from"../common/utils";import{isObject}from"../common/validator";const{prefix:prefix}=config,name=`${prefix}-upload`;let Upload=class extends SuperComponent{constructor(){super(...arguments),this.externalClasses=[`${prefix}-class`],this.options={multipleSlots:!0},this.data={classPrefix:name,prefix:prefix,current:!1,proofs:[],customFiles:[],customLimit:0,column:4,dragBaseData:{},rows:0,dragWrapStyle:"",dragList:[],dragging:!0,dragLayout:!1},this.properties=props,this.controlledProps=[{key:"files",event:"success"}],this.observers={"files, max, draggable"(t,e){this.handleLimit(t,e)},gridConfig(){this.updateGrid()}},this.lifetimes={ready(){this.handleLimit(this.data.customFiles,this.data.max),this.updateGrid()}},this.methods={uploadFiles(t){return new Promise((e=>{const i=this.data.requestMethod(t);if(i instanceof Promise)return i;e({})}))},startUpload(t){return"function"==typeof this.data.requestMethod?this.uploadFiles(t).then((()=>{t.forEach((t=>{t.percent=100})),this.triggerSuccessEvent(t)})).catch((t=>{this.triggerFailEvent(t)})):(this.triggerSuccessEvent(t),this.handleLimit(this.data.customFiles,this.data.max),Promise.resolve())},onAddTap(){const{disabled:t,mediaType:e,source:i}=this.properties;t||("media"===i?this.chooseMedia(e):this.chooseMessageFile(e))},chooseMedia(t){const{customLimit:e}=this.data,{config:i,sizeLimit:s}=this.properties;wx.chooseMedia(Object.assign(Object.assign({count:Math.min(20,e),mediaType:t},i),{success:e=>{const i=[];e.tempFiles.forEach((e=>{const{size:r,fileType:a,tempFilePath:o,width:n,height:l,duration:c,thumbTempFilePath:h}=e,g=__rest(e,["size","fileType","tempFilePath","width","height","duration","thumbTempFilePath"]);if(isOverSize(r,s)){let t=("image"===a?"图片":"视频")+"大小超过限制";return"number"!=typeof s&&(t=s.message.replace("{sizeLimit}",null==s?void 0:s.size)),void wx.showToast({icon:"none",title:t})}const d=this.getRandFileName(o);i.push(Object.assign({name:d,type:this.getFileType(t,o,a),url:o,size:r,width:n,height:l,duration:c,thumb:h,percent:0},g))})),this.afterSelect(i)},fail:t=>{this.triggerFailEvent(t)},complete:t=>{this.triggerEvent("complete",t)}}))},chooseMessageFile(t){const{customLimit:e}=this.data,{config:i,sizeLimit:s}=this.properties;wx.chooseMessageFile(Object.assign(Object.assign({count:Math.min(100,e),type:Array.isArray(t)?"all":t},i),{success:e=>{const i=[];e.tempFiles.forEach((e=>{const{size:r,type:a,path:o}=e,n=__rest(e,["size","type","path"]);if(isOverSize(r,s)){let t=("image"===a?"图片":"视频")+"大小超过限制";return"number"!=typeof s&&(t=s.message.replace("{sizeLimit}",null==s?void 0:s.size)),void wx.showToast({icon:"none",title:t})}const l=this.getRandFileName(o);i.push(Object.assign({name:l,type:this.getFileType(t,o,a),url:o,size:r,percent:0},n))})),this.afterSelect(i)},fail:t=>this.triggerFailEvent(t),complete:t=>this.triggerEvent("complete",t)}))},afterSelect(t){this._trigger("select-change",{files:[...this.data.customFiles],currentSelectedFiles:[t]}),this._trigger("add",{files:t}),this.startUpload(t)},dragVibrate(t){var e;const{vibrateType:i}=t,{draggable:s}=this.data,r=null===(e=null==s?void 0:s.vibrate)||void 0===e||e,a=null==s?void 0:s.collisionVibrate;(r&&"longPress"===i||a&&"touchMove"===i)&&wx.vibrateShort({type:"light"})},dragStatusChange(t){const{dragging:e}=t;this.setData({dragging:e})},dragEnd(t){const{dragCollisionList:e}=t;let i=[];i=0===e.length?this.data.customFiles:e.reduce(((t,e)=>{const{realKey:i,data:s,fixed:r}=e;return r||(t[i]=Object.assign({},s)),t}),[]),this.triggerDropEvent(i)},triggerDropEvent(t){const{transition:e}=this.properties;if(e.backTransition){const i=setTimeout((()=>{this.triggerEvent("drop",{files:t}),clearTimeout(i)}),e.duration)}else this.triggerEvent("drop",{files:t})}}}onProofTap(t){var e;this.onFileClick(t);const{index:i}=t.currentTarget.dataset;wx.previewImage({urls:this.data.customFiles.filter((t=>-1!==t.percent)).map((t=>t.url)),current:null===(e=this.data.customFiles[i])||void 0===e?void 0:e.url})}handleLimit(t,e){0===e&&(e=Number.MAX_SAFE_INTEGER),this.setData({customFiles:t.length>e?t.slice(0,e):t,customLimit:e-t.length,dragging:!0}),this.initDragLayout()}triggerSuccessEvent(t){this._trigger("success",{files:[...this.data.customFiles,...t]})}triggerFailEvent(t){this.triggerEvent("fail",t)}onFileClick(t){const{file:e}=t.currentTarget.dataset;this.triggerEvent("click",{file:e})}getFileType(t,e,i){if(i)return i;if(1===t.length)return t[0];const s=e.split("."),r=s[s.length-1];return["avi","wmv","mkv","mp4","mov","rm","3gp","flv","mpg","rmvb"].includes(r.toLocaleLowerCase())?"video":"image"}getRandFileName(t){const e=t.lastIndexOf("."),i=-1===e?"":t.substr(e);return parseInt(`${Date.now()}${Math.floor(900*Math.random()+100)}`,10).toString(36)+i}onDelete(t){const{index:e}=t.currentTarget.dataset;this.deleteHandle(e)}deleteHandle(t){const{customFiles:e}=this.data,i=e[t];this.triggerEvent("remove",{index:t,file:i})}updateGrid(){let{gridConfig:t={}}=this.properties;isObject(t)||(t={});const{column:e=4,width:i=160,height:s=160}=t;this.setData({gridItemStyle:`width:${i}rpx;height:${s}rpx`,column:e})}initDragLayout(){const{draggable:t,disabled:e}=this.properties;t&&!e&&(this.initDragList(),this.initDragBaseData())}initDragList(){let t=0;const{column:e,customFiles:i,customLimit:s}=this.data,r=[];if(i.forEach(((i,s)=>{r.push({realKey:t,sortKey:s,tranX:s%e*100+"%",tranY:100*Math.floor(s/e)+"%",data:Object.assign({},i)}),t+=1})),s>0){const t=r.length;r.push({realKey:t,sortKey:t,tranX:t%e*100+"%",tranY:100*Math.floor(t/e)+"%",fixed:!0})}this.data.rows=Math.ceil(r.length/e),this.setData({dragList:r})}initDragBaseData(){const{classPrefix:t,rows:e,column:i,customFiles:s}=this.data;if(0===s.length)return void this.setData({dragBaseData:{},dragWrapStyle:"",dragLayout:!1});const r=this.createSelectorQuery(),a=`.${t} >>> .t-grid-item`,o=`.${t} >>> .t-grid`;r.select(a).boundingClientRect(),r.select(o).boundingClientRect(),r.selectViewport().scrollOffset(),r.exec((s=>{const[{width:r,height:a},{left:o,top:n},{scrollTop:l}]=s,c={rows:e,classPrefix:t,itemWidth:r,itemHeight:a,wrapLeft:o,wrapTop:n+l,columns:i},h=`height: ${e*a}px`;this.setData({dragBaseData:c,dragWrapStyle:h,dragLayout:!0},(()=>{const t=setTimeout((()=>{this.setData({dragging:!1}),clearTimeout(t)}),0)}))}))}};Upload=__decorate([wxComponent()],Upload);export default Upload;
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.json b/miniprogram_npm/tdesign-miniprogram/upload/upload.json
new file mode 100644
index 0000000..e7b83d8
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.json
@@ -0,0 +1 @@
+{"component":true,"styleIsolation":"apply-shared","usingComponents":{"t-grid":"../grid/grid","t-grid-item":"../grid-item/grid-item","t-icon":"../icon/icon","t-image":"../image/image"}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.wxml b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxml
new file mode 100644
index 0000000..9bb6f78
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxml
@@ -0,0 +1 @@
+{{file.percent ? file.percent + '%' : '上传中...'}}{{file.status == 'reload' ? '重新上传' : '上传失败'}}{{addContent}}{{file.percent ? file.percent + '%' : '上传中...'}}{{file.status == 'reload' ? '重新上传' : '上传失败'}}{{addContent}}
\ No newline at end of file
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.wxs b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxs
new file mode 100644
index 0000000..03b321f
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxs
@@ -0,0 +1,15 @@
+module.exports.getWrapperAriaRole = function (file) {
+ return file.status && file.status != 'done' ? 'text' : 'button';
+};
+
+module.exports.getWrapperAriaLabel = function (file) {
+ if (file.status && file.status != 'done') {
+ if (file.status == 'loading') {
+ return file.percent ? '上传中:' + file.percent + '%' : '上传中';
+ } else {
+ return file.status == 'reload' ? '重新上传' : '上传失败';
+ }
+ } else {
+ return file.type === 'video' ? '视频' : '图像';
+ }
+};
diff --git a/miniprogram_npm/tdesign-miniprogram/upload/upload.wxss b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxss
new file mode 100644
index 0000000..0fa7d3c
--- /dev/null
+++ b/miniprogram_npm/tdesign-miniprogram/upload/upload.wxss
@@ -0,0 +1 @@
+@import '../common/style/index.wxss';.t-upload{position:relative}.t-upload__grid-content{padding:0}.t-upload__grid-file{position:relative}.t-upload__add-icon{width:100%;height:100%;display:none;align-items:center;justify-content:center;font-size:var(--td-upload-add-icon-font-size,56rpx);background-color:var(--td-upload-add-bg-color,var(--td-bg-color-secondarycontainer,var(--td-gray-color-1,#f3f3f3)));color:var(--td-upload-add-color,var(--td-text-color-placeholder,var(--td-font-gray-3,rgba(0,0,0,.4))));border-radius:var(--td-upload-radius,var(--td-radius-default,12rpx))}.t-upload__add-icon--disabled{background-color:var(--td-upload-add-disabled-bg-color,var(--td-bg-color-component-disabled,var(--td-gray-color-2,#eee)));color:var(--td-upload-add-icon-disabled-color,var(--td-text-color-disabled,var(--td-font-gray-4,rgba(0,0,0,.26))))}.t-upload__add-icon:only-child{display:flex}.t-upload__thumbnail{width:100%;height:100%;max-height:100%;overflow:hidden}.t-upload__wrapper{position:relative;border-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));overflow:hidden}.t-upload__wrapper--disabled::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--td-upload-disabled-mask,rgba(0,.6));z-index:1}.t-upload__close-btn{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;width:40rpx;height:40rpx;border-top-right-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));border-bottom-left-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));background-color:var(--td-font-gray-3,rgba(0,0,0,.4))}.t-upload__progress-mask{position:absolute;left:0;top:0;width:100%;height:100%;background-color:var(--td-font-gray-2,rgba(0,0,0,.6));display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--td-upload-radius,var(--td-radius-default,12rpx));color:var(--td-text-color-anti,var(--td-font-white-1,#fff));padding:32rpx 0;box-sizing:border-box}.t-upload__progress-text{font-size:24rpx;line-height:40rpx;margin-top:8rpx}.t-upload__progress-loading{animation:spin infinite linear .6s}.t-upload__drag{position:relative;width:100%;--td-grid-item-bg-color:transparent}.t-upload__drag-item{position:absolute;z-index:1;top:0;left:0;height:auto;width:100%}.t-upload__drag--fixed{z-index:0}.t-upload__drag--tran{transition-property:transform;transition-duration:var(--td-upload-drag-transition-duration);transition-timing-function:var(--td-upload-drag-transition-timing-function)}.t-upload__drag--cur{z-index:var(--td-upload-drag-z-index,999)}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
\ No newline at end of file
diff --git a/mock/WxMock.js b/mock/WxMock.js
new file mode 100644
index 0000000..aa63393
--- /dev/null
+++ b/mock/WxMock.js
@@ -0,0 +1,19 @@
+/* eslint-disable */
+var __request = wx.request;
+var Mock = require('./mock.js');
+Object.defineProperty(wx, 'request', { writable: true });
+wx.request = function (config) {
+ if (typeof Mock._mocked[config.url] == 'undefined') {
+ __request(config);
+ return;
+ }
+ var resTemplate = Mock._mocked[config.url].template;
+ var response = Mock.mock(resTemplate);
+ if (typeof config.success == 'function') {
+ config.success(response);
+ }
+ if (typeof config.complete == 'function') {
+ config.complete(response);
+ }
+};
+module.exports = Mock;
diff --git a/mock/chat.js b/mock/chat.js
new file mode 100644
index 0000000..10f7930
--- /dev/null
+++ b/mock/chat.js
@@ -0,0 +1,140 @@
+/** 模拟网络请求的延迟 */
+function delay(ms = 500) {
+ return new Promise((resolve) => {
+ setTimeout(resolve, ms);
+ });
+}
+
+// 模拟聊天数据
+const mockData = [
+ {
+ userId: 1,
+ name: 'Sean',
+ avatar: '/static/chat/avatar-Sean.png',
+ messages: [
+ { messageId: 1, from: 1, content: '那明天准时见哦😊', time: 1690646400000, read: true },
+ { messageId: 2, from: 0, content: '好的,我会记得的', time: 1690646400000, read: true },
+ { messageId: 3, from: 1, content: '在吗?', time: Date.now() - 3600000, read: false },
+ {
+ messageId: 4,
+ from: 1,
+ content: '有个问题想咨询一下,关于TDesign组件库如何更好地使用',
+ time: Date.now() - 3600000,
+ read: false,
+ },
+ ],
+ },
+ {
+ userId: 2,
+ name: 'Mollymolly',
+ avatar: '/static/chat/avatar-Mollymolly.png',
+ messages: [{ messageId: 5, from: 1, content: '好久不见,最近咋样?', time: 1692100800000, read: true }],
+ },
+ {
+ userId: 3,
+ name: 'Andrew',
+ avatar: '/static/chat/avatar-Andrew.png',
+ messages: [{ messageId: 6, from: 0, content: '现在没空,晚点再联系你哈', time: 1690084800000, read: true }],
+ },
+ {
+ userId: 4,
+ name: 'Kingdom',
+ avatar: '/static/chat/avatar-Kingdom.png',
+ messages: [{ messageId: 7, from: 1, content: '真的吗?', time: 1656880200000, read: true }],
+ },
+ {
+ userId: 5,
+ name: 'Paige',
+ avatar: '/static/chat/avatar-Paige.png',
+ messages: [
+ { messageId: 8, from: 1, content: '此次要评审的首页和专区页改版的交互方案', time: 1652963880000, read: true },
+ ],
+ },
+];
+
+// 模拟新增一条消息
+function addNewMessage(userId, from, content) {
+ const index = mockData.map((item) => item.userId).indexOf(userId);
+ const user = mockData.splice(index, 1)[0];
+ mockData.unshift(user);
+ let messageId = 0;
+ mockData.forEach((item) => {
+ messageId += item.messages.length;
+ });
+ const message = { messageId, from, content, time: Date.now(), read: from === 0 };
+ user.messages.push(message);
+
+ return message;
+}
+
+/** 模拟SocketTask */
+class MockSocketTask {
+ constructor(url) {
+ this.url = url;
+ this.onopen = () => {};
+ this.onmessage = () => {};
+ this.onclose = () => {};
+ delay(1000).then(() => {
+ this.onopen();
+ });
+ }
+
+ onOpen(callback) {
+ if (typeof callback === 'function') this.onopen = callback;
+ }
+
+ onMessage(callback) {
+ if (typeof callback === 'function') this.onmessage = callback;
+ }
+
+ send(data) {
+ data = JSON.parse(data);
+ if (data.type === 'message') {
+ const { userId, content } = data.data;
+ delay().then(() => {
+ const message = addNewMessage(userId, 0, content);
+ this.onmessage(JSON.stringify({ type: 'message', data: { userId, message } }));
+ });
+ // 模拟3秒后对方回复消息
+ delay(3000).then(() => {
+ const message = addNewMessage(userId, 1, ['收到', '好的', '知道了', '👌OK'].at(Math.floor(Math.random() * 4)));
+ this.onmessage(JSON.stringify({ type: 'message', data: { userId, message } }));
+ });
+ }
+ }
+}
+
+/** 连接WebSocket,返回SocketTask对象 */
+export function connectSocket() {
+ // return wx.connectSocket({ url: 'url' })
+ return new MockSocketTask('ws://localhost:8080');
+}
+
+/** 获取未读消息数量 */
+export function fetchUnreadNum() {
+ let unreadNum = 0;
+ mockData.forEach((item) => {
+ unreadNum += item.messages.filter((message) => !message.read).length;
+ });
+ return delay().then(() => ({ code: 200, data: unreadNum }));
+}
+
+/** 获取完整消息列表 */
+export function fetchMessageList() {
+ return delay().then(() => ({ code: 200, data: JSON.parse(JSON.stringify(mockData)) }));
+}
+
+/** 将某个用户的所有消息标记为已读 */
+export function markMessagesRead(userId) {
+ let index = 0;
+ while (index < mockData.length) {
+ const user = mockData[index];
+ if (user.userId === userId) {
+ user.messages.forEach((message) => {
+ message.read = true;
+ });
+ break;
+ }
+ index += 1;
+ }
+}
diff --git a/mock/dataCenter/getArea.js b/mock/dataCenter/getArea.js
new file mode 100644
index 0000000..ba6a9ca
--- /dev/null
+++ b/mock/dataCenter/getArea.js
@@ -0,0 +1,98 @@
+export default {
+ path: '/dataCenter/area',
+ data: {
+ returnType: 'succ',
+ generateType: 'template',
+ manual: {
+ succ: {
+ resStr: {
+ data: '',
+ statusCode: '',
+ header: '',
+ },
+ },
+ fail: {
+ resStr: {
+ errMsg: 'request:fail 填写错误信息',
+ },
+ },
+ },
+ template: {
+ succ: {
+ data: {
+ list: [
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ {
+ 标题: '视频A',
+ 全球: '4442',
+ 华北: '456',
+ 华东: '456',
+ },
+ ],
+ },
+ statusCode: 200,
+ header: {
+ 'content-type': 'application/json; charset=utf-8',
+ },
+ },
+ fail: {
+ templateStr: {
+ errMsg: 'request:fail 填写错误信息',
+ },
+ },
+ },
+ },
+};
diff --git a/mock/dataCenter/getCompleteRate.js b/mock/dataCenter/getCompleteRate.js
new file mode 100644
index 0000000..a055502
--- /dev/null
+++ b/mock/dataCenter/getCompleteRate.js
@@ -0,0 +1,62 @@
+export default {
+ path: '/dataCenter/complete-rate',
+ data: {
+ returnType: 'succ',
+ generateType: 'template',
+ manual: {
+ succ: {
+ resStr: {
+ data: '',
+ statusCode: '',
+ header: '',
+ },
+ },
+ fail: {
+ resStr: {
+ errMsg: 'request:fail 填写错误信息',
+ },
+ },
+ },
+ template: {
+ succ: {
+ data: {
+ list: [
+ {
+ time: '12:00',
+ percentage: '80',
+ },
+ {
+ time: '14:00',
+ percentage: '60',
+ },
+ {
+ time: '16:00',
+ percentage: '85',
+ },
+ {
+ time: '18:00',
+ percentage: '43',
+ },
+ {
+ time: '20:00',
+ percentage: '60',
+ },
+ {
+ time: '22:00',
+ percentage: '95',
+ },
+ ],
+ },
+ statusCode: 200,
+ header: {
+ 'content-type': 'application/json; charset=utf-8',
+ },
+ },
+ fail: {
+ templateStr: {
+ errMsg: 'request:fail 填写错误信息',
+ },
+ },
+ },
+ },
+};
diff --git a/mock/dataCenter/getInteraction.js b/mock/dataCenter/getInteraction.js
new file mode 100644
index 0000000..1c49e5f
--- /dev/null
+++ b/mock/dataCenter/getInteraction.js
@@ -0,0 +1,32 @@
+export default {
+ path: '/dataCenter/interaction',
+ data: {
+ returnType: 'succ',
+ generateType: 'template',
+ manual: {
+ succ: {
+ resStr: { data: '', statusCode: '', header: '' },
+ },
+ fail: {
+ resStr: { errMsg: 'request:fail 填写错误信息' },
+ },
+ },
+ template: {
+ succ: {
+ data: {
+ list: [
+ { name: '浏览量', number: '919' },
+ { name: '点赞量', number: '887' },
+ { name: '分享量', number: '104' },
+ { name: '收藏', number: '47' },
+ ],
+ },
+ statusCode: 200,
+ header: { 'content-type': 'application/json; charset=utf-8' },
+ },
+ fail: {
+ templateStr: { errMsg: 'request:fail 填写错误信息' },
+ },
+ },
+ },
+};
diff --git a/mock/dataCenter/getMember.js b/mock/dataCenter/getMember.js
new file mode 100644
index 0000000..cf6425e
--- /dev/null
+++ b/mock/dataCenter/getMember.js
@@ -0,0 +1,50 @@
+export default {
+ path: '/dataCenter/member',
+ data: {
+ returnType: 'succ',
+ generateType: 'template',
+ manual: {
+ succ: {
+ resStr: {
+ data: '',
+ statusCode: '',
+ header: '',
+ },
+ },
+ fail: {
+ resStr: {
+ errMsg: 'request:fail 填写错误信息',
+ },
+ },
+ },
+ template: {
+ succ: {
+ data: {
+ list: [
+ {
+ name: '浏览量',
+ number: '202W',
+ },
+ {
+ name: 'PV',
+ number: '233W',
+ },
+ {
+ name: 'UV',
+ number: '102W',
+ },
+ ],
+ },
+ statusCode: 200,
+ header: {
+ 'content-type': 'application/json; charset=utf-8',
+ },
+ },
+ fail: {
+ templateStr: {
+ errMsg: 'request:fail 填写错误信息',
+ },
+ },
+ },
+ },
+};
diff --git a/mock/dataCenter/index.js b/mock/dataCenter/index.js
new file mode 100644
index 0000000..41e3ba5
--- /dev/null
+++ b/mock/dataCenter/index.js
@@ -0,0 +1,6 @@
+import getDataCenterArea from './getArea';
+import getDataCenterMember from './getMember';
+import getDataCompleteRate from './getCompleteRate';
+import getDataInteraction from './getInteraction';
+
+export default [getDataCenterArea, getDataCenterMember, getDataCompleteRate, getDataInteraction];
diff --git a/mock/home/getHomeCards.js b/mock/home/getHomeCards.js
new file mode 100644
index 0000000..89370d9
--- /dev/null
+++ b/mock/home/getHomeCards.js
@@ -0,0 +1,79 @@
+export default {
+ path: '/home/cards',
+ data: {
+ code: 200,
+ message: '请求成功',
+ data: [
+ {
+ url: '/static/home/card0.png',
+ desc: '少年,星空与梦想',
+ tags: [
+ {
+ text: 'AI绘画',
+ theme: 'primary',
+ },
+ {
+ text: '版权素材',
+ theme: 'success',
+ },
+ ],
+ },
+ {
+ url: '/static/home/card1.png',
+ desc: '仰望星空的少女',
+ tags: [
+ {
+ text: 'AI绘画',
+ theme: 'primary',
+ },
+ {
+ text: '版权素材',
+ theme: 'success',
+ },
+ ],
+ },
+ {
+ url: '/static/home/card3.png',
+ desc: '仰望星空的少年',
+ tags: [
+ {
+ text: 'AI绘画',
+ theme: 'primary',
+ },
+ {
+ text: '版权素材',
+ theme: 'success',
+ },
+ ],
+ },
+ {
+ url: '/static/home/card2.png',
+ desc: '少年,星空与梦想',
+ tags: [
+ {
+ text: 'AI绘画',
+ theme: 'primary',
+ },
+ {
+ text: '版权素材',
+ theme: 'success',
+ },
+ ],
+ },
+ {
+ url: '/static/home/card4.png',
+ desc: '多彩的天空',
+ tags: [
+ {
+ text: 'AI绘画',
+ theme: 'primary',
+ },
+ {
+ text: '版权素材',
+ theme: 'success',
+ },
+ ],
+ },
+ ],
+ },
+};
diff --git a/mock/home/getHomeSwipers.js b/mock/home/getHomeSwipers.js
new file mode 100644
index 0000000..0d093fe
--- /dev/null
+++ b/mock/home/getHomeSwipers.js
@@ -0,0 +1,8 @@
+export default {
+ path: '/home/swipers',
+ data: {
+ code: 200,
+ message: '请求成功',
+ data: new Array(6).fill('/static/home/swiper0.png'),
+ },
+};
diff --git a/mock/home/index.js b/mock/home/index.js
new file mode 100644
index 0000000..eb94d6b
--- /dev/null
+++ b/mock/home/index.js
@@ -0,0 +1,4 @@
+import getHomeCards from './getHomeCards';
+import getHomeSwipers from './getHomeSwipers';
+
+export default [getHomeCards, getHomeSwipers];
diff --git a/mock/index.js b/mock/index.js
new file mode 100644
index 0000000..ec4fdea
--- /dev/null
+++ b/mock/index.js
@@ -0,0 +1,15 @@
+import Mock from './WxMock';
+// 导入包含path和data的对象
+import loginMock from './login/index';
+import homeMock from './home/index';
+import searchMock from './search/index';
+import dataCenter from './dataCenter/index';
+import my from './my/index';
+
+export default () => {
+ // 在这里添加新的mock数据
+ const mockData = [...loginMock, ...homeMock, ...searchMock, ...dataCenter, ...my];
+ mockData.forEach((item) => {
+ Mock.mock(item.path, { code: 200, success: true, data: item.data });
+ });
+};
diff --git a/mock/login/getSendMessage.js b/mock/login/getSendMessage.js
new file mode 100644
index 0000000..608230f
--- /dev/null
+++ b/mock/login/getSendMessage.js
@@ -0,0 +1,6 @@
+export default {
+ path: '/login/getSendMessage',
+ data: {
+ message: '发送成功',
+ },
+};
diff --git a/mock/login/index.js b/mock/login/index.js
new file mode 100644
index 0000000..d1efb2e
--- /dev/null
+++ b/mock/login/index.js
@@ -0,0 +1,5 @@
+import getSendMessage from './getSendMessage';
+import postCodeVerify from './postCodeVerify';
+import postPasswordLogin from './postPasswordLogin';
+
+export default [getSendMessage, postCodeVerify, postPasswordLogin];
diff --git a/mock/login/postCodeVerify.js b/mock/login/postCodeVerify.js
new file mode 100644
index 0000000..e3eafcf
--- /dev/null
+++ b/mock/login/postCodeVerify.js
@@ -0,0 +1,7 @@
+export default {
+ path: '/login/postCodeVerify',
+ data: {
+ message: '验证码正确',
+ token: '@guid()',
+ },
+};
diff --git a/mock/login/postPasswordLogin.js b/mock/login/postPasswordLogin.js
new file mode 100644
index 0000000..9098e5f
--- /dev/null
+++ b/mock/login/postPasswordLogin.js
@@ -0,0 +1,7 @@
+export default {
+ path: '/login/postPasswordLogin',
+ data: {
+ message: '登录成功',
+ token: '@guid()',
+ },
+};
diff --git a/mock/mock.js b/mock/mock.js
new file mode 100644
index 0000000..3290a77
--- /dev/null
+++ b/mock/mock.js
@@ -0,0 +1,9189 @@
+/* eslint-disable */
+(function webpackUniversalModuleDefinition(root, factory) {
+ if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();
+ else if (typeof define === 'function' && define.amd) define([], factory);
+ else if (typeof exports === 'object') exports['Mock'] = factory();
+ else root['Mock'] = factory();
+})(this, function () {
+ return /******/ (function (modules) {
+ // webpackBootstrap
+ /******/ // The module cache
+ /******/ var installedModules = {};
+
+ /******/ // The require function
+ /******/ function __webpack_require__(moduleId) {
+ /******/ // Check if module is in cache
+ /******/ if (installedModules[moduleId]) /******/ return installedModules[moduleId].exports;
+
+ /******/ // Create a new module (and put it into the cache)
+ /******/ var module = (installedModules[moduleId] = {
+ /******/ exports: {},
+ /******/ id: moduleId,
+ /******/ loaded: false,
+ /******/
+ });
+
+ /******/ // Execute the module function
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+ /******/ // Flag the module as loaded
+ /******/ module.loaded = true;
+
+ /******/ // Return the exports of the module
+ /******/ return module.exports;
+ /******/
+ }
+
+ /******/ // expose the modules object (__webpack_modules__)
+ /******/ __webpack_require__.m = modules;
+
+ /******/ // expose the module cache
+ /******/ __webpack_require__.c = installedModules;
+
+ /******/ // __webpack_public_path__
+ /******/ __webpack_require__.p = '';
+
+ /******/ // Load entry module and return exports
+ /******/ return __webpack_require__(0);
+ /******/
+ })(
+ /************************************************************************/
+ /******/ [
+ /* 0 */
+ /***/ function (module, exports, __webpack_require__) {
+ /* global require, module, window */
+ var Handler = __webpack_require__(1);
+ var Util = __webpack_require__(3);
+ var Random = __webpack_require__(5);
+ var RE = __webpack_require__(20);
+ var toJSONSchema = __webpack_require__(23);
+ var valid = __webpack_require__(25);
+
+ var XHR;
+ if (typeof window !== 'undefined') XHR = __webpack_require__(27);
+
+ var Mock = {
+ Handler: Handler,
+ Random: Random,
+ Util: Util,
+ XHR: XHR,
+ RE: RE,
+ toJSONSchema: toJSONSchema,
+ valid: valid,
+ heredoc: Util.heredoc,
+ setup: function (settings) {
+ return XHR.setup(settings);
+ },
+ _mocked: {},
+ };
+
+ Mock.version = '1.0.1-beta3';
+
+ // 避免循环依赖
+ if (XHR) XHR.Mock = Mock;
+
+ /*
+ * Mock.mock( template )
+ * Mock.mock( function() )
+ * Mock.mock( rurl, template )
+ * Mock.mock( rurl, function(options) )
+ * Mock.mock( rurl, rtype, template )
+ * Mock.mock( rurl, rtype, function(options) )
+
+ 根据数据模板生成模拟数据。
+ */
+ Mock.mock = function (rurl, rtype, template) {
+ // Mock.mock(template)
+ if (arguments.length === 1) {
+ return Handler.gen(rurl);
+ }
+ // Mock.mock(rurl, template)
+ if (arguments.length === 2) {
+ template = rtype;
+ rtype = undefined;
+ }
+ // 拦截 XHR
+ if (XHR) window.XMLHttpRequest = XHR;
+ Mock._mocked[rurl + (rtype || '')] = {
+ rurl: rurl,
+ rtype: rtype,
+ template: template,
+ };
+ return Mock;
+ };
+
+ module.exports = Mock;
+
+ /***/
+ },
+ /* 1 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Handler
+
+ 处理数据模板。
+
+ * Handler.gen( template, name?, context? )
+
+ 入口方法。
+
+ * Data Template Definition, DTD
+
+ 处理数据模板定义。
+
+ * Handler.array( options )
+ * Handler.object( options )
+ * Handler.number( options )
+ * Handler.boolean( options )
+ * Handler.string( options )
+ * Handler.function( options )
+ * Handler.regexp( options )
+
+ 处理路径(相对和绝对)。
+
+ * Handler.getValueByKeyPath( key, options )
+
+ * Data Placeholder Definition, DPD
+
+ 处理数据占位符定义
+
+ * Handler.placeholder( placeholder, context, templateContext, options )
+
+ */
+
+ var Constant = __webpack_require__(2);
+ var Util = __webpack_require__(3);
+ var Parser = __webpack_require__(4);
+ var Random = __webpack_require__(5);
+ var RE = __webpack_require__(20);
+
+ var Handler = {
+ extend: Util.extend,
+ };
+
+ /*
+ template 属性值(即数据模板)
+ name 属性名
+ context 数据上下文,生成后的数据
+ templateContext 模板上下文,
+
+ Handle.gen(template, name, options)
+ context
+ currentContext, templateCurrentContext,
+ path, templatePath
+ root, templateRoot
+ */
+ Handler.gen = function (template, name, context) {
+ /* jshint -W041 */
+ name = name == undefined ? '' : name + '';
+
+ context = context || {};
+ context = {
+ // 当前访问路径,只有属性名,不包括生成规则
+ path: context.path || [Constant.GUID],
+ templatePath: context.templatePath || [Constant.GUID++],
+ // 最终属性值的上下文
+ currentContext: context.currentContext,
+ // 属性值模板的上下文
+ templateCurrentContext: context.templateCurrentContext || template,
+ // 最终值的根
+ root: context.root || context.currentContext,
+ // 模板的根
+ templateRoot: context.templateRoot || context.templateCurrentContext || template,
+ };
+ // console.log('path:', context.path.join('.'), template)
+
+ var rule = Parser.parse(name);
+ var type = Util.type(template);
+ var data;
+
+ if (Handler[type]) {
+ data = Handler[type]({
+ // 属性值类型
+ type: type,
+ // 属性值模板
+ template: template,
+ // 属性名 + 生成规则
+ name: name,
+ // 属性名
+ parsedName: name ? name.replace(Constant.RE_KEY, '$1') : name,
+
+ // 解析后的生成规则
+ rule: rule,
+ // 相关上下文
+ context: context,
+ });
+
+ if (!context.root) context.root = data;
+ return data;
+ }
+
+ return template;
+ };
+
+ Handler.extend({
+ array: function (options) {
+ var result = [],
+ i,
+ ii;
+
+ // 'name|1': []
+ // 'name|count': []
+ // 'name|min-max': []
+ if (options.template.length === 0) return result;
+
+ // 'arr': [{ 'email': '@EMAIL' }, { 'email': '@EMAIL' }]
+ if (!options.rule.parameters) {
+ for (i = 0; i < options.template.length; i++) {
+ options.context.path.push(i);
+ options.context.templatePath.push(i);
+ result.push(
+ Handler.gen(options.template[i], i, {
+ path: options.context.path,
+ templatePath: options.context.templatePath,
+ currentContext: result,
+ templateCurrentContext: options.template,
+ root: options.context.root || result,
+ templateRoot: options.context.templateRoot || options.template,
+ }),
+ );
+ options.context.path.pop();
+ options.context.templatePath.pop();
+ }
+ } else {
+ // 'method|1': ['GET', 'POST', 'HEAD', 'DELETE']
+ if (options.rule.min === 1 && options.rule.max === undefined) {
+ // fix #17
+ options.context.path.push(options.name);
+ options.context.templatePath.push(options.name);
+ result = Random.pick(
+ Handler.gen(options.template, undefined, {
+ path: options.context.path,
+ templatePath: options.context.templatePath,
+ currentContext: result,
+ templateCurrentContext: options.template,
+ root: options.context.root || result,
+ templateRoot: options.context.templateRoot || options.template,
+ }),
+ );
+ options.context.path.pop();
+ options.context.templatePath.pop();
+ } else {
+ // 'data|+1': [{}, {}]
+ if (options.rule.parameters[2]) {
+ options.template.__order_index = options.template.__order_index || 0;
+
+ options.context.path.push(options.name);
+ options.context.templatePath.push(options.name);
+ result = Handler.gen(options.template, undefined, {
+ path: options.context.path,
+ templatePath: options.context.templatePath,
+ currentContext: result,
+ templateCurrentContext: options.template,
+ root: options.context.root || result,
+ templateRoot: options.context.templateRoot || options.template,
+ })[options.template.__order_index % options.template.length];
+
+ options.template.__order_index += +options.rule.parameters[2];
+
+ options.context.path.pop();
+ options.context.templatePath.pop();
+ } else {
+ // 'data|1-10': [{}]
+ for (i = 0; i < options.rule.count; i++) {
+ // 'data|1-10': [{}, {}]
+ for (ii = 0; ii < options.template.length; ii++) {
+ options.context.path.push(result.length);
+ options.context.templatePath.push(ii);
+ result.push(
+ Handler.gen(options.template[ii], result.length, {
+ path: options.context.path,
+ templatePath: options.context.templatePath,
+ currentContext: result,
+ templateCurrentContext: options.template,
+ root: options.context.root || result,
+ templateRoot: options.context.templateRoot || options.template,
+ }),
+ );
+ options.context.path.pop();
+ options.context.templatePath.pop();
+ }
+ }
+ }
+ }
+ }
+ return result;
+ },
+ object: function (options) {
+ var result = {},
+ keys,
+ fnKeys,
+ key,
+ parsedKey,
+ inc,
+ i;
+
+ // 'obj|min-max': {}
+ /* jshint -W041 */
+ if (options.rule.min != undefined) {
+ keys = Util.keys(options.template);
+ keys = Random.shuffle(keys);
+ keys = keys.slice(0, options.rule.count);
+ for (i = 0; i < keys.length; i++) {
+ key = keys[i];
+ parsedKey = key.replace(Constant.RE_KEY, '$1');
+ options.context.path.push(parsedKey);
+ options.context.templatePath.push(key);
+ result[parsedKey] = Handler.gen(options.template[key], key, {
+ path: options.context.path,
+ templatePath: options.context.templatePath,
+ currentContext: result,
+ templateCurrentContext: options.template,
+ root: options.context.root || result,
+ templateRoot: options.context.templateRoot || options.template,
+ });
+ options.context.path.pop();
+ options.context.templatePath.pop();
+ }
+ } else {
+ // 'obj': {}
+ keys = [];
+ fnKeys = []; // #25 改变了非函数属性的顺序,查找起来不方便
+ for (key in options.template) {
+ (typeof options.template[key] === 'function' ? fnKeys : keys).push(key);
+ }
+ keys = keys.concat(fnKeys);
+
+ /*
+ 会改变非函数属性的顺序
+ keys = Util.keys(options.template)
+ keys.sort(function(a, b) {
+ var afn = typeof options.template[a] === 'function'
+ var bfn = typeof options.template[b] === 'function'
+ if (afn === bfn) return 0
+ if (afn && !bfn) return 1
+ if (!afn && bfn) return -1
+ })
+ */
+
+ for (i = 0; i < keys.length; i++) {
+ key = keys[i];
+ parsedKey = key.replace(Constant.RE_KEY, '$1');
+ options.context.path.push(parsedKey);
+ options.context.templatePath.push(key);
+ result[parsedKey] = Handler.gen(options.template[key], key, {
+ path: options.context.path,
+ templatePath: options.context.templatePath,
+ currentContext: result,
+ templateCurrentContext: options.template,
+ root: options.context.root || result,
+ templateRoot: options.context.templateRoot || options.template,
+ });
+ options.context.path.pop();
+ options.context.templatePath.pop();
+ // 'id|+1': 1
+ inc = key.match(Constant.RE_KEY);
+ if (inc && inc[2] && Util.type(options.template[key]) === 'number') {
+ options.template[key] += parseInt(inc[2], 10);
+ }
+ }
+ }
+ return result;
+ },
+ number: function (options) {
+ var result, parts;
+ if (options.rule.decimal) {
+ // float
+ options.template += '';
+ parts = options.template.split('.');
+ // 'float1|.1-10': 10,
+ // 'float2|1-100.1-10': 1,
+ // 'float3|999.1-10': 1,
+ // 'float4|.3-10': 123.123,
+ parts[0] = options.rule.range ? options.rule.count : parts[0];
+ parts[1] = (parts[1] || '').slice(0, options.rule.dcount);
+ while (parts[1].length < options.rule.dcount) {
+ parts[1] +=
+ // 最后一位不能为 0:如果最后一位为 0,会被 JS 引擎忽略掉。
+ parts[1].length < options.rule.dcount - 1
+ ? Random.character('number')
+ : Random.character('123456789');
+ }
+ result = parseFloat(parts.join('.'), 10);
+ } else {
+ // integer
+ // 'grade1|1-100': 1,
+ result = options.rule.range && !options.rule.parameters[2] ? options.rule.count : options.template;
+ }
+ return result;
+ },
+ boolean: function (options) {
+ var result;
+ // 'prop|multiple': false, 当前值是相反值的概率倍数
+ // 'prop|probability-probability': false, 当前值与相反值的概率
+ result = options.rule.parameters
+ ? Random.bool(options.rule.min, options.rule.max, options.template)
+ : options.template;
+ return result;
+ },
+ string: function (options) {
+ var result = '',
+ i,
+ placeholders,
+ ph,
+ phed;
+ if (options.template.length) {
+ // 'foo': '★',
+ /* jshint -W041 */
+ if (options.rule.count == undefined) {
+ result += options.template;
+ }
+
+ // 'star|1-5': '★',
+ for (i = 0; i < options.rule.count; i++) {
+ result += options.template;
+ }
+ // 'email|1-10': '@EMAIL, ',
+ placeholders = result.match(Constant.RE_PLACEHOLDER) || []; // A-Z_0-9 > \w_
+ for (i = 0; i < placeholders.length; i++) {
+ ph = placeholders[i];
+
+ // 遇到转义斜杠,不需要解析占位符
+ if (/^\\/.test(ph)) {
+ placeholders.splice(i--, 1);
+ continue;
+ }
+
+ phed = Handler.placeholder(
+ ph,
+ options.context.currentContext,
+ options.context.templateCurrentContext,
+ options,
+ );
+
+ // 只有一个占位符,并且没有其他字符
+ if (placeholders.length === 1 && ph === result && typeof phed !== typeof result) {
+ //
+ result = phed;
+ break;
+
+ if (Util.isNumeric(phed)) {
+ result = parseFloat(phed, 10);
+ break;
+ }
+ if (/^(true|false)$/.test(phed)) {
+ result = phed === 'true' ? true : phed === 'false' ? false : phed; // 已经是布尔值
+ break;
+ }
+ }
+ result = result.replace(ph, phed);
+ }
+ } else {
+ // 'ASCII|1-10': '',
+ // 'ASCII': '',
+ result = options.rule.range ? Random.string(options.rule.count) : options.template;
+ }
+ return result;
+ },
+ function: function (options) {
+ // ( context, options )
+ return options.template.call(options.context.currentContext, options);
+ },
+ regexp: function (options) {
+ var source = '';
+
+ // 'name': /regexp/,
+ /* jshint -W041 */
+ if (options.rule.count == undefined) {
+ source += options.template.source; // regexp.source
+ }
+
+ // 'name|1-5': /regexp/,
+ for (var i = 0; i < options.rule.count; i++) {
+ source += options.template.source;
+ }
+
+ return RE.Handler.gen(RE.Parser.parse(source));
+ },
+ });
+
+ Handler.extend({
+ _all: function () {
+ var re = {};
+ for (var key in Random) re[key.toLowerCase()] = key;
+ return re;
+ },
+ // 处理占位符,转换为最终值
+ placeholder: function (placeholder, obj, templateContext, options) {
+ // console.log(options.context.path)
+ // 1 key, 2 params
+ Constant.RE_PLACEHOLDER.exec('');
+ var parts = Constant.RE_PLACEHOLDER.exec(placeholder),
+ key = parts && parts[1],
+ lkey = key && key.toLowerCase(),
+ okey = this._all()[lkey],
+ params = (parts && parts[2]) || '';
+ var pathParts = this.splitPathToArray(key);
+
+ // 解析占位符的参数
+ try {
+ // 1. 尝试保持参数的类型
+ /*
+ #24 [Window Firefox 30.0 引用 占位符 抛错](https://github.com/nuysoft/Mock/issues/24)
+ [BX9056: 各浏览器下 window.eval 方法的执行上下文存在差异](http://www.w3help.org/zh-cn/causes/BX9056)
+ 应该属于 Window Firefox 30.0 的 BUG
+ */
+ /* jshint -W061 */
+ params = eval('(function(){ return [].splice.call(arguments, 0 ) })(' + params + ')');
+ } catch (error) {
+ // 2. 如果失败,只能解析为字符串
+ // console.error(error)
+ // if (error instanceof ReferenceError) params = parts[2].split(/,\s*/);
+ // else throw error
+ params = parts[2].split(/,\s*/);
+ }
+
+ // 占位符优先引用数据模板中的属性
+ if (obj && key in obj) return obj[key];
+
+ // @index @key
+ // if (Constant.RE_INDEX.test(key)) return +options.name
+ // if (Constant.RE_KEY.test(key)) return options.name
+
+ // 绝对路径 or 相对路径
+ if (key.charAt(0) === '/' || pathParts.length > 1) return this.getValueByKeyPath(key, options);
+
+ // 递归引用数据模板中的属性
+ if (
+ templateContext &&
+ typeof templateContext === 'object' &&
+ key in templateContext &&
+ placeholder !== templateContext[key] // fix #15 避免自己依赖自己
+ ) {
+ // 先计算被引用的属性值
+ templateContext[key] = Handler.gen(templateContext[key], key, {
+ currentContext: obj,
+ templateCurrentContext: templateContext,
+ });
+ return templateContext[key];
+ }
+
+ // 如果未找到,则原样返回
+ if (!(key in Random) && !(lkey in Random) && !(okey in Random)) return placeholder;
+
+ // 递归解析参数中的占位符
+ for (var i = 0; i < params.length; i++) {
+ Constant.RE_PLACEHOLDER.exec('');
+ if (Constant.RE_PLACEHOLDER.test(params[i])) {
+ params[i] = Handler.placeholder(params[i], obj, templateContext, options);
+ }
+ }
+
+ var handle = Random[key] || Random[lkey] || Random[okey];
+ switch (Util.type(handle)) {
+ case 'array':
+ // 自动从数组中取一个,例如 @areas
+ return Random.pick(handle);
+ case 'function':
+ // 执行占位符方法(大多数情况)
+ handle.options = options;
+ var re = handle.apply(Random, params);
+ if (re === undefined) re = ''; // 因为是在字符串中,所以默认为空字符串。
+ delete handle.options;
+ return re;
+ }
+ },
+ getValueByKeyPath: function (key, options) {
+ var originalKey = key;
+ var keyPathParts = this.splitPathToArray(key);
+ var absolutePathParts = [];
+
+ // 绝对路径
+ if (key.charAt(0) === '/') {
+ absolutePathParts = [options.context.path[0]].concat(this.normalizePath(keyPathParts));
+ } else {
+ // 相对路径
+ if (keyPathParts.length > 1) {
+ absolutePathParts = options.context.path.slice(0);
+ absolutePathParts.pop();
+ absolutePathParts = this.normalizePath(absolutePathParts.concat(keyPathParts));
+ }
+ }
+
+ try {
+ key = keyPathParts[keyPathParts.length - 1];
+ var currentContext = options.context.root;
+ var templateCurrentContext = options.context.templateRoot;
+ for (var i = 1; i < absolutePathParts.length - 1; i++) {
+ currentContext = currentContext[absolutePathParts[i]];
+ templateCurrentContext = templateCurrentContext[absolutePathParts[i]];
+ }
+ // 引用的值已经计算好
+ if (currentContext && key in currentContext) return currentContext[key];
+
+ // 尚未计算,递归引用数据模板中的属性
+ if (
+ templateCurrentContext &&
+ typeof templateCurrentContext === 'object' &&
+ key in templateCurrentContext &&
+ originalKey !== templateCurrentContext[key] // fix #15 避免自己依赖自己
+ ) {
+ // 先计算被引用的属性值
+ templateCurrentContext[key] = Handler.gen(templateCurrentContext[key], key, {
+ currentContext: currentContext,
+ templateCurrentContext: templateCurrentContext,
+ });
+ return templateCurrentContext[key];
+ }
+ } catch (err) {}
+
+ return '@' + keyPathParts.join('/');
+ },
+ // https://github.com/kissyteam/kissy/blob/master/src/path/src/path.js
+ normalizePath: function (pathParts) {
+ var newPathParts = [];
+ for (var i = 0; i < pathParts.length; i++) {
+ switch (pathParts[i]) {
+ case '..':
+ newPathParts.pop();
+ break;
+ case '.':
+ break;
+ default:
+ newPathParts.push(pathParts[i]);
+ }
+ }
+ return newPathParts;
+ },
+ splitPathToArray: function (path) {
+ var parts = path.split(/\/+/);
+ if (!parts[parts.length - 1]) parts = parts.slice(0, -1);
+ if (!parts[0]) parts = parts.slice(1);
+ return parts;
+ },
+ });
+
+ module.exports = Handler;
+
+ /***/
+ },
+ /* 2 */
+ /***/ function (module, exports) {
+ /*
+ ## Constant
+
+ 常量集合。
+ */
+ /*
+ RE_KEY
+ 'name|min-max': value
+ 'name|count': value
+ 'name|min-max.dmin-dmax': value
+ 'name|min-max.dcount': value
+ 'name|count.dmin-dmax': value
+ 'name|count.dcount': value
+ 'name|+step': value
+
+ 1 name, 2 step, 3 range [ min, max ], 4 drange [ dmin, dmax ]
+
+ RE_PLACEHOLDER
+ placeholder(*)
+
+ [正则查看工具](http://www.regexper.com/)
+
+ #26 生成规则 支持 负数,例如 number|-100-100
+ */
+ module.exports = {
+ GUID: 1,
+ RE_KEY: /(.+)\|(?:\+(\d+)|([\+\-]?\d+-?[\+\-]?\d*)?(?:\.(\d+-?\d*))?)/,
+ RE_RANGE: /([\+\-]?\d+)-?([\+\-]?\d+)?/,
+ RE_PLACEHOLDER: /\\*@([^@#%&()\?\s]+)(?:\((.*?)\))?/g,
+ // /\\*@([^@#%&()\?\s\/\.]+)(?:\((.*?)\))?/g
+ // RE_INDEX: /^index$/,
+ // RE_KEY: /^key$/
+ };
+
+ /***/
+ },
+ /* 3 */
+ /***/ function (module, exports) {
+ /*
+ ## Utilities
+ */
+ var Util = {};
+
+ Util.extend = function extend() {
+ var target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ options,
+ name,
+ src,
+ copy,
+ clone;
+
+ if (length === 1) {
+ target = this;
+ i = 0;
+ }
+
+ for (; i < length; i++) {
+ options = arguments[i];
+ if (!options) continue;
+
+ for (name in options) {
+ src = target[name];
+ copy = options[name];
+
+ if (target === copy) continue;
+ if (copy === undefined) continue;
+
+ if (Util.isArray(copy) || Util.isObject(copy)) {
+ if (Util.isArray(copy)) clone = src && Util.isArray(src) ? src : [];
+ if (Util.isObject(copy)) clone = src && Util.isObject(src) ? src : {};
+
+ target[name] = Util.extend(clone, copy);
+ } else {
+ target[name] = copy;
+ }
+ }
+ }
+
+ return target;
+ };
+
+ Util.each = function each(obj, iterator, context) {
+ var i, key;
+ if (this.type(obj) === 'number') {
+ for (i = 0; i < obj; i++) {
+ iterator(i, i);
+ }
+ } else if (obj.length === +obj.length) {
+ for (i = 0; i < obj.length; i++) {
+ if (iterator.call(context, obj[i], i, obj) === false) break;
+ }
+ } else {
+ for (key in obj) {
+ if (iterator.call(context, obj[key], key, obj) === false) break;
+ }
+ }
+ };
+
+ Util.type = function type(obj) {
+ return obj === null || obj === undefined
+ ? String(obj)
+ : Object.prototype.toString
+ .call(obj)
+ .match(/\[object (\w+)\]/)[1]
+ .toLowerCase();
+ };
+
+ Util.each('String Object Array RegExp Function'.split(' '), function (value) {
+ Util['is' + value] = function (obj) {
+ return Util.type(obj) === value.toLowerCase();
+ };
+ });
+
+ Util.isObjectOrArray = function (value) {
+ return Util.isObject(value) || Util.isArray(value);
+ };
+
+ Util.isNumeric = function (value) {
+ return !isNaN(parseFloat(value)) && isFinite(value);
+ };
+
+ Util.keys = function (obj) {
+ var keys = [];
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) keys.push(key);
+ }
+ return keys;
+ };
+ Util.values = function (obj) {
+ var values = [];
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) values.push(obj[key]);
+ }
+ return values;
+ };
+
+ /*
+ ### Mock.heredoc(fn)
+
+ * Mock.heredoc(fn)
+
+ 以直观、安全的方式书写(多行)HTML 模板。
+
+ **使用示例**如下所示:
+
+ var tpl = Mock.heredoc(function() {
+ /*!
+ {{email}}{{age}}
+
+ *\/
+ })
+
+ **相关阅读**
+ * [Creating multiline strings in JavaScript](http://stackoverflow.com/questions/805107/creating-multiline-strings-in-javascript)、
+ */
+ Util.heredoc = function heredoc(fn) {
+ // 1. 移除起始的 function(){ /*!
+ // 2. 移除末尾的 */ }
+ // 3. 移除起始和末尾的空格
+ return fn
+ .toString()
+ .replace(/^[^\/]+\/\*!?/, '')
+ .replace(/\*\/[^\/]+$/, '')
+ .replace(/^[\s\xA0]+/, '')
+ .replace(/[\s\xA0]+$/, ''); // .trim()
+ };
+
+ Util.noop = function () {};
+
+ module.exports = Util;
+
+ /***/
+ },
+ /* 4 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Parser
+
+ 解析数据模板(属性名部分)。
+
+ * Parser.parse( name )
+
+ ```json
+ {
+ parameters: [ name, inc, range, decimal ],
+ rnage: [ min , max ],
+
+ min: min,
+ max: max,
+ count : count,
+
+ decimal: decimal,
+ dmin: dmin,
+ dmax: dmax,
+ dcount: dcount
+ }
+ ```
+ */
+
+ var Constant = __webpack_require__(2);
+ var Random = __webpack_require__(5);
+
+ /* jshint -W041 */
+ module.exports = {
+ parse: function (name) {
+ name = name == undefined ? '' : name + '';
+
+ var parameters = (name || '').match(Constant.RE_KEY);
+
+ var range = parameters && parameters[3] && parameters[3].match(Constant.RE_RANGE);
+ var min = range && range[1] && parseInt(range[1], 10); // || 1
+ var max = range && range[2] && parseInt(range[2], 10); // || 1
+ // repeat || min-max || 1
+ // var count = range ? !range[2] && parseInt(range[1], 10) || Random.integer(min, max) : 1
+ var count = range ? (!range[2] ? parseInt(range[1], 10) : Random.integer(min, max)) : undefined;
+
+ var decimal = parameters && parameters[4] && parameters[4].match(Constant.RE_RANGE);
+ var dmin = decimal && decimal[1] && parseInt(decimal[1], 10); // || 0,
+ var dmax = decimal && decimal[2] && parseInt(decimal[2], 10); // || 0,
+ // int || dmin-dmax || 0
+ var dcount = decimal ? (!decimal[2] && parseInt(decimal[1], 10)) || Random.integer(dmin, dmax) : undefined;
+
+ var result = {
+ // 1 name, 2 inc, 3 range, 4 decimal
+ parameters: parameters,
+ // 1 min, 2 max
+ range: range,
+ min: min,
+ max: max,
+ // min-max
+ count: count,
+ // 是否有 decimal
+ decimal: decimal,
+ dmin: dmin,
+ dmax: dmax,
+ // dmin-dimax
+ dcount: dcount,
+ };
+
+ for (var r in result) {
+ if (result[r] != undefined) return result;
+ }
+
+ return {};
+ },
+ };
+
+ /***/
+ },
+ /* 5 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Mock.Random
+
+ 工具类,用于生成各种随机数据。
+ */
+
+ var Util = __webpack_require__(3);
+
+ var Random = {
+ extend: Util.extend,
+ };
+
+ Random.extend(__webpack_require__(6));
+ Random.extend(__webpack_require__(7));
+ Random.extend(__webpack_require__(8));
+ Random.extend(__webpack_require__(10));
+ Random.extend(__webpack_require__(13));
+ Random.extend(__webpack_require__(15));
+ Random.extend(__webpack_require__(16));
+ Random.extend(__webpack_require__(17));
+ Random.extend(__webpack_require__(14));
+ Random.extend(__webpack_require__(19));
+
+ module.exports = Random;
+
+ /***/
+ },
+ /* 6 */
+ /***/ function (module, exports) {
+ /*
+ ## Basics
+ */
+ module.exports = {
+ // 返回一个随机的布尔值。
+ boolean: function (min, max, cur) {
+ if (cur !== undefined) {
+ min = typeof min !== 'undefined' && !isNaN(min) ? parseInt(min, 10) : 1;
+ max = typeof max !== 'undefined' && !isNaN(max) ? parseInt(max, 10) : 1;
+ return Math.random() > (1.0 / (min + max)) * min ? !cur : cur;
+ }
+
+ return Math.random() >= 0.5;
+ },
+ bool: function (min, max, cur) {
+ return this.boolean(min, max, cur);
+ },
+ // 返回一个随机的自然数(大于等于 0 的整数)。
+ natural: function (min, max) {
+ min = typeof min !== 'undefined' ? parseInt(min, 10) : 0;
+ max = typeof max !== 'undefined' ? parseInt(max, 10) : 9007199254740992; // 2^53
+ return Math.round(Math.random() * (max - min)) + min;
+ },
+ // 返回一个随机的整数。
+ integer: function (min, max) {
+ min = typeof min !== 'undefined' ? parseInt(min, 10) : -9007199254740992;
+ max = typeof max !== 'undefined' ? parseInt(max, 10) : 9007199254740992; // 2^53
+ return Math.round(Math.random() * (max - min)) + min;
+ },
+ int: function (min, max) {
+ return this.integer(min, max);
+ },
+ // 返回一个随机的浮点数。
+ float: function (min, max, dmin, dmax) {
+ dmin = dmin === undefined ? 0 : dmin;
+ dmin = Math.max(Math.min(dmin, 17), 0);
+ dmax = dmax === undefined ? 17 : dmax;
+ dmax = Math.max(Math.min(dmax, 17), 0);
+ var ret = this.integer(min, max) + '.';
+ for (var i = 0, dcount = this.natural(dmin, dmax); i < dcount; i++) {
+ ret +=
+ // 最后一位不能为 0:如果最后一位为 0,会被 JS 引擎忽略掉。
+ i < dcount - 1 ? this.character('number') : this.character('123456789');
+ }
+ return parseFloat(ret, 10);
+ },
+ // 返回一个随机字符。
+ character: function (pool) {
+ var pools = {
+ lower: 'abcdefghijklmnopqrstuvwxyz',
+ upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
+ number: '0123456789',
+ symbol: '!@#$%^&*()[]',
+ };
+ pools.alpha = pools.lower + pools.upper;
+ pools['undefined'] = pools.lower + pools.upper + pools.number + pools.symbol;
+
+ pool = pools[('' + pool).toLowerCase()] || pool;
+ return pool.charAt(this.natural(0, pool.length - 1));
+ },
+ char: function (pool) {
+ return this.character(pool);
+ },
+ // 返回一个随机字符串。
+ string: function (pool, min, max) {
+ var len;
+ switch (arguments.length) {
+ case 0: // ()
+ len = this.natural(3, 7);
+ break;
+ case 1: // ( length )
+ len = pool;
+ pool = undefined;
+ break;
+ case 2:
+ // ( pool, length )
+ if (typeof arguments[0] === 'string') {
+ len = min;
+ } else {
+ // ( min, max )
+ len = this.natural(pool, min);
+ pool = undefined;
+ }
+ break;
+ case 3:
+ len = this.natural(min, max);
+ break;
+ }
+
+ var text = '';
+ for (var i = 0; i < len; i++) {
+ text += this.character(pool);
+ }
+
+ return text;
+ },
+ str: function (/*pool, min, max*/) {
+ return this.string.apply(this, arguments);
+ },
+ // 返回一个整型数组。
+ range: function (start, stop, step) {
+ // range( stop )
+ if (arguments.length <= 1) {
+ stop = start || 0;
+ start = 0;
+ }
+ // range( start, stop )
+ step = arguments[2] || 1;
+
+ start = +start;
+ stop = +stop;
+ step = +step;
+
+ var len = Math.max(Math.ceil((stop - start) / step), 0);
+ var idx = 0;
+ var range = new Array(len);
+
+ while (idx < len) {
+ range[idx++] = start;
+ start += step;
+ }
+
+ return range;
+ },
+ };
+
+ /***/
+ },
+ /* 7 */
+ /***/ function (module, exports) {
+ /*
+ ## Date
+ */
+ var patternLetters = {
+ yyyy: 'getFullYear',
+ yy: function (date) {
+ return ('' + date.getFullYear()).slice(2);
+ },
+ y: 'yy',
+
+ MM: function (date) {
+ var m = date.getMonth() + 1;
+ return m < 10 ? '0' + m : m;
+ },
+ M: function (date) {
+ return date.getMonth() + 1;
+ },
+
+ dd: function (date) {
+ var d = date.getDate();
+ return d < 10 ? '0' + d : d;
+ },
+ d: 'getDate',
+
+ HH: function (date) {
+ var h = date.getHours();
+ return h < 10 ? '0' + h : h;
+ },
+ H: 'getHours',
+ hh: function (date) {
+ var h = date.getHours() % 12;
+ return h < 10 ? '0' + h : h;
+ },
+ h: function (date) {
+ return date.getHours() % 12;
+ },
+
+ mm: function (date) {
+ var m = date.getMinutes();
+ return m < 10 ? '0' + m : m;
+ },
+ m: 'getMinutes',
+
+ ss: function (date) {
+ var s = date.getSeconds();
+ return s < 10 ? '0' + s : s;
+ },
+ s: 'getSeconds',
+
+ SS: function (date) {
+ var ms = date.getMilliseconds();
+ return (ms < 10 && '00' + ms) || (ms < 100 && '0' + ms) || ms;
+ },
+ S: 'getMilliseconds',
+
+ A: function (date) {
+ return date.getHours() < 12 ? 'AM' : 'PM';
+ },
+ a: function (date) {
+ return date.getHours() < 12 ? 'am' : 'pm';
+ },
+ T: 'getTime',
+ };
+ module.exports = {
+ // 日期占位符集合。
+ _patternLetters: patternLetters,
+ // 日期占位符正则。
+ _rformat: new RegExp(
+ (function () {
+ var re = [];
+ for (var i in patternLetters) re.push(i);
+ return '(' + re.join('|') + ')';
+ })(),
+ 'g',
+ ),
+ // 格式化日期。
+ _formatDate: function (date, format) {
+ return format.replace(this._rformat, function creatNewSubString($0, flag) {
+ return typeof patternLetters[flag] === 'function'
+ ? patternLetters[flag](date)
+ : patternLetters[flag] in patternLetters
+ ? creatNewSubString($0, patternLetters[flag])
+ : date[patternLetters[flag]]();
+ });
+ },
+ // 生成一个随机的 Date 对象。
+ _randomDate: function (min, max) {
+ // min, max
+ min = min === undefined ? new Date(0) : min;
+ max = max === undefined ? new Date() : max;
+ return new Date(Math.random() * (max.getTime() - min.getTime()));
+ },
+ // 返回一个随机的日期字符串。
+ date: function (format) {
+ format = format || 'yyyy-MM-dd';
+ return this._formatDate(this._randomDate(), format);
+ },
+ // 返回一个随机的时间字符串。
+ time: function (format) {
+ format = format || 'HH:mm:ss';
+ return this._formatDate(this._randomDate(), format);
+ },
+ // 返回一个随机的日期和时间字符串。
+ datetime: function (format) {
+ format = format || 'yyyy-MM-dd HH:mm:ss';
+ return this._formatDate(this._randomDate(), format);
+ },
+ // 返回当前的日期和时间字符串。
+ now: function (unit, format) {
+ // now(unit) now(format)
+ if (arguments.length === 1) {
+ // now(format)
+ if (!/year|month|day|hour|minute|second|week/.test(unit)) {
+ format = unit;
+ unit = '';
+ }
+ }
+ unit = (unit || '').toLowerCase();
+ format = format || 'yyyy-MM-dd HH:mm:ss';
+
+ var date = new Date();
+
+ /* jshint -W086 */
+ // 参考自 http://momentjs.cn/docs/#/manipulating/start-of/
+ switch (unit) {
+ case 'year':
+ date.setMonth(0);
+ case 'month':
+ date.setDate(1);
+ case 'week':
+ case 'day':
+ date.setHours(0);
+ case 'hour':
+ date.setMinutes(0);
+ case 'minute':
+ date.setSeconds(0);
+ case 'second':
+ date.setMilliseconds(0);
+ }
+ switch (unit) {
+ case 'week':
+ date.setDate(date.getDate() - date.getDay());
+ }
+
+ return this._formatDate(date, format);
+ },
+ };
+
+ /***/
+ },
+ /* 8 */
+ /***/ function (module, exports, __webpack_require__) {
+ /* WEBPACK VAR INJECTION */ (function (module) {
+ /* global document */
+ /*
+ ## Image
+ */
+ module.exports = {
+ // 常见的广告宽高
+ _adSize: [
+ '300x250',
+ '250x250',
+ '240x400',
+ '336x280',
+ '180x150',
+ '720x300',
+ '468x60',
+ '234x60',
+ '88x31',
+ '120x90',
+ '120x60',
+ '120x240',
+ '125x125',
+ '728x90',
+ '160x600',
+ '120x600',
+ '300x600',
+ ],
+ // 常见的屏幕宽高
+ _screenSize: [
+ '320x200',
+ '320x240',
+ '640x480',
+ '800x480',
+ '800x480',
+ '1024x600',
+ '1024x768',
+ '1280x800',
+ '1440x900',
+ '1920x1200',
+ '2560x1600',
+ ],
+ // 常见的视频宽高
+ _videoSize: ['720x480', '768x576', '1280x720', '1920x1080'],
+ /*
+ 生成一个随机的图片地址。
+
+ 替代图片源
+ http://fpoimg.com/
+ 参考自
+ http://rensanning.iteye.com/blog/1933310
+ http://code.tutsplus.com/articles/the-top-8-placeholders-for-web-designers--net-19485
+ */
+ image: function (size, background, foreground, format, text) {
+ // Random.image( size, background, foreground, text )
+ if (arguments.length === 4) {
+ text = format;
+ format = undefined;
+ }
+ // Random.image( size, background, text )
+ if (arguments.length === 3) {
+ text = foreground;
+ foreground = undefined;
+ }
+ // Random.image()
+ if (!size) size = this.pick(this._adSize);
+
+ if (background && ~background.indexOf('#')) background = background.slice(1);
+ if (foreground && ~foreground.indexOf('#')) foreground = foreground.slice(1);
+
+ // http://dummyimage.com/600x400/cc00cc/470047.png&text=hello
+ return (
+ 'http://dummyimage.com/' +
+ size +
+ (background ? '/' + background : '') +
+ (foreground ? '/' + foreground : '') +
+ (format ? '.' + format : '') +
+ (text ? '&text=' + text : '')
+ );
+ },
+ img: function () {
+ return this.image.apply(this, arguments);
+ },
+
+ /*
+ BrandColors
+ http://brandcolors.net/
+ A collection of major brand color codes curated by Galen Gidman.
+ 大牌公司的颜色集合
+
+ // 获取品牌和颜色
+ $('h2').each(function(index, item){
+ item = $(item)
+ console.log('\'' + item.text() + '\'', ':', '\'' + item.next().text() + '\'', ',')
+ })
+ */
+ _brandColors: {
+ '4ormat': '#fb0a2a',
+ '500px': '#02adea',
+ 'About.me (blue)': '#00405d',
+ 'About.me (yellow)': '#ffcc33',
+ Addvocate: '#ff6138',
+ Adobe: '#ff0000',
+ Aim: '#fcd20b',
+ Amazon: '#e47911',
+ Android: '#a4c639',
+ "Angie's List": '#7fbb00',
+ AOL: '#0060a3',
+ Atlassian: '#003366',
+ Behance: '#053eff',
+ 'Big Cartel': '#97b538',
+ bitly: '#ee6123',
+ Blogger: '#fc4f08',
+ Boeing: '#0039a6',
+ 'Booking.com': '#003580',
+ Carbonmade: '#613854',
+ Cheddar: '#ff7243',
+ 'Code School': '#3d4944',
+ Delicious: '#205cc0',
+ Dell: '#3287c1',
+ Designmoo: '#e54a4f',
+ Deviantart: '#4e6252',
+ 'Designer News': '#2d72da',
+ Devour: '#fd0001',
+ DEWALT: '#febd17',
+ 'Disqus (blue)': '#59a3fc',
+ 'Disqus (orange)': '#db7132',
+ Dribbble: '#ea4c89',
+ Dropbox: '#3d9ae8',
+ Drupal: '#0c76ab',
+ Dunked: '#2a323a',
+ eBay: '#89c507',
+ Ember: '#f05e1b',
+ Engadget: '#00bdf6',
+ Envato: '#528036',
+ Etsy: '#eb6d20',
+ Evernote: '#5ba525',
+ 'Fab.com': '#dd0017',
+ Facebook: '#3b5998',
+ Firefox: '#e66000',
+ 'Flickr (blue)': '#0063dc',
+ 'Flickr (pink)': '#ff0084',
+ Forrst: '#5b9a68',
+ Foursquare: '#25a0ca',
+ Garmin: '#007cc3',
+ GetGlue: '#2d75a2',
+ Gimmebar: '#f70078',
+ GitHub: '#171515',
+ 'Google Blue': '#0140ca',
+ 'Google Green': '#16a61e',
+ 'Google Red': '#dd1812',
+ 'Google Yellow': '#fcca03',
+ 'Google+': '#dd4b39',
+ Grooveshark: '#f77f00',
+ Groupon: '#82b548',
+ 'Hacker News': '#ff6600',
+ HelloWallet: '#0085ca',
+ 'Heroku (light)': '#c7c5e6',
+ 'Heroku (dark)': '#6567a5',
+ HootSuite: '#003366',
+ Houzz: '#73ba37',
+ HTML5: '#ec6231',
+ IKEA: '#ffcc33',
+ IMDb: '#f3ce13',
+ Instagram: '#3f729b',
+ Intel: '#0071c5',
+ Intuit: '#365ebf',
+ Kickstarter: '#76cc1e',
+ kippt: '#e03500',
+ Kodery: '#00af81',
+ LastFM: '#c3000d',
+ LinkedIn: '#0e76a8',
+ Livestream: '#cf0005',
+ Lumo: '#576396',
+ Mixpanel: '#a086d3',
+ Meetup: '#e51937',
+ Nokia: '#183693',
+ NVIDIA: '#76b900',
+ Opera: '#cc0f16',
+ Path: '#e41f11',
+ 'PayPal (dark)': '#1e477a',
+ 'PayPal (light)': '#3b7bbf',
+ Pinboard: '#0000e6',
+ Pinterest: '#c8232c',
+ PlayStation: '#665cbe',
+ Pocket: '#ee4056',
+ Prezi: '#318bff',
+ Pusha: '#0f71b4',
+ Quora: '#a82400',
+ 'QUOTE.fm': '#66ceff',
+ Rdio: '#008fd5',
+ Readability: '#9c0000',
+ 'Red Hat': '#cc0000',
+ Resource: '#7eb400',
+ Rockpack: '#0ba6ab',
+ Roon: '#62b0d9',
+ RSS: '#ee802f',
+ Salesforce: '#1798c1',
+ Samsung: '#0c4da2',
+ Shopify: '#96bf48',
+ Skype: '#00aff0',
+ Snagajob: '#f47a20',
+ Softonic: '#008ace',
+ SoundCloud: '#ff7700',
+ 'Space Box': '#f86960',
+ Spotify: '#81b71a',
+ Sprint: '#fee100',
+ Squarespace: '#121212',
+ StackOverflow: '#ef8236',
+ Staples: '#cc0000',
+ 'Status Chart': '#d7584f',
+ Stripe: '#008cdd',
+ StudyBlue: '#00afe1',
+ StumbleUpon: '#f74425',
+ 'T-Mobile': '#ea0a8e',
+ Technorati: '#40a800',
+ 'The Next Web': '#ef4423',
+ Treehouse: '#5cb868',
+ Trulia: '#5eab1f',
+ Tumblr: '#34526f',
+ 'Twitch.tv': '#6441a5',
+ Twitter: '#00acee',
+ TYPO3: '#ff8700',
+ Ubuntu: '#dd4814',
+ Ustream: '#3388ff',
+ Verizon: '#ef1d1d',
+ Vimeo: '#86c9ef',
+ Vine: '#00a478',
+ Virb: '#06afd8',
+ 'Virgin Media': '#cc0000',
+ Wooga: '#5b009c',
+ 'WordPress (blue)': '#21759b',
+ 'WordPress (orange)': '#d54e21',
+ 'WordPress (grey)': '#464646',
+ Wunderlist: '#2b88d9',
+ XBOX: '#9bc848',
+ XING: '#126567',
+ 'Yahoo!': '#720e9e',
+ Yandex: '#ffcc00',
+ Yelp: '#c41200',
+ YouTube: '#c4302b',
+ Zalongo: '#5498dc',
+ Zendesk: '#78a300',
+ Zerply: '#9dcc7a',
+ Zootool: '#5e8b1d',
+ },
+ _brandNames: function () {
+ var brands = [];
+ for (var b in this._brandColors) {
+ brands.push(b);
+ }
+ return brands;
+ },
+ /*
+ 生成一段随机的 Base64 图片编码。
+
+ https://github.com/imsky/holder
+ Holder renders image placeholders entirely on the client side.
+
+ dataImageHolder: function(size) {
+ return 'holder.js/' + size
+ },
+ */
+ dataImage: function (size, text) {
+ var canvas;
+ if (typeof document !== 'undefined') {
+ canvas = document.createElement('canvas');
+ } else {
+ /*
+ https://github.com/Automattic/node-canvas
+ npm install canvas --save
+ 安装问题:
+ * http://stackoverflow.com/questions/22953206/gulp-issues-with-cario-install-command-not-found-when-trying-to-installing-canva
+ * https://github.com/Automattic/node-canvas/issues/415
+ * https://github.com/Automattic/node-canvas/wiki/_pages
+
+ PS:node-canvas 的安装过程实在是太繁琐了,所以不放入 package.json 的 dependencies。
+ */
+ var Canvas = module.require('canvas');
+ canvas = new Canvas();
+ }
+
+ var ctx = canvas && canvas.getContext && canvas.getContext('2d');
+ if (!canvas || !ctx) return '';
+
+ if (!size) size = this.pick(this._adSize);
+ text = text !== undefined ? text : size;
+
+ size = size.split('x');
+
+ var width = parseInt(size[0], 10),
+ height = parseInt(size[1], 10),
+ background = this._brandColors[this.pick(this._brandNames())],
+ foreground = '#FFF',
+ text_height = 14,
+ font = 'sans-serif';
+
+ canvas.width = width;
+ canvas.height = height;
+ ctx.textAlign = 'center';
+ ctx.textBaseline = 'middle';
+ ctx.fillStyle = background;
+ ctx.fillRect(0, 0, width, height);
+ ctx.fillStyle = foreground;
+ ctx.font = 'bold ' + text_height + 'px ' + font;
+ ctx.fillText(text, width / 2, height / 2, width);
+ return canvas.toDataURL('image/png');
+ },
+ };
+ /* WEBPACK VAR INJECTION */
+ }).call(exports, __webpack_require__(9)(module));
+
+ /***/
+ },
+ /* 9 */
+ /***/ function (module, exports) {
+ module.exports = function (module) {
+ if (!module.webpackPolyfill) {
+ module.deprecate = function () {};
+ module.paths = [];
+ // module.parent = undefined by default
+ module.children = [];
+ module.webpackPolyfill = 1;
+ }
+ return module;
+ };
+
+ /***/
+ },
+ /* 10 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Color
+
+ http://llllll.li/randomColor/
+ A color generator for JavaScript.
+ randomColor generates attractive colors by default. More specifically, randomColor produces bright colors with a reasonably high saturation. This makes randomColor particularly useful for data visualizations and generative art.
+
+ http://randomcolour.com/
+ var bg_colour = Math.floor(Math.random() * 16777215).toString(16);
+ bg_colour = "#" + ("000000" + bg_colour).slice(-6);
+ document.bgColor = bg_colour;
+
+ http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
+ Creating random colors is actually more difficult than it seems. The randomness itself is easy, but aesthetically pleasing randomness is more difficult.
+ https://github.com/devongovett/color-generator
+
+ http://www.paulirish.com/2009/random-hex-color-code-snippets/
+ Random Hex Color Code Generator in JavaScript
+
+ http://chancejs.com/#color
+ chance.color()
+ // => '#79c157'
+ chance.color({format: 'hex'})
+ // => '#d67118'
+ chance.color({format: 'shorthex'})
+ // => '#60f'
+ chance.color({format: 'rgb'})
+ // => 'rgb(110,52,164)'
+
+ http://tool.c7sky.com/webcolor
+ 网页设计常用色彩搭配表
+
+ https://github.com/One-com/one-color
+ An OO-based JavaScript color parser/computation toolkit with support for RGB, HSV, HSL, CMYK, and alpha channels.
+ API 很赞
+
+ https://github.com/harthur/color
+ JavaScript color conversion and manipulation library
+
+ https://github.com/leaverou/css-colors
+ Share & convert CSS colors
+ http://leaverou.github.io/css-colors/#slategray
+ Type a CSS color keyword, #hex, hsl(), rgba(), whatever:
+
+ 色调 hue
+ http://baike.baidu.com/view/23368.htm
+ 色调指的是一幅画中画面色彩的总体倾向,是大的色彩效果。
+ 饱和度 saturation
+ http://baike.baidu.com/view/189644.htm
+ 饱和度是指色彩的鲜艳程度,也称色彩的纯度。饱和度取决于该色中含色成分和消色成分(灰色)的比例。含色成分越大,饱和度越大;消色成分越大,饱和度越小。
+ 亮度 brightness
+ http://baike.baidu.com/view/34773.htm
+ 亮度是指发光体(反光体)表面发光(反光)强弱的物理量。
+ 照度 luminosity
+ 物体被照亮的程度,采用单位面积所接受的光通量来表示,表示单位为勒[克斯](Lux,lx) ,即 1m / m2 。
+
+ http://stackoverflow.com/questions/1484506/random-color-generator-in-javascript
+ var letters = '0123456789ABCDEF'.split('')
+ var color = '#'
+ for (var i = 0; i < 6; i++) {
+ color += letters[Math.floor(Math.random() * 16)]
+ }
+ return color
+
+ // 随机生成一个无脑的颜色,格式为 '#RRGGBB'。
+ // _brainlessColor()
+ var color = Math.floor(
+ Math.random() *
+ (16 * 16 * 16 * 16 * 16 * 16 - 1)
+ ).toString(16)
+ color = "#" + ("000000" + color).slice(-6)
+ return color.toUpperCase()
+ */
+
+ var Convert = __webpack_require__(11);
+ var DICT = __webpack_require__(12);
+
+ module.exports = {
+ // 随机生成一个有吸引力的颜色,格式为 '#RRGGBB'。
+ color: function (name) {
+ if (name || DICT[name]) return DICT[name].nicer;
+ return this.hex();
+ },
+ // #DAC0DE
+ hex: function () {
+ var hsv = this._goldenRatioColor();
+ var rgb = Convert.hsv2rgb(hsv);
+ var hex = Convert.rgb2hex(rgb[0], rgb[1], rgb[2]);
+ return hex;
+ },
+ // rgb(128,255,255)
+ rgb: function () {
+ var hsv = this._goldenRatioColor();
+ var rgb = Convert.hsv2rgb(hsv);
+ return 'rgb(' + parseInt(rgb[0], 10) + ', ' + parseInt(rgb[1], 10) + ', ' + parseInt(rgb[2], 10) + ')';
+ },
+ // rgba(128,255,255,0.3)
+ rgba: function () {
+ var hsv = this._goldenRatioColor();
+ var rgb = Convert.hsv2rgb(hsv);
+ return (
+ 'rgba(' +
+ parseInt(rgb[0], 10) +
+ ', ' +
+ parseInt(rgb[1], 10) +
+ ', ' +
+ parseInt(rgb[2], 10) +
+ ', ' +
+ Math.random().toFixed(2) +
+ ')'
+ );
+ },
+ // hsl(300,80%,90%)
+ hsl: function () {
+ var hsv = this._goldenRatioColor();
+ var hsl = Convert.hsv2hsl(hsv);
+ return 'hsl(' + parseInt(hsl[0], 10) + ', ' + parseInt(hsl[1], 10) + ', ' + parseInt(hsl[2], 10) + ')';
+ },
+ // http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/
+ // https://github.com/devongovett/color-generator/blob/master/index.js
+ // 随机生成一个有吸引力的颜色。
+ _goldenRatioColor: function (saturation, value) {
+ this._goldenRatio = 0.618033988749895;
+ this._hue = this._hue || Math.random();
+ this._hue += this._goldenRatio;
+ this._hue %= 1;
+
+ if (typeof saturation !== 'number') saturation = 0.5;
+ if (typeof value !== 'number') value = 0.95;
+
+ return [this._hue * 360, saturation * 100, value * 100];
+ },
+ };
+
+ /***/
+ },
+ /* 11 */
+ /***/ function (module, exports) {
+ /*
+ ## Color Convert
+
+ http://blog.csdn.net/idfaya/article/details/6770414
+ 颜色空间RGB与HSV(HSL)的转换
+ */
+ // https://github.com/harthur/color-convert/blob/master/conversions.js
+ module.exports = {
+ rgb2hsl: function rgb2hsl(rgb) {
+ var r = rgb[0] / 255,
+ g = rgb[1] / 255,
+ b = rgb[2] / 255,
+ min = Math.min(r, g, b),
+ max = Math.max(r, g, b),
+ delta = max - min,
+ h,
+ s,
+ l;
+
+ if (max == min) h = 0;
+ else if (r == max) h = (g - b) / delta;
+ else if (g == max) h = 2 + (b - r) / delta;
+ else if (b == max) h = 4 + (r - g) / delta;
+
+ h = Math.min(h * 60, 360);
+
+ if (h < 0) h += 360;
+
+ l = (min + max) / 2;
+
+ if (max == min) s = 0;
+ else if (l <= 0.5) s = delta / (max + min);
+ else s = delta / (2 - max - min);
+
+ return [h, s * 100, l * 100];
+ },
+ rgb2hsv: function rgb2hsv(rgb) {
+ var r = rgb[0],
+ g = rgb[1],
+ b = rgb[2],
+ min = Math.min(r, g, b),
+ max = Math.max(r, g, b),
+ delta = max - min,
+ h,
+ s,
+ v;
+
+ if (max === 0) s = 0;
+ else s = ((delta / max) * 1000) / 10;
+
+ if (max == min) h = 0;
+ else if (r == max) h = (g - b) / delta;
+ else if (g == max) h = 2 + (b - r) / delta;
+ else if (b == max) h = 4 + (r - g) / delta;
+
+ h = Math.min(h * 60, 360);
+
+ if (h < 0) h += 360;
+
+ v = ((max / 255) * 1000) / 10;
+
+ return [h, s, v];
+ },
+ hsl2rgb: function hsl2rgb(hsl) {
+ var h = hsl[0] / 360,
+ s = hsl[1] / 100,
+ l = hsl[2] / 100,
+ t1,
+ t2,
+ t3,
+ rgb,
+ val;
+
+ if (s === 0) {
+ val = l * 255;
+ return [val, val, val];
+ }
+
+ if (l < 0.5) t2 = l * (1 + s);
+ else t2 = l + s - l * s;
+ t1 = 2 * l - t2;
+
+ rgb = [0, 0, 0];
+ for (var i = 0; i < 3; i++) {
+ t3 = h + (1 / 3) * -(i - 1);
+ if (t3 < 0) t3++;
+ if (t3 > 1) t3--;
+
+ if (6 * t3 < 1) val = t1 + (t2 - t1) * 6 * t3;
+ else if (2 * t3 < 1) val = t2;
+ else if (3 * t3 < 2) val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
+ else val = t1;
+
+ rgb[i] = val * 255;
+ }
+
+ return rgb;
+ },
+ hsl2hsv: function hsl2hsv(hsl) {
+ var h = hsl[0],
+ s = hsl[1] / 100,
+ l = hsl[2] / 100,
+ sv,
+ v;
+ l *= 2;
+ s *= l <= 1 ? l : 2 - l;
+ v = (l + s) / 2;
+ sv = (2 * s) / (l + s);
+ return [h, sv * 100, v * 100];
+ },
+ hsv2rgb: function hsv2rgb(hsv) {
+ var h = hsv[0] / 60;
+ var s = hsv[1] / 100;
+ var v = hsv[2] / 100;
+ var hi = Math.floor(h) % 6;
+
+ var f = h - Math.floor(h);
+ var p = 255 * v * (1 - s);
+ var q = 255 * v * (1 - s * f);
+ var t = 255 * v * (1 - s * (1 - f));
+
+ v = 255 * v;
+
+ switch (hi) {
+ case 0:
+ return [v, t, p];
+ case 1:
+ return [q, v, p];
+ case 2:
+ return [p, v, t];
+ case 3:
+ return [p, q, v];
+ case 4:
+ return [t, p, v];
+ case 5:
+ return [v, p, q];
+ }
+ },
+ hsv2hsl: function hsv2hsl(hsv) {
+ var h = hsv[0],
+ s = hsv[1] / 100,
+ v = hsv[2] / 100,
+ sl,
+ l;
+
+ l = (2 - s) * v;
+ sl = s * v;
+ sl /= l <= 1 ? l : 2 - l;
+ l /= 2;
+ return [h, sl * 100, l * 100];
+ },
+ // http://www.140byt.es/keywords/color
+ rgb2hex: function (
+ a, // red, as a number from 0 to 255
+ b, // green, as a number from 0 to 255
+ c, // blue, as a number from 0 to 255
+ ) {
+ return '#' + (((((256 + a) << 8) | b) << 8) | c).toString(16).slice(1);
+ },
+ hex2rgb: function (
+ a, // take a "#xxxxxx" hex string,
+ ) {
+ a = ('0x' + a.slice(1).replace(a.length > 4 ? a : /./g, '$&$&')) | 0;
+ return [a >> 16, (a >> 8) & 255, a & 255];
+ },
+ };
+
+ /***/
+ },
+ /* 12 */
+ /***/ function (module, exports) {
+ /*
+ ## Color 字典数据
+
+ 字典数据来源 [A nicer color palette for the web](http://clrs.cc/)
+ */
+ module.exports = {
+ // name value nicer
+ navy: {
+ value: '#000080',
+ nicer: '#001F3F',
+ },
+ blue: {
+ value: '#0000ff',
+ nicer: '#0074D9',
+ },
+ aqua: {
+ value: '#00ffff',
+ nicer: '#7FDBFF',
+ },
+ teal: {
+ value: '#008080',
+ nicer: '#39CCCC',
+ },
+ olive: {
+ value: '#008000',
+ nicer: '#3D9970',
+ },
+ green: {
+ value: '#008000',
+ nicer: '#2ECC40',
+ },
+ lime: {
+ value: '#00ff00',
+ nicer: '#01FF70',
+ },
+ yellow: {
+ value: '#ffff00',
+ nicer: '#FFDC00',
+ },
+ orange: {
+ value: '#ffa500',
+ nicer: '#FF851B',
+ },
+ red: {
+ value: '#ff0000',
+ nicer: '#FF4136',
+ },
+ maroon: {
+ value: '#800000',
+ nicer: '#85144B',
+ },
+ fuchsia: {
+ value: '#ff00ff',
+ nicer: '#F012BE',
+ },
+ purple: {
+ value: '#800080',
+ nicer: '#B10DC9',
+ },
+ silver: {
+ value: '#c0c0c0',
+ nicer: '#DDDDDD',
+ },
+ gray: {
+ value: '#808080',
+ nicer: '#AAAAAA',
+ },
+ black: {
+ value: '#000000',
+ nicer: '#111111',
+ },
+ white: {
+ value: '#FFFFFF',
+ nicer: '#FFFFFF',
+ },
+ };
+
+ /***/
+ },
+ /* 13 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Text
+
+ http://www.lipsum.com/
+ */
+ var Basic = __webpack_require__(6);
+ var Helper = __webpack_require__(14);
+
+ function range(defaultMin, defaultMax, min, max) {
+ return min === undefined
+ ? Basic.natural(defaultMin, defaultMax) // ()
+ : max === undefined
+ ? min // ( len )
+ : Basic.natural(parseInt(min, 10), parseInt(max, 10)); // ( min, max )
+ }
+
+ module.exports = {
+ // 随机生成一段文本。
+ paragraph: function (min, max) {
+ var len = range(3, 7, min, max);
+ var result = [];
+ for (var i = 0; i < len; i++) {
+ result.push(this.sentence());
+ }
+ return result.join(' ');
+ },
+ //
+ cparagraph: function (min, max) {
+ var len = range(3, 7, min, max);
+ var result = [];
+ for (var i = 0; i < len; i++) {
+ result.push(this.csentence());
+ }
+ return result.join('');
+ },
+ // 随机生成一个句子,第一个单词的首字母大写。
+ sentence: function (min, max) {
+ var len = range(12, 18, min, max);
+ var result = [];
+ for (var i = 0; i < len; i++) {
+ result.push(this.word());
+ }
+ return Helper.capitalize(result.join(' ')) + '.';
+ },
+ // 随机生成一个中文句子。
+ csentence: function (min, max) {
+ var len = range(12, 18, min, max);
+ var result = [];
+ for (var i = 0; i < len; i++) {
+ result.push(this.cword());
+ }
+
+ return result.join('') + '。';
+ },
+ // 随机生成一个单词。
+ word: function (min, max) {
+ var len = range(3, 10, min, max);
+ var result = '';
+ for (var i = 0; i < len; i++) {
+ result += Basic.character('lower');
+ }
+ return result;
+ },
+ // 随机生成一个或多个汉字。
+ cword: function (pool, min, max) {
+ // 最常用的 500 个汉字 http://baike.baidu.com/view/568436.htm
+ var DICT_KANZI =
+ '的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府称太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞';
+
+ var len;
+ switch (arguments.length) {
+ case 0: // ()
+ pool = DICT_KANZI;
+ len = 1;
+ break;
+ case 1: // ( pool )
+ if (typeof arguments[0] === 'string') {
+ len = 1;
+ } else {
+ // ( length )
+ len = pool;
+ pool = DICT_KANZI;
+ }
+ break;
+ case 2:
+ // ( pool, length )
+ if (typeof arguments[0] === 'string') {
+ len = min;
+ } else {
+ // ( min, max )
+ len = this.natural(pool, min);
+ pool = DICT_KANZI;
+ }
+ break;
+ case 3:
+ len = this.natural(min, max);
+ break;
+ }
+
+ var result = '';
+ for (var i = 0; i < len; i++) {
+ result += pool.charAt(this.natural(0, pool.length - 1));
+ }
+ return result;
+ },
+ // 随机生成一句标题,其中每个单词的首字母大写。
+ title: function (min, max) {
+ var len = range(3, 7, min, max);
+ var result = [];
+ for (var i = 0; i < len; i++) {
+ result.push(this.capitalize(this.word()));
+ }
+ return result.join(' ');
+ },
+ // 随机生成一句中文标题。
+ ctitle: function (min, max) {
+ var len = range(3, 7, min, max);
+ var result = [];
+ for (var i = 0; i < len; i++) {
+ result.push(this.cword());
+ }
+ return result.join('');
+ },
+ };
+
+ /***/
+ },
+ /* 14 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Helpers
+ */
+
+ var Util = __webpack_require__(3);
+
+ module.exports = {
+ // 把字符串的第一个字母转换为大写。
+ capitalize: function (word) {
+ return (word + '').charAt(0).toUpperCase() + (word + '').substr(1);
+ },
+ // 把字符串转换为大写。
+ upper: function (str) {
+ return (str + '').toUpperCase();
+ },
+ // 把字符串转换为小写。
+ lower: function (str) {
+ return (str + '').toLowerCase();
+ },
+ // 从数组中随机选取一个元素,并返回。
+ pick: function pick(arr, min, max) {
+ // pick( item1, item2 ... )
+ if (!Util.isArray(arr)) {
+ arr = [].slice.call(arguments);
+ min = 1;
+ max = 1;
+ } else {
+ // pick( [ item1, item2 ... ] )
+ if (min === undefined) min = 1;
+
+ // pick( [ item1, item2 ... ], count )
+ if (max === undefined) max = min;
+ }
+
+ if (min === 1 && max === 1) return arr[this.natural(0, arr.length - 1)];
+
+ // pick( [ item1, item2 ... ], min, max )
+ return this.shuffle(arr, min, max);
+
+ // 通过参数个数判断方法签名,扩展性太差!#90
+ // switch (arguments.length) {
+ // case 1:
+ // // pick( [ item1, item2 ... ] )
+ // return arr[this.natural(0, arr.length - 1)]
+ // case 2:
+ // // pick( [ item1, item2 ... ], count )
+ // max = min
+ // /* falls through */
+ // case 3:
+ // // pick( [ item1, item2 ... ], min, max )
+ // return this.shuffle(arr, min, max)
+ // }
+ },
+ /*
+ 打乱数组中元素的顺序,并返回。
+ Given an array, scramble the order and return it.
+
+ 其他的实现思路:
+ // https://code.google.com/p/jslibs/wiki/JavascriptTips
+ result = result.sort(function() {
+ return Math.random() - 0.5
+ })
+ */
+ shuffle: function shuffle(arr, min, max) {
+ arr = arr || [];
+ var old = arr.slice(0),
+ result = [],
+ index = 0,
+ length = old.length;
+ for (var i = 0; i < length; i++) {
+ index = this.natural(0, old.length - 1);
+ result.push(old[index]);
+ old.splice(index, 1);
+ }
+ switch (arguments.length) {
+ case 0:
+ case 1:
+ return result;
+ case 2:
+ max = min;
+ /* falls through */
+ case 3:
+ min = parseInt(min, 10);
+ max = parseInt(max, 10);
+ return result.slice(0, this.natural(min, max));
+ }
+ },
+ /*
+ * Random.order(item, item)
+ * Random.order([item, item ...])
+
+ 顺序获取数组中的元素
+
+ [JSON导入数组支持数组数据录入](https://github.com/thx/RAP/issues/22)
+
+ 不支持单独调用!
+ */
+ order: function order(array) {
+ order.cache = order.cache || {};
+
+ if (arguments.length > 1) array = [].slice.call(arguments, 0);
+
+ // options.context.path/templatePath
+ var options = order.options;
+ var templatePath = options.context.templatePath.join('.');
+
+ var cache = (order.cache[templatePath] = order.cache[templatePath] || {
+ index: 0,
+ array: array,
+ });
+
+ return cache.array[cache.index++ % cache.array.length];
+ },
+ };
+
+ /***/
+ },
+ /* 15 */
+ /***/ function (module, exports) {
+ /*
+ ## Name
+
+ [Beyond the Top 1000 Names](http://www.ssa.gov/oact/babynames/limits.html)
+ */
+ module.exports = {
+ // 随机生成一个常见的英文名。
+ first: function () {
+ var names = [
+ // male
+ 'James',
+ 'John',
+ 'Robert',
+ 'Michael',
+ 'William',
+ 'David',
+ 'Richard',
+ 'Charles',
+ 'Joseph',
+ 'Thomas',
+ 'Christopher',
+ 'Daniel',
+ 'Paul',
+ 'Mark',
+ 'Donald',
+ 'George',
+ 'Kenneth',
+ 'Steven',
+ 'Edward',
+ 'Brian',
+ 'Ronald',
+ 'Anthony',
+ 'Kevin',
+ 'Jason',
+ 'Matthew',
+ 'Gary',
+ 'Timothy',
+ 'Jose',
+ 'Larry',
+ 'Jeffrey',
+ 'Frank',
+ 'Scott',
+ 'Eric',
+ ].concat([
+ // female
+ 'Mary',
+ 'Patricia',
+ 'Linda',
+ 'Barbara',
+ 'Elizabeth',
+ 'Jennifer',
+ 'Maria',
+ 'Susan',
+ 'Margaret',
+ 'Dorothy',
+ 'Lisa',
+ 'Nancy',
+ 'Karen',
+ 'Betty',
+ 'Helen',
+ 'Sandra',
+ 'Donna',
+ 'Carol',
+ 'Ruth',
+ 'Sharon',
+ 'Michelle',
+ 'Laura',
+ 'Sarah',
+ 'Kimberly',
+ 'Deborah',
+ 'Jessica',
+ 'Shirley',
+ 'Cynthia',
+ 'Angela',
+ 'Melissa',
+ 'Brenda',
+ 'Amy',
+ 'Anna',
+ ]);
+ return this.pick(names);
+ // or this.capitalize(this.word())
+ },
+ // 随机生成一个常见的英文姓。
+ last: function () {
+ var names = [
+ 'Smith',
+ 'Johnson',
+ 'Williams',
+ 'Brown',
+ 'Jones',
+ 'Miller',
+ 'Davis',
+ 'Garcia',
+ 'Rodriguez',
+ 'Wilson',
+ 'Martinez',
+ 'Anderson',
+ 'Taylor',
+ 'Thomas',
+ 'Hernandez',
+ 'Moore',
+ 'Martin',
+ 'Jackson',
+ 'Thompson',
+ 'White',
+ 'Lopez',
+ 'Lee',
+ 'Gonzalez',
+ 'Harris',
+ 'Clark',
+ 'Lewis',
+ 'Robinson',
+ 'Walker',
+ 'Perez',
+ 'Hall',
+ 'Young',
+ 'Allen',
+ ];
+ return this.pick(names);
+ // or this.capitalize(this.word())
+ },
+ // 随机生成一个常见的英文姓名。
+ name: function (middle) {
+ return this.first() + ' ' + (middle ? this.first() + ' ' : '') + this.last();
+ },
+ /*
+ 随机生成一个常见的中文姓。
+ [世界常用姓氏排行](http://baike.baidu.com/view/1719115.htm)
+ [玄派网 - 网络小说创作辅助平台](http://xuanpai.sinaapp.com/)
+ */
+ cfirst: function () {
+ var names = (
+ '王 李 张 刘 陈 杨 赵 黄 周 吴 ' +
+ '徐 孙 胡 朱 高 林 何 郭 马 罗 ' +
+ '梁 宋 郑 谢 韩 唐 冯 于 董 萧 ' +
+ '程 曹 袁 邓 许 傅 沈 曾 彭 吕 ' +
+ '苏 卢 蒋 蔡 贾 丁 魏 薛 叶 阎 ' +
+ '余 潘 杜 戴 夏 锺 汪 田 任 姜 ' +
+ '范 方 石 姚 谭 廖 邹 熊 金 陆 ' +
+ '郝 孔 白 崔 康 毛 邱 秦 江 史 ' +
+ '顾 侯 邵 孟 龙 万 段 雷 钱 汤 ' +
+ '尹 黎 易 常 武 乔 贺 赖 龚 文'
+ ).split(' ');
+ return this.pick(names);
+ },
+ /*
+ 随机生成一个常见的中文名。
+ [中国最常见名字前50名_三九算命网](http://www.name999.net/xingming/xingshi/20131004/48.html)
+ */
+ clast: function () {
+ var names = ('伟 芳 娜 秀英 敏 静 丽 强 磊 军 ' + '洋 勇 艳 杰 娟 涛 明 超 秀兰 霞 ' + '平 刚 桂英').split(
+ ' ',
+ );
+ return this.pick(names);
+ },
+ // 随机生成一个常见的中文姓名。
+ cname: function () {
+ return this.cfirst() + this.clast();
+ },
+ };
+
+ /***/
+ },
+ /* 16 */
+ /***/ function (module, exports) {
+ /*
+ ## Web
+ */
+ module.exports = {
+ /*
+ 随机生成一个 URL。
+
+ [URL 规范](http://www.w3.org/Addressing/URL/url-spec.txt)
+ http Hypertext Transfer Protocol
+ ftp File Transfer protocol
+ gopher The Gopher protocol
+ mailto Electronic mail address
+ mid Message identifiers for electronic mail
+ cid Content identifiers for MIME body part
+ news Usenet news
+ nntp Usenet news for local NNTP access only
+ prospero Access using the prospero protocols
+ telnet rlogin tn3270 Reference to interactive sessions
+ wais Wide Area Information Servers
+ */
+ url: function (protocol, host) {
+ return (
+ (protocol || this.protocol()) +
+ '://' + // protocol?
+ (host || this.domain()) + // host?
+ '/' +
+ this.word()
+ );
+ },
+ // 随机生成一个 URL 协议。
+ protocol: function () {
+ return this.pick(
+ // 协议簇
+ 'http ftp gopher mailto mid cid news nntp prospero telnet rlogin tn3270 wais'.split(' '),
+ );
+ },
+ // 随机生成一个域名。
+ domain: function (tld) {
+ return this.word() + '.' + (tld || this.tld());
+ },
+ /*
+ 随机生成一个顶级域名。
+ 国际顶级域名 international top-level domain-names, iTLDs
+ 国家顶级域名 national top-level domainnames, nTLDs
+ [域名后缀大全](http://www.163ns.com/zixun/post/4417.html)
+ */
+ tld: function () {
+ // Top Level Domain
+ return this.pick(
+ // 域名后缀
+ (
+ 'com net org edu gov int mil cn ' +
+ // 国内域名
+ 'com.cn net.cn gov.cn org.cn ' +
+ // 中文国内域名
+ '中国 中国互联.公司 中国互联.网络 ' +
+ // 新国际域名
+ 'tel biz cc tv info name hk mobi asia cd travel pro museum coop aero ' +
+ // 世界各国域名后缀
+ 'ad ae af ag ai al am an ao aq ar as at au aw az ba bb bd be bf bg bh bi bj bm bn bo br bs bt bv bw by bz ca cc cf cg ch ci ck cl cm cn co cq cr cu cv cx cy cz de dj dk dm do dz ec ee eg eh es et ev fi fj fk fm fo fr ga gb gd ge gf gh gi gl gm gn gp gr gt gu gw gy hk hm hn hr ht hu id ie il in io iq ir is it jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc li lk lr ls lt lu lv ly ma mc md mg mh ml mm mn mo mp mq mr ms mt mv mw mx my mz na nc ne nf ng ni nl no np nr nt nu nz om qa pa pe pf pg ph pk pl pm pn pr pt pw py re ro ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr st su sy sz tc td tf tg th tj tk tm tn to tp tr tt tv tw tz ua ug uk us uy va vc ve vg vn vu wf ws ye yu za zm zr zw'
+ ).split(' '),
+ );
+ },
+ // 随机生成一个邮件地址。
+ email: function (domain) {
+ return this.character('lower') + '.' + this.word() + '@' + (domain || this.word() + '.' + this.tld());
+ // return this.character('lower') + '.' + this.last().toLowerCase() + '@' + this.last().toLowerCase() + '.' + this.tld()
+ // return this.word() + '@' + (domain || this.domain())
+ },
+ // 随机生成一个 IP 地址。
+ ip: function () {
+ return (
+ this.natural(0, 255) +
+ '.' +
+ this.natural(0, 255) +
+ '.' +
+ this.natural(0, 255) +
+ '.' +
+ this.natural(0, 255)
+ );
+ },
+ };
+
+ /***/
+ },
+ /* 17 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Address
+ */
+
+ var DICT = __webpack_require__(18);
+ var REGION = ['东北', '华北', '华东', '华中', '华南', '西南', '西北'];
+
+ module.exports = {
+ // 随机生成一个大区。
+ region: function () {
+ return this.pick(REGION);
+ },
+ // 随机生成一个(中国)省(或直辖市、自治区、特别行政区)。
+ province: function () {
+ return this.pick(DICT).name;
+ },
+ // 随机生成一个(中国)市。
+ city: function (prefix) {
+ var province = this.pick(DICT);
+ var city = this.pick(province.children);
+ return prefix ? [province.name, city.name].join(' ') : city.name;
+ },
+ // 随机生成一个(中国)县。
+ county: function (prefix) {
+ var province = this.pick(DICT);
+ var city = this.pick(province.children);
+ var county = this.pick(city.children) || {
+ name: '-',
+ };
+ return prefix ? [province.name, city.name, county.name].join(' ') : county.name;
+ },
+ // 随机生成一个邮政编码(六位数字)。
+ zip: function (len) {
+ var zip = '';
+ for (var i = 0; i < (len || 6); i++) zip += this.natural(0, 9);
+ return zip;
+ },
+
+ // address: function() {},
+ // phone: function() {},
+ // areacode: function() {},
+ // street: function() {},
+ // street_suffixes: function() {},
+ // street_suffix: function() {},
+ // states: function() {},
+ // state: function() {},
+ };
+
+ /***/
+ },
+ /* 18 */
+ /***/ function (module, exports) {
+ /*
+ ## Address 字典数据
+
+ 字典数据来源 http://www.atatech.org/articles/30028?rnd=254259856
+
+ 国标 省(市)级行政区划码表
+
+ 华北 北京市 天津市 河北省 山西省 内蒙古自治区
+ 东北 辽宁省 吉林省 黑龙江省
+ 华东 上海市 江苏省 浙江省 安徽省 福建省 江西省 山东省
+ 华南 广东省 广西壮族自治区 海南省
+ 华中 河南省 湖北省 湖南省
+ 西南 重庆市 四川省 贵州省 云南省 西藏自治区
+ 西北 陕西省 甘肃省 青海省 宁夏回族自治区 新疆维吾尔自治区
+ 港澳台 香港特别行政区 澳门特别行政区 台湾省
+
+ **排序**
+
+ ```js
+ var map = {}
+ _.each(_.keys(REGIONS),function(id){
+ map[id] = REGIONS[ID]
+ })
+ JSON.stringify(map)
+ ```
+ */
+ var DICT = {
+ 110000: '北京',
+ 110100: '北京市',
+ 110101: '东城区',
+ 110102: '西城区',
+ 110105: '朝阳区',
+ 110106: '丰台区',
+ 110107: '石景山区',
+ 110108: '海淀区',
+ 110109: '门头沟区',
+ 110111: '房山区',
+ 110112: '通州区',
+ 110113: '顺义区',
+ 110114: '昌平区',
+ 110115: '大兴区',
+ 110116: '怀柔区',
+ 110117: '平谷区',
+ 110228: '密云县',
+ 110229: '延庆县',
+ 110230: '其它区',
+ 120000: '天津',
+ 120100: '天津市',
+ 120101: '和平区',
+ 120102: '河东区',
+ 120103: '河西区',
+ 120104: '南开区',
+ 120105: '河北区',
+ 120106: '红桥区',
+ 120110: '东丽区',
+ 120111: '西青区',
+ 120112: '津南区',
+ 120113: '北辰区',
+ 120114: '武清区',
+ 120115: '宝坻区',
+ 120116: '滨海新区',
+ 120221: '宁河县',
+ 120223: '静海县',
+ 120225: '蓟县',
+ 120226: '其它区',
+ 130000: '河北省',
+ 130100: '石家庄市',
+ 130102: '长安区',
+ 130103: '桥东区',
+ 130104: '桥西区',
+ 130105: '新华区',
+ 130107: '井陉矿区',
+ 130108: '裕华区',
+ 130121: '井陉县',
+ 130123: '正定县',
+ 130124: '栾城县',
+ 130125: '行唐县',
+ 130126: '灵寿县',
+ 130127: '高邑县',
+ 130128: '深泽县',
+ 130129: '赞皇县',
+ 130130: '无极县',
+ 130131: '平山县',
+ 130132: '元氏县',
+ 130133: '赵县',
+ 130181: '辛集市',
+ 130182: '藁城市',
+ 130183: '晋州市',
+ 130184: '新乐市',
+ 130185: '鹿泉市',
+ 130186: '其它区',
+ 130200: '唐山市',
+ 130202: '路南区',
+ 130203: '路北区',
+ 130204: '古冶区',
+ 130205: '开平区',
+ 130207: '丰南区',
+ 130208: '丰润区',
+ 130223: '滦县',
+ 130224: '滦南县',
+ 130225: '乐亭县',
+ 130227: '迁西县',
+ 130229: '玉田县',
+ 130230: '曹妃甸区',
+ 130281: '遵化市',
+ 130283: '迁安市',
+ 130284: '其它区',
+ 130300: '秦皇岛市',
+ 130302: '海港区',
+ 130303: '山海关区',
+ 130304: '北戴河区',
+ 130321: '青龙满族自治县',
+ 130322: '昌黎县',
+ 130323: '抚宁县',
+ 130324: '卢龙县',
+ 130398: '其它区',
+ 130400: '邯郸市',
+ 130402: '邯山区',
+ 130403: '丛台区',
+ 130404: '复兴区',
+ 130406: '峰峰矿区',
+ 130421: '邯郸县',
+ 130423: '临漳县',
+ 130424: '成安县',
+ 130425: '大名县',
+ 130426: '涉县',
+ 130427: '磁县',
+ 130428: '肥乡县',
+ 130429: '永年县',
+ 130430: '邱县',
+ 130431: '鸡泽县',
+ 130432: '广平县',
+ 130433: '馆陶县',
+ 130434: '魏县',
+ 130435: '曲周县',
+ 130481: '武安市',
+ 130482: '其它区',
+ 130500: '邢台市',
+ 130502: '桥东区',
+ 130503: '桥西区',
+ 130521: '邢台县',
+ 130522: '临城县',
+ 130523: '内丘县',
+ 130524: '柏乡县',
+ 130525: '隆尧县',
+ 130526: '任县',
+ 130527: '南和县',
+ 130528: '宁晋县',
+ 130529: '巨鹿县',
+ 130530: '新河县',
+ 130531: '广宗县',
+ 130532: '平乡县',
+ 130533: '威县',
+ 130534: '清河县',
+ 130535: '临西县',
+ 130581: '南宫市',
+ 130582: '沙河市',
+ 130583: '其它区',
+ 130600: '保定市',
+ 130602: '新市区',
+ 130603: '北市区',
+ 130604: '南市区',
+ 130621: '满城县',
+ 130622: '清苑县',
+ 130623: '涞水县',
+ 130624: '阜平县',
+ 130625: '徐水县',
+ 130626: '定兴县',
+ 130627: '唐县',
+ 130628: '高阳县',
+ 130629: '容城县',
+ 130630: '涞源县',
+ 130631: '望都县',
+ 130632: '安新县',
+ 130633: '易县',
+ 130634: '曲阳县',
+ 130635: '蠡县',
+ 130636: '顺平县',
+ 130637: '博野县',
+ 130638: '雄县',
+ 130681: '涿州市',
+ 130682: '定州市',
+ 130683: '安国市',
+ 130684: '高碑店市',
+ 130699: '其它区',
+ 130700: '张家口市',
+ 130702: '桥东区',
+ 130703: '桥西区',
+ 130705: '宣化区',
+ 130706: '下花园区',
+ 130721: '宣化县',
+ 130722: '张北县',
+ 130723: '康保县',
+ 130724: '沽源县',
+ 130725: '尚义县',
+ 130726: '蔚县',
+ 130727: '阳原县',
+ 130728: '怀安县',
+ 130729: '万全县',
+ 130730: '怀来县',
+ 130731: '涿鹿县',
+ 130732: '赤城县',
+ 130733: '崇礼县',
+ 130734: '其它区',
+ 130800: '承德市',
+ 130802: '双桥区',
+ 130803: '双滦区',
+ 130804: '鹰手营子矿区',
+ 130821: '承德县',
+ 130822: '兴隆县',
+ 130823: '平泉县',
+ 130824: '滦平县',
+ 130825: '隆化县',
+ 130826: '丰宁满族自治县',
+ 130827: '宽城满族自治县',
+ 130828: '围场满族蒙古族自治县',
+ 130829: '其它区',
+ 130900: '沧州市',
+ 130902: '新华区',
+ 130903: '运河区',
+ 130921: '沧县',
+ 130922: '青县',
+ 130923: '东光县',
+ 130924: '海兴县',
+ 130925: '盐山县',
+ 130926: '肃宁县',
+ 130927: '南皮县',
+ 130928: '吴桥县',
+ 130929: '献县',
+ 130930: '孟村回族自治县',
+ 130981: '泊头市',
+ 130982: '任丘市',
+ 130983: '黄骅市',
+ 130984: '河间市',
+ 130985: '其它区',
+ 131000: '廊坊市',
+ 131002: '安次区',
+ 131003: '广阳区',
+ 131022: '固安县',
+ 131023: '永清县',
+ 131024: '香河县',
+ 131025: '大城县',
+ 131026: '文安县',
+ 131028: '大厂回族自治县',
+ 131081: '霸州市',
+ 131082: '三河市',
+ 131083: '其它区',
+ 131100: '衡水市',
+ 131102: '桃城区',
+ 131121: '枣强县',
+ 131122: '武邑县',
+ 131123: '武强县',
+ 131124: '饶阳县',
+ 131125: '安平县',
+ 131126: '故城县',
+ 131127: '景县',
+ 131128: '阜城县',
+ 131181: '冀州市',
+ 131182: '深州市',
+ 131183: '其它区',
+ 140000: '山西省',
+ 140100: '太原市',
+ 140105: '小店区',
+ 140106: '迎泽区',
+ 140107: '杏花岭区',
+ 140108: '尖草坪区',
+ 140109: '万柏林区',
+ 140110: '晋源区',
+ 140121: '清徐县',
+ 140122: '阳曲县',
+ 140123: '娄烦县',
+ 140181: '古交市',
+ 140182: '其它区',
+ 140200: '大同市',
+ 140202: '城区',
+ 140203: '矿区',
+ 140211: '南郊区',
+ 140212: '新荣区',
+ 140221: '阳高县',
+ 140222: '天镇县',
+ 140223: '广灵县',
+ 140224: '灵丘县',
+ 140225: '浑源县',
+ 140226: '左云县',
+ 140227: '大同县',
+ 140228: '其它区',
+ 140300: '阳泉市',
+ 140302: '城区',
+ 140303: '矿区',
+ 140311: '郊区',
+ 140321: '平定县',
+ 140322: '盂县',
+ 140323: '其它区',
+ 140400: '长治市',
+ 140421: '长治县',
+ 140423: '襄垣县',
+ 140424: '屯留县',
+ 140425: '平顺县',
+ 140426: '黎城县',
+ 140427: '壶关县',
+ 140428: '长子县',
+ 140429: '武乡县',
+ 140430: '沁县',
+ 140431: '沁源县',
+ 140481: '潞城市',
+ 140482: '城区',
+ 140483: '郊区',
+ 140485: '其它区',
+ 140500: '晋城市',
+ 140502: '城区',
+ 140521: '沁水县',
+ 140522: '阳城县',
+ 140524: '陵川县',
+ 140525: '泽州县',
+ 140581: '高平市',
+ 140582: '其它区',
+ 140600: '朔州市',
+ 140602: '朔城区',
+ 140603: '平鲁区',
+ 140621: '山阴县',
+ 140622: '应县',
+ 140623: '右玉县',
+ 140624: '怀仁县',
+ 140625: '其它区',
+ 140700: '晋中市',
+ 140702: '榆次区',
+ 140721: '榆社县',
+ 140722: '左权县',
+ 140723: '和顺县',
+ 140724: '昔阳县',
+ 140725: '寿阳县',
+ 140726: '太谷县',
+ 140727: '祁县',
+ 140728: '平遥县',
+ 140729: '灵石县',
+ 140781: '介休市',
+ 140782: '其它区',
+ 140800: '运城市',
+ 140802: '盐湖区',
+ 140821: '临猗县',
+ 140822: '万荣县',
+ 140823: '闻喜县',
+ 140824: '稷山县',
+ 140825: '新绛县',
+ 140826: '绛县',
+ 140827: '垣曲县',
+ 140828: '夏县',
+ 140829: '平陆县',
+ 140830: '芮城县',
+ 140881: '永济市',
+ 140882: '河津市',
+ 140883: '其它区',
+ 140900: '忻州市',
+ 140902: '忻府区',
+ 140921: '定襄县',
+ 140922: '五台县',
+ 140923: '代县',
+ 140924: '繁峙县',
+ 140925: '宁武县',
+ 140926: '静乐县',
+ 140927: '神池县',
+ 140928: '五寨县',
+ 140929: '岢岚县',
+ 140930: '河曲县',
+ 140931: '保德县',
+ 140932: '偏关县',
+ 140981: '原平市',
+ 140982: '其它区',
+ 141000: '临汾市',
+ 141002: '尧都区',
+ 141021: '曲沃县',
+ 141022: '翼城县',
+ 141023: '襄汾县',
+ 141024: '洪洞县',
+ 141025: '古县',
+ 141026: '安泽县',
+ 141027: '浮山县',
+ 141028: '吉县',
+ 141029: '乡宁县',
+ 141030: '大宁县',
+ 141031: '隰县',
+ 141032: '永和县',
+ 141033: '蒲县',
+ 141034: '汾西县',
+ 141081: '侯马市',
+ 141082: '霍州市',
+ 141083: '其它区',
+ 141100: '吕梁市',
+ 141102: '离石区',
+ 141121: '文水县',
+ 141122: '交城县',
+ 141123: '兴县',
+ 141124: '临县',
+ 141125: '柳林县',
+ 141126: '石楼县',
+ 141127: '岚县',
+ 141128: '方山县',
+ 141129: '中阳县',
+ 141130: '交口县',
+ 141181: '孝义市',
+ 141182: '汾阳市',
+ 141183: '其它区',
+ 150000: '内蒙古自治区',
+ 150100: '呼和浩特市',
+ 150102: '新城区',
+ 150103: '回民区',
+ 150104: '玉泉区',
+ 150105: '赛罕区',
+ 150121: '土默特左旗',
+ 150122: '托克托县',
+ 150123: '和林格尔县',
+ 150124: '清水河县',
+ 150125: '武川县',
+ 150126: '其它区',
+ 150200: '包头市',
+ 150202: '东河区',
+ 150203: '昆都仑区',
+ 150204: '青山区',
+ 150205: '石拐区',
+ 150206: '白云鄂博矿区',
+ 150207: '九原区',
+ 150221: '土默特右旗',
+ 150222: '固阳县',
+ 150223: '达尔罕茂明安联合旗',
+ 150224: '其它区',
+ 150300: '乌海市',
+ 150302: '海勃湾区',
+ 150303: '海南区',
+ 150304: '乌达区',
+ 150305: '其它区',
+ 150400: '赤峰市',
+ 150402: '红山区',
+ 150403: '元宝山区',
+ 150404: '松山区',
+ 150421: '阿鲁科尔沁旗',
+ 150422: '巴林左旗',
+ 150423: '巴林右旗',
+ 150424: '林西县',
+ 150425: '克什克腾旗',
+ 150426: '翁牛特旗',
+ 150428: '喀喇沁旗',
+ 150429: '宁城县',
+ 150430: '敖汉旗',
+ 150431: '其它区',
+ 150500: '通辽市',
+ 150502: '科尔沁区',
+ 150521: '科尔沁左翼中旗',
+ 150522: '科尔沁左翼后旗',
+ 150523: '开鲁县',
+ 150524: '库伦旗',
+ 150525: '奈曼旗',
+ 150526: '扎鲁特旗',
+ 150581: '霍林郭勒市',
+ 150582: '其它区',
+ 150600: '鄂尔多斯市',
+ 150602: '东胜区',
+ 150621: '达拉特旗',
+ 150622: '准格尔旗',
+ 150623: '鄂托克前旗',
+ 150624: '鄂托克旗',
+ 150625: '杭锦旗',
+ 150626: '乌审旗',
+ 150627: '伊金霍洛旗',
+ 150628: '其它区',
+ 150700: '呼伦贝尔市',
+ 150702: '海拉尔区',
+ 150703: '扎赉诺尔区',
+ 150721: '阿荣旗',
+ 150722: '莫力达瓦达斡尔族自治旗',
+ 150723: '鄂伦春自治旗',
+ 150724: '鄂温克族自治旗',
+ 150725: '陈巴尔虎旗',
+ 150726: '新巴尔虎左旗',
+ 150727: '新巴尔虎右旗',
+ 150781: '满洲里市',
+ 150782: '牙克石市',
+ 150783: '扎兰屯市',
+ 150784: '额尔古纳市',
+ 150785: '根河市',
+ 150786: '其它区',
+ 150800: '巴彦淖尔市',
+ 150802: '临河区',
+ 150821: '五原县',
+ 150822: '磴口县',
+ 150823: '乌拉特前旗',
+ 150824: '乌拉特中旗',
+ 150825: '乌拉特后旗',
+ 150826: '杭锦后旗',
+ 150827: '其它区',
+ 150900: '乌兰察布市',
+ 150902: '集宁区',
+ 150921: '卓资县',
+ 150922: '化德县',
+ 150923: '商都县',
+ 150924: '兴和县',
+ 150925: '凉城县',
+ 150926: '察哈尔右翼前旗',
+ 150927: '察哈尔右翼中旗',
+ 150928: '察哈尔右翼后旗',
+ 150929: '四子王旗',
+ 150981: '丰镇市',
+ 150982: '其它区',
+ 152200: '兴安盟',
+ 152201: '乌兰浩特市',
+ 152202: '阿尔山市',
+ 152221: '科尔沁右翼前旗',
+ 152222: '科尔沁右翼中旗',
+ 152223: '扎赉特旗',
+ 152224: '突泉县',
+ 152225: '其它区',
+ 152500: '锡林郭勒盟',
+ 152501: '二连浩特市',
+ 152502: '锡林浩特市',
+ 152522: '阿巴嘎旗',
+ 152523: '苏尼特左旗',
+ 152524: '苏尼特右旗',
+ 152525: '东乌珠穆沁旗',
+ 152526: '西乌珠穆沁旗',
+ 152527: '太仆寺旗',
+ 152528: '镶黄旗',
+ 152529: '正镶白旗',
+ 152530: '正蓝旗',
+ 152531: '多伦县',
+ 152532: '其它区',
+ 152900: '阿拉善盟',
+ 152921: '阿拉善左旗',
+ 152922: '阿拉善右旗',
+ 152923: '额济纳旗',
+ 152924: '其它区',
+ 210000: '辽宁省',
+ 210100: '沈阳市',
+ 210102: '和平区',
+ 210103: '沈河区',
+ 210104: '大东区',
+ 210105: '皇姑区',
+ 210106: '铁西区',
+ 210111: '苏家屯区',
+ 210112: '东陵区',
+ 210113: '新城子区',
+ 210114: '于洪区',
+ 210122: '辽中县',
+ 210123: '康平县',
+ 210124: '法库县',
+ 210181: '新民市',
+ 210184: '沈北新区',
+ 210185: '其它区',
+ 210200: '大连市',
+ 210202: '中山区',
+ 210203: '西岗区',
+ 210204: '沙河口区',
+ 210211: '甘井子区',
+ 210212: '旅顺口区',
+ 210213: '金州区',
+ 210224: '长海县',
+ 210281: '瓦房店市',
+ 210282: '普兰店市',
+ 210283: '庄河市',
+ 210298: '其它区',
+ 210300: '鞍山市',
+ 210302: '铁东区',
+ 210303: '铁西区',
+ 210304: '立山区',
+ 210311: '千山区',
+ 210321: '台安县',
+ 210323: '岫岩满族自治县',
+ 210381: '海城市',
+ 210382: '其它区',
+ 210400: '抚顺市',
+ 210402: '新抚区',
+ 210403: '东洲区',
+ 210404: '望花区',
+ 210411: '顺城区',
+ 210421: '抚顺县',
+ 210422: '新宾满族自治县',
+ 210423: '清原满族自治县',
+ 210424: '其它区',
+ 210500: '本溪市',
+ 210502: '平山区',
+ 210503: '溪湖区',
+ 210504: '明山区',
+ 210505: '南芬区',
+ 210521: '本溪满族自治县',
+ 210522: '桓仁满族自治县',
+ 210523: '其它区',
+ 210600: '丹东市',
+ 210602: '元宝区',
+ 210603: '振兴区',
+ 210604: '振安区',
+ 210624: '宽甸满族自治县',
+ 210681: '东港市',
+ 210682: '凤城市',
+ 210683: '其它区',
+ 210700: '锦州市',
+ 210702: '古塔区',
+ 210703: '凌河区',
+ 210711: '太和区',
+ 210726: '黑山县',
+ 210727: '义县',
+ 210781: '凌海市',
+ 210782: '北镇市',
+ 210783: '其它区',
+ 210800: '营口市',
+ 210802: '站前区',
+ 210803: '西市区',
+ 210804: '鲅鱼圈区',
+ 210811: '老边区',
+ 210881: '盖州市',
+ 210882: '大石桥市',
+ 210883: '其它区',
+ 210900: '阜新市',
+ 210902: '海州区',
+ 210903: '新邱区',
+ 210904: '太平区',
+ 210905: '清河门区',
+ 210911: '细河区',
+ 210921: '阜新蒙古族自治县',
+ 210922: '彰武县',
+ 210923: '其它区',
+ 211000: '辽阳市',
+ 211002: '白塔区',
+ 211003: '文圣区',
+ 211004: '宏伟区',
+ 211005: '弓长岭区',
+ 211011: '太子河区',
+ 211021: '辽阳县',
+ 211081: '灯塔市',
+ 211082: '其它区',
+ 211100: '盘锦市',
+ 211102: '双台子区',
+ 211103: '兴隆台区',
+ 211121: '大洼县',
+ 211122: '盘山县',
+ 211123: '其它区',
+ 211200: '铁岭市',
+ 211202: '银州区',
+ 211204: '清河区',
+ 211221: '铁岭县',
+ 211223: '西丰县',
+ 211224: '昌图县',
+ 211281: '调兵山市',
+ 211282: '开原市',
+ 211283: '其它区',
+ 211300: '朝阳市',
+ 211302: '双塔区',
+ 211303: '龙城区',
+ 211321: '朝阳县',
+ 211322: '建平县',
+ 211324: '喀喇沁左翼蒙古族自治县',
+ 211381: '北票市',
+ 211382: '凌源市',
+ 211383: '其它区',
+ 211400: '葫芦岛市',
+ 211402: '连山区',
+ 211403: '龙港区',
+ 211404: '南票区',
+ 211421: '绥中县',
+ 211422: '建昌县',
+ 211481: '兴城市',
+ 211482: '其它区',
+ 220000: '吉林省',
+ 220100: '长春市',
+ 220102: '南关区',
+ 220103: '宽城区',
+ 220104: '朝阳区',
+ 220105: '二道区',
+ 220106: '绿园区',
+ 220112: '双阳区',
+ 220122: '农安县',
+ 220181: '九台市',
+ 220182: '榆树市',
+ 220183: '德惠市',
+ 220188: '其它区',
+ 220200: '吉林市',
+ 220202: '昌邑区',
+ 220203: '龙潭区',
+ 220204: '船营区',
+ 220211: '丰满区',
+ 220221: '永吉县',
+ 220281: '蛟河市',
+ 220282: '桦甸市',
+ 220283: '舒兰市',
+ 220284: '磐石市',
+ 220285: '其它区',
+ 220300: '四平市',
+ 220302: '铁西区',
+ 220303: '铁东区',
+ 220322: '梨树县',
+ 220323: '伊通满族自治县',
+ 220381: '公主岭市',
+ 220382: '双辽市',
+ 220383: '其它区',
+ 220400: '辽源市',
+ 220402: '龙山区',
+ 220403: '西安区',
+ 220421: '东丰县',
+ 220422: '东辽县',
+ 220423: '其它区',
+ 220500: '通化市',
+ 220502: '东昌区',
+ 220503: '二道江区',
+ 220521: '通化县',
+ 220523: '辉南县',
+ 220524: '柳河县',
+ 220581: '梅河口市',
+ 220582: '集安市',
+ 220583: '其它区',
+ 220600: '白山市',
+ 220602: '浑江区',
+ 220621: '抚松县',
+ 220622: '靖宇县',
+ 220623: '长白朝鲜族自治县',
+ 220625: '江源区',
+ 220681: '临江市',
+ 220682: '其它区',
+ 220700: '松原市',
+ 220702: '宁江区',
+ 220721: '前郭尔罗斯蒙古族自治县',
+ 220722: '长岭县',
+ 220723: '乾安县',
+ 220724: '扶余市',
+ 220725: '其它区',
+ 220800: '白城市',
+ 220802: '洮北区',
+ 220821: '镇赉县',
+ 220822: '通榆县',
+ 220881: '洮南市',
+ 220882: '大安市',
+ 220883: '其它区',
+ 222400: '延边朝鲜族自治州',
+ 222401: '延吉市',
+ 222402: '图们市',
+ 222403: '敦化市',
+ 222404: '珲春市',
+ 222405: '龙井市',
+ 222406: '和龙市',
+ 222424: '汪清县',
+ 222426: '安图县',
+ 222427: '其它区',
+ 230000: '黑龙江省',
+ 230100: '哈尔滨市',
+ 230102: '道里区',
+ 230103: '南岗区',
+ 230104: '道外区',
+ 230106: '香坊区',
+ 230108: '平房区',
+ 230109: '松北区',
+ 230111: '呼兰区',
+ 230123: '依兰县',
+ 230124: '方正县',
+ 230125: '宾县',
+ 230126: '巴彦县',
+ 230127: '木兰县',
+ 230128: '通河县',
+ 230129: '延寿县',
+ 230181: '阿城区',
+ 230182: '双城市',
+ 230183: '尚志市',
+ 230184: '五常市',
+ 230186: '其它区',
+ 230200: '齐齐哈尔市',
+ 230202: '龙沙区',
+ 230203: '建华区',
+ 230204: '铁锋区',
+ 230205: '昂昂溪区',
+ 230206: '富拉尔基区',
+ 230207: '碾子山区',
+ 230208: '梅里斯达斡尔族区',
+ 230221: '龙江县',
+ 230223: '依安县',
+ 230224: '泰来县',
+ 230225: '甘南县',
+ 230227: '富裕县',
+ 230229: '克山县',
+ 230230: '克东县',
+ 230231: '拜泉县',
+ 230281: '讷河市',
+ 230282: '其它区',
+ 230300: '鸡西市',
+ 230302: '鸡冠区',
+ 230303: '恒山区',
+ 230304: '滴道区',
+ 230305: '梨树区',
+ 230306: '城子河区',
+ 230307: '麻山区',
+ 230321: '鸡东县',
+ 230381: '虎林市',
+ 230382: '密山市',
+ 230383: '其它区',
+ 230400: '鹤岗市',
+ 230402: '向阳区',
+ 230403: '工农区',
+ 230404: '南山区',
+ 230405: '兴安区',
+ 230406: '东山区',
+ 230407: '兴山区',
+ 230421: '萝北县',
+ 230422: '绥滨县',
+ 230423: '其它区',
+ 230500: '双鸭山市',
+ 230502: '尖山区',
+ 230503: '岭东区',
+ 230505: '四方台区',
+ 230506: '宝山区',
+ 230521: '集贤县',
+ 230522: '友谊县',
+ 230523: '宝清县',
+ 230524: '饶河县',
+ 230525: '其它区',
+ 230600: '大庆市',
+ 230602: '萨尔图区',
+ 230603: '龙凤区',
+ 230604: '让胡路区',
+ 230605: '红岗区',
+ 230606: '大同区',
+ 230621: '肇州县',
+ 230622: '肇源县',
+ 230623: '林甸县',
+ 230624: '杜尔伯特蒙古族自治县',
+ 230625: '其它区',
+ 230700: '伊春市',
+ 230702: '伊春区',
+ 230703: '南岔区',
+ 230704: '友好区',
+ 230705: '西林区',
+ 230706: '翠峦区',
+ 230707: '新青区',
+ 230708: '美溪区',
+ 230709: '金山屯区',
+ 230710: '五营区',
+ 230711: '乌马河区',
+ 230712: '汤旺河区',
+ 230713: '带岭区',
+ 230714: '乌伊岭区',
+ 230715: '红星区',
+ 230716: '上甘岭区',
+ 230722: '嘉荫县',
+ 230781: '铁力市',
+ 230782: '其它区',
+ 230800: '佳木斯市',
+ 230803: '向阳区',
+ 230804: '前进区',
+ 230805: '东风区',
+ 230811: '郊区',
+ 230822: '桦南县',
+ 230826: '桦川县',
+ 230828: '汤原县',
+ 230833: '抚远县',
+ 230881: '同江市',
+ 230882: '富锦市',
+ 230883: '其它区',
+ 230900: '七台河市',
+ 230902: '新兴区',
+ 230903: '桃山区',
+ 230904: '茄子河区',
+ 230921: '勃利县',
+ 230922: '其它区',
+ 231000: '牡丹江市',
+ 231002: '东安区',
+ 231003: '阳明区',
+ 231004: '爱民区',
+ 231005: '西安区',
+ 231024: '东宁县',
+ 231025: '林口县',
+ 231081: '绥芬河市',
+ 231083: '海林市',
+ 231084: '宁安市',
+ 231085: '穆棱市',
+ 231086: '其它区',
+ 231100: '黑河市',
+ 231102: '爱辉区',
+ 231121: '嫩江县',
+ 231123: '逊克县',
+ 231124: '孙吴县',
+ 231181: '北安市',
+ 231182: '五大连池市',
+ 231183: '其它区',
+ 231200: '绥化市',
+ 231202: '北林区',
+ 231221: '望奎县',
+ 231222: '兰西县',
+ 231223: '青冈县',
+ 231224: '庆安县',
+ 231225: '明水县',
+ 231226: '绥棱县',
+ 231281: '安达市',
+ 231282: '肇东市',
+ 231283: '海伦市',
+ 231284: '其它区',
+ 232700: '大兴安岭地区',
+ 232702: '松岭区',
+ 232703: '新林区',
+ 232704: '呼中区',
+ 232721: '呼玛县',
+ 232722: '塔河县',
+ 232723: '漠河县',
+ 232724: '加格达奇区',
+ 232725: '其它区',
+ 310000: '上海',
+ 310100: '上海市',
+ 310101: '黄浦区',
+ 310104: '徐汇区',
+ 310105: '长宁区',
+ 310106: '静安区',
+ 310107: '普陀区',
+ 310108: '闸北区',
+ 310109: '虹口区',
+ 310110: '杨浦区',
+ 310112: '闵行区',
+ 310113: '宝山区',
+ 310114: '嘉定区',
+ 310115: '浦东新区',
+ 310116: '金山区',
+ 310117: '松江区',
+ 310118: '青浦区',
+ 310120: '奉贤区',
+ 310230: '崇明县',
+ 310231: '其它区',
+ 320000: '江苏省',
+ 320100: '南京市',
+ 320102: '玄武区',
+ 320104: '秦淮区',
+ 320105: '建邺区',
+ 320106: '鼓楼区',
+ 320111: '浦口区',
+ 320113: '栖霞区',
+ 320114: '雨花台区',
+ 320115: '江宁区',
+ 320116: '六合区',
+ 320124: '溧水区',
+ 320125: '高淳区',
+ 320126: '其它区',
+ 320200: '无锡市',
+ 320202: '崇安区',
+ 320203: '南长区',
+ 320204: '北塘区',
+ 320205: '锡山区',
+ 320206: '惠山区',
+ 320211: '滨湖区',
+ 320281: '江阴市',
+ 320282: '宜兴市',
+ 320297: '其它区',
+ 320300: '徐州市',
+ 320302: '鼓楼区',
+ 320303: '云龙区',
+ 320305: '贾汪区',
+ 320311: '泉山区',
+ 320321: '丰县',
+ 320322: '沛县',
+ 320323: '铜山区',
+ 320324: '睢宁县',
+ 320381: '新沂市',
+ 320382: '邳州市',
+ 320383: '其它区',
+ 320400: '常州市',
+ 320402: '天宁区',
+ 320404: '钟楼区',
+ 320405: '戚墅堰区',
+ 320411: '新北区',
+ 320412: '武进区',
+ 320481: '溧阳市',
+ 320482: '金坛市',
+ 320483: '其它区',
+ 320500: '苏州市',
+ 320505: '虎丘区',
+ 320506: '吴中区',
+ 320507: '相城区',
+ 320508: '姑苏区',
+ 320581: '常熟市',
+ 320582: '张家港市',
+ 320583: '昆山市',
+ 320584: '吴江区',
+ 320585: '太仓市',
+ 320596: '其它区',
+ 320600: '南通市',
+ 320602: '崇川区',
+ 320611: '港闸区',
+ 320612: '通州区',
+ 320621: '海安县',
+ 320623: '如东县',
+ 320681: '启东市',
+ 320682: '如皋市',
+ 320684: '海门市',
+ 320694: '其它区',
+ 320700: '连云港市',
+ 320703: '连云区',
+ 320705: '新浦区',
+ 320706: '海州区',
+ 320721: '赣榆县',
+ 320722: '东海县',
+ 320723: '灌云县',
+ 320724: '灌南县',
+ 320725: '其它区',
+ 320800: '淮安市',
+ 320802: '清河区',
+ 320803: '淮安区',
+ 320804: '淮阴区',
+ 320811: '清浦区',
+ 320826: '涟水县',
+ 320829: '洪泽县',
+ 320830: '盱眙县',
+ 320831: '金湖县',
+ 320832: '其它区',
+ 320900: '盐城市',
+ 320902: '亭湖区',
+ 320903: '盐都区',
+ 320921: '响水县',
+ 320922: '滨海县',
+ 320923: '阜宁县',
+ 320924: '射阳县',
+ 320925: '建湖县',
+ 320981: '东台市',
+ 320982: '大丰市',
+ 320983: '其它区',
+ 321000: '扬州市',
+ 321002: '广陵区',
+ 321003: '邗江区',
+ 321023: '宝应县',
+ 321081: '仪征市',
+ 321084: '高邮市',
+ 321088: '江都区',
+ 321093: '其它区',
+ 321100: '镇江市',
+ 321102: '京口区',
+ 321111: '润州区',
+ 321112: '丹徒区',
+ 321181: '丹阳市',
+ 321182: '扬中市',
+ 321183: '句容市',
+ 321184: '其它区',
+ 321200: '泰州市',
+ 321202: '海陵区',
+ 321203: '高港区',
+ 321281: '兴化市',
+ 321282: '靖江市',
+ 321283: '泰兴市',
+ 321284: '姜堰区',
+ 321285: '其它区',
+ 321300: '宿迁市',
+ 321302: '宿城区',
+ 321311: '宿豫区',
+ 321322: '沭阳县',
+ 321323: '泗阳县',
+ 321324: '泗洪县',
+ 321325: '其它区',
+ 330000: '浙江省',
+ 330100: '杭州市',
+ 330102: '上城区',
+ 330103: '下城区',
+ 330104: '江干区',
+ 330105: '拱墅区',
+ 330106: '西湖区',
+ 330108: '滨江区',
+ 330109: '萧山区',
+ 330110: '余杭区',
+ 330122: '桐庐县',
+ 330127: '淳安县',
+ 330182: '建德市',
+ 330183: '富阳市',
+ 330185: '临安市',
+ 330186: '其它区',
+ 330200: '宁波市',
+ 330203: '海曙区',
+ 330204: '江东区',
+ 330205: '江北区',
+ 330206: '北仑区',
+ 330211: '镇海区',
+ 330212: '鄞州区',
+ 330225: '象山县',
+ 330226: '宁海县',
+ 330281: '余姚市',
+ 330282: '慈溪市',
+ 330283: '奉化市',
+ 330284: '其它区',
+ 330300: '温州市',
+ 330302: '鹿城区',
+ 330303: '龙湾区',
+ 330304: '瓯海区',
+ 330322: '洞头县',
+ 330324: '永嘉县',
+ 330326: '平阳县',
+ 330327: '苍南县',
+ 330328: '文成县',
+ 330329: '泰顺县',
+ 330381: '瑞安市',
+ 330382: '乐清市',
+ 330383: '其它区',
+ 330400: '嘉兴市',
+ 330402: '南湖区',
+ 330411: '秀洲区',
+ 330421: '嘉善县',
+ 330424: '海盐县',
+ 330481: '海宁市',
+ 330482: '平湖市',
+ 330483: '桐乡市',
+ 330484: '其它区',
+ 330500: '湖州市',
+ 330502: '吴兴区',
+ 330503: '南浔区',
+ 330521: '德清县',
+ 330522: '长兴县',
+ 330523: '安吉县',
+ 330524: '其它区',
+ 330600: '绍兴市',
+ 330602: '越城区',
+ 330621: '绍兴县',
+ 330624: '新昌县',
+ 330681: '诸暨市',
+ 330682: '上虞市',
+ 330683: '嵊州市',
+ 330684: '其它区',
+ 330700: '金华市',
+ 330702: '婺城区',
+ 330703: '金东区',
+ 330723: '武义县',
+ 330726: '浦江县',
+ 330727: '磐安县',
+ 330781: '兰溪市',
+ 330782: '义乌市',
+ 330783: '东阳市',
+ 330784: '永康市',
+ 330785: '其它区',
+ 330800: '衢州市',
+ 330802: '柯城区',
+ 330803: '衢江区',
+ 330822: '常山县',
+ 330824: '开化县',
+ 330825: '龙游县',
+ 330881: '江山市',
+ 330882: '其它区',
+ 330900: '舟山市',
+ 330902: '定海区',
+ 330903: '普陀区',
+ 330921: '岱山县',
+ 330922: '嵊泗县',
+ 330923: '其它区',
+ 331000: '台州市',
+ 331002: '椒江区',
+ 331003: '黄岩区',
+ 331004: '路桥区',
+ 331021: '玉环县',
+ 331022: '三门县',
+ 331023: '天台县',
+ 331024: '仙居县',
+ 331081: '温岭市',
+ 331082: '临海市',
+ 331083: '其它区',
+ 331100: '丽水市',
+ 331102: '莲都区',
+ 331121: '青田县',
+ 331122: '缙云县',
+ 331123: '遂昌县',
+ 331124: '松阳县',
+ 331125: '云和县',
+ 331126: '庆元县',
+ 331127: '景宁畲族自治县',
+ 331181: '龙泉市',
+ 331182: '其它区',
+ 340000: '安徽省',
+ 340100: '合肥市',
+ 340102: '瑶海区',
+ 340103: '庐阳区',
+ 340104: '蜀山区',
+ 340111: '包河区',
+ 340121: '长丰县',
+ 340122: '肥东县',
+ 340123: '肥西县',
+ 340192: '其它区',
+ 340200: '芜湖市',
+ 340202: '镜湖区',
+ 340203: '弋江区',
+ 340207: '鸠江区',
+ 340208: '三山区',
+ 340221: '芜湖县',
+ 340222: '繁昌县',
+ 340223: '南陵县',
+ 340224: '其它区',
+ 340300: '蚌埠市',
+ 340302: '龙子湖区',
+ 340303: '蚌山区',
+ 340304: '禹会区',
+ 340311: '淮上区',
+ 340321: '怀远县',
+ 340322: '五河县',
+ 340323: '固镇县',
+ 340324: '其它区',
+ 340400: '淮南市',
+ 340402: '大通区',
+ 340403: '田家庵区',
+ 340404: '谢家集区',
+ 340405: '八公山区',
+ 340406: '潘集区',
+ 340421: '凤台县',
+ 340422: '其它区',
+ 340500: '马鞍山市',
+ 340503: '花山区',
+ 340504: '雨山区',
+ 340506: '博望区',
+ 340521: '当涂县',
+ 340522: '其它区',
+ 340600: '淮北市',
+ 340602: '杜集区',
+ 340603: '相山区',
+ 340604: '烈山区',
+ 340621: '濉溪县',
+ 340622: '其它区',
+ 340700: '铜陵市',
+ 340702: '铜官山区',
+ 340703: '狮子山区',
+ 340711: '郊区',
+ 340721: '铜陵县',
+ 340722: '其它区',
+ 340800: '安庆市',
+ 340802: '迎江区',
+ 340803: '大观区',
+ 340811: '宜秀区',
+ 340822: '怀宁县',
+ 340823: '枞阳县',
+ 340824: '潜山县',
+ 340825: '太湖县',
+ 340826: '宿松县',
+ 340827: '望江县',
+ 340828: '岳西县',
+ 340881: '桐城市',
+ 340882: '其它区',
+ 341000: '黄山市',
+ 341002: '屯溪区',
+ 341003: '黄山区',
+ 341004: '徽州区',
+ 341021: '歙县',
+ 341022: '休宁县',
+ 341023: '黟县',
+ 341024: '祁门县',
+ 341025: '其它区',
+ 341100: '滁州市',
+ 341102: '琅琊区',
+ 341103: '南谯区',
+ 341122: '来安县',
+ 341124: '全椒县',
+ 341125: '定远县',
+ 341126: '凤阳县',
+ 341181: '天长市',
+ 341182: '明光市',
+ 341183: '其它区',
+ 341200: '阜阳市',
+ 341202: '颍州区',
+ 341203: '颍东区',
+ 341204: '颍泉区',
+ 341221: '临泉县',
+ 341222: '太和县',
+ 341225: '阜南县',
+ 341226: '颍上县',
+ 341282: '界首市',
+ 341283: '其它区',
+ 341300: '宿州市',
+ 341302: '埇桥区',
+ 341321: '砀山县',
+ 341322: '萧县',
+ 341323: '灵璧县',
+ 341324: '泗县',
+ 341325: '其它区',
+ 341400: '巢湖市',
+ 341421: '庐江县',
+ 341422: '无为县',
+ 341423: '含山县',
+ 341424: '和县',
+ 341500: '六安市',
+ 341502: '金安区',
+ 341503: '裕安区',
+ 341521: '寿县',
+ 341522: '霍邱县',
+ 341523: '舒城县',
+ 341524: '金寨县',
+ 341525: '霍山县',
+ 341526: '其它区',
+ 341600: '亳州市',
+ 341602: '谯城区',
+ 341621: '涡阳县',
+ 341622: '蒙城县',
+ 341623: '利辛县',
+ 341624: '其它区',
+ 341700: '池州市',
+ 341702: '贵池区',
+ 341721: '东至县',
+ 341722: '石台县',
+ 341723: '青阳县',
+ 341724: '其它区',
+ 341800: '宣城市',
+ 341802: '宣州区',
+ 341821: '郎溪县',
+ 341822: '广德县',
+ 341823: '泾县',
+ 341824: '绩溪县',
+ 341825: '旌德县',
+ 341881: '宁国市',
+ 341882: '其它区',
+ 350000: '福建省',
+ 350100: '福州市',
+ 350102: '鼓楼区',
+ 350103: '台江区',
+ 350104: '仓山区',
+ 350105: '马尾区',
+ 350111: '晋安区',
+ 350121: '闽侯县',
+ 350122: '连江县',
+ 350123: '罗源县',
+ 350124: '闽清县',
+ 350125: '永泰县',
+ 350128: '平潭县',
+ 350181: '福清市',
+ 350182: '长乐市',
+ 350183: '其它区',
+ 350200: '厦门市',
+ 350203: '思明区',
+ 350205: '海沧区',
+ 350206: '湖里区',
+ 350211: '集美区',
+ 350212: '同安区',
+ 350213: '翔安区',
+ 350214: '其它区',
+ 350300: '莆田市',
+ 350302: '城厢区',
+ 350303: '涵江区',
+ 350304: '荔城区',
+ 350305: '秀屿区',
+ 350322: '仙游县',
+ 350323: '其它区',
+ 350400: '三明市',
+ 350402: '梅列区',
+ 350403: '三元区',
+ 350421: '明溪县',
+ 350423: '清流县',
+ 350424: '宁化县',
+ 350425: '大田县',
+ 350426: '尤溪县',
+ 350427: '沙县',
+ 350428: '将乐县',
+ 350429: '泰宁县',
+ 350430: '建宁县',
+ 350481: '永安市',
+ 350482: '其它区',
+ 350500: '泉州市',
+ 350502: '鲤城区',
+ 350503: '丰泽区',
+ 350504: '洛江区',
+ 350505: '泉港区',
+ 350521: '惠安县',
+ 350524: '安溪县',
+ 350525: '永春县',
+ 350526: '德化县',
+ 350527: '金门县',
+ 350581: '石狮市',
+ 350582: '晋江市',
+ 350583: '南安市',
+ 350584: '其它区',
+ 350600: '漳州市',
+ 350602: '芗城区',
+ 350603: '龙文区',
+ 350622: '云霄县',
+ 350623: '漳浦县',
+ 350624: '诏安县',
+ 350625: '长泰县',
+ 350626: '东山县',
+ 350627: '南靖县',
+ 350628: '平和县',
+ 350629: '华安县',
+ 350681: '龙海市',
+ 350682: '其它区',
+ 350700: '南平市',
+ 350702: '延平区',
+ 350721: '顺昌县',
+ 350722: '浦城县',
+ 350723: '光泽县',
+ 350724: '松溪县',
+ 350725: '政和县',
+ 350781: '邵武市',
+ 350782: '武夷山市',
+ 350783: '建瓯市',
+ 350784: '建阳市',
+ 350785: '其它区',
+ 350800: '龙岩市',
+ 350802: '新罗区',
+ 350821: '长汀县',
+ 350822: '永定县',
+ 350823: '上杭县',
+ 350824: '武平县',
+ 350825: '连城县',
+ 350881: '漳平市',
+ 350882: '其它区',
+ 350900: '宁德市',
+ 350902: '蕉城区',
+ 350921: '霞浦县',
+ 350922: '古田县',
+ 350923: '屏南县',
+ 350924: '寿宁县',
+ 350925: '周宁县',
+ 350926: '柘荣县',
+ 350981: '福安市',
+ 350982: '福鼎市',
+ 350983: '其它区',
+ 360000: '江西省',
+ 360100: '南昌市',
+ 360102: '东湖区',
+ 360103: '西湖区',
+ 360104: '青云谱区',
+ 360105: '湾里区',
+ 360111: '青山湖区',
+ 360121: '南昌县',
+ 360122: '新建县',
+ 360123: '安义县',
+ 360124: '进贤县',
+ 360128: '其它区',
+ 360200: '景德镇市',
+ 360202: '昌江区',
+ 360203: '珠山区',
+ 360222: '浮梁县',
+ 360281: '乐平市',
+ 360282: '其它区',
+ 360300: '萍乡市',
+ 360302: '安源区',
+ 360313: '湘东区',
+ 360321: '莲花县',
+ 360322: '上栗县',
+ 360323: '芦溪县',
+ 360324: '其它区',
+ 360400: '九江市',
+ 360402: '庐山区',
+ 360403: '浔阳区',
+ 360421: '九江县',
+ 360423: '武宁县',
+ 360424: '修水县',
+ 360425: '永修县',
+ 360426: '德安县',
+ 360427: '星子县',
+ 360428: '都昌县',
+ 360429: '湖口县',
+ 360430: '彭泽县',
+ 360481: '瑞昌市',
+ 360482: '其它区',
+ 360483: '共青城市',
+ 360500: '新余市',
+ 360502: '渝水区',
+ 360521: '分宜县',
+ 360522: '其它区',
+ 360600: '鹰潭市',
+ 360602: '月湖区',
+ 360622: '余江县',
+ 360681: '贵溪市',
+ 360682: '其它区',
+ 360700: '赣州市',
+ 360702: '章贡区',
+ 360721: '赣县',
+ 360722: '信丰县',
+ 360723: '大余县',
+ 360724: '上犹县',
+ 360725: '崇义县',
+ 360726: '安远县',
+ 360727: '龙南县',
+ 360728: '定南县',
+ 360729: '全南县',
+ 360730: '宁都县',
+ 360731: '于都县',
+ 360732: '兴国县',
+ 360733: '会昌县',
+ 360734: '寻乌县',
+ 360735: '石城县',
+ 360781: '瑞金市',
+ 360782: '南康市',
+ 360783: '其它区',
+ 360800: '吉安市',
+ 360802: '吉州区',
+ 360803: '青原区',
+ 360821: '吉安县',
+ 360822: '吉水县',
+ 360823: '峡江县',
+ 360824: '新干县',
+ 360825: '永丰县',
+ 360826: '泰和县',
+ 360827: '遂川县',
+ 360828: '万安县',
+ 360829: '安福县',
+ 360830: '永新县',
+ 360881: '井冈山市',
+ 360882: '其它区',
+ 360900: '宜春市',
+ 360902: '袁州区',
+ 360921: '奉新县',
+ 360922: '万载县',
+ 360923: '上高县',
+ 360924: '宜丰县',
+ 360925: '靖安县',
+ 360926: '铜鼓县',
+ 360981: '丰城市',
+ 360982: '樟树市',
+ 360983: '高安市',
+ 360984: '其它区',
+ 361000: '抚州市',
+ 361002: '临川区',
+ 361021: '南城县',
+ 361022: '黎川县',
+ 361023: '南丰县',
+ 361024: '崇仁县',
+ 361025: '乐安县',
+ 361026: '宜黄县',
+ 361027: '金溪县',
+ 361028: '资溪县',
+ 361029: '东乡县',
+ 361030: '广昌县',
+ 361031: '其它区',
+ 361100: '上饶市',
+ 361102: '信州区',
+ 361121: '上饶县',
+ 361122: '广丰县',
+ 361123: '玉山县',
+ 361124: '铅山县',
+ 361125: '横峰县',
+ 361126: '弋阳县',
+ 361127: '余干县',
+ 361128: '鄱阳县',
+ 361129: '万年县',
+ 361130: '婺源县',
+ 361181: '德兴市',
+ 361182: '其它区',
+ 370000: '山东省',
+ 370100: '济南市',
+ 370102: '历下区',
+ 370103: '市中区',
+ 370104: '槐荫区',
+ 370105: '天桥区',
+ 370112: '历城区',
+ 370113: '长清区',
+ 370124: '平阴县',
+ 370125: '济阳县',
+ 370126: '商河县',
+ 370181: '章丘市',
+ 370182: '其它区',
+ 370200: '青岛市',
+ 370202: '市南区',
+ 370203: '市北区',
+ 370211: '黄岛区',
+ 370212: '崂山区',
+ 370213: '李沧区',
+ 370214: '城阳区',
+ 370281: '胶州市',
+ 370282: '即墨市',
+ 370283: '平度市',
+ 370285: '莱西市',
+ 370286: '其它区',
+ 370300: '淄博市',
+ 370302: '淄川区',
+ 370303: '张店区',
+ 370304: '博山区',
+ 370305: '临淄区',
+ 370306: '周村区',
+ 370321: '桓台县',
+ 370322: '高青县',
+ 370323: '沂源县',
+ 370324: '其它区',
+ 370400: '枣庄市',
+ 370402: '市中区',
+ 370403: '薛城区',
+ 370404: '峄城区',
+ 370405: '台儿庄区',
+ 370406: '山亭区',
+ 370481: '滕州市',
+ 370482: '其它区',
+ 370500: '东营市',
+ 370502: '东营区',
+ 370503: '河口区',
+ 370521: '垦利县',
+ 370522: '利津县',
+ 370523: '广饶县',
+ 370591: '其它区',
+ 370600: '烟台市',
+ 370602: '芝罘区',
+ 370611: '福山区',
+ 370612: '牟平区',
+ 370613: '莱山区',
+ 370634: '长岛县',
+ 370681: '龙口市',
+ 370682: '莱阳市',
+ 370683: '莱州市',
+ 370684: '蓬莱市',
+ 370685: '招远市',
+ 370686: '栖霞市',
+ 370687: '海阳市',
+ 370688: '其它区',
+ 370700: '潍坊市',
+ 370702: '潍城区',
+ 370703: '寒亭区',
+ 370704: '坊子区',
+ 370705: '奎文区',
+ 370724: '临朐县',
+ 370725: '昌乐县',
+ 370781: '青州市',
+ 370782: '诸城市',
+ 370783: '寿光市',
+ 370784: '安丘市',
+ 370785: '高密市',
+ 370786: '昌邑市',
+ 370787: '其它区',
+ 370800: '济宁市',
+ 370802: '市中区',
+ 370811: '任城区',
+ 370826: '微山县',
+ 370827: '鱼台县',
+ 370828: '金乡县',
+ 370829: '嘉祥县',
+ 370830: '汶上县',
+ 370831: '泗水县',
+ 370832: '梁山县',
+ 370881: '曲阜市',
+ 370882: '兖州市',
+ 370883: '邹城市',
+ 370884: '其它区',
+ 370900: '泰安市',
+ 370902: '泰山区',
+ 370903: '岱岳区',
+ 370921: '宁阳县',
+ 370923: '东平县',
+ 370982: '新泰市',
+ 370983: '肥城市',
+ 370984: '其它区',
+ 371000: '威海市',
+ 371002: '环翠区',
+ 371081: '文登市',
+ 371082: '荣成市',
+ 371083: '乳山市',
+ 371084: '其它区',
+ 371100: '日照市',
+ 371102: '东港区',
+ 371103: '岚山区',
+ 371121: '五莲县',
+ 371122: '莒县',
+ 371123: '其它区',
+ 371200: '莱芜市',
+ 371202: '莱城区',
+ 371203: '钢城区',
+ 371204: '其它区',
+ 371300: '临沂市',
+ 371302: '兰山区',
+ 371311: '罗庄区',
+ 371312: '河东区',
+ 371321: '沂南县',
+ 371322: '郯城县',
+ 371323: '沂水县',
+ 371324: '苍山县',
+ 371325: '费县',
+ 371326: '平邑县',
+ 371327: '莒南县',
+ 371328: '蒙阴县',
+ 371329: '临沭县',
+ 371330: '其它区',
+ 371400: '德州市',
+ 371402: '德城区',
+ 371421: '陵县',
+ 371422: '宁津县',
+ 371423: '庆云县',
+ 371424: '临邑县',
+ 371425: '齐河县',
+ 371426: '平原县',
+ 371427: '夏津县',
+ 371428: '武城县',
+ 371481: '乐陵市',
+ 371482: '禹城市',
+ 371483: '其它区',
+ 371500: '聊城市',
+ 371502: '东昌府区',
+ 371521: '阳谷县',
+ 371522: '莘县',
+ 371523: '茌平县',
+ 371524: '东阿县',
+ 371525: '冠县',
+ 371526: '高唐县',
+ 371581: '临清市',
+ 371582: '其它区',
+ 371600: '滨州市',
+ 371602: '滨城区',
+ 371621: '惠民县',
+ 371622: '阳信县',
+ 371623: '无棣县',
+ 371624: '沾化县',
+ 371625: '博兴县',
+ 371626: '邹平县',
+ 371627: '其它区',
+ 371700: '菏泽市',
+ 371702: '牡丹区',
+ 371721: '曹县',
+ 371722: '单县',
+ 371723: '成武县',
+ 371724: '巨野县',
+ 371725: '郓城县',
+ 371726: '鄄城县',
+ 371727: '定陶县',
+ 371728: '东明县',
+ 371729: '其它区',
+ 410000: '河南省',
+ 410100: '郑州市',
+ 410102: '中原区',
+ 410103: '二七区',
+ 410104: '管城回族区',
+ 410105: '金水区',
+ 410106: '上街区',
+ 410108: '惠济区',
+ 410122: '中牟县',
+ 410181: '巩义市',
+ 410182: '荥阳市',
+ 410183: '新密市',
+ 410184: '新郑市',
+ 410185: '登封市',
+ 410188: '其它区',
+ 410200: '开封市',
+ 410202: '龙亭区',
+ 410203: '顺河回族区',
+ 410204: '鼓楼区',
+ 410205: '禹王台区',
+ 410211: '金明区',
+ 410221: '杞县',
+ 410222: '通许县',
+ 410223: '尉氏县',
+ 410224: '开封县',
+ 410225: '兰考县',
+ 410226: '其它区',
+ 410300: '洛阳市',
+ 410302: '老城区',
+ 410303: '西工区',
+ 410304: '瀍河回族区',
+ 410305: '涧西区',
+ 410306: '吉利区',
+ 410307: '洛龙区',
+ 410322: '孟津县',
+ 410323: '新安县',
+ 410324: '栾川县',
+ 410325: '嵩县',
+ 410326: '汝阳县',
+ 410327: '宜阳县',
+ 410328: '洛宁县',
+ 410329: '伊川县',
+ 410381: '偃师市',
+ 410400: '平顶山市',
+ 410402: '新华区',
+ 410403: '卫东区',
+ 410404: '石龙区',
+ 410411: '湛河区',
+ 410421: '宝丰县',
+ 410422: '叶县',
+ 410423: '鲁山县',
+ 410425: '郏县',
+ 410481: '舞钢市',
+ 410482: '汝州市',
+ 410483: '其它区',
+ 410500: '安阳市',
+ 410502: '文峰区',
+ 410503: '北关区',
+ 410505: '殷都区',
+ 410506: '龙安区',
+ 410522: '安阳县',
+ 410523: '汤阴县',
+ 410526: '滑县',
+ 410527: '内黄县',
+ 410581: '林州市',
+ 410582: '其它区',
+ 410600: '鹤壁市',
+ 410602: '鹤山区',
+ 410603: '山城区',
+ 410611: '淇滨区',
+ 410621: '浚县',
+ 410622: '淇县',
+ 410623: '其它区',
+ 410700: '新乡市',
+ 410702: '红旗区',
+ 410703: '卫滨区',
+ 410704: '凤泉区',
+ 410711: '牧野区',
+ 410721: '新乡县',
+ 410724: '获嘉县',
+ 410725: '原阳县',
+ 410726: '延津县',
+ 410727: '封丘县',
+ 410728: '长垣县',
+ 410781: '卫辉市',
+ 410782: '辉县市',
+ 410783: '其它区',
+ 410800: '焦作市',
+ 410802: '解放区',
+ 410803: '中站区',
+ 410804: '马村区',
+ 410811: '山阳区',
+ 410821: '修武县',
+ 410822: '博爱县',
+ 410823: '武陟县',
+ 410825: '温县',
+ 410881: '济源市',
+ 410882: '沁阳市',
+ 410883: '孟州市',
+ 410884: '其它区',
+ 410900: '濮阳市',
+ 410902: '华龙区',
+ 410922: '清丰县',
+ 410923: '南乐县',
+ 410926: '范县',
+ 410927: '台前县',
+ 410928: '濮阳县',
+ 410929: '其它区',
+ 411000: '许昌市',
+ 411002: '魏都区',
+ 411023: '许昌县',
+ 411024: '鄢陵县',
+ 411025: '襄城县',
+ 411081: '禹州市',
+ 411082: '长葛市',
+ 411083: '其它区',
+ 411100: '漯河市',
+ 411102: '源汇区',
+ 411103: '郾城区',
+ 411104: '召陵区',
+ 411121: '舞阳县',
+ 411122: '临颍县',
+ 411123: '其它区',
+ 411200: '三门峡市',
+ 411202: '湖滨区',
+ 411221: '渑池县',
+ 411222: '陕县',
+ 411224: '卢氏县',
+ 411281: '义马市',
+ 411282: '灵宝市',
+ 411283: '其它区',
+ 411300: '南阳市',
+ 411302: '宛城区',
+ 411303: '卧龙区',
+ 411321: '南召县',
+ 411322: '方城县',
+ 411323: '西峡县',
+ 411324: '镇平县',
+ 411325: '内乡县',
+ 411326: '淅川县',
+ 411327: '社旗县',
+ 411328: '唐河县',
+ 411329: '新野县',
+ 411330: '桐柏县',
+ 411381: '邓州市',
+ 411382: '其它区',
+ 411400: '商丘市',
+ 411402: '梁园区',
+ 411403: '睢阳区',
+ 411421: '民权县',
+ 411422: '睢县',
+ 411423: '宁陵县',
+ 411424: '柘城县',
+ 411425: '虞城县',
+ 411426: '夏邑县',
+ 411481: '永城市',
+ 411482: '其它区',
+ 411500: '信阳市',
+ 411502: '浉河区',
+ 411503: '平桥区',
+ 411521: '罗山县',
+ 411522: '光山县',
+ 411523: '新县',
+ 411524: '商城县',
+ 411525: '固始县',
+ 411526: '潢川县',
+ 411527: '淮滨县',
+ 411528: '息县',
+ 411529: '其它区',
+ 411600: '周口市',
+ 411602: '川汇区',
+ 411621: '扶沟县',
+ 411622: '西华县',
+ 411623: '商水县',
+ 411624: '沈丘县',
+ 411625: '郸城县',
+ 411626: '淮阳县',
+ 411627: '太康县',
+ 411628: '鹿邑县',
+ 411681: '项城市',
+ 411682: '其它区',
+ 411700: '驻马店市',
+ 411702: '驿城区',
+ 411721: '西平县',
+ 411722: '上蔡县',
+ 411723: '平舆县',
+ 411724: '正阳县',
+ 411725: '确山县',
+ 411726: '泌阳县',
+ 411727: '汝南县',
+ 411728: '遂平县',
+ 411729: '新蔡县',
+ 411730: '其它区',
+ 420000: '湖北省',
+ 420100: '武汉市',
+ 420102: '江岸区',
+ 420103: '江汉区',
+ 420104: '硚口区',
+ 420105: '汉阳区',
+ 420106: '武昌区',
+ 420107: '青山区',
+ 420111: '洪山区',
+ 420112: '东西湖区',
+ 420113: '汉南区',
+ 420114: '蔡甸区',
+ 420115: '江夏区',
+ 420116: '黄陂区',
+ 420117: '新洲区',
+ 420118: '其它区',
+ 420200: '黄石市',
+ 420202: '黄石港区',
+ 420203: '西塞山区',
+ 420204: '下陆区',
+ 420205: '铁山区',
+ 420222: '阳新县',
+ 420281: '大冶市',
+ 420282: '其它区',
+ 420300: '十堰市',
+ 420302: '茅箭区',
+ 420303: '张湾区',
+ 420321: '郧县',
+ 420322: '郧西县',
+ 420323: '竹山县',
+ 420324: '竹溪县',
+ 420325: '房县',
+ 420381: '丹江口市',
+ 420383: '其它区',
+ 420500: '宜昌市',
+ 420502: '西陵区',
+ 420503: '伍家岗区',
+ 420504: '点军区',
+ 420505: '猇亭区',
+ 420506: '夷陵区',
+ 420525: '远安县',
+ 420526: '兴山县',
+ 420527: '秭归县',
+ 420528: '长阳土家族自治县',
+ 420529: '五峰土家族自治县',
+ 420581: '宜都市',
+ 420582: '当阳市',
+ 420583: '枝江市',
+ 420584: '其它区',
+ 420600: '襄阳市',
+ 420602: '襄城区',
+ 420606: '樊城区',
+ 420607: '襄州区',
+ 420624: '南漳县',
+ 420625: '谷城县',
+ 420626: '保康县',
+ 420682: '老河口市',
+ 420683: '枣阳市',
+ 420684: '宜城市',
+ 420685: '其它区',
+ 420700: '鄂州市',
+ 420702: '梁子湖区',
+ 420703: '华容区',
+ 420704: '鄂城区',
+ 420705: '其它区',
+ 420800: '荆门市',
+ 420802: '东宝区',
+ 420804: '掇刀区',
+ 420821: '京山县',
+ 420822: '沙洋县',
+ 420881: '钟祥市',
+ 420882: '其它区',
+ 420900: '孝感市',
+ 420902: '孝南区',
+ 420921: '孝昌县',
+ 420922: '大悟县',
+ 420923: '云梦县',
+ 420981: '应城市',
+ 420982: '安陆市',
+ 420984: '汉川市',
+ 420985: '其它区',
+ 421000: '荆州市',
+ 421002: '沙市区',
+ 421003: '荆州区',
+ 421022: '公安县',
+ 421023: '监利县',
+ 421024: '江陵县',
+ 421081: '石首市',
+ 421083: '洪湖市',
+ 421087: '松滋市',
+ 421088: '其它区',
+ 421100: '黄冈市',
+ 421102: '黄州区',
+ 421121: '团风县',
+ 421122: '红安县',
+ 421123: '罗田县',
+ 421124: '英山县',
+ 421125: '浠水县',
+ 421126: '蕲春县',
+ 421127: '黄梅县',
+ 421181: '麻城市',
+ 421182: '武穴市',
+ 421183: '其它区',
+ 421200: '咸宁市',
+ 421202: '咸安区',
+ 421221: '嘉鱼县',
+ 421222: '通城县',
+ 421223: '崇阳县',
+ 421224: '通山县',
+ 421281: '赤壁市',
+ 421283: '其它区',
+ 421300: '随州市',
+ 421302: '曾都区',
+ 421321: '随县',
+ 421381: '广水市',
+ 421382: '其它区',
+ 422800: '恩施土家族苗族自治州',
+ 422801: '恩施市',
+ 422802: '利川市',
+ 422822: '建始县',
+ 422823: '巴东县',
+ 422825: '宣恩县',
+ 422826: '咸丰县',
+ 422827: '来凤县',
+ 422828: '鹤峰县',
+ 422829: '其它区',
+ 429004: '仙桃市',
+ 429005: '潜江市',
+ 429006: '天门市',
+ 429021: '神农架林区',
+ 430000: '湖南省',
+ 430100: '长沙市',
+ 430102: '芙蓉区',
+ 430103: '天心区',
+ 430104: '岳麓区',
+ 430105: '开福区',
+ 430111: '雨花区',
+ 430121: '长沙县',
+ 430122: '望城区',
+ 430124: '宁乡县',
+ 430181: '浏阳市',
+ 430182: '其它区',
+ 430200: '株洲市',
+ 430202: '荷塘区',
+ 430203: '芦淞区',
+ 430204: '石峰区',
+ 430211: '天元区',
+ 430221: '株洲县',
+ 430223: '攸县',
+ 430224: '茶陵县',
+ 430225: '炎陵县',
+ 430281: '醴陵市',
+ 430282: '其它区',
+ 430300: '湘潭市',
+ 430302: '雨湖区',
+ 430304: '岳塘区',
+ 430321: '湘潭县',
+ 430381: '湘乡市',
+ 430382: '韶山市',
+ 430383: '其它区',
+ 430400: '衡阳市',
+ 430405: '珠晖区',
+ 430406: '雁峰区',
+ 430407: '石鼓区',
+ 430408: '蒸湘区',
+ 430412: '南岳区',
+ 430421: '衡阳县',
+ 430422: '衡南县',
+ 430423: '衡山县',
+ 430424: '衡东县',
+ 430426: '祁东县',
+ 430481: '耒阳市',
+ 430482: '常宁市',
+ 430483: '其它区',
+ 430500: '邵阳市',
+ 430502: '双清区',
+ 430503: '大祥区',
+ 430511: '北塔区',
+ 430521: '邵东县',
+ 430522: '新邵县',
+ 430523: '邵阳县',
+ 430524: '隆回县',
+ 430525: '洞口县',
+ 430527: '绥宁县',
+ 430528: '新宁县',
+ 430529: '城步苗族自治县',
+ 430581: '武冈市',
+ 430582: '其它区',
+ 430600: '岳阳市',
+ 430602: '岳阳楼区',
+ 430603: '云溪区',
+ 430611: '君山区',
+ 430621: '岳阳县',
+ 430623: '华容县',
+ 430624: '湘阴县',
+ 430626: '平江县',
+ 430681: '汨罗市',
+ 430682: '临湘市',
+ 430683: '其它区',
+ 430700: '常德市',
+ 430702: '武陵区',
+ 430703: '鼎城区',
+ 430721: '安乡县',
+ 430722: '汉寿县',
+ 430723: '澧县',
+ 430724: '临澧县',
+ 430725: '桃源县',
+ 430726: '石门县',
+ 430781: '津市市',
+ 430782: '其它区',
+ 430800: '张家界市',
+ 430802: '永定区',
+ 430811: '武陵源区',
+ 430821: '慈利县',
+ 430822: '桑植县',
+ 430823: '其它区',
+ 430900: '益阳市',
+ 430902: '资阳区',
+ 430903: '赫山区',
+ 430921: '南县',
+ 430922: '桃江县',
+ 430923: '安化县',
+ 430981: '沅江市',
+ 430982: '其它区',
+ 431000: '郴州市',
+ 431002: '北湖区',
+ 431003: '苏仙区',
+ 431021: '桂阳县',
+ 431022: '宜章县',
+ 431023: '永兴县',
+ 431024: '嘉禾县',
+ 431025: '临武县',
+ 431026: '汝城县',
+ 431027: '桂东县',
+ 431028: '安仁县',
+ 431081: '资兴市',
+ 431082: '其它区',
+ 431100: '永州市',
+ 431102: '零陵区',
+ 431103: '冷水滩区',
+ 431121: '祁阳县',
+ 431122: '东安县',
+ 431123: '双牌县',
+ 431124: '道县',
+ 431125: '江永县',
+ 431126: '宁远县',
+ 431127: '蓝山县',
+ 431128: '新田县',
+ 431129: '江华瑶族自治县',
+ 431130: '其它区',
+ 431200: '怀化市',
+ 431202: '鹤城区',
+ 431221: '中方县',
+ 431222: '沅陵县',
+ 431223: '辰溪县',
+ 431224: '溆浦县',
+ 431225: '会同县',
+ 431226: '麻阳苗族自治县',
+ 431227: '新晃侗族自治县',
+ 431228: '芷江侗族自治县',
+ 431229: '靖州苗族侗族自治县',
+ 431230: '通道侗族自治县',
+ 431281: '洪江市',
+ 431282: '其它区',
+ 431300: '娄底市',
+ 431302: '娄星区',
+ 431321: '双峰县',
+ 431322: '新化县',
+ 431381: '冷水江市',
+ 431382: '涟源市',
+ 431383: '其它区',
+ 433100: '湘西土家族苗族自治州',
+ 433101: '吉首市',
+ 433122: '泸溪县',
+ 433123: '凤凰县',
+ 433124: '花垣县',
+ 433125: '保靖县',
+ 433126: '古丈县',
+ 433127: '永顺县',
+ 433130: '龙山县',
+ 433131: '其它区',
+ 440000: '广东省',
+ 440100: '广州市',
+ 440103: '荔湾区',
+ 440104: '越秀区',
+ 440105: '海珠区',
+ 440106: '天河区',
+ 440111: '白云区',
+ 440112: '黄埔区',
+ 440113: '番禺区',
+ 440114: '花都区',
+ 440115: '南沙区',
+ 440116: '萝岗区',
+ 440183: '增城市',
+ 440184: '从化市',
+ 440189: '其它区',
+ 440200: '韶关市',
+ 440203: '武江区',
+ 440204: '浈江区',
+ 440205: '曲江区',
+ 440222: '始兴县',
+ 440224: '仁化县',
+ 440229: '翁源县',
+ 440232: '乳源瑶族自治县',
+ 440233: '新丰县',
+ 440281: '乐昌市',
+ 440282: '南雄市',
+ 440283: '其它区',
+ 440300: '深圳市',
+ 440303: '罗湖区',
+ 440304: '福田区',
+ 440305: '南山区',
+ 440306: '宝安区',
+ 440307: '龙岗区',
+ 440308: '盐田区',
+ 440309: '其它区',
+ 440320: '光明新区',
+ 440321: '坪山新区',
+ 440322: '大鹏新区',
+ 440323: '龙华新区',
+ 440400: '珠海市',
+ 440402: '香洲区',
+ 440403: '斗门区',
+ 440404: '金湾区',
+ 440488: '其它区',
+ 440500: '汕头市',
+ 440507: '龙湖区',
+ 440511: '金平区',
+ 440512: '濠江区',
+ 440513: '潮阳区',
+ 440514: '潮南区',
+ 440515: '澄海区',
+ 440523: '南澳县',
+ 440524: '其它区',
+ 440600: '佛山市',
+ 440604: '禅城区',
+ 440605: '南海区',
+ 440606: '顺德区',
+ 440607: '三水区',
+ 440608: '高明区',
+ 440609: '其它区',
+ 440700: '江门市',
+ 440703: '蓬江区',
+ 440704: '江海区',
+ 440705: '新会区',
+ 440781: '台山市',
+ 440783: '开平市',
+ 440784: '鹤山市',
+ 440785: '恩平市',
+ 440786: '其它区',
+ 440800: '湛江市',
+ 440802: '赤坎区',
+ 440803: '霞山区',
+ 440804: '坡头区',
+ 440811: '麻章区',
+ 440823: '遂溪县',
+ 440825: '徐闻县',
+ 440881: '廉江市',
+ 440882: '雷州市',
+ 440883: '吴川市',
+ 440884: '其它区',
+ 440900: '茂名市',
+ 440902: '茂南区',
+ 440903: '茂港区',
+ 440923: '电白县',
+ 440981: '高州市',
+ 440982: '化州市',
+ 440983: '信宜市',
+ 440984: '其它区',
+ 441200: '肇庆市',
+ 441202: '端州区',
+ 441203: '鼎湖区',
+ 441223: '广宁县',
+ 441224: '怀集县',
+ 441225: '封开县',
+ 441226: '德庆县',
+ 441283: '高要市',
+ 441284: '四会市',
+ 441285: '其它区',
+ 441300: '惠州市',
+ 441302: '惠城区',
+ 441303: '惠阳区',
+ 441322: '博罗县',
+ 441323: '惠东县',
+ 441324: '龙门县',
+ 441325: '其它区',
+ 441400: '梅州市',
+ 441402: '梅江区',
+ 441421: '梅县',
+ 441422: '大埔县',
+ 441423: '丰顺县',
+ 441424: '五华县',
+ 441426: '平远县',
+ 441427: '蕉岭县',
+ 441481: '兴宁市',
+ 441482: '其它区',
+ 441500: '汕尾市',
+ 441502: '城区',
+ 441521: '海丰县',
+ 441523: '陆河县',
+ 441581: '陆丰市',
+ 441582: '其它区',
+ 441600: '河源市',
+ 441602: '源城区',
+ 441621: '紫金县',
+ 441622: '龙川县',
+ 441623: '连平县',
+ 441624: '和平县',
+ 441625: '东源县',
+ 441626: '其它区',
+ 441700: '阳江市',
+ 441702: '江城区',
+ 441721: '阳西县',
+ 441723: '阳东县',
+ 441781: '阳春市',
+ 441782: '其它区',
+ 441800: '清远市',
+ 441802: '清城区',
+ 441821: '佛冈县',
+ 441823: '阳山县',
+ 441825: '连山壮族瑶族自治县',
+ 441826: '连南瑶族自治县',
+ 441827: '清新区',
+ 441881: '英德市',
+ 441882: '连州市',
+ 441883: '其它区',
+ 441900: '东莞市',
+ 442000: '中山市',
+ 442101: '东沙群岛',
+ 445100: '潮州市',
+ 445102: '湘桥区',
+ 445121: '潮安区',
+ 445122: '饶平县',
+ 445186: '其它区',
+ 445200: '揭阳市',
+ 445202: '榕城区',
+ 445221: '揭东区',
+ 445222: '揭西县',
+ 445224: '惠来县',
+ 445281: '普宁市',
+ 445285: '其它区',
+ 445300: '云浮市',
+ 445302: '云城区',
+ 445321: '新兴县',
+ 445322: '郁南县',
+ 445323: '云安县',
+ 445381: '罗定市',
+ 445382: '其它区',
+ 450000: '广西壮族自治区',
+ 450100: '南宁市',
+ 450102: '兴宁区',
+ 450103: '青秀区',
+ 450105: '江南区',
+ 450107: '西乡塘区',
+ 450108: '良庆区',
+ 450109: '邕宁区',
+ 450122: '武鸣县',
+ 450123: '隆安县',
+ 450124: '马山县',
+ 450125: '上林县',
+ 450126: '宾阳县',
+ 450127: '横县',
+ 450128: '其它区',
+ 450200: '柳州市',
+ 450202: '城中区',
+ 450203: '鱼峰区',
+ 450204: '柳南区',
+ 450205: '柳北区',
+ 450221: '柳江县',
+ 450222: '柳城县',
+ 450223: '鹿寨县',
+ 450224: '融安县',
+ 450225: '融水苗族自治县',
+ 450226: '三江侗族自治县',
+ 450227: '其它区',
+ 450300: '桂林市',
+ 450302: '秀峰区',
+ 450303: '叠彩区',
+ 450304: '象山区',
+ 450305: '七星区',
+ 450311: '雁山区',
+ 450321: '阳朔县',
+ 450322: '临桂区',
+ 450323: '灵川县',
+ 450324: '全州县',
+ 450325: '兴安县',
+ 450326: '永福县',
+ 450327: '灌阳县',
+ 450328: '龙胜各族自治县',
+ 450329: '资源县',
+ 450330: '平乐县',
+ 450331: '荔浦县',
+ 450332: '恭城瑶族自治县',
+ 450333: '其它区',
+ 450400: '梧州市',
+ 450403: '万秀区',
+ 450405: '长洲区',
+ 450406: '龙圩区',
+ 450421: '苍梧县',
+ 450422: '藤县',
+ 450423: '蒙山县',
+ 450481: '岑溪市',
+ 450482: '其它区',
+ 450500: '北海市',
+ 450502: '海城区',
+ 450503: '银海区',
+ 450512: '铁山港区',
+ 450521: '合浦县',
+ 450522: '其它区',
+ 450600: '防城港市',
+ 450602: '港口区',
+ 450603: '防城区',
+ 450621: '上思县',
+ 450681: '东兴市',
+ 450682: '其它区',
+ 450700: '钦州市',
+ 450702: '钦南区',
+ 450703: '钦北区',
+ 450721: '灵山县',
+ 450722: '浦北县',
+ 450723: '其它区',
+ 450800: '贵港市',
+ 450802: '港北区',
+ 450803: '港南区',
+ 450804: '覃塘区',
+ 450821: '平南县',
+ 450881: '桂平市',
+ 450882: '其它区',
+ 450900: '玉林市',
+ 450902: '玉州区',
+ 450903: '福绵区',
+ 450921: '容县',
+ 450922: '陆川县',
+ 450923: '博白县',
+ 450924: '兴业县',
+ 450981: '北流市',
+ 450982: '其它区',
+ 451000: '百色市',
+ 451002: '右江区',
+ 451021: '田阳县',
+ 451022: '田东县',
+ 451023: '平果县',
+ 451024: '德保县',
+ 451025: '靖西县',
+ 451026: '那坡县',
+ 451027: '凌云县',
+ 451028: '乐业县',
+ 451029: '田林县',
+ 451030: '西林县',
+ 451031: '隆林各族自治县',
+ 451032: '其它区',
+ 451100: '贺州市',
+ 451102: '八步区',
+ 451119: '平桂管理区',
+ 451121: '昭平县',
+ 451122: '钟山县',
+ 451123: '富川瑶族自治县',
+ 451124: '其它区',
+ 451200: '河池市',
+ 451202: '金城江区',
+ 451221: '南丹县',
+ 451222: '天峨县',
+ 451223: '凤山县',
+ 451224: '东兰县',
+ 451225: '罗城仫佬族自治县',
+ 451226: '环江毛南族自治县',
+ 451227: '巴马瑶族自治县',
+ 451228: '都安瑶族自治县',
+ 451229: '大化瑶族自治县',
+ 451281: '宜州市',
+ 451282: '其它区',
+ 451300: '来宾市',
+ 451302: '兴宾区',
+ 451321: '忻城县',
+ 451322: '象州县',
+ 451323: '武宣县',
+ 451324: '金秀瑶族自治县',
+ 451381: '合山市',
+ 451382: '其它区',
+ 451400: '崇左市',
+ 451402: '江州区',
+ 451421: '扶绥县',
+ 451422: '宁明县',
+ 451423: '龙州县',
+ 451424: '大新县',
+ 451425: '天等县',
+ 451481: '凭祥市',
+ 451482: '其它区',
+ 460000: '海南省',
+ 460100: '海口市',
+ 460105: '秀英区',
+ 460106: '龙华区',
+ 460107: '琼山区',
+ 460108: '美兰区',
+ 460109: '其它区',
+ 460200: '三亚市',
+ 460300: '三沙市',
+ 460321: '西沙群岛',
+ 460322: '南沙群岛',
+ 460323: '中沙群岛的岛礁及其海域',
+ 469001: '五指山市',
+ 469002: '琼海市',
+ 469003: '儋州市',
+ 469005: '文昌市',
+ 469006: '万宁市',
+ 469007: '东方市',
+ 469025: '定安县',
+ 469026: '屯昌县',
+ 469027: '澄迈县',
+ 469028: '临高县',
+ 469030: '白沙黎族自治县',
+ 469031: '昌江黎族自治县',
+ 469033: '乐东黎族自治县',
+ 469034: '陵水黎族自治县',
+ 469035: '保亭黎族苗族自治县',
+ 469036: '琼中黎族苗族自治县',
+ 471005: '其它区',
+ 500000: '重庆',
+ 500100: '重庆市',
+ 500101: '万州区',
+ 500102: '涪陵区',
+ 500103: '渝中区',
+ 500104: '大渡口区',
+ 500105: '江北区',
+ 500106: '沙坪坝区',
+ 500107: '九龙坡区',
+ 500108: '南岸区',
+ 500109: '北碚区',
+ 500110: '万盛区',
+ 500111: '双桥区',
+ 500112: '渝北区',
+ 500113: '巴南区',
+ 500114: '黔江区',
+ 500115: '长寿区',
+ 500222: '綦江区',
+ 500223: '潼南县',
+ 500224: '铜梁县',
+ 500225: '大足区',
+ 500226: '荣昌县',
+ 500227: '璧山县',
+ 500228: '梁平县',
+ 500229: '城口县',
+ 500230: '丰都县',
+ 500231: '垫江县',
+ 500232: '武隆县',
+ 500233: '忠县',
+ 500234: '开县',
+ 500235: '云阳县',
+ 500236: '奉节县',
+ 500237: '巫山县',
+ 500238: '巫溪县',
+ 500240: '石柱土家族自治县',
+ 500241: '秀山土家族苗族自治县',
+ 500242: '酉阳土家族苗族自治县',
+ 500243: '彭水苗族土家族自治县',
+ 500381: '江津区',
+ 500382: '合川区',
+ 500383: '永川区',
+ 500384: '南川区',
+ 500385: '其它区',
+ 510000: '四川省',
+ 510100: '成都市',
+ 510104: '锦江区',
+ 510105: '青羊区',
+ 510106: '金牛区',
+ 510107: '武侯区',
+ 510108: '成华区',
+ 510112: '龙泉驿区',
+ 510113: '青白江区',
+ 510114: '新都区',
+ 510115: '温江区',
+ 510121: '金堂县',
+ 510122: '双流县',
+ 510124: '郫县',
+ 510129: '大邑县',
+ 510131: '蒲江县',
+ 510132: '新津县',
+ 510181: '都江堰市',
+ 510182: '彭州市',
+ 510183: '邛崃市',
+ 510184: '崇州市',
+ 510185: '其它区',
+ 510300: '自贡市',
+ 510302: '自流井区',
+ 510303: '贡井区',
+ 510304: '大安区',
+ 510311: '沿滩区',
+ 510321: '荣县',
+ 510322: '富顺县',
+ 510323: '其它区',
+ 510400: '攀枝花市',
+ 510402: '东区',
+ 510403: '西区',
+ 510411: '仁和区',
+ 510421: '米易县',
+ 510422: '盐边县',
+ 510423: '其它区',
+ 510500: '泸州市',
+ 510502: '江阳区',
+ 510503: '纳溪区',
+ 510504: '龙马潭区',
+ 510521: '泸县',
+ 510522: '合江县',
+ 510524: '叙永县',
+ 510525: '古蔺县',
+ 510526: '其它区',
+ 510600: '德阳市',
+ 510603: '旌阳区',
+ 510623: '中江县',
+ 510626: '罗江县',
+ 510681: '广汉市',
+ 510682: '什邡市',
+ 510683: '绵竹市',
+ 510684: '其它区',
+ 510700: '绵阳市',
+ 510703: '涪城区',
+ 510704: '游仙区',
+ 510722: '三台县',
+ 510723: '盐亭县',
+ 510724: '安县',
+ 510725: '梓潼县',
+ 510726: '北川羌族自治县',
+ 510727: '平武县',
+ 510781: '江油市',
+ 510782: '其它区',
+ 510800: '广元市',
+ 510802: '利州区',
+ 510811: '昭化区',
+ 510812: '朝天区',
+ 510821: '旺苍县',
+ 510822: '青川县',
+ 510823: '剑阁县',
+ 510824: '苍溪县',
+ 510825: '其它区',
+ 510900: '遂宁市',
+ 510903: '船山区',
+ 510904: '安居区',
+ 510921: '蓬溪县',
+ 510922: '射洪县',
+ 510923: '大英县',
+ 510924: '其它区',
+ 511000: '内江市',
+ 511002: '市中区',
+ 511011: '东兴区',
+ 511024: '威远县',
+ 511025: '资中县',
+ 511028: '隆昌县',
+ 511029: '其它区',
+ 511100: '乐山市',
+ 511102: '市中区',
+ 511111: '沙湾区',
+ 511112: '五通桥区',
+ 511113: '金口河区',
+ 511123: '犍为县',
+ 511124: '井研县',
+ 511126: '夹江县',
+ 511129: '沐川县',
+ 511132: '峨边彝族自治县',
+ 511133: '马边彝族自治县',
+ 511181: '峨眉山市',
+ 511182: '其它区',
+ 511300: '南充市',
+ 511302: '顺庆区',
+ 511303: '高坪区',
+ 511304: '嘉陵区',
+ 511321: '南部县',
+ 511322: '营山县',
+ 511323: '蓬安县',
+ 511324: '仪陇县',
+ 511325: '西充县',
+ 511381: '阆中市',
+ 511382: '其它区',
+ 511400: '眉山市',
+ 511402: '东坡区',
+ 511421: '仁寿县',
+ 511422: '彭山县',
+ 511423: '洪雅县',
+ 511424: '丹棱县',
+ 511425: '青神县',
+ 511426: '其它区',
+ 511500: '宜宾市',
+ 511502: '翠屏区',
+ 511521: '宜宾县',
+ 511522: '南溪区',
+ 511523: '江安县',
+ 511524: '长宁县',
+ 511525: '高县',
+ 511526: '珙县',
+ 511527: '筠连县',
+ 511528: '兴文县',
+ 511529: '屏山县',
+ 511530: '其它区',
+ 511600: '广安市',
+ 511602: '广安区',
+ 511603: '前锋区',
+ 511621: '岳池县',
+ 511622: '武胜县',
+ 511623: '邻水县',
+ 511681: '华蓥市',
+ 511683: '其它区',
+ 511700: '达州市',
+ 511702: '通川区',
+ 511721: '达川区',
+ 511722: '宣汉县',
+ 511723: '开江县',
+ 511724: '大竹县',
+ 511725: '渠县',
+ 511781: '万源市',
+ 511782: '其它区',
+ 511800: '雅安市',
+ 511802: '雨城区',
+ 511821: '名山区',
+ 511822: '荥经县',
+ 511823: '汉源县',
+ 511824: '石棉县',
+ 511825: '天全县',
+ 511826: '芦山县',
+ 511827: '宝兴县',
+ 511828: '其它区',
+ 511900: '巴中市',
+ 511902: '巴州区',
+ 511903: '恩阳区',
+ 511921: '通江县',
+ 511922: '南江县',
+ 511923: '平昌县',
+ 511924: '其它区',
+ 512000: '资阳市',
+ 512002: '雁江区',
+ 512021: '安岳县',
+ 512022: '乐至县',
+ 512081: '简阳市',
+ 512082: '其它区',
+ 513200: '阿坝藏族羌族自治州',
+ 513221: '汶川县',
+ 513222: '理县',
+ 513223: '茂县',
+ 513224: '松潘县',
+ 513225: '九寨沟县',
+ 513226: '金川县',
+ 513227: '小金县',
+ 513228: '黑水县',
+ 513229: '马尔康县',
+ 513230: '壤塘县',
+ 513231: '阿坝县',
+ 513232: '若尔盖县',
+ 513233: '红原县',
+ 513234: '其它区',
+ 513300: '甘孜藏族自治州',
+ 513321: '康定县',
+ 513322: '泸定县',
+ 513323: '丹巴县',
+ 513324: '九龙县',
+ 513325: '雅江县',
+ 513326: '道孚县',
+ 513327: '炉霍县',
+ 513328: '甘孜县',
+ 513329: '新龙县',
+ 513330: '德格县',
+ 513331: '白玉县',
+ 513332: '石渠县',
+ 513333: '色达县',
+ 513334: '理塘县',
+ 513335: '巴塘县',
+ 513336: '乡城县',
+ 513337: '稻城县',
+ 513338: '得荣县',
+ 513339: '其它区',
+ 513400: '凉山彝族自治州',
+ 513401: '西昌市',
+ 513422: '木里藏族自治县',
+ 513423: '盐源县',
+ 513424: '德昌县',
+ 513425: '会理县',
+ 513426: '会东县',
+ 513427: '宁南县',
+ 513428: '普格县',
+ 513429: '布拖县',
+ 513430: '金阳县',
+ 513431: '昭觉县',
+ 513432: '喜德县',
+ 513433: '冕宁县',
+ 513434: '越西县',
+ 513435: '甘洛县',
+ 513436: '美姑县',
+ 513437: '雷波县',
+ 513438: '其它区',
+ 520000: '贵州省',
+ 520100: '贵阳市',
+ 520102: '南明区',
+ 520103: '云岩区',
+ 520111: '花溪区',
+ 520112: '乌当区',
+ 520113: '白云区',
+ 520121: '开阳县',
+ 520122: '息烽县',
+ 520123: '修文县',
+ 520151: '观山湖区',
+ 520181: '清镇市',
+ 520182: '其它区',
+ 520200: '六盘水市',
+ 520201: '钟山区',
+ 520203: '六枝特区',
+ 520221: '水城县',
+ 520222: '盘县',
+ 520223: '其它区',
+ 520300: '遵义市',
+ 520302: '红花岗区',
+ 520303: '汇川区',
+ 520321: '遵义县',
+ 520322: '桐梓县',
+ 520323: '绥阳县',
+ 520324: '正安县',
+ 520325: '道真仡佬族苗族自治县',
+ 520326: '务川仡佬族苗族自治县',
+ 520327: '凤冈县',
+ 520328: '湄潭县',
+ 520329: '余庆县',
+ 520330: '习水县',
+ 520381: '赤水市',
+ 520382: '仁怀市',
+ 520383: '其它区',
+ 520400: '安顺市',
+ 520402: '西秀区',
+ 520421: '平坝县',
+ 520422: '普定县',
+ 520423: '镇宁布依族苗族自治县',
+ 520424: '关岭布依族苗族自治县',
+ 520425: '紫云苗族布依族自治县',
+ 520426: '其它区',
+ 522200: '铜仁市',
+ 522201: '碧江区',
+ 522222: '江口县',
+ 522223: '玉屏侗族自治县',
+ 522224: '石阡县',
+ 522225: '思南县',
+ 522226: '印江土家族苗族自治县',
+ 522227: '德江县',
+ 522228: '沿河土家族自治县',
+ 522229: '松桃苗族自治县',
+ 522230: '万山区',
+ 522231: '其它区',
+ 522300: '黔西南布依族苗族自治州',
+ 522301: '兴义市',
+ 522322: '兴仁县',
+ 522323: '普安县',
+ 522324: '晴隆县',
+ 522325: '贞丰县',
+ 522326: '望谟县',
+ 522327: '册亨县',
+ 522328: '安龙县',
+ 522329: '其它区',
+ 522400: '毕节市',
+ 522401: '七星关区',
+ 522422: '大方县',
+ 522423: '黔西县',
+ 522424: '金沙县',
+ 522425: '织金县',
+ 522426: '纳雍县',
+ 522427: '威宁彝族回族苗族自治县',
+ 522428: '赫章县',
+ 522429: '其它区',
+ 522600: '黔东南苗族侗族自治州',
+ 522601: '凯里市',
+ 522622: '黄平县',
+ 522623: '施秉县',
+ 522624: '三穗县',
+ 522625: '镇远县',
+ 522626: '岑巩县',
+ 522627: '天柱县',
+ 522628: '锦屏县',
+ 522629: '剑河县',
+ 522630: '台江县',
+ 522631: '黎平县',
+ 522632: '榕江县',
+ 522633: '从江县',
+ 522634: '雷山县',
+ 522635: '麻江县',
+ 522636: '丹寨县',
+ 522637: '其它区',
+ 522700: '黔南布依族苗族自治州',
+ 522701: '都匀市',
+ 522702: '福泉市',
+ 522722: '荔波县',
+ 522723: '贵定县',
+ 522725: '瓮安县',
+ 522726: '独山县',
+ 522727: '平塘县',
+ 522728: '罗甸县',
+ 522729: '长顺县',
+ 522730: '龙里县',
+ 522731: '惠水县',
+ 522732: '三都水族自治县',
+ 522733: '其它区',
+ 530000: '云南省',
+ 530100: '昆明市',
+ 530102: '五华区',
+ 530103: '盘龙区',
+ 530111: '官渡区',
+ 530112: '西山区',
+ 530113: '东川区',
+ 530121: '呈贡区',
+ 530122: '晋宁县',
+ 530124: '富民县',
+ 530125: '宜良县',
+ 530126: '石林彝族自治县',
+ 530127: '嵩明县',
+ 530128: '禄劝彝族苗族自治县',
+ 530129: '寻甸回族彝族自治县',
+ 530181: '安宁市',
+ 530182: '其它区',
+ 530300: '曲靖市',
+ 530302: '麒麟区',
+ 530321: '马龙县',
+ 530322: '陆良县',
+ 530323: '师宗县',
+ 530324: '罗平县',
+ 530325: '富源县',
+ 530326: '会泽县',
+ 530328: '沾益县',
+ 530381: '宣威市',
+ 530382: '其它区',
+ 530400: '玉溪市',
+ 530402: '红塔区',
+ 530421: '江川县',
+ 530422: '澄江县',
+ 530423: '通海县',
+ 530424: '华宁县',
+ 530425: '易门县',
+ 530426: '峨山彝族自治县',
+ 530427: '新平彝族傣族自治县',
+ 530428: '元江哈尼族彝族傣族自治县',
+ 530429: '其它区',
+ 530500: '保山市',
+ 530502: '隆阳区',
+ 530521: '施甸县',
+ 530522: '腾冲县',
+ 530523: '龙陵县',
+ 530524: '昌宁县',
+ 530525: '其它区',
+ 530600: '昭通市',
+ 530602: '昭阳区',
+ 530621: '鲁甸县',
+ 530622: '巧家县',
+ 530623: '盐津县',
+ 530624: '大关县',
+ 530625: '永善县',
+ 530626: '绥江县',
+ 530627: '镇雄县',
+ 530628: '彝良县',
+ 530629: '威信县',
+ 530630: '水富县',
+ 530631: '其它区',
+ 530700: '丽江市',
+ 530702: '古城区',
+ 530721: '玉龙纳西族自治县',
+ 530722: '永胜县',
+ 530723: '华坪县',
+ 530724: '宁蒗彝族自治县',
+ 530725: '其它区',
+ 530800: '普洱市',
+ 530802: '思茅区',
+ 530821: '宁洱哈尼族彝族自治县',
+ 530822: '墨江哈尼族自治县',
+ 530823: '景东彝族自治县',
+ 530824: '景谷傣族彝族自治县',
+ 530825: '镇沅彝族哈尼族拉祜族自治县',
+ 530826: '江城哈尼族彝族自治县',
+ 530827: '孟连傣族拉祜族佤族自治县',
+ 530828: '澜沧拉祜族自治县',
+ 530829: '西盟佤族自治县',
+ 530830: '其它区',
+ 530900: '临沧市',
+ 530902: '临翔区',
+ 530921: '凤庆县',
+ 530922: '云县',
+ 530923: '永德县',
+ 530924: '镇康县',
+ 530925: '双江拉祜族佤族布朗族傣族自治县',
+ 530926: '耿马傣族佤族自治县',
+ 530927: '沧源佤族自治县',
+ 530928: '其它区',
+ 532300: '楚雄彝族自治州',
+ 532301: '楚雄市',
+ 532322: '双柏县',
+ 532323: '牟定县',
+ 532324: '南华县',
+ 532325: '姚安县',
+ 532326: '大姚县',
+ 532327: '永仁县',
+ 532328: '元谋县',
+ 532329: '武定县',
+ 532331: '禄丰县',
+ 532332: '其它区',
+ 532500: '红河哈尼族彝族自治州',
+ 532501: '个旧市',
+ 532502: '开远市',
+ 532522: '蒙自市',
+ 532523: '屏边苗族自治县',
+ 532524: '建水县',
+ 532525: '石屏县',
+ 532526: '弥勒市',
+ 532527: '泸西县',
+ 532528: '元阳县',
+ 532529: '红河县',
+ 532530: '金平苗族瑶族傣族自治县',
+ 532531: '绿春县',
+ 532532: '河口瑶族自治县',
+ 532533: '其它区',
+ 532600: '文山壮族苗族自治州',
+ 532621: '文山市',
+ 532622: '砚山县',
+ 532623: '西畴县',
+ 532624: '麻栗坡县',
+ 532625: '马关县',
+ 532626: '丘北县',
+ 532627: '广南县',
+ 532628: '富宁县',
+ 532629: '其它区',
+ 532800: '西双版纳傣族自治州',
+ 532801: '景洪市',
+ 532822: '勐海县',
+ 532823: '勐腊县',
+ 532824: '其它区',
+ 532900: '大理白族自治州',
+ 532901: '大理市',
+ 532922: '漾濞彝族自治县',
+ 532923: '祥云县',
+ 532924: '宾川县',
+ 532925: '弥渡县',
+ 532926: '南涧彝族自治县',
+ 532927: '巍山彝族回族自治县',
+ 532928: '永平县',
+ 532929: '云龙县',
+ 532930: '洱源县',
+ 532931: '剑川县',
+ 532932: '鹤庆县',
+ 532933: '其它区',
+ 533100: '德宏傣族景颇族自治州',
+ 533102: '瑞丽市',
+ 533103: '芒市',
+ 533122: '梁河县',
+ 533123: '盈江县',
+ 533124: '陇川县',
+ 533125: '其它区',
+ 533300: '怒江傈僳族自治州',
+ 533321: '泸水县',
+ 533323: '福贡县',
+ 533324: '贡山独龙族怒族自治县',
+ 533325: '兰坪白族普米族自治县',
+ 533326: '其它区',
+ 533400: '迪庆藏族自治州',
+ 533421: '香格里拉县',
+ 533422: '德钦县',
+ 533423: '维西傈僳族自治县',
+ 533424: '其它区',
+ 540000: '西藏自治区',
+ 540100: '拉萨市',
+ 540102: '城关区',
+ 540121: '林周县',
+ 540122: '当雄县',
+ 540123: '尼木县',
+ 540124: '曲水县',
+ 540125: '堆龙德庆县',
+ 540126: '达孜县',
+ 540127: '墨竹工卡县',
+ 540128: '其它区',
+ 542100: '昌都地区',
+ 542121: '昌都县',
+ 542122: '江达县',
+ 542123: '贡觉县',
+ 542124: '类乌齐县',
+ 542125: '丁青县',
+ 542126: '察雅县',
+ 542127: '八宿县',
+ 542128: '左贡县',
+ 542129: '芒康县',
+ 542132: '洛隆县',
+ 542133: '边坝县',
+ 542134: '其它区',
+ 542200: '山南地区',
+ 542221: '乃东县',
+ 542222: '扎囊县',
+ 542223: '贡嘎县',
+ 542224: '桑日县',
+ 542225: '琼结县',
+ 542226: '曲松县',
+ 542227: '措美县',
+ 542228: '洛扎县',
+ 542229: '加查县',
+ 542231: '隆子县',
+ 542232: '错那县',
+ 542233: '浪卡子县',
+ 542234: '其它区',
+ 542300: '日喀则地区',
+ 542301: '日喀则市',
+ 542322: '南木林县',
+ 542323: '江孜县',
+ 542324: '定日县',
+ 542325: '萨迦县',
+ 542326: '拉孜县',
+ 542327: '昂仁县',
+ 542328: '谢通门县',
+ 542329: '白朗县',
+ 542330: '仁布县',
+ 542331: '康马县',
+ 542332: '定结县',
+ 542333: '仲巴县',
+ 542334: '亚东县',
+ 542335: '吉隆县',
+ 542336: '聂拉木县',
+ 542337: '萨嘎县',
+ 542338: '岗巴县',
+ 542339: '其它区',
+ 542400: '那曲地区',
+ 542421: '那曲县',
+ 542422: '嘉黎县',
+ 542423: '比如县',
+ 542424: '聂荣县',
+ 542425: '安多县',
+ 542426: '申扎县',
+ 542427: '索县',
+ 542428: '班戈县',
+ 542429: '巴青县',
+ 542430: '尼玛县',
+ 542431: '其它区',
+ 542432: '双湖县',
+ 542500: '阿里地区',
+ 542521: '普兰县',
+ 542522: '札达县',
+ 542523: '噶尔县',
+ 542524: '日土县',
+ 542525: '革吉县',
+ 542526: '改则县',
+ 542527: '措勤县',
+ 542528: '其它区',
+ 542600: '林芝地区',
+ 542621: '林芝县',
+ 542622: '工布江达县',
+ 542623: '米林县',
+ 542624: '墨脱县',
+ 542625: '波密县',
+ 542626: '察隅县',
+ 542627: '朗县',
+ 542628: '其它区',
+ 610000: '陕西省',
+ 610100: '西安市',
+ 610102: '新城区',
+ 610103: '碑林区',
+ 610104: '莲湖区',
+ 610111: '灞桥区',
+ 610112: '未央区',
+ 610113: '雁塔区',
+ 610114: '阎良区',
+ 610115: '临潼区',
+ 610116: '长安区',
+ 610122: '蓝田县',
+ 610124: '周至县',
+ 610125: '户县',
+ 610126: '高陵县',
+ 610127: '其它区',
+ 610200: '铜川市',
+ 610202: '王益区',
+ 610203: '印台区',
+ 610204: '耀州区',
+ 610222: '宜君县',
+ 610223: '其它区',
+ 610300: '宝鸡市',
+ 610302: '渭滨区',
+ 610303: '金台区',
+ 610304: '陈仓区',
+ 610322: '凤翔县',
+ 610323: '岐山县',
+ 610324: '扶风县',
+ 610326: '眉县',
+ 610327: '陇县',
+ 610328: '千阳县',
+ 610329: '麟游县',
+ 610330: '凤县',
+ 610331: '太白县',
+ 610332: '其它区',
+ 610400: '咸阳市',
+ 610402: '秦都区',
+ 610403: '杨陵区',
+ 610404: '渭城区',
+ 610422: '三原县',
+ 610423: '泾阳县',
+ 610424: '乾县',
+ 610425: '礼泉县',
+ 610426: '永寿县',
+ 610427: '彬县',
+ 610428: '长武县',
+ 610429: '旬邑县',
+ 610430: '淳化县',
+ 610431: '武功县',
+ 610481: '兴平市',
+ 610482: '其它区',
+ 610500: '渭南市',
+ 610502: '临渭区',
+ 610521: '华县',
+ 610522: '潼关县',
+ 610523: '大荔县',
+ 610524: '合阳县',
+ 610525: '澄城县',
+ 610526: '蒲城县',
+ 610527: '白水县',
+ 610528: '富平县',
+ 610581: '韩城市',
+ 610582: '华阴市',
+ 610583: '其它区',
+ 610600: '延安市',
+ 610602: '宝塔区',
+ 610621: '延长县',
+ 610622: '延川县',
+ 610623: '子长县',
+ 610624: '安塞县',
+ 610625: '志丹县',
+ 610626: '吴起县',
+ 610627: '甘泉县',
+ 610628: '富县',
+ 610629: '洛川县',
+ 610630: '宜川县',
+ 610631: '黄龙县',
+ 610632: '黄陵县',
+ 610633: '其它区',
+ 610700: '汉中市',
+ 610702: '汉台区',
+ 610721: '南郑县',
+ 610722: '城固县',
+ 610723: '洋县',
+ 610724: '西乡县',
+ 610725: '勉县',
+ 610726: '宁强县',
+ 610727: '略阳县',
+ 610728: '镇巴县',
+ 610729: '留坝县',
+ 610730: '佛坪县',
+ 610731: '其它区',
+ 610800: '榆林市',
+ 610802: '榆阳区',
+ 610821: '神木县',
+ 610822: '府谷县',
+ 610823: '横山县',
+ 610824: '靖边县',
+ 610825: '定边县',
+ 610826: '绥德县',
+ 610827: '米脂县',
+ 610828: '佳县',
+ 610829: '吴堡县',
+ 610830: '清涧县',
+ 610831: '子洲县',
+ 610832: '其它区',
+ 610900: '安康市',
+ 610902: '汉滨区',
+ 610921: '汉阴县',
+ 610922: '石泉县',
+ 610923: '宁陕县',
+ 610924: '紫阳县',
+ 610925: '岚皋县',
+ 610926: '平利县',
+ 610927: '镇坪县',
+ 610928: '旬阳县',
+ 610929: '白河县',
+ 610930: '其它区',
+ 611000: '商洛市',
+ 611002: '商州区',
+ 611021: '洛南县',
+ 611022: '丹凤县',
+ 611023: '商南县',
+ 611024: '山阳县',
+ 611025: '镇安县',
+ 611026: '柞水县',
+ 611027: '其它区',
+ 620000: '甘肃省',
+ 620100: '兰州市',
+ 620102: '城关区',
+ 620103: '七里河区',
+ 620104: '西固区',
+ 620105: '安宁区',
+ 620111: '红古区',
+ 620121: '永登县',
+ 620122: '皋兰县',
+ 620123: '榆中县',
+ 620124: '其它区',
+ 620200: '嘉峪关市',
+ 620300: '金昌市',
+ 620302: '金川区',
+ 620321: '永昌县',
+ 620322: '其它区',
+ 620400: '白银市',
+ 620402: '白银区',
+ 620403: '平川区',
+ 620421: '靖远县',
+ 620422: '会宁县',
+ 620423: '景泰县',
+ 620424: '其它区',
+ 620500: '天水市',
+ 620502: '秦州区',
+ 620503: '麦积区',
+ 620521: '清水县',
+ 620522: '秦安县',
+ 620523: '甘谷县',
+ 620524: '武山县',
+ 620525: '张家川回族自治县',
+ 620526: '其它区',
+ 620600: '武威市',
+ 620602: '凉州区',
+ 620621: '民勤县',
+ 620622: '古浪县',
+ 620623: '天祝藏族自治县',
+ 620624: '其它区',
+ 620700: '张掖市',
+ 620702: '甘州区',
+ 620721: '肃南裕固族自治县',
+ 620722: '民乐县',
+ 620723: '临泽县',
+ 620724: '高台县',
+ 620725: '山丹县',
+ 620726: '其它区',
+ 620800: '平凉市',
+ 620802: '崆峒区',
+ 620821: '泾川县',
+ 620822: '灵台县',
+ 620823: '崇信县',
+ 620824: '华亭县',
+ 620825: '庄浪县',
+ 620826: '静宁县',
+ 620827: '其它区',
+ 620900: '酒泉市',
+ 620902: '肃州区',
+ 620921: '金塔县',
+ 620922: '瓜州县',
+ 620923: '肃北蒙古族自治县',
+ 620924: '阿克塞哈萨克族自治县',
+ 620981: '玉门市',
+ 620982: '敦煌市',
+ 620983: '其它区',
+ 621000: '庆阳市',
+ 621002: '西峰区',
+ 621021: '庆城县',
+ 621022: '环县',
+ 621023: '华池县',
+ 621024: '合水县',
+ 621025: '正宁县',
+ 621026: '宁县',
+ 621027: '镇原县',
+ 621028: '其它区',
+ 621100: '定西市',
+ 621102: '安定区',
+ 621121: '通渭县',
+ 621122: '陇西县',
+ 621123: '渭源县',
+ 621124: '临洮县',
+ 621125: '漳县',
+ 621126: '岷县',
+ 621127: '其它区',
+ 621200: '陇南市',
+ 621202: '武都区',
+ 621221: '成县',
+ 621222: '文县',
+ 621223: '宕昌县',
+ 621224: '康县',
+ 621225: '西和县',
+ 621226: '礼县',
+ 621227: '徽县',
+ 621228: '两当县',
+ 621229: '其它区',
+ 622900: '临夏回族自治州',
+ 622901: '临夏市',
+ 622921: '临夏县',
+ 622922: '康乐县',
+ 622923: '永靖县',
+ 622924: '广河县',
+ 622925: '和政县',
+ 622926: '东乡族自治县',
+ 622927: '积石山保安族东乡族撒拉族自治县',
+ 622928: '其它区',
+ 623000: '甘南藏族自治州',
+ 623001: '合作市',
+ 623021: '临潭县',
+ 623022: '卓尼县',
+ 623023: '舟曲县',
+ 623024: '迭部县',
+ 623025: '玛曲县',
+ 623026: '碌曲县',
+ 623027: '夏河县',
+ 623028: '其它区',
+ 630000: '青海省',
+ 630100: '西宁市',
+ 630102: '城东区',
+ 630103: '城中区',
+ 630104: '城西区',
+ 630105: '城北区',
+ 630121: '大通回族土族自治县',
+ 630122: '湟中县',
+ 630123: '湟源县',
+ 630124: '其它区',
+ 632100: '海东市',
+ 632121: '平安县',
+ 632122: '民和回族土族自治县',
+ 632123: '乐都区',
+ 632126: '互助土族自治县',
+ 632127: '化隆回族自治县',
+ 632128: '循化撒拉族自治县',
+ 632129: '其它区',
+ 632200: '海北藏族自治州',
+ 632221: '门源回族自治县',
+ 632222: '祁连县',
+ 632223: '海晏县',
+ 632224: '刚察县',
+ 632225: '其它区',
+ 632300: '黄南藏族自治州',
+ 632321: '同仁县',
+ 632322: '尖扎县',
+ 632323: '泽库县',
+ 632324: '河南蒙古族自治县',
+ 632325: '其它区',
+ 632500: '海南藏族自治州',
+ 632521: '共和县',
+ 632522: '同德县',
+ 632523: '贵德县',
+ 632524: '兴海县',
+ 632525: '贵南县',
+ 632526: '其它区',
+ 632600: '果洛藏族自治州',
+ 632621: '玛沁县',
+ 632622: '班玛县',
+ 632623: '甘德县',
+ 632624: '达日县',
+ 632625: '久治县',
+ 632626: '玛多县',
+ 632627: '其它区',
+ 632700: '玉树藏族自治州',
+ 632721: '玉树市',
+ 632722: '杂多县',
+ 632723: '称多县',
+ 632724: '治多县',
+ 632725: '囊谦县',
+ 632726: '曲麻莱县',
+ 632727: '其它区',
+ 632800: '海西蒙古族藏族自治州',
+ 632801: '格尔木市',
+ 632802: '德令哈市',
+ 632821: '乌兰县',
+ 632822: '都兰县',
+ 632823: '天峻县',
+ 632824: '其它区',
+ 640000: '宁夏回族自治区',
+ 640100: '银川市',
+ 640104: '兴庆区',
+ 640105: '西夏区',
+ 640106: '金凤区',
+ 640121: '永宁县',
+ 640122: '贺兰县',
+ 640181: '灵武市',
+ 640182: '其它区',
+ 640200: '石嘴山市',
+ 640202: '大武口区',
+ 640205: '惠农区',
+ 640221: '平罗县',
+ 640222: '其它区',
+ 640300: '吴忠市',
+ 640302: '利通区',
+ 640303: '红寺堡区',
+ 640323: '盐池县',
+ 640324: '同心县',
+ 640381: '青铜峡市',
+ 640382: '其它区',
+ 640400: '固原市',
+ 640402: '原州区',
+ 640422: '西吉县',
+ 640423: '隆德县',
+ 640424: '泾源县',
+ 640425: '彭阳县',
+ 640426: '其它区',
+ 640500: '中卫市',
+ 640502: '沙坡头区',
+ 640521: '中宁县',
+ 640522: '海原县',
+ 640523: '其它区',
+ 650000: '新疆维吾尔自治区',
+ 650100: '乌鲁木齐市',
+ 650102: '天山区',
+ 650103: '沙依巴克区',
+ 650104: '新市区',
+ 650105: '水磨沟区',
+ 650106: '头屯河区',
+ 650107: '达坂城区',
+ 650109: '米东区',
+ 650121: '乌鲁木齐县',
+ 650122: '其它区',
+ 650200: '克拉玛依市',
+ 650202: '独山子区',
+ 650203: '克拉玛依区',
+ 650204: '白碱滩区',
+ 650205: '乌尔禾区',
+ 650206: '其它区',
+ 652100: '吐鲁番地区',
+ 652101: '吐鲁番市',
+ 652122: '鄯善县',
+ 652123: '托克逊县',
+ 652124: '其它区',
+ 652200: '哈密地区',
+ 652201: '哈密市',
+ 652222: '巴里坤哈萨克自治县',
+ 652223: '伊吾县',
+ 652224: '其它区',
+ 652300: '昌吉回族自治州',
+ 652301: '昌吉市',
+ 652302: '阜康市',
+ 652323: '呼图壁县',
+ 652324: '玛纳斯县',
+ 652325: '奇台县',
+ 652327: '吉木萨尔县',
+ 652328: '木垒哈萨克自治县',
+ 652329: '其它区',
+ 652700: '博尔塔拉蒙古自治州',
+ 652701: '博乐市',
+ 652702: '阿拉山口市',
+ 652722: '精河县',
+ 652723: '温泉县',
+ 652724: '其它区',
+ 652800: '巴音郭楞蒙古自治州',
+ 652801: '库尔勒市',
+ 652822: '轮台县',
+ 652823: '尉犁县',
+ 652824: '若羌县',
+ 652825: '且末县',
+ 652826: '焉耆回族自治县',
+ 652827: '和静县',
+ 652828: '和硕县',
+ 652829: '博湖县',
+ 652830: '其它区',
+ 652900: '阿克苏地区',
+ 652901: '阿克苏市',
+ 652922: '温宿县',
+ 652923: '库车县',
+ 652924: '沙雅县',
+ 652925: '新和县',
+ 652926: '拜城县',
+ 652927: '乌什县',
+ 652928: '阿瓦提县',
+ 652929: '柯坪县',
+ 652930: '其它区',
+ 653000: '克孜勒苏柯尔克孜自治州',
+ 653001: '阿图什市',
+ 653022: '阿克陶县',
+ 653023: '阿合奇县',
+ 653024: '乌恰县',
+ 653025: '其它区',
+ 653100: '喀什地区',
+ 653101: '喀什市',
+ 653121: '疏附县',
+ 653122: '疏勒县',
+ 653123: '英吉沙县',
+ 653124: '泽普县',
+ 653125: '莎车县',
+ 653126: '叶城县',
+ 653127: '麦盖提县',
+ 653128: '岳普湖县',
+ 653129: '伽师县',
+ 653130: '巴楚县',
+ 653131: '塔什库尔干塔吉克自治县',
+ 653132: '其它区',
+ 653200: '和田地区',
+ 653201: '和田市',
+ 653221: '和田县',
+ 653222: '墨玉县',
+ 653223: '皮山县',
+ 653224: '洛浦县',
+ 653225: '策勒县',
+ 653226: '于田县',
+ 653227: '民丰县',
+ 653228: '其它区',
+ 654000: '伊犁哈萨克自治州',
+ 654002: '伊宁市',
+ 654003: '奎屯市',
+ 654021: '伊宁县',
+ 654022: '察布查尔锡伯自治县',
+ 654023: '霍城县',
+ 654024: '巩留县',
+ 654025: '新源县',
+ 654026: '昭苏县',
+ 654027: '特克斯县',
+ 654028: '尼勒克县',
+ 654029: '其它区',
+ 654200: '塔城地区',
+ 654201: '塔城市',
+ 654202: '乌苏市',
+ 654221: '额敏县',
+ 654223: '沙湾县',
+ 654224: '托里县',
+ 654225: '裕民县',
+ 654226: '和布克赛尔蒙古自治县',
+ 654227: '其它区',
+ 654300: '阿勒泰地区',
+ 654301: '阿勒泰市',
+ 654321: '布尔津县',
+ 654322: '富蕴县',
+ 654323: '福海县',
+ 654324: '哈巴河县',
+ 654325: '青河县',
+ 654326: '吉木乃县',
+ 654327: '其它区',
+ 659001: '石河子市',
+ 659002: '阿拉尔市',
+ 659003: '图木舒克市',
+ 659004: '五家渠市',
+ 710000: '台湾',
+ 710100: '台北市',
+ 710101: '中正区',
+ 710102: '大同区',
+ 710103: '中山区',
+ 710104: '松山区',
+ 710105: '大安区',
+ 710106: '万华区',
+ 710107: '信义区',
+ 710108: '士林区',
+ 710109: '北投区',
+ 710110: '内湖区',
+ 710111: '南港区',
+ 710112: '文山区',
+ 710113: '其它区',
+ 710200: '高雄市',
+ 710201: '新兴区',
+ 710202: '前金区',
+ 710203: '芩雅区',
+ 710204: '盐埕区',
+ 710205: '鼓山区',
+ 710206: '旗津区',
+ 710207: '前镇区',
+ 710208: '三民区',
+ 710209: '左营区',
+ 710210: '楠梓区',
+ 710211: '小港区',
+ 710212: '其它区',
+ 710241: '苓雅区',
+ 710242: '仁武区',
+ 710243: '大社区',
+ 710244: '冈山区',
+ 710245: '路竹区',
+ 710246: '阿莲区',
+ 710247: '田寮区',
+ 710248: '燕巢区',
+ 710249: '桥头区',
+ 710250: '梓官区',
+ 710251: '弥陀区',
+ 710252: '永安区',
+ 710253: '湖内区',
+ 710254: '凤山区',
+ 710255: '大寮区',
+ 710256: '林园区',
+ 710257: '鸟松区',
+ 710258: '大树区',
+ 710259: '旗山区',
+ 710260: '美浓区',
+ 710261: '六龟区',
+ 710262: '内门区',
+ 710263: '杉林区',
+ 710264: '甲仙区',
+ 710265: '桃源区',
+ 710266: '那玛夏区',
+ 710267: '茂林区',
+ 710268: '茄萣区',
+ 710300: '台南市',
+ 710301: '中西区',
+ 710302: '东区',
+ 710303: '南区',
+ 710304: '北区',
+ 710305: '安平区',
+ 710306: '安南区',
+ 710307: '其它区',
+ 710339: '永康区',
+ 710340: '归仁区',
+ 710341: '新化区',
+ 710342: '左镇区',
+ 710343: '玉井区',
+ 710344: '楠西区',
+ 710345: '南化区',
+ 710346: '仁德区',
+ 710347: '关庙区',
+ 710348: '龙崎区',
+ 710349: '官田区',
+ 710350: '麻豆区',
+ 710351: '佳里区',
+ 710352: '西港区',
+ 710353: '七股区',
+ 710354: '将军区',
+ 710355: '学甲区',
+ 710356: '北门区',
+ 710357: '新营区',
+ 710358: '后壁区',
+ 710359: '白河区',
+ 710360: '东山区',
+ 710361: '六甲区',
+ 710362: '下营区',
+ 710363: '柳营区',
+ 710364: '盐水区',
+ 710365: '善化区',
+ 710366: '大内区',
+ 710367: '山上区',
+ 710368: '新市区',
+ 710369: '安定区',
+ 710400: '台中市',
+ 710401: '中区',
+ 710402: '东区',
+ 710403: '南区',
+ 710404: '西区',
+ 710405: '北区',
+ 710406: '北屯区',
+ 710407: '西屯区',
+ 710408: '南屯区',
+ 710409: '其它区',
+ 710431: '太平区',
+ 710432: '大里区',
+ 710433: '雾峰区',
+ 710434: '乌日区',
+ 710435: '丰原区',
+ 710436: '后里区',
+ 710437: '石冈区',
+ 710438: '东势区',
+ 710439: '和平区',
+ 710440: '新社区',
+ 710441: '潭子区',
+ 710442: '大雅区',
+ 710443: '神冈区',
+ 710444: '大肚区',
+ 710445: '沙鹿区',
+ 710446: '龙井区',
+ 710447: '梧栖区',
+ 710448: '清水区',
+ 710449: '大甲区',
+ 710450: '外埔区',
+ 710451: '大安区',
+ 710500: '金门县',
+ 710507: '金沙镇',
+ 710508: '金湖镇',
+ 710509: '金宁乡',
+ 710510: '金城镇',
+ 710511: '烈屿乡',
+ 710512: '乌坵乡',
+ 710600: '南投县',
+ 710614: '南投市',
+ 710615: '中寮乡',
+ 710616: '草屯镇',
+ 710617: '国姓乡',
+ 710618: '埔里镇',
+ 710619: '仁爱乡',
+ 710620: '名间乡',
+ 710621: '集集镇',
+ 710622: '水里乡',
+ 710623: '鱼池乡',
+ 710624: '信义乡',
+ 710625: '竹山镇',
+ 710626: '鹿谷乡',
+ 710700: '基隆市',
+ 710701: '仁爱区',
+ 710702: '信义区',
+ 710703: '中正区',
+ 710704: '中山区',
+ 710705: '安乐区',
+ 710706: '暖暖区',
+ 710707: '七堵区',
+ 710708: '其它区',
+ 710800: '新竹市',
+ 710801: '东区',
+ 710802: '北区',
+ 710803: '香山区',
+ 710804: '其它区',
+ 710900: '嘉义市',
+ 710901: '东区',
+ 710902: '西区',
+ 710903: '其它区',
+ 711100: '新北市',
+ 711130: '万里区',
+ 711131: '金山区',
+ 711132: '板桥区',
+ 711133: '汐止区',
+ 711134: '深坑区',
+ 711135: '石碇区',
+ 711136: '瑞芳区',
+ 711137: '平溪区',
+ 711138: '双溪区',
+ 711139: '贡寮区',
+ 711140: '新店区',
+ 711141: '坪林区',
+ 711142: '乌来区',
+ 711143: '永和区',
+ 711144: '中和区',
+ 711145: '土城区',
+ 711146: '三峡区',
+ 711147: '树林区',
+ 711148: '莺歌区',
+ 711149: '三重区',
+ 711150: '新庄区',
+ 711151: '泰山区',
+ 711152: '林口区',
+ 711153: '芦洲区',
+ 711154: '五股区',
+ 711155: '八里区',
+ 711156: '淡水区',
+ 711157: '三芝区',
+ 711158: '石门区',
+ 711200: '宜兰县',
+ 711214: '宜兰市',
+ 711215: '头城镇',
+ 711216: '礁溪乡',
+ 711217: '壮围乡',
+ 711218: '员山乡',
+ 711219: '罗东镇',
+ 711220: '三星乡',
+ 711221: '大同乡',
+ 711222: '五结乡',
+ 711223: '冬山乡',
+ 711224: '苏澳镇',
+ 711225: '南澳乡',
+ 711226: '钓鱼台',
+ 711300: '新竹县',
+ 711314: '竹北市',
+ 711315: '湖口乡',
+ 711316: '新丰乡',
+ 711317: '新埔镇',
+ 711318: '关西镇',
+ 711319: '芎林乡',
+ 711320: '宝山乡',
+ 711321: '竹东镇',
+ 711322: '五峰乡',
+ 711323: '横山乡',
+ 711324: '尖石乡',
+ 711325: '北埔乡',
+ 711326: '峨眉乡',
+ 711400: '桃园县',
+ 711414: '中坜市',
+ 711415: '平镇市',
+ 711416: '龙潭乡',
+ 711417: '杨梅市',
+ 711418: '新屋乡',
+ 711419: '观音乡',
+ 711420: '桃园市',
+ 711421: '龟山乡',
+ 711422: '八德市',
+ 711423: '大溪镇',
+ 711424: '复兴乡',
+ 711425: '大园乡',
+ 711426: '芦竹乡',
+ 711500: '苗栗县',
+ 711519: '竹南镇',
+ 711520: '头份镇',
+ 711521: '三湾乡',
+ 711522: '南庄乡',
+ 711523: '狮潭乡',
+ 711524: '后龙镇',
+ 711525: '通霄镇',
+ 711526: '苑里镇',
+ 711527: '苗栗市',
+ 711528: '造桥乡',
+ 711529: '头屋乡',
+ 711530: '公馆乡',
+ 711531: '大湖乡',
+ 711532: '泰安乡',
+ 711533: '铜锣乡',
+ 711534: '三义乡',
+ 711535: '西湖乡',
+ 711536: '卓兰镇',
+ 711700: '彰化县',
+ 711727: '彰化市',
+ 711728: '芬园乡',
+ 711729: '花坛乡',
+ 711730: '秀水乡',
+ 711731: '鹿港镇',
+ 711732: '福兴乡',
+ 711733: '线西乡',
+ 711734: '和美镇',
+ 711735: '伸港乡',
+ 711736: '员林镇',
+ 711737: '社头乡',
+ 711738: '永靖乡',
+ 711739: '埔心乡',
+ 711740: '溪湖镇',
+ 711741: '大村乡',
+ 711742: '埔盐乡',
+ 711743: '田中镇',
+ 711744: '北斗镇',
+ 711745: '田尾乡',
+ 711746: '埤头乡',
+ 711747: '溪州乡',
+ 711748: '竹塘乡',
+ 711749: '二林镇',
+ 711750: '大城乡',
+ 711751: '芳苑乡',
+ 711752: '二水乡',
+ 711900: '嘉义县',
+ 711919: '番路乡',
+ 711920: '梅山乡',
+ 711921: '竹崎乡',
+ 711922: '阿里山乡',
+ 711923: '中埔乡',
+ 711924: '大埔乡',
+ 711925: '水上乡',
+ 711926: '鹿草乡',
+ 711927: '太保市',
+ 711928: '朴子市',
+ 711929: '东石乡',
+ 711930: '六脚乡',
+ 711931: '新港乡',
+ 711932: '民雄乡',
+ 711933: '大林镇',
+ 711934: '溪口乡',
+ 711935: '义竹乡',
+ 711936: '布袋镇',
+ 712100: '云林县',
+ 712121: '斗南镇',
+ 712122: '大埤乡',
+ 712123: '虎尾镇',
+ 712124: '土库镇',
+ 712125: '褒忠乡',
+ 712126: '东势乡',
+ 712127: '台西乡',
+ 712128: '仑背乡',
+ 712129: '麦寮乡',
+ 712130: '斗六市',
+ 712131: '林内乡',
+ 712132: '古坑乡',
+ 712133: '莿桐乡',
+ 712134: '西螺镇',
+ 712135: '二仑乡',
+ 712136: '北港镇',
+ 712137: '水林乡',
+ 712138: '口湖乡',
+ 712139: '四湖乡',
+ 712140: '元长乡',
+ 712400: '屏东县',
+ 712434: '屏东市',
+ 712435: '三地门乡',
+ 712436: '雾台乡',
+ 712437: '玛家乡',
+ 712438: '九如乡',
+ 712439: '里港乡',
+ 712440: '高树乡',
+ 712441: '盐埔乡',
+ 712442: '长治乡',
+ 712443: '麟洛乡',
+ 712444: '竹田乡',
+ 712445: '内埔乡',
+ 712446: '万丹乡',
+ 712447: '潮州镇',
+ 712448: '泰武乡',
+ 712449: '来义乡',
+ 712450: '万峦乡',
+ 712451: '崁顶乡',
+ 712452: '新埤乡',
+ 712453: '南州乡',
+ 712454: '林边乡',
+ 712455: '东港镇',
+ 712456: '琉球乡',
+ 712457: '佳冬乡',
+ 712458: '新园乡',
+ 712459: '枋寮乡',
+ 712460: '枋山乡',
+ 712461: '春日乡',
+ 712462: '狮子乡',
+ 712463: '车城乡',
+ 712464: '牡丹乡',
+ 712465: '恒春镇',
+ 712466: '满州乡',
+ 712500: '台东县',
+ 712517: '台东市',
+ 712518: '绿岛乡',
+ 712519: '兰屿乡',
+ 712520: '延平乡',
+ 712521: '卑南乡',
+ 712522: '鹿野乡',
+ 712523: '关山镇',
+ 712524: '海端乡',
+ 712525: '池上乡',
+ 712526: '东河乡',
+ 712527: '成功镇',
+ 712528: '长滨乡',
+ 712529: '金峰乡',
+ 712530: '大武乡',
+ 712531: '达仁乡',
+ 712532: '太麻里乡',
+ 712600: '花莲县',
+ 712615: '花莲市',
+ 712616: '新城乡',
+ 712617: '太鲁阁',
+ 712618: '秀林乡',
+ 712619: '吉安乡',
+ 712620: '寿丰乡',
+ 712621: '凤林镇',
+ 712622: '光复乡',
+ 712623: '丰滨乡',
+ 712624: '瑞穗乡',
+ 712625: '万荣乡',
+ 712626: '玉里镇',
+ 712627: '卓溪乡',
+ 712628: '富里乡',
+ 712700: '澎湖县',
+ 712707: '马公市',
+ 712708: '西屿乡',
+ 712709: '望安乡',
+ 712710: '七美乡',
+ 712711: '白沙乡',
+ 712712: '湖西乡',
+ 712800: '连江县',
+ 712805: '南竿乡',
+ 712806: '北竿乡',
+ 712807: '莒光乡',
+ 712808: '东引乡',
+ 810000: '香港特别行政区',
+ 810100: '香港岛',
+ 810101: '中西区',
+ 810102: '湾仔',
+ 810103: '东区',
+ 810104: '南区',
+ 810200: '九龙',
+ 810201: '九龙城区',
+ 810202: '油尖旺区',
+ 810203: '深水埗区',
+ 810204: '黄大仙区',
+ 810205: '观塘区',
+ 810300: '新界',
+ 810301: '北区',
+ 810302: '大埔区',
+ 810303: '沙田区',
+ 810304: '西贡区',
+ 810305: '元朗区',
+ 810306: '屯门区',
+ 810307: '荃湾区',
+ 810308: '葵青区',
+ 810309: '离岛区',
+ 820000: '澳门特别行政区',
+ 820100: '澳门半岛',
+ 820200: '离岛',
+ 990000: '海外',
+ 990100: '海外',
+ };
+
+ // id pid/parentId name children
+ function tree(list) {
+ var mapped = {};
+ for (var i = 0, item; i < list.length; i++) {
+ item = list[i];
+ if (!item || !item.id) continue;
+ mapped[item.id] = item;
+ }
+
+ var result = [];
+ for (var ii = 0; ii < list.length; ii++) {
+ item = list[ii];
+
+ if (!item) continue;
+ /* jshint -W041 */
+ if (item.pid == undefined && item.parentId == undefined) {
+ result.push(item);
+ continue;
+ }
+ var parent = mapped[item.pid] || mapped[item.parentId];
+ if (!parent) continue;
+ if (!parent.children) parent.children = [];
+ parent.children.push(item);
+ }
+ return result;
+ }
+
+ var DICT_FIXED = (function () {
+ var fixed = [];
+ for (var id in DICT) {
+ var pid =
+ id.slice(2, 6) === '0000'
+ ? undefined
+ : id.slice(4, 6) == '00'
+ ? id.slice(0, 2) + '0000'
+ : id.slice(0, 4) + '00';
+ fixed.push({
+ id: id,
+ pid: pid,
+ name: DICT[id],
+ });
+ }
+ return tree(fixed);
+ })();
+
+ module.exports = DICT_FIXED;
+
+ /***/
+ },
+ /* 19 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## Miscellaneous
+ */
+ var DICT = __webpack_require__(18);
+ module.exports = {
+ // Dice
+ d4: function () {
+ return this.natural(1, 4);
+ },
+ d6: function () {
+ return this.natural(1, 6);
+ },
+ d8: function () {
+ return this.natural(1, 8);
+ },
+ d12: function () {
+ return this.natural(1, 12);
+ },
+ d20: function () {
+ return this.natural(1, 20);
+ },
+ d100: function () {
+ return this.natural(1, 100);
+ },
+ /*
+ 随机生成一个 GUID。
+
+ http://www.broofa.com/2008/09/javascript-uuid-function/
+ [UUID 规范](http://www.ietf.org/rfc/rfc4122.txt)
+ UUIDs (Universally Unique IDentifier)
+ GUIDs (Globally Unique IDentifier)
+ The formal definition of the UUID string representation is provided by the following ABNF [7]:
+ UUID = time-low "-" time-mid "-"
+ time-high-and-version "-"
+ clock-seq-and-reserved
+ clock-seq-low "-" node
+ time-low = 4hexOctet
+ time-mid = 2hexOctet
+ time-high-and-version = 2hexOctet
+ clock-seq-and-reserved = hexOctet
+ clock-seq-low = hexOctet
+ node = 6hexOctet
+ hexOctet = hexDigit hexDigit
+ hexDigit =
+ "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
+ "a" / "b" / "c" / "d" / "e" / "f" /
+ "A" / "B" / "C" / "D" / "E" / "F"
+
+ https://github.com/victorquinn/chancejs/blob/develop/chance.js#L1349
+ */
+ guid: function () {
+ var pool = 'abcdefABCDEF1234567890',
+ guid =
+ this.string(pool, 8) +
+ '-' +
+ this.string(pool, 4) +
+ '-' +
+ this.string(pool, 4) +
+ '-' +
+ this.string(pool, 4) +
+ '-' +
+ this.string(pool, 12);
+ return guid;
+ },
+ uuid: function () {
+ return this.guid();
+ },
+ /*
+ 随机生成一个 18 位身份证。
+
+ [身份证](http://baike.baidu.com/view/1697.htm#4)
+ 地址码 6 + 出生日期码 8 + 顺序码 3 + 校验码 1
+ [《中华人民共和国行政区划代码》国家标准(GB/T2260)](http://zhidao.baidu.com/question/1954561.html)
+ */
+ id: function () {
+ var id,
+ sum = 0,
+ rank = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'],
+ last = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
+
+ id = this.pick(DICT).id + this.date('yyyyMMdd') + this.string('number', 3);
+
+ for (var i = 0; i < id.length; i++) {
+ sum += id[i] * rank[i];
+ }
+ id += last[sum % 11];
+
+ return id;
+ },
+
+ /*
+ 生成一个全局的自增整数。
+ 类似自增主键(auto increment primary key)。
+ */
+ increment: (function () {
+ var key = 0;
+ return function (step) {
+ return (key += +step || 1); // step?
+ };
+ })(),
+ inc: function (step) {
+ return this.increment(step);
+ },
+ };
+
+ /***/
+ },
+ /* 20 */
+ /***/ function (module, exports, __webpack_require__) {
+ var Parser = __webpack_require__(21);
+ var Handler = __webpack_require__(22);
+ module.exports = {
+ Parser: Parser,
+ Handler: Handler,
+ };
+
+ /***/
+ },
+ /* 21 */
+ /***/ function (module, exports) {
+ // https://github.com/nuysoft/regexp
+ // forked from https://github.com/ForbesLindesay/regexp
+
+ function parse(n) {
+ if ('string' != typeof n) {
+ var l = new TypeError('The regexp to parse must be represented as a string.');
+ throw l;
+ }
+ return (index = 1), (cgs = {}), parser.parse(n);
+ }
+
+ function Token(n) {
+ (this.type = n), (this.offset = Token.offset()), (this.text = Token.text());
+ }
+
+ function Alternate(n, l) {
+ Token.call(this, 'alternate'), (this.left = n), (this.right = l);
+ }
+
+ function Match(n) {
+ Token.call(this, 'match'), (this.body = n.filter(Boolean));
+ }
+
+ function Group(n, l) {
+ Token.call(this, n), (this.body = l);
+ }
+
+ function CaptureGroup(n) {
+ Group.call(this, 'capture-group'),
+ (this.index = cgs[this.offset] || (cgs[this.offset] = index++)),
+ (this.body = n);
+ }
+
+ function Quantified(n, l) {
+ Token.call(this, 'quantified'), (this.body = n), (this.quantifier = l);
+ }
+
+ function Quantifier(n, l) {
+ Token.call(this, 'quantifier'), (this.min = n), (this.max = l), (this.greedy = !0);
+ }
+
+ function CharSet(n, l) {
+ Token.call(this, 'charset'), (this.invert = n), (this.body = l);
+ }
+
+ function CharacterRange(n, l) {
+ Token.call(this, 'range'), (this.start = n), (this.end = l);
+ }
+
+ function Literal(n) {
+ Token.call(this, 'literal'), (this.body = n), (this.escaped = this.body != this.text);
+ }
+
+ function Unicode(n) {
+ Token.call(this, 'unicode'), (this.code = n.toUpperCase());
+ }
+
+ function Hex(n) {
+ Token.call(this, 'hex'), (this.code = n.toUpperCase());
+ }
+
+ function Octal(n) {
+ Token.call(this, 'octal'), (this.code = n.toUpperCase());
+ }
+
+ function BackReference(n) {
+ Token.call(this, 'back-reference'), (this.code = n.toUpperCase());
+ }
+
+ function ControlCharacter(n) {
+ Token.call(this, 'control-character'), (this.code = n.toUpperCase());
+ }
+
+ var parser = (function () {
+ function n(n, l) {
+ function u() {
+ this.constructor = n;
+ }
+ (u.prototype = l.prototype), (n.prototype = new u());
+ }
+ function l(n, l, u, t, r) {
+ function e(n, l) {
+ function u(n) {
+ function l(n) {
+ return n.charCodeAt(0).toString(16).toUpperCase();
+ }
+ return n
+ .replace(/\\/g, '\\\\')
+ .replace(/"/g, '\\"')
+ .replace(/\x08/g, '\\b')
+ .replace(/\t/g, '\\t')
+ .replace(/\n/g, '\\n')
+ .replace(/\f/g, '\\f')
+ .replace(/\r/g, '\\r')
+ .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function (n) {
+ return '\\x0' + l(n);
+ })
+ .replace(/[\x10-\x1F\x80-\xFF]/g, function (n) {
+ return '\\x' + l(n);
+ })
+ .replace(/[\u0180-\u0FFF]/g, function (n) {
+ return '\\u0' + l(n);
+ })
+ .replace(/[\u1080-\uFFFF]/g, function (n) {
+ return '\\u' + l(n);
+ });
+ }
+ var t, r;
+ switch (n.length) {
+ case 0:
+ t = 'end of input';
+ break;
+
+ case 1:
+ t = n[0];
+ break;
+
+ default:
+ t = n.slice(0, -1).join(', ') + ' or ' + n[n.length - 1];
+ }
+ return (r = l ? '"' + u(l) + '"' : 'end of input'), 'Expected ' + t + ' but ' + r + ' found.';
+ }
+ (this.expected = n),
+ (this.found = l),
+ (this.offset = u),
+ (this.line = t),
+ (this.column = r),
+ (this.name = 'SyntaxError'),
+ (this.message = e(n, l));
+ }
+ function u(n) {
+ function u() {
+ return n.substring(Lt, qt);
+ }
+ function t() {
+ return Lt;
+ }
+ function r(l) {
+ function u(l, u, t) {
+ var r, e;
+ for (r = u; t > r; r++)
+ (e = n.charAt(r)),
+ '\n' === e
+ ? (l.seenCR || l.line++, (l.column = 1), (l.seenCR = !1))
+ : '\r' === e || '\u2028' === e || '\u2029' === e
+ ? (l.line++, (l.column = 1), (l.seenCR = !0))
+ : (l.column++, (l.seenCR = !1));
+ }
+ return (
+ Mt !== l &&
+ (Mt > l &&
+ ((Mt = 0),
+ (Dt = {
+ line: 1,
+ column: 1,
+ seenCR: !1,
+ })),
+ u(Dt, Mt, l),
+ (Mt = l)),
+ Dt
+ );
+ }
+ function e(n) {
+ Ht > qt || (qt > Ht && ((Ht = qt), (Ot = [])), Ot.push(n));
+ }
+ function o(n) {
+ var l = 0;
+ for (n.sort(); l < n.length; ) n[l - 1] === n[l] ? n.splice(l, 1) : l++;
+ }
+ function c() {
+ var l, u, t, r, o;
+ return (
+ (l = qt),
+ (u = i()),
+ null !== u
+ ? ((t = qt),
+ 124 === n.charCodeAt(qt) ? ((r = fl), qt++) : ((r = null), 0 === Wt && e(sl)),
+ null !== r
+ ? ((o = c()), null !== o ? ((r = [r, o]), (t = r)) : ((qt = t), (t = il)))
+ : ((qt = t), (t = il)),
+ null === t && (t = al),
+ null !== t
+ ? ((Lt = l), (u = hl(u, t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function i() {
+ var n, l, u, t, r;
+ if (((n = qt), (l = f()), null === l && (l = al), null !== l))
+ if (((u = qt), Wt++, (t = d()), Wt--, null === t ? (u = al) : ((qt = u), (u = il)), null !== u)) {
+ for (t = [], r = h(), null === r && (r = a()); null !== r; )
+ t.push(r), (r = h()), null === r && (r = a());
+ null !== t
+ ? ((r = s()),
+ null === r && (r = al),
+ null !== r
+ ? ((Lt = n), (l = dl(l, t, r)), null === l ? ((qt = n), (n = l)) : (n = l))
+ : ((qt = n), (n = il)))
+ : ((qt = n), (n = il));
+ } else (qt = n), (n = il);
+ else (qt = n), (n = il);
+ return n;
+ }
+ function a() {
+ var n;
+ return (n = x()), null === n && ((n = Q()), null === n && (n = B())), n;
+ }
+ function f() {
+ var l, u;
+ return (
+ (l = qt),
+ 94 === n.charCodeAt(qt) ? ((u = pl), qt++) : ((u = null), 0 === Wt && e(vl)),
+ null !== u && ((Lt = l), (u = wl())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function s() {
+ var l, u;
+ return (
+ (l = qt),
+ 36 === n.charCodeAt(qt) ? ((u = Al), qt++) : ((u = null), 0 === Wt && e(Cl)),
+ null !== u && ((Lt = l), (u = gl())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function h() {
+ var n, l, u;
+ return (
+ (n = qt),
+ (l = a()),
+ null !== l
+ ? ((u = d()),
+ null !== u
+ ? ((Lt = n), (l = bl(l, u)), null === l ? ((qt = n), (n = l)) : (n = l))
+ : ((qt = n), (n = il)))
+ : ((qt = n), (n = il)),
+ n
+ );
+ }
+ function d() {
+ var n, l, u;
+ return (
+ Wt++,
+ (n = qt),
+ (l = p()),
+ null !== l
+ ? ((u = k()),
+ null === u && (u = al),
+ null !== u
+ ? ((Lt = n), (l = Tl(l, u)), null === l ? ((qt = n), (n = l)) : (n = l))
+ : ((qt = n), (n = il)))
+ : ((qt = n), (n = il)),
+ Wt--,
+ null === n && ((l = null), 0 === Wt && e(kl)),
+ n
+ );
+ }
+ function p() {
+ var n;
+ return (
+ (n = v()),
+ null === n &&
+ ((n = w()),
+ null === n &&
+ ((n = A()), null === n && ((n = C()), null === n && ((n = g()), null === n && (n = b()))))),
+ n
+ );
+ }
+ function v() {
+ var l, u, t, r, o, c;
+ return (
+ (l = qt),
+ 123 === n.charCodeAt(qt) ? ((u = xl), qt++) : ((u = null), 0 === Wt && e(yl)),
+ null !== u
+ ? ((t = T()),
+ null !== t
+ ? (44 === n.charCodeAt(qt) ? ((r = ml), qt++) : ((r = null), 0 === Wt && e(Rl)),
+ null !== r
+ ? ((o = T()),
+ null !== o
+ ? (125 === n.charCodeAt(qt) ? ((c = Fl), qt++) : ((c = null), 0 === Wt && e(Ql)),
+ null !== c
+ ? ((Lt = l), (u = Sl(t, o)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function w() {
+ var l, u, t, r;
+ return (
+ (l = qt),
+ 123 === n.charCodeAt(qt) ? ((u = xl), qt++) : ((u = null), 0 === Wt && e(yl)),
+ null !== u
+ ? ((t = T()),
+ null !== t
+ ? (n.substr(qt, 2) === Ul ? ((r = Ul), (qt += 2)) : ((r = null), 0 === Wt && e(El)),
+ null !== r
+ ? ((Lt = l), (u = Gl(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function A() {
+ var l, u, t, r;
+ return (
+ (l = qt),
+ 123 === n.charCodeAt(qt) ? ((u = xl), qt++) : ((u = null), 0 === Wt && e(yl)),
+ null !== u
+ ? ((t = T()),
+ null !== t
+ ? (125 === n.charCodeAt(qt) ? ((r = Fl), qt++) : ((r = null), 0 === Wt && e(Ql)),
+ null !== r
+ ? ((Lt = l), (u = Bl(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function C() {
+ var l, u;
+ return (
+ (l = qt),
+ 43 === n.charCodeAt(qt) ? ((u = jl), qt++) : ((u = null), 0 === Wt && e($l)),
+ null !== u && ((Lt = l), (u = ql())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function g() {
+ var l, u;
+ return (
+ (l = qt),
+ 42 === n.charCodeAt(qt) ? ((u = Ll), qt++) : ((u = null), 0 === Wt && e(Ml)),
+ null !== u && ((Lt = l), (u = Dl())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function b() {
+ var l, u;
+ return (
+ (l = qt),
+ 63 === n.charCodeAt(qt) ? ((u = Hl), qt++) : ((u = null), 0 === Wt && e(Ol)),
+ null !== u && ((Lt = l), (u = Wl())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function k() {
+ var l;
+ return 63 === n.charCodeAt(qt) ? ((l = Hl), qt++) : ((l = null), 0 === Wt && e(Ol)), l;
+ }
+ function T() {
+ var l, u, t;
+ if (
+ ((l = qt),
+ (u = []),
+ zl.test(n.charAt(qt)) ? ((t = n.charAt(qt)), qt++) : ((t = null), 0 === Wt && e(Il)),
+ null !== t)
+ )
+ for (; null !== t; )
+ u.push(t), zl.test(n.charAt(qt)) ? ((t = n.charAt(qt)), qt++) : ((t = null), 0 === Wt && e(Il));
+ else u = il;
+ return null !== u && ((Lt = l), (u = Jl(u))), null === u ? ((qt = l), (l = u)) : (l = u), l;
+ }
+ function x() {
+ var l, u, t, r;
+ return (
+ (l = qt),
+ 40 === n.charCodeAt(qt) ? ((u = Kl), qt++) : ((u = null), 0 === Wt && e(Nl)),
+ null !== u
+ ? ((t = R()),
+ null === t && ((t = F()), null === t && ((t = m()), null === t && (t = y()))),
+ null !== t
+ ? (41 === n.charCodeAt(qt) ? ((r = Pl), qt++) : ((r = null), 0 === Wt && e(Vl)),
+ null !== r
+ ? ((Lt = l), (u = Xl(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function y() {
+ var n, l;
+ return (
+ (n = qt),
+ (l = c()),
+ null !== l && ((Lt = n), (l = Yl(l))),
+ null === l ? ((qt = n), (n = l)) : (n = l),
+ n
+ );
+ }
+ function m() {
+ var l, u, t;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Zl ? ((u = Zl), (qt += 2)) : ((u = null), 0 === Wt && e(_l)),
+ null !== u
+ ? ((t = c()),
+ null !== t
+ ? ((Lt = l), (u = nu(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function R() {
+ var l, u, t;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === lu ? ((u = lu), (qt += 2)) : ((u = null), 0 === Wt && e(uu)),
+ null !== u
+ ? ((t = c()),
+ null !== t
+ ? ((Lt = l), (u = tu(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function F() {
+ var l, u, t;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === ru ? ((u = ru), (qt += 2)) : ((u = null), 0 === Wt && e(eu)),
+ null !== u
+ ? ((t = c()),
+ null !== t
+ ? ((Lt = l), (u = ou(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function Q() {
+ var l, u, t, r, o;
+ if (
+ (Wt++,
+ (l = qt),
+ 91 === n.charCodeAt(qt) ? ((u = iu), qt++) : ((u = null), 0 === Wt && e(au)),
+ null !== u)
+ )
+ if (
+ (94 === n.charCodeAt(qt) ? ((t = pl), qt++) : ((t = null), 0 === Wt && e(vl)),
+ null === t && (t = al),
+ null !== t)
+ ) {
+ for (r = [], o = S(), null === o && (o = U()); null !== o; )
+ r.push(o), (o = S()), null === o && (o = U());
+ null !== r
+ ? (93 === n.charCodeAt(qt) ? ((o = fu), qt++) : ((o = null), 0 === Wt && e(su)),
+ null !== o
+ ? ((Lt = l), (u = hu(t, r)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il));
+ } else (qt = l), (l = il);
+ else (qt = l), (l = il);
+ return Wt--, null === l && ((u = null), 0 === Wt && e(cu)), l;
+ }
+ function S() {
+ var l, u, t, r;
+ return (
+ Wt++,
+ (l = qt),
+ (u = U()),
+ null !== u
+ ? (45 === n.charCodeAt(qt) ? ((t = pu), qt++) : ((t = null), 0 === Wt && e(vu)),
+ null !== t
+ ? ((r = U()),
+ null !== r
+ ? ((Lt = l), (u = wu(u, r)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ Wt--,
+ null === l && ((u = null), 0 === Wt && e(du)),
+ l
+ );
+ }
+ function U() {
+ var n, l;
+ return Wt++, (n = G()), null === n && (n = E()), Wt--, null === n && ((l = null), 0 === Wt && e(Au)), n;
+ }
+ function E() {
+ var l, u;
+ return (
+ (l = qt),
+ Cu.test(n.charAt(qt)) ? ((u = n.charAt(qt)), qt++) : ((u = null), 0 === Wt && e(gu)),
+ null !== u && ((Lt = l), (u = bu(u))),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function G() {
+ var n;
+ return (
+ (n = L()),
+ null === n &&
+ ((n = Y()),
+ null === n &&
+ ((n = H()),
+ null === n &&
+ ((n = O()),
+ null === n &&
+ ((n = W()),
+ null === n &&
+ ((n = z()),
+ null === n &&
+ ((n = I()),
+ null === n &&
+ ((n = J()),
+ null === n &&
+ ((n = K()),
+ null === n &&
+ ((n = N()),
+ null === n &&
+ ((n = P()),
+ null === n &&
+ ((n = V()),
+ null === n &&
+ ((n = X()),
+ null === n &&
+ ((n = _()),
+ null === n &&
+ ((n = nl()),
+ null === n &&
+ ((n = ll()),
+ null === n && ((n = ul()), null === n && (n = tl()))))))))))))))))),
+ n
+ );
+ }
+ function B() {
+ var n;
+ return (n = j()), null === n && ((n = q()), null === n && (n = $())), n;
+ }
+ function j() {
+ var l, u;
+ return (
+ (l = qt),
+ 46 === n.charCodeAt(qt) ? ((u = ku), qt++) : ((u = null), 0 === Wt && e(Tu)),
+ null !== u && ((Lt = l), (u = xu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function $() {
+ var l, u;
+ return (
+ Wt++,
+ (l = qt),
+ mu.test(n.charAt(qt)) ? ((u = n.charAt(qt)), qt++) : ((u = null), 0 === Wt && e(Ru)),
+ null !== u && ((Lt = l), (u = bu(u))),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ Wt--,
+ null === l && ((u = null), 0 === Wt && e(yu)),
+ l
+ );
+ }
+ function q() {
+ var n;
+ return (
+ (n = M()),
+ null === n &&
+ ((n = D()),
+ null === n &&
+ ((n = Y()),
+ null === n &&
+ ((n = H()),
+ null === n &&
+ ((n = O()),
+ null === n &&
+ ((n = W()),
+ null === n &&
+ ((n = z()),
+ null === n &&
+ ((n = I()),
+ null === n &&
+ ((n = J()),
+ null === n &&
+ ((n = K()),
+ null === n &&
+ ((n = N()),
+ null === n &&
+ ((n = P()),
+ null === n &&
+ ((n = V()),
+ null === n &&
+ ((n = X()),
+ null === n &&
+ ((n = Z()),
+ null === n &&
+ ((n = _()),
+ null === n &&
+ ((n = nl()),
+ null === n &&
+ ((n = ll()),
+ null === n &&
+ ((n = ul()), null === n && (n = tl()))))))))))))))))))),
+ n
+ );
+ }
+ function L() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Fu ? ((u = Fu), (qt += 2)) : ((u = null), 0 === Wt && e(Qu)),
+ null !== u && ((Lt = l), (u = Su())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function M() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Fu ? ((u = Fu), (qt += 2)) : ((u = null), 0 === Wt && e(Qu)),
+ null !== u && ((Lt = l), (u = Uu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function D() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Eu ? ((u = Eu), (qt += 2)) : ((u = null), 0 === Wt && e(Gu)),
+ null !== u && ((Lt = l), (u = Bu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function H() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === ju ? ((u = ju), (qt += 2)) : ((u = null), 0 === Wt && e($u)),
+ null !== u && ((Lt = l), (u = qu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function O() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Lu ? ((u = Lu), (qt += 2)) : ((u = null), 0 === Wt && e(Mu)),
+ null !== u && ((Lt = l), (u = Du())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function W() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Hu ? ((u = Hu), (qt += 2)) : ((u = null), 0 === Wt && e(Ou)),
+ null !== u && ((Lt = l), (u = Wu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function z() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === zu ? ((u = zu), (qt += 2)) : ((u = null), 0 === Wt && e(Iu)),
+ null !== u && ((Lt = l), (u = Ju())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function I() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Ku ? ((u = Ku), (qt += 2)) : ((u = null), 0 === Wt && e(Nu)),
+ null !== u && ((Lt = l), (u = Pu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function J() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Vu ? ((u = Vu), (qt += 2)) : ((u = null), 0 === Wt && e(Xu)),
+ null !== u && ((Lt = l), (u = Yu())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function K() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Zu ? ((u = Zu), (qt += 2)) : ((u = null), 0 === Wt && e(_u)),
+ null !== u && ((Lt = l), (u = nt())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function N() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === lt ? ((u = lt), (qt += 2)) : ((u = null), 0 === Wt && e(ut)),
+ null !== u && ((Lt = l), (u = tt())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function P() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === rt ? ((u = rt), (qt += 2)) : ((u = null), 0 === Wt && e(et)),
+ null !== u && ((Lt = l), (u = ot())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function V() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === ct ? ((u = ct), (qt += 2)) : ((u = null), 0 === Wt && e(it)),
+ null !== u && ((Lt = l), (u = at())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function X() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === ft ? ((u = ft), (qt += 2)) : ((u = null), 0 === Wt && e(st)),
+ null !== u && ((Lt = l), (u = ht())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function Y() {
+ var l, u, t;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === dt ? ((u = dt), (qt += 2)) : ((u = null), 0 === Wt && e(pt)),
+ null !== u
+ ? (n.length > qt ? ((t = n.charAt(qt)), qt++) : ((t = null), 0 === Wt && e(vt)),
+ null !== t
+ ? ((Lt = l), (u = wt(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function Z() {
+ var l, u, t;
+ return (
+ (l = qt),
+ 92 === n.charCodeAt(qt) ? ((u = At), qt++) : ((u = null), 0 === Wt && e(Ct)),
+ null !== u
+ ? (gt.test(n.charAt(qt)) ? ((t = n.charAt(qt)), qt++) : ((t = null), 0 === Wt && e(bt)),
+ null !== t
+ ? ((Lt = l), (u = kt(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ function _() {
+ var l, u, t, r;
+ if (
+ ((l = qt),
+ n.substr(qt, 2) === Tt ? ((u = Tt), (qt += 2)) : ((u = null), 0 === Wt && e(xt)),
+ null !== u)
+ ) {
+ if (
+ ((t = []),
+ yt.test(n.charAt(qt)) ? ((r = n.charAt(qt)), qt++) : ((r = null), 0 === Wt && e(mt)),
+ null !== r)
+ )
+ for (; null !== r; )
+ t.push(r), yt.test(n.charAt(qt)) ? ((r = n.charAt(qt)), qt++) : ((r = null), 0 === Wt && e(mt));
+ else t = il;
+ null !== t
+ ? ((Lt = l), (u = Rt(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il));
+ } else (qt = l), (l = il);
+ return l;
+ }
+ function nl() {
+ var l, u, t, r;
+ if (
+ ((l = qt),
+ n.substr(qt, 2) === Ft ? ((u = Ft), (qt += 2)) : ((u = null), 0 === Wt && e(Qt)),
+ null !== u)
+ ) {
+ if (
+ ((t = []),
+ St.test(n.charAt(qt)) ? ((r = n.charAt(qt)), qt++) : ((r = null), 0 === Wt && e(Ut)),
+ null !== r)
+ )
+ for (; null !== r; )
+ t.push(r), St.test(n.charAt(qt)) ? ((r = n.charAt(qt)), qt++) : ((r = null), 0 === Wt && e(Ut));
+ else t = il;
+ null !== t
+ ? ((Lt = l), (u = Et(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il));
+ } else (qt = l), (l = il);
+ return l;
+ }
+ function ll() {
+ var l, u, t, r;
+ if (
+ ((l = qt),
+ n.substr(qt, 2) === Gt ? ((u = Gt), (qt += 2)) : ((u = null), 0 === Wt && e(Bt)),
+ null !== u)
+ ) {
+ if (
+ ((t = []),
+ St.test(n.charAt(qt)) ? ((r = n.charAt(qt)), qt++) : ((r = null), 0 === Wt && e(Ut)),
+ null !== r)
+ )
+ for (; null !== r; )
+ t.push(r), St.test(n.charAt(qt)) ? ((r = n.charAt(qt)), qt++) : ((r = null), 0 === Wt && e(Ut));
+ else t = il;
+ null !== t
+ ? ((Lt = l), (u = jt(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il));
+ } else (qt = l), (l = il);
+ return l;
+ }
+ function ul() {
+ var l, u;
+ return (
+ (l = qt),
+ n.substr(qt, 2) === Tt ? ((u = Tt), (qt += 2)) : ((u = null), 0 === Wt && e(xt)),
+ null !== u && ((Lt = l), (u = $t())),
+ null === u ? ((qt = l), (l = u)) : (l = u),
+ l
+ );
+ }
+ function tl() {
+ var l, u, t;
+ return (
+ (l = qt),
+ 92 === n.charCodeAt(qt) ? ((u = At), qt++) : ((u = null), 0 === Wt && e(Ct)),
+ null !== u
+ ? (n.length > qt ? ((t = n.charAt(qt)), qt++) : ((t = null), 0 === Wt && e(vt)),
+ null !== t
+ ? ((Lt = l), (u = bu(t)), null === u ? ((qt = l), (l = u)) : (l = u))
+ : ((qt = l), (l = il)))
+ : ((qt = l), (l = il)),
+ l
+ );
+ }
+ var rl,
+ el = arguments.length > 1 ? arguments[1] : {},
+ ol = {
+ regexp: c,
+ },
+ cl = c,
+ il = null,
+ al = '',
+ fl = '|',
+ sl = '"|"',
+ hl = function (n, l) {
+ return l ? new Alternate(n, l[1]) : n;
+ },
+ dl = function (n, l, u) {
+ return new Match([n].concat(l).concat([u]));
+ },
+ pl = '^',
+ vl = '"^"',
+ wl = function () {
+ return new Token('start');
+ },
+ Al = '$',
+ Cl = '"$"',
+ gl = function () {
+ return new Token('end');
+ },
+ bl = function (n, l) {
+ return new Quantified(n, l);
+ },
+ kl = 'Quantifier',
+ Tl = function (n, l) {
+ return l && (n.greedy = !1), n;
+ },
+ xl = '{',
+ yl = '"{"',
+ ml = ',',
+ Rl = '","',
+ Fl = '}',
+ Ql = '"}"',
+ Sl = function (n, l) {
+ return new Quantifier(n, l);
+ },
+ Ul = ',}',
+ El = '",}"',
+ Gl = function (n) {
+ return new Quantifier(n, 1 / 0);
+ },
+ Bl = function (n) {
+ return new Quantifier(n, n);
+ },
+ jl = '+',
+ $l = '"+"',
+ ql = function () {
+ return new Quantifier(1, 1 / 0);
+ },
+ Ll = '*',
+ Ml = '"*"',
+ Dl = function () {
+ return new Quantifier(0, 1 / 0);
+ },
+ Hl = '?',
+ Ol = '"?"',
+ Wl = function () {
+ return new Quantifier(0, 1);
+ },
+ zl = /^[0-9]/,
+ Il = '[0-9]',
+ Jl = function (n) {
+ return +n.join('');
+ },
+ Kl = '(',
+ Nl = '"("',
+ Pl = ')',
+ Vl = '")"',
+ Xl = function (n) {
+ return n;
+ },
+ Yl = function (n) {
+ return new CaptureGroup(n);
+ },
+ Zl = '?:',
+ _l = '"?:"',
+ nu = function (n) {
+ return new Group('non-capture-group', n);
+ },
+ lu = '?=',
+ uu = '"?="',
+ tu = function (n) {
+ return new Group('positive-lookahead', n);
+ },
+ ru = '?!',
+ eu = '"?!"',
+ ou = function (n) {
+ return new Group('negative-lookahead', n);
+ },
+ cu = 'CharacterSet',
+ iu = '[',
+ au = '"["',
+ fu = ']',
+ su = '"]"',
+ hu = function (n, l) {
+ return new CharSet(!!n, l);
+ },
+ du = 'CharacterRange',
+ pu = '-',
+ vu = '"-"',
+ wu = function (n, l) {
+ return new CharacterRange(n, l);
+ },
+ Au = 'Character',
+ Cu = /^[^\\\]]/,
+ gu = '[^\\\\\\]]',
+ bu = function (n) {
+ return new Literal(n);
+ },
+ ku = '.',
+ Tu = '"."',
+ xu = function () {
+ return new Token('any-character');
+ },
+ yu = 'Literal',
+ mu = /^[^|\\\/.[()?+*$\^]/,
+ Ru = '[^|\\\\\\/.[()?+*$\\^]',
+ Fu = '\\b',
+ Qu = '"\\\\b"',
+ Su = function () {
+ return new Token('backspace');
+ },
+ Uu = function () {
+ return new Token('word-boundary');
+ },
+ Eu = '\\B',
+ Gu = '"\\\\B"',
+ Bu = function () {
+ return new Token('non-word-boundary');
+ },
+ ju = '\\d',
+ $u = '"\\\\d"',
+ qu = function () {
+ return new Token('digit');
+ },
+ Lu = '\\D',
+ Mu = '"\\\\D"',
+ Du = function () {
+ return new Token('non-digit');
+ },
+ Hu = '\\f',
+ Ou = '"\\\\f"',
+ Wu = function () {
+ return new Token('form-feed');
+ },
+ zu = '\\n',
+ Iu = '"\\\\n"',
+ Ju = function () {
+ return new Token('line-feed');
+ },
+ Ku = '\\r',
+ Nu = '"\\\\r"',
+ Pu = function () {
+ return new Token('carriage-return');
+ },
+ Vu = '\\s',
+ Xu = '"\\\\s"',
+ Yu = function () {
+ return new Token('white-space');
+ },
+ Zu = '\\S',
+ _u = '"\\\\S"',
+ nt = function () {
+ return new Token('non-white-space');
+ },
+ lt = '\\t',
+ ut = '"\\\\t"',
+ tt = function () {
+ return new Token('tab');
+ },
+ rt = '\\v',
+ et = '"\\\\v"',
+ ot = function () {
+ return new Token('vertical-tab');
+ },
+ ct = '\\w',
+ it = '"\\\\w"',
+ at = function () {
+ return new Token('word');
+ },
+ ft = '\\W',
+ st = '"\\\\W"',
+ ht = function () {
+ return new Token('non-word');
+ },
+ dt = '\\c',
+ pt = '"\\\\c"',
+ vt = 'any character',
+ wt = function (n) {
+ return new ControlCharacter(n);
+ },
+ At = '\\',
+ Ct = '"\\\\"',
+ gt = /^[1-9]/,
+ bt = '[1-9]',
+ kt = function (n) {
+ return new BackReference(n);
+ },
+ Tt = '\\0',
+ xt = '"\\\\0"',
+ yt = /^[0-7]/,
+ mt = '[0-7]',
+ Rt = function (n) {
+ return new Octal(n.join(''));
+ },
+ Ft = '\\x',
+ Qt = '"\\\\x"',
+ St = /^[0-9a-fA-F]/,
+ Ut = '[0-9a-fA-F]',
+ Et = function (n) {
+ return new Hex(n.join(''));
+ },
+ Gt = '\\u',
+ Bt = '"\\\\u"',
+ jt = function (n) {
+ return new Unicode(n.join(''));
+ },
+ $t = function () {
+ return new Token('null-character');
+ },
+ qt = 0,
+ Lt = 0,
+ Mt = 0,
+ Dt = {
+ line: 1,
+ column: 1,
+ seenCR: !1,
+ },
+ Ht = 0,
+ Ot = [],
+ Wt = 0;
+ if ('startRule' in el) {
+ if (!(el.startRule in ol)) throw new Error('Can\'t start parsing from rule "' + el.startRule + '".');
+ cl = ol[el.startRule];
+ }
+ if (((Token.offset = t), (Token.text = u), (rl = cl()), null !== rl && qt === n.length)) return rl;
+ throw (
+ (o(Ot),
+ (Lt = Math.max(qt, Ht)),
+ new l(Ot, Lt < n.length ? n.charAt(Lt) : null, Lt, r(Lt).line, r(Lt).column))
+ );
+ }
+ return (
+ n(l, Error),
+ {
+ SyntaxError: l,
+ parse: u,
+ }
+ );
+ })(),
+ index = 1,
+ cgs = {};
+
+ module.exports = parser;
+
+ /***/
+ },
+ /* 22 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## RegExp Handler
+
+ https://github.com/ForbesLindesay/regexp
+ https://github.com/dmajda/pegjs
+ http://www.regexper.com/
+
+ 每个节点的结构
+ {
+ type: '',
+ offset: number,
+ text: '',
+ body: {},
+ escaped: true/false
+ }
+
+ type 可选值
+ alternate | 选择
+ match 匹配
+ capture-group () 捕获组
+ non-capture-group (?:...) 非捕获组
+ positive-lookahead (?=p) 零宽正向先行断言
+ negative-lookahead (?!p) 零宽负向先行断言
+ quantified a* 重复节点
+ quantifier * 量词
+ charset [] 字符集
+ range {m, n} 范围
+ literal a 直接量字符
+ unicode \uxxxx Unicode
+ hex \x 十六进制
+ octal 八进制
+ back-reference \n 反向引用
+ control-character \cX 控制字符
+
+ // Token
+ start ^ 开头
+ end $ 结尾
+ any-character . 任意字符
+ backspace [\b] 退格直接量
+ word-boundary \b 单词边界
+ non-word-boundary \B 非单词边界
+ digit \d ASCII 数字,[0-9]
+ non-digit \D 非 ASCII 数字,[^0-9]
+ form-feed \f 换页符
+ line-feed \n 换行符
+ carriage-return \r 回车符
+ white-space \s 空白符
+ non-white-space \S 非空白符
+ tab \t 制表符
+ vertical-tab \v 垂直制表符
+ word \w ASCII 字符,[a-zA-Z0-9]
+ non-word \W 非 ASCII 字符,[^a-zA-Z0-9]
+ null-character \o NUL 字符
+ */
+
+ var Util = __webpack_require__(3);
+ var Random = __webpack_require__(5);
+ /*
+
+ */
+ var Handler = {
+ extend: Util.extend,
+ };
+
+ // http://en.wikipedia.org/wiki/ASCII#ASCII_printable_code_chart
+ /*var ASCII_CONTROL_CODE_CHART = {
+ '@': ['\u0000'],
+ A: ['\u0001'],
+ B: ['\u0002'],
+ C: ['\u0003'],
+ D: ['\u0004'],
+ E: ['\u0005'],
+ F: ['\u0006'],
+ G: ['\u0007', '\a'],
+ H: ['\u0008', '\b'],
+ I: ['\u0009', '\t'],
+ J: ['\u000A', '\n'],
+ K: ['\u000B', '\v'],
+ L: ['\u000C', '\f'],
+ M: ['\u000D', '\r'],
+ N: ['\u000E'],
+ O: ['\u000F'],
+ P: ['\u0010'],
+ Q: ['\u0011'],
+ R: ['\u0012'],
+ S: ['\u0013'],
+ T: ['\u0014'],
+ U: ['\u0015'],
+ V: ['\u0016'],
+ W: ['\u0017'],
+ X: ['\u0018'],
+ Y: ['\u0019'],
+ Z: ['\u001A'],
+ '[': ['\u001B', '\e'],
+ '\\': ['\u001C'],
+ ']': ['\u001D'],
+ '^': ['\u001E'],
+ '_': ['\u001F']
+ }*/
+
+ // ASCII printable code chart
+ // var LOWER = 'abcdefghijklmnopqrstuvwxyz'
+ // var UPPER = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ // var NUMBER = '0123456789'
+ // var SYMBOL = ' !"#$%&\'()*+,-./' + ':;<=>?@' + '[\\]^_`' + '{|}~'
+ var LOWER = ascii(97, 122);
+ var UPPER = ascii(65, 90);
+ var NUMBER = ascii(48, 57);
+ var OTHER = ascii(32, 47) + ascii(58, 64) + ascii(91, 96) + ascii(123, 126); // 排除 95 _ ascii(91, 94) + ascii(96, 96)
+ var PRINTABLE = ascii(32, 126);
+ var SPACE = ' \f\n\r\t\v\u00A0\u2028\u2029';
+ var CHARACTER_CLASSES = {
+ '\\w': LOWER + UPPER + NUMBER + '_', // ascii(95, 95)
+ '\\W': OTHER.replace('_', ''),
+ '\\s': SPACE,
+ '\\S': (function () {
+ var result = PRINTABLE;
+ for (var i = 0; i < SPACE.length; i++) {
+ result = result.replace(SPACE[i], '');
+ }
+ return result;
+ })(),
+ '\\d': NUMBER,
+ '\\D': LOWER + UPPER + OTHER,
+ };
+
+ function ascii(from, to) {
+ var result = '';
+ for (var i = from; i <= to; i++) {
+ result += String.fromCharCode(i);
+ }
+ return result;
+ }
+
+ // var ast = RegExpParser.parse(regexp.source)
+ Handler.gen = function (node, result, cache) {
+ cache = cache || {
+ guid: 1,
+ };
+ return Handler[node.type] ? Handler[node.type](node, result, cache) : Handler.token(node, result, cache);
+ };
+
+ Handler.extend({
+ /* jshint unused:false */
+ token: function (node, result, cache) {
+ switch (node.type) {
+ case 'start':
+ case 'end':
+ return '';
+ case 'any-character':
+ return Random.character();
+ case 'backspace':
+ return '';
+ case 'word-boundary': // TODO
+ return '';
+ case 'non-word-boundary': // TODO
+ break;
+ case 'digit':
+ return Random.pick(NUMBER.split(''));
+ case 'non-digit':
+ return Random.pick((LOWER + UPPER + OTHER).split(''));
+ case 'form-feed':
+ break;
+ case 'line-feed':
+ return node.body || node.text;
+ case 'carriage-return':
+ break;
+ case 'white-space':
+ return Random.pick(SPACE.split(''));
+ case 'non-white-space':
+ return Random.pick((LOWER + UPPER + NUMBER).split(''));
+ case 'tab':
+ break;
+ case 'vertical-tab':
+ break;
+ case 'word': // \w [a-zA-Z0-9]
+ return Random.pick((LOWER + UPPER + NUMBER).split(''));
+ case 'non-word': // \W [^a-zA-Z0-9]
+ return Random.pick(OTHER.replace('_', '').split(''));
+ case 'null-character':
+ break;
+ }
+ return node.body || node.text;
+ },
+ /*
+ {
+ type: 'alternate',
+ offset: 0,
+ text: '',
+ left: {
+ boyd: []
+ },
+ right: {
+ boyd: []
+ }
+ }
+ */
+ alternate: function (node, result, cache) {
+ // node.left/right {}
+ return this.gen(Random.boolean() ? node.left : node.right, result, cache);
+ },
+ /*
+ {
+ type: 'match',
+ offset: 0,
+ text: '',
+ body: []
+ }
+ */
+ match: function (node, result, cache) {
+ result = '';
+ // node.body []
+ for (var i = 0; i < node.body.length; i++) {
+ result += this.gen(node.body[i], result, cache);
+ }
+ return result;
+ },
+ // ()
+ 'capture-group': function (node, result, cache) {
+ // node.body {}
+ result = this.gen(node.body, result, cache);
+ cache[cache.guid++] = result;
+ return result;
+ },
+ // (?:...)
+ 'non-capture-group': function (node, result, cache) {
+ // node.body {}
+ return this.gen(node.body, result, cache);
+ },
+ // (?=p)
+ 'positive-lookahead': function (node, result, cache) {
+ // node.body
+ return this.gen(node.body, result, cache);
+ },
+ // (?!p)
+ 'negative-lookahead': function (node, result, cache) {
+ // node.body
+ return '';
+ },
+ /*
+ {
+ type: 'quantified',
+ offset: 3,
+ text: 'c*',
+ body: {
+ type: 'literal',
+ offset: 3,
+ text: 'c',
+ body: 'c',
+ escaped: false
+ },
+ quantifier: {
+ type: 'quantifier',
+ offset: 4,
+ text: '*',
+ min: 0,
+ max: Infinity,
+ greedy: true
+ }
+ }
+ */
+ quantified: function (node, result, cache) {
+ result = '';
+ // node.quantifier {}
+ var count = this.quantifier(node.quantifier);
+ // node.body {}
+ for (var i = 0; i < count; i++) {
+ result += this.gen(node.body, result, cache);
+ }
+ return result;
+ },
+ /*
+ quantifier: {
+ type: 'quantifier',
+ offset: 4,
+ text: '*',
+ min: 0,
+ max: Infinity,
+ greedy: true
+ }
+ */
+ quantifier: function (node, result, cache) {
+ var min = Math.max(node.min, 0);
+ var max = isFinite(node.max) ? node.max : min + Random.integer(3, 7);
+ return Random.integer(min, max);
+ },
+ /*
+
+ */
+ charset: function (node, result, cache) {
+ // node.invert
+ if (node.invert) return this['invert-charset'](node, result, cache);
+
+ // node.body []
+ var literal = Random.pick(node.body);
+ return this.gen(literal, result, cache);
+ },
+ 'invert-charset': function (node, result, cache) {
+ var pool = PRINTABLE;
+ for (var i = 0, item; i < node.body.length; i++) {
+ item = node.body[i];
+ switch (item.type) {
+ case 'literal':
+ pool = pool.replace(item.body, '');
+ break;
+ case 'range':
+ var min = this.gen(item.start, result, cache).charCodeAt();
+ var max = this.gen(item.end, result, cache).charCodeAt();
+ for (var ii = min; ii <= max; ii++) {
+ pool = pool.replace(String.fromCharCode(ii), '');
+ }
+ /* falls through */
+ default:
+ var characters = CHARACTER_CLASSES[item.text];
+ if (characters) {
+ for (var iii = 0; iii <= characters.length; iii++) {
+ pool = pool.replace(characters[iii], '');
+ }
+ }
+ }
+ }
+ return Random.pick(pool.split(''));
+ },
+ range: function (node, result, cache) {
+ // node.start, node.end
+ var min = this.gen(node.start, result, cache).charCodeAt();
+ var max = this.gen(node.end, result, cache).charCodeAt();
+ return String.fromCharCode(Random.integer(min, max));
+ },
+ literal: function (node, result, cache) {
+ return node.escaped ? node.body : node.text;
+ },
+ // Unicode \u
+ unicode: function (node, result, cache) {
+ return String.fromCharCode(parseInt(node.code, 16));
+ },
+ // 十六进制 \xFF
+ hex: function (node, result, cache) {
+ return String.fromCharCode(parseInt(node.code, 16));
+ },
+ // 八进制 \0
+ octal: function (node, result, cache) {
+ return String.fromCharCode(parseInt(node.code, 8));
+ },
+ // 反向引用
+ 'back-reference': function (node, result, cache) {
+ return cache[node.code] || '';
+ },
+ /*
+ http://en.wikipedia.org/wiki/C0_and_C1_control_codes
+ */
+ CONTROL_CHARACTER_MAP: (function () {
+ var CONTROL_CHARACTER = '@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _'.split(' ');
+ var CONTROL_CHARACTER_UNICODE =
+ '\u0000 \u0001 \u0002 \u0003 \u0004 \u0005 \u0006 \u0007 \u0008 \u0009 \u000A \u000B \u000C \u000D \u000E \u000F \u0010 \u0011 \u0012 \u0013 \u0014 \u0015 \u0016 \u0017 \u0018 \u0019 \u001A \u001B \u001C \u001D \u001E \u001F'.split(
+ ' ',
+ );
+ var map = {};
+ for (var i = 0; i < CONTROL_CHARACTER.length; i++) {
+ map[CONTROL_CHARACTER[i]] = CONTROL_CHARACTER_UNICODE[i];
+ }
+ return map;
+ })(),
+ 'control-character': function (node, result, cache) {
+ return this.CONTROL_CHARACTER_MAP[node.code];
+ },
+ });
+
+ module.exports = Handler;
+
+ /***/
+ },
+ /* 23 */
+ /***/ function (module, exports, __webpack_require__) {
+ module.exports = __webpack_require__(24);
+
+ /***/
+ },
+ /* 24 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## toJSONSchema
+
+ 把 Mock.js 风格的数据模板转换成 JSON Schema。
+
+ > [JSON Schema](http://json-schema.org/)
+ */
+ var Constant = __webpack_require__(2);
+ var Util = __webpack_require__(3);
+ var Parser = __webpack_require__(4);
+
+ function toJSONSchema(template, name, path /* Internal Use Only */) {
+ // type rule properties items
+ path = path || [];
+ var result = {
+ name: typeof name === 'string' ? name.replace(Constant.RE_KEY, '$1') : name,
+ template: template,
+ type: Util.type(template), // 可能不准确,例如 { 'name|1': [{}, {} ...] }
+ rule: Parser.parse(name),
+ };
+ result.path = path.slice(0);
+ result.path.push(name === undefined ? 'ROOT' : result.name);
+
+ switch (result.type) {
+ case 'array':
+ result.items = [];
+ Util.each(template, function (value, index) {
+ result.items.push(toJSONSchema(value, index, result.path));
+ });
+ break;
+ case 'object':
+ result.properties = [];
+ Util.each(template, function (value, name) {
+ result.properties.push(toJSONSchema(value, name, result.path));
+ });
+ break;
+ }
+
+ return result;
+ }
+
+ module.exports = toJSONSchema;
+
+ /***/
+ },
+ /* 25 */
+ /***/ function (module, exports, __webpack_require__) {
+ module.exports = __webpack_require__(26);
+
+ /***/
+ },
+ /* 26 */
+ /***/ function (module, exports, __webpack_require__) {
+ /*
+ ## valid(template, data)
+
+ 校验真实数据 data 是否与数据模板 template 匹配。
+
+ 实现思路:
+ 1. 解析规则。
+ 先把数据模板 template 解析为更方便机器解析的 JSON-Schame
+ name 属性名
+ type 属性值类型
+ template 属性值模板
+ properties 对象属性数组
+ items 数组元素数组
+ rule 属性值生成规则
+ 2. 递归验证规则。
+ 然后用 JSON-Schema 校验真实数据,校验项包括属性名、值类型、值、值生成规则。
+
+ 提示信息
+ https://github.com/fge/json-schema-validator/blob/master/src/main/resources/com/github/fge/jsonschema/validator/validation.properties
+ [JSON-Schama validator](http://json-schema-validator.herokuapp.com/)
+ [Regexp Demo](http://demos.forbeslindesay.co.uk/regexp/)
+ */
+ var Constant = __webpack_require__(2);
+ var Util = __webpack_require__(3);
+ var toJSONSchema = __webpack_require__(23);
+
+ function valid(template, data) {
+ var schema = toJSONSchema(template);
+ var result = Diff.diff(schema, data);
+ for (var i = 0; i < result.length; i++) {
+ // console.log(template, data)
+ // console.warn(Assert.message(result[i]))
+ }
+ return result;
+ }
+
+ /*
+ ## name
+ 有生成规则:比较解析后的 name
+ 无生成规则:直接比较
+ ## type
+ 无类型转换:直接比较
+ 有类型转换:先试着解析 template,然后再检查?
+ ## value vs. template
+ 基本类型
+ 无生成规则:直接比较
+ 有生成规则:
+ number
+ min-max.dmin-dmax
+ min-max.dcount
+ count.dmin-dmax
+ count.dcount
+ +step
+ 整数部分
+ 小数部分
+ boolean
+ string
+ min-max
+ count
+ ## properties
+ 对象
+ 有生成规则:检测期望的属性个数,继续递归
+ 无生成规则:检测全部的属性个数,继续递归
+ ## items
+ 数组
+ 有生成规则:
+ `'name|1': [{}, {} ...]` 其中之一,继续递归
+ `'name|+1': [{}, {} ...]` 顺序检测,继续递归
+ `'name|min-max': [{}, {} ...]` 检测个数,继续递归
+ `'name|count': [{}, {} ...]` 检测个数,继续递归
+ 无生成规则:检测全部的元素个数,继续递归
+ */
+ var Diff = {
+ diff: function diff(schema, data, name /* Internal Use Only */) {
+ var result = [];
+
+ // 先检测名称 name 和类型 type,如果匹配,才有必要继续检测
+ if (this.name(schema, data, name, result) && this.type(schema, data, name, result)) {
+ this.value(schema, data, name, result);
+ this.properties(schema, data, name, result);
+ this.items(schema, data, name, result);
+ }
+
+ return result;
+ },
+ /* jshint unused:false */
+ name: function (schema, data, name, result) {
+ var length = result.length;
+
+ Assert.equal('name', schema.path, name + '', schema.name + '', result);
+
+ return result.length === length;
+ },
+ type: function (schema, data, name, result) {
+ var length = result.length;
+
+ switch (schema.type) {
+ case 'string':
+ // 跳过含有『占位符』的属性值,因为『占位符』返回值的类型可能和模板不一致,例如 '@int' 会返回一个整形值
+ if (schema.template.match(Constant.RE_PLACEHOLDER)) return true;
+ break;
+ case 'array':
+ if (schema.rule.parameters) {
+ // name|count: array
+ if (schema.rule.min !== undefined && schema.rule.max === undefined) {
+ // 跳过 name|1: array,因为最终值的类型(很可能)不是数组,也不一定与 `array` 中的类型一致
+ if (schema.rule.count === 1) return true;
+ }
+ // 跳过 name|+inc: array
+ if (schema.rule.parameters[2]) return true;
+ }
+ break;
+ case 'function':
+ // 跳过 `'name': function`,因为函数可以返回任何类型的值。
+ return true;
+ }
+
+ Assert.equal('type', schema.path, Util.type(data), schema.type, result);
+
+ return result.length === length;
+ },
+ value: function (schema, data, name, result) {
+ var length = result.length;
+
+ var rule = schema.rule;
+ var templateType = schema.type;
+ if (templateType === 'object' || templateType === 'array' || templateType === 'function') return true;
+
+ // 无生成规则
+ if (!rule.parameters) {
+ switch (templateType) {
+ case 'regexp':
+ Assert.match('value', schema.path, data, schema.template, result);
+ return result.length === length;
+ case 'string':
+ // 同样跳过含有『占位符』的属性值,因为『占位符』的返回值会通常会与模板不一致
+ if (schema.template.match(Constant.RE_PLACEHOLDER)) return result.length === length;
+ break;
+ }
+ Assert.equal('value', schema.path, data, schema.template, result);
+ return result.length === length;
+ }
+
+ // 有生成规则
+ var actualRepeatCount;
+ switch (templateType) {
+ case 'number':
+ var parts = (data + '').split('.');
+ parts[0] = +parts[0];
+
+ // 整数部分
+ // |min-max
+ if (rule.min !== undefined && rule.max !== undefined) {
+ Assert.greaterThanOrEqualTo('value', schema.path, parts[0], Math.min(rule.min, rule.max), result);
+ // , 'numeric instance is lower than the required minimum (minimum: {expected}, found: {actual})')
+ Assert.lessThanOrEqualTo('value', schema.path, parts[0], Math.max(rule.min, rule.max), result);
+ }
+ // |count
+ if (rule.min !== undefined && rule.max === undefined) {
+ Assert.equal('value', schema.path, parts[0], rule.min, result, '[value] ' + name);
+ }
+
+ // 小数部分
+ if (rule.decimal) {
+ // |dmin-dmax
+ if (rule.dmin !== undefined && rule.dmax !== undefined) {
+ Assert.greaterThanOrEqualTo('value', schema.path, parts[1].length, rule.dmin, result);
+ Assert.lessThanOrEqualTo('value', schema.path, parts[1].length, rule.dmax, result);
+ }
+ // |dcount
+ if (rule.dmin !== undefined && rule.dmax === undefined) {
+ Assert.equal('value', schema.path, parts[1].length, rule.dmin, result);
+ }
+ }
+
+ break;
+
+ case 'boolean':
+ break;
+
+ case 'string':
+ // 'aaa'.match(/a/g)
+ actualRepeatCount = data.match(new RegExp(schema.template, 'g'));
+ actualRepeatCount = actualRepeatCount ? actualRepeatCount.length : 0;
+
+ // |min-max
+ if (rule.min !== undefined && rule.max !== undefined) {
+ Assert.greaterThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.min, result);
+ Assert.lessThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.max, result);
+ }
+ // |count
+ if (rule.min !== undefined && rule.max === undefined) {
+ Assert.equal('repeat count', schema.path, actualRepeatCount, rule.min, result);
+ }
+
+ break;
+
+ case 'regexp':
+ actualRepeatCount = data.match(new RegExp(schema.template.source.replace(/^\^|\$$/g, ''), 'g'));
+ actualRepeatCount = actualRepeatCount ? actualRepeatCount.length : 0;
+
+ // |min-max
+ if (rule.min !== undefined && rule.max !== undefined) {
+ Assert.greaterThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.min, result);
+ Assert.lessThanOrEqualTo('repeat count', schema.path, actualRepeatCount, rule.max, result);
+ }
+ // |count
+ if (rule.min !== undefined && rule.max === undefined) {
+ Assert.equal('repeat count', schema.path, actualRepeatCount, rule.min, result);
+ }
+ break;
+ }
+
+ return result.length === length;
+ },
+ properties: function (schema, data, name, result) {
+ var length = result.length;
+
+ var rule = schema.rule;
+ var keys = Util.keys(data);
+ if (!schema.properties) return;
+
+ // 无生成规则
+ if (!schema.rule.parameters) {
+ Assert.equal('properties length', schema.path, keys.length, schema.properties.length, result);
+ } else {
+ // 有生成规则
+ // |min-max
+ if (rule.min !== undefined && rule.max !== undefined) {
+ Assert.greaterThanOrEqualTo(
+ 'properties length',
+ schema.path,
+ keys.length,
+ Math.min(rule.min, rule.max),
+ result,
+ );
+ Assert.lessThanOrEqualTo(
+ 'properties length',
+ schema.path,
+ keys.length,
+ Math.max(rule.min, rule.max),
+ result,
+ );
+ }
+ // |count
+ if (rule.min !== undefined && rule.max === undefined) {
+ // |1, |>1
+ if (rule.count !== 1) Assert.equal('properties length', schema.path, keys.length, rule.min, result);
+ }
+ }
+
+ if (result.length !== length) return false;
+
+ for (var i = 0; i < keys.length; i++) {
+ result.push.apply(
+ result,
+ this.diff(
+ (function () {
+ var property;
+ Util.each(schema.properties, function (item /*, index*/) {
+ if (item.name === keys[i]) property = item;
+ });
+ return property || schema.properties[i];
+ })(),
+ data[keys[i]],
+ keys[i],
+ ),
+ );
+ }
+
+ return result.length === length;
+ },
+ items: function (schema, data, name, result) {
+ var length = result.length;
+
+ if (!schema.items) return;
+
+ var rule = schema.rule;
+
+ // 无生成规则
+ if (!schema.rule.parameters) {
+ Assert.equal('items length', schema.path, data.length, schema.items.length, result);
+ } else {
+ // 有生成规则
+ // |min-max
+ if (rule.min !== undefined && rule.max !== undefined) {
+ Assert.greaterThanOrEqualTo(
+ 'items',
+ schema.path,
+ data.length,
+ Math.min(rule.min, rule.max) * schema.items.length,
+ result,
+ '[{utype}] array is too short: {path} must have at least {expected} elements but instance has {actual} elements',
+ );
+ Assert.lessThanOrEqualTo(
+ 'items',
+ schema.path,
+ data.length,
+ Math.max(rule.min, rule.max) * schema.items.length,
+ result,
+ '[{utype}] array is too long: {path} must have at most {expected} elements but instance has {actual} elements',
+ );
+ }
+ // |count
+ if (rule.min !== undefined && rule.max === undefined) {
+ // |1, |>1
+ if (rule.count === 1) return result.length === length;
+ else Assert.equal('items length', schema.path, data.length, rule.min * schema.items.length, result);
+ }
+ // |+inc
+ if (rule.parameters[2]) return result.length === length;
+ }
+
+ if (result.length !== length) return false;
+
+ for (var i = 0; i < data.length; i++) {
+ result.push.apply(
+ result,
+ this.diff(schema.items[i % schema.items.length], data[i], i % schema.items.length),
+ );
+ }
+
+ return result.length === length;
+ },
+ };
+
+ /*
+ 完善、友好的提示信息
+
+ Equal, not equal to, greater than, less than, greater than or equal to, less than or equal to
+ 路径 验证类型 描述
+
+ Expect path.name is less than or equal to expected, but path.name is actual.
+
+ Expect path.name is less than or equal to expected, but path.name is actual.
+ Expect path.name is greater than or equal to expected, but path.name is actual.
+
+ */
+ var Assert = {
+ message: function (item) {
+ return (item.message || "[{utype}] Expect {path}'{ltype} {action} {expected}, but is {actual}")
+ .replace('{utype}', item.type.toUpperCase())
+ .replace('{ltype}', item.type.toLowerCase())
+ .replace('{path}', (Util.isArray(item.path) && item.path.join('.')) || item.path)
+ .replace('{action}', item.action)
+ .replace('{expected}', item.expected)
+ .replace('{actual}', item.actual);
+ },
+ equal: function (type, path, actual, expected, result, message) {
+ if (actual === expected) return true;
+ switch (type) {
+ case 'type':
+ // 正则模板 === 字符串最终值
+ if (expected === 'regexp' && actual === 'string') return true;
+ break;
+ }
+
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'is equal to',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ // actual matches expected
+ match: function (type, path, actual, expected, result, message) {
+ if (expected.test(actual)) return true;
+
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'matches',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ notEqual: function (type, path, actual, expected, result, message) {
+ if (actual !== expected) return true;
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'is not equal to',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ greaterThan: function (type, path, actual, expected, result, message) {
+ if (actual > expected) return true;
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'is greater than',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ lessThan: function (type, path, actual, expected, result, message) {
+ if (actual < expected) return true;
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'is less to',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ greaterThanOrEqualTo: function (type, path, actual, expected, result, message) {
+ if (actual >= expected) return true;
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'is greater than or equal to',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ lessThanOrEqualTo: function (type, path, actual, expected, result, message) {
+ if (actual <= expected) return true;
+ var item = {
+ path: path,
+ type: type,
+ actual: actual,
+ expected: expected,
+ action: 'is less than or equal to',
+ message: message,
+ };
+ item.message = Assert.message(item);
+ result.push(item);
+ return false;
+ },
+ };
+
+ valid.Diff = Diff;
+ valid.Assert = Assert;
+
+ module.exports = valid;
+
+ /***/
+ },
+ /* 27 */
+ /***/ function (module, exports, __webpack_require__) {
+ module.exports = __webpack_require__(28);
+
+ /***/
+ },
+ /* 28 */
+ /***/ function (module, exports, __webpack_require__) {
+ /* global window, document, location, Event, setTimeout */
+ /*
+ ## MockXMLHttpRequest
+
+ 期望的功能:
+ 1. 完整地覆盖原生 XHR 的行为
+ 2. 完整地模拟原生 XHR 的行为
+ 3. 在发起请求时,自动检测是否需要拦截
+ 4. 如果不必拦截,则执行原生 XHR 的行为
+ 5. 如果需要拦截,则执行虚拟 XHR 的行为
+ 6. 兼容 XMLHttpRequest 和 ActiveXObject
+ new window.XMLHttpRequest()
+ new window.ActiveXObject("Microsoft.XMLHTTP")
+
+ 关键方法的逻辑:
+ * new 此时尚无法确定是否需要拦截,所以创建原生 XHR 对象是必须的。
+ * open 此时可以取到 URL,可以决定是否进行拦截。
+ * send 此时已经确定了请求方式。
+
+ 规范:
+ http://xhr.spec.whatwg.org/
+ http://www.w3.org/TR/XMLHttpRequest2/
+
+ 参考实现:
+ https://github.com/philikon/MockHttpRequest/blob/master/lib/mock.js
+ https://github.com/trek/FakeXMLHttpRequest/blob/master/fake_xml_http_request.js
+ https://github.com/ilinsky/xmlhttprequest/blob/master/XMLHttpRequest.js
+ https://github.com/firebug/firebug-lite/blob/master/content/lite/xhr.js
+ https://github.com/thx/RAP/blob/master/lab/rap.plugin.xinglie.js
+
+ **需不需要全面重写 XMLHttpRequest?**
+ http://xhr.spec.whatwg.org/#interface-xmlhttprequest
+ 关键属性 readyState、status、statusText、response、responseText、responseXML 是 readonly,所以,试图通过修改这些状态,来模拟响应是不可行的。
+ 因此,唯一的办法是模拟整个 XMLHttpRequest,就像 jQuery 对事件模型的封装。
+
+ // Event handlers
+ onloadstart loadstart
+ onprogress progress
+ onabort abort
+ onerror error
+ onload load
+ ontimeout timeout
+ onloadend loadend
+ onreadystatechange readystatechange
+ */
+
+ var Util = __webpack_require__(3);
+
+ // 备份原生 XMLHttpRequest
+ window._XMLHttpRequest = window.XMLHttpRequest;
+ window._ActiveXObject = window.ActiveXObject;
+
+ /*
+ PhantomJS
+ TypeError: '[object EventConstructor]' is not a constructor (evaluating 'new Event("readystatechange")')
+
+ https://github.com/bluerail/twitter-bootstrap-rails-confirm/issues/18
+ https://github.com/ariya/phantomjs/issues/11289
+ */
+ try {
+ new window.Event('custom');
+ } catch (exception) {
+ window.Event = function (type, bubbles, cancelable, detail) {
+ var event = document.createEvent('CustomEvent'); // MUST be 'CustomEvent'
+ event.initCustomEvent(type, bubbles, cancelable, detail);
+ return event;
+ };
+ }
+
+ var XHR_STATES = {
+ // The object has been constructed.
+ UNSENT: 0,
+ // The open() method has been successfully invoked.
+ OPENED: 1,
+ // All redirects (if any) have been followed and all HTTP headers of the response have been received.
+ HEADERS_RECEIVED: 2,
+ // The response's body is being received.
+ LOADING: 3,
+ // The data transfer has been completed or something went wrong during the transfer (e.g. infinite redirects).
+ DONE: 4,
+ };
+
+ var XHR_EVENTS = 'readystatechange loadstart progress abort error load timeout loadend'.split(' ');
+ var XHR_REQUEST_PROPERTIES = 'timeout withCredentials'.split(' ');
+ var XHR_RESPONSE_PROPERTIES =
+ 'readyState responseURL status statusText responseType response responseText responseXML'.split(' ');
+
+ // https://github.com/trek/FakeXMLHttpRequest/blob/master/fake_xml_http_request.js#L32
+ var HTTP_STATUS_CODES = {
+ 100: 'Continue',
+ 101: 'Switching Protocols',
+ 200: 'OK',
+ 201: 'Created',
+ 202: 'Accepted',
+ 203: 'Non-Authoritative Information',
+ 204: 'No Content',
+ 205: 'Reset Content',
+ 206: 'Partial Content',
+ 300: 'Multiple Choice',
+ 301: 'Moved Permanently',
+ 302: 'Found',
+ 303: 'See Other',
+ 304: 'Not Modified',
+ 305: 'Use Proxy',
+ 307: 'Temporary Redirect',
+ 400: 'Bad Request',
+ 401: 'Unauthorized',
+ 402: 'Payment Required',
+ 403: 'Forbidden',
+ 404: 'Not Found',
+ 405: 'Method Not Allowed',
+ 406: 'Not Acceptable',
+ 407: 'Proxy Authentication Required',
+ 408: 'Request Timeout',
+ 409: 'Conflict',
+ 410: 'Gone',
+ 411: 'Length Required',
+ 412: 'Precondition Failed',
+ 413: 'Request Entity Too Large',
+ 414: 'Request-URI Too Long',
+ 415: 'Unsupported Media Type',
+ 416: 'Requested Range Not Satisfiable',
+ 417: 'Expectation Failed',
+ 422: 'Unprocessable Entity',
+ 500: 'Internal Server Error',
+ 501: 'Not Implemented',
+ 502: 'Bad Gateway',
+ 503: 'Service Unavailable',
+ 504: 'Gateway Timeout',
+ 505: 'HTTP Version Not Supported',
+ };
+
+ /*
+ MockXMLHttpRequest
+ */
+
+ function MockXMLHttpRequest() {
+ // 初始化 custom 对象,用于存储自定义属性
+ this.custom = {
+ events: {},
+ requestHeaders: {},
+ responseHeaders: {},
+ };
+ }
+
+ MockXMLHttpRequest._settings = {
+ timeout: '10-100',
+ /*
+ timeout: 50,
+ timeout: '10-100',
+ */
+ };
+
+ MockXMLHttpRequest.setup = function (settings) {
+ Util.extend(MockXMLHttpRequest._settings, settings);
+ return MockXMLHttpRequest._settings;
+ };
+
+ Util.extend(MockXMLHttpRequest, XHR_STATES);
+ Util.extend(MockXMLHttpRequest.prototype, XHR_STATES);
+
+ // 标记当前对象为 MockXMLHttpRequest
+ MockXMLHttpRequest.prototype.mock = true;
+
+ // 是否拦截 Ajax 请求
+ MockXMLHttpRequest.prototype.match = false;
+
+ // 初始化 Request 相关的属性和方法
+ Util.extend(MockXMLHttpRequest.prototype, {
+ // https://xhr.spec.whatwg.org/#the-open()-method
+ // Sets the request method, request URL, and synchronous flag.
+ open: function (method, url, async, username, password) {
+ var that = this;
+
+ Util.extend(this.custom, {
+ method: method,
+ url: url,
+ async: typeof async === 'boolean' ? async : true,
+ username: username,
+ password: password,
+ options: {
+ url: url,
+ type: method,
+ },
+ });
+
+ this.custom.timeout = (function (timeout) {
+ if (typeof timeout === 'number') return timeout;
+ if (typeof timeout === 'string' && !~timeout.indexOf('-')) return parseInt(timeout, 10);
+ if (typeof timeout === 'string' && ~timeout.indexOf('-')) {
+ var tmp = timeout.split('-');
+ var min = parseInt(tmp[0], 10);
+ var max = parseInt(tmp[1], 10);
+ return Math.round(Math.random() * (max - min)) + min;
+ }
+ })(MockXMLHttpRequest._settings.timeout);
+
+ // 查找与请求参数匹配的数据模板
+ var item = find(this.custom.options);
+
+ function handle(event) {
+ // 同步属性 NativeXMLHttpRequest => MockXMLHttpRequest
+ for (var i = 0; i < XHR_RESPONSE_PROPERTIES.length; i++) {
+ try {
+ that[XHR_RESPONSE_PROPERTIES[i]] = xhr[XHR_RESPONSE_PROPERTIES[i]];
+ } catch (e) {}
+ }
+ // 触发 MockXMLHttpRequest 上的同名事件
+ that.dispatchEvent(new Event(event.type /*, false, false, that*/));
+ }
+
+ // 如果未找到匹配的数据模板,则采用原生 XHR 发送请求。
+ if (!item) {
+ // 创建原生 XHR 对象,调用原生 open(),监听所有原生事件
+ var xhr = createNativeXMLHttpRequest();
+ this.custom.xhr = xhr;
+
+ // 初始化所有事件,用于监听原生 XHR 对象的事件
+ for (var i = 0; i < XHR_EVENTS.length; i++) {
+ xhr.addEventListener(XHR_EVENTS[i], handle);
+ }
+
+ // xhr.open()
+ if (username) xhr.open(method, url, async, username, password);
+ else xhr.open(method, url, async);
+
+ // 同步属性 MockXMLHttpRequest => NativeXMLHttpRequest
+ for (var j = 0; j < XHR_REQUEST_PROPERTIES.length; j++) {
+ try {
+ xhr[XHR_REQUEST_PROPERTIES[j]] = that[XHR_REQUEST_PROPERTIES[j]];
+ } catch (e) {}
+ }
+
+ return;
+ }
+
+ // 找到了匹配的数据模板,开始拦截 XHR 请求
+ this.match = true;
+ this.custom.template = item;
+ this.readyState = MockXMLHttpRequest.OPENED;
+ this.dispatchEvent(new Event('readystatechange' /*, false, false, this*/));
+ },
+ // https://xhr.spec.whatwg.org/#the-setrequestheader()-method
+ // Combines a header in author request headers.
+ setRequestHeader: function (name, value) {
+ // 原生 XHR
+ if (!this.match) {
+ this.custom.xhr.setRequestHeader(name, value);
+ return;
+ }
+
+ // 拦截 XHR
+ var requestHeaders = this.custom.requestHeaders;
+ if (requestHeaders[name]) requestHeaders[name] += ',' + value;
+ else requestHeaders[name] = value;
+ },
+ timeout: 0,
+ withCredentials: false,
+ upload: {},
+ // https://xhr.spec.whatwg.org/#the-send()-method
+ // Initiates the request.
+ send: function send(data) {
+ var that = this;
+ this.custom.options.body = data;
+
+ // 原生 XHR
+ if (!this.match) {
+ this.custom.xhr.send(data);
+ return;
+ }
+
+ // 拦截 XHR
+
+ // X-Requested-With header
+ this.setRequestHeader('X-Requested-With', 'MockXMLHttpRequest');
+
+ // loadstart The fetch initiates.
+ this.dispatchEvent(new Event('loadstart' /*, false, false, this*/));
+
+ if (this.custom.async) setTimeout(done, this.custom.timeout); // 异步
+ else done(); // 同步
+
+ function done() {
+ that.readyState = MockXMLHttpRequest.HEADERS_RECEIVED;
+ that.dispatchEvent(new Event('readystatechange' /*, false, false, that*/));
+ that.readyState = MockXMLHttpRequest.LOADING;
+ that.dispatchEvent(new Event('readystatechange' /*, false, false, that*/));
+
+ that.status = 200;
+ that.statusText = HTTP_STATUS_CODES[200];
+
+ // fix #92 #93 by @qddegtya
+ that.response = that.responseText = JSON.stringify(
+ convert(that.custom.template, that.custom.options),
+ null,
+ 4,
+ );
+
+ that.readyState = MockXMLHttpRequest.DONE;
+ that.dispatchEvent(new Event('readystatechange' /*, false, false, that*/));
+ that.dispatchEvent(new Event('load' /*, false, false, that*/));
+ that.dispatchEvent(new Event('loadend' /*, false, false, that*/));
+ }
+ },
+ // https://xhr.spec.whatwg.org/#the-abort()-method
+ // Cancels any network activity.
+ abort: function abort() {
+ // 原生 XHR
+ if (!this.match) {
+ this.custom.xhr.abort();
+ return;
+ }
+
+ // 拦截 XHR
+ this.readyState = MockXMLHttpRequest.UNSENT;
+ this.dispatchEvent(new Event('abort', false, false, this));
+ this.dispatchEvent(new Event('error', false, false, this));
+ },
+ });
+
+ // 初始化 Response 相关的属性和方法
+ Util.extend(MockXMLHttpRequest.prototype, {
+ responseURL: '',
+ status: MockXMLHttpRequest.UNSENT,
+ statusText: '',
+ // https://xhr.spec.whatwg.org/#the-getresponseheader()-method
+ getResponseHeader: function (name) {
+ // 原生 XHR
+ if (!this.match) {
+ return this.custom.xhr.getResponseHeader(name);
+ }
+
+ // 拦截 XHR
+ return this.custom.responseHeaders[name.toLowerCase()];
+ },
+ // https://xhr.spec.whatwg.org/#the-getallresponseheaders()-method
+ // http://www.utf8-chartable.de/
+ getAllResponseHeaders: function () {
+ // 原生 XHR
+ if (!this.match) {
+ return this.custom.xhr.getAllResponseHeaders();
+ }
+
+ // 拦截 XHR
+ var responseHeaders = this.custom.responseHeaders;
+ var headers = '';
+ for (var h in responseHeaders) {
+ if (!responseHeaders.hasOwnProperty(h)) continue;
+ headers += h + ': ' + responseHeaders[h] + '\r\n';
+ }
+ return headers;
+ },
+ overrideMimeType: function (/*mime*/) {},
+ responseType: '', // '', 'text', 'arraybuffer', 'blob', 'document', 'json'
+ response: null,
+ responseText: '',
+ responseXML: null,
+ });
+
+ // EventTarget
+ Util.extend(MockXMLHttpRequest.prototype, {
+ addEventListener: function addEventListener(type, handle) {
+ var events = this.custom.events;
+ if (!events[type]) events[type] = [];
+ events[type].push(handle);
+ },
+ removeEventListener: function removeEventListener(type, handle) {
+ var handles = this.custom.events[type] || [];
+ for (var i = 0; i < handles.length; i++) {
+ if (handles[i] === handle) {
+ handles.splice(i--, 1);
+ }
+ }
+ },
+ dispatchEvent: function dispatchEvent(event) {
+ var handles = this.custom.events[event.type] || [];
+ for (var i = 0; i < handles.length; i++) {
+ handles[i].call(this, event);
+ }
+
+ var ontype = 'on' + event.type;
+ if (this[ontype]) this[ontype](event);
+ },
+ });
+
+ // Inspired by jQuery
+ function createNativeXMLHttpRequest() {
+ var isLocal = (function () {
+ var rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/;
+ var rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/;
+ var ajaxLocation = location.href;
+ var ajaxLocParts = rurl.exec(ajaxLocation.toLowerCase()) || [];
+ return rlocalProtocol.test(ajaxLocParts[1]);
+ })();
+
+ return window.ActiveXObject ? (!isLocal && createStandardXHR()) || createActiveXHR() : createStandardXHR();
+
+ function createStandardXHR() {
+ try {
+ return new window._XMLHttpRequest();
+ } catch (e) {}
+ }
+
+ function createActiveXHR() {
+ try {
+ return new window._ActiveXObject('Microsoft.XMLHTTP');
+ } catch (e) {}
+ }
+ }
+
+ // 查找与请求参数匹配的数据模板:URL,Type
+ function find(options) {
+ for (var sUrlType in MockXMLHttpRequest.Mock._mocked) {
+ var item = MockXMLHttpRequest.Mock._mocked[sUrlType];
+ if (
+ (!item.rurl || match(item.rurl, options.url)) &&
+ (!item.rtype || match(item.rtype, options.type.toLowerCase()))
+ ) {
+ // console.log('[mock]', options.url, '>', item.rurl)
+ return item;
+ }
+ }
+
+ function match(expected, actual) {
+ if (Util.type(expected) === 'string') {
+ return expected === actual;
+ }
+ if (Util.type(expected) === 'regexp') {
+ return expected.test(actual);
+ }
+ }
+ }
+
+ // 数据模板 => 响应数据
+ function convert(item, options) {
+ return Util.isFunction(item.template) ? item.template(options) : MockXMLHttpRequest.Mock.mock(item.template);
+ }
+
+ module.exports = MockXMLHttpRequest;
+
+ /***/
+ },
+ /******/
+ ],
+ );
+});
diff --git a/mock/my/getPersonalInfo.js b/mock/my/getPersonalInfo.js
new file mode 100644
index 0000000..5f97ffa
--- /dev/null
+++ b/mock/my/getPersonalInfo.js
@@ -0,0 +1,21 @@
+import { getLocalUrl } from '~/utils/util.js';
+
+export default {
+ path: '/api/genPersonalInfo',
+ data: {
+ code: 200,
+ message: 'success',
+ data: {
+ image: '/static/avatar1.png',
+ name: '小小轩',
+ star: '天枰座',
+ gender: 0,
+ birth: '1994-09-27',
+ address: ['440000', '440300'],
+ brief: '在你身边,为你设计',
+ photos: [
+
+ ],
+ },
+ },
+};
diff --git a/mock/my/getServiceList.js b/mock/my/getServiceList.js
new file mode 100644
index 0000000..c2ac427
--- /dev/null
+++ b/mock/my/getServiceList.js
@@ -0,0 +1,19 @@
+export default {
+ path: '/api/getServiceList',
+ data: {
+ code: 200,
+ message: 'success',
+ data: {
+ service: [
+ { image: '/static/icon_wx.png', name: '微信', type: 'weixin', url: '' },
+ { image: '/static/icon_qq.png', name: 'QQ', type: 'QQ', url: '' },
+ { image: '/static/icon_doc.png', name: '腾讯文档', type: 'document', url: '' },
+ { image: '/static/icon_map.png', name: '腾讯地图', type: 'map', url: '' },
+ { image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
+ { image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
+ { image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
+ { image: '/static/icon_td.png', name: '数据中心', type: 'data', url: '/pages/dataCenter/index' },
+ ],
+ },
+ },
+};
diff --git a/mock/my/index.js b/mock/my/index.js
new file mode 100644
index 0000000..841a2f6
--- /dev/null
+++ b/mock/my/index.js
@@ -0,0 +1,4 @@
+import getServiceList from './getServiceList';
+import getPersonalInfo from './getPersonalInfo';
+
+export default [getServiceList, getPersonalInfo];
diff --git a/mock/request.js b/mock/request.js
new file mode 100644
index 0000000..8c65de4
--- /dev/null
+++ b/mock/request.js
@@ -0,0 +1,21 @@
+import service from './service/index';
+
+const failResponse = {
+ code: null,
+ data: null,
+ message: 'invaild path',
+};
+
+export const request = (url, data) =>
+ new Promise((resolve, reject) => {
+ const waitTime = Math.random() * 300 + 200;
+ const target = service.find((item) => item.path === url);
+ setTimeout(() => {
+ if (target) {
+ const { response } = target;
+ resolve(typeof response === 'function' ? response(data) : response);
+ } else {
+ reject(failResponse);
+ }
+ }, waitTime); // 200-500ms
+ });
diff --git a/mock/search/getSearchHistory.js b/mock/search/getSearchHistory.js
new file mode 100644
index 0000000..203188c
--- /dev/null
+++ b/mock/search/getSearchHistory.js
@@ -0,0 +1,8 @@
+export default {
+ path: '/api/searchHistory',
+ code: 200,
+ message: '请求成功',
+ data: {
+ historyWords: ['AI绘画', 'Stable Diffusion', '版权素材', '星空', 'illustration', '原创'],
+ },
+};
diff --git a/mock/search/getSearchPopular.js b/mock/search/getSearchPopular.js
new file mode 100644
index 0000000..7618001
--- /dev/null
+++ b/mock/search/getSearchPopular.js
@@ -0,0 +1,15 @@
+export default {
+ path: '/api/searchPopular',
+ code: 200,
+ message: '请求成功',
+ data: {
+ popularWords: [
+ '考研和靠边同时上岸应该怎么选?有哪些参考建议',
+ '日常饮食中,如何选择优质蛋白',
+ '你有没有网购维权成功的经历?求分享经验',
+ '夏季带孩子旅游,你的必备物品有哪些',
+ '在海外越卖越贵,中国汽车做对了什么',
+ '当HR问你离职原因,怎么回答最能被接受',
+ ],
+ },
+};
diff --git a/mock/search/index.js b/mock/search/index.js
new file mode 100644
index 0000000..22dc2ef
--- /dev/null
+++ b/mock/search/index.js
@@ -0,0 +1,4 @@
+import getSearchHistory from './getSearchHistory';
+import getSearchPopular from './getSearchPopular';
+
+export default [getSearchHistory, getSearchPopular];
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..e522a29
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5004 @@
+{
+ "name": "tdesign-miniprogram-starter",
+ "version": "0.0.2",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "tdesign-miniprogram-starter",
+ "version": "0.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "crypto-js": "^4.2.0",
+ "tdesign-miniprogram": "^1.8.6"
+ },
+ "devDependencies": {
+ "eslint": "^8.49.0",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-config-prettier": "^9.0.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-prettier": "^5.0.0",
+ "husky": "^8.0.3",
+ "lint-staged": "^14.0.1",
+ "prettier": "^3.0.2"
+ }
+ },
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.8.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.49.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz",
+ "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
+ "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@pkgr/utils": {
+ "version": "2.4.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "fast-glob": "^3.3.0",
+ "is-glob": "^4.0.3",
+ "open": "^9.1.0",
+ "picocolors": "^1.0.0",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/acorn": {
+ "version": "8.10.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/big-integer": {
+ "version": "1.6.51",
+ "dev": true,
+ "license": "Unlicense",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/bplist-parser": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big-integer": "^1.6.44"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/bundle-name": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "run-applescript": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "slice-ansi": "^5.0.0",
+ "string-width": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/commander": {
+ "version": "11.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/confusing-browser-globals": {
+ "version": "1.0.11",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.9",
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/default-browser": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bundle-name": "^3.0.0",
+ "default-browser-id": "^3.0.0",
+ "execa": "^7.1.1",
+ "titleize": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bplist-parser": "^0.2.0",
+ "untildify": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es-abstract": {
+ "version": "1.22.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.1",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.1",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.0",
+ "safe-array-concat": "^1.0.0",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.49.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz",
+ "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.2",
+ "@eslint/js": "8.49.0",
+ "@humanwhocodes/config-array": "^0.11.11",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-airbnb-base": {
+ "version": "15.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.32.0 || ^8.2.0",
+ "eslint-plugin-import": "^2.25.2"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "9.0.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.8.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.28.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.findlastindex": "^1.2.2",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.8.0",
+ "has": "^1.0.3",
+ "is-core-module": "^2.13.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.6",
+ "object.groupby": "^1.0.0",
+ "object.values": "^1.1.6",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.14.2"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.5"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/execa": {
+ "version": "7.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.15.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.7",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.21.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "4.3.1",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/husky": {
+ "version": "8.0.3",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "husky": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/typicode"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.13.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.12",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "which-typed-array": "^1.1.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-wsl/node_modules/is-docker": {
+ "version": "2.2.1",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/lint-staged": {
+ "version": "14.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "5.3.0",
+ "commander": "11.0.0",
+ "debug": "4.3.4",
+ "execa": "7.2.0",
+ "lilconfig": "2.1.0",
+ "listr2": "6.6.1",
+ "micromatch": "4.0.5",
+ "pidtree": "0.6.0",
+ "string-argv": "0.3.2",
+ "yaml": "2.3.1"
+ },
+ "bin": {
+ "lint-staged": "bin/lint-staged.js"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/lint-staged"
+ }
+ },
+ "node_modules/lint-staged/node_modules/chalk": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/listr2": {
+ "version": "6.6.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cli-truncate": "^3.1.0",
+ "colorette": "^2.0.20",
+ "eventemitter3": "^5.0.1",
+ "log-update": "^5.0.1",
+ "rfdc": "^1.3.0",
+ "wrap-ansi": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/log-update": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-escapes": "^5.0.0",
+ "cli-cursor": "^4.0.0",
+ "slice-ansi": "^5.0.0",
+ "strip-ansi": "^7.0.1",
+ "wrap-ansi": "^8.0.1"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/npm-run-path": {
+ "version": "5.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.3",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.1.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "9.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "default-browser": "^4.0.0",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.0.3",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/restore-cursor/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/restore-cursor/node_modules/onetime": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/run-applescript": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-applescript/node_modules/execa": {
+ "version": "5.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/run-applescript/node_modules/human-signals": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/run-applescript/node_modules/is-stream": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-applescript/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/run-applescript/node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/run-applescript/node_modules/onetime": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-applescript/node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/slice-ansi": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/string-argv": {
+ "version": "0.3.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/synckit": {
+ "version": "0.8.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@pkgr/utils": "^2.3.1",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/tdesign-miniprogram": {
+ "version": "1.8.6",
+ "resolved": "https://mirrors.tencent.com/npm/tdesign-miniprogram/-/tdesign-miniprogram-1.8.6.tgz",
+ "integrity": "sha512-FbV6/1Evfc5qoy7NQPuLwsrnAGytAAbKkPN/eaA02Qe5YxBgsJlYM7oXI5rSiinjjOC6T/wbGTFurEH/ASd+dQ==",
+ "license": "MIT",
+ "dependencies": {
+ "dayjs": "^1.10.7",
+ "tinycolor2": "^1.4.2"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinycolor2": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
+ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
+ },
+ "node_modules/titleize": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.14.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ },
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "dev": true
+ },
+ "@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.8.0",
+ "dev": true
+ },
+ "@eslint/eslintrc": {
+ "version": "2.1.2",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ }
+ },
+ "@eslint/js": {
+ "version": "8.49.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz",
+ "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==",
+ "dev": true
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.11",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
+ "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ }
+ },
+ "@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "dev": true
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@pkgr/utils": {
+ "version": "2.4.2",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "fast-glob": "^3.3.0",
+ "is-glob": "^4.0.3",
+ "open": "^9.1.0",
+ "picocolors": "^1.0.0",
+ "tslib": "^2.6.0"
+ }
+ },
+ "@types/json5": {
+ "version": "0.0.29",
+ "dev": true
+ },
+ "acorn": {
+ "version": "8.10.0",
+ "dev": true
+ },
+ "acorn-jsx": {
+ "version": "5.3.2",
+ "dev": true,
+ "requires": {}
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-escapes": {
+ "version": "5.0.0",
+ "dev": true,
+ "requires": {
+ "type-fest": "^1.0.2"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "1.4.0",
+ "dev": true
+ }
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "dev": true
+ },
+ "array-buffer-byte-length": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "is-array-buffer": "^3.0.1"
+ }
+ },
+ "array-includes": {
+ "version": "3.1.7",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1",
+ "is-string": "^1.0.7"
+ }
+ },
+ "array.prototype.findlastindex": {
+ "version": "1.2.3",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
+ "array.prototype.flat": {
+ "version": "1.3.1",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "array.prototype.flatmap": {
+ "version": "1.3.1",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
+ }
+ },
+ "arraybuffer.prototype.slice": {
+ "version": "1.0.1",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "get-intrinsic": "^1.2.1",
+ "is-array-buffer": "^3.0.2",
+ "is-shared-array-buffer": "^1.0.2"
+ }
+ },
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "dev": true
+ },
+ "big-integer": {
+ "version": "1.6.51",
+ "dev": true
+ },
+ "bplist-parser": {
+ "version": "0.2.0",
+ "dev": true,
+ "requires": {
+ "big-integer": "^1.6.44"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "bundle-name": {
+ "version": "3.0.0",
+ "dev": true,
+ "requires": {
+ "run-applescript": "^5.0.0"
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "4.0.0",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^4.0.0"
+ }
+ },
+ "cli-truncate": {
+ "version": "3.1.0",
+ "dev": true,
+ "requires": {
+ "slice-ansi": "^5.0.0",
+ "string-width": "^5.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "dev": true
+ },
+ "colorette": {
+ "version": "2.0.20",
+ "dev": true
+ },
+ "commander": {
+ "version": "11.0.0",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "dev": true
+ },
+ "confusing-browser-globals": {
+ "version": "1.0.11",
+ "dev": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypto-js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
+ "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
+ },
+ "dayjs": {
+ "version": "1.11.9"
+ },
+ "debug": {
+ "version": "4.3.4",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "deep-is": {
+ "version": "0.1.4",
+ "dev": true
+ },
+ "default-browser": {
+ "version": "4.0.0",
+ "dev": true,
+ "requires": {
+ "bundle-name": "^3.0.0",
+ "default-browser-id": "^3.0.0",
+ "execa": "^7.1.1",
+ "titleize": "^3.0.0"
+ }
+ },
+ "default-browser-id": {
+ "version": "3.0.0",
+ "dev": true,
+ "requires": {
+ "bplist-parser": "^0.2.0",
+ "untildify": "^4.0.0"
+ }
+ },
+ "define-lazy-prop": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "define-properties": {
+ "version": "1.2.0",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "dev": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "dev": true
+ },
+ "es-abstract": {
+ "version": "1.22.1",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.0",
+ "arraybuffer.prototype.slice": "^1.0.1",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.1",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.0",
+ "safe-array-concat": "^1.0.0",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-buffer": "^1.0.0",
+ "typed-array-byte-length": "^1.0.0",
+ "typed-array-byte-offset": "^1.0.0",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.10"
+ }
+ },
+ "es-set-tostringtag": {
+ "version": "2.0.1",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "es-shim-unscopables": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "eslint": {
+ "version": "8.49.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz",
+ "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.2",
+ "@eslint/js": "8.49.0",
+ "@humanwhocodes/config-array": "^0.11.11",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ }
+ },
+ "eslint-config-airbnb-base": {
+ "version": "15.0.0",
+ "dev": true,
+ "requires": {
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.5",
+ "semver": "^6.3.0"
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "9.0.0",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.8.0",
+ "dev": true,
+ "requires": {
+ "debug": "^3.2.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.28.1",
+ "dev": true,
+ "requires": {
+ "array-includes": "^3.1.6",
+ "array.prototype.findlastindex": "^1.2.2",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.8.0",
+ "has": "^1.0.3",
+ "is-core-module": "^2.13.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.6",
+ "object.groupby": "^1.0.0",
+ "object.values": "^1.1.6",
+ "semver": "^6.3.1",
+ "tsconfig-paths": "^3.14.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "dev": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "doctrine": {
+ "version": "2.1.0",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ }
+ }
+ },
+ "eslint-plugin-prettier": {
+ "version": "5.0.0",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.5"
+ }
+ },
+ "eslint-scope": {
+ "version": "7.2.2",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.4.3",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.6.1",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ }
+ },
+ "esquery": {
+ "version": "1.5.0",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "5.0.1",
+ "dev": true
+ },
+ "execa": {
+ "version": "7.2.0",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.3.0",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.3.1",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "dependencies": {
+ "glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "dev": true
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.15.0",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "dev": true,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.1.0",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.2.7",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "dev": true
+ },
+ "for-each": {
+ "version": "0.3.3",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "dev": true
+ },
+ "function.prototype.name": {
+ "version": "1.1.6",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ }
+ },
+ "functions-have-names": {
+ "version": "1.2.3",
+ "dev": true
+ },
+ "get-intrinsic": {
+ "version": "1.2.1",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "dev": true
+ },
+ "get-symbol-description": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "glob": {
+ "version": "7.2.3",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "globals": {
+ "version": "13.21.0",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "globalthis": {
+ "version": "1.0.3",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
+ "gopd": {
+ "version": "1.0.1",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "graphemer": {
+ "version": "1.4.0",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-bigints": {
+ "version": "1.0.2",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "has-proto": {
+ "version": "1.0.1",
+ "dev": true
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "dev": true
+ },
+ "has-tostringtag": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "human-signals": {
+ "version": "4.3.1",
+ "dev": true
+ },
+ "husky": {
+ "version": "8.0.3",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.2.4",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "dev": true
+ },
+ "internal-slot": {
+ "version": "1.0.5",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.2.0",
+ "has": "^1.0.3",
+ "side-channel": "^1.0.4"
+ }
+ },
+ "is-array-buffer": {
+ "version": "3.0.2",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "is-bigint": {
+ "version": "1.0.4",
+ "dev": true,
+ "requires": {
+ "has-bigints": "^1.0.1"
+ }
+ },
+ "is-boolean-object": {
+ "version": "1.1.2",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.13.0",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-date-object": {
+ "version": "1.0.5",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-docker": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-inside-container": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "is-docker": "^3.0.0"
+ }
+ },
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "dev": true
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "dev": true
+ },
+ "is-number-object": {
+ "version": "1.0.7",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-path-inside": {
+ "version": "3.0.3",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-shared-array-buffer": {
+ "version": "1.0.2",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-stream": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "is-string": {
+ "version": "1.0.7",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "is-symbol": {
+ "version": "1.0.4",
+ "dev": true,
+ "requires": {
+ "has-symbols": "^1.0.2"
+ }
+ },
+ "is-typed-array": {
+ "version": "1.1.12",
+ "dev": true,
+ "requires": {
+ "which-typed-array": "^1.1.11"
+ }
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "dev": true,
+ "requires": {
+ "is-docker": "^2.0.0"
+ },
+ "dependencies": {
+ "is-docker": {
+ "version": "2.2.1",
+ "dev": true
+ }
+ }
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "dev": true
+ },
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "dev": true
+ },
+ "json5": {
+ "version": "1.0.2",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "keyv": {
+ "version": "4.5.3",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "levn": {
+ "version": "0.4.1",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "lilconfig": {
+ "version": "2.1.0",
+ "dev": true
+ },
+ "lint-staged": {
+ "version": "14.0.1",
+ "dev": true,
+ "requires": {
+ "chalk": "5.3.0",
+ "commander": "11.0.0",
+ "debug": "4.3.4",
+ "execa": "7.2.0",
+ "lilconfig": "2.1.0",
+ "listr2": "6.6.1",
+ "micromatch": "4.0.5",
+ "pidtree": "0.6.0",
+ "string-argv": "0.3.2",
+ "yaml": "2.3.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "5.3.0",
+ "dev": true
+ }
+ }
+ },
+ "listr2": {
+ "version": "6.6.1",
+ "dev": true,
+ "requires": {
+ "cli-truncate": "^3.1.0",
+ "colorette": "^2.0.20",
+ "eventemitter3": "^5.0.1",
+ "log-update": "^5.0.1",
+ "rfdc": "^1.3.0",
+ "wrap-ansi": "^8.1.0"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "dev": true,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "lodash.merge": {
+ "version": "4.6.2",
+ "dev": true
+ },
+ "log-update": {
+ "version": "5.0.1",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "^5.0.0",
+ "cli-cursor": "^4.0.0",
+ "slice-ansi": "^5.0.0",
+ "strip-ansi": "^7.0.1",
+ "wrap-ansi": "^8.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "dev": true
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mimic-fn": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "5.1.0",
+ "dev": true,
+ "requires": {
+ "path-key": "^4.0.0"
+ },
+ "dependencies": {
+ "path-key": {
+ "version": "4.0.0",
+ "dev": true
+ }
+ }
+ },
+ "object-inspect": {
+ "version": "1.12.3",
+ "dev": true
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "object.entries": {
+ "version": "1.1.7",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "object.fromentries": {
+ "version": "2.0.7",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "object.groupby": {
+ "version": "1.0.1",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "get-intrinsic": "^1.2.1"
+ }
+ },
+ "object.values": {
+ "version": "1.1.7",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "6.0.0",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^4.0.0"
+ }
+ },
+ "open": {
+ "version": "9.1.0",
+ "dev": true,
+ "requires": {
+ "default-browser": "^4.0.0",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "is-wsl": "^2.2.0"
+ }
+ },
+ "optionator": {
+ "version": "0.9.3",
+ "dev": true,
+ "requires": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "dev": true,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "dev": true,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "dev": true
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "dev": true
+ },
+ "pidtree": {
+ "version": "0.6.0",
+ "dev": true
+ },
+ "prelude-ls": {
+ "version": "1.2.1",
+ "dev": true
+ },
+ "prettier": {
+ "version": "3.0.3",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "punycode": {
+ "version": "2.3.0",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "dev": true
+ },
+ "regexp.prototype.flags": {
+ "version": "1.5.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
+ }
+ },
+ "resolve": {
+ "version": "1.22.4",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "4.0.0",
+ "dev": true,
+ "requires": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "2.1.0",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ }
+ }
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "dev": true
+ },
+ "rfdc": {
+ "version": "1.3.0",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-applescript": {
+ "version": "5.0.0",
+ "dev": true,
+ "requires": {
+ "execa": "^5.0.0"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "5.1.1",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "dev": true
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "dev": true
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "dev": true,
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "dev": true
+ }
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "safe-array-concat": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.0",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ }
+ },
+ "safe-regex-test": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-regex": "^1.1.4"
+ }
+ },
+ "semver": {
+ "version": "6.3.1",
+ "dev": true
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "dev": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "5.0.0",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "6.2.1",
+ "dev": true
+ }
+ }
+ },
+ "string-argv": {
+ "version": "0.3.2",
+ "dev": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "dev": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "string.prototype.trim": {
+ "version": "1.2.7",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.7",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "strip-final-newline": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "dev": true
+ },
+ "synckit": {
+ "version": "0.8.5",
+ "dev": true,
+ "requires": {
+ "@pkgr/utils": "^2.3.1",
+ "tslib": "^2.5.0"
+ }
+ },
+ "tdesign-miniprogram": {
+ "version": "1.8.6",
+ "resolved": "https://mirrors.tencent.com/npm/tdesign-miniprogram/-/tdesign-miniprogram-1.8.6.tgz",
+ "integrity": "sha512-FbV6/1Evfc5qoy7NQPuLwsrnAGytAAbKkPN/eaA02Qe5YxBgsJlYM7oXI5rSiinjjOC6T/wbGTFurEH/ASd+dQ==",
+ "requires": {
+ "dayjs": "^1.10.7",
+ "tinycolor2": "^1.4.2"
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "dev": true
+ },
+ "tinycolor2": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
+ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="
+ },
+ "titleize": {
+ "version": "3.0.0",
+ "dev": true
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "tsconfig-paths": {
+ "version": "3.14.2",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "tslib": {
+ "version": "2.6.2",
+ "dev": true
+ },
+ "type-check": {
+ "version": "0.4.0",
+ "dev": true,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "dev": true
+ },
+ "typed-array-buffer": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "typed-array-byte-length": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "typed-array-byte-offset": {
+ "version": "1.0.0",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "has-proto": "^1.0.1",
+ "is-typed-array": "^1.1.10"
+ }
+ },
+ "typed-array-length": {
+ "version": "1.0.4",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ }
+ },
+ "unbox-primitive": {
+ "version": "1.0.2",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ }
+ },
+ "untildify": {
+ "version": "4.0.0",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-boxed-primitive": {
+ "version": "1.0.2",
+ "dev": true,
+ "requires": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ }
+ },
+ "which-typed-array": {
+ "version": "1.1.11",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "dev": true
+ },
+ "yaml": {
+ "version": "2.3.1",
+ "dev": true
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "dev": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..069a9b6
--- /dev/null
+++ b/package.json
@@ -0,0 +1,42 @@
+{
+ "name": "tdesign-miniprogram-starter",
+ "version": "0.0.2",
+ "main": "index.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "lint": "npx eslint ./ --no-eslintrc -c ./.eslintrc.js",
+ "lint:fix": "npm run lint:fix-eslint && npm run lint:fix-prettier",
+ "lint:fix-eslint": "eslint --ext .js,.ts ./ --max-warnings 0 --ignore-path .gitignore --ignore-path .eslintignore --fix",
+ "lint:fix-prettier": "prettier ./ --ignore-path .gitignore --ignore-path .eslintignore --ignore-path .prettierignore --write './**/*.{js,ts}' --ignore-unknown"
+ },
+ "keywords": [
+ "wechat",
+ "miniprogram",
+ "starter"
+ ],
+ "author": "leejim",
+ "license": "MIT",
+ "description": "a start-kit for wechat miniprogram powerby TDesign miniprogram",
+ "dependencies": {
+ "crypto-js": "^4.2.0",
+ "tdesign-miniprogram": "^1.8.6"
+ },
+ "devDependencies": {
+ "eslint": "^8.49.0",
+ "eslint-config-airbnb-base": "^15.0.0",
+ "eslint-config-prettier": "^9.0.0",
+ "eslint-plugin-import": "^2.28.1",
+ "eslint-plugin-prettier": "^5.0.0",
+ "husky": "^8.0.3",
+ "lint-staged": "^14.0.1",
+ "prettier": "^3.0.2"
+ },
+ "lint-staged": {
+ "{src,example,script}/**/*.{js,ts,wxml,html,json,less}": [
+ "prettier --write"
+ ],
+ "**/*.{js,ts}": [
+ "eslint --fix"
+ ]
+ }
+}
diff --git a/pages/home/index.js b/pages/home/index.js
new file mode 100644
index 0000000..ef3721f
--- /dev/null
+++ b/pages/home/index.js
@@ -0,0 +1,527 @@
+import * as echarts from '../../ec-canvas/echarts.min';
+import request from '~/api/request';
+const app = getApp();
+
+function initChart(canvas, width, height, dpr) {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr
+ });
+ canvas.setChart(chart);
+
+ var option = {
+ title: {
+ text: '',
+ left: 'left',
+ fontSize: 6
+ },
+ legend: {
+ data: ['实际身高', '标准范围'],
+ bottom: 0,
+ left: 'center',
+ z: 100
+ },
+ grid: {
+ containLabel: true,
+ top: '5%',
+ left: '1%',
+ right: '5%',
+ bottom: '10%'
+ },
+ tooltip: {
+ show: true,
+ trigger: 'axis'
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['出生', '1月', '2月', '3月', '4月', '5月'],
+ },
+ yAxis: {
+ x: 'center',
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ type: 'dashed'
+ }
+ }
+ },
+ series: [{
+ name: '实际身高',
+ type: 'line',
+ smooth: true,
+ data: []
+ }, {
+ name: '标准范围',
+ type: 'line',
+ smooth: true,
+ data: [120, 130, 140, 150, 160, 170]
+ }]
+ };
+
+ chart.setOption(option);
+ return chart;
+}
+
+function initChart2(canvas, width, height, dpr) {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr
+ });
+ canvas.setChart(chart);
+
+ var option = {
+ title: {
+ text: '',
+ left: 'left',
+ fontSize: 12
+ },
+ legend: {
+ data: ['实际体重', '标准范围'],
+ bottom: 0,
+ left: 'center',
+ z: 100
+ },
+ grid: {
+ containLabel: true,
+ top: '5%',
+ left: '1%',
+ right: '5%',
+ bottom: '10%'
+ },
+ tooltip: {
+ show: true,
+ trigger: 'axis'
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['出生', '1月', '2月', '3月', '4月', '5月'],
+ },
+ yAxis: {
+ x: 'center',
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ type: 'dashed'
+ }
+ }
+ },
+ series: [{
+ name: '实际体重',
+ type: 'line',
+ smooth: true,
+ data: []
+ }, {
+ name: '标准范围',
+ type: 'line',
+ smooth: true,
+ data: [120, 130, 140, 150, 160, 170]
+ }]
+ };
+
+ chart.setOption(option);
+ return chart;
+}
+
+Page({
+ onShareAppMessage: function (res) {
+ return {
+ title: 'ECharts 可以在微信小程序中使用啦!',
+ path: '/pages/index/index',
+ success: function () { },
+ fail: function () { }
+ }
+ },
+ data: {
+ ec: {
+ lazyLoad: true
+ },
+ ec2: {
+ lazyLoad: true
+ },
+ activeIndex: 0,
+ sfData:{},
+ sfListLength: 0,
+ articles:[],
+ articlesLength: 0,
+ heightData: [],
+ weightData: [],
+ heightChart: null,
+ weightChart: null,
+ carList: [],
+ carLength: 0
+ },
+
+ // Helper function to strip HTML tags and convert to plain text
+ stripHtml(html) {
+ if (!html) return '';
+ return html.replace(/<[^>]*>/g, '');
+ },
+
+ async getSfList(){
+
+ this.followPlans()
+ this.getArticleList()
+ this.getCarList()
+ },
+ async followPlans(){
+ const res = await request('patient/follow_plans', 'get', {
+ page: 1,
+ page_size: 10,
+ type: 1
+ })
+
+ // Calculate days between today and plan_date
+ const today = new Date()
+ const planDate = new Date(res.list[0].plan_date)
+ const diffTime = planDate - today
+ const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24))
+
+ this.setData({
+ sfListLength: res.total,
+ sfData: {
+ ...res.list[0],
+ daysUntilPlan: diffDays
+ }
+ })
+ },
+ async getArticleList(){
+ const res2 = await request('patient/articles', 'get', { title: '', page: 1, page_size: 2 });
+ // Convert rich text content to plain text
+ const plainTextContent = this.stripHtml(res2.list[0].content);
+ const articleList = res2.list.map(item => {
+ return {
+ ...item,
+ contentText: this.stripHtml(item.content)
+ }
+ })
+ this.setData({
+ articlesLength: res2.total,
+ articles: articleList
+ })
+ },
+
+ async getCarList() {
+ const res3 = await request('patient/medicine_records', 'get', {
+ time_type: 1,
+ status: 0,
+ page: 1,
+ page_size: 10
+ })
+ const carList = res3.list.map(item => {
+ item.detail = JSON.parse(item.detail)
+ return item
+ })
+ setTimeout(() => {
+ this.setData({
+ carLength: res3.total,
+ carList: carList
+ })
+ })
+ },
+
+ async medicineRecord(e){
+ const {id, status} = e.currentTarget.dataset
+ if(status == 1){
+ await request('patient/medicine_record/'+id, 'put', {})
+ wx.showToast({
+ type: 'success',
+ title: '打卡成功',
+ })
+ this.getCarList()
+ }
+ },
+
+ async getChartData(){
+ const res = await request('patient/chat/0', 'get')
+ const heightData = []
+ const weightData = []
+
+ if(res.list.length > 0){
+ res.list.forEach(item => {
+ heightData.push(item.height)
+ weightData.push(item.weight)
+ })
+ }
+
+ this.setData({
+ heightData,
+ weightData
+ }, () => {
+ this.initCharts();
+ });
+ },
+
+ initCharts() {
+ // 初始化身高图表
+ if (!this.heightChart) {
+ const chart1 = this.selectComponent('#mychart-dom-height');
+ if (chart1) {
+ chart1.init((canvas, width, height, dpr) => {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr
+ });
+ canvas.setChart(chart);
+
+ const option = {
+ title: {
+ text: '',
+ left: 'left',
+ fontSize: 6
+ },
+ legend: {
+ data: ['实际身高', '标准范围'],
+ bottom: 0,
+ left: 'center',
+ z: 100
+ },
+ grid: {
+ containLabel: true,
+ top: '5%',
+ left: '1%',
+ right: '5%',
+ bottom: '10%'
+ },
+ tooltip: {
+ show: true,
+ trigger: 'axis'
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['出生', '1月', '2月', '3月', '4月', '5月'],
+ },
+ yAxis: {
+ x: 'center',
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ type: 'dashed'
+ }
+ }
+ },
+ series: [{
+ name: '实际身高',
+ type: 'line',
+ smooth: true,
+ data: this.data.heightData
+ }, {
+ name: '标准范围',
+ type: 'line',
+ smooth: true,
+ data: [120, 130, 140, 150, 160, 170]
+ }]
+ };
+
+ chart.setOption(option);
+ this.heightChart = chart;
+ return chart;
+ });
+ }
+ }
+
+ // 初始化体重图表
+ if (!this.weightChart) {
+ const chart2 = this.selectComponent('#mychart-dom-weight');
+ if (chart2) {
+ chart2.init((canvas, width, height, dpr) => {
+ const chart = echarts.init(canvas, null, {
+ width: width,
+ height: height,
+ devicePixelRatio: dpr
+ });
+ canvas.setChart(chart);
+
+ const option = {
+ title: {
+ text: '',
+ left: 'left',
+ fontSize: 12
+ },
+ legend: {
+ data: ['实际体重', '标准范围'],
+ bottom: 0,
+ left: 'center',
+ z: 100
+ },
+ grid: {
+ containLabel: true,
+ top: '5%',
+ left: '1%',
+ right: '5%',
+ bottom: '10%'
+ },
+ tooltip: {
+ show: true,
+ trigger: 'axis'
+ },
+ xAxis: {
+ type: 'category',
+ boundaryGap: false,
+ data: ['出生', '1月', '2月', '3月', '4月', '5月'],
+ },
+ yAxis: {
+ x: 'center',
+ type: 'value',
+ splitLine: {
+ lineStyle: {
+ type: 'dashed'
+ }
+ }
+ },
+ series: [{
+ name: '实际体重',
+ type: 'line',
+ smooth: true,
+ data: this.data.weightData
+ }, {
+ name: '标准范围',
+ type: 'line',
+ smooth: true,
+ data: [120, 130, 140, 150, 160, 170]
+ }]
+ };
+
+ chart.setOption(option);
+ this.weightChart = chart;
+ return chart;
+ });
+ }
+ }
+ },
+ toBack(){
+ wx.navigateBack({
+ delta: 1
+ })
+ },
+ onLoad(){
+ // this.getSfList()
+ // setTimeout(() => {
+ // this.getChartData().then(() => {
+ // if (this.data.activeIndex === 0) {
+ // this.initHeightChart();
+ // } else {
+ // this.initWeightChart();
+ // }
+ // });
+ // }, 500);
+ },
+
+ onReady() {
+ // setTimeout(() => {
+ // this.getChartData().then(() => {
+ // if (this.data.activeIndex === 0) {
+ // this.initHeightChart();
+ // } else {
+ // this.initWeightChart();
+ // }
+ // });
+ // }, 500);
+ },
+
+ changeChart(e) {
+ const index = e.currentTarget.dataset.index;
+ if(index == this.data.activeIndex){
+ return
+ }
+ this.setData({
+ activeIndex: index
+ }, () => {
+ setTimeout(() => {
+ if (index == 0) {
+ this.initHeightChart();
+ } else {
+ this.initWeightChart();
+ }
+ }, 100);
+ });
+ },
+
+ toClockIn(){
+ wx.navigateTo({
+ url: '/pages/clockIn/index',
+ })
+ },
+ toEmergency(){
+ wx.navigateTo({
+ url: '/pages/emergency/index',
+ })
+ },
+ toArticle(){
+ wx.navigateTo({
+ url: '/pages/articleList/index',
+ })
+ },
+ async toArticleDelit(e){
+ const index = e.currentTarget.dataset.index;
+ await wx.setStorageSync('article',JSON.stringify(this.data.articles[index]));
+ wx.navigateTo({
+ url: '/pages/article/index',
+ })
+ },
+
+ onUnload() {
+ // 页面卸载时销毁图表实例
+ if (this.heightChart) {
+ this.heightChart.dispose();
+ this.heightChart = null;
+ }
+ if (this.weightChart) {
+ this.weightChart.dispose();
+ this.weightChart = null;
+ }
+ },
+
+ // 初始化身高图表
+ initHeightChart() {
+ const chartComp = this.selectComponent('#mychart-dom-height');
+ if (chartComp) {
+ chartComp.init((canvas, width, height, dpr) => {
+ const chart = echarts.init(canvas, null, { width, height, devicePixelRatio: dpr });
+ canvas.setChart(chart);
+ chart.setOption({
+ title: { text: '', left: 'left', fontSize: 6 },
+ legend: { data: ['实际身高', '标准范围'], bottom: 0, left: 'center', z: 100 },
+ grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '10%' },
+ tooltip: { show: true, trigger: 'axis' },
+ xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月'] },
+ yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
+ series: [
+ { name: '实际身高', type: 'line', smooth: true, data: this.data.heightData },
+ { name: '标准范围', type: 'line', smooth: true, data: [120, 130, 140, 150, 160, 170] }
+ ]
+ });
+ return chart;
+ });
+ }
+ },
+
+ // 初始化体重图表
+ initWeightChart() {
+ const chartComp = this.selectComponent('#mychart-dom-weight');
+ if (chartComp) {
+ chartComp.init((canvas, width, height, dpr) => {
+ const chart = echarts.init(canvas, null, { width, height, devicePixelRatio: dpr });
+ canvas.setChart(chart);
+ chart.setOption({
+ title: { text: '', left: 'left', fontSize: 12 },
+ legend: { data: ['实际体重', '标准范围'], bottom: 0, left: 'center', z: 100 },
+ grid: { containLabel: true, top: '5%', left: '1%', right: '5%', bottom: '10%' },
+ tooltip: { show: true, trigger: 'axis' },
+ xAxis: { type: 'category', boundaryGap: false, data: ['出生', '1月', '2月', '3月', '4月', '5月'] },
+ yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } } },
+ series: [
+ { name: '实际体重', type: 'line', smooth: true, data: this.data.weightData },
+ { name: '标准范围', type: 'line', smooth: true, data: [120, 130, 140, 150, 160, 170] }
+ ]
+ });
+ return chart;
+ });
+ }
+ },
+});
\ No newline at end of file
diff --git a/pages/home/index.json b/pages/home/index.json
new file mode 100644
index 0000000..efb5c0b
--- /dev/null
+++ b/pages/home/index.json
@@ -0,0 +1,17 @@
+{
+ "navigationStyle": "custom",
+ "navigationBarTitleText": "首页",
+ "usingComponents": {
+ "t-tabs": "tdesign-miniprogram/tabs/tabs",
+ "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
+ "t-swiper": "tdesign-miniprogram/swiper/swiper",
+ "t-swiper-nav": "tdesign-miniprogram/swiper-nav/swiper-nav",
+ "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh",
+ "t-message": "tdesign-miniprogram/message/message",
+ "t-button": "tdesign-miniprogram/button/button",
+ "t-icon": "tdesign-miniprogram/icon/icon",
+ "nav": "/components/nav",
+ "card": "/components/card",
+ "ec-canvas": "../../ec-canvas/ec-canvas"
+ }
+}
diff --git a/pages/home/index.less b/pages/home/index.less
new file mode 100644
index 0000000..7abc1ff
--- /dev/null
+++ b/pages/home/index.less
@@ -0,0 +1,413 @@
+@import '/variable.less';
+
+@home-tab-item-height: 96rpx;
+
+.home-container {
+ height: calc(100vh - @tab-bar-height);
+ padding-top: 88rpx;
+ position: relative;
+ .home-top-bg{
+ width: 100%;
+ height: auto;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 0;
+ }
+
+
+ .group_1 {
+ position: relative;
+ z-index: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin: 16rpx 0 16rpx 24rpx;
+ }
+ .image_2 {
+ width: 24rpx;
+ height: 48rpx;
+ position: absolute;
+ top: 4rpx;
+ left: 0;
+ z-index: 1;
+ }
+ .text_1 {
+ display: flex;
+ flex-direction: column;
+ }
+ .image_3 {
+ width: 174rpx;
+ height: 64rpx;
+ margin-left: 102rpx;
+ }
+
+ .home-content {
+ // height: calc(100% - @nav-bar-height);
+ padding: 28rpx;
+ padding-bottom: 0;
+ position: relative;
+ z-index: 1;
+ .item-title-img{
+ height: 36rpx;
+ // width: auto;
+ }
+ .item-title-img-2{
+ height: 96rpx;
+ position: relative;
+ left: -24rpx;
+ // margin-top: -28rpx;
+ }
+ .item-title {
+ font-family: Alibaba-PuHuiTi, Alibaba-PuHuiTi;
+ font-weight: normal;
+ font-size: 36rpx;
+ color: var(--td-text-color);
+ line-height: 36rpx;
+ font-style: normal;
+ text-transform: none;
+ margin-bottom: 28rpx;
+ .item-title-icon{
+ vertical-align: middle;
+ width: 36rpx;
+ height: 36rpx;
+ margin-right: 20rpx;
+ position: relative;
+ top: -4rpx;
+ left: 20rpx;
+ }
+
+
+ }
+ .item-content {
+ background-color: #fff;
+ border-radius: 24rpx;
+ padding: 28rpx;
+ margin-bottom: 28rpx;
+
+
+
+ .echarts-canvas-container {
+ width: 100%;
+ height: 600rpx;
+ }
+
+ .echarts-canvas {
+ width: 100%;
+ height: 100%;
+ }
+
+ .echarts-legend {
+ display: flex;
+ margin-bottom: 20rpx;
+ margin-top: 20rpx;
+
+ view {
+ margin-right: 20rpx;
+ }
+
+ .active {
+ color: #0091cc;
+ text-decoration: underline;
+ }
+ }
+
+ .item-title {
+ position: relative;
+ .item-title-icon{
+ vertical-align: middle;
+ width: 36rpx;
+ height: 36rpx;
+ margin-right: 20rpx;
+ }
+ .item-title-right-text {
+ position: absolute;
+ right: 0;
+ top: 0;
+ color: #606266;
+ font-size: 26rpx;
+ }
+ }
+ .item-content-1-bg{
+ position: absolute;
+ z-index: 0;
+ right: 0;
+ top: 0;
+ width: 240rpx;
+ height: 240rpx;
+ }
+ .item-box {
+ background-color: #fff;
+ border-radius: 12rpx;
+ padding: 26rpx;
+ margin-top: 20rpx;
+ position: relative;
+
+ .item-box-title {
+ display: flex;
+ justify-content: space-between;
+ box-sizing: border-box;
+ margin-bottom: 20rpx;
+
+ .item-box-title-left {
+ font-size: 28rpx;
+ color: #323030;
+ }
+
+ .item-box-title-right {
+ font-size: 24rpx;
+ color: #949798;
+ }
+ }
+
+ .drug-name {
+ font-size: 32rpx;
+ color: var(--td-text-color);
+ margin-bottom: 8rpx;
+ }
+
+ .drug-usage {
+ font-size: 26rpx;
+ color: #323030;
+ margin-bottom: 20rpx;
+ }
+
+ .follow-up-itme {
+ font-size: 28rpx;
+ color: #909399;
+ }
+
+ .follow-itme-ed {
+ color: #00B095;
+ font-size: 32rpx;
+ position: absolute;
+ right: 30rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+
+ .article-content {
+ margin-top: 20rpx;
+ font-size: 28rpx;
+ color: #606266;
+ line-height: 44rpx;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+ overflow: hidden;
+ word-break: break-word;
+
+ }
+
+ }
+
+ }
+ .item-content-3{
+ padding-left: 0;
+ padding-right: 0;
+ background-color: transparent;
+ .item-box{
+ // background-color: transparent;
+ box-shadow: 0rpx 2rpx 20rpx 0rpx rgba(178,178,178,0.05);
+ border-radius: 24rpx;
+ }
+ .item-title-icon{
+ margin-right: 18rpx;
+ }
+
+ }
+ .item-content-2{
+ background: linear-gradient( 180deg, #E7F2F2 0%, #F7FCFC 100%);
+ box-shadow: 0rpx 2rpx 20rpx 0rpx #E9F4F3;
+ border-radius: 24rpx;
+ border: 2rpx solid #FFFFFF;
+ position: relative;
+ padding-top:0 ;
+ .item-title{
+ margin-bottom: 0;
+ }
+ .item-box{
+ margin-top: 0;
+ }
+ }
+ }
+ .item-content-1{
+ background: linear-gradient( 180deg, #EDF3F8 0%, #F7FAFC 100%);
+ box-shadow: 0rpx 2rpx 20rpx 0rpx #EDF3F8;
+ border-radius: 24rpx;
+ border: 2rpx solid #FFFFFF;
+ position: relative;
+ }
+
+
+
+}
+
+.emergency-access {
+ position: fixed;
+ right: 40rpx;
+ bottom: 220rpx;
+ background-color: red;
+ color: #fff;
+ width: 90rpx;
+ height: 90rpx;
+ z-index: 9999;
+ border-radius: 120rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);
+}
+
+.box_3 {
+ background-color: rgba(245,245,245,1.000000);
+ border-radius: 28rpx;
+ width: 250rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ padding: 4rpx 28rpx 4rpx 4rpx;
+ white-space: nowrap;
+ margin-bottom: 16rpx;
+ margin-left:-4rpx;
+}
+.text-wrapper_1 {
+ border-radius: 28rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 12rpx 24rpx 12rpx 24rpx;
+}
+.text-act{
+ background-color: rgba(255,255,255,1.000000);
+
+}
+.text_2 {
+ overflow-wrap: break-word;
+ color: rgba(34,34,34,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.echarts-title{
+ font-size: 24rpx;
+ color: #909399;
+ line-height: 34rpx;
+}
+.image-text_3 {
+ width: 110rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 32rpx 0rpx 18rpx 0;
+}
+.box_6 {
+ border-radius: 100%;
+ width: 16rpx;
+ height: 16rpx;
+ border: 2px solid rgba(0,91,162,1);
+ display: flex;
+ flex-direction: column;
+ margin: 6rpx 0 6rpx 0;
+ box-sizing: border-box;
+}
+.text-group_3 {
+ overflow-wrap: break-word;
+ color: rgba(34,34,34,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+}
+.box_9 {
+ background-color: rgba(255,255,255,1.000000);
+ border-radius: 16rpx;
+ position: relative;
+ z-index: 1;
+ flex-direction: row;
+ display: flex;
+ justify-content: flex-center;
+ padding: 24rpx 24rpx 24rpx 24rpx;
+ margin-left: 30rpx;
+}
+.image-text_5 {
+ width: 298rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.box_10 {
+ border-radius: 16rpx;
+ background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/c46fcd8a7c644cbbb347a75b175350c6_mergeImage.png);
+ width: 100rpx;
+ height: 100rpx;
+ border: 1px solid rgba(0,91,162,0.1);
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ margin-right:16rpx ;
+}
+.text-group_5 {
+ display: flex;
+ flex-direction: column;
+ margin: 12rpx 0 12rpx 0;
+}
+.text_21 {
+ overflow-wrap: break-word;
+ color: rgba(34,34,34,1);
+ font-size: 32rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ white-space: nowrap;
+ line-height: 32rpx;
+ margin-right: 86rpx;
+}
+.text_22 {
+ overflow-wrap: break-word;
+ color: rgba(144,147,153,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin-top: 16rpx;
+}
+.box_11 {
+ background-color: rgba(237,243,248,1.000000);
+ width: 2rpx;
+ height: 62rpx;
+ display: flex;
+ flex-direction: column;
+ margin: 20rpx 0 18rpx 100rpx;
+}
+.text-wrapper_6 {
+
+ border-radius: 32rpx;
+ display: flex;
+ flex-direction: column;
+ margin: 22rpx 0 22rpx 24rpx;
+ padding: 12rpx 40rpx 12rpx 40rpx;
+ .text_23 {
+ color:rgba(0,91,162,1.000000);
+ }
+}
+.catArt{
+ background-color: rgba(0,91,162,1.000000);
+
+ .text_23 {
+ color: #fff;
+ }
+}
+.text_23 {
+ overflow-wrap: break-word;
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 32rpx;
+}
\ No newline at end of file
diff --git a/pages/home/index.wxml b/pages/home/index.wxml
new file mode 100644
index 0000000..65a3112
--- /dev/null
+++ b/pages/home/index.wxml
@@ -0,0 +1,100 @@
+
+
+
+
+
+ 患者详情页
+
+
+
+
+ 宝宝成长曲线
+
+
+
+
+ 身高曲线
+
+
+ 体重曲线
+
+
+ {{activeIndex == 0 ? '身高(cm)':'体重(g)'}}
+
+
+
+
+
+
+
+
+
+
+ 更多
+
+
+
+
+
+
+ {{item.medicine_time}}
+
+
+
+
+
+ {{item2.name}}
+ {{item2.frequency}}片,{{item2.time}}服用
+
+
+
+
+ {{item.status=='2'?'已打卡':'打卡'}}
+
+
+
+
+
+
+
+
+
+
+
+ {{sfData.plan_name}}
+
+
+
+ 随访时间:{{sfData.plan_date}}
+
+ {{sfData.daysUntilPlan}}天后
+
+
+
+
+ 健康推送
+
+ 更多
+
+
+
+
+ {{item.title}}
+
+
+ {{item.contentText}}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/login/login.js b/pages/login/login.js
new file mode 100644
index 0000000..c534bd3
--- /dev/null
+++ b/pages/login/login.js
@@ -0,0 +1,170 @@
+import request from '~/api/request';
+
+Page({
+ data: {
+ phoneNumber: '',
+ isPhoneNumber: false,
+ isCheck: false,
+ isSubmit: false,
+ isPasswordLogin: false,
+ passwordInfo: {
+ account: '',
+ password: '',
+ },
+ radioValue: '',
+ code: ''
+ },
+ onLoad() {
+ wx.login({
+ success(res) {
+ console.log(res.code)
+ if (res.code) {
+ //发起网络请求
+
+ } else {
+ console.log('登录失败!' + res.errMsg)
+ }
+ }
+ })
+ },
+ async getPhoneNumber(e) {
+ // console.log(e.detail.code) // 动态令牌
+ // console.log(e.detail.errMsg) // 回调信息(成功失败都会返回)
+ // console.log(e.detail.errno) // 错误码(失败时返回)
+ if (e.detail.code) {
+ const res = await request('doctor/quick_login', 'post', {
+ code: e.detail.code
+ })
+ await wx.setStorageSync('access_token', res.token);
+ if (res.is_personal_information_complete) {
+ wx.switchTab({
+ url: `/pages/my/index`,
+ });
+ } else {
+ wx.navigateTo({
+ url: `/pages/my/info-edit/index`,
+ });
+ }
+
+ } else {
+ wx.showToast({
+ title: '登录失败',
+ icon: 'none'
+ })
+ }
+ },
+ /* 自定义功能函数 */
+ changeSubmit() {
+ if (this.data.isPasswordLogin) {
+ if (this.data.passwordInfo.account !== '' && this.data.passwordInfo.password !== '' && this.data.isCheck) {
+ this.setData({
+ isSubmit: true
+ });
+ } else {
+ this.setData({
+ isSubmit: false
+ });
+ }
+ } else if (this.data.isPhoneNumber && this.data.isCheck) {
+ this.setData({
+ isSubmit: true
+ });
+ } else {
+ this.setData({
+ isSubmit: false
+ });
+ }
+ },
+
+ // 手机号变更
+ onPhoneInput(e) {
+ const isPhoneNumber = /^[1][3,4,5,7,8,9][0-9]{9}$/.test(e.detail.value);
+ this.setData({
+ isPhoneNumber,
+ phoneNumber: e.detail.value,
+ });
+ this.changeSubmit();
+ },
+
+ // 用户协议选择变更
+ onCheckChange(e) {
+ const {
+ value
+ } = e.detail;
+ this.setData({
+ radioValue: value,
+ isCheck: value === 'agree',
+ });
+ this.changeSubmit();
+ },
+ onCodeInput(e) {
+ this.setData({
+ code: e.detail.value
+ });
+ },
+
+ onAccountChange(e) {
+ this.setData({
+ passwordInfo: {
+ ...this.data.passwordInfo,
+ account: e.detail.value
+ }
+ });
+ this.changeSubmit();
+ },
+
+ onPasswordChange(e) {
+ this.setData({
+ passwordInfo: {
+ ...this.data.passwordInfo,
+ password: e.detail.value
+ }
+ });
+ this.changeSubmit();
+ },
+
+ // 切换登录方式
+ changeLogin() {
+ this.setData({
+ isPasswordLogin: !this.data.isPasswordLogin,
+ isSubmit: false
+ });
+ },
+ toLoginCode(){
+ wx.navigateTo({
+ url: `/pages/loginCode/loginCode`,
+ });
+ },
+ async login() {
+
+ const res = await request('patient/code_login', 'post', {
+ code: this.data.code,
+ mobile: this.data.phoneNumber
+ });
+ await wx.setStorageSync('access_token', res.token);
+ if (res.is_personal_information_complete) {
+ wx.switchTab({
+ url: `/pages/my/index`,
+ });
+ } else {
+ wx.navigateTo({
+ url: `/pages/my/info-edit/index`,
+ });
+ }
+
+ },
+ // 获取验证码
+
+ async getCode() {
+ const res = await request('patient/send_code', 'post', {
+ mobile: this.data.phoneNumber,
+ type: 1
+ });
+ },
+ uploadPass() {
+
+ wx.navigateTo({
+ url: `/pages/forGetPassword/index`,
+ })
+ }
+});
\ No newline at end of file
diff --git a/pages/login/login.json b/pages/login/login.json
new file mode 100644
index 0000000..92048bf
--- /dev/null
+++ b/pages/login/login.json
@@ -0,0 +1,12 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {
+ "t-navbar": "tdesign-miniprogram/navbar/navbar",
+ "t-input": "tdesign-miniprogram/input/input",
+ "t-icon": "tdesign-miniprogram/icon/icon",
+ "t-link": "tdesign-miniprogram/link/link",
+ "t-button": "tdesign-miniprogram/button/button",
+ "t-radio-group": "tdesign-miniprogram/radio-group/radio-group",
+ "t-radio": "tdesign-miniprogram/radio/radio"
+ }
+}
diff --git a/pages/login/login.less b/pages/login/login.less
new file mode 100644
index 0000000..f2e5b2e
--- /dev/null
+++ b/pages/login/login.less
@@ -0,0 +1,131 @@
+.page {
+ background-color: rgba(255,255,255,1.000000);
+ position: relative;
+ width: 750rpx;
+ height: 1624rpx;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+}
+.image-wrapper_1 {
+ background: url('/assets/images/top-bg.png') center center no-repeat;
+ background-size: 100% 100%;
+ padding-bottom: 80rpx;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ image{
+ position: relative;
+ z-index: 1;
+ }
+ .image_4{
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ z-index: 0;
+ }
+}
+.image_1 {
+ width: 750rpx;
+ height: 88rpx;
+}
+.image_2 {
+ width: 174rpx;
+ height: 64rpx;
+ margin: 12rpx 12rpx 0 564rpx;
+}
+.image_3 {
+ width: 160rpx;
+ height: 160rpx;
+ align-self: center;
+ margin-top: 196rpx;
+ border-radius: 160px;
+}
+.box_1 {
+ display: flex;
+ flex-direction: column;
+ padding: 40rpx 64rpx 36rpx 64rpx;
+}
+.text-wrapper_1 {
+ background-color: rgba(0,91,162,1.000000);
+ border-radius: 24rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 34rpx 190rpx 32rpx 192rpx;
+}
+.text_1 {
+ overflow-wrap: break-word;
+ color: rgba(255,255,255,1);
+ font-size: 34rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 34rpx;
+}
+.text-wrapper_2 {
+ border-radius: 24rpx;
+ border: 1px solid rgba(232,232,232,1);
+ margin-top: 40rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 34rpx 190rpx 32rpx 192rpx;
+}
+.text_2 {
+ overflow-wrap: break-word;
+ color: rgba(34,34,34,1);
+ font-size: 34rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 34rpx;
+}
+.text_3 {
+ overflow-wrap: break-word;
+ color: rgba(144,147,153,1);
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 26rpx;
+ align-self: center;
+ margin-top: 40rpx;
+}
+.text-wrapper_3 {
+ width: 520rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 552rpx 50rpx 0 52rpx;
+}
+.text_4 {
+ overflow-wrap: break-word;
+ color: rgba(136,136,136,1);
+ font-size: 24rpx;
+ letter-spacing: 1rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: center;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.text_5 {
+ overflow-wrap: break-word;
+ color: rgba(33,80,159,1);
+ font-size: 24rpx;
+ letter-spacing: 1rpx;
+ font-family: PingFangSC-Medium;
+ font-weight: 500;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.image_4 {
+ width: 750rpx;
+ height: 68rpx;
+ margin-top: -2rpx;
+}
\ No newline at end of file
diff --git a/pages/login/login.wxml b/pages/login/login.wxml
new file mode 100644
index 0000000..534f306
--- /dev/null
+++ b/pages/login/login.wxml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+ 手机号登录/注册
+
+
+ 登录或注册完成即代表您同意
+ 《用户服务协议》
+
+
+
\ No newline at end of file
diff --git a/pages/loginCode/loginCode.js b/pages/loginCode/loginCode.js
new file mode 100644
index 0000000..0130c1d
--- /dev/null
+++ b/pages/loginCode/loginCode.js
@@ -0,0 +1,129 @@
+import request from '~/api/request';
+
+Page({
+ data: {
+ code: '',
+ phoneNumber: '',
+ timer: null,
+ getCodeText: '获取验证码',
+
+ },
+
+
+
+ onLoad(options) {
+
+ },
+ bindKeyInput(e){
+ const { mode } = e.currentTarget.dataset;
+ this.setData({
+ [mode]: e.detail.value
+ })
+ },
+ async getCode(){
+ if (!this.data.phoneNumber) {
+ wx.showToast({
+ title: '请输入手机号',
+ icon: 'none'
+ });
+ return;
+ }
+ // 验证手机号格式
+ if (!/^1[3-9]\d{9}$/.test(this.data.phoneNumber)) {
+ wx.showToast({
+ title: '请输入正确的手机号',
+ icon: 'none'
+ });
+ return;
+ }
+
+ // 如果正在倒计时,不允许重复获取
+ if (this.data.timer) {
+ return;
+ }
+
+ // 发送验证码
+ const res = await request('patient/send_code', 'post', {
+ mobile: this.data.phoneNumber,
+ type: 1
+ })
+ console.log('验证码已发送');
+ wx.showToast({
+ title: '验证码已发送',
+ icon: 'success'
+ });
+
+ // 开始倒计时
+ let countdown = 60;
+ this.setData({
+ getCodeText: `${countdown}s后重新获取`
+ });
+
+ this.data.timer = setInterval(() => {
+ countdown--;
+ if (countdown <= 0) {
+ clearInterval(this.data.timer);
+ this.setData({
+ timer: null,
+ getCodeText: '获取验证码'
+ });
+ } else {
+ this.setData({
+ getCodeText: `${countdown}s后重新获取`
+ });
+ }
+ }, 1000);
+
+ },
+ async login() {
+ // 验证手机号
+ if (!this.data.phoneNumber) {
+ wx.showToast({
+ title: '请输入手机号',
+ icon: 'none'
+ });
+ return;
+ }
+ // 验证手机号格式
+ if (!/^1[3-9]\d{9}$/.test(this.data.phoneNumber)) {
+ wx.showToast({
+ title: '请输入正确的手机号',
+ icon: 'none'
+ });
+ return;
+ }
+ // 验证验证码
+ if (!this.data.code) {
+ wx.showToast({
+ title: '请输入验证码',
+ icon: 'none'
+ });
+ return;
+ }
+ // 验证验证码格式(假设验证码为6位数字)
+ if (!/^\d{6}$/.test(this.data.code)) {
+ wx.showToast({
+ title: '请输入6位数字验证码',
+ icon: 'none'
+ });
+ return;
+ }
+
+ const res = await request('patient/code_login', 'post', {
+ code: this.data.code,
+ mobile: this.data.phoneNumber
+ });
+ await wx.setStorageSync('access_token', res.token);
+ if (res.is_personal_information_complete) {
+ wx.switchTab({
+ url: `/pages/my/index`,
+ });
+ } else {
+ wx.navigateTo({
+ url: `/pages/my/info-edit/index`,
+ });
+ }
+},
+
+
+});
diff --git a/pages/loginCode/loginCode.json b/pages/loginCode/loginCode.json
new file mode 100644
index 0000000..f1ca37e
--- /dev/null
+++ b/pages/loginCode/loginCode.json
@@ -0,0 +1,9 @@
+{
+ "usingComponents": {
+ "t-navbar": "tdesign-miniprogram/navbar/navbar",
+ "t-input": "tdesign-miniprogram/input/input",
+ "t-link": "tdesign-miniprogram/link/link",
+ "t-button": "tdesign-miniprogram/button/button"
+ },
+ "navigationBarTitleText": "登录"
+}
diff --git a/pages/loginCode/loginCode.less b/pages/loginCode/loginCode.less
new file mode 100644
index 0000000..4811273
--- /dev/null
+++ b/pages/loginCode/loginCode.less
@@ -0,0 +1,213 @@
+.page {
+ background-color: rgba(255,255,255,1.000000);
+ position: relative;
+ width: 750rpx;
+ height: 1624rpx;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+}
+.box_1 {
+ background-color: rgba(255,255,255,1.000000);
+ padding-bottom: 12rpx;
+ display: flex;
+ flex-direction: column;
+}
+.image_1 {
+ width: 750rpx;
+ height: 88rpx;
+}
+.image-wrapper_1 {
+ width: 706rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 12rpx 12rpx 0 32rpx;
+}
+.image_2 {
+ width: 24rpx;
+ height: 48rpx;
+ margin: 8rpx 0 8rpx 0;
+}
+.image_3 {
+ width: 174rpx;
+ height: 64rpx;
+}
+.box_2 {
+ display: flex;
+ flex-direction: column;
+ padding: 60rpx 64rpx 36rpx 64rpx;
+}
+.text-group_1 {
+ margin-right: 238rpx;
+ display: flex;
+ flex-direction: column;
+}
+.text_1 {
+ overflow-wrap: break-word;
+ color: rgba(51,51,51,1);
+ font-size: 48rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 48rpx;
+ margin-right: 146rpx;
+}
+.text_2 {
+ overflow-wrap: break-word;
+ color: rgba(153,153,153,1);
+ font-size: 26rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 26rpx;
+ margin-top: 20rpx;
+}
+.section_1 {
+ background-color: rgba(245,245,245,1.000000);
+ border-radius: 24rpx;
+ margin-top: 90rpx;
+ display: flex;
+ flex-direction: row;
+ padding: 34rpx 34rpx 34rpx 40rpx;
+}
+.image-text_1 {
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ width: 100%;
+}
+.thumbnail_1 {
+ font-size: 40rpx;
+ margin-right: 8rpx;
+ width: 50rpx;
+ transform: translateY(4rpx);
+}
+.text-group_2 {
+ overflow-wrap: break-word;
+ // color: rgba(170,170,170,1);
+ font-size: 32rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ white-space: nowrap;
+ line-height: 32rpx;
+ flex: auto;
+}
+.section_2 {
+ background-color: rgba(245,245,245,1.000000);
+ border-radius: 24rpx;
+ margin-top: 32rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: flex-center;
+ padding: 32rpx 40rpx 34rpx 40rpx;
+}
+.image-text_2 {
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.thumbnail_2 {
+ font-size: 40rpx;
+ margin-right: 10rpx;
+ width: 50rpx;
+ transform: translateY(4rpx);
+}
+.text-group_3 {
+ overflow-wrap: break-word;
+ // color: rgba(170,170,170,1);
+ font-size: 32rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ white-space: nowrap;
+ line-height: 32rpx;
+ margin-top: 2rpx;
+}
+.block_1 {
+ background-color: rgba(187,187,187,1.000000);
+ width: 2rpx;
+ height: 32rpx;
+ display: flex;
+ flex-direction: column;
+ margin: 2rpx 0 0 0;
+}
+.text_3 {
+ overflow-wrap: break-word;
+ color: rgba(0,91,162,1);
+ font-size: 32rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 32rpx;
+ margin: 2rpx 0 0 34rpx;
+}
+.text-wrapper_1 {
+ background-color: rgba(0,91,162,1.000000);
+ border-radius: 24rpx;
+ margin-top: 80rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 34rpx 232rpx 32rpx 234rpx;
+}
+.text_4 {
+ overflow-wrap: break-word;
+ color: rgba(255,255,255,1);
+ font-size: 34rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 34rpx;
+}
+.text_5 {
+ overflow-wrap: break-word;
+ color: rgba(144,147,153,1);
+ font-size: 26rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 26rpx;
+ align-self: center;
+ margin-top: 40rpx;
+}
+.text-wrapper_2 {
+ width: 520rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 600rpx 50rpx 0 52rpx;
+}
+.text_6 {
+ overflow-wrap: break-word;
+ color: rgba(136,136,136,1);
+ font-size: 24rpx;
+ letter-spacing: 1rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: center;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.text_7 {
+ overflow-wrap: break-word;
+ color: rgba(33,80,159,1);
+ font-size: 24rpx;
+ letter-spacing: 1rpx;
+ font-family: PingFangSC-Medium;
+ font-weight: 500;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.image_4 {
+ width: 750rpx;
+ height: 68rpx;
+ margin-top: -2rpx;
+}
\ No newline at end of file
diff --git a/pages/loginCode/loginCode.wxml b/pages/loginCode/loginCode.wxml
new file mode 100644
index 0000000..108f3cb
--- /dev/null
+++ b/pages/loginCode/loginCode.wxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+ 验证码登录
+ 未注册的手机号验证后将自动注册
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 登录/注册
+
+
+ 登录或注册完成即代表您同意
+ 《用户服务协议》
+
+
+
\ No newline at end of file
diff --git a/pages/my/index copy.js b/pages/my/index copy.js
new file mode 100644
index 0000000..24e7bf0
--- /dev/null
+++ b/pages/my/index copy.js
@@ -0,0 +1,107 @@
+import request from '~/api/request';
+import useToastBehavior from '~/behaviors/useToast';
+
+Page({
+ behaviors: [useToastBehavior],
+
+ data: {
+ isLoad: true,
+ service: [],
+ personalInfo: {
+ name: '邹方成'
+ },
+ gridList: [
+ {
+ name: '全部发布',
+ icon: 'root-list',
+ type: 'all',
+ url: '',
+ },
+ {
+ name: '审核中',
+ icon: 'search',
+ type: 'progress',
+ url: '',
+ },
+ {
+ name: '已发布',
+ icon: 'upload',
+ type: 'published',
+ url: '',
+ },
+ {
+ name: '草稿箱',
+ icon: 'file-copy',
+ type: 'draft',
+ url: '',
+ },
+ ],
+
+ settingList: [
+ { label: '用药方案', path: '/pages/therapeuticRegimen/index', icon: 'service', type: 'text' },
+ { label: '健康教育', path: '/pages/articleList/index', icon: 'setting', type: 'text' },
+
+ ],
+ },
+
+ onLoad() {
+ // this.getServiceList();
+ },
+
+ handelClick(e) {
+ console.log(e)
+ },
+
+ async onShow() {
+ const Token = wx.getStorageSync('access_token');
+ if (Token) {
+ const personalInfo = await this.getPersonalInfo();
+ this.setData({
+ isLoad: false,
+ personalInfo: personalInfo,
+ settingList: [
+ { label: '用药方案', path: '/pages/therapeuticRegimen/index', icon: 'service', type: 'text' },
+ { label: '健康教育', path: '/pages/articleList/index', icon: 'setting', type: 'text' },
+
+ ],
+ });
+ } else {
+ this.setData({
+ isLoad: true,
+ settingList: [
+ { label: '用药方案', path: '', icon: 'service', type: 'text' },
+ { label: '健康教育', path: '', icon: 'setting', type: 'text' },
+
+ ],
+ });
+ }
+ },
+
+ getServiceList() {
+ request('/api/getServiceList').then((res) => {
+ const { service } = res.data.data;
+ this.setData({ service });
+ });
+ },
+
+ async getPersonalInfo() {
+ const info = await request('patient/basic/0').then((res) => res);
+ return info;
+ },
+
+ onLogin(e) {
+ wx.navigateTo({
+ url: '/pages/login/login',
+ });
+ },
+
+ onNavigateTo() {
+ wx.navigateTo({ url: `/pages/my/info-edit/index` });
+ },
+
+ onEleClick(e) {
+ const { name, url } = e.currentTarget.dataset.data;
+ if (url) return;
+ this.onShowToast('#t-toast', name);
+ },
+});
diff --git a/pages/my/index copy.less b/pages/my/index copy.less
new file mode 100644
index 0000000..8fa1435
--- /dev/null
+++ b/pages/my/index copy.less
@@ -0,0 +1,128 @@
+.my {
+ height: calc(100vh - 56px);
+ overflow-y: auto;
+
+ --td-navbar-bg-color: transparent;
+ .nav-bg {
+ width: 750rpx;
+ height: 200rpx;
+ position: fixed;
+ top: 0;
+ }
+
+ &-info,
+ &-service,
+ &-setting {
+ background-color: #fff;
+ }
+
+ &-info {
+ border-radius: 24rpx;
+ margin: 8rpx 32rpx 0rpx 32rpx;
+ // padding-bottom: 32rpx;
+ overflow: hidden;
+
+ .cell-class-title {
+ font-weight: 600 !important;
+ }
+
+ .cell-class-center {
+ display: flex;
+ align-items: center !important;
+ }
+
+ .divider-class {
+ margin-top: 0 !important;
+ margin-bottom: 0 !important;
+ }
+
+ .grid-class {
+ margin-top: 40rpx;
+ }
+
+ .grid-item .t-grid-item__content {
+ padding: 0px !important;
+ }
+
+ .split-line {
+ border-right: 1px solid #e7e7e7;
+ }
+
+ // 头像margin-right
+ --td-spacer-1: 32rpx;
+
+ &__person {
+ .name {
+ line-height: 48rpx;
+ font-size: 32rpx;
+ color: #000000e6;
+ font-weight: 600;
+ }
+
+ .tags {
+ display: flex;
+ margin-top: 16rpx;
+
+ --td-text-color-primary: #000000e6;
+ --td-tag-medium-font-size: 20rpx;
+ --td-tag-medium-icon-size: 24rpx;
+ }
+
+ .tag:not(:last-child) {
+ margin-right: 16rpx;
+ }
+ }
+ }
+
+ &-service {
+ border-radius: 24rpx;
+ margin: 32rpx;
+ padding-bottom: 8rpx;
+ overflow: hidden;
+
+ &__list-item {
+ .t-grid-item__content {
+ padding-bottom: 16rpx !important;
+ }
+ .t-grid-item__text {
+ height: 40rpx !important;
+ }
+ }
+
+ &--tips {
+ height: 44rpx;
+ line-height: 44rpx;
+ padding-left: 40rpx;
+ margin-top: 32rpx;
+ color: #000000e6;
+ font-size: 28rpx;
+ font-weight: 600;
+ }
+ }
+ .my-cell{
+ margin-top: 30rpx;
+ }
+ .my-info__person{
+ position: relative;
+ text{
+ font-size: 24rpx;
+ margin-left: 20rpx;
+ color: #666;
+ }
+ .edit{
+ position: absolute;
+ right: -20rpx;
+ top: 0;
+ }
+ }
+ .time{
+ font-size: 26rpx;
+ }
+ .peld{
+ font-size: 26rpx;
+ color: red;
+ .tag{
+ margin-left: 20rpx;
+ }
+ }
+}
diff --git a/pages/my/index copy.wxml b/pages/my/index copy.wxml
new file mode 100644
index 0000000..e9b00f9
--- /dev/null
+++ b/pages/my/index copy.wxml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+ {{personalInfo.username}}
+ 男
+ 女
+ {{personalInfo.age}}
+
+
+ 胆道闭锁手术时间:{{personalInfo.operative_date}}
+ PELD评分:{{personalInfo.risk_value}}
+ 低危
+ 中危
+ 高危
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/my/index.js b/pages/my/index.js
new file mode 100644
index 0000000..aae91b5
--- /dev/null
+++ b/pages/my/index.js
@@ -0,0 +1,120 @@
+import request from '~/api/request';
+import useToastBehavior from '~/behaviors/useToast';
+
+Page({
+ behaviors: [useToastBehavior],
+
+ data: {
+ isLoad: true,
+ service: [],
+ personalInfo: {
+ name: '邹方成'
+ },
+ gridList: [
+ {
+ name: '全部发布',
+ icon: 'root-list',
+ type: 'all',
+ url: '',
+ },
+ {
+ name: '审核中',
+ icon: 'search',
+ type: 'progress',
+ url: '',
+ },
+ {
+ name: '已发布',
+ icon: 'upload',
+ type: 'published',
+ url: '',
+ },
+ {
+ name: '草稿箱',
+ icon: 'file-copy',
+ type: 'draft',
+ url: '',
+ },
+ ],
+
+ settingList: [
+ { label: '用药方案', path: '/pages/therapeuticRegimen/index', icon: 'service', type: 'text' },
+ { label: '健康教育', path: '/pages/articleList/index', icon: 'setting', type: 'text' },
+
+ ],
+ },
+
+ onLoad() {
+ // this.getServiceList();
+ },
+
+ handelClick(e) {
+ console.log(e)
+ },
+
+ async onShow() {
+ const Token = wx.getStorageSync('access_token');
+ if (Token) {
+ const personalInfo = await this.getPersonalInfo();
+ this.setData({
+ isLoad: false,
+ personalInfo: personalInfo,
+ settingList: [
+ { label: '用药方案', path: '/pages/therapeuticRegimen/index', icon: 'service', type: 'text' },
+ { label: '健康教育', path: '/pages/articleList/index', icon: 'setting', type: 'text' },
+
+ ],
+ });
+ } else {
+ this.setData({
+ isLoad: true,
+ settingList: [
+ { label: '用药方案', path: '', icon: 'service', type: 'text' },
+ { label: '健康教育', path: '', icon: 'setting', type: 'text' },
+
+ ],
+ });
+ }
+ },
+
+ getServiceList() {
+ request('/api/getServiceList').then((res) => {
+ const { service } = res.data.data;
+ this.setData({ service });
+ });
+ },
+
+ async getPersonalInfo() {
+ const info = await request('patient/basic/0').then((res) => res);
+ return info;
+ },
+
+ onLogin(e) {
+ wx.navigateTo({
+ url: '/pages/login/login',
+ });
+ },
+
+ onNavigateTo() {
+ wx.navigateTo({ url: `/pages/my/info-edit/index` });
+ },
+
+ onEleClick(e) {
+ const { name, url } = e.currentTarget.dataset.data;
+ if (url) return;
+ this.onShowToast('#t-toast', name);
+ },
+ toPath(e){
+ wx.navigateTo({
+ url: e.currentTarget.dataset.url,
+ })
+ },
+ logOut(){
+ wx.removeStorageSync('access_token');
+ this.setData({
+ isLoad: true,
+
+ })
+ }
+
+});
diff --git a/pages/my/index.json b/pages/my/index.json
new file mode 100644
index 0000000..ffb2079
--- /dev/null
+++ b/pages/my/index.json
@@ -0,0 +1,16 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {
+ "t-cell": "tdesign-miniprogram/cell/cell",
+ "t-cell-group": "tdesign-miniprogram/cell-group/cell-group",
+ "t-avatar": "tdesign-miniprogram/avatar/avatar",
+ "t-divider": "tdesign-miniprogram/divider/divider",
+ "t-icon": "tdesign-miniprogram/icon/icon",
+ "t-image": "tdesign-miniprogram/image/image",
+ "t-navbar": "tdesign-miniprogram/navbar/navbar",
+ "t-grid": "tdesign-miniprogram/grid/grid",
+ "t-grid-item": "tdesign-miniprogram/grid-item/grid-item",
+ "t-tag": "tdesign-miniprogram/tag/tag",
+ "nav": "/components/nav"
+ }
+}
diff --git a/pages/my/index.less b/pages/my/index.less
new file mode 100644
index 0000000..8c1cad3
--- /dev/null
+++ b/pages/my/index.less
@@ -0,0 +1,382 @@
+.page {
+ background-color: rgba(248,248,248,1.000000);
+ position: relative;
+ height: 100vh;
+ overflow: hidden;
+}
+.block_1 {
+ display: flex;
+ justify-content: center;
+ position: absolute;
+ width: 100%;
+ left: 0;
+ bottom: 200rpx;
+}
+.box_1 {
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.text-wrapper_1 {
+ background-color: rgba(238,238,238,1.000000);
+ border-radius: 24rpx;
+ margin-top: 44rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 32rpx 158rpx 32rpx 156rpx;
+}
+.text_1 {
+ overflow-wrap: break-word;
+ color: rgba(136,136,136,1);
+ font-size: 32rpx;
+ letter-spacing: 0rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 32rpx;
+}
+.image_1 {
+ width: 100rpx;
+ height: 100rpx;
+ margin-bottom: 40rpx;
+}
+.block_2 {
+ background-color: rgba(255,255,255,1.000000);
+ width: 750rpx;
+ margin-top: -2rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ padding: 14rpx 98rpx 12rpx 102rpx;
+}
+.image-text_1 {
+ display: flex;
+ flex-direction: column;
+}
+.label_1 {
+ width: 48rpx;
+ height: 48rpx;
+}
+.text-group_1 {
+ overflow-wrap: break-word;
+ color: rgba(136,136,136,1);
+ font-size: 20rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 20rpx;
+ align-self: center;
+ margin-top: 4rpx;
+}
+.image-text_2 {
+ display: flex;
+ flex-direction: column;
+}
+.label_2 {
+ width: 48rpx;
+ height: 48rpx;
+}
+.text-group_2 {
+ overflow-wrap: break-word;
+ color: rgba(136,136,136,1);
+ font-size: 20rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 20rpx;
+ align-self: center;
+ margin-top: 4rpx;
+}
+.image-text_3 {
+ display: flex;
+ flex-direction: column;
+}
+.label_3 {
+ width: 48rpx;
+ height: 48rpx;
+}
+.text-group_3 {
+ overflow-wrap: break-word;
+ color: rgba(136,136,136,1);
+ font-size: 20rpx;
+ font-family: PingFangSC-Regular;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 20rpx;
+ margin: 4rpx 6rpx 0 2rpx;
+}
+.image_2 {
+ width: 750rpx;
+ height: 68rpx;
+}
+.block_3 {
+ position: absolute;
+ width: 100%;
+ left: 0rpx;
+ top: 0rpx;
+ background-size: 100% 100%;
+ padding-bottom: 232rpx;
+ display: flex;
+ flex-direction: column;
+}
+.image_3 {
+
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ z-index: 0;
+}
+.section_1 {
+ width: 430rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 12rpx 12rpx 0 308rpx;
+}
+.text_2 {
+ overflow-wrap: break-word;
+ color: rgba(0,0,0,1);
+ font-size: 34rpx;
+ font-family: PingFangSC-Medium;
+ font-weight: 500;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 40rpx;
+ margin-top: 8rpx;
+}
+.image_4 {
+ width: 174rpx;
+ height: 64rpx;
+}
+.section_2 {
+ flex-direction: row;
+ display: flex;
+ margin: 36rpx 24rpx 0 32rpx;
+ position: relative;
+ z-index: 1;
+ margin-top: 200rpx;
+
+}
+.image_5 {
+ box-sizing: border-box;
+ width: 120rpx;
+ height: 120rpx;
+ margin-bottom: 48rpx;
+ background-color: rgba(255,255,255,0.5);
+ // padding: 20rpx;
+ border-radius: 120rpx;
+ // border: 4rpx solid rgba(255,255,255,1);
+ image{
+ width: 100%;
+ height: 100%;
+ }
+}
+.block_4 {
+ display: flex;
+ flex-direction: column;
+ margin: 4rpx 0 0 24rpx;
+}
+.text-group_4 {
+ display: flex;
+ flex-direction: column;
+}
+.text_3 {
+ overflow-wrap: break-word;
+ color: rgba(34,34,34,1);
+ font-size: 36rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ white-space: nowrap;
+ line-height: 36rpx;
+ // margin-right: 330rpx;
+}
+.text_4 {
+ overflow-wrap: break-word;
+ color: rgba(34,34,34,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin-top: 24rpx;
+}
+.text_5 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+ // margin: -76rpx 170rpx 0 88rpx;
+}
+.group_1 {
+ width: 270rpx;
+ background-color: rgba(208,15,22,0.100000);
+ border-radius: 28rpx;
+ border: 1px solid rgba(255,255,255,1);
+ padding-left: 20rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 22rpx 82rpx 0 0;
+}
+.image-text_4 {
+ width: 188rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 14rpx 0 14rpx 0;
+}
+.thumbnail_1 {
+ color: rgba(212,48,48,1);
+ transform: translateY(-2rpx);
+}
+.text-group_5 {
+ overflow-wrap: break-word;
+ color: rgba(212,48,48,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.text-wrapper_2 {
+ border-radius: 28rpx;
+ border: 1px solid rgba(255,255,255,1);
+ display: flex;
+ flex-direction: column;
+ padding: 12rpx 22rpx 12rpx 22rpx;
+}
+.scuess{
+ background-color: #2ba471;
+}
+.waring{
+ background-color: #e37318;
+}
+.danger{
+ background-color: rgba(208,15,22,1.000000);
+
+}
+.text_6 {
+ overflow-wrap: break-word;
+ color: rgba(255,255,255,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.label_4 {
+ position: absolute;
+ font-size: 44rpx;
+ right: 0;
+ top: 28rpx;
+
+}
+.section_3 {
+ background-color: rgba(255,255,255,1.000000);
+ border-radius: 16rpx;
+ position: absolute;
+ left: 24rpx;
+ top: 408rpx;
+ width: 702rpx;
+ height: 210rpx;
+ display: flex;
+ flex-direction: column;
+}
+.block_5 {
+ background-color: rgba(255,255,255,0.010000);
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ padding: 32rpx 32rpx 32rpx 32rpx;
+}
+.image-text_5 {
+ width: 192rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.thumbnail_2 {
+ width: 40rpx;
+ height: 40rpx;
+}
+.text-group_6 {
+ overflow-wrap: break-word;
+ color: rgba(51,51,51,1);
+ font-size: 32rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 32rpx;
+ margin-top: 4rpx;
+}
+.thumbnail_3 {
+
+ margin: 4rpx 0 4rpx 0;
+ // margin-right: 60rpx;
+ font-size: 40rpx;
+ opacity: 0.3;
+}
+.block_6 {
+ background-color: rgba(248,248,248,1.000000);
+ height: 2rpx;
+ width: 90%;
+ margin-left: 5%;
+ z-index: 1;
+ position: absolute;
+ top: 50%;
+ left: 0;
+}
+.block_7 {
+ background-color: rgba(255,255,255,0.010000);
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ padding: 32rpx 32rpx 32rpx 32rpx;
+ position: relative;
+ z-index: 0;
+}
+.image-text_6 {
+ width: 192rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.thumbnail_4 {
+ width: 40rpx;
+ height: 40rpx;
+}
+.text-group_7 {
+ overflow-wrap: break-word;
+ color: rgba(51,51,51,1);
+ font-size: 32rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 32rpx;
+ margin-top: 4rpx;
+}
+.thumbnail_5 {
+ width: 32rpx;
+ height: 32rpx;
+ margin: 4rpx 0 4rpx 0;
+}
+.noLogin{
+ transform: translateY(36rpx);
+}
\ No newline at end of file
diff --git a/pages/my/index.wxml b/pages/my/index.wxml
new file mode 100644
index 0000000..ba535fc
--- /dev/null
+++ b/pages/my/index.wxml
@@ -0,0 +1,74 @@
+
+
+
+
+ 退出登录
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{personalInfo.username}}{{personalInfo.sex == 1 ? '男': '女'}} · {{personalInfo.age}}
+ 胆道闭锁手术时间:{{personalInfo.operative_date}}
+
+
+
+
+
+ PELD评分:{{personalInfo.risk_value}}
+
+
+ 低危
+
+
+ 中危
+
+
+ 高危
+
+
+
+
+
+
+
+
+
+
+
+
+ 请先登录/注册
+
+
+
+
+
+
+
+
+
+
+ 用药方案
+
+
+
+
+
+
+
+ 健康教育
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/my/info-edit/index.js b/pages/my/info-edit/index.js
new file mode 100644
index 0000000..ebeebb1
--- /dev/null
+++ b/pages/my/info-edit/index.js
@@ -0,0 +1,280 @@
+import request from '~/api/request';
+
+let mode = ''
+let modeText = ''
+
+Page({
+ data: {
+ personInfo: {
+ username: '',
+ sex: 1,
+ id_number: '',
+ birthday: '',
+ operative_date: '',
+ delivery_type: '',
+ prenatal_check_type: '',
+ gestational_week: '',
+ conception_type: '',
+ birth_number: '',
+ parity_number: '',
+ birth_weight: '',
+ prenatal_check_remark: ''
+ },
+ genderOptions: [
+ {
+ label: '男',
+ value: 1,
+ },
+ {
+ label: '女',
+ value: 2,
+ }
+
+ ],
+
+ birthVisible: false,
+ birthStart: '1970-01-01',
+ birthEnd: new Date().toISOString().split('T')[0],
+ birthTime: 0,
+ birthFilter: (type, options) => (type === 'year' ? options.sort((a, b) => b.value - a.value) : options),
+ addressText: '',
+ addressVisible: false,
+ provinces: [],
+ cities: [],
+
+ gridConfig: {
+ column: 3,
+ width: 160,
+ height: 160,
+ },
+ timeValue: '',
+ timePicker:new Date().toISOString().split('T')[0],
+ idError: false,
+ numberError: false,
+ weekError: false,
+ numberFormat: (v) => {
+ const isNumber = /^\d+(\.\d+)?$/.test(v);
+ if (isNumber) {
+ return parseFloat(v).toFixed(2);
+ }
+ return v;
+ },
+ // 下拉
+ selectList: [],
+ selectValue: '',
+ selectVisible: false,
+ deliveryList:[{label: '顺产', value: 1},{label: '剖腹产', value: 2}],
+ prenatal_checkList: [{label: '有', value: 1},{label: '无', value: 2}],
+ parity_numberList: [{label: '1胎', value: 1},{label: '2胎', value: 2},{label: '3胎', value: 3},{label: '大于等于4胎', value: 4}],
+ birth_numberList:[{label: '1产', value: 1},{label: '2产', value: 2},{label: '大于等于3产', value: 3}],
+ conception_typeList: [{label: '自然受孕', value: 1},{label: '辅助生殖技术', value: 2}]
+ },
+
+ onLoad() {
+ // this.initAreaData();
+ this.getPersonalInfo()
+ },
+ async getPersonalInfo() {
+ const info = await request('patient/basic/0')
+ this.setData({
+ personInfo: {
+ username: info.username,
+ sex: info.sex,
+ id_number: info.id_number,
+ birthday: info.birthday || '',
+ operative_date: info.operative_date,
+ delivery_type: info.delivery_type,
+ prenatal_check_type: info.prenatal_check_type,
+ gestational_week: info.gestational_week,
+ conception_type: info.conception_type,
+ birth_number: info.birth_number,
+ parity_number: info.parity_number,
+ birth_weight: info.birth_weight,
+ prenatal_check_remark: info.prenatal_check_remark
+ }
+ })
+ },
+
+
+ getAreaOptions(data, filter) {
+ const res = Object.keys(data).map((key) => ({ value: key, label: data[key] }));
+ return typeof filter === 'function' ? res.filter(filter) : res;
+ },
+
+ getCities(provinceValue) {
+ return this.getAreaOptions(
+ areaList.cities,
+ (city) => `${city.value}`.slice(0, 2) === `${provinceValue}`.slice(0, 2),
+ );
+ },
+
+ initAreaData() {
+ const provinces = this.getAreaOptions(areaList.provinces);
+ const cities = this.getCities(provinces[0].value);
+ this.setData({ provinces, cities });
+ },
+
+ onAreaPick(e) {
+ const { column, index } = e.detail;
+ const { provinces } = this.data;
+
+ // 更改省份则更新城市列表
+ if (column === 0) {
+ const cities = this.getCities(provinces[index].value);
+ this.setData({ cities });
+ }
+ },
+
+ showPicker(e) {
+ mode = e.currentTarget.dataset.mode;
+ if(mode == "birth"){
+ this.setData({
+ birthVisible: true,
+ timePicker: this.data.personInfo.birthday ? this.data.personInfo.birthday : new Date().toISOString().split('T')[0]
+ });
+ } else {
+ this.setData({
+ birthVisible: true,
+ timePicker: this.data.personInfo.operative_date ? this.data.personInfo.operative_date : new Date().toISOString().split('T')[0]
+ });
+ }
+
+
+ },
+
+ hidePicker(e) {
+ const { mode } = e.currentTarget.dataset;
+ this.setData({
+ [`${mode}Visible`]: false,
+ });
+ },
+
+ onPickerChange(e) {
+ const { value, label } = e.detail;
+ console.log(mode, mode == 'birth')
+ if(mode == 'birth'){
+ this.setData({
+ ['personInfo.birthday']: value
+ })
+ }else{
+ this.setData({
+ ['personInfo.operative_date']:value
+ })
+ }
+
+ },
+
+ personInfoFieldChange(field, e) {
+ const { value } = e.detail;
+ this.setData({
+ [`personInfo.${field}`]: value,
+ });
+ },
+
+ onNameChange(e) {
+ this.personInfoFieldChange('username', e);
+ },
+
+ onGenderChange(e) {
+ this.personInfoFieldChange('sex', e);
+ },
+ // onYearChange(e) {
+ // this.personInfoFieldChange('yearType', e);
+ // },
+
+ onIntroductionChange(e) {
+ this.personInfoFieldChange('introduction', e);
+ },
+
+ onPhotosRemove(e) {
+ const { index } = e.detail;
+ // const { photos } = this.data.personInfo;
+
+ // photos.splice(index, 1);
+ // this.setData({
+ // 'personInfo.photos': photos,
+ // });
+ },
+
+ onPhotosSuccess(e) {
+ const { files } = e.detail;
+ // this.setData({
+ // 'personInfo.photos': files,
+ // });
+ },
+
+ onPhotosDrop(e) {
+ const { files } = e.detail;
+ // this.setData({
+ // 'personInfo.photos': files,
+ // });
+ },
+
+ async onSaveInfo() {
+ // console.log(this.data.personInfo);
+ const res = await request('patient/set_personal_information', 'get', {
+ data: this.data.personInfo
+ })
+ wx.switchTab({
+ url: `/pages/my/index`,
+ });
+ },
+ onIdInput(e){
+ // 18位身份证正则
+ const { idError } = this.data;
+ const reg18 = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e.detail.value);
+ if (idError == reg18) {
+ this.setData({
+ idError: !reg18,
+ });
+ }
+ this.personInfoFieldChange('id_number', e);
+ },
+ onWeightInput(e){
+ const { numberError } = this.data;
+ const isNumber = /^\d+(\.\d+)?$/.test(e.detail.value);
+ if (numberError === isNumber) {
+ this.setData({
+ numberError: !isNumber,
+ });
+ }
+ this.personInfoFieldChange('birth_weight', e);
+ },
+ onWeekInput(e){
+ const { weekError } = this.data;
+ const isNumber = /^\d+(\.\d+)?$/.test(e.detail.value);
+ if (weekError === isNumber) {
+ this.setData({
+ weekError: !isNumber,
+ });
+ }
+ this.personInfoFieldChange('gestational_week', e);
+ },
+ showSelect(e){
+ const { mode, list } = e.currentTarget.dataset;
+ modeText = mode
+ this.setData({
+ selectVisible: true,
+ selectValue: this.data.personInfo[mode] ? this.data.personInfo[mode] : '',
+ selectList: list
+ })
+ },
+ onSelectChange(e){
+ const { value, label } = e.detail;
+ this.setData({
+ [`personInfo.${modeText}`]: value[0]
+ })
+ },
+
+
+ onSaveInfo(){
+ console.log(this.data.personInfo)
+ let obj = this.data.personInfo
+ obj.birth_weight = Number(obj.birth_weight)
+ obj.gestational_week = Number(obj.gestational_week)
+ if( obj.prenatal_check_type == 2){
+ obj.prenatal_check_remark = '无'
+ }
+ request('patient/set_personal_information', 'post', obj)
+ }
+});
diff --git a/pages/my/info-edit/index.json b/pages/my/info-edit/index.json
new file mode 100644
index 0000000..ccaa60e
--- /dev/null
+++ b/pages/my/info-edit/index.json
@@ -0,0 +1,16 @@
+{
+ "navigationStyle": "custom",
+ "usingComponents": {
+ "t-navbar": "tdesign-miniprogram/navbar/navbar",
+ "t-input": "tdesign-miniprogram/input/input",
+ "t-cell": "tdesign-miniprogram/cell/cell",
+ "t-radio": "tdesign-miniprogram/radio/radio",
+ "t-radio-group": "tdesign-miniprogram/radio-group/radio-group",
+ "t-textarea": "tdesign-miniprogram/textarea/textarea",
+ "t-upload": "tdesign-miniprogram/upload/upload",
+ "t-button": "tdesign-miniprogram/button/button",
+ "t-picker": "tdesign-miniprogram/picker/picker",
+ "t-picker-item": "tdesign-miniprogram/picker-item/picker-item",
+ "t-date-time-picker": "tdesign-miniprogram/date-time-picker/date-time-picker"
+ }
+}
diff --git a/pages/my/info-edit/index.less b/pages/my/info-edit/index.less
new file mode 100644
index 0000000..122fb18
--- /dev/null
+++ b/pages/my/info-edit/index.less
@@ -0,0 +1,46 @@
+page {
+ background-color: #fff;
+}
+
+.info-edit {
+ --td-input-vertical-padding: 0;
+}
+
+.info-edit__cell {
+ .t-cell__title {
+ flex: none;
+ width: 162rpx;
+ }
+}
+
+.info-edit__gender {
+ --td-radio-vertical-padding: 0;
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+}
+
+.info-edit__introduction {
+ width: 100%;
+ padding: 0 !important;
+ height: 200rpx;
+}
+
+.info-edit__photos {
+ width: 100%;
+}
+
+.info-edit__save {
+ padding: 28rpx;
+ // position: fixed;
+ // left: 32rpx;
+ // right: 32rpx;
+ // bottom: calc(env(safe-area-inset-bottom) + 32rpx);
+}
+
+.info-edit__gender {
+ width: 45%;
+}
+.t-textarea{
+ height: 140rpx;
+}
\ No newline at end of file
diff --git a/pages/my/info-edit/index.wxml b/pages/my/info-edit/index.wxml
new file mode 100644
index 0000000..b9b91ba
--- /dev/null
+++ b/pages/my/info-edit/index.wxml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 保存
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/patients/index.js b/pages/patients/index.js
new file mode 100644
index 0000000..a5c0db5
--- /dev/null
+++ b/pages/patients/index.js
@@ -0,0 +1,71 @@
+// pages/patients/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ handleClick(e){
+ wx.navigateTo({
+ url: '/pages/home/index',
+ })
+ },
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/patients/index.json b/pages/patients/index.json
new file mode 100644
index 0000000..965b8e8
--- /dev/null
+++ b/pages/patients/index.json
@@ -0,0 +1,4 @@
+{
+ "usingComponents": {},
+ "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/patients/index.less b/pages/patients/index.less
new file mode 100644
index 0000000..9613577
--- /dev/null
+++ b/pages/patients/index.less
@@ -0,0 +1,441 @@
+.page {
+ background-color: rgba(248,248,248,1.000000);
+ position: relative;
+ flex-direction: column;
+ .home-top-bg{
+ width: 100%;
+ height: auto;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 0;
+ }
+}
+.image_1 {
+ width: 750rpx;
+ height: 88rpx;
+}
+.box_1 {
+ position: relative;
+ z-index: 1;
+ display: flex;
+ flex-direction: column;
+ padding: 12rpx 12rpx 24rpx 24rpx;
+}
+.box_2 {
+ flex-direction: row;
+ display: flex;
+ justify-content: center;
+}
+.text_1 {
+ overflow-wrap: break-word;
+ color: rgba(0,0,0,1);
+ font-size: 34rpx;
+ font-family: PingFangSC-Medium;
+ font-weight: 500;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 40rpx;
+ margin-top: 8rpx;
+}
+.image_2 {
+ width: 174rpx;
+ height: 64rpx;
+}
+.box_3 {
+ background-color: rgba(255,255,255,1.000000);
+ border-radius: 40rpx;
+ display: flex;
+ flex-direction: row;
+ margin: 36rpx 12rpx 0 0;
+ padding: 24rpx 432rpx 24rpx 24rpx;
+}
+.image-text_1 {
+ width: 246rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.thumbnail_1 {
+ width: 32rpx;
+ height: 32rpx;
+}
+.text-group_1 {
+ overflow-wrap: break-word;
+ color: rgba(153,153,153,1);
+ font-size: 28rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin-top: 2rpx;
+}
+.box_4 {
+ display: flex;
+ flex-direction: column;
+ margin: 24rpx 12rpx 0 0;
+}
+.block_1 {
+ background-color: rgba(255,255,255,1.000000);
+ border-radius: 24rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 32rpx 230rpx 40rpx 24rpx;
+}
+.image-text_2 {
+ width: 356rpx;
+ margin-right: 92rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.box_5 {
+ border-radius: 100%;
+ background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/0541ba31b7264f1ab9115b54b31a4f09_mergeImage.png);
+ width: 84rpx;
+ height: 84rpx;
+ border: 1px solid rgba(248,248,248,1);
+ display: flex;
+ flex-direction: column;
+}
+.text-group_2 {
+ margin-bottom: 8rpx;
+ display: flex;
+ flex-direction: column;
+}
+.text-wrapper_1 {
+ width: 256rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.text_2 {
+ overflow-wrap: break-word;
+ color: rgba(17,17,17,1);
+ font-size: 32rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 32rpx;
+}
+.text_3 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+ margin-top: 8rpx;
+}
+.text_4 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin: 16rpx 74rpx 0 0;
+}
+.text_5 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin: 8rpx 0 0 100rpx;
+}
+.box_6 {
+ width: 188rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 16rpx 160rpx 0 100rpx;
+}
+.text-wrapper_2 {
+ background-color: rgba(208,15,22,0.100000);
+ border-radius: 8rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 6rpx 6rpx 6rpx 8rpx;
+}
+.text_6 {
+ overflow-wrap: break-word;
+ color: rgba(208,15,22,1);
+ font-size: 24rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.text-wrapper_3 {
+ background-color: rgba(0,91,162,0.100000);
+ border-radius: 8rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 6rpx 8rpx 6rpx 10rpx;
+}
+.text_7 {
+ overflow-wrap: break-word;
+ color: rgba(0,91,162,1);
+ font-size: 24rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.block_2 {
+ background-color: rgba(255,255,255,1.000000);
+ border-radius: 24rpx;
+ margin-top: 24rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 32rpx 230rpx 40rpx 24rpx;
+}
+.image-text_3 {
+ width: 356rpx;
+ margin-right: 92rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.box_7 {
+ border-radius: 100%;
+ background-image: url(https://lanhu-dds-backend.oss-cn-beijing.aliyuncs.com/merge_image/imgs/35c34a7f64494aa787c4fcac431be2b3_mergeImage.png);
+ width: 84rpx;
+ height: 84rpx;
+ border: 1px solid rgba(248,248,248,1);
+ display: flex;
+ flex-direction: column;
+}
+.text-group_3 {
+ margin-bottom: 8rpx;
+ display: flex;
+ flex-direction: column;
+}
+.text-wrapper_4 {
+ width: 256rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.text_8 {
+ overflow-wrap: break-word;
+ color: rgba(17,17,17,1);
+ font-size: 32rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 32rpx;
+}
+.text_9 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+ margin-top: 8rpx;
+}
+.text_10 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin: 16rpx 90rpx 0 0;
+}
+.text_11 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin: 8rpx 0 0 100rpx;
+}
+.section_1 {
+ width: 188rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 16rpx 160rpx 0 100rpx;
+}
+.text-wrapper_5 {
+ background-color: rgba(255,142,0,0.100000);
+ border-radius: 8rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 6rpx 6rpx 6rpx 8rpx;
+}
+.text_12 {
+ overflow-wrap: break-word;
+ color: rgba(255,142,0,1);
+ font-size: 24rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.text-wrapper_6 {
+ background-color: rgba(0,91,162,0.100000);
+ border-radius: 8rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 6rpx 8rpx 6rpx 10rpx;
+}
+.text_13 {
+ overflow-wrap: break-word;
+ color: rgba(0,91,162,1);
+ font-size: 24rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.block_3 {
+ background-color: rgba(255,255,255,1.000000);
+ border-radius: 24rpx;
+ margin-top: 24rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 32rpx 230rpx 40rpx 24rpx;
+}
+.image-text_4 {
+ width: 332rpx;
+ margin-right: 116rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.label_1 {
+ width: 84rpx;
+ height: 84rpx;
+}
+.text-group_4 {
+ margin-bottom: 8rpx;
+ display: flex;
+ flex-direction: column;
+}
+.text-wrapper_7 {
+ width: 232rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+}
+.text_14 {
+ overflow-wrap: break-word;
+ color: rgba(17,17,17,1);
+ font-size: 32rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 32rpx;
+}
+.text_15 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 24rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 24rpx;
+ margin-top: 8rpx;
+}
+.text_16 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin: 16rpx 66rpx 0 0;
+}
+.text_17 {
+ overflow-wrap: break-word;
+ color: rgba(96,98,102,1);
+ font-size: 28rpx;
+ font-family: Alibaba-PuHuiTi-R;
+ font-weight: normal;
+ text-align: left;
+ white-space: nowrap;
+ line-height: 28rpx;
+ margin: 8rpx 0 0 100rpx;
+}
+.group_1 {
+ width: 188rpx;
+ flex-direction: row;
+ display: flex;
+ justify-content: space-between;
+ margin: 16rpx 160rpx 0 100rpx;
+}
+.text-wrapper_8 {
+ background-color: rgba(27,163,167,0.100000);
+ border-radius: 8rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 6rpx 6rpx 6rpx 8rpx;
+}
+.text_18 {
+ overflow-wrap: break-word;
+ color: rgba(27,163,167,1);
+ font-size: 24rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.text-wrapper_9 {
+ background-color: rgba(0,91,162,0.100000);
+ border-radius: 8rpx;
+ display: flex;
+ flex-direction: column;
+ padding: 6rpx 8rpx 6rpx 10rpx;
+}
+.text_19 {
+ overflow-wrap: break-word;
+ color: rgba(0,91,162,1);
+ font-size: 24rpx;
+ letter-spacing: 0rpx;
+ font-family: Alibaba-PuHuiTi-M;
+ font-weight: normal;
+ text-align: right;
+ white-space: nowrap;
+ line-height: 24rpx;
+}
+.image_3 {
+ width: 750rpx;
+ height: 68rpx;
+ margin-top: -2rpx;
+}
\ No newline at end of file
diff --git a/pages/patients/index.wxml b/pages/patients/index.wxml
new file mode 100644
index 0000000..f390f6f
--- /dev/null
+++ b/pages/patients/index.wxml
@@ -0,0 +1,82 @@
+
+
+
+
+
+ 患者管理
+
+
+
+
+
+ 请输入患者姓名
+
+
+
+
+
+
+
+
+ 张知梦
+ 女 · 2岁5个月
+
+ PELD评分:12
+
+
+ 下次随访时间:2025-12-12
+
+
+ 高危
+
+
+ 术后3月
+
+
+
+
+
+
+
+
+ 王景琛
+ 男 · 2岁6个月
+
+ PELD评分:7
+
+
+ 下次随访时间:2025-12-12
+
+
+ 中危
+
+
+ 术后3月
+
+
+
+
+
+
+
+
+ 赵谦昌
+ 男 · 10个月
+
+ PELD评分:2
+
+
+ 下次随访时间:2025-12-12
+
+
+ 低危
+
+
+ 术后3月
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/project.config.json b/project.config.json
new file mode 100644
index 0000000..683e230
--- /dev/null
+++ b/project.config.json
@@ -0,0 +1,113 @@
+{
+ "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+ "packOptions": {
+ "ignore": [],
+ "include": []
+ },
+ "setting": {
+ "bundle": false,
+ "userConfirmedBundleSwitch": false,
+ "urlCheck": true,
+ "scopeDataCheck": false,
+ "coverView": true,
+ "es6": true,
+ "postcss": true,
+ "compileHotReLoad": false,
+ "lazyloadPlaceholderEnable": false,
+ "preloadBackgroundData": false,
+ "minified": true,
+ "autoAudits": false,
+ "newFeature": false,
+ "uglifyFileName": false,
+ "uploadWithSourceMap": true,
+ "useIsolateContext": true,
+ "nodeModules": false,
+ "enhance": true,
+ "useMultiFrameRuntime": true,
+ "useApiHook": true,
+ "useApiHostProcess": true,
+ "showShadowRootInWxmlPanel": true,
+ "packNpmManually": false,
+ "enableEngineNative": false,
+ "packNpmRelationList": [],
+ "minifyWXSS": true,
+ "showES6CompileOption": false,
+ "minifyWXML": true,
+ "useStaticServer": true,
+ "checkInvalidKey": true,
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "disableUseStrict": false,
+ "useCompilerPlugins": [
+ "less"
+ ],
+ "condition": false,
+ "ignoreUploadUnusedFiles": true,
+ "swc": false,
+ "compileWorklet": false,
+ "localPlugins": false,
+ "disableSWC": true
+ },
+ "compileType": "miniprogram",
+ "libVersion": "3.8.8",
+ "appid": "wx45c06c83e7ff07b9",
+ "projectname": "miniprogram-starter",
+ "condition": {
+ "miniprogram": {
+ "list": [
+ {
+ "name": "login",
+ "pathName": "pages/login/login",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "loginCode",
+ "pathName": "pages/loginCode/loginCode",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "my",
+ "pathName": "pages/my/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "info-edit",
+ "pathName": "pages/my/info-edit/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "dataCenter",
+ "pathName": "pages/dataCenter/index",
+ "query": "",
+ "scene": null
+ },
+ {
+ "name": "release",
+ "pathName": "pages/release/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
+ "name": "setting",
+ "pathName": "pages/setting/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ }
+ ]
+ }
+ },
+ "editorSetting": {
+ "tabIndent": "insertSpaces",
+ "tabSize": 2
+ },
+ "simulatorPluginLibVersion": {}
+}
\ No newline at end of file
diff --git a/project.private.config.json b/project.private.config.json
new file mode 100644
index 0000000..dfdf481
--- /dev/null
+++ b/project.private.config.json
@@ -0,0 +1,51 @@
+{
+ "condition": {
+ "miniprogram": {
+ "list": [
+ {
+ "name": "pages/my/index",
+ "pathName": "pages/my/index",
+ "query": "",
+ "scene": null,
+ "launchMode": "default"
+ },
+ {
+ "name": "pages/home/index",
+ "pathName": "pages/home/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
+ "name": "pages/patients/index",
+ "pathName": "pages/patients/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ }
+ ]
+ }
+ },
+ "libVersion": "3.8.8",
+ "setting": {
+ "urlCheck": false,
+ "compileHotReLoad": true,
+ "coverView": true,
+ "lazyloadPlaceholderEnable": false,
+ "skylineRenderEnable": false,
+ "preloadBackgroundData": false,
+ "autoAudits": false,
+ "useApiHook": true,
+ "useApiHostProcess": true,
+ "showShadowRootInWxmlPanel": true,
+ "useStaticServer": true,
+ "useLanDebug": false,
+ "showES6CompileOption": false,
+ "checkInvalidKey": true,
+ "ignoreDevUnusedFiles": true,
+ "bigPackageSizeSupport": false,
+ "useIsolateContext": true
+ },
+ "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+ "projectname": "miniprogram-starter"
+}
\ No newline at end of file
diff --git a/sitemap.json b/sitemap.json
new file mode 100644
index 0000000..9230ad8
--- /dev/null
+++ b/sitemap.json
@@ -0,0 +1,9 @@
+{
+ "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+ "rules": [
+ {
+ "action": "allow",
+ "page": "*"
+ }
+ ]
+}
diff --git a/utils/eventBus.js b/utils/eventBus.js
new file mode 100644
index 0000000..9668296
--- /dev/null
+++ b/utils/eventBus.js
@@ -0,0 +1,20 @@
+export default function createBus() {
+ return {
+ events: {},
+ on(event, callback) {
+ if (!this.events[event]) this.events[event] = [];
+ this.events[event].push(callback);
+ },
+ off(event, callback) {
+ if (!this.events[event]) return;
+ if (!callback) this.events[event] = [];
+ else {
+ const index = this.events[event].indexOf(callback);
+ if (index !== -1) this.events[event].splice(index, 1);
+ }
+ },
+ emit(event, ...args) {
+ if (this.events[event]) this.events[event].forEach((callback) => callback(...args));
+ },
+ };
+}
diff --git a/utils/util.js b/utils/util.js
new file mode 100644
index 0000000..98b7b71
--- /dev/null
+++ b/utils/util.js
@@ -0,0 +1,28 @@
+const formatNumber = (n) => {
+ n = n.toString();
+ return n[1] ? n : `0${n}`;
+};
+
+const formatTime = (date) => {
+ const year = date.getFullYear();
+ const month = date.getMonth() + 1;
+ const day = date.getDate();
+ const hour = date.getHours();
+ const minute = date.getMinutes();
+ const second = date.getSeconds();
+
+ return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`;
+};
+
+// 复制到本地临时路径,方便预览
+const getLocalUrl = (path, name) => {
+ const fs = wx.getFileSystemManager();
+ const tempFileName = `${wx.env.USER_DATA_PATH}/${name}`;
+ fs.copyFileSync(path, tempFileName);
+ return tempFileName;
+};
+
+module.exports = {
+ formatTime,
+ getLocalUrl,
+};
diff --git a/variable.less b/variable.less
new file mode 100644
index 0000000..6844108
--- /dev/null
+++ b/variable.less
@@ -0,0 +1,23 @@
+// common
+@navbar-padding-top: 20px;
+@nav-bar-height: 60px;
+@tab-bar-height: 112rpx;
+
+// font-size
+@font-size-default: 16px;
+@font-size-small: 14px;
+@font-size-mini: 12px;
+
+// color
+@bg-color: #f3f3f3;
+@bg-color-white: #ffffff;
+
+@brand7-normal: #0052d9;
+@gy1: #000000e6;
+@gy2: #00000099;
+@gy3: #00000066;
+@gray3: #e7e7e7;
+
+@headline-medium: 28px;
+@body-large: 16px;
+@body-small: 12px;