neko-ui 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,10 @@ export interface ButtonProps extends React.HTMLAttributes<HTMLDivElement> {
16
16
  dashed?: boolean;
17
17
  /** 只有文字的按钮 */
18
18
  float?: boolean;
19
+ /** 禁用按钮 */
20
+ disabled?: boolean;
21
+ /** 链接按钮 */
22
+ link?: boolean;
19
23
  }
20
24
  declare const Button: React.FC<ButtonProps>;
21
25
  export default Button;
@@ -1,5 +1,5 @@
1
1
  .status-btn(@type) {
2
- --wave-shadow-color: ~'var(--@{type}-color)';
2
+ --wave-shadow-color: ~'var(--@{type}-color-outline)';
3
3
  color: ~'var(--@{type}-color)';
4
4
  background-color: ~'var(--@{type}-color-deprecated-bg)';
5
5
  border-color: ~'var(--@{type}-color-deprecated-border)';
@@ -17,7 +17,7 @@
17
17
  }
18
18
  }
19
19
  .status-fill-btn(@type) {
20
- --wave-shadow-color: ~'var(--@{type}-color)';
20
+ --wave-shadow-color: ~'var(--@{type}-color-outline)';
21
21
  color: #fff;
22
22
  background-color: ~'var(--@{type}-color)';
23
23
  border-color: ~'var(--@{type}-color)';
@@ -35,7 +35,7 @@
35
35
  }
36
36
  }
37
37
  .@{prefix-cls}-btn {
38
- --wave-shadow-color: var(--primary-color);
38
+ --wave-shadow-color: var(--primary-color-outline);
39
39
  display: inline-block;
40
40
  width: fit-content;
41
41
  min-width: 22px;
@@ -64,10 +64,6 @@
64
64
  border-color: var(--primary-color-active);
65
65
  }
66
66
 
67
- &:last-child {
68
- margin-right: 0;
69
- }
70
-
71
67
  &-primary {
72
68
  .status-btn(primary);
73
69
  }
@@ -110,9 +106,9 @@
110
106
  border-style: dashed;
111
107
  }
112
108
 
113
- &-float {
109
+ &-float, &-link {
114
110
  background-color: transparent;
115
- border-color: transparent !important;
111
+ border-color: transparent;
116
112
 
117
113
  &:hover,
118
114
  &:focus {
@@ -124,6 +120,10 @@
124
120
  }
125
121
  }
126
122
 
123
+ &-link {
124
+ background-color: transparent !important;
125
+ }
126
+
127
127
  &-circle {
128
128
  min-width: 32px;
129
129
  min-height: 32px;
@@ -142,8 +142,12 @@
142
142
  }
143
143
  }
144
144
 
145
- &-without,
146
- &-infinite {
145
+ &-disabled {
146
+ cursor: not-allowed;
147
+ }
148
+
149
+ &-without:not(&-link),
150
+ &-infinite:not(&-link) {
147
151
  position: relative;
148
152
 
149
153
  &::before {
@@ -160,20 +164,25 @@
160
164
  }
161
165
  }
162
166
 
163
- &-infinite::before {
167
+ &-infinite:not(&-link)::before {
164
168
  opacity: 0.2;
165
169
  animation: wave-effect 0.3s cubic-bezier(1, 1, 1, 0.99) infinite;
166
170
  }
171
+
172
+ &:last-child {
173
+ margin-right: 0;
174
+ }
175
+
167
176
  }
168
177
 
169
178
  @keyframes wave-effect {
170
179
  0% {
171
- opacity: 0.3;
180
+ opacity: 1;
172
181
  box-shadow: 0 0 0 var(--wave-shadow-color);
173
182
  }
174
183
 
175
184
  25% {
176
- opacity: 0.2;
185
+ opacity: 1;
177
186
  box-shadow: 0 0 0 4px var(--wave-shadow-color);
178
187
  }
179
188
 
@@ -1,2 +1,2 @@
1
- function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useMemo,useRef}from"react";import{classNames,getPrefixCls,isFunction}from"../utils";import"./index.global.less";var Button=function(_param){var infinite=_param.infinite,ghost=_param.ghost,fill=_param.fill,circle=_param.circle,dashed=_param.dashed,float=_param.float,className=_param.className,children=_param.children,onClick=_param.onClick,type=_param.type,props=_objectWithoutProperties(_param,["infinite","ghost","fill","circle","dashed","float","className","children","onClick","type"]);var ref=useRef(null);var ref1=_slicedToArray(React.useState(false),2),animating=ref1[0],setAnimating=ref1[1];var handleClick=useCallback(function(e){setAnimating(true);if(isFunction(onClick)){onClick(e)}},[onClick]);var cls=useMemo(function(){return classNames([getPrefixCls("btn"),type&&getPrefixCls("btn-".concat(type)),infinite&&getPrefixCls("btn-infinite"),ghost&&getPrefixCls("btn-ghost"),fill&&getPrefixCls("btn-fill"),circle&&getPrefixCls("btn-circle"),dashed&&getPrefixCls("btn-dashed"),float&&getPrefixCls("btn-float"),animating&&getPrefixCls("btn-without"),className])},[type,infinite,ghost,fill,circle,dashed,float,animating,className]);var handleAnimationEnd=useCallback(function(){setAnimating(false)},[]);return React.createElement("div",_extends({},props,{className:cls,onClick:handleClick,onAnimationEnd:handleAnimationEnd,ref:ref}),React.createElement("span",null,children))};export default Button;
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{useCallback,useMemo,useRef}from"react";import{classNames,getPrefixCls,isFunction}from"../utils";import"./index.global.less";var Button=function(_param){var infinite=_param.infinite,ghost=_param.ghost,fill=_param.fill,circle=_param.circle,dashed=_param.dashed,float=_param.float,link=_param.link,className=_param.className,children=_param.children,disabled=_param.disabled,onClick=_param.onClick,type=_param.type,props=_objectWithoutProperties(_param,["infinite","ghost","fill","circle","dashed","float","link","className","children","disabled","onClick","type"]);var ref=useRef(null);var ref1=_slicedToArray(React.useState(false),2),animating=ref1[0],setAnimating=ref1[1];var handleClick=useCallback(function(e){if(disabled)return;setAnimating(true);if(isFunction(onClick)){onClick(e)}},[disabled,onClick]);var cls=useMemo(function(){return classNames([getPrefixCls("btn"),type&&getPrefixCls("btn-".concat(type)),infinite&&getPrefixCls("btn-infinite"),ghost&&getPrefixCls("btn-ghost"),fill&&getPrefixCls("btn-fill"),circle&&getPrefixCls("btn-circle"),dashed&&getPrefixCls("btn-dashed"),float&&getPrefixCls("btn-float"),animating&&getPrefixCls("btn-without"),disabled&&getPrefixCls("btn-disabled"),link&&getPrefixCls("btn-link"),className])},[type,infinite,ghost,fill,circle,dashed,float,animating,disabled,link,className]);var handleAnimationEnd=useCallback(function(){setAnimating(false)},[]);return React.createElement("div",_extends({},props,{className:cls,onClick:handleClick,onAnimationEnd:handleAnimationEnd,ref:ref}),React.createElement("span",null,children))};export default Button;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/button/index.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react';\nimport { classNames, getPrefixCls, isFunction } from '../utils';\nimport './index.global.less';\n\nexport type ButtonType = 'success' | 'error' | 'danger' | 'primary' | 'warning' | 'default';\n\nexport interface ButtonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 按钮类型 */\n type?: ButtonType;\n /** 无限动画 */\n infinite?: boolean;\n /** 透明背景 */\n ghost?: boolean;\n /** 实色背景 */\n fill?: boolean;\n /** 圆形按钮 */\n circle?: boolean;\n /** 虚线按钮 */\n dashed?: boolean;\n /** 只有文字的按钮 */\n float?: boolean;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n infinite,\n ghost,\n fill,\n circle,\n dashed,\n float,\n className,\n children,\n onClick,\n type,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [animating, setAnimating] = React.useState(false);\n\n const handleClick: React.MouseEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n setAnimating(true);\n if (isFunction(onClick)) {\n onClick(e);\n }\n },\n [onClick]\n );\n const cls = useMemo(\n () =>\n classNames([\n getPrefixCls('btn'),\n type && getPrefixCls(`btn-${type}`),\n infinite && getPrefixCls('btn-infinite'),\n ghost && getPrefixCls('btn-ghost'),\n fill && getPrefixCls('btn-fill'),\n circle && getPrefixCls('btn-circle'),\n dashed && getPrefixCls('btn-dashed'),\n float && getPrefixCls('btn-float'),\n animating && getPrefixCls('btn-without'),\n className,\n ]),\n [type, infinite, ghost, fill, circle, dashed, float, animating, className]\n );\n const handleAnimationEnd = useCallback(() => {\n setAnimating(false);\n }, []);\n\n return (\n <div\n {...props}\n className={cls}\n onClick={handleClick}\n onAnimationEnd={handleAnimationEnd}\n ref={ref}\n >\n <span>{children}</span>\n </div>\n );\n};\n\nexport default Button;\n"],"names":["React","useCallback","useMemo","useRef","classNames","getPrefixCls","isFunction","Button","infinite","ghost","fill","circle","dashed","float","className","children","onClick","type","props","ref","useState","animating","setAnimating","handleClick","e","cls","handleAnimationEnd","div","onAnimationEnd","span"],"mappings":"AAAA,mxEAAA,OAAOA,OAASC,WAAW,CAAEC,OAAO,CAAEC,MAAM,KAAQ,OAAQ,AAC5D,QAASC,UAAU,CAAEC,YAAY,CAAEC,UAAU,KAAQ,UAAW,AAChE,OAAO,qBAAsB,CAqB7B,IAAMC,OAAgC,gBAYhC,KAXJC,gBAAAA,SACAC,aAAAA,MACAC,YAAAA,KACAC,cAAAA,OACAC,cAAAA,OACAC,aAAAA,MACAC,iBAAAA,UACAC,gBAAAA,SACAC,eAAAA,QACAC,YAAAA,KACGC,uCAVHV,WACAC,QACAC,OACAC,SACAC,SACAC,QACAC,YACAC,WACAC,UACAC,SAGA,IAAME,IAAMhB,OAAuB,IAAI,EACvC,IAAkCH,oBAAAA,MAAMoB,QAAQ,CAAC,KAAK,KAA/CC,UAA2BrB,QAAhBsB,aAAgBtB,QAElC,IAAMuB,YAAuDtB,YAC3D,SAACuB,EAAM,CACLF,aAAa,IAAI,EACjB,GAAIhB,WAAWU,SAAU,CACvBA,QAAQQ,EACV,CAAC,AACH,EACA,CAACR,QAAQ,EAEX,IAAMS,IAAMvB,QACV,kBACEE,WAAW,CACTC,aAAa,OACbY,MAAQZ,aAAa,AAAC,OAAW,OAALY,OAC5BT,UAAYH,aAAa,gBACzBI,OAASJ,aAAa,aACtBK,MAAQL,aAAa,YACrBM,QAAUN,aAAa,cACvBO,QAAUP,aAAa,cACvBQ,OAASR,aAAa,aACtBgB,WAAahB,aAAa,eAC1BS,UACD,GACH,CAACG,KAAMT,SAAUC,MAAOC,KAAMC,OAAQC,OAAQC,MAAOQ,UAAWP,UAAU,EAE5E,IAAMY,mBAAqBzB,YAAY,UAAM,CAC3CqB,aAAa,KAAK,CACpB,EAAG,EAAE,EAEL,OACE,oBAACK,kBACKT,OACJJ,UAAWW,IACXT,QAASO,YACTK,eAAgBF,mBAChBP,IAAKA,MAEL,oBAACU,YAAMd,UAGb,CAEA,gBAAeR,MAAO"}
1
+ {"version":3,"sources":["../../components/button/index.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react';\nimport { classNames, getPrefixCls, isFunction } from '../utils';\nimport './index.global.less';\n\nexport type ButtonType = 'success' | 'error' | 'danger' | 'primary' | 'warning' | 'default';\n\nexport interface ButtonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 按钮类型 */\n type?: ButtonType;\n /** 无限动画 */\n infinite?: boolean;\n /** 透明背景 */\n ghost?: boolean;\n /** 实色背景 */\n fill?: boolean;\n /** 圆形按钮 */\n circle?: boolean;\n /** 虚线按钮 */\n dashed?: boolean;\n /** 只有文字的按钮 */\n float?: boolean;\n /** 禁用按钮 */\n disabled?: boolean;\n /** 链接按钮 */\n link?: boolean;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n infinite,\n ghost,\n fill,\n circle,\n dashed,\n float,\n link,\n className,\n children,\n disabled,\n onClick,\n type,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [animating, setAnimating] = React.useState(false);\n\n const handleClick: React.MouseEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n if (disabled) return;\n setAnimating(true);\n if (isFunction(onClick)) {\n onClick(e);\n }\n },\n [disabled, onClick]\n );\n const cls = useMemo(\n () =>\n classNames([\n getPrefixCls('btn'),\n type && getPrefixCls(`btn-${type}`),\n infinite && getPrefixCls('btn-infinite'),\n ghost && getPrefixCls('btn-ghost'),\n fill && getPrefixCls('btn-fill'),\n circle && getPrefixCls('btn-circle'),\n dashed && getPrefixCls('btn-dashed'),\n float && getPrefixCls('btn-float'),\n animating && getPrefixCls('btn-without'),\n disabled && getPrefixCls('btn-disabled'),\n link && getPrefixCls('btn-link'),\n className,\n ]),\n [type, infinite, ghost, fill, circle, dashed, float, animating, disabled, link, className]\n );\n const handleAnimationEnd = useCallback(() => {\n setAnimating(false);\n }, []);\n\n return (\n <div\n {...props}\n className={cls}\n onClick={handleClick}\n onAnimationEnd={handleAnimationEnd}\n ref={ref}\n >\n <span>{children}</span>\n </div>\n );\n};\n\nexport default Button;\n"],"names":["React","useCallback","useMemo","useRef","classNames","getPrefixCls","isFunction","Button","infinite","ghost","fill","circle","dashed","float","link","className","children","disabled","onClick","type","props","ref","useState","animating","setAnimating","handleClick","e","cls","handleAnimationEnd","div","onAnimationEnd","span"],"mappings":"AAAA,mxEAAA,OAAOA,OAASC,WAAW,CAAEC,OAAO,CAAEC,MAAM,KAAQ,OAAQ,AAC5D,QAASC,UAAU,CAAEC,YAAY,CAAEC,UAAU,KAAQ,UAAW,AAChE,OAAO,qBAAsB,CAyB7B,IAAMC,OAAgC,gBAchC,KAbJC,gBAAAA,SACAC,aAAAA,MACAC,YAAAA,KACAC,cAAAA,OACAC,cAAAA,OACAC,aAAAA,MACAC,YAAAA,KACAC,iBAAAA,UACAC,gBAAAA,SACAC,gBAAAA,SACAC,eAAAA,QACAC,YAAAA,KACGC,uCAZHZ,WACAC,QACAC,OACAC,SACAC,SACAC,QACAC,OACAC,YACAC,WACAC,WACAC,UACAC,SAGA,IAAME,IAAMlB,OAAuB,IAAI,EACvC,IAAkCH,oBAAAA,MAAMsB,QAAQ,CAAC,KAAK,KAA/CC,UAA2BvB,QAAhBwB,aAAgBxB,QAElC,IAAMyB,YAAuDxB,YAC3D,SAACyB,EAAM,CACL,GAAIT,SAAU,MAAO,CACrBO,aAAa,IAAI,EACjB,GAAIlB,WAAWY,SAAU,CACvBA,QAAQQ,EACV,CAAC,AACH,EACA,CAACT,SAAUC,QAAQ,EAErB,IAAMS,IAAMzB,QACV,kBACEE,WAAW,CACTC,aAAa,OACbc,MAAQd,aAAa,AAAC,OAAW,OAALc,OAC5BX,UAAYH,aAAa,gBACzBI,OAASJ,aAAa,aACtBK,MAAQL,aAAa,YACrBM,QAAUN,aAAa,cACvBO,QAAUP,aAAa,cACvBQ,OAASR,aAAa,aACtBkB,WAAalB,aAAa,eAC1BY,UAAYZ,aAAa,gBACzBS,MAAQT,aAAa,YACrBU,UACD,GACH,CAACI,KAAMX,SAAUC,MAAOC,KAAMC,OAAQC,OAAQC,MAAOU,UAAWN,SAAUH,KAAMC,UAAU,EAE5F,IAAMa,mBAAqB3B,YAAY,UAAM,CAC3CuB,aAAa,KAAK,CACpB,EAAG,EAAE,EAEL,OACE,oBAACK,kBACKT,OACJL,UAAWY,IACXT,QAASO,YACTK,eAAgBF,mBAChBP,IAAKA,MAEL,oBAACU,YAAMf,UAGb,CAEA,gBAAeT,MAAO"}
package/es/index.d.ts CHANGED
@@ -20,3 +20,5 @@ export { default as CronEditor } from './cron-editor';
20
20
  export type { CornEditorProps } from './cron-editor';
21
21
  export { default as Button } from './button';
22
22
  export type { ButtonProps, ButtonType } from './button';
23
+ export { default as Input } from './input';
24
+ export type { InputProps } from './input';
package/es/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{default as Markdown}from"./markdown";export{default as BackTop}from"./back-top";export{default as Tag}from"./tag";export{default as HighlightText}from"./highlight-text";export{default as useTheme}from"./use-theme";export{default as Avatar}from"./avatar";export{default as Marquee}from"./marquee";export{default as CaptureScreen}from"./capture-screen";export{default as WaveCircle}from"./wave-circle";export{default as CronEditor}from"./cron-editor";export{default as Button}from"./button";
1
+ export{default as Markdown}from"./markdown";export{default as BackTop}from"./back-top";export{default as Tag}from"./tag";export{default as HighlightText}from"./highlight-text";export{default as useTheme}from"./use-theme";export{default as Avatar}from"./avatar";export{default as Marquee}from"./marquee";export{default as CaptureScreen}from"./capture-screen";export{default as WaveCircle}from"./wave-circle";export{default as CronEditor}from"./cron-editor";export{default as Button}from"./button";export{default as Input}from"./input";
2
2
  //# sourceMappingURL=index.js.map
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/index.ts"],"sourcesContent":["export { default as Markdown } from './markdown';\nexport type { MarkdownProps, CodeBlockToolType, AnchorType } from './markdown';\n\nexport { default as BackTop } from './back-top';\nexport type { BackTopProps } from './back-top';\n\nexport { default as Tag } from './tag';\nexport type { TagProps } from './tag';\n\nexport { default as HighlightText } from './highlight-text';\nexport type { Highlight, HighlightTextProps, HighlightTextJson } from './highlight-text';\n\nexport { default as useTheme } from './use-theme';\nexport type { ThemeTypes } from './use-theme';\n\nexport { default as Avatar } from './avatar';\nexport type { AvatarProps } from './avatar';\n\nexport { default as Marquee } from './marquee';\nexport type { MarqueeProps } from './marquee';\n\nexport { default as CaptureScreen } from './capture-screen';\nexport type { CaptureScreenProp, RecorderOptions } from './capture-screen';\n\nexport { default as WaveCircle } from './wave-circle';\nexport type { WaveCircleProps } from './wave-circle';\n\nexport { default as CronEditor } from './cron-editor';\nexport type { CornEditorProps } from './cron-editor';\n\nexport { default as Button } from './button';\nexport type { ButtonProps, ButtonType } from './button';\n"],"names":["default","Markdown","BackTop","Tag","HighlightText","useTheme","Avatar","Marquee","CaptureScreen","WaveCircle","CronEditor","Button"],"mappings":"AAAA,OAASA,WAAWC,QAAQ,KAAQ,YAAa,AAGjD,QAASD,WAAWE,OAAO,KAAQ,YAAa,AAGhD,QAASF,WAAWG,GAAG,KAAQ,OAAQ,AAGvC,QAASH,WAAWI,aAAa,KAAQ,kBAAmB,AAG5D,QAASJ,WAAWK,QAAQ,KAAQ,aAAc,AAGlD,QAASL,WAAWM,MAAM,KAAQ,UAAW,AAG7C,QAASN,WAAWO,OAAO,KAAQ,WAAY,AAG/C,QAASP,WAAWQ,aAAa,KAAQ,kBAAmB,AAG5D,QAASR,WAAWS,UAAU,KAAQ,eAAgB,AAGtD,QAAST,WAAWU,UAAU,KAAQ,eAAgB,AAGtD,QAASV,WAAWW,MAAM,KAAQ,UAAW"}
1
+ {"version":3,"sources":["../components/index.ts"],"sourcesContent":["export { default as Markdown } from './markdown';\nexport type { MarkdownProps, CodeBlockToolType, AnchorType } from './markdown';\n\nexport { default as BackTop } from './back-top';\nexport type { BackTopProps } from './back-top';\n\nexport { default as Tag } from './tag';\nexport type { TagProps } from './tag';\n\nexport { default as HighlightText } from './highlight-text';\nexport type { Highlight, HighlightTextProps, HighlightTextJson } from './highlight-text';\n\nexport { default as useTheme } from './use-theme';\nexport type { ThemeTypes } from './use-theme';\n\nexport { default as Avatar } from './avatar';\nexport type { AvatarProps } from './avatar';\n\nexport { default as Marquee } from './marquee';\nexport type { MarqueeProps } from './marquee';\n\nexport { default as CaptureScreen } from './capture-screen';\nexport type { CaptureScreenProp, RecorderOptions } from './capture-screen';\n\nexport { default as WaveCircle } from './wave-circle';\nexport type { WaveCircleProps } from './wave-circle';\n\nexport { default as CronEditor } from './cron-editor';\nexport type { CornEditorProps } from './cron-editor';\n\nexport { default as Button } from './button';\nexport type { ButtonProps, ButtonType } from './button';\n\nexport { default as Input } from './input';\nexport type { InputProps } from './input';\n"],"names":["default","Markdown","BackTop","Tag","HighlightText","useTheme","Avatar","Marquee","CaptureScreen","WaveCircle","CronEditor","Button","Input"],"mappings":"AAAA,OAASA,WAAWC,QAAQ,KAAQ,YAAa,AAGjD,QAASD,WAAWE,OAAO,KAAQ,YAAa,AAGhD,QAASF,WAAWG,GAAG,KAAQ,OAAQ,AAGvC,QAASH,WAAWI,aAAa,KAAQ,kBAAmB,AAG5D,QAASJ,WAAWK,QAAQ,KAAQ,aAAc,AAGlD,QAASL,WAAWM,MAAM,KAAQ,UAAW,AAG7C,QAASN,WAAWO,OAAO,KAAQ,WAAY,AAG/C,QAASP,WAAWQ,aAAa,KAAQ,kBAAmB,AAG5D,QAASR,WAAWS,UAAU,KAAQ,eAAgB,AAGtD,QAAST,WAAWU,UAAU,KAAQ,eAAgB,AAGtD,QAASV,WAAWW,MAAM,KAAQ,UAAW,AAG7C,QAASX,WAAWY,KAAK,KAAQ,SAAU"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './index.global.less';
3
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
4
+ className?: string;
5
+ suffix?: React.ReactNode;
6
+ }
7
+ declare const Input: React.FC<InputProps>;
8
+ export default Input;
@@ -0,0 +1,58 @@
1
+ .@{prefix-cls}-input-wrapper {
2
+ color: var(--text-color, rgba(0, 0, 0, 0.85));
3
+ font-size: 14px;
4
+ line-height: 1.5715;
5
+ background-color: #fff;
6
+ background-image: none;
7
+ border: 1px solid var(--border-color-base, #d9d9d9);
8
+ border-radius: 4px;
9
+ transition: all 0.3s;
10
+ box-sizing: border-box;
11
+ width: 100%;
12
+ padding: 4px 10px;
13
+ display: flex;
14
+
15
+ &:hover:not([disabled]) {
16
+ border-color: var(--primary-color-hover, #5794ff);
17
+ border-right-width: 1px;
18
+ }
19
+
20
+ &:focus:not([disabled]) {
21
+ border-color: var(--primary-color-hover, #5794ff);
22
+ box-shadow: 0 0 0 2px rgba(45, 115, 255, 0.2);
23
+ border-right-width: 1px;
24
+ outline: 0;
25
+ }
26
+
27
+ &[disabled] {
28
+ background: var(--disabled-bg, #f5f5f5);
29
+ border-color: var(--border-color-base, #d9d9d9);
30
+ cursor: not-allowed;
31
+ }
32
+ }
33
+ .@{prefix-cls}-input-prefix {
34
+ margin-right: 4px;
35
+ }
36
+ .@{prefix-cls}-input-suffix {
37
+ margin-left: 4px;
38
+ }
39
+ .@{prefix-cls}-input {
40
+ border: none;
41
+ outline: none;
42
+ flex: 1;
43
+ color: inherit;
44
+ white-space: nowrap;
45
+ text-overflow: ellipsis;
46
+ overflow: hidden;
47
+
48
+ &[type="number"] {
49
+ width: 75px;
50
+ padding: 0 0 0 10px;
51
+ }
52
+
53
+ &[type="button"],
54
+ &[type="submit"],
55
+ &[type="reset"] {
56
+ cursor: pointer;
57
+ }
58
+ }
@@ -0,0 +1,2 @@
1
+ function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import React from"react";import{classNames,getPrefixCls}from"../utils";import"./index.global.less";var Input=function(_param){var className=_param.className,_type=_param.type,type=_type===void 0?"text":_type,suffix=_param.suffix,prefix=_param.prefix,value=_param.value,prpos=_objectWithoutProperties(_param,["className","type","suffix","prefix","value"]);return React.createElement("span",{className:classNames([getPrefixCls("input-wrapper"),getPrefixCls("input-".concat(type)),className])},prefix&&React.createElement("span",{className:getPrefixCls("input-prefix")},prefix),React.createElement("input",_extends({value:value,className:getPrefixCls("input"),type:type},prpos)),suffix&&React.createElement("span",{className:getPrefixCls("input-suffix")},suffix))};export default Input;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../components/input/index.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames, getPrefixCls } from '../utils';\nimport './index.global.less';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n className?: string;\n suffix?: React.ReactNode;\n}\n\nconst Input: React.FC<InputProps> = ({\n className,\n type = 'text',\n suffix,\n prefix,\n value,\n ...prpos\n}) => {\n return (\n <span\n className={classNames([\n getPrefixCls('input-wrapper'),\n getPrefixCls(`input-${type}`),\n className,\n ])}\n >\n {prefix && <span className={getPrefixCls('input-prefix')}>{prefix}</span>}\n <input value={value} className={getPrefixCls('input')} type={type} {...prpos} />\n {suffix && <span className={getPrefixCls('input-suffix')}>{suffix}</span>}\n </span>\n );\n};\n\nexport default Input;\n"],"names":["React","classNames","getPrefixCls","Input","className","type","suffix","prefix","value","prpos","span","input"],"mappings":"AAAA,w9BAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,CAAEC,YAAY,KAAQ,UAAW,AACpD,OAAO,qBAAsB,CAO7B,IAAMC,MAA8B,gBAO9B,KANJC,iBAAAA,uBACAC,KAAAA,oBAAO,aACPC,cAAAA,OACAC,cAAAA,OACAC,aAAAA,MACGC,uCALHL,YACAC,OACAC,SACAC,SACAC,UAGA,OACE,oBAACE,QACCN,UAAWH,WAAW,CACpBC,aAAa,iBACbA,aAAa,AAAC,SAAa,OAALG,OACtBD,UACD,GAEAG,QAAU,oBAACG,QAAKN,UAAWF,aAAa,iBAAkBK,QAC3D,oBAACI,kBAAMH,MAAOA,MAAOJ,UAAWF,aAAa,SAAUG,KAAMA,MAAUI,QACtEH,QAAU,oBAACI,QAAKN,UAAWF,aAAa,iBAAkBI,QAGjE,CAEA,gBAAeH,KAAM"}
@@ -1,2 +1,2 @@
1
- function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{Fragment,useCallback,useEffect,useMemo,useRef,useState}from"react";import{getScrollTop,setClipboard,classNames,getPrefixCls,isEqual}from"../utils";import{getMarkedImgList,markdownUtil}from"./markdown-util";import{PhotoSlider}from"react-photo-view";import"react-photo-view/dist/react-photo-view.css";import"./index.global.less";var toggleAnchor=function(anchor){var ref,ref1,ref2;(ref1=(ref=anchor.offsetParent)===null||ref===void 0?void 0:ref.querySelectorAll("li"))===null||ref1===void 0?void 0:ref1.forEach(function(a){a.classList.remove("active")});(ref2=anchor.parentElement)===null||ref2===void 0?void 0:ref2.classList.add("active")};var Markdown=function(param){var className=param.className,style=param.style,text=param.text,_pictureViewer=param.pictureViewer,pictureViewer=_pictureViewer===void 0?true:_pictureViewer,_langLineNumber=param.langLineNumber,langLineNumber=_langLineNumber===void 0?true:_langLineNumber,_tools=param.tools,tools=_tools===void 0?["copy"]:_tools,_getAnchorContainer=param.getAnchorContainer,getAnchorContainer=_getAnchorContainer===void 0?function(){return window}:_getAnchorContainer,tex=param.tex;var ref=useRef(null);var ref1=_slicedToArray(useState(false),2),visible=ref1[0],setVisible=ref1[1];var ref2=_slicedToArray(useState(0),2),photoIndex=ref2[0],setPhotoIndex=ref2[1];var ref3=_slicedToArray(useState(""),2),htmlString=ref3[0],setHtmlString=ref3[1];var ref4=_slicedToArray(useState([]),2),imgList=ref4[0],setImgList=ref4[1];var htmlStrRef=useRef(htmlString);var anchors=useRef([]);useMemo(function(){var str=htmlStrRef.current;if(text){str=markdownUtil(text,{langLineNumber:langLineNumber,langToolbar:tools,tex:tex})}else{str=""}if(str!==htmlStrRef.current){Object.assign(htmlStrRef,{current:str});setHtmlString(str)}},[text,langLineNumber,tools,tex]);useEffect(function(){var timer=setTimeout(function(){window.Prism.highlightAll();if(typeof timer==="number")clearTimeout(timer)},0);if(pictureViewer){setImgList(getMarkedImgList(htmlString))}return function(){if(typeof timer==="number"){clearTimeout(timer)}}},[htmlString,pictureViewer]);var handleAnchor=function(e){var ref1,ref2,ref3;e.preventDefault();e.stopPropagation();toggleAnchor(e.target);(ref3=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent((ref2=e.target)===null||ref2===void 0?void 0:ref2.hash)))===null||ref3===void 0?void 0:ref3.scrollIntoView({behavior:"smooth",block:"center"})};useEffect(function(){var ref1,ref2;var _anchors=[];(ref2=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelectorAll(".markdown-toc li a"))===null||ref2===void 0?void 0:ref2.forEach(function(e){var ref1;var a=e;var _el=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent(a===null||a===void 0?void 0:a.hash));_anchors.push({anchor:a,top:_el.offsetTop});e.onclick=handleAnchor});Object.assign(anchors,{current:_anchors})},[htmlString]);var handleClick=useCallback(function(event){var target=event.target;if((target===null||target===void 0?void 0:target.tagName)==="IMG"&&pictureViewer){var ref1;var arr=((ref1=ref.current)===null||ref1===void 0?void 0:ref1.getElementsByTagName("img"))||[];for(var i=0,len=arr.length;i<len;i++){if(arr[i]===target){setPhotoIndex(i);setVisible(true)}}}else if(target.className.includes("toolbar-copy")&&(tools===null||tools===void 0?void 0:tools.includes("copy"))){if(target.offsetParent&&!target.offsetParent.hasAttribute("data-copy")){setClipboard(target.offsetParent.innerText,target.offsetParent)}}},[tools,pictureViewer]);var handleWheel=useCallback(function(event){var offsetParent=event.target.offsetParent;if(!offsetParent||offsetParent.tagName!=="PRE"){return}var rows=offsetParent===null||offsetParent===void 0?void 0:offsetParent.getElementsByClassName("line-numbers-rows");if(rows===null||rows===void 0?void 0:rows.length){var codeTag=offsetParent.getElementsByTagName("code")[0];if(codeTag.scrollHeight-codeTag.offsetHeight&&rows[0].scrollTop!==codeTag.scrollTop){rows[0].scrollTop=codeTag.scrollTop}}},[]);var handleScroll=useCallback(function(e){if(!anchors.current.length)return;var el=e.target;var top=getScrollTop(el);var anchor=null;anchors.current.forEach(function(a){if(top-a.top>-el.offsetHeight/2)anchor=a.anchor});if(anchor){toggleAnchor(anchor)}},[]);useEffect(function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.addEventListener("scroll",handleScroll);return function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.removeEventListener("scroll",handleScroll)}},[getAnchorContainer,handleScroll]);var cls=useMemo(function(){return classNames([getPrefixCls("markdown-box"),className])},[className]);return React.createElement(Fragment,null,React.createElement("div",{ref:ref,className:cls,style:style,dangerouslySetInnerHTML:{__html:htmlString},onClick:handleClick,onWheel:handleWheel}),imgList.length?React.createElement(PhotoSlider,{images:imgList,visible:visible,onClose:function(){return setVisible(false)},index:photoIndex,onIndexChange:setPhotoIndex}):null)};export default React.memo(Markdown,isEqual);
1
+ function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}import React,{Fragment,useCallback,useEffect,useMemo,useRef,useState}from"react";import{getScrollTop,setClipboard,classNames,getPrefixCls,isEqual,isSvgElement}from"../utils";import{getMarkedImgList,markdownUtil}from"./markdown-util";import{PhotoSlider}from"react-photo-view";import"react-photo-view/dist/react-photo-view.css";import"./index.global.less";var toggleAnchor=function(anchor){var ref,ref1,ref2;(ref1=(ref=anchor.offsetParent)===null||ref===void 0?void 0:ref.querySelectorAll("li"))===null||ref1===void 0?void 0:ref1.forEach(function(a){a.classList.remove("active")});(ref2=anchor.parentElement)===null||ref2===void 0?void 0:ref2.classList.add("active")};var Markdown=function(param){var className=param.className,style=param.style,text=param.text,_pictureViewer=param.pictureViewer,pictureViewer=_pictureViewer===void 0?true:_pictureViewer,_langLineNumber=param.langLineNumber,langLineNumber=_langLineNumber===void 0?true:_langLineNumber,_tools=param.tools,tools=_tools===void 0?["copy"]:_tools,_getAnchorContainer=param.getAnchorContainer,getAnchorContainer=_getAnchorContainer===void 0?function(){return window}:_getAnchorContainer,tex=param.tex;var ref=useRef(null);var ref1=_slicedToArray(useState(false),2),visible=ref1[0],setVisible=ref1[1];var ref2=_slicedToArray(useState(0),2),photoIndex=ref2[0],setPhotoIndex=ref2[1];var ref3=_slicedToArray(useState(""),2),htmlString=ref3[0],setHtmlString=ref3[1];var ref4=_slicedToArray(useState([]),2),imgList=ref4[0],setImgList=ref4[1];var htmlStrRef=useRef(htmlString);var anchors=useRef([]);useMemo(function(){var str=htmlStrRef.current;if(text){str=markdownUtil(text,{langLineNumber:langLineNumber,langToolbar:tools,tex:tex})}else{str=""}if(str!==htmlStrRef.current){Object.assign(htmlStrRef,{current:str});setHtmlString(str)}},[text,langLineNumber,tools,tex]);useEffect(function(){var timer=setTimeout(function(){window.Prism.highlightAll();if(typeof timer==="number")clearTimeout(timer)},0);if(pictureViewer){setImgList(getMarkedImgList(htmlString))}return function(){if(typeof timer==="number"){clearTimeout(timer)}}},[htmlString,pictureViewer]);var handleAnchor=function(e){var ref1,ref2,ref3;e.preventDefault();e.stopPropagation();toggleAnchor(e.target);(ref3=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent((ref2=e.target)===null||ref2===void 0?void 0:ref2.hash)))===null||ref3===void 0?void 0:ref3.scrollIntoView({behavior:"smooth",block:"center"})};useEffect(function(){var ref1,ref2;var _anchors=[];(ref2=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelectorAll(".markdown-toc li a"))===null||ref2===void 0?void 0:ref2.forEach(function(e){var ref1;var a=e;var _el=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent(a===null||a===void 0?void 0:a.hash));_anchors.push({anchor:a,top:_el.offsetTop});e.onclick=handleAnchor});Object.assign(anchors,{current:_anchors})},[htmlString]);var handleClick=useCallback(function(event){var target=event.target;if(isSvgElement(target))return;if(target.tagName==="IMG"&&pictureViewer){var ref1;var arr=((ref1=ref.current)===null||ref1===void 0?void 0:ref1.getElementsByTagName("img"))||[];for(var i=0,len=arr.length;i<len;i++){if(arr[i]===target){setPhotoIndex(i);setVisible(true)}}}else if(target.className.includes("toolbar-copy")){var offsetParent=target.offsetParent;if(!(offsetParent===null||offsetParent===void 0?void 0:offsetParent.hasAttribute("data-copy"))){setClipboard(offsetParent===null||offsetParent===void 0?void 0:offsetParent.innerText,offsetParent)}}},[pictureViewer]);var handleWheel=useCallback(function(event){var offsetParent=event.target.offsetParent;if(!offsetParent||offsetParent.tagName!=="PRE"){return}var rows=offsetParent===null||offsetParent===void 0?void 0:offsetParent.getElementsByClassName("line-numbers-rows");if(rows===null||rows===void 0?void 0:rows.length){var codeTag=offsetParent.getElementsByTagName("code")[0];if(codeTag.scrollHeight-codeTag.offsetHeight&&rows[0].scrollTop!==codeTag.scrollTop){rows[0].scrollTop=codeTag.scrollTop}}},[]);var handleScroll=useCallback(function(e){if(!anchors.current.length)return;var el=e.target;var top=getScrollTop(el);var anchor=null;anchors.current.forEach(function(a){if(top-a.top>-el.offsetHeight/2)anchor=a.anchor});if(anchor){toggleAnchor(anchor)}},[]);useEffect(function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.addEventListener("scroll",handleScroll);return function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.removeEventListener("scroll",handleScroll)}},[getAnchorContainer,handleScroll]);var cls=useMemo(function(){return classNames([getPrefixCls("markdown-box"),className])},[className]);return React.createElement(Fragment,null,React.createElement("div",{ref:ref,className:cls,style:style,dangerouslySetInnerHTML:{__html:htmlString},onClick:handleClick,onWheel:handleWheel}),imgList.length?React.createElement(PhotoSlider,{images:imgList,visible:visible,onClose:function(){return setVisible(false)},index:photoIndex,onIndexChange:setPhotoIndex}):null)};export default React.memo(Markdown,isEqual);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/markdown/index.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { FC, MouseEvent, WheelEvent } from 'react';\nimport { getScrollTop, setClipboard, classNames, getPrefixCls, isEqual } from '../utils';\nimport { getMarkedImgList, markdownUtil } from './markdown-util';\nimport { PhotoSlider } from 'react-photo-view';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport 'react-photo-view/dist/react-photo-view.css';\nimport './index.global.less';\n\nexport type CodeBlockToolType = Array<'copy'>;\n\nexport interface MarkdownProps {\n className?: string;\n style?: React.CSSProperties;\n /** md内容 */\n text?: string;\n /** 开启图片查看器 */\n pictureViewer?: boolean;\n /** 显示代码块行号 */\n langLineNumber?: boolean;\n /** 开启代码块工具条 */\n tools?: CodeBlockToolType;\n /** 指定滚动的容器 */\n getAnchorContainer?: () => HTMLElement;\n /** 渲染KateX数学公式 */\n tex?: boolean;\n}\n\nexport type AnchorType = {\n anchor: HTMLAnchorElement;\n top: number;\n};\n\nconst toggleAnchor = (anchor: HTMLAnchorElement) => {\n anchor.offsetParent?.querySelectorAll('li')?.forEach((a) => {\n a.classList.remove('active');\n });\n anchor.parentElement?.classList.add('active');\n};\n\nconst Markdown: FC<MarkdownProps> = ({\n className,\n style,\n text,\n pictureViewer = true,\n langLineNumber = true,\n tools = ['copy'],\n getAnchorContainer = () => window,\n tex,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [visible, setVisible] = useState(false);\n const [photoIndex, setPhotoIndex] = useState(0);\n const [htmlString, setHtmlString] = useState<string>('');\n const [imgList, setImgList] = useState<PhotoViewDataType[]>([]);\n const htmlStrRef = useRef<string>(htmlString);\n const anchors = useRef<AnchorType[]>([]);\n\n useMemo(() => {\n let str = htmlStrRef.current;\n\n if (text) {\n str = markdownUtil(text, {\n langLineNumber,\n langToolbar: tools,\n tex: tex,\n });\n } else {\n str = '';\n }\n if (str !== htmlStrRef.current) {\n Object.assign(htmlStrRef, {\n current: str,\n });\n setHtmlString(str);\n }\n }, [text, langLineNumber, tools, tex]);\n\n useEffect(() => {\n const timer: NodeJS.Timeout = setTimeout(() => {\n window.Prism.highlightAll();\n if (typeof timer === 'number') clearTimeout(timer);\n }, 0);\n\n if (pictureViewer) {\n setImgList(getMarkedImgList(htmlString));\n }\n return () => {\n if (typeof timer === 'number') {\n clearTimeout(timer);\n }\n };\n }, [htmlString, pictureViewer]);\n\n const handleAnchor = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n toggleAnchor(e.target as HTMLAnchorElement);\n ref.current\n ?.querySelector(decodeURIComponent((e.target as HTMLAnchorElement)?.hash))\n ?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n };\n\n useEffect(() => {\n const _anchors: AnchorType[] = [];\n\n ref.current?.querySelectorAll('.markdown-toc li a')?.forEach((e) => {\n const a = e as HTMLAnchorElement;\n const _el = ref.current?.querySelector(\n decodeURIComponent((a as HTMLAnchorElement)?.hash)\n ) as HTMLElement;\n\n _anchors.push({\n anchor: a,\n top: _el.offsetTop,\n });\n (e as HTMLAnchorElement).onclick = handleAnchor;\n });\n\n Object.assign(anchors, {\n current: _anchors,\n });\n }, [htmlString]);\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n\n if (target?.tagName === 'IMG' && pictureViewer) {\n const arr = ref.current?.getElementsByTagName('img') || [];\n\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === target) {\n setPhotoIndex(i);\n setVisible(true);\n }\n }\n } else if (target.className.includes('toolbar-copy') && tools?.includes('copy')) {\n if (target.offsetParent && !target.offsetParent.hasAttribute('data-copy')) {\n setClipboard((target.offsetParent as HTMLElement).innerText, target.offsetParent);\n }\n }\n },\n [tools, pictureViewer]\n );\n\n const handleWheel = useCallback((event: WheelEvent<HTMLDivElement>) => {\n const offsetParent = (event.target as HTMLElement).offsetParent;\n\n if (!offsetParent || offsetParent.tagName !== 'PRE') {\n return;\n }\n const rows = offsetParent?.getElementsByClassName('line-numbers-rows');\n\n if (rows?.length) {\n const codeTag: HTMLElement = offsetParent.getElementsByTagName('code')[0];\n\n if (codeTag.scrollHeight - codeTag.offsetHeight && rows[0].scrollTop !== codeTag.scrollTop) {\n // 可滚动高度大于0\n rows[0].scrollTop = codeTag.scrollTop;\n }\n }\n }, []);\n const handleScroll = useCallback((e: Event) => {\n if (!anchors.current.length) return;\n const el = e.target as HTMLElement;\n const top = getScrollTop(el);\n\n let anchor: HTMLAnchorElement | null = null;\n\n anchors.current.forEach((a) => {\n if (top - a.top > -el.offsetHeight / 2) anchor = a.anchor;\n });\n\n if (anchor) {\n toggleAnchor(anchor);\n }\n }, []);\n\n useEffect(() => {\n getAnchorContainer()?.addEventListener('scroll', handleScroll);\n return () => {\n getAnchorContainer()?.removeEventListener('scroll', handleScroll);\n };\n }, [getAnchorContainer, handleScroll]);\n\n const cls = useMemo(() => classNames([getPrefixCls('markdown-box'), className]), [className]);\n\n return (\n <Fragment>\n <div\n ref={ref}\n className={cls}\n style={style}\n dangerouslySetInnerHTML={{\n __html: htmlString,\n }}\n onClick={handleClick}\n onWheel={handleWheel}\n />\n {imgList.length ? (\n <PhotoSlider\n images={imgList}\n visible={visible}\n onClose={() => setVisible(false)}\n index={photoIndex}\n onIndexChange={setPhotoIndex}\n />\n ) : null}\n </Fragment>\n );\n};\n\nexport default React.memo(Markdown, isEqual);\n"],"names":["React","Fragment","useCallback","useEffect","useMemo","useRef","useState","getScrollTop","setClipboard","classNames","getPrefixCls","isEqual","getMarkedImgList","markdownUtil","PhotoSlider","toggleAnchor","anchor","offsetParent","querySelectorAll","forEach","a","classList","remove","parentElement","add","Markdown","className","style","text","pictureViewer","langLineNumber","tools","getAnchorContainer","window","tex","ref","visible","setVisible","photoIndex","setPhotoIndex","htmlString","setHtmlString","imgList","setImgList","htmlStrRef","anchors","str","current","langToolbar","Object","assign","timer","setTimeout","Prism","highlightAll","clearTimeout","handleAnchor","e","preventDefault","stopPropagation","target","querySelector","decodeURIComponent","hash","scrollIntoView","behavior","block","_anchors","_el","push","top","offsetTop","onclick","handleClick","event","tagName","arr","getElementsByTagName","i","len","length","includes","hasAttribute","innerText","handleWheel","rows","getElementsByClassName","codeTag","scrollHeight","offsetHeight","scrollTop","handleScroll","el","addEventListener","removeEventListener","cls","div","dangerouslySetInnerHTML","__html","onClick","onWheel","images","onClose","index","onIndexChange","memo"],"mappings":"AAAA,2zCAAA,OAAOA,OAASC,QAAQ,CAAEC,WAAW,CAAEC,SAAS,CAAEC,OAAO,CAAEC,MAAM,CAAEC,QAAQ,KAAQ,OAAQ,AAE3F,QAASC,YAAY,CAAEC,YAAY,CAAEC,UAAU,CAAEC,YAAY,CAAEC,OAAO,KAAQ,UAAW,AACzF,QAASC,gBAAgB,CAAEC,YAAY,KAAQ,iBAAkB,AACjE,QAASC,WAAW,KAAQ,kBAAmB,AAE/C,OAAO,4CAA6C,AACpD,OAAO,qBAAsB,CA0B7B,IAAMC,aAAe,SAACC,OAA8B,KAClDA,SAGAA,IAHAA,OAAAA,CAAAA,IAAAA,OAAOC,YAAY,UAAnBD,aAAAA,KAAAA,EAAAA,IAAqBE,iBAAiB,6BAAtCF,KAAAA,EAAAA,KAA6CG,QAAQ,SAACC,EAAM,CAC1DA,EAAEC,SAAS,CAACC,MAAM,CAAC,SACrB,EACAN,EAAAA,KAAAA,OAAOO,aAAa,UAApBP,cAAAA,KAAAA,EAAAA,KAAsBK,UAAUG,GAAG,CAAC,SAAS,AAC/C,EAEA,IAAMC,SAA8B,eAS9B,KARJC,gBAAAA,UACAC,YAAAA,MACAC,WAAAA,0BACAC,cAAAA,sCAAgB,IAAI,sCACpBC,eAAAA,wCAAiB,IAAI,8BACrBC,MAAAA,sBAAQ,CAAC,OAAO,kCAChBC,mBAAAA,gDAAqB,kBAAMC,4BAC3BC,UAAAA,IAEA,IAAMC,IAAM9B,OAAuB,IAAI,EACvC,IAA8BC,oBAAAA,SAAS,KAAK,KAArC8B,QAAuB9B,QAAd+B,WAAc/B,QAC9B,IAAoCA,oBAAAA,SAAS,MAAtCgC,WAA6BhC,QAAjBiC,cAAiBjC,QACpC,IAAoCA,oBAAAA,SAAiB,OAA9CkC,WAA6BlC,QAAjBmC,cAAiBnC,QACpC,IAA8BA,oBAAAA,SAA8B,EAAE,KAAvDoC,QAAuBpC,QAAdqC,WAAcrC,QAC9B,IAAMsC,WAAavC,OAAemC,YAClC,IAAMK,QAAUxC,OAAqB,EAAE,EAEvCD,QAAQ,UAAM,CACZ,IAAI0C,IAAMF,WAAWG,OAAO,CAE5B,GAAInB,KAAM,CACRkB,IAAMjC,aAAae,KAAM,CACvBE,eAAAA,eACAkB,YAAajB,MACbG,IAAKA,GACP,EACF,KAAO,CACLY,IAAM,EACR,CAAC,AACD,GAAIA,MAAQF,WAAWG,OAAO,CAAE,CAC9BE,OAAOC,MAAM,CAACN,WAAY,CACxBG,QAASD,GACX,GACAL,cAAcK,IAChB,CAAC,AACH,EAAG,CAAClB,KAAME,eAAgBC,MAAOG,IAAI,EAErC/B,UAAU,UAAM,CACd,IAAMgD,MAAwBC,WAAW,UAAM,CAC7CnB,OAAOoB,KAAK,CAACC,YAAY,GACzB,GAAI,OAAOH,QAAU,SAAUI,aAAaJ,MAAO,AACrD,EAAG,GAEH,GAAItB,cAAe,CACjBc,WAAW/B,iBAAiB4B,YAC9B,CAAC,AACD,OAAO,UAAM,CACX,GAAI,OAAOW,QAAU,SAAU,CAC7BI,aAAaJ,MACf,CAAC,AACH,CACF,EAAG,CAACX,WAAYX,cAAc,EAE9B,IAAM2B,aAAe,SAACC,EAAa,KAIjCtB,KACsCsB,UAJtCA,EAAEC,cAAc,GAChBD,EAAEE,eAAe,GACjB5C,aAAa0C,EAAEG,MAAM,CACrBzB,OAAAA,CAAAA,KAAAA,IAAIY,OAAO,UAAXZ,cAAAA,KAAAA,EAAAA,KACI0B,cAAcC,mBAAmB,CAACL,KAAAA,EAAEG,MAAM,UAARH,cAAD,KAAA,EAACA,KAAgCM,IAAI,0BAD1E5B,KAAAA,EAAAA,KAEI6B,eAAe,CACfC,SAAU,SACVC,MAAO,QACT,EACJ,EAEA/D,UAAU,UAAM,KAGdgC,UAFA,IAAMgC,SAAyB,EAAE,AAEjChC,OAAAA,CAAAA,KAAAA,IAAIY,OAAO,UAAXZ,cAAAA,KAAAA,EAAAA,KAAajB,iBAAiB,6CAA9BiB,KAAAA,EAAAA,KAAqDhB,QAAQ,SAACsC,EAAM,KAEtDtB,KADZ,IAAMf,EAAIqC,EACV,IAAMW,IAAMjC,CAAAA,KAAAA,IAAIY,OAAO,UAAXZ,cAAAA,KAAAA,EAAAA,KAAa0B,cACvBC,mBAAmB,AAAC1C,UAAAA,WAAD,KAAA,EAAA,AAACA,EAAyB2C,IAAI,GAGnDI,SAASE,IAAI,CAAC,CACZrD,OAAQI,EACRkD,IAAKF,IAAIG,SAAS,AACpB,EACA,CAACd,EAAwBe,OAAO,CAAGhB,YACrC,GAEAP,OAAOC,MAAM,CAACL,QAAS,CACrBE,QAASoB,QACX,EACF,EAAG,CAAC3B,WAAW,EAEf,IAAMiC,YAAcvE,YAClB,SAACwE,MAAsC,CACrC,IAAMd,OAASc,MAAMd,MAAM,CAE3B,GAAIA,CAAAA,eAAAA,gBAAAA,KAAAA,EAAAA,OAAQe,OAAO,AAAD,IAAM,OAAS9C,cAAe,KAClCM,KAAZ,IAAMyC,IAAMzC,CAAAA,CAAAA,KAAAA,IAAIY,OAAO,UAAXZ,cAAAA,KAAAA,EAAAA,KAAa0C,qBAAqB,SAAU,EAAE,CAE1D,IAAK,IAAIC,EAAI,EAAGC,IAAMH,IAAII,MAAM,CAAEF,EAAIC,IAAKD,IAAK,CAC9C,GAAIF,GAAG,CAACE,EAAE,GAAKlB,OAAQ,CACrBrB,cAAcuC,GACdzC,WAAW,IAAI,CACjB,CAAC,AACH,CACF,MAAO,GAAIuB,OAAOlC,SAAS,CAACuD,QAAQ,CAAC,kBAAmBlD,cAAAA,eAAAA,KAAAA,EAAAA,MAAOkD,QAAQ,CAAC,SAAS,CAC/E,GAAIrB,OAAO3C,YAAY,EAAI,CAAC2C,OAAO3C,YAAY,CAACiE,YAAY,CAAC,aAAc,CACzE1E,aAAa,AAACoD,OAAO3C,YAAY,CAAiBkE,SAAS,CAAEvB,OAAO3C,YAAY,CAClF,CAAC,AACH,CAAC,AACH,EACA,CAACc,MAAOF,cAAc,EAGxB,IAAMuD,YAAclF,YAAY,SAACwE,MAAsC,CACrE,IAAMzD,aAAe,AAACyD,MAAMd,MAAM,CAAiB3C,YAAY,CAE/D,GAAI,CAACA,cAAgBA,aAAa0D,OAAO,GAAK,MAAO,CACnD,MACF,CAAC,AACD,IAAMU,KAAOpE,qBAAAA,sBAAAA,KAAAA,EAAAA,aAAcqE,sBAAsB,CAAC,qBAElD,GAAID,aAAAA,cAAAA,KAAAA,EAAAA,KAAML,MAAM,CAAE,CAChB,IAAMO,QAAuBtE,aAAa4D,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAEzE,GAAIU,QAAQC,YAAY,CAAGD,QAAQE,YAAY,EAAIJ,IAAI,CAAC,EAAE,CAACK,SAAS,GAAKH,QAAQG,SAAS,CAAE,CAE1FL,IAAI,CAAC,EAAE,CAACK,SAAS,CAAGH,QAAQG,SAAS,AACvC,CAAC,AACH,CAAC,AACH,EAAG,EAAE,EACL,IAAMC,aAAezF,YAAY,SAACuD,EAAa,CAC7C,GAAI,CAACZ,QAAQE,OAAO,CAACiC,MAAM,CAAE,MAAO,CACpC,IAAMY,GAAKnC,EAAEG,MAAM,CACnB,IAAMU,IAAM/D,aAAaqF,IAEzB,IAAI5E,OAAmC,IAAI,CAE3C6B,QAAQE,OAAO,CAAC5B,OAAO,CAAC,SAACC,EAAM,CAC7B,GAAIkD,IAAMlD,EAAEkD,GAAG,CAAG,CAACsB,GAAGH,YAAY,CAAG,EAAGzE,OAASI,EAAEJ,MAAM,AAAC,AAC5D,GAEA,GAAIA,OAAQ,CACVD,aAAaC,OACf,CAAC,AACH,EAAG,EAAE,EAELb,UAAU,UAAM,KACd6B,GAAAA,EAAAA,IAAAA,8BAAAA,aAAAA,KAAAA,EAAAA,IAAsB6D,iBAAiB,SAAUF,cACjD,OAAO,UAAM,KACX3D,GAAAA,EAAAA,IAAAA,8BAAAA,aAAAA,KAAAA,EAAAA,IAAsB8D,oBAAoB,SAAUH,aACtD,CACF,EAAG,CAAC3D,mBAAoB2D,aAAa,EAErC,IAAMI,IAAM3F,QAAQ,kBAAMK,WAAW,CAACC,aAAa,gBAAiBgB,UAAU,GAAG,CAACA,UAAU,EAE5F,OACE,oBAACzB,cACC,oBAAC+F,OACC7D,IAAKA,IACLT,UAAWqE,IACXpE,MAAOA,MACPsE,wBAAyB,CACvBC,OAAQ1D,UACV,EACA2D,QAAS1B,YACT2B,QAAShB,cAEV1C,QAAQsC,MAAM,CACb,oBAAClE,aACCuF,OAAQ3D,QACRN,QAASA,QACTkE,QAAS,kBAAMjE,WAAW,KAAK,GAC/BkE,MAAOjE,WACPkE,cAAejE,gBAEf,IAAI,CAGd,CAEA,gBAAevC,MAAMyG,IAAI,CAAChF,SAAUd,QAAS"}
1
+ {"version":3,"sources":["../../components/markdown/index.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { FC, MouseEvent, WheelEvent } from 'react';\nimport {\n getScrollTop,\n setClipboard,\n classNames,\n getPrefixCls,\n isEqual,\n isSvgElement,\n} from '../utils';\nimport { getMarkedImgList, markdownUtil } from './markdown-util';\nimport { PhotoSlider } from 'react-photo-view';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport 'react-photo-view/dist/react-photo-view.css';\nimport './index.global.less';\n\nexport type CodeBlockToolType = Array<'copy'>;\n\nexport interface MarkdownProps {\n className?: string;\n style?: React.CSSProperties;\n /** md内容 */\n text?: string;\n /** 开启图片查看器 */\n pictureViewer?: boolean;\n /** 显示代码块行号 */\n langLineNumber?: boolean;\n /** 开启代码块工具条 */\n tools?: CodeBlockToolType;\n /** 指定滚动的容器 */\n getAnchorContainer?: () => HTMLElement;\n /** 渲染KateX数学公式 */\n tex?: boolean;\n}\n\nexport type AnchorType = {\n anchor: HTMLAnchorElement;\n top: number;\n};\n\nconst toggleAnchor = (anchor: HTMLAnchorElement) => {\n anchor.offsetParent?.querySelectorAll('li')?.forEach((a) => {\n a.classList.remove('active');\n });\n anchor.parentElement?.classList.add('active');\n};\n\nconst Markdown: FC<MarkdownProps> = ({\n className,\n style,\n text,\n pictureViewer = true,\n langLineNumber = true,\n tools = ['copy'],\n getAnchorContainer = () => window,\n tex,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [visible, setVisible] = useState(false);\n const [photoIndex, setPhotoIndex] = useState(0);\n const [htmlString, setHtmlString] = useState<string>('');\n const [imgList, setImgList] = useState<PhotoViewDataType[]>([]);\n const htmlStrRef = useRef<string>(htmlString);\n const anchors = useRef<AnchorType[]>([]);\n\n useMemo(() => {\n let str = htmlStrRef.current;\n\n if (text) {\n str = markdownUtil(text, {\n langLineNumber,\n langToolbar: tools,\n tex: tex,\n });\n } else {\n str = '';\n }\n if (str !== htmlStrRef.current) {\n Object.assign(htmlStrRef, {\n current: str,\n });\n setHtmlString(str);\n }\n }, [text, langLineNumber, tools, tex]);\n\n useEffect(() => {\n const timer: NodeJS.Timeout = setTimeout(() => {\n window.Prism.highlightAll();\n if (typeof timer === 'number') clearTimeout(timer);\n }, 0);\n\n if (pictureViewer) {\n setImgList(getMarkedImgList(htmlString));\n }\n return () => {\n if (typeof timer === 'number') {\n clearTimeout(timer);\n }\n };\n }, [htmlString, pictureViewer]);\n\n const handleAnchor = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n toggleAnchor(e.target as HTMLAnchorElement);\n ref.current\n ?.querySelector(decodeURIComponent((e.target as HTMLAnchorElement)?.hash))\n ?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n };\n\n useEffect(() => {\n const _anchors: AnchorType[] = [];\n\n ref.current?.querySelectorAll('.markdown-toc li a')?.forEach((e) => {\n const a = e as HTMLAnchorElement;\n const _el = ref.current?.querySelector(\n decodeURIComponent((a as HTMLAnchorElement)?.hash)\n ) as HTMLElement;\n\n _anchors.push({\n anchor: a,\n top: _el.offsetTop,\n });\n (e as HTMLAnchorElement).onclick = handleAnchor;\n });\n\n Object.assign(anchors, {\n current: _anchors,\n });\n }, [htmlString]);\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n\n if (isSvgElement(target)) return;\n if (target.tagName === 'IMG' && pictureViewer) {\n const arr = ref.current?.getElementsByTagName('img') || [];\n\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === target) {\n setPhotoIndex(i);\n setVisible(true);\n }\n }\n } else if (target.className.includes('toolbar-copy')) {\n const offsetParent = target.offsetParent as HTMLElement;\n\n if (!offsetParent?.hasAttribute('data-copy')) {\n setClipboard(offsetParent?.innerText, offsetParent);\n }\n }\n },\n [pictureViewer]\n );\n\n const handleWheel = useCallback((event: WheelEvent<HTMLDivElement>) => {\n const offsetParent = (event.target as HTMLElement).offsetParent;\n\n if (!offsetParent || offsetParent.tagName !== 'PRE') {\n return;\n }\n const rows = offsetParent?.getElementsByClassName('line-numbers-rows');\n\n if (rows?.length) {\n const codeTag: HTMLElement = offsetParent.getElementsByTagName('code')[0];\n\n if (codeTag.scrollHeight - codeTag.offsetHeight && rows[0].scrollTop !== codeTag.scrollTop) {\n // 可滚动高度大于0\n rows[0].scrollTop = codeTag.scrollTop;\n }\n }\n }, []);\n const handleScroll = useCallback((e: Event) => {\n if (!anchors.current.length) return;\n const el = e.target as HTMLElement;\n const top = getScrollTop(el);\n\n let anchor: HTMLAnchorElement | null = null;\n\n anchors.current.forEach((a) => {\n if (top - a.top > -el.offsetHeight / 2) anchor = a.anchor;\n });\n\n if (anchor) {\n toggleAnchor(anchor);\n }\n }, []);\n\n useEffect(() => {\n getAnchorContainer()?.addEventListener('scroll', handleScroll);\n return () => {\n getAnchorContainer()?.removeEventListener('scroll', handleScroll);\n };\n }, [getAnchorContainer, handleScroll]);\n\n const cls = useMemo(() => classNames([getPrefixCls('markdown-box'), className]), [className]);\n\n return (\n <Fragment>\n <div\n ref={ref}\n className={cls}\n style={style}\n dangerouslySetInnerHTML={{\n __html: htmlString,\n }}\n onClick={handleClick}\n onWheel={handleWheel}\n />\n {imgList.length ? (\n <PhotoSlider\n images={imgList}\n visible={visible}\n onClose={() => setVisible(false)}\n index={photoIndex}\n onIndexChange={setPhotoIndex}\n />\n ) : null}\n </Fragment>\n );\n};\n\nexport default React.memo(Markdown, isEqual);\n"],"names":["React","Fragment","useCallback","useEffect","useMemo","useRef","useState","getScrollTop","setClipboard","classNames","getPrefixCls","isEqual","isSvgElement","getMarkedImgList","markdownUtil","PhotoSlider","toggleAnchor","anchor","offsetParent","querySelectorAll","forEach","a","classList","remove","parentElement","add","Markdown","className","style","text","pictureViewer","langLineNumber","tools","getAnchorContainer","window","tex","ref","visible","setVisible","photoIndex","setPhotoIndex","htmlString","setHtmlString","imgList","setImgList","htmlStrRef","anchors","str","current","langToolbar","Object","assign","timer","setTimeout","Prism","highlightAll","clearTimeout","handleAnchor","e","preventDefault","stopPropagation","target","querySelector","decodeURIComponent","hash","scrollIntoView","behavior","block","_anchors","_el","push","top","offsetTop","onclick","handleClick","event","tagName","arr","getElementsByTagName","i","len","length","includes","hasAttribute","innerText","handleWheel","rows","getElementsByClassName","codeTag","scrollHeight","offsetHeight","scrollTop","handleScroll","el","addEventListener","removeEventListener","cls","div","dangerouslySetInnerHTML","__html","onClick","onWheel","images","onClose","index","onIndexChange","memo"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import marked from"marked-completed";import{entityToString}from"../utils";import*as Prism from"./prism.js";import katex from"katex";import"katex/dist/katex.css";var renderer=new marked.Renderer;var replacer=function(blockRegex,inlineRegex){return function(text){text=text.replace(blockRegex,function(_,expression){return katex.renderToString(expression,{displayMode:true})});text=text.replace(inlineRegex,function(_,expression){return katex.renderToString(expression,{displayMode:false,output:"html"})});return text}}(/\$\$([\s\S]+?)\$\$/g,/\$([^\n\s]+?)\$/g);["listitem","paragraph","tablecell","text"].forEach(function(type){var original=renderer[type];renderer[type]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}args[0]=replacer(args[0]);return original(args)}});marked.setOptions({highlight:function highlight(code,lang){var LANGUAGE_REGEX=/^diff-([\w-]+)/i;if(Prism.languages[lang]){return Prism.highlight(code,Prism.languages[lang],lang)}else if(LANGUAGE_REGEX.test(lang)){Prism.languages[lang]=Prism.languages.diff;return Prism.highlight(code,Prism.languages[lang],lang)}return Prism.highlight(code,Prism.languages.markup,"markup")},headerPrefix:"# ",langLineNumber:true,langToolbar:["copy"],breaks:true,pedantic:false,smartLists:true,smartypants:true,xhtml:true});export var markdownUtil=function(text){var option=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var tex=option.tex,opt=_objectWithoutProperties(option,["tex"]);if(tex){opt.renderer=renderer}return marked(text,opt)};export var getMarkedImgList=function(text){if(!text)return[];var imageList=text.match(/role=('|")dialog('|") src=('|")(.*?) alt=('|")(.*?)('|")/g);var imageArr=[];if(imageList){for(var i=0,len=imageList.length;i<len;i++){var params=new URLSearchParams(entityToString(imageList[i].replace(/('|")/g,"").replace(/ src=/,"&src=").replace(/ alt=/,"&alt=")));imageArr.push({intro:params.get("alt")||""+i,src:params.get("src")||"",key:i})}}return imageArr};
1
+ function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}import marked from"marked-completed";import{entityToString}from"../utils";import*as Prism from"./prism.js";import katex from"katex";import"katex/dist/katex.css";var renderer=new marked.Renderer;var replacer=function(blockRegex,inlineRegex){return function(text){text=text.replace(blockRegex,function(_,expression){return katex.renderToString(expression,{throwOnError:false,displayMode:true})});text=text.replace(inlineRegex,function(_,expression){return katex.renderToString(expression,{displayMode:false,output:"html"})});return text}}(/\$\$([\s\S]+?)\$\$/g,/\$([^\n\s]+?)\$/g);["listitem","paragraph","tablecell","text"].forEach(function(type){var original=renderer[type];renderer[type]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}args[0]=replacer(args[0]);return original(args)}});marked.setOptions({highlight:function highlight(code,lang){var LANGUAGE_REGEX=/^diff-([\w-]+)/i;if(Prism.languages[lang]){return Prism.highlight(code,Prism.languages[lang],lang)}else if(LANGUAGE_REGEX.test(lang)){Prism.languages[lang]=Prism.languages.diff;return Prism.highlight(code,Prism.languages[lang],lang)}return Prism.highlight(code,Prism.languages.markup,"markup")},headerPrefix:"# ",langLineNumber:true,langToolbar:["copy"],breaks:true,pedantic:false,smartLists:true,smartypants:true,xhtml:true});export var markdownUtil=function(text){var option=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var tex=option.tex,opt=_objectWithoutProperties(option,["tex"]);if(tex){opt.renderer=renderer}return marked(text,opt)};export var getMarkedImgList=function(text){if(!text)return[];var imageList=text.match(/role=('|")dialog('|") src=('|")(.*?) alt=('|")(.*?)('|")/g);var imageArr=[];if(imageList){for(var i=0,len=imageList.length;i<len;i++){var params=new URLSearchParams(entityToString(imageList[i].replace(/('|")/g,"").replace(/ src=/,"&src=").replace(/ alt=/,"&alt=")));imageArr.push({intro:params.get("alt")||""+i,src:params.get("src")||"",key:i})}}return imageArr};
2
2
  //# sourceMappingURL=markdown-util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/markdown/markdown-util.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport marked from 'marked-completed';\nimport { entityToString } from '../utils';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport * as Prism from './prism.js';\nimport katex from 'katex';\nimport 'katex/dist/katex.css';\n\nconst renderer = new marked.Renderer();\n\nconst replacer = ((blockRegex, inlineRegex) => (text: string) => {\n text = text.replace(blockRegex, (_, expression) => {\n return katex.renderToString(expression, { displayMode: true });\n });\n\n text = text.replace(inlineRegex, (_, expression) => {\n return katex.renderToString(expression, { displayMode: false, output: 'html' });\n });\n\n return text;\n})(/\\$\\$([\\s\\S]+?)\\$\\$/g, /\\$([^\\n\\s]+?)\\$/g);\n\n['listitem', 'paragraph', 'tablecell', 'text'].forEach((type) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = renderer[type as keyof marked.Renderer] as any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (renderer[type as keyof marked.Renderer] as any) = (...args: string[]) => {\n args[0] = replacer(args[0]);\n return original(args);\n };\n});\n\nmarked.setOptions({\n highlight: function (code: string, lang: string) {\n const LANGUAGE_REGEX = /^diff-([\\w-]+)/i;\n\n if (Prism.languages[lang]) {\n return Prism.highlight(code, Prism.languages[lang], lang);\n } else if (LANGUAGE_REGEX.test(lang)) {\n Prism.languages[lang] = Prism.languages.diff;\n return Prism.highlight(code, Prism.languages[lang], lang);\n }\n\n return Prism.highlight(code, Prism.languages.markup, 'markup');\n },\n headerPrefix: '# ',\n langLineNumber: true,\n langToolbar: ['copy'],\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n});\n\n/**\n * Markdown to Html\n * @param {string} text Markdown文本\n * @param {MarkedOptions} option MarkedOptions\n * @returns {string} Html文本\n */\nexport const markdownUtil = (\n text: string,\n option: marked.MarkedOptions & { tex?: boolean } = {}\n): string => {\n const { tex, ...opt } = option;\n\n if (tex) {\n opt.renderer = renderer;\n }\n return marked(text, opt);\n};\n\n/**\n * 提取md图片src\n * @param {string} text HTML string\n * @returns {PhotoViewDataType[]} PhotoViewDataType\n */\nexport const getMarkedImgList = (text: string): PhotoViewDataType[] => {\n if (!text) return [];\n const imageList = text.match(/role=('|\")dialog('|\") src=('|\")(.*?) alt=('|\")(.*?)('|\")/g);\n const imageArr = [];\n\n if (imageList) {\n for (let i = 0, len = imageList.length; i < len; i++) {\n const params: URLSearchParams = new URLSearchParams(\n entityToString(\n imageList[i].replace(/('|\")/g, '').replace(/ src=/, '&src=').replace(/ alt=/, '&alt=')\n )\n );\n\n imageArr.push({\n intro: params.get('alt') || '' + i,\n src: params.get('src') || '',\n key: i,\n });\n }\n }\n return imageArr;\n};\n"],"names":["marked","entityToString","Prism","katex","renderer","Renderer","replacer","blockRegex","inlineRegex","text","replace","_","expression","renderToString","displayMode","output","forEach","type","original","args","setOptions","highlight","code","lang","LANGUAGE_REGEX","languages","test","diff","markup","headerPrefix","langLineNumber","langToolbar","breaks","pedantic","smartLists","smartypants","xhtml","markdownUtil","option","tex","opt","getMarkedImgList","imageList","match","imageArr","i","len","length","params","URLSearchParams","push","intro","get","src","key"],"mappings":"AACA,osBAAA,OAAOA,WAAY,kBAAmB,AACtC,QAASC,cAAc,KAAQ,UAAW,AAE1C,WAAYC,UAAW,YAAa,AACpC,QAAOC,UAAW,OAAQ,AAC1B,OAAO,sBAAuB,CAE9B,IAAMC,SAAW,IAAIJ,OAAOK,QAAQ,CAEpC,IAAMC,SAAW,AAAC,SAACC,WAAYC,oBAAgB,SAACC,KAAiB,CAC/DA,KAAOA,KAAKC,OAAO,CAACH,WAAY,SAACI,EAAGC,WAAe,CACjD,OAAOT,MAAMU,cAAc,CAACD,WAAY,CAAEE,YAAa,IAAI,AAAC,EAC9D,GAEAL,KAAOA,KAAKC,OAAO,CAACF,YAAa,SAACG,EAAGC,WAAe,CAClD,OAAOT,MAAMU,cAAc,CAACD,WAAY,CAAEE,YAAa,KAAK,CAAEC,OAAQ,MAAO,EAC/E,GAEA,OAAON,IACT,GAAG,sBAAuB,oBAE1B,CAAC,WAAY,YAAa,YAAa,OAAO,CAACO,OAAO,CAAC,SAACC,KAAS,CAE/D,IAAMC,SAAWd,QAAQ,CAACa,KAA8B,AAGvDb,CAAAA,QAAQ,CAACa,KAA8B,CAAW,UAAuB,+BAAnBE,8CAAAA,2BACrDA,IAAI,CAAC,EAAE,CAAGb,SAASa,IAAI,CAAC,EAAE,EAC1B,OAAOD,SAASC,KAClB,CACF,GAEAnB,OAAOoB,UAAU,CAAC,CAChBC,UAAW,SAAXA,UAAqBC,IAAY,CAAEC,IAAY,CAAE,CAC/C,IAAMC,eAAiB,kBAEvB,GAAItB,MAAMuB,SAAS,CAACF,KAAK,CAAE,CACzB,OAAOrB,MAAMmB,SAAS,CAACC,KAAMpB,MAAMuB,SAAS,CAACF,KAAK,CAAEA,KACtD,MAAO,GAAIC,eAAeE,IAAI,CAACH,MAAO,CACpCrB,MAAMuB,SAAS,CAACF,KAAK,CAAGrB,MAAMuB,SAAS,CAACE,IAAI,CAC5C,OAAOzB,MAAMmB,SAAS,CAACC,KAAMpB,MAAMuB,SAAS,CAACF,KAAK,CAAEA,KACtD,CAAC,AAED,OAAOrB,MAAMmB,SAAS,CAACC,KAAMpB,MAAMuB,SAAS,CAACG,MAAM,CAAE,SACvD,EACAC,aAAc,KACdC,eAAgB,IAAI,CACpBC,YAAa,CAAC,OAAO,CACrBC,OAAQ,IAAI,CACZC,SAAU,KAAK,CACfC,WAAY,IAAI,CAChBC,YAAa,IAAI,CACjBC,MAAO,IAAI,AACb,EAQA,QAAO,IAAMC,aAAe,SAC1B5B,KAEW,KADX6B,8DAAmD,CAAC,EAEpD,IAAM,AAAEC,IAAgBD,OAAhBC,IAAQC,6BAAQF,QAAhBC,QAER,GAAIA,IAAK,CACPC,IAAIpC,QAAQ,CAAGA,QACjB,CAAC,AACD,OAAOJ,OAAOS,KAAM+B,IACtB,CAAE,AAOF,QAAO,IAAMC,iBAAmB,SAAChC,KAAsC,CACrE,GAAI,CAACA,KAAM,MAAO,EAAE,AAAC,CACrB,IAAMiC,UAAYjC,KAAKkC,KAAK,CAAC,6DAC7B,IAAMC,SAAW,EAAE,CAEnB,GAAIF,UAAW,CACb,IAAK,IAAIG,EAAI,EAAGC,IAAMJ,UAAUK,MAAM,CAAEF,EAAIC,IAAKD,IAAK,CACpD,IAAMG,OAA0B,IAAIC,gBAClChD,eACEyC,SAAS,CAACG,EAAE,CAACnC,OAAO,CAAC,SAAU,IAAIA,OAAO,CAAC,QAAS,SAASA,OAAO,CAAC,QAAS,WAIlFkC,SAASM,IAAI,CAAC,CACZC,MAAOH,OAAOI,GAAG,CAAC,QAAU,GAAKP,EACjCQ,IAAKL,OAAOI,GAAG,CAAC,QAAU,GAC1BE,IAAKT,CACP,EACF,CACF,CAAC,AACD,OAAOD,QACT,CAAE"}
1
+ {"version":3,"sources":["../../components/markdown/markdown-util.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport marked from 'marked-completed';\nimport { entityToString } from '../utils';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport * as Prism from './prism.js';\nimport katex from 'katex';\nimport 'katex/dist/katex.css';\n\nconst renderer = new marked.Renderer();\n\nconst replacer = ((blockRegex, inlineRegex) => (text: string) => {\n text = text.replace(blockRegex, (_, expression) => {\n return katex.renderToString(expression, { throwOnError: false, displayMode: true });\n });\n\n text = text.replace(inlineRegex, (_, expression) => {\n return katex.renderToString(expression, { displayMode: false, output: 'html' });\n });\n\n return text;\n})(/\\$\\$([\\s\\S]+?)\\$\\$/g, /\\$([^\\n\\s]+?)\\$/g);\n\n['listitem', 'paragraph', 'tablecell', 'text'].forEach((type) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = renderer[type as keyof marked.Renderer] as any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (renderer[type as keyof marked.Renderer] as any) = (...args: string[]) => {\n args[0] = replacer(args[0]);\n return original(args);\n };\n});\n\nmarked.setOptions({\n highlight: function (code: string, lang: string) {\n const LANGUAGE_REGEX = /^diff-([\\w-]+)/i;\n\n if (Prism.languages[lang]) {\n return Prism.highlight(code, Prism.languages[lang], lang);\n } else if (LANGUAGE_REGEX.test(lang)) {\n Prism.languages[lang] = Prism.languages.diff;\n return Prism.highlight(code, Prism.languages[lang], lang);\n }\n\n return Prism.highlight(code, Prism.languages.markup, 'markup');\n },\n headerPrefix: '# ',\n langLineNumber: true,\n langToolbar: ['copy'],\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n});\n\n/**\n * Markdown to Html\n * @param {string} text Markdown文本\n * @param {MarkedOptions} option MarkedOptions\n * @returns {string} Html文本\n */\nexport const markdownUtil = (\n text: string,\n option: marked.MarkedOptions & { tex?: boolean } = {}\n): string => {\n const { tex, ...opt } = option;\n\n if (tex) {\n opt.renderer = renderer;\n }\n return marked(text, opt);\n};\n\n/**\n * 提取md图片src\n * @param {string} text HTML string\n * @returns {PhotoViewDataType[]} PhotoViewDataType\n */\nexport const getMarkedImgList = (text: string): PhotoViewDataType[] => {\n if (!text) return [];\n const imageList = text.match(/role=('|\")dialog('|\") src=('|\")(.*?) alt=('|\")(.*?)('|\")/g);\n const imageArr = [];\n\n if (imageList) {\n for (let i = 0, len = imageList.length; i < len; i++) {\n const params: URLSearchParams = new URLSearchParams(\n entityToString(\n imageList[i].replace(/('|\")/g, '').replace(/ src=/, '&src=').replace(/ alt=/, '&alt=')\n )\n );\n\n imageArr.push({\n intro: params.get('alt') || '' + i,\n src: params.get('src') || '',\n key: i,\n });\n }\n }\n return imageArr;\n};\n"],"names":["marked","entityToString","Prism","katex","renderer","Renderer","replacer","blockRegex","inlineRegex","text","replace","_","expression","renderToString","throwOnError","displayMode","output","forEach","type","original","args","setOptions","highlight","code","lang","LANGUAGE_REGEX","languages","test","diff","markup","headerPrefix","langLineNumber","langToolbar","breaks","pedantic","smartLists","smartypants","xhtml","markdownUtil","option","tex","opt","getMarkedImgList","imageList","match","imageArr","i","len","length","params","URLSearchParams","push","intro","get","src","key"],"mappings":"AACA,osBAAA,OAAOA,WAAY,kBAAmB,AACtC,QAASC,cAAc,KAAQ,UAAW,AAE1C,WAAYC,UAAW,YAAa,AACpC,QAAOC,UAAW,OAAQ,AAC1B,OAAO,sBAAuB,CAE9B,IAAMC,SAAW,IAAIJ,OAAOK,QAAQ,CAEpC,IAAMC,SAAW,AAAC,SAACC,WAAYC,oBAAgB,SAACC,KAAiB,CAC/DA,KAAOA,KAAKC,OAAO,CAACH,WAAY,SAACI,EAAGC,WAAe,CACjD,OAAOT,MAAMU,cAAc,CAACD,WAAY,CAAEE,aAAc,KAAK,CAAEC,YAAa,IAAI,AAAC,EACnF,GAEAN,KAAOA,KAAKC,OAAO,CAACF,YAAa,SAACG,EAAGC,WAAe,CAClD,OAAOT,MAAMU,cAAc,CAACD,WAAY,CAAEG,YAAa,KAAK,CAAEC,OAAQ,MAAO,EAC/E,GAEA,OAAOP,IACT,GAAG,sBAAuB,oBAE1B,CAAC,WAAY,YAAa,YAAa,OAAO,CAACQ,OAAO,CAAC,SAACC,KAAS,CAE/D,IAAMC,SAAWf,QAAQ,CAACc,KAA8B,AAGvDd,CAAAA,QAAQ,CAACc,KAA8B,CAAW,UAAuB,+BAAnBE,8CAAAA,2BACrDA,IAAI,CAAC,EAAE,CAAGd,SAASc,IAAI,CAAC,EAAE,EAC1B,OAAOD,SAASC,KAClB,CACF,GAEApB,OAAOqB,UAAU,CAAC,CAChBC,UAAW,SAAXA,UAAqBC,IAAY,CAAEC,IAAY,CAAE,CAC/C,IAAMC,eAAiB,kBAEvB,GAAIvB,MAAMwB,SAAS,CAACF,KAAK,CAAE,CACzB,OAAOtB,MAAMoB,SAAS,CAACC,KAAMrB,MAAMwB,SAAS,CAACF,KAAK,CAAEA,KACtD,MAAO,GAAIC,eAAeE,IAAI,CAACH,MAAO,CACpCtB,MAAMwB,SAAS,CAACF,KAAK,CAAGtB,MAAMwB,SAAS,CAACE,IAAI,CAC5C,OAAO1B,MAAMoB,SAAS,CAACC,KAAMrB,MAAMwB,SAAS,CAACF,KAAK,CAAEA,KACtD,CAAC,AAED,OAAOtB,MAAMoB,SAAS,CAACC,KAAMrB,MAAMwB,SAAS,CAACG,MAAM,CAAE,SACvD,EACAC,aAAc,KACdC,eAAgB,IAAI,CACpBC,YAAa,CAAC,OAAO,CACrBC,OAAQ,IAAI,CACZC,SAAU,KAAK,CACfC,WAAY,IAAI,CAChBC,YAAa,IAAI,CACjBC,MAAO,IAAI,AACb,EAQA,QAAO,IAAMC,aAAe,SAC1B7B,KAEW,KADX8B,8DAAmD,CAAC,EAEpD,IAAM,AAAEC,IAAgBD,OAAhBC,IAAQC,6BAAQF,QAAhBC,QAER,GAAIA,IAAK,CACPC,IAAIrC,QAAQ,CAAGA,QACjB,CAAC,AACD,OAAOJ,OAAOS,KAAMgC,IACtB,CAAE,AAOF,QAAO,IAAMC,iBAAmB,SAACjC,KAAsC,CACrE,GAAI,CAACA,KAAM,MAAO,EAAE,AAAC,CACrB,IAAMkC,UAAYlC,KAAKmC,KAAK,CAAC,6DAC7B,IAAMC,SAAW,EAAE,CAEnB,GAAIF,UAAW,CACb,IAAK,IAAIG,EAAI,EAAGC,IAAMJ,UAAUK,MAAM,CAAEF,EAAIC,IAAKD,IAAK,CACpD,IAAMG,OAA0B,IAAIC,gBAClCjD,eACE0C,SAAS,CAACG,EAAE,CAACpC,OAAO,CAAC,SAAU,IAAIA,OAAO,CAAC,QAAS,SAASA,OAAO,CAAC,QAAS,WAIlFmC,SAASM,IAAI,CAAC,CACZC,MAAOH,OAAOI,GAAG,CAAC,QAAU,GAAKP,EACjCQ,IAAKL,OAAOI,GAAG,CAAC,QAAU,GAC1BE,IAAKT,CACP,EACF,CACF,CAAC,AACD,OAAOD,QACT,CAAE"}
@@ -16,5 +16,7 @@ export declare function getType(target: any): string;
16
16
  export declare function isObject(target: unknown): target is object;
17
17
  export declare function isNull(target: unknown): target is null;
18
18
  export declare function isUndefined(target: unknown): target is undefined;
19
+ export declare function isString(target: unknown): target is string;
20
+ export declare function isSvgElement(target: unknown): target is SVGAElement;
19
21
  export declare function isFunction(target: any): target is (...args: any[]) => any;
20
22
  export declare function isEqual(val1: any, val2: any): boolean;
package/es/utils/type.js CHANGED
@@ -1,2 +1,2 @@
1
- var _typeof=function(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj};import isEquals from"lodash/isEqual";export var mapTag="[object Map]";export var setTag="[object Set]";export var arrayTag="[object Array]";export var objectTag="[object Object]";export var boolTag="[object Boolean]";export var dateTag="[object Date]";export var numberTag="[object Number]";export var stringTag="[object String]";export var symbolTag="[object Symbol]";export var errorTag="[object Error]";export var regexpTag="[object RegExp]";export var funcTag="[object Function]";export var asyncTag="[object AsyncFunction]";export var genTag="[object GeneratorFunction]";var proxyTag="[object Proxy]";export function getType(target){return Object.prototype.toString.call(target)}export function isObject(target){var type=typeof target==="undefined"?"undefined":_typeof(target);return target!==null&&(type=="object"||type=="function")}export function isNull(target){return target===null}export function isUndefined(target){return"undefined"===typeof target}export function isFunction(target){if(!isObject(target))return false;var tagType=getType(target);return tagType==funcTag||tagType==asyncTag||tagType==genTag||tagType==proxyTag}export function isEqual(val1,val2){return isEquals(val1,val2)}
1
+ var _typeof=function(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj};import isEquals from"lodash/isEqual";export var mapTag="[object Map]";export var setTag="[object Set]";export var arrayTag="[object Array]";export var objectTag="[object Object]";export var boolTag="[object Boolean]";export var dateTag="[object Date]";export var numberTag="[object Number]";export var stringTag="[object String]";export var symbolTag="[object Symbol]";export var errorTag="[object Error]";export var regexpTag="[object RegExp]";export var funcTag="[object Function]";export var asyncTag="[object AsyncFunction]";export var genTag="[object GeneratorFunction]";var svgPathTag="[object SVGPathElement]";var svgTag="[object SVGSVGElement]";var proxyTag="[object Proxy]";export function getType(target){return Object.prototype.toString.call(target)}export function isObject(target){var type=typeof target==="undefined"?"undefined":_typeof(target);return target!==null&&(type=="object"||type=="function")}export function isNull(target){return target===null}export function isUndefined(target){return"undefined"===typeof target}export function isString(target){return"string"===typeof target&&getType(target)==stringTag}export function isSvgElement(target){var tagType=getType(target);return svgTag===tagType||svgPathTag===tagType}export function isFunction(target){if(!isObject(target))return false;var tagType=getType(target);return tagType==funcTag||tagType==asyncTag||tagType==genTag||tagType==proxyTag}export function isEqual(val1,val2){return isEquals(val1,val2)}
2
2
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/utils/type.ts"],"sourcesContent":["import isEquals from 'lodash/isEqual';\nexport const mapTag = '[object Map]';\nexport const setTag = '[object Set]';\nexport const arrayTag = '[object Array]';\nexport const objectTag = '[object Object]';\nexport const boolTag = '[object Boolean]';\nexport const dateTag = '[object Date]';\nexport const numberTag = '[object Number]';\nexport const stringTag = '[object String]';\nexport const symbolTag = '[object Symbol]';\nexport const errorTag = '[object Error]';\nexport const regexpTag = '[object RegExp]';\nexport const funcTag = '[object Function]';\nexport const asyncTag = '[object AsyncFunction]';\nexport const genTag = '[object GeneratorFunction]';\nconst proxyTag = '[object Proxy]';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getType(target: any): string {\n return Object.prototype.toString.call(target);\n}\nexport function isObject(target: unknown): target is object {\n const type = typeof target;\n\n return target !== null && (type == 'object' || type == 'function');\n}\n\nexport function isNull(target: unknown): target is null {\n return target === null;\n}\n\nexport function isUndefined(target: unknown): target is undefined {\n return 'undefined' === typeof target;\n}\n\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-explicit-any\nexport function isFunction(target: any): target is (...args: any[]) => any {\n if (!isObject(target)) return false;\n const tagType = getType(target);\n\n return tagType == funcTag || tagType == asyncTag || tagType == genTag || tagType == proxyTag;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isEqual(val1: any, val2: any) {\n return isEquals(val1, val2);\n}\n"],"names":["isEquals","mapTag","setTag","arrayTag","objectTag","boolTag","dateTag","numberTag","stringTag","symbolTag","errorTag","regexpTag","funcTag","asyncTag","genTag","proxyTag","getType","target","Object","prototype","toString","call","isObject","type","isNull","isUndefined","isFunction","tagType","isEqual","val1","val2"],"mappings":"AAAA,wIAAA,QAAOA,aAAc,gBAAiB,AACtC,QAAO,IAAMC,OAAS,cAAe,AACrC,QAAO,IAAMC,OAAS,cAAe,AACrC,QAAO,IAAMC,SAAW,gBAAiB,AACzC,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,QAAU,kBAAmB,AAC1C,QAAO,IAAMC,QAAU,eAAgB,AACvC,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,SAAW,gBAAiB,AACzC,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,QAAU,mBAAoB,AAC3C,QAAO,IAAMC,SAAW,wBAAyB,AACjD,QAAO,IAAMC,OAAS,4BAA6B,CACnD,IAAMC,SAAW,gBAGjB,QAAO,SAASC,QAAQC,MAAW,CAAU,CAC3C,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OACxC,CAAC,AACD,OAAO,SAASK,SAASL,MAAe,CAAoB,CAC1D,IAAMM,KAAO,OAAON,iCAAP,QAAOA,OAAM,CAE1B,OAAOA,SAAW,IAAI,EAAKM,CAAAA,MAAQ,UAAYA,MAAQ,UAAS,CAClE,CAAC,AAED,OAAO,SAASC,OAAOP,MAAe,CAAkB,CACtD,OAAOA,SAAW,IAAI,AACxB,CAAC,AAED,OAAO,SAASQ,YAAYR,MAAe,CAAuB,CAChE,MAAO,cAAgB,OAAOA,MAChC,CAAC,AAGD,OAAO,SAASS,WAAWT,MAAW,CAAqC,CACzE,GAAI,CAACK,SAASL,QAAS,OAAO,KAAK,AAAC,CACpC,IAAMU,QAAUX,QAAQC,QAExB,OAAOU,SAAWf,SAAWe,SAAWd,UAAYc,SAAWb,QAAUa,SAAWZ,QACtF,CAAC,AAGD,OAAO,SAASa,QAAQC,IAAS,CAAEC,IAAS,CAAE,CAC5C,OAAO9B,SAAS6B,KAAMC,KACxB,CAAC"}
1
+ {"version":3,"sources":["../../components/utils/type.ts"],"sourcesContent":["import isEquals from 'lodash/isEqual';\nexport const mapTag = '[object Map]';\nexport const setTag = '[object Set]';\nexport const arrayTag = '[object Array]';\nexport const objectTag = '[object Object]';\nexport const boolTag = '[object Boolean]';\nexport const dateTag = '[object Date]';\nexport const numberTag = '[object Number]';\nexport const stringTag = '[object String]';\nexport const symbolTag = '[object Symbol]';\nexport const errorTag = '[object Error]';\nexport const regexpTag = '[object RegExp]';\nexport const funcTag = '[object Function]';\nexport const asyncTag = '[object AsyncFunction]';\nexport const genTag = '[object GeneratorFunction]';\nconst svgPathTag = '[object SVGPathElement]';\nconst svgTag = '[object SVGSVGElement]';\nconst proxyTag = '[object Proxy]';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getType(target: any): string {\n return Object.prototype.toString.call(target);\n}\nexport function isObject(target: unknown): target is object {\n const type = typeof target;\n\n return target !== null && (type == 'object' || type == 'function');\n}\n\nexport function isNull(target: unknown): target is null {\n return target === null;\n}\n\nexport function isUndefined(target: unknown): target is undefined {\n return 'undefined' === typeof target;\n}\n\nexport function isString(target: unknown): target is string {\n return 'string' === typeof target && getType(target) == stringTag;\n}\n\nexport function isSvgElement(target: unknown): target is SVGAElement {\n const tagType = getType(target);\n\n return svgTag === tagType || svgPathTag === tagType;\n}\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-explicit-any\nexport function isFunction(target: any): target is (...args: any[]) => any {\n if (!isObject(target)) return false;\n const tagType = getType(target);\n\n return tagType == funcTag || tagType == asyncTag || tagType == genTag || tagType == proxyTag;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isEqual(val1: any, val2: any) {\n return isEquals(val1, val2);\n}\n"],"names":["isEquals","mapTag","setTag","arrayTag","objectTag","boolTag","dateTag","numberTag","stringTag","symbolTag","errorTag","regexpTag","funcTag","asyncTag","genTag","svgPathTag","svgTag","proxyTag","getType","target","Object","prototype","toString","call","isObject","type","isNull","isUndefined","isString","isSvgElement","tagType","isFunction","isEqual","val1","val2"],"mappings":"AAAA,wIAAA,QAAOA,aAAc,gBAAiB,AACtC,QAAO,IAAMC,OAAS,cAAe,AACrC,QAAO,IAAMC,OAAS,cAAe,AACrC,QAAO,IAAMC,SAAW,gBAAiB,AACzC,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,QAAU,kBAAmB,AAC1C,QAAO,IAAMC,QAAU,eAAgB,AACvC,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,SAAW,gBAAiB,AACzC,QAAO,IAAMC,UAAY,iBAAkB,AAC3C,QAAO,IAAMC,QAAU,mBAAoB,AAC3C,QAAO,IAAMC,SAAW,wBAAyB,AACjD,QAAO,IAAMC,OAAS,4BAA6B,CACnD,IAAMC,WAAa,0BACnB,IAAMC,OAAS,yBACf,IAAMC,SAAW,gBAGjB,QAAO,SAASC,QAAQC,MAAW,CAAU,CAC3C,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OACxC,CAAC,AACD,OAAO,SAASK,SAASL,MAAe,CAAoB,CAC1D,IAAMM,KAAO,OAAON,iCAAP,QAAOA,OAAM,CAE1B,OAAOA,SAAW,IAAI,EAAKM,CAAAA,MAAQ,UAAYA,MAAQ,UAAS,CAClE,CAAC,AAED,OAAO,SAASC,OAAOP,MAAe,CAAkB,CACtD,OAAOA,SAAW,IAAI,AACxB,CAAC,AAED,OAAO,SAASQ,YAAYR,MAAe,CAAuB,CAChE,MAAO,cAAgB,OAAOA,MAChC,CAAC,AAED,OAAO,SAASS,SAAST,MAAe,CAAoB,CAC1D,MAAO,WAAa,OAAOA,QAAUD,QAAQC,SAAWX,SAC1D,CAAC,AAED,OAAO,SAASqB,aAAaV,MAAe,CAAyB,CACnE,IAAMW,QAAUZ,QAAQC,QAExB,OAAOH,SAAWc,SAAWf,aAAee,OAC9C,CAAC,AAED,OAAO,SAASC,WAAWZ,MAAW,CAAqC,CACzE,GAAI,CAACK,SAASL,QAAS,OAAO,KAAK,AAAC,CACpC,IAAMW,QAAUZ,QAAQC,QAExB,OAAOW,SAAWlB,SAAWkB,SAAWjB,UAAYiB,SAAWhB,QAAUgB,SAAWb,QACtF,CAAC,AAGD,OAAO,SAASe,QAAQC,IAAS,CAAEC,IAAS,CAAE,CAC5C,OAAOlC,SAASiC,KAAMC,KACxB,CAAC"}
@@ -16,6 +16,10 @@ export interface ButtonProps extends React.HTMLAttributes<HTMLDivElement> {
16
16
  dashed?: boolean;
17
17
  /** 只有文字的按钮 */
18
18
  float?: boolean;
19
+ /** 禁用按钮 */
20
+ disabled?: boolean;
21
+ /** 链接按钮 */
22
+ link?: boolean;
19
23
  }
20
24
  declare const Button: React.FC<ButtonProps>;
21
25
  export default Button;
@@ -1,5 +1,5 @@
1
1
  .status-btn(@type) {
2
- --wave-shadow-color: ~'var(--@{type}-color)';
2
+ --wave-shadow-color: ~'var(--@{type}-color-outline)';
3
3
  color: ~'var(--@{type}-color)';
4
4
  background-color: ~'var(--@{type}-color-deprecated-bg)';
5
5
  border-color: ~'var(--@{type}-color-deprecated-border)';
@@ -17,7 +17,7 @@
17
17
  }
18
18
  }
19
19
  .status-fill-btn(@type) {
20
- --wave-shadow-color: ~'var(--@{type}-color)';
20
+ --wave-shadow-color: ~'var(--@{type}-color-outline)';
21
21
  color: #fff;
22
22
  background-color: ~'var(--@{type}-color)';
23
23
  border-color: ~'var(--@{type}-color)';
@@ -35,7 +35,7 @@
35
35
  }
36
36
  }
37
37
  .@{prefix-cls}-btn {
38
- --wave-shadow-color: var(--primary-color);
38
+ --wave-shadow-color: var(--primary-color-outline);
39
39
  display: inline-block;
40
40
  width: fit-content;
41
41
  min-width: 22px;
@@ -64,10 +64,6 @@
64
64
  border-color: var(--primary-color-active);
65
65
  }
66
66
 
67
- &:last-child {
68
- margin-right: 0;
69
- }
70
-
71
67
  &-primary {
72
68
  .status-btn(primary);
73
69
  }
@@ -110,9 +106,9 @@
110
106
  border-style: dashed;
111
107
  }
112
108
 
113
- &-float {
109
+ &-float, &-link {
114
110
  background-color: transparent;
115
- border-color: transparent !important;
111
+ border-color: transparent;
116
112
 
117
113
  &:hover,
118
114
  &:focus {
@@ -124,6 +120,10 @@
124
120
  }
125
121
  }
126
122
 
123
+ &-link {
124
+ background-color: transparent !important;
125
+ }
126
+
127
127
  &-circle {
128
128
  min-width: 32px;
129
129
  min-height: 32px;
@@ -142,8 +142,12 @@
142
142
  }
143
143
  }
144
144
 
145
- &-without,
146
- &-infinite {
145
+ &-disabled {
146
+ cursor: not-allowed;
147
+ }
148
+
149
+ &-without:not(&-link),
150
+ &-infinite:not(&-link) {
147
151
  position: relative;
148
152
 
149
153
  &::before {
@@ -160,20 +164,25 @@
160
164
  }
161
165
  }
162
166
 
163
- &-infinite::before {
167
+ &-infinite:not(&-link)::before {
164
168
  opacity: 0.2;
165
169
  animation: wave-effect 0.3s cubic-bezier(1, 1, 1, 0.99) infinite;
166
170
  }
171
+
172
+ &:last-child {
173
+ margin-right: 0;
174
+ }
175
+
167
176
  }
168
177
 
169
178
  @keyframes wave-effect {
170
179
  0% {
171
- opacity: 0.3;
180
+ opacity: 1;
172
181
  box-shadow: 0 0 0 var(--wave-shadow-color);
173
182
  }
174
183
 
175
184
  25% {
176
- opacity: 0.2;
185
+ opacity: 1;
177
186
  box-shadow: 0 0 0 4px var(--wave-shadow-color);
178
187
  }
179
188
 
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _react=_interopRequireWildcard(require("react"));var _utils=require("../utils");require("./index.global.less");function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var Button=function(_param){var infinite=_param.infinite,ghost=_param.ghost,fill=_param.fill,circle=_param.circle,dashed=_param.dashed,float=_param.float,className=_param.className,children=_param.children,onClick=_param.onClick,type=_param.type,props=_objectWithoutProperties(_param,["infinite","ghost","fill","circle","dashed","float","className","children","onClick","type"]);var ref=(0,_react.useRef)(null);var ref1=_slicedToArray(_react.default.useState(false),2),animating=ref1[0],setAnimating=ref1[1];var handleClick=(0,_react.useCallback)(function(e){setAnimating(true);if((0,_utils.isFunction)(onClick)){onClick(e)}},[onClick]);var cls=(0,_react.useMemo)(function(){return(0,_utils.classNames)([(0,_utils.getPrefixCls)("btn"),type&&(0,_utils.getPrefixCls)("btn-".concat(type)),infinite&&(0,_utils.getPrefixCls)("btn-infinite"),ghost&&(0,_utils.getPrefixCls)("btn-ghost"),fill&&(0,_utils.getPrefixCls)("btn-fill"),circle&&(0,_utils.getPrefixCls)("btn-circle"),dashed&&(0,_utils.getPrefixCls)("btn-dashed"),float&&(0,_utils.getPrefixCls)("btn-float"),animating&&(0,_utils.getPrefixCls)("btn-without"),className])},[type,infinite,ghost,fill,circle,dashed,float,animating,className]);var handleAnimationEnd=(0,_react.useCallback)(function(){setAnimating(false)},[]);return _react.default.createElement("div",_extends({},props,{className:cls,onClick:handleClick,onAnimationEnd:handleAnimationEnd,ref:ref}),_react.default.createElement("span",null,children))};var _default=Button;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _react=_interopRequireWildcard(require("react"));var _utils=require("../utils");require("./index.global.less");function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var Button=function(_param){var infinite=_param.infinite,ghost=_param.ghost,fill=_param.fill,circle=_param.circle,dashed=_param.dashed,float=_param.float,link=_param.link,className=_param.className,children=_param.children,disabled=_param.disabled,onClick=_param.onClick,type=_param.type,props=_objectWithoutProperties(_param,["infinite","ghost","fill","circle","dashed","float","link","className","children","disabled","onClick","type"]);var ref=(0,_react.useRef)(null);var ref1=_slicedToArray(_react.default.useState(false),2),animating=ref1[0],setAnimating=ref1[1];var handleClick=(0,_react.useCallback)(function(e){if(disabled)return;setAnimating(true);if((0,_utils.isFunction)(onClick)){onClick(e)}},[disabled,onClick]);var cls=(0,_react.useMemo)(function(){return(0,_utils.classNames)([(0,_utils.getPrefixCls)("btn"),type&&(0,_utils.getPrefixCls)("btn-".concat(type)),infinite&&(0,_utils.getPrefixCls)("btn-infinite"),ghost&&(0,_utils.getPrefixCls)("btn-ghost"),fill&&(0,_utils.getPrefixCls)("btn-fill"),circle&&(0,_utils.getPrefixCls)("btn-circle"),dashed&&(0,_utils.getPrefixCls)("btn-dashed"),float&&(0,_utils.getPrefixCls)("btn-float"),animating&&(0,_utils.getPrefixCls)("btn-without"),disabled&&(0,_utils.getPrefixCls)("btn-disabled"),link&&(0,_utils.getPrefixCls)("btn-link"),className])},[type,infinite,ghost,fill,circle,dashed,float,animating,disabled,link,className]);var handleAnimationEnd=(0,_react.useCallback)(function(){setAnimating(false)},[]);return _react.default.createElement("div",_extends({},props,{className:cls,onClick:handleClick,onAnimationEnd:handleAnimationEnd,ref:ref}),_react.default.createElement("span",null,children))};var _default=Button;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/button/index.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react';\nimport { classNames, getPrefixCls, isFunction } from '../utils';\nimport './index.global.less';\n\nexport type ButtonType = 'success' | 'error' | 'danger' | 'primary' | 'warning' | 'default';\n\nexport interface ButtonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 按钮类型 */\n type?: ButtonType;\n /** 无限动画 */\n infinite?: boolean;\n /** 透明背景 */\n ghost?: boolean;\n /** 实色背景 */\n fill?: boolean;\n /** 圆形按钮 */\n circle?: boolean;\n /** 虚线按钮 */\n dashed?: boolean;\n /** 只有文字的按钮 */\n float?: boolean;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n infinite,\n ghost,\n fill,\n circle,\n dashed,\n float,\n className,\n children,\n onClick,\n type,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [animating, setAnimating] = React.useState(false);\n\n const handleClick: React.MouseEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n setAnimating(true);\n if (isFunction(onClick)) {\n onClick(e);\n }\n },\n [onClick]\n );\n const cls = useMemo(\n () =>\n classNames([\n getPrefixCls('btn'),\n type && getPrefixCls(`btn-${type}`),\n infinite && getPrefixCls('btn-infinite'),\n ghost && getPrefixCls('btn-ghost'),\n fill && getPrefixCls('btn-fill'),\n circle && getPrefixCls('btn-circle'),\n dashed && getPrefixCls('btn-dashed'),\n float && getPrefixCls('btn-float'),\n animating && getPrefixCls('btn-without'),\n className,\n ]),\n [type, infinite, ghost, fill, circle, dashed, float, animating, className]\n );\n const handleAnimationEnd = useCallback(() => {\n setAnimating(false);\n }, []);\n\n return (\n <div\n {...props}\n className={cls}\n onClick={handleClick}\n onAnimationEnd={handleAnimationEnd}\n ref={ref}\n >\n <span>{children}</span>\n </div>\n );\n};\n\nexport default Button;\n"],"names":["Button","infinite","ghost","fill","circle","dashed","float","className","children","onClick","type","props","ref","useRef","React","useState","animating","setAnimating","handleClick","useCallback","e","isFunction","cls","useMemo","classNames","getPrefixCls","handleAnimationEnd","div","onAnimationEnd","span"],"mappings":"AAAA,oGAiFA,iDAAA,uDAjFoD,6BACC,oBAC9C,8vGAqBP,IAAMA,OAAgC,gBAYhC,KAXJC,gBAAAA,SACAC,aAAAA,MACAC,YAAAA,KACAC,cAAAA,OACAC,cAAAA,OACAC,aAAAA,MACAC,iBAAAA,UACAC,gBAAAA,SACAC,eAAAA,QACAC,YAAAA,KACGC,uCAVHV,WACAC,QACAC,OACAC,SACAC,SACAC,QACAC,YACAC,WACAC,UACAC,SAGA,IAAME,IAAMC,GAAAA,aAAM,EAAiB,IAAI,EACvC,IAAkCC,oBAAAA,cAAK,CAACC,QAAQ,CAAC,KAAK,KAA/CC,UAA2BF,QAAhBG,aAAgBH,QAElC,IAAMI,YAAuDC,GAAAA,kBAAW,EACtE,SAACC,EAAM,CACLH,aAAa,IAAI,EACjB,GAAII,GAAAA,iBAAU,EAACZ,SAAU,CACvBA,QAAQW,EACV,CAAC,AACH,EACA,CAACX,QAAQ,EAEX,IAAMa,IAAMC,GAAAA,cAAO,EACjB,iBACEC,GAAAA,iBAAU,EAAC,CACTC,GAAAA,mBAAY,EAAC,OACbf,MAAQe,GAAAA,mBAAY,EAAC,AAAC,OAAW,OAALf,OAC5BT,UAAYwB,GAAAA,mBAAY,EAAC,gBACzBvB,OAASuB,GAAAA,mBAAY,EAAC,aACtBtB,MAAQsB,GAAAA,mBAAY,EAAC,YACrBrB,QAAUqB,GAAAA,mBAAY,EAAC,cACvBpB,QAAUoB,GAAAA,mBAAY,EAAC,cACvBnB,OAASmB,GAAAA,mBAAY,EAAC,aACtBT,WAAaS,GAAAA,mBAAY,EAAC,eAC1BlB,UACD,GACH,CAACG,KAAMT,SAAUC,MAAOC,KAAMC,OAAQC,OAAQC,MAAOU,UAAWT,UAAU,EAE5E,IAAMmB,mBAAqBP,GAAAA,kBAAW,EAAC,UAAM,CAC3CF,aAAa,KAAK,CACpB,EAAG,EAAE,EAEL,OACE,6BAACU,kBACKhB,OACJJ,UAAWe,IACXb,QAASS,YACTU,eAAgBF,mBAChBd,IAAKA,MAEL,6BAACiB,YAAMrB,UAGb,MAEA,SAAeR"}
1
+ {"version":3,"sources":["../../components/button/index.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useRef } from 'react';\nimport { classNames, getPrefixCls, isFunction } from '../utils';\nimport './index.global.less';\n\nexport type ButtonType = 'success' | 'error' | 'danger' | 'primary' | 'warning' | 'default';\n\nexport interface ButtonProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 按钮类型 */\n type?: ButtonType;\n /** 无限动画 */\n infinite?: boolean;\n /** 透明背景 */\n ghost?: boolean;\n /** 实色背景 */\n fill?: boolean;\n /** 圆形按钮 */\n circle?: boolean;\n /** 虚线按钮 */\n dashed?: boolean;\n /** 只有文字的按钮 */\n float?: boolean;\n /** 禁用按钮 */\n disabled?: boolean;\n /** 链接按钮 */\n link?: boolean;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n infinite,\n ghost,\n fill,\n circle,\n dashed,\n float,\n link,\n className,\n children,\n disabled,\n onClick,\n type,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [animating, setAnimating] = React.useState(false);\n\n const handleClick: React.MouseEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n if (disabled) return;\n setAnimating(true);\n if (isFunction(onClick)) {\n onClick(e);\n }\n },\n [disabled, onClick]\n );\n const cls = useMemo(\n () =>\n classNames([\n getPrefixCls('btn'),\n type && getPrefixCls(`btn-${type}`),\n infinite && getPrefixCls('btn-infinite'),\n ghost && getPrefixCls('btn-ghost'),\n fill && getPrefixCls('btn-fill'),\n circle && getPrefixCls('btn-circle'),\n dashed && getPrefixCls('btn-dashed'),\n float && getPrefixCls('btn-float'),\n animating && getPrefixCls('btn-without'),\n disabled && getPrefixCls('btn-disabled'),\n link && getPrefixCls('btn-link'),\n className,\n ]),\n [type, infinite, ghost, fill, circle, dashed, float, animating, disabled, link, className]\n );\n const handleAnimationEnd = useCallback(() => {\n setAnimating(false);\n }, []);\n\n return (\n <div\n {...props}\n className={cls}\n onClick={handleClick}\n onAnimationEnd={handleAnimationEnd}\n ref={ref}\n >\n <span>{children}</span>\n </div>\n );\n};\n\nexport default Button;\n"],"names":["Button","infinite","ghost","fill","circle","dashed","float","link","className","children","disabled","onClick","type","props","ref","useRef","React","useState","animating","setAnimating","handleClick","useCallback","e","isFunction","cls","useMemo","classNames","getPrefixCls","handleAnimationEnd","div","onAnimationEnd","span"],"mappings":"AAAA,oGA0FA,iDAAA,uDA1FoD,6BACC,oBAC9C,8vGAyBP,IAAMA,OAAgC,gBAchC,KAbJC,gBAAAA,SACAC,aAAAA,MACAC,YAAAA,KACAC,cAAAA,OACAC,cAAAA,OACAC,aAAAA,MACAC,YAAAA,KACAC,iBAAAA,UACAC,gBAAAA,SACAC,gBAAAA,SACAC,eAAAA,QACAC,YAAAA,KACGC,uCAZHZ,WACAC,QACAC,OACAC,SACAC,SACAC,QACAC,OACAC,YACAC,WACAC,WACAC,UACAC,SAGA,IAAME,IAAMC,GAAAA,aAAM,EAAiB,IAAI,EACvC,IAAkCC,oBAAAA,cAAK,CAACC,QAAQ,CAAC,KAAK,KAA/CC,UAA2BF,QAAhBG,aAAgBH,QAElC,IAAMI,YAAuDC,GAAAA,kBAAW,EACtE,SAACC,EAAM,CACL,GAAIZ,SAAU,MAAO,CACrBS,aAAa,IAAI,EACjB,GAAII,GAAAA,iBAAU,EAACZ,SAAU,CACvBA,QAAQW,EACV,CAAC,AACH,EACA,CAACZ,SAAUC,QAAQ,EAErB,IAAMa,IAAMC,GAAAA,cAAO,EACjB,iBACEC,GAAAA,iBAAU,EAAC,CACTC,GAAAA,mBAAY,EAAC,OACbf,MAAQe,GAAAA,mBAAY,EAAC,AAAC,OAAW,OAALf,OAC5BX,UAAY0B,GAAAA,mBAAY,EAAC,gBACzBzB,OAASyB,GAAAA,mBAAY,EAAC,aACtBxB,MAAQwB,GAAAA,mBAAY,EAAC,YACrBvB,QAAUuB,GAAAA,mBAAY,EAAC,cACvBtB,QAAUsB,GAAAA,mBAAY,EAAC,cACvBrB,OAASqB,GAAAA,mBAAY,EAAC,aACtBT,WAAaS,GAAAA,mBAAY,EAAC,eAC1BjB,UAAYiB,GAAAA,mBAAY,EAAC,gBACzBpB,MAAQoB,GAAAA,mBAAY,EAAC,YACrBnB,UACD,GACH,CAACI,KAAMX,SAAUC,MAAOC,KAAMC,OAAQC,OAAQC,MAAOY,UAAWR,SAAUH,KAAMC,UAAU,EAE5F,IAAMoB,mBAAqBP,GAAAA,kBAAW,EAAC,UAAM,CAC3CF,aAAa,KAAK,CACpB,EAAG,EAAE,EAEL,OACE,6BAACU,kBACKhB,OACJL,UAAWgB,IACXb,QAASS,YACTU,eAAgBF,mBAChBd,IAAKA,MAEL,6BAACiB,YAAMtB,UAGb,MAEA,SAAeT"}
package/lib/index.d.ts CHANGED
@@ -20,3 +20,5 @@ export { default as CronEditor } from './cron-editor';
20
20
  export type { CornEditorProps } from './cron-editor';
21
21
  export { default as Button } from './button';
22
22
  export type { ButtonProps, ButtonType } from './button';
23
+ export { default as Input } from './input';
24
+ export type { InputProps } from './input';
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{Markdown:function(){return _markdown.default},BackTop:function(){return _backTop.default},Tag:function(){return _tag.default},HighlightText:function(){return _highlightText.default},useTheme:function(){return _useTheme.default},Avatar:function(){return _avatar.default},Marquee:function(){return _marquee.default},CaptureScreen:function(){return _captureScreen.default},WaveCircle:function(){return _waveCircle.default},CronEditor:function(){return _cronEditor.default},Button:function(){return _button.default}});var _markdown=_interopRequireDefault(require("./markdown"));var _backTop=_interopRequireDefault(require("./back-top"));var _tag=_interopRequireDefault(require("./tag"));var _highlightText=_interopRequireDefault(require("./highlight-text"));var _useTheme=_interopRequireDefault(require("./use-theme"));var _avatar=_interopRequireDefault(require("./avatar"));var _marquee=_interopRequireDefault(require("./marquee"));var _captureScreen=_interopRequireDefault(require("./capture-screen"));var _waveCircle=_interopRequireDefault(require("./wave-circle"));var _cronEditor=_interopRequireDefault(require("./cron-editor"));var _button=_interopRequireDefault(require("./button"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{Markdown:function(){return _markdown.default},BackTop:function(){return _backTop.default},Tag:function(){return _tag.default},HighlightText:function(){return _highlightText.default},useTheme:function(){return _useTheme.default},Avatar:function(){return _avatar.default},Marquee:function(){return _marquee.default},CaptureScreen:function(){return _captureScreen.default},WaveCircle:function(){return _waveCircle.default},CronEditor:function(){return _cronEditor.default},Button:function(){return _button.default},Input:function(){return _input.default}});var _markdown=_interopRequireDefault(require("./markdown"));var _backTop=_interopRequireDefault(require("./back-top"));var _tag=_interopRequireDefault(require("./tag"));var _highlightText=_interopRequireDefault(require("./highlight-text"));var _useTheme=_interopRequireDefault(require("./use-theme"));var _avatar=_interopRequireDefault(require("./avatar"));var _marquee=_interopRequireDefault(require("./marquee"));var _captureScreen=_interopRequireDefault(require("./capture-screen"));var _waveCircle=_interopRequireDefault(require("./wave-circle"));var _cronEditor=_interopRequireDefault(require("./cron-editor"));var _button=_interopRequireDefault(require("./button"));var _input=_interopRequireDefault(require("./input"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/index.ts"],"sourcesContent":["export { default as Markdown } from './markdown';\nexport type { MarkdownProps, CodeBlockToolType, AnchorType } from './markdown';\n\nexport { default as BackTop } from './back-top';\nexport type { BackTopProps } from './back-top';\n\nexport { default as Tag } from './tag';\nexport type { TagProps } from './tag';\n\nexport { default as HighlightText } from './highlight-text';\nexport type { Highlight, HighlightTextProps, HighlightTextJson } from './highlight-text';\n\nexport { default as useTheme } from './use-theme';\nexport type { ThemeTypes } from './use-theme';\n\nexport { default as Avatar } from './avatar';\nexport type { AvatarProps } from './avatar';\n\nexport { default as Marquee } from './marquee';\nexport type { MarqueeProps } from './marquee';\n\nexport { default as CaptureScreen } from './capture-screen';\nexport type { CaptureScreenProp, RecorderOptions } from './capture-screen';\n\nexport { default as WaveCircle } from './wave-circle';\nexport type { WaveCircleProps } from './wave-circle';\n\nexport { default as CronEditor } from './cron-editor';\nexport type { CornEditorProps } from './cron-editor';\n\nexport { default as Button } from './button';\nexport type { ButtonProps, ButtonType } from './button';\n"],"names":["Markdown","BackTop","Tag","HighlightText","useTheme","Avatar","Marquee","CaptureScreen","WaveCircle","CronEditor","Button"],"mappings":"AAAA,2MAAoBA,QAAQ,mBAARA,iBAAQ,EAGRC,OAAO,mBAAPA,gBAAO,EAGPC,GAAG,mBAAHA,YAAG,EAGHC,aAAa,mBAAbA,sBAAa,EAGbC,QAAQ,mBAARA,iBAAQ,EAGRC,MAAM,mBAANA,eAAM,EAGNC,OAAO,mBAAPA,gBAAO,EAGPC,aAAa,mBAAbA,sBAAa,EAGbC,UAAU,mBAAVA,mBAAU,EAGVC,UAAU,mBAAVA,mBAAU,EAGVC,MAAM,mBAANA,eAAM,iDA9BU,2DAGD,uDAGJ,4DAGU,kEAGL,2DAGF,yDAGC,gEAGM,oEAGH,iEAGA,6DAGJ"}
1
+ {"version":3,"sources":["../components/index.ts"],"sourcesContent":["export { default as Markdown } from './markdown';\nexport type { MarkdownProps, CodeBlockToolType, AnchorType } from './markdown';\n\nexport { default as BackTop } from './back-top';\nexport type { BackTopProps } from './back-top';\n\nexport { default as Tag } from './tag';\nexport type { TagProps } from './tag';\n\nexport { default as HighlightText } from './highlight-text';\nexport type { Highlight, HighlightTextProps, HighlightTextJson } from './highlight-text';\n\nexport { default as useTheme } from './use-theme';\nexport type { ThemeTypes } from './use-theme';\n\nexport { default as Avatar } from './avatar';\nexport type { AvatarProps } from './avatar';\n\nexport { default as Marquee } from './marquee';\nexport type { MarqueeProps } from './marquee';\n\nexport { default as CaptureScreen } from './capture-screen';\nexport type { CaptureScreenProp, RecorderOptions } from './capture-screen';\n\nexport { default as WaveCircle } from './wave-circle';\nexport type { WaveCircleProps } from './wave-circle';\n\nexport { default as CronEditor } from './cron-editor';\nexport type { CornEditorProps } from './cron-editor';\n\nexport { default as Button } from './button';\nexport type { ButtonProps, ButtonType } from './button';\n\nexport { default as Input } from './input';\nexport type { InputProps } from './input';\n"],"names":["Markdown","BackTop","Tag","HighlightText","useTheme","Avatar","Marquee","CaptureScreen","WaveCircle","CronEditor","Button","Input"],"mappings":"AAAA,2MAAoBA,QAAQ,mBAARA,iBAAQ,EAGRC,OAAO,mBAAPA,gBAAO,EAGPC,GAAG,mBAAHA,YAAG,EAGHC,aAAa,mBAAbA,sBAAa,EAGbC,QAAQ,mBAARA,iBAAQ,EAGRC,MAAM,mBAANA,eAAM,EAGNC,OAAO,mBAAPA,gBAAO,EAGPC,aAAa,mBAAbA,sBAAa,EAGbC,UAAU,mBAAVA,mBAAU,EAGVC,UAAU,mBAAVA,mBAAU,EAGVC,MAAM,mBAANA,eAAM,EAGNC,KAAK,mBAALA,cAAK,iDAjCW,2DAGD,uDAGJ,4DAGU,kEAGL,2DAGF,yDAGC,gEAGM,oEAGH,iEAGA,6DAGJ,uDAGD"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import './index.global.less';
3
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
4
+ className?: string;
5
+ suffix?: React.ReactNode;
6
+ }
7
+ declare const Input: React.FC<InputProps>;
8
+ export default Input;
@@ -0,0 +1,58 @@
1
+ .@{prefix-cls}-input-wrapper {
2
+ color: var(--text-color, rgba(0, 0, 0, 0.85));
3
+ font-size: 14px;
4
+ line-height: 1.5715;
5
+ background-color: #fff;
6
+ background-image: none;
7
+ border: 1px solid var(--border-color-base, #d9d9d9);
8
+ border-radius: 4px;
9
+ transition: all 0.3s;
10
+ box-sizing: border-box;
11
+ width: 100%;
12
+ padding: 4px 10px;
13
+ display: flex;
14
+
15
+ &:hover:not([disabled]) {
16
+ border-color: var(--primary-color-hover, #5794ff);
17
+ border-right-width: 1px;
18
+ }
19
+
20
+ &:focus:not([disabled]) {
21
+ border-color: var(--primary-color-hover, #5794ff);
22
+ box-shadow: 0 0 0 2px rgba(45, 115, 255, 0.2);
23
+ border-right-width: 1px;
24
+ outline: 0;
25
+ }
26
+
27
+ &[disabled] {
28
+ background: var(--disabled-bg, #f5f5f5);
29
+ border-color: var(--border-color-base, #d9d9d9);
30
+ cursor: not-allowed;
31
+ }
32
+ }
33
+ .@{prefix-cls}-input-prefix {
34
+ margin-right: 4px;
35
+ }
36
+ .@{prefix-cls}-input-suffix {
37
+ margin-left: 4px;
38
+ }
39
+ .@{prefix-cls}-input {
40
+ border: none;
41
+ outline: none;
42
+ flex: 1;
43
+ color: inherit;
44
+ white-space: nowrap;
45
+ text-overflow: ellipsis;
46
+ overflow: hidden;
47
+
48
+ &[type="number"] {
49
+ width: 75px;
50
+ padding: 0 0 0 10px;
51
+ }
52
+
53
+ &[type="button"],
54
+ &[type="submit"],
55
+ &[type="reset"] {
56
+ cursor: pointer;
57
+ }
58
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _react=_interopRequireDefault(require("react"));var _utils=require("../utils");require("./index.global.less");function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};return _extends.apply(this,arguments)}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}var Input=function(_param){var className=_param.className,_type=_param.type,type=_type===void 0?"text":_type,suffix=_param.suffix,prefix=_param.prefix,value=_param.value,prpos=_objectWithoutProperties(_param,["className","type","suffix","prefix","value"]);return _react.default.createElement("span",{className:(0,_utils.classNames)([(0,_utils.getPrefixCls)("input-wrapper"),(0,_utils.getPrefixCls)("input-".concat(type)),className])},prefix&&_react.default.createElement("span",{className:(0,_utils.getPrefixCls)("input-prefix")},prefix),_react.default.createElement("input",_extends({value:value,className:(0,_utils.getPrefixCls)("input"),type:type},prpos)),suffix&&_react.default.createElement("span",{className:(0,_utils.getPrefixCls)("input-suffix")},suffix))};var _default=Input;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../components/input/index.tsx"],"sourcesContent":["import React from 'react';\nimport { classNames, getPrefixCls } from '../utils';\nimport './index.global.less';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n className?: string;\n suffix?: React.ReactNode;\n}\n\nconst Input: React.FC<InputProps> = ({\n className,\n type = 'text',\n suffix,\n prefix,\n value,\n ...prpos\n}) => {\n return (\n <span\n className={classNames([\n getPrefixCls('input-wrapper'),\n getPrefixCls(`input-${type}`),\n className,\n ])}\n >\n {prefix && <span className={getPrefixCls('input-prefix')}>{prefix}</span>}\n <input value={value} className={getPrefixCls('input')} type={type} {...prpos} />\n {suffix && <span className={getPrefixCls('input-suffix')}>{suffix}</span>}\n </span>\n );\n};\n\nexport default Input;\n"],"names":["Input","className","type","suffix","prefix","value","prpos","span","classNames","getPrefixCls","input"],"mappings":"AAAA,oGAgCA,iDAAA,sDAhCkB,6BACuB,oBAClC,ikCAOP,IAAMA,MAA8B,gBAO9B,KANJC,iBAAAA,uBACAC,KAAAA,oBAAO,aACPC,cAAAA,OACAC,cAAAA,OACAC,aAAAA,MACGC,uCALHL,YACAC,OACAC,SACAC,SACAC,UAGA,OACE,6BAACE,QACCN,UAAWO,GAAAA,iBAAU,EAAC,CACpBC,GAAAA,mBAAY,EAAC,iBACbA,GAAAA,mBAAY,EAAC,AAAC,SAAa,OAALP,OACtBD,UACD,GAEAG,QAAU,6BAACG,QAAKN,UAAWQ,GAAAA,mBAAY,EAAC,iBAAkBL,QAC3D,6BAACM,kBAAML,MAAOA,MAAOJ,UAAWQ,GAAAA,mBAAY,EAAC,SAAUP,KAAMA,MAAUI,QACtEH,QAAU,6BAACI,QAAKN,UAAWQ,GAAAA,mBAAY,EAAC,iBAAkBN,QAGjE,MAEA,SAAeH"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _react=_interopRequireWildcard(require("react"));var _utils=require("../utils");var _markdownUtil=require("./markdown-util");var _reactPhotoView=require("react-photo-view");require("react-photo-view/dist/react-photo-view.css");require("./index.global.less");function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var toggleAnchor=function(anchor){var ref,ref1,ref2;(ref1=(ref=anchor.offsetParent)===null||ref===void 0?void 0:ref.querySelectorAll("li"))===null||ref1===void 0?void 0:ref1.forEach(function(a){a.classList.remove("active")});(ref2=anchor.parentElement)===null||ref2===void 0?void 0:ref2.classList.add("active")};var Markdown=function(param){var className=param.className,style=param.style,text=param.text,_pictureViewer=param.pictureViewer,pictureViewer=_pictureViewer===void 0?true:_pictureViewer,_langLineNumber=param.langLineNumber,langLineNumber=_langLineNumber===void 0?true:_langLineNumber,_tools=param.tools,tools=_tools===void 0?["copy"]:_tools,_getAnchorContainer=param.getAnchorContainer,getAnchorContainer=_getAnchorContainer===void 0?function(){return window}:_getAnchorContainer,tex=param.tex;var ref=(0,_react.useRef)(null);var ref1=_slicedToArray((0,_react.useState)(false),2),visible=ref1[0],setVisible=ref1[1];var ref2=_slicedToArray((0,_react.useState)(0),2),photoIndex=ref2[0],setPhotoIndex=ref2[1];var ref3=_slicedToArray((0,_react.useState)(""),2),htmlString=ref3[0],setHtmlString=ref3[1];var ref4=_slicedToArray((0,_react.useState)([]),2),imgList=ref4[0],setImgList=ref4[1];var htmlStrRef=(0,_react.useRef)(htmlString);var anchors=(0,_react.useRef)([]);(0,_react.useMemo)(function(){var str=htmlStrRef.current;if(text){str=(0,_markdownUtil.markdownUtil)(text,{langLineNumber:langLineNumber,langToolbar:tools,tex:tex})}else{str=""}if(str!==htmlStrRef.current){Object.assign(htmlStrRef,{current:str});setHtmlString(str)}},[text,langLineNumber,tools,tex]);(0,_react.useEffect)(function(){var timer=setTimeout(function(){window.Prism.highlightAll();if(typeof timer==="number")clearTimeout(timer)},0);if(pictureViewer){setImgList((0,_markdownUtil.getMarkedImgList)(htmlString))}return function(){if(typeof timer==="number"){clearTimeout(timer)}}},[htmlString,pictureViewer]);var handleAnchor=function(e){var ref1,ref2,ref3;e.preventDefault();e.stopPropagation();toggleAnchor(e.target);(ref3=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent((ref2=e.target)===null||ref2===void 0?void 0:ref2.hash)))===null||ref3===void 0?void 0:ref3.scrollIntoView({behavior:"smooth",block:"center"})};(0,_react.useEffect)(function(){var ref1,ref2;var _anchors=[];(ref2=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelectorAll(".markdown-toc li a"))===null||ref2===void 0?void 0:ref2.forEach(function(e){var ref1;var a=e;var _el=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent(a===null||a===void 0?void 0:a.hash));_anchors.push({anchor:a,top:_el.offsetTop});e.onclick=handleAnchor});Object.assign(anchors,{current:_anchors})},[htmlString]);var handleClick=(0,_react.useCallback)(function(event){var target=event.target;if((target===null||target===void 0?void 0:target.tagName)==="IMG"&&pictureViewer){var ref1;var arr=((ref1=ref.current)===null||ref1===void 0?void 0:ref1.getElementsByTagName("img"))||[];for(var i=0,len=arr.length;i<len;i++){if(arr[i]===target){setPhotoIndex(i);setVisible(true)}}}else if(target.className.includes("toolbar-copy")&&(tools===null||tools===void 0?void 0:tools.includes("copy"))){if(target.offsetParent&&!target.offsetParent.hasAttribute("data-copy")){(0,_utils.setClipboard)(target.offsetParent.innerText,target.offsetParent)}}},[tools,pictureViewer]);var handleWheel=(0,_react.useCallback)(function(event){var offsetParent=event.target.offsetParent;if(!offsetParent||offsetParent.tagName!=="PRE"){return}var rows=offsetParent===null||offsetParent===void 0?void 0:offsetParent.getElementsByClassName("line-numbers-rows");if(rows===null||rows===void 0?void 0:rows.length){var codeTag=offsetParent.getElementsByTagName("code")[0];if(codeTag.scrollHeight-codeTag.offsetHeight&&rows[0].scrollTop!==codeTag.scrollTop){rows[0].scrollTop=codeTag.scrollTop}}},[]);var handleScroll=(0,_react.useCallback)(function(e){if(!anchors.current.length)return;var el=e.target;var top=(0,_utils.getScrollTop)(el);var anchor=null;anchors.current.forEach(function(a){if(top-a.top>-el.offsetHeight/2)anchor=a.anchor});if(anchor){toggleAnchor(anchor)}},[]);(0,_react.useEffect)(function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.addEventListener("scroll",handleScroll);return function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.removeEventListener("scroll",handleScroll)}},[getAnchorContainer,handleScroll]);var cls=(0,_react.useMemo)(function(){return(0,_utils.classNames)([(0,_utils.getPrefixCls)("markdown-box"),className])},[className]);return _react.default.createElement(_react.Fragment,null,_react.default.createElement("div",{ref:ref,className:cls,style:style,dangerouslySetInnerHTML:{__html:htmlString},onClick:handleClick,onWheel:handleWheel}),imgList.length?_react.default.createElement(_reactPhotoView.PhotoSlider,{images:imgList,visible:visible,onClose:function(){return setVisible(false)},index:photoIndex,onIndexChange:setPhotoIndex}):null)};var _default=_react.default.memo(Markdown,_utils.isEqual);
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return _default}});var _react=_interopRequireWildcard(require("react"));var _utils=require("../utils");var _markdownUtil=require("./markdown-util");var _reactPhotoView=require("react-photo-view");require("react-photo-view/dist/react-photo-view.css");require("./index.global.less");function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}var toggleAnchor=function(anchor){var ref,ref1,ref2;(ref1=(ref=anchor.offsetParent)===null||ref===void 0?void 0:ref.querySelectorAll("li"))===null||ref1===void 0?void 0:ref1.forEach(function(a){a.classList.remove("active")});(ref2=anchor.parentElement)===null||ref2===void 0?void 0:ref2.classList.add("active")};var Markdown=function(param){var className=param.className,style=param.style,text=param.text,_pictureViewer=param.pictureViewer,pictureViewer=_pictureViewer===void 0?true:_pictureViewer,_langLineNumber=param.langLineNumber,langLineNumber=_langLineNumber===void 0?true:_langLineNumber,_tools=param.tools,tools=_tools===void 0?["copy"]:_tools,_getAnchorContainer=param.getAnchorContainer,getAnchorContainer=_getAnchorContainer===void 0?function(){return window}:_getAnchorContainer,tex=param.tex;var ref=(0,_react.useRef)(null);var ref1=_slicedToArray((0,_react.useState)(false),2),visible=ref1[0],setVisible=ref1[1];var ref2=_slicedToArray((0,_react.useState)(0),2),photoIndex=ref2[0],setPhotoIndex=ref2[1];var ref3=_slicedToArray((0,_react.useState)(""),2),htmlString=ref3[0],setHtmlString=ref3[1];var ref4=_slicedToArray((0,_react.useState)([]),2),imgList=ref4[0],setImgList=ref4[1];var htmlStrRef=(0,_react.useRef)(htmlString);var anchors=(0,_react.useRef)([]);(0,_react.useMemo)(function(){var str=htmlStrRef.current;if(text){str=(0,_markdownUtil.markdownUtil)(text,{langLineNumber:langLineNumber,langToolbar:tools,tex:tex})}else{str=""}if(str!==htmlStrRef.current){Object.assign(htmlStrRef,{current:str});setHtmlString(str)}},[text,langLineNumber,tools,tex]);(0,_react.useEffect)(function(){var timer=setTimeout(function(){window.Prism.highlightAll();if(typeof timer==="number")clearTimeout(timer)},0);if(pictureViewer){setImgList((0,_markdownUtil.getMarkedImgList)(htmlString))}return function(){if(typeof timer==="number"){clearTimeout(timer)}}},[htmlString,pictureViewer]);var handleAnchor=function(e){var ref1,ref2,ref3;e.preventDefault();e.stopPropagation();toggleAnchor(e.target);(ref3=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent((ref2=e.target)===null||ref2===void 0?void 0:ref2.hash)))===null||ref3===void 0?void 0:ref3.scrollIntoView({behavior:"smooth",block:"center"})};(0,_react.useEffect)(function(){var ref1,ref2;var _anchors=[];(ref2=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelectorAll(".markdown-toc li a"))===null||ref2===void 0?void 0:ref2.forEach(function(e){var ref1;var a=e;var _el=(ref1=ref.current)===null||ref1===void 0?void 0:ref1.querySelector(decodeURIComponent(a===null||a===void 0?void 0:a.hash));_anchors.push({anchor:a,top:_el.offsetTop});e.onclick=handleAnchor});Object.assign(anchors,{current:_anchors})},[htmlString]);var handleClick=(0,_react.useCallback)(function(event){var target=event.target;if((0,_utils.isSvgElement)(target))return;if(target.tagName==="IMG"&&pictureViewer){var ref1;var arr=((ref1=ref.current)===null||ref1===void 0?void 0:ref1.getElementsByTagName("img"))||[];for(var i=0,len=arr.length;i<len;i++){if(arr[i]===target){setPhotoIndex(i);setVisible(true)}}}else if(target.className.includes("toolbar-copy")){var offsetParent=target.offsetParent;if(!(offsetParent===null||offsetParent===void 0?void 0:offsetParent.hasAttribute("data-copy"))){(0,_utils.setClipboard)(offsetParent===null||offsetParent===void 0?void 0:offsetParent.innerText,offsetParent)}}},[pictureViewer]);var handleWheel=(0,_react.useCallback)(function(event){var offsetParent=event.target.offsetParent;if(!offsetParent||offsetParent.tagName!=="PRE"){return}var rows=offsetParent===null||offsetParent===void 0?void 0:offsetParent.getElementsByClassName("line-numbers-rows");if(rows===null||rows===void 0?void 0:rows.length){var codeTag=offsetParent.getElementsByTagName("code")[0];if(codeTag.scrollHeight-codeTag.offsetHeight&&rows[0].scrollTop!==codeTag.scrollTop){rows[0].scrollTop=codeTag.scrollTop}}},[]);var handleScroll=(0,_react.useCallback)(function(e){if(!anchors.current.length)return;var el=e.target;var top=(0,_utils.getScrollTop)(el);var anchor=null;anchors.current.forEach(function(a){if(top-a.top>-el.offsetHeight/2)anchor=a.anchor});if(anchor){toggleAnchor(anchor)}},[]);(0,_react.useEffect)(function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.addEventListener("scroll",handleScroll);return function(){var ref;(ref=getAnchorContainer())===null||ref===void 0?void 0:ref.removeEventListener("scroll",handleScroll)}},[getAnchorContainer,handleScroll]);var cls=(0,_react.useMemo)(function(){return(0,_utils.classNames)([(0,_utils.getPrefixCls)("markdown-box"),className])},[className]);return _react.default.createElement(_react.Fragment,null,_react.default.createElement("div",{ref:ref,className:cls,style:style,dangerouslySetInnerHTML:{__html:htmlString},onClick:handleClick,onWheel:handleWheel}),imgList.length?_react.default.createElement(_reactPhotoView.PhotoSlider,{images:imgList,visible:visible,onClose:function(){return setVisible(false)},index:photoIndex,onIndexChange:setPhotoIndex}):null)};var _default=_react.default.memo(Markdown,_utils.isEqual);
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/markdown/index.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { FC, MouseEvent, WheelEvent } from 'react';\nimport { getScrollTop, setClipboard, classNames, getPrefixCls, isEqual } from '../utils';\nimport { getMarkedImgList, markdownUtil } from './markdown-util';\nimport { PhotoSlider } from 'react-photo-view';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport 'react-photo-view/dist/react-photo-view.css';\nimport './index.global.less';\n\nexport type CodeBlockToolType = Array<'copy'>;\n\nexport interface MarkdownProps {\n className?: string;\n style?: React.CSSProperties;\n /** md内容 */\n text?: string;\n /** 开启图片查看器 */\n pictureViewer?: boolean;\n /** 显示代码块行号 */\n langLineNumber?: boolean;\n /** 开启代码块工具条 */\n tools?: CodeBlockToolType;\n /** 指定滚动的容器 */\n getAnchorContainer?: () => HTMLElement;\n /** 渲染KateX数学公式 */\n tex?: boolean;\n}\n\nexport type AnchorType = {\n anchor: HTMLAnchorElement;\n top: number;\n};\n\nconst toggleAnchor = (anchor: HTMLAnchorElement) => {\n anchor.offsetParent?.querySelectorAll('li')?.forEach((a) => {\n a.classList.remove('active');\n });\n anchor.parentElement?.classList.add('active');\n};\n\nconst Markdown: FC<MarkdownProps> = ({\n className,\n style,\n text,\n pictureViewer = true,\n langLineNumber = true,\n tools = ['copy'],\n getAnchorContainer = () => window,\n tex,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [visible, setVisible] = useState(false);\n const [photoIndex, setPhotoIndex] = useState(0);\n const [htmlString, setHtmlString] = useState<string>('');\n const [imgList, setImgList] = useState<PhotoViewDataType[]>([]);\n const htmlStrRef = useRef<string>(htmlString);\n const anchors = useRef<AnchorType[]>([]);\n\n useMemo(() => {\n let str = htmlStrRef.current;\n\n if (text) {\n str = markdownUtil(text, {\n langLineNumber,\n langToolbar: tools,\n tex: tex,\n });\n } else {\n str = '';\n }\n if (str !== htmlStrRef.current) {\n Object.assign(htmlStrRef, {\n current: str,\n });\n setHtmlString(str);\n }\n }, [text, langLineNumber, tools, tex]);\n\n useEffect(() => {\n const timer: NodeJS.Timeout = setTimeout(() => {\n window.Prism.highlightAll();\n if (typeof timer === 'number') clearTimeout(timer);\n }, 0);\n\n if (pictureViewer) {\n setImgList(getMarkedImgList(htmlString));\n }\n return () => {\n if (typeof timer === 'number') {\n clearTimeout(timer);\n }\n };\n }, [htmlString, pictureViewer]);\n\n const handleAnchor = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n toggleAnchor(e.target as HTMLAnchorElement);\n ref.current\n ?.querySelector(decodeURIComponent((e.target as HTMLAnchorElement)?.hash))\n ?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n };\n\n useEffect(() => {\n const _anchors: AnchorType[] = [];\n\n ref.current?.querySelectorAll('.markdown-toc li a')?.forEach((e) => {\n const a = e as HTMLAnchorElement;\n const _el = ref.current?.querySelector(\n decodeURIComponent((a as HTMLAnchorElement)?.hash)\n ) as HTMLElement;\n\n _anchors.push({\n anchor: a,\n top: _el.offsetTop,\n });\n (e as HTMLAnchorElement).onclick = handleAnchor;\n });\n\n Object.assign(anchors, {\n current: _anchors,\n });\n }, [htmlString]);\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n\n if (target?.tagName === 'IMG' && pictureViewer) {\n const arr = ref.current?.getElementsByTagName('img') || [];\n\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === target) {\n setPhotoIndex(i);\n setVisible(true);\n }\n }\n } else if (target.className.includes('toolbar-copy') && tools?.includes('copy')) {\n if (target.offsetParent && !target.offsetParent.hasAttribute('data-copy')) {\n setClipboard((target.offsetParent as HTMLElement).innerText, target.offsetParent);\n }\n }\n },\n [tools, pictureViewer]\n );\n\n const handleWheel = useCallback((event: WheelEvent<HTMLDivElement>) => {\n const offsetParent = (event.target as HTMLElement).offsetParent;\n\n if (!offsetParent || offsetParent.tagName !== 'PRE') {\n return;\n }\n const rows = offsetParent?.getElementsByClassName('line-numbers-rows');\n\n if (rows?.length) {\n const codeTag: HTMLElement = offsetParent.getElementsByTagName('code')[0];\n\n if (codeTag.scrollHeight - codeTag.offsetHeight && rows[0].scrollTop !== codeTag.scrollTop) {\n // 可滚动高度大于0\n rows[0].scrollTop = codeTag.scrollTop;\n }\n }\n }, []);\n const handleScroll = useCallback((e: Event) => {\n if (!anchors.current.length) return;\n const el = e.target as HTMLElement;\n const top = getScrollTop(el);\n\n let anchor: HTMLAnchorElement | null = null;\n\n anchors.current.forEach((a) => {\n if (top - a.top > -el.offsetHeight / 2) anchor = a.anchor;\n });\n\n if (anchor) {\n toggleAnchor(anchor);\n }\n }, []);\n\n useEffect(() => {\n getAnchorContainer()?.addEventListener('scroll', handleScroll);\n return () => {\n getAnchorContainer()?.removeEventListener('scroll', handleScroll);\n };\n }, [getAnchorContainer, handleScroll]);\n\n const cls = useMemo(() => classNames([getPrefixCls('markdown-box'), className]), [className]);\n\n return (\n <Fragment>\n <div\n ref={ref}\n className={cls}\n style={style}\n dangerouslySetInnerHTML={{\n __html: htmlString,\n }}\n onClick={handleClick}\n onWheel={handleWheel}\n />\n {imgList.length ? (\n <PhotoSlider\n images={imgList}\n visible={visible}\n onClose={() => setVisible(false)}\n index={photoIndex}\n onIndexChange={setPhotoIndex}\n />\n ) : null}\n </Fragment>\n );\n};\n\nexport default React.memo(Markdown, isEqual);\n"],"names":["toggleAnchor","anchor","offsetParent","querySelectorAll","forEach","a","classList","remove","parentElement","add","Markdown","className","style","text","pictureViewer","langLineNumber","tools","getAnchorContainer","window","tex","ref","useRef","useState","visible","setVisible","photoIndex","setPhotoIndex","htmlString","setHtmlString","imgList","setImgList","htmlStrRef","anchors","useMemo","str","current","markdownUtil","langToolbar","Object","assign","useEffect","timer","setTimeout","Prism","highlightAll","clearTimeout","getMarkedImgList","handleAnchor","e","preventDefault","stopPropagation","target","querySelector","decodeURIComponent","hash","scrollIntoView","behavior","block","_anchors","_el","push","top","offsetTop","onclick","handleClick","useCallback","event","tagName","arr","getElementsByTagName","i","len","length","includes","hasAttribute","setClipboard","innerText","handleWheel","rows","getElementsByClassName","codeTag","scrollHeight","offsetHeight","scrollTop","handleScroll","el","getScrollTop","addEventListener","removeEventListener","cls","classNames","getPrefixCls","Fragment","div","dangerouslySetInnerHTML","__html","onClick","onWheel","PhotoSlider","images","onClose","index","onIndexChange","React","memo","isEqual"],"mappings":"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"}
1
+ {"version":3,"sources":["../../components/markdown/index.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { FC, MouseEvent, WheelEvent } from 'react';\nimport {\n getScrollTop,\n setClipboard,\n classNames,\n getPrefixCls,\n isEqual,\n isSvgElement,\n} from '../utils';\nimport { getMarkedImgList, markdownUtil } from './markdown-util';\nimport { PhotoSlider } from 'react-photo-view';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport 'react-photo-view/dist/react-photo-view.css';\nimport './index.global.less';\n\nexport type CodeBlockToolType = Array<'copy'>;\n\nexport interface MarkdownProps {\n className?: string;\n style?: React.CSSProperties;\n /** md内容 */\n text?: string;\n /** 开启图片查看器 */\n pictureViewer?: boolean;\n /** 显示代码块行号 */\n langLineNumber?: boolean;\n /** 开启代码块工具条 */\n tools?: CodeBlockToolType;\n /** 指定滚动的容器 */\n getAnchorContainer?: () => HTMLElement;\n /** 渲染KateX数学公式 */\n tex?: boolean;\n}\n\nexport type AnchorType = {\n anchor: HTMLAnchorElement;\n top: number;\n};\n\nconst toggleAnchor = (anchor: HTMLAnchorElement) => {\n anchor.offsetParent?.querySelectorAll('li')?.forEach((a) => {\n a.classList.remove('active');\n });\n anchor.parentElement?.classList.add('active');\n};\n\nconst Markdown: FC<MarkdownProps> = ({\n className,\n style,\n text,\n pictureViewer = true,\n langLineNumber = true,\n tools = ['copy'],\n getAnchorContainer = () => window,\n tex,\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [visible, setVisible] = useState(false);\n const [photoIndex, setPhotoIndex] = useState(0);\n const [htmlString, setHtmlString] = useState<string>('');\n const [imgList, setImgList] = useState<PhotoViewDataType[]>([]);\n const htmlStrRef = useRef<string>(htmlString);\n const anchors = useRef<AnchorType[]>([]);\n\n useMemo(() => {\n let str = htmlStrRef.current;\n\n if (text) {\n str = markdownUtil(text, {\n langLineNumber,\n langToolbar: tools,\n tex: tex,\n });\n } else {\n str = '';\n }\n if (str !== htmlStrRef.current) {\n Object.assign(htmlStrRef, {\n current: str,\n });\n setHtmlString(str);\n }\n }, [text, langLineNumber, tools, tex]);\n\n useEffect(() => {\n const timer: NodeJS.Timeout = setTimeout(() => {\n window.Prism.highlightAll();\n if (typeof timer === 'number') clearTimeout(timer);\n }, 0);\n\n if (pictureViewer) {\n setImgList(getMarkedImgList(htmlString));\n }\n return () => {\n if (typeof timer === 'number') {\n clearTimeout(timer);\n }\n };\n }, [htmlString, pictureViewer]);\n\n const handleAnchor = (e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n toggleAnchor(e.target as HTMLAnchorElement);\n ref.current\n ?.querySelector(decodeURIComponent((e.target as HTMLAnchorElement)?.hash))\n ?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n };\n\n useEffect(() => {\n const _anchors: AnchorType[] = [];\n\n ref.current?.querySelectorAll('.markdown-toc li a')?.forEach((e) => {\n const a = e as HTMLAnchorElement;\n const _el = ref.current?.querySelector(\n decodeURIComponent((a as HTMLAnchorElement)?.hash)\n ) as HTMLElement;\n\n _anchors.push({\n anchor: a,\n top: _el.offsetTop,\n });\n (e as HTMLAnchorElement).onclick = handleAnchor;\n });\n\n Object.assign(anchors, {\n current: _anchors,\n });\n }, [htmlString]);\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n const target = event.target as HTMLElement;\n\n if (isSvgElement(target)) return;\n if (target.tagName === 'IMG' && pictureViewer) {\n const arr = ref.current?.getElementsByTagName('img') || [];\n\n for (let i = 0, len = arr.length; i < len; i++) {\n if (arr[i] === target) {\n setPhotoIndex(i);\n setVisible(true);\n }\n }\n } else if (target.className.includes('toolbar-copy')) {\n const offsetParent = target.offsetParent as HTMLElement;\n\n if (!offsetParent?.hasAttribute('data-copy')) {\n setClipboard(offsetParent?.innerText, offsetParent);\n }\n }\n },\n [pictureViewer]\n );\n\n const handleWheel = useCallback((event: WheelEvent<HTMLDivElement>) => {\n const offsetParent = (event.target as HTMLElement).offsetParent;\n\n if (!offsetParent || offsetParent.tagName !== 'PRE') {\n return;\n }\n const rows = offsetParent?.getElementsByClassName('line-numbers-rows');\n\n if (rows?.length) {\n const codeTag: HTMLElement = offsetParent.getElementsByTagName('code')[0];\n\n if (codeTag.scrollHeight - codeTag.offsetHeight && rows[0].scrollTop !== codeTag.scrollTop) {\n // 可滚动高度大于0\n rows[0].scrollTop = codeTag.scrollTop;\n }\n }\n }, []);\n const handleScroll = useCallback((e: Event) => {\n if (!anchors.current.length) return;\n const el = e.target as HTMLElement;\n const top = getScrollTop(el);\n\n let anchor: HTMLAnchorElement | null = null;\n\n anchors.current.forEach((a) => {\n if (top - a.top > -el.offsetHeight / 2) anchor = a.anchor;\n });\n\n if (anchor) {\n toggleAnchor(anchor);\n }\n }, []);\n\n useEffect(() => {\n getAnchorContainer()?.addEventListener('scroll', handleScroll);\n return () => {\n getAnchorContainer()?.removeEventListener('scroll', handleScroll);\n };\n }, [getAnchorContainer, handleScroll]);\n\n const cls = useMemo(() => classNames([getPrefixCls('markdown-box'), className]), [className]);\n\n return (\n <Fragment>\n <div\n ref={ref}\n className={cls}\n style={style}\n dangerouslySetInnerHTML={{\n __html: htmlString,\n }}\n onClick={handleClick}\n onWheel={handleWheel}\n />\n {imgList.length ? (\n <PhotoSlider\n images={imgList}\n visible={visible}\n onClose={() => setVisible(false)}\n index={photoIndex}\n onIndexChange={setPhotoIndex}\n />\n ) : null}\n </Fragment>\n );\n};\n\nexport default React.memo(Markdown, isEqual);\n"],"names":["toggleAnchor","anchor","offsetParent","querySelectorAll","forEach","a","classList","remove","parentElement","add","Markdown","className","style","text","pictureViewer","langLineNumber","tools","getAnchorContainer","window","tex","ref","useRef","useState","visible","setVisible","photoIndex","setPhotoIndex","htmlString","setHtmlString","imgList","setImgList","htmlStrRef","anchors","useMemo","str","current","markdownUtil","langToolbar","Object","assign","useEffect","timer","setTimeout","Prism","highlightAll","clearTimeout","getMarkedImgList","handleAnchor","e","preventDefault","stopPropagation","target","querySelector","decodeURIComponent","hash","scrollIntoView","behavior","block","_anchors","_el","push","top","offsetTop","onclick","handleClick","useCallback","event","isSvgElement","tagName","arr","getElementsByTagName","i","len","length","includes","hasAttribute","setClipboard","innerText","handleWheel","rows","getElementsByClassName","codeTag","scrollHeight","offsetHeight","scrollTop","handleScroll","el","getScrollTop","addEventListener","removeEventListener","cls","classNames","getPrefixCls","Fragment","div","dangerouslySetInnerHTML","__html","onClick","onWheel","PhotoSlider","images","onClose","index","onIndexChange","React","memo","isEqual"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{markdownUtil:function(){return markdownUtil},getMarkedImgList:function(){return getMarkedImgList}});var _markedCompleted=_interopRequireDefault(require("marked-completed"));var _utils=require("../utils");var _prismJs=_interopRequireWildcard(require("./prism.js"));var _katex=_interopRequireDefault(require("katex"));require("katex/dist/katex.css");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}var renderer=new _markedCompleted.default.Renderer;var replacer=function(blockRegex,inlineRegex){return function(text){text=text.replace(blockRegex,function(_,expression){return _katex.default.renderToString(expression,{displayMode:true})});text=text.replace(inlineRegex,function(_,expression){return _katex.default.renderToString(expression,{displayMode:false,output:"html"})});return text}}(/\$\$([\s\S]+?)\$\$/g,/\$([^\n\s]+?)\$/g);["listitem","paragraph","tablecell","text"].forEach(function(type){var original=renderer[type];renderer[type]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}args[0]=replacer(args[0]);return original(args)}});_markedCompleted.default.setOptions({highlight:function highlight(code,lang){var LANGUAGE_REGEX=/^diff-([\w-]+)/i;if(_prismJs.languages[lang]){return _prismJs.highlight(code,_prismJs.languages[lang],lang)}else if(LANGUAGE_REGEX.test(lang)){_prismJs.languages[lang]=_prismJs.languages.diff;return _prismJs.highlight(code,_prismJs.languages[lang],lang)}return _prismJs.highlight(code,_prismJs.languages.markup,"markup")},headerPrefix:"# ",langLineNumber:true,langToolbar:["copy"],breaks:true,pedantic:false,smartLists:true,smartypants:true,xhtml:true});var markdownUtil=function(text){var option=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var tex=option.tex,opt=_objectWithoutProperties(option,["tex"]);if(tex){opt.renderer=renderer}return(0,_markedCompleted.default)(text,opt)};var getMarkedImgList=function(text){if(!text)return[];var imageList=text.match(/role=('|")dialog('|") src=('|")(.*?) alt=('|")(.*?)('|")/g);var imageArr=[];if(imageList){for(var i=0,len=imageList.length;i<len;i++){var params=new URLSearchParams((0,_utils.entityToString)(imageList[i].replace(/('|")/g,"").replace(/ src=/,"&src=").replace(/ alt=/,"&alt=")));imageArr.push({intro:params.get("alt")||""+i,src:params.get("src")||"",key:i})}}return imageArr};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{markdownUtil:function(){return markdownUtil},getMarkedImgList:function(){return getMarkedImgList}});var _markedCompleted=_interopRequireDefault(require("marked-completed"));var _utils=require("../utils");var _prismJs=_interopRequireWildcard(require("./prism.js"));var _katex=_interopRequireDefault(require("katex"));require("katex/dist/katex.css");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj.default=obj;if(cache){cache.set(obj,newObj)}return newObj}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key]}}return target}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key]}return target}var renderer=new _markedCompleted.default.Renderer;var replacer=function(blockRegex,inlineRegex){return function(text){text=text.replace(blockRegex,function(_,expression){return _katex.default.renderToString(expression,{throwOnError:false,displayMode:true})});text=text.replace(inlineRegex,function(_,expression){return _katex.default.renderToString(expression,{displayMode:false,output:"html"})});return text}}(/\$\$([\s\S]+?)\$\$/g,/\$([^\n\s]+?)\$/g);["listitem","paragraph","tablecell","text"].forEach(function(type){var original=renderer[type];renderer[type]=function(){for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key]}args[0]=replacer(args[0]);return original(args)}});_markedCompleted.default.setOptions({highlight:function highlight(code,lang){var LANGUAGE_REGEX=/^diff-([\w-]+)/i;if(_prismJs.languages[lang]){return _prismJs.highlight(code,_prismJs.languages[lang],lang)}else if(LANGUAGE_REGEX.test(lang)){_prismJs.languages[lang]=_prismJs.languages.diff;return _prismJs.highlight(code,_prismJs.languages[lang],lang)}return _prismJs.highlight(code,_prismJs.languages.markup,"markup")},headerPrefix:"# ",langLineNumber:true,langToolbar:["copy"],breaks:true,pedantic:false,smartLists:true,smartypants:true,xhtml:true});var markdownUtil=function(text){var option=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var tex=option.tex,opt=_objectWithoutProperties(option,["tex"]);if(tex){opt.renderer=renderer}return(0,_markedCompleted.default)(text,opt)};var getMarkedImgList=function(text){if(!text)return[];var imageList=text.match(/role=('|")dialog('|") src=('|")(.*?) alt=('|")(.*?)('|")/g);var imageArr=[];if(imageList){for(var i=0,len=imageList.length;i<len;i++){var params=new URLSearchParams((0,_utils.entityToString)(imageList[i].replace(/('|")/g,"").replace(/ src=/,"&src=").replace(/ alt=/,"&alt=")));imageArr.push({intro:params.get("alt")||""+i,src:params.get("src")||"",key:i})}}return imageArr};
2
2
  //# sourceMappingURL=markdown-util.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/markdown/markdown-util.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport marked from 'marked-completed';\nimport { entityToString } from '../utils';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport * as Prism from './prism.js';\nimport katex from 'katex';\nimport 'katex/dist/katex.css';\n\nconst renderer = new marked.Renderer();\n\nconst replacer = ((blockRegex, inlineRegex) => (text: string) => {\n text = text.replace(blockRegex, (_, expression) => {\n return katex.renderToString(expression, { displayMode: true });\n });\n\n text = text.replace(inlineRegex, (_, expression) => {\n return katex.renderToString(expression, { displayMode: false, output: 'html' });\n });\n\n return text;\n})(/\\$\\$([\\s\\S]+?)\\$\\$/g, /\\$([^\\n\\s]+?)\\$/g);\n\n['listitem', 'paragraph', 'tablecell', 'text'].forEach((type) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = renderer[type as keyof marked.Renderer] as any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (renderer[type as keyof marked.Renderer] as any) = (...args: string[]) => {\n args[0] = replacer(args[0]);\n return original(args);\n };\n});\n\nmarked.setOptions({\n highlight: function (code: string, lang: string) {\n const LANGUAGE_REGEX = /^diff-([\\w-]+)/i;\n\n if (Prism.languages[lang]) {\n return Prism.highlight(code, Prism.languages[lang], lang);\n } else if (LANGUAGE_REGEX.test(lang)) {\n Prism.languages[lang] = Prism.languages.diff;\n return Prism.highlight(code, Prism.languages[lang], lang);\n }\n\n return Prism.highlight(code, Prism.languages.markup, 'markup');\n },\n headerPrefix: '# ',\n langLineNumber: true,\n langToolbar: ['copy'],\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n});\n\n/**\n * Markdown to Html\n * @param {string} text Markdown文本\n * @param {MarkedOptions} option MarkedOptions\n * @returns {string} Html文本\n */\nexport const markdownUtil = (\n text: string,\n option: marked.MarkedOptions & { tex?: boolean } = {}\n): string => {\n const { tex, ...opt } = option;\n\n if (tex) {\n opt.renderer = renderer;\n }\n return marked(text, opt);\n};\n\n/**\n * 提取md图片src\n * @param {string} text HTML string\n * @returns {PhotoViewDataType[]} PhotoViewDataType\n */\nexport const getMarkedImgList = (text: string): PhotoViewDataType[] => {\n if (!text) return [];\n const imageList = text.match(/role=('|\")dialog('|\") src=('|\")(.*?) alt=('|\")(.*?)('|\")/g);\n const imageArr = [];\n\n if (imageList) {\n for (let i = 0, len = imageList.length; i < len; i++) {\n const params: URLSearchParams = new URLSearchParams(\n entityToString(\n imageList[i].replace(/('|\")/g, '').replace(/ src=/, '&src=').replace(/ alt=/, '&alt=')\n )\n );\n\n imageArr.push({\n intro: params.get('alt') || '' + i,\n src: params.get('src') || '',\n key: i,\n });\n }\n }\n return imageArr;\n};\n"],"names":["markdownUtil","getMarkedImgList","renderer","marked","Renderer","replacer","blockRegex","inlineRegex","text","replace","_","expression","katex","renderToString","displayMode","output","forEach","type","original","args","setOptions","highlight","code","lang","LANGUAGE_REGEX","Prism","languages","test","diff","markup","headerPrefix","langLineNumber","langToolbar","breaks","pedantic","smartLists","smartypants","xhtml","option","tex","opt","imageList","match","imageArr","i","len","length","params","URLSearchParams","entityToString","push","intro","get","src","key"],"mappings":"AACA,2MA6DaA,YAAY,mBAAZA,cAiBAC,gBAAgB,mBAAhBA,wEA9EM,wCACY,yDAER,yDACL,kBACX,kwDAEP,IAAMC,SAAW,IAAIC,wBAAM,CAACC,QAAQ,CAEpC,IAAMC,SAAW,AAAC,SAACC,WAAYC,oBAAgB,SAACC,KAAiB,CAC/DA,KAAOA,KAAKC,OAAO,CAACH,WAAY,SAACI,EAAGC,WAAe,CACjD,OAAOC,cAAK,CAACC,cAAc,CAACF,WAAY,CAAEG,YAAa,IAAI,AAAC,EAC9D,GAEAN,KAAOA,KAAKC,OAAO,CAACF,YAAa,SAACG,EAAGC,WAAe,CAClD,OAAOC,cAAK,CAACC,cAAc,CAACF,WAAY,CAAEG,YAAa,KAAK,CAAEC,OAAQ,MAAO,EAC/E,GAEA,OAAOP,IACT,GAAG,sBAAuB,oBAE1B,CAAC,WAAY,YAAa,YAAa,OAAO,CAACQ,OAAO,CAAC,SAACC,KAAS,CAE/D,IAAMC,SAAWhB,QAAQ,CAACe,KAA8B,AAGvDf,CAAAA,QAAQ,CAACe,KAA8B,CAAW,UAAuB,+BAAnBE,8CAAAA,2BACrDA,IAAI,CAAC,EAAE,CAAGd,SAASc,IAAI,CAAC,EAAE,EAC1B,OAAOD,SAASC,KAClB,CACF,GAEAhB,wBAAM,CAACiB,UAAU,CAAC,CAChBC,UAAW,SAAXA,UAAqBC,IAAY,CAAEC,IAAY,CAAE,CAC/C,IAAMC,eAAiB,kBAEvB,GAAIC,SAAMC,SAAS,CAACH,KAAK,CAAE,CACzB,OAAOE,SAAMJ,SAAS,CAACC,KAAMG,SAAMC,SAAS,CAACH,KAAK,CAAEA,KACtD,MAAO,GAAIC,eAAeG,IAAI,CAACJ,MAAO,CACpCE,SAAMC,SAAS,CAACH,KAAK,CAAGE,SAAMC,SAAS,CAACE,IAAI,CAC5C,OAAOH,SAAMJ,SAAS,CAACC,KAAMG,SAAMC,SAAS,CAACH,KAAK,CAAEA,KACtD,CAAC,AAED,OAAOE,SAAMJ,SAAS,CAACC,KAAMG,SAAMC,SAAS,CAACG,MAAM,CAAE,SACvD,EACAC,aAAc,KACdC,eAAgB,IAAI,CACpBC,YAAa,CAAC,OAAO,CACrBC,OAAQ,IAAI,CACZC,SAAU,KAAK,CACfC,WAAY,IAAI,CAChBC,YAAa,IAAI,CACjBC,MAAO,IAAI,AACb,GAQO,IAAMrC,aAAe,SAC1BQ,KAEW,KADX8B,8DAAmD,CAAC,EAEpD,IAAM,AAAEC,IAAgBD,OAAhBC,IAAQC,6BAAQF,QAAhBC,QAER,GAAIA,IAAK,CACPC,IAAItC,QAAQ,CAAGA,QACjB,CAAC,AACD,MAAOC,GAAAA,wBAAM,EAACK,KAAMgC,IACtB,EAOO,IAAMvC,iBAAmB,SAACO,KAAsC,CACrE,GAAI,CAACA,KAAM,MAAO,EAAE,AAAC,CACrB,IAAMiC,UAAYjC,KAAKkC,KAAK,CAAC,6DAC7B,IAAMC,SAAW,EAAE,CAEnB,GAAIF,UAAW,CACb,IAAK,IAAIG,EAAI,EAAGC,IAAMJ,UAAUK,MAAM,CAAEF,EAAIC,IAAKD,IAAK,CACpD,IAAMG,OAA0B,IAAIC,gBAClCC,GAAAA,qBAAc,EACZR,SAAS,CAACG,EAAE,CAACnC,OAAO,CAAC,SAAU,IAAIA,OAAO,CAAC,QAAS,SAASA,OAAO,CAAC,QAAS,WAIlFkC,SAASO,IAAI,CAAC,CACZC,MAAOJ,OAAOK,GAAG,CAAC,QAAU,GAAKR,EACjCS,IAAKN,OAAOK,GAAG,CAAC,QAAU,GAC1BE,IAAKV,CACP,EACF,CACF,CAAC,AACD,OAAOD,QACT"}
1
+ {"version":3,"sources":["../../components/markdown/markdown-util.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport marked from 'marked-completed';\nimport { entityToString } from '../utils';\nimport type { DataType as PhotoViewDataType } from 'react-photo-view/dist/types';\nimport * as Prism from './prism.js';\nimport katex from 'katex';\nimport 'katex/dist/katex.css';\n\nconst renderer = new marked.Renderer();\n\nconst replacer = ((blockRegex, inlineRegex) => (text: string) => {\n text = text.replace(blockRegex, (_, expression) => {\n return katex.renderToString(expression, { throwOnError: false, displayMode: true });\n });\n\n text = text.replace(inlineRegex, (_, expression) => {\n return katex.renderToString(expression, { displayMode: false, output: 'html' });\n });\n\n return text;\n})(/\\$\\$([\\s\\S]+?)\\$\\$/g, /\\$([^\\n\\s]+?)\\$/g);\n\n['listitem', 'paragraph', 'tablecell', 'text'].forEach((type) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = renderer[type as keyof marked.Renderer] as any;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (renderer[type as keyof marked.Renderer] as any) = (...args: string[]) => {\n args[0] = replacer(args[0]);\n return original(args);\n };\n});\n\nmarked.setOptions({\n highlight: function (code: string, lang: string) {\n const LANGUAGE_REGEX = /^diff-([\\w-]+)/i;\n\n if (Prism.languages[lang]) {\n return Prism.highlight(code, Prism.languages[lang], lang);\n } else if (LANGUAGE_REGEX.test(lang)) {\n Prism.languages[lang] = Prism.languages.diff;\n return Prism.highlight(code, Prism.languages[lang], lang);\n }\n\n return Prism.highlight(code, Prism.languages.markup, 'markup');\n },\n headerPrefix: '# ',\n langLineNumber: true,\n langToolbar: ['copy'],\n breaks: true,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n xhtml: true,\n});\n\n/**\n * Markdown to Html\n * @param {string} text Markdown文本\n * @param {MarkedOptions} option MarkedOptions\n * @returns {string} Html文本\n */\nexport const markdownUtil = (\n text: string,\n option: marked.MarkedOptions & { tex?: boolean } = {}\n): string => {\n const { tex, ...opt } = option;\n\n if (tex) {\n opt.renderer = renderer;\n }\n return marked(text, opt);\n};\n\n/**\n * 提取md图片src\n * @param {string} text HTML string\n * @returns {PhotoViewDataType[]} PhotoViewDataType\n */\nexport const getMarkedImgList = (text: string): PhotoViewDataType[] => {\n if (!text) return [];\n const imageList = text.match(/role=('|\")dialog('|\") src=('|\")(.*?) alt=('|\")(.*?)('|\")/g);\n const imageArr = [];\n\n if (imageList) {\n for (let i = 0, len = imageList.length; i < len; i++) {\n const params: URLSearchParams = new URLSearchParams(\n entityToString(\n imageList[i].replace(/('|\")/g, '').replace(/ src=/, '&src=').replace(/ alt=/, '&alt=')\n )\n );\n\n imageArr.push({\n intro: params.get('alt') || '' + i,\n src: params.get('src') || '',\n key: i,\n });\n }\n }\n return imageArr;\n};\n"],"names":["markdownUtil","getMarkedImgList","renderer","marked","Renderer","replacer","blockRegex","inlineRegex","text","replace","_","expression","katex","renderToString","throwOnError","displayMode","output","forEach","type","original","args","setOptions","highlight","code","lang","LANGUAGE_REGEX","Prism","languages","test","diff","markup","headerPrefix","langLineNumber","langToolbar","breaks","pedantic","smartLists","smartypants","xhtml","option","tex","opt","imageList","match","imageArr","i","len","length","params","URLSearchParams","entityToString","push","intro","get","src","key"],"mappings":"AACA,2MA6DaA,YAAY,mBAAZA,cAiBAC,gBAAgB,mBAAhBA,wEA9EM,wCACY,yDAER,yDACL,kBACX,kwDAEP,IAAMC,SAAW,IAAIC,wBAAM,CAACC,QAAQ,CAEpC,IAAMC,SAAW,AAAC,SAACC,WAAYC,oBAAgB,SAACC,KAAiB,CAC/DA,KAAOA,KAAKC,OAAO,CAACH,WAAY,SAACI,EAAGC,WAAe,CACjD,OAAOC,cAAK,CAACC,cAAc,CAACF,WAAY,CAAEG,aAAc,KAAK,CAAEC,YAAa,IAAI,AAAC,EACnF,GAEAP,KAAOA,KAAKC,OAAO,CAACF,YAAa,SAACG,EAAGC,WAAe,CAClD,OAAOC,cAAK,CAACC,cAAc,CAACF,WAAY,CAAEI,YAAa,KAAK,CAAEC,OAAQ,MAAO,EAC/E,GAEA,OAAOR,IACT,GAAG,sBAAuB,oBAE1B,CAAC,WAAY,YAAa,YAAa,OAAO,CAACS,OAAO,CAAC,SAACC,KAAS,CAE/D,IAAMC,SAAWjB,QAAQ,CAACgB,KAA8B,AAGvDhB,CAAAA,QAAQ,CAACgB,KAA8B,CAAW,UAAuB,+BAAnBE,8CAAAA,2BACrDA,IAAI,CAAC,EAAE,CAAGf,SAASe,IAAI,CAAC,EAAE,EAC1B,OAAOD,SAASC,KAClB,CACF,GAEAjB,wBAAM,CAACkB,UAAU,CAAC,CAChBC,UAAW,SAAXA,UAAqBC,IAAY,CAAEC,IAAY,CAAE,CAC/C,IAAMC,eAAiB,kBAEvB,GAAIC,SAAMC,SAAS,CAACH,KAAK,CAAE,CACzB,OAAOE,SAAMJ,SAAS,CAACC,KAAMG,SAAMC,SAAS,CAACH,KAAK,CAAEA,KACtD,MAAO,GAAIC,eAAeG,IAAI,CAACJ,MAAO,CACpCE,SAAMC,SAAS,CAACH,KAAK,CAAGE,SAAMC,SAAS,CAACE,IAAI,CAC5C,OAAOH,SAAMJ,SAAS,CAACC,KAAMG,SAAMC,SAAS,CAACH,KAAK,CAAEA,KACtD,CAAC,AAED,OAAOE,SAAMJ,SAAS,CAACC,KAAMG,SAAMC,SAAS,CAACG,MAAM,CAAE,SACvD,EACAC,aAAc,KACdC,eAAgB,IAAI,CACpBC,YAAa,CAAC,OAAO,CACrBC,OAAQ,IAAI,CACZC,SAAU,KAAK,CACfC,WAAY,IAAI,CAChBC,YAAa,IAAI,CACjBC,MAAO,IAAI,AACb,GAQO,IAAMtC,aAAe,SAC1BQ,KAEW,KADX+B,8DAAmD,CAAC,EAEpD,IAAM,AAAEC,IAAgBD,OAAhBC,IAAQC,6BAAQF,QAAhBC,QAER,GAAIA,IAAK,CACPC,IAAIvC,QAAQ,CAAGA,QACjB,CAAC,AACD,MAAOC,GAAAA,wBAAM,EAACK,KAAMiC,IACtB,EAOO,IAAMxC,iBAAmB,SAACO,KAAsC,CACrE,GAAI,CAACA,KAAM,MAAO,EAAE,AAAC,CACrB,IAAMkC,UAAYlC,KAAKmC,KAAK,CAAC,6DAC7B,IAAMC,SAAW,EAAE,CAEnB,GAAIF,UAAW,CACb,IAAK,IAAIG,EAAI,EAAGC,IAAMJ,UAAUK,MAAM,CAAEF,EAAIC,IAAKD,IAAK,CACpD,IAAMG,OAA0B,IAAIC,gBAClCC,GAAAA,qBAAc,EACZR,SAAS,CAACG,EAAE,CAACpC,OAAO,CAAC,SAAU,IAAIA,OAAO,CAAC,QAAS,SAASA,OAAO,CAAC,QAAS,WAIlFmC,SAASO,IAAI,CAAC,CACZC,MAAOJ,OAAOK,GAAG,CAAC,QAAU,GAAKR,EACjCS,IAAKN,OAAOK,GAAG,CAAC,QAAU,GAC1BE,IAAKV,CACP,EACF,CACF,CAAC,AACD,OAAOD,QACT"}
@@ -16,5 +16,7 @@ export declare function getType(target: any): string;
16
16
  export declare function isObject(target: unknown): target is object;
17
17
  export declare function isNull(target: unknown): target is null;
18
18
  export declare function isUndefined(target: unknown): target is undefined;
19
+ export declare function isString(target: unknown): target is string;
20
+ export declare function isSvgElement(target: unknown): target is SVGAElement;
19
21
  export declare function isFunction(target: any): target is (...args: any[]) => any;
20
22
  export declare function isEqual(val1: any, val2: any): boolean;
package/lib/utils/type.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{mapTag:function(){return mapTag},setTag:function(){return setTag},arrayTag:function(){return arrayTag},objectTag:function(){return objectTag},boolTag:function(){return boolTag},dateTag:function(){return dateTag},numberTag:function(){return numberTag},stringTag:function(){return stringTag},symbolTag:function(){return symbolTag},errorTag:function(){return errorTag},regexpTag:function(){return regexpTag},funcTag:function(){return funcTag},asyncTag:function(){return asyncTag},genTag:function(){return genTag},getType:function(){return getType},isObject:function(){return isObject},isNull:function(){return isNull},isUndefined:function(){return isUndefined},isFunction:function(){return isFunction},isEqual:function(){return isEqual}});var _isEqual=_interopRequireDefault(require("lodash/isEqual"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _typeof=function(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj};var mapTag="[object Map]";var setTag="[object Set]";var arrayTag="[object Array]";var objectTag="[object Object]";var boolTag="[object Boolean]";var dateTag="[object Date]";var numberTag="[object Number]";var stringTag="[object String]";var symbolTag="[object Symbol]";var errorTag="[object Error]";var regexpTag="[object RegExp]";var funcTag="[object Function]";var asyncTag="[object AsyncFunction]";var genTag="[object GeneratorFunction]";var proxyTag="[object Proxy]";function getType(target){return Object.prototype.toString.call(target)}function isObject(target){var type=typeof target==="undefined"?"undefined":_typeof(target);return target!==null&&(type=="object"||type=="function")}function isNull(target){return target===null}function isUndefined(target){return"undefined"===typeof target}function isFunction(target){if(!isObject(target))return false;var tagType=getType(target);return tagType==funcTag||tagType==asyncTag||tagType==genTag||tagType==proxyTag}function isEqual(val1,val2){return(0,_isEqual.default)(val1,val2)}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});function _export(target,all){for(var name in all)Object.defineProperty(target,name,{enumerable:true,get:all[name]})}_export(exports,{mapTag:function(){return mapTag},setTag:function(){return setTag},arrayTag:function(){return arrayTag},objectTag:function(){return objectTag},boolTag:function(){return boolTag},dateTag:function(){return dateTag},numberTag:function(){return numberTag},stringTag:function(){return stringTag},symbolTag:function(){return symbolTag},errorTag:function(){return errorTag},regexpTag:function(){return regexpTag},funcTag:function(){return funcTag},asyncTag:function(){return asyncTag},genTag:function(){return genTag},getType:function(){return getType},isObject:function(){return isObject},isNull:function(){return isNull},isUndefined:function(){return isUndefined},isString:function(){return isString},isSvgElement:function(){return isSvgElement},isFunction:function(){return isFunction},isEqual:function(){return isEqual}});var _isEqual=_interopRequireDefault(require("lodash/isEqual"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var _typeof=function(obj){"@swc/helpers - typeof";return obj&&typeof Symbol!=="undefined"&&obj.constructor===Symbol?"symbol":typeof obj};var mapTag="[object Map]";var setTag="[object Set]";var arrayTag="[object Array]";var objectTag="[object Object]";var boolTag="[object Boolean]";var dateTag="[object Date]";var numberTag="[object Number]";var stringTag="[object String]";var symbolTag="[object Symbol]";var errorTag="[object Error]";var regexpTag="[object RegExp]";var funcTag="[object Function]";var asyncTag="[object AsyncFunction]";var genTag="[object GeneratorFunction]";var svgPathTag="[object SVGPathElement]";var svgTag="[object SVGSVGElement]";var proxyTag="[object Proxy]";function getType(target){return Object.prototype.toString.call(target)}function isObject(target){var type=typeof target==="undefined"?"undefined":_typeof(target);return target!==null&&(type=="object"||type=="function")}function isNull(target){return target===null}function isUndefined(target){return"undefined"===typeof target}function isString(target){return"string"===typeof target&&getType(target)==stringTag}function isSvgElement(target){var tagType=getType(target);return svgTag===tagType||svgPathTag===tagType}function isFunction(target){if(!isObject(target))return false;var tagType=getType(target);return tagType==funcTag||tagType==asyncTag||tagType==genTag||tagType==proxyTag}function isEqual(val1,val2){return(0,_isEqual.default)(val1,val2)}
2
2
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../components/utils/type.ts"],"sourcesContent":["import isEquals from 'lodash/isEqual';\nexport const mapTag = '[object Map]';\nexport const setTag = '[object Set]';\nexport const arrayTag = '[object Array]';\nexport const objectTag = '[object Object]';\nexport const boolTag = '[object Boolean]';\nexport const dateTag = '[object Date]';\nexport const numberTag = '[object Number]';\nexport const stringTag = '[object String]';\nexport const symbolTag = '[object Symbol]';\nexport const errorTag = '[object Error]';\nexport const regexpTag = '[object RegExp]';\nexport const funcTag = '[object Function]';\nexport const asyncTag = '[object AsyncFunction]';\nexport const genTag = '[object GeneratorFunction]';\nconst proxyTag = '[object Proxy]';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getType(target: any): string {\n return Object.prototype.toString.call(target);\n}\nexport function isObject(target: unknown): target is object {\n const type = typeof target;\n\n return target !== null && (type == 'object' || type == 'function');\n}\n\nexport function isNull(target: unknown): target is null {\n return target === null;\n}\n\nexport function isUndefined(target: unknown): target is undefined {\n return 'undefined' === typeof target;\n}\n\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-explicit-any\nexport function isFunction(target: any): target is (...args: any[]) => any {\n if (!isObject(target)) return false;\n const tagType = getType(target);\n\n return tagType == funcTag || tagType == asyncTag || tagType == genTag || tagType == proxyTag;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isEqual(val1: any, val2: any) {\n return isEquals(val1, val2);\n}\n"],"names":["mapTag","setTag","arrayTag","objectTag","boolTag","dateTag","numberTag","stringTag","symbolTag","errorTag","regexpTag","funcTag","asyncTag","genTag","getType","isObject","isNull","isUndefined","isFunction","isEqual","proxyTag","target","Object","prototype","toString","call","type","tagType","val1","val2","isEquals"],"mappings":"AAAA,2MACaA,MAAM,mBAANA,QACAC,MAAM,mBAANA,QACAC,QAAQ,mBAARA,UACAC,SAAS,mBAATA,WACAC,OAAO,mBAAPA,SACAC,OAAO,mBAAPA,SACAC,SAAS,mBAATA,WACAC,SAAS,mBAATA,WACAC,SAAS,mBAATA,WACAC,QAAQ,mBAARA,UACAC,SAAS,mBAATA,WACAC,OAAO,mBAAPA,SACAC,QAAQ,mBAARA,UACAC,MAAM,mBAANA,QAIGC,OAAO,mBAAPA,SAGAC,QAAQ,mBAARA,UAMAC,MAAM,mBAANA,QAIAC,WAAW,mBAAXA,aAKAC,UAAU,mBAAVA,YAQAC,OAAO,mBAAPA,uDA5CK,8OACd,IAAMnB,OAAS,eACf,IAAMC,OAAS,eACf,IAAMC,SAAW,iBACjB,IAAMC,UAAY,kBAClB,IAAMC,QAAU,mBAChB,IAAMC,QAAU,gBAChB,IAAMC,UAAY,kBAClB,IAAMC,UAAY,kBAClB,IAAMC,UAAY,kBAClB,IAAMC,SAAW,iBACjB,IAAMC,UAAY,kBAClB,IAAMC,QAAU,oBAChB,IAAMC,SAAW,yBACjB,IAAMC,OAAS,6BACtB,IAAMO,SAAW,iBAGV,SAASN,QAAQO,MAAW,CAAU,CAC3C,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OACxC,CACO,SAASN,SAASM,MAAe,CAAoB,CAC1D,IAAMK,KAAO,OAAOL,iCAAP,QAAOA,OAAM,CAE1B,OAAOA,SAAW,IAAI,EAAKK,CAAAA,MAAQ,UAAYA,MAAQ,UAAS,CAClE,CAEO,SAASV,OAAOK,MAAe,CAAkB,CACtD,OAAOA,SAAW,IAAI,AACxB,CAEO,SAASJ,YAAYI,MAAe,CAAuB,CAChE,MAAO,cAAgB,OAAOA,MAChC,CAGO,SAASH,WAAWG,MAAW,CAAqC,CACzE,GAAI,CAACN,SAASM,QAAS,OAAO,KAAK,AAAC,CACpC,IAAMM,QAAUb,QAAQO,QAExB,OAAOM,SAAWhB,SAAWgB,SAAWf,UAAYe,SAAWd,QAAUc,SAAWP,QACtF,CAGO,SAASD,QAAQS,IAAS,CAAEC,IAAS,CAAE,CAC5C,MAAOC,GAAAA,gBAAQ,EAACF,KAAMC,KACxB"}
1
+ {"version":3,"sources":["../../components/utils/type.ts"],"sourcesContent":["import isEquals from 'lodash/isEqual';\nexport const mapTag = '[object Map]';\nexport const setTag = '[object Set]';\nexport const arrayTag = '[object Array]';\nexport const objectTag = '[object Object]';\nexport const boolTag = '[object Boolean]';\nexport const dateTag = '[object Date]';\nexport const numberTag = '[object Number]';\nexport const stringTag = '[object String]';\nexport const symbolTag = '[object Symbol]';\nexport const errorTag = '[object Error]';\nexport const regexpTag = '[object RegExp]';\nexport const funcTag = '[object Function]';\nexport const asyncTag = '[object AsyncFunction]';\nexport const genTag = '[object GeneratorFunction]';\nconst svgPathTag = '[object SVGPathElement]';\nconst svgTag = '[object SVGSVGElement]';\nconst proxyTag = '[object Proxy]';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getType(target: any): string {\n return Object.prototype.toString.call(target);\n}\nexport function isObject(target: unknown): target is object {\n const type = typeof target;\n\n return target !== null && (type == 'object' || type == 'function');\n}\n\nexport function isNull(target: unknown): target is null {\n return target === null;\n}\n\nexport function isUndefined(target: unknown): target is undefined {\n return 'undefined' === typeof target;\n}\n\nexport function isString(target: unknown): target is string {\n return 'string' === typeof target && getType(target) == stringTag;\n}\n\nexport function isSvgElement(target: unknown): target is SVGAElement {\n const tagType = getType(target);\n\n return svgTag === tagType || svgPathTag === tagType;\n}\n// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-explicit-any\nexport function isFunction(target: any): target is (...args: any[]) => any {\n if (!isObject(target)) return false;\n const tagType = getType(target);\n\n return tagType == funcTag || tagType == asyncTag || tagType == genTag || tagType == proxyTag;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isEqual(val1: any, val2: any) {\n return isEquals(val1, val2);\n}\n"],"names":["mapTag","setTag","arrayTag","objectTag","boolTag","dateTag","numberTag","stringTag","symbolTag","errorTag","regexpTag","funcTag","asyncTag","genTag","getType","isObject","isNull","isUndefined","isString","isSvgElement","isFunction","isEqual","svgPathTag","svgTag","proxyTag","target","Object","prototype","toString","call","type","tagType","val1","val2","isEquals"],"mappings":"AAAA,2MACaA,MAAM,mBAANA,QACAC,MAAM,mBAANA,QACAC,QAAQ,mBAARA,UACAC,SAAS,mBAATA,WACAC,OAAO,mBAAPA,SACAC,OAAO,mBAAPA,SACAC,SAAS,mBAATA,WACAC,SAAS,mBAATA,WACAC,SAAS,mBAATA,WACAC,QAAQ,mBAARA,UACAC,SAAS,mBAATA,WACAC,OAAO,mBAAPA,SACAC,QAAQ,mBAARA,UACAC,MAAM,mBAANA,QAMGC,OAAO,mBAAPA,SAGAC,QAAQ,mBAARA,UAMAC,MAAM,mBAANA,QAIAC,WAAW,mBAAXA,aAIAC,QAAQ,mBAARA,UAIAC,YAAY,mBAAZA,cAMAC,UAAU,mBAAVA,YAQAC,OAAO,mBAAPA,uDAvDK,8OACd,IAAMrB,OAAS,eACf,IAAMC,OAAS,eACf,IAAMC,SAAW,iBACjB,IAAMC,UAAY,kBAClB,IAAMC,QAAU,mBAChB,IAAMC,QAAU,gBAChB,IAAMC,UAAY,kBAClB,IAAMC,UAAY,kBAClB,IAAMC,UAAY,kBAClB,IAAMC,SAAW,iBACjB,IAAMC,UAAY,kBAClB,IAAMC,QAAU,oBAChB,IAAMC,SAAW,yBACjB,IAAMC,OAAS,6BACtB,IAAMS,WAAa,0BACnB,IAAMC,OAAS,yBACf,IAAMC,SAAW,iBAGV,SAASV,QAAQW,MAAW,CAAU,CAC3C,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OACxC,CACO,SAASV,SAASU,MAAe,CAAoB,CAC1D,IAAMK,KAAO,OAAOL,iCAAP,QAAOA,OAAM,CAE1B,OAAOA,SAAW,IAAI,EAAKK,CAAAA,MAAQ,UAAYA,MAAQ,UAAS,CAClE,CAEO,SAASd,OAAOS,MAAe,CAAkB,CACtD,OAAOA,SAAW,IAAI,AACxB,CAEO,SAASR,YAAYQ,MAAe,CAAuB,CAChE,MAAO,cAAgB,OAAOA,MAChC,CAEO,SAASP,SAASO,MAAe,CAAoB,CAC1D,MAAO,WAAa,OAAOA,QAAUX,QAAQW,SAAWlB,SAC1D,CAEO,SAASY,aAAaM,MAAe,CAAyB,CACnE,IAAMM,QAAUjB,QAAQW,QAExB,OAAOF,SAAWQ,SAAWT,aAAeS,OAC9C,CAEO,SAASX,WAAWK,MAAW,CAAqC,CACzE,GAAI,CAACV,SAASU,QAAS,OAAO,KAAK,AAAC,CACpC,IAAMM,QAAUjB,QAAQW,QAExB,OAAOM,SAAWpB,SAAWoB,SAAWnB,UAAYmB,SAAWlB,QAAUkB,SAAWP,QACtF,CAGO,SAASH,QAAQW,IAAS,CAAEC,IAAS,CAAE,CAC5C,MAAOC,GAAAA,gBAAQ,EAACF,KAAMC,KACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neko-ui",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Neko UI库",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -16,7 +16,7 @@
16
16
  "license": "MIT",
17
17
  "devDependencies": {
18
18
  "@moneko/cli": "^1.0.10",
19
- "@moneko/core": "^1.1.3",
19
+ "@moneko/core": "^1.1.4",
20
20
  "@moneko/mock": "^1.0.6",
21
21
  "@moneko/postcss": "^1.0.16",
22
22
  "@moneko/request": "^1.0.1",