neko-ui 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/back-top/index.global.less +2 -2
- package/es/back-top/index.js +1 -1
- package/es/back-top/index.js.map +1 -1
- package/es/button/index.d.ts +2 -0
- package/es/button/index.global.less +20 -15
- package/es/button/index.js +1 -1
- package/es/button/index.js.map +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/input/index.d.ts +9 -0
- package/es/input/index.global.less +58 -0
- package/es/input/index.js +2 -0
- package/es/input/index.js.map +1 -0
- package/es/markdown/index.js +1 -1
- package/es/markdown/index.js.map +1 -1
- package/es/markdown/markdown-util.js +1 -1
- package/es/markdown/markdown-util.js.map +1 -1
- package/es/marquee/index.global.less +41 -0
- package/es/tooltip/index.d.ts +7 -0
- package/es/tooltip/index.global.less +39 -0
- package/es/tooltip/index.js +2 -0
- package/es/tooltip/index.js.map +1 -0
- package/es/use-theme/index.js +1 -1
- package/es/use-theme/index.js.map +1 -1
- package/es/utils/document.d.ts +0 -10
- package/es/utils/document.js +1 -1
- package/es/utils/document.js.map +1 -1
- package/es/utils/download.d.ts +0 -1
- package/es/utils/download.js +1 -1
- package/es/utils/download.js.map +1 -1
- package/es/utils/index.d.ts +2 -2
- package/es/utils/index.js +1 -1
- package/es/utils/index.js.map +1 -1
- package/es/utils/type.d.ts +2 -0
- package/es/utils/type.js +1 -1
- package/es/utils/type.js.map +1 -1
- package/lib/avatar/index.global.css +0 -0
- package/lib/avatar/index.js +1 -1
- package/lib/back-top/index.global.css +0 -0
- package/lib/back-top/index.global.less +2 -2
- package/lib/back-top/index.js +1 -1
- package/lib/back-top/index.js.map +1 -1
- package/lib/button/index.d.ts +2 -0
- package/lib/button/index.global.css +0 -0
- package/lib/button/index.global.less +20 -15
- package/lib/button/index.js +1 -1
- package/lib/button/index.js.map +1 -1
- package/lib/capture-screen/index.global.css +0 -0
- package/lib/capture-screen/index.js +1 -1
- package/lib/cron-editor/index.global.css +0 -0
- package/lib/highlight-text/index.global.css +0 -0
- package/lib/highlight-text/index.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/input/index.d.ts +9 -0
- package/lib/input/index.global.css +0 -0
- package/lib/input/index.global.less +58 -0
- package/lib/input/index.js +2 -0
- package/lib/input/index.js.map +1 -0
- package/lib/markdown/copy.css +0 -0
- package/lib/markdown/icon.css +0 -0
- package/lib/markdown/index.global.css +0 -0
- package/lib/markdown/index.js +1 -1
- package/lib/markdown/index.js.map +1 -1
- package/lib/markdown/markdown-util.js +1 -1
- package/lib/markdown/markdown-util.js.map +1 -1
- package/lib/markdown/md.css +0 -0
- package/lib/markdown/pre-code.css +0 -0
- package/lib/markdown/pre-viewer.css +0 -0
- package/lib/markdown/prism.js +1 -1
- package/lib/markdown/vars.css +0 -0
- package/lib/marquee/index.global.css +0 -0
- package/lib/marquee/index.global.less +41 -0
- package/lib/tag/index.global.css +0 -0
- package/lib/tag/index.js +1 -1
- package/lib/tooltip/index.d.ts +7 -0
- package/lib/tooltip/index.global.css +0 -0
- package/lib/tooltip/index.global.less +39 -0
- package/lib/tooltip/index.js +2 -0
- package/lib/tooltip/index.js.map +1 -0
- package/lib/use-theme/index.js +1 -1
- package/lib/use-theme/index.js.map +1 -1
- package/lib/utils/classname.js +1 -1
- package/lib/utils/document.d.ts +0 -10
- package/lib/utils/document.js +1 -1
- package/lib/utils/document.js.map +1 -1
- package/lib/utils/download.d.ts +0 -1
- package/lib/utils/download.js +1 -1
- package/lib/utils/download.js.map +1 -1
- package/lib/utils/index.d.ts +2 -2
- package/lib/utils/index.js +1 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/type.d.ts +2 -0
- package/lib/utils/type.js +1 -1
- package/lib/utils/type.js.map +1 -1
- package/lib/variables.css +0 -0
- package/lib/wave-circle/index.global.css +0 -0
- package/lib/wave-circle/index.js +1 -1
- package/package.json +8 -4
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
4
|
--back-top-color: #fff;
|
|
5
|
-
--back-top-bg: var(--text-color-secondary
|
|
5
|
+
--back-top-bg: var(--text-color-secondary);
|
|
6
6
|
--back-top-hover-bg: var(--text-color, @text-color);
|
|
7
7
|
}
|
|
8
8
|
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
.@{prefix-cls}-out {
|
|
48
|
+
.@{prefix-cls}-back-top-out {
|
|
49
49
|
animation: back-top-fade-out 1s forwards;
|
|
50
50
|
}
|
|
51
51
|
|
package/es/back-top/index.js
CHANGED
|
@@ -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,{memo,useCallback,useEffect,useMemo,useRef,useState}from"react";import{classNames,getMaxZindex,getPrefixCls,getScrollTop,isEqual,isFunction}from"../utils";import"./index.global.less";var BackTop=function(_param){var _target=_param.target,target=_target===void 0?function(){return window}:_target,_visibilityHeight=_param.visibilityHeight,visibilityHeight=_visibilityHeight===void 0?400:_visibilityHeight,className=_param.className,props=_objectWithoutProperties(_param,["target","visibilityHeight","className"]);var ref=useRef(null);var ref1=_slicedToArray(useState(null),2),show=ref1[0],setShow=ref1[1];var
|
|
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,{memo,useCallback,useEffect,useMemo,useRef,useState}from"react";import ReactDOM from"react-dom";import{classNames,getMaxZindex,getPrefixCls,getScrollTop,isEqual,isFunction}from"../utils";import"./index.global.less";var BackTop=function(_param){var _target=_param.target,target=_target===void 0?function(){return window}:_target,_visibilityHeight=_param.visibilityHeight,visibilityHeight=_visibilityHeight===void 0?400:_visibilityHeight,className=_param.className,props=_objectWithoutProperties(_param,["target","visibilityHeight","className"]);var ref=useRef(null);var ref1=_slicedToArray(useState(null),2),show=ref1[0],setShow=ref1[1];var handleScrollY=useCallback(function(){var scrollTop=0;var offsetHeight=0;if(isFunction(target)){var ele=target();if(ele){scrollTop=getScrollTop(ele);offsetHeight=ele.offsetHeight}}var nextShow=scrollTop>offsetHeight/3||scrollTop>visibilityHeight;if(Boolean(show)!==nextShow){setShow(nextShow)}},[show,target,visibilityHeight]);var handleBackTop=useCallback(function(){var ref;(ref=target())===null||ref===void 0?void 0:ref.scrollTo({top:0,behavior:"smooth"})},[target]);useEffect(function(){if(show&&ref.current){ref.current.style.zIndex=getMaxZindex().toString()}},[show]);useEffect(function(){if(isFunction(target)){var ref;(ref=target())===null||ref===void 0?void 0:ref.addEventListener("scroll",handleScrollY,false)}return function(){if(isFunction(target)){var ref;(ref=target())===null||ref===void 0?void 0:ref.removeEventListener("scroll",handleScrollY,false)}}},[handleScrollY,target]);var cls=useMemo(function(){return classNames([getPrefixCls("back-top"),className,!show&&getPrefixCls("back-top-out")])},[className,show]);var exit=useCallback(function(){if(show===false){setShow(null)}},[show]);var el=useMemo(function(){return React.createElement("div",_extends({},props,{ref:ref,onAnimationEnd:exit,className:cls,onClick:handleBackTop}))},[cls,exit,handleBackTop,props]);return show===null?null:ReactDOM.createPortal(el,target())};export default memo(BackTop,isEqual);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/es/back-top/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../components/back-top/index.tsx"],"sourcesContent":["import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n classNames,\n getMaxZindex,\n getPrefixCls,\n getScrollTop,\n isEqual,\n isFunction,\n} from '../utils';\nimport './index.global.less';\n\nexport interface BackTopProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 设置需要监听其滚动事件的元素,值为一个返回对应 DOM 元素的函数 */\n target?: () => HTMLElement;\n /** 滚动高度达到此参数值才出现 BackTop */\n visibilityHeight?: number;\n}\n\nconst BackTop: React.FC<BackTopProps> = ({\n target = () => window as unknown as HTMLElement,\n visibilityHeight = 400,\n className,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [show, setShow] = useState<boolean | null>(null);\n const
|
|
1
|
+
{"version":3,"sources":["../../components/back-top/index.tsx"],"sourcesContent":["import React, { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n classNames,\n getMaxZindex,\n getPrefixCls,\n getScrollTop,\n isEqual,\n isFunction,\n} from '../utils';\nimport './index.global.less';\n\nexport interface BackTopProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 设置需要监听其滚动事件的元素,值为一个返回对应 DOM 元素的函数 */\n target?: () => HTMLElement;\n /** 滚动高度达到此参数值才出现 BackTop */\n visibilityHeight?: number;\n}\n\nconst BackTop: React.FC<BackTopProps> = ({\n target = () => window as unknown as HTMLElement,\n visibilityHeight = 400,\n className,\n ...props\n}) => {\n const ref = useRef<HTMLDivElement>(null);\n const [show, setShow] = useState<boolean | null>(null);\n const handleScrollY = useCallback(() => {\n let scrollTop: number | null = 0;\n let offsetHeight: number | null = 0;\n\n if (isFunction(target)) {\n const ele: HTMLElement = target() as HTMLElement;\n\n if (ele) {\n scrollTop = getScrollTop(ele);\n offsetHeight = ele.offsetHeight;\n }\n }\n const nextShow: boolean = scrollTop > offsetHeight / 3 || scrollTop > visibilityHeight;\n\n if (Boolean(show) !== nextShow) {\n setShow(nextShow);\n }\n }, [show, target, visibilityHeight]);\n const handleBackTop = useCallback(() => {\n target()?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }, [target]);\n\n useEffect(() => {\n if (show && ref.current) {\n ref.current.style.zIndex = getMaxZindex().toString();\n }\n }, [show]);\n useEffect(() => {\n if (isFunction(target)) {\n target()?.addEventListener('scroll', handleScrollY, false);\n }\n return () => {\n if (isFunction(target)) {\n target()?.removeEventListener('scroll', handleScrollY, false);\n }\n };\n }, [handleScrollY, target]);\n\n const cls = useMemo(\n () => classNames([getPrefixCls('back-top'), className, !show && getPrefixCls('back-top-out')]),\n [className, show]\n );\n const exit = useCallback(() => {\n if (show === false) {\n setShow(null);\n }\n }, [show]);\n const el = useMemo(\n () => (\n <div {...props} ref={ref} onAnimationEnd={exit} className={cls} onClick={handleBackTop} />\n ),\n [cls, exit, handleBackTop, props]\n );\n\n return show === null ? null : ReactDOM.createPortal(el, target());\n};\n\nexport default memo(BackTop, isEqual);\n"],"names":["React","memo","useCallback","useEffect","useMemo","useRef","useState","ReactDOM","classNames","getMaxZindex","getPrefixCls","getScrollTop","isEqual","isFunction","BackTop","target","window","visibilityHeight","className","props","ref","show","setShow","handleScrollY","scrollTop","offsetHeight","ele","nextShow","Boolean","handleBackTop","scrollTo","top","behavior","current","style","zIndex","toString","addEventListener","removeEventListener","cls","exit","el","div","onAnimationEnd","onClick","createPortal"],"mappings":"AAAA,mxEAAA,OAAOA,OAASC,IAAI,CAAEC,WAAW,CAAEC,SAAS,CAAEC,OAAO,CAAEC,MAAM,CAAEC,QAAQ,KAAQ,OAAQ,AACvF,QAAOC,aAAc,WAAY,AACjC,QACEC,UAAU,CACVC,YAAY,CACZC,YAAY,CACZC,YAAY,CACZC,OAAO,CACPC,UAAU,KACL,UAAW,AAClB,OAAO,qBAAsB,CAS7B,IAAMC,QAAkC,gBAKlC,oBAJJC,OAAAA,wBAAS,kBAAMC,yCACfC,iBAAAA,4CAAmB,sBACnBC,iBAAAA,UACGC,uCAHHJ,SACAE,mBACAC,cAGA,IAAME,IAAMf,OAAuB,IAAI,EACvC,IAAwBC,oBAAAA,SAAyB,IAAI,KAA9Ce,KAAiBf,QAAXgB,QAAWhB,QACxB,IAAMiB,cAAgBrB,YAAY,UAAM,CACtC,IAAIsB,UAA2B,EAC/B,IAAIC,aAA8B,EAElC,GAAIZ,WAAWE,QAAS,CACtB,IAAMW,IAAmBX,SAEzB,GAAIW,IAAK,CACPF,UAAYb,aAAae,KACzBD,aAAeC,IAAID,YAAY,AACjC,CAAC,AACH,CAAC,AACD,IAAME,SAAoBH,UAAYC,aAAe,GAAKD,UAAYP,iBAEtE,GAAIW,QAAQP,QAAUM,SAAU,CAC9BL,QAAQK,SACV,CAAC,AACH,EAAG,CAACN,KAAMN,OAAQE,iBAAiB,EACnC,IAAMY,cAAgB3B,YAAY,UAAM,KACtCa,GAAAA,EAAAA,IAAAA,kBAAAA,aAAAA,KAAAA,EAAAA,IAAUe,SAAS,CACjBC,IAAK,EACLC,SAAU,QACZ,EACF,EAAG,CAACjB,OAAO,EAEXZ,UAAU,UAAM,CACd,GAAIkB,MAAQD,IAAIa,OAAO,CAAE,CACvBb,IAAIa,OAAO,CAACC,KAAK,CAACC,MAAM,CAAG1B,eAAe2B,QAAQ,EACpD,CAAC,AACH,EAAG,CAACf,KAAK,EACTlB,UAAU,UAAM,CACd,GAAIU,WAAWE,QAAS,KACtBA,GAAAA,EAAAA,IAAAA,kBAAAA,aAAAA,KAAAA,EAAAA,IAAUsB,iBAAiB,SAAUd,cAAe,KAAK,CAC3D,CAAC,AACD,OAAO,UAAM,CACX,GAAIV,WAAWE,QAAS,KACtBA,GAAAA,EAAAA,IAAAA,kBAAAA,aAAAA,KAAAA,EAAAA,IAAUuB,oBAAoB,SAAUf,cAAe,KAAK,CAC9D,CAAC,AACH,CACF,EAAG,CAACA,cAAeR,OAAO,EAE1B,IAAMwB,IAAMnC,QACV,kBAAMI,WAAW,CAACE,aAAa,YAAaQ,UAAW,CAACG,MAAQX,aAAa,gBAAgB,GAC7F,CAACQ,UAAWG,KAAK,EAEnB,IAAMmB,KAAOtC,YAAY,UAAM,CAC7B,GAAImB,OAAS,KAAK,CAAE,CAClBC,QAAQ,IAAI,CACd,CAAC,AACH,EAAG,CAACD,KAAK,EACT,IAAMoB,GAAKrC,QACT,kBACE,oBAACsC,kBAAQvB,OAAOC,IAAKA,IAAKuB,eAAgBH,KAAMtB,UAAWqB,IAAKK,QAASf,kBAE3E,CAACU,IAAKC,KAAMX,cAAeV,MAAM,EAGnC,OAAOE,OAAS,IAAI,CAAG,IAAI,CAAGd,SAASsC,YAAY,CAACJ,GAAI1B,SAAS,AACnE,CAEA,gBAAed,KAAKa,QAASF,QAAS"}
|
package/es/button/index.d.ts
CHANGED
|
@@ -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,8 @@
|
|
|
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
|
+
outline-offset: 4px;
|
|
39
40
|
display: inline-block;
|
|
40
41
|
width: fit-content;
|
|
41
42
|
min-width: 22px;
|
|
@@ -64,10 +65,6 @@
|
|
|
64
65
|
border-color: var(--primary-color-active);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
|
-
&:last-child {
|
|
68
|
-
margin-right: 0;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
68
|
&-primary {
|
|
72
69
|
.status-btn(primary);
|
|
73
70
|
}
|
|
@@ -110,9 +107,9 @@
|
|
|
110
107
|
border-style: dashed;
|
|
111
108
|
}
|
|
112
109
|
|
|
113
|
-
&-float {
|
|
110
|
+
&-float, &-link {
|
|
114
111
|
background-color: transparent;
|
|
115
|
-
border-color: transparent
|
|
112
|
+
border-color: transparent;
|
|
116
113
|
|
|
117
114
|
&:hover,
|
|
118
115
|
&:focus {
|
|
@@ -124,6 +121,10 @@
|
|
|
124
121
|
}
|
|
125
122
|
}
|
|
126
123
|
|
|
124
|
+
&-link {
|
|
125
|
+
background-color: transparent !important;
|
|
126
|
+
}
|
|
127
|
+
|
|
127
128
|
&-circle {
|
|
128
129
|
min-width: 32px;
|
|
129
130
|
min-height: 32px;
|
|
@@ -134,7 +135,7 @@
|
|
|
134
135
|
border-radius: 50% !important;
|
|
135
136
|
text-align: center;
|
|
136
137
|
|
|
137
|
-
|
|
138
|
+
.@{prefix-cls}-btn-text {
|
|
138
139
|
display: block;
|
|
139
140
|
white-space: nowrap;
|
|
140
141
|
text-overflow: ellipsis;
|
|
@@ -146,8 +147,8 @@
|
|
|
146
147
|
cursor: not-allowed;
|
|
147
148
|
}
|
|
148
149
|
|
|
149
|
-
&-without,
|
|
150
|
-
&-infinite {
|
|
150
|
+
&-without:not(&-link),
|
|
151
|
+
&-infinite:not(&-link) {
|
|
151
152
|
position: relative;
|
|
152
153
|
|
|
153
154
|
&::before {
|
|
@@ -164,20 +165,24 @@
|
|
|
164
165
|
}
|
|
165
166
|
}
|
|
166
167
|
|
|
167
|
-
&-infinite::before {
|
|
168
|
+
&-infinite:not(&-link)::before {
|
|
168
169
|
opacity: 0.2;
|
|
169
170
|
animation: wave-effect 0.3s cubic-bezier(1, 1, 1, 0.99) infinite;
|
|
170
171
|
}
|
|
172
|
+
|
|
173
|
+
&:last-child {
|
|
174
|
+
margin-right: 0;
|
|
175
|
+
}
|
|
171
176
|
}
|
|
172
177
|
|
|
173
178
|
@keyframes wave-effect {
|
|
174
179
|
0% {
|
|
175
|
-
opacity:
|
|
180
|
+
opacity: 1;
|
|
176
181
|
box-shadow: 0 0 0 var(--wave-shadow-color);
|
|
177
182
|
}
|
|
178
183
|
|
|
179
184
|
25% {
|
|
180
|
-
opacity:
|
|
185
|
+
opacity: 1;
|
|
181
186
|
box-shadow: 0 0 0 4px var(--wave-shadow-color);
|
|
182
187
|
}
|
|
183
188
|
|
package/es/button/index.js
CHANGED
|
@@ -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,disabled=_param.disabled,onClick=_param.onClick,type=_param.type,props=_objectWithoutProperties(_param,["infinite","ghost","fill","circle","dashed","float","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"),className])},[type,infinite,ghost,fill,circle,dashed,float,animating,disabled,className]);var handleAnimationEnd=useCallback(function(){setAnimating(false)},[]);return React.createElement("div",_extends({},props,{className:cls,onClick:handleClick,onAnimationEnd:handleAnimationEnd,ref:ref}),React.createElement("span",
|
|
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",{className:getPrefixCls("btn-text")},children))};export default Button;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/es/button/index.js.map
CHANGED
|
@@ -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 disabled?: 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 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 className,\n ]),\n [type, infinite, ghost, fill, circle, dashed, float, animating, disabled, 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","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,
|
|
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 className={getPrefixCls('btn-text')}>{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,QAAKhB,UAAWV,aAAa,aAAcW,UAGlD,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,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './index.global.less';
|
|
3
|
+
export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'prefix'> {
|
|
4
|
+
className?: string;
|
|
5
|
+
suffix?: React.ReactNode;
|
|
6
|
+
prefix?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
declare const Input: React.FC<InputProps>;
|
|
9
|
+
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 Omit<React.InputHTMLAttributes<HTMLInputElement>, 'prefix'> {\n className?: string;\n suffix?: React.ReactNode;\n prefix?: 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,CAQ7B,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"}
|
package/es/markdown/index.js
CHANGED
|
@@ -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
|
|
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
|
package/es/markdown/index.js.map
CHANGED
|
@@ -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":"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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":["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,
|
|
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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
.wrap {
|
|
2
|
+
position: relative;
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 32px;
|
|
5
|
+
margin: 10% auto;
|
|
6
|
+
font-size: 0;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
|
|
10
|
+
.cont {
|
|
11
|
+
position: absolute;
|
|
12
|
+
top: 0;
|
|
13
|
+
left: 0;
|
|
14
|
+
width: 200%;
|
|
15
|
+
animation: 5s move infinite linear;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.txt {
|
|
19
|
+
display: inline-block;
|
|
20
|
+
width: 50%;
|
|
21
|
+
border-left: 1px solid #fff;
|
|
22
|
+
text-align: center;
|
|
23
|
+
margin-top: 5px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&:hover {
|
|
27
|
+
.cont {
|
|
28
|
+
animation-play-state: paused;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes move {
|
|
34
|
+
0% {
|
|
35
|
+
left: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
100% {
|
|
39
|
+
left: -100%;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.tooltip {
|
|
2
|
+
position: relative;
|
|
3
|
+
background: #000;
|
|
4
|
+
color: #fff;
|
|
5
|
+
padding: 8px 16px;
|
|
6
|
+
border-radius: 4px;
|
|
7
|
+
font-size: 14px;
|
|
8
|
+
filter:
|
|
9
|
+
drop-shadow(
|
|
10
|
+
1px 2px 8px hsla(220deg, 0%, 0%, 0.3)
|
|
11
|
+
)
|
|
12
|
+
drop-shadow(
|
|
13
|
+
2px 4px 16px hsla(220deg, 0%, 0%, 0.3)
|
|
14
|
+
)
|
|
15
|
+
drop-shadow(
|
|
16
|
+
4px 8px 32px hsla(220deg, 0%, 0%, 0.3)
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
&::before {
|
|
20
|
+
content: '';
|
|
21
|
+
position: absolute;
|
|
22
|
+
bottom: 0;
|
|
23
|
+
left: 0;
|
|
24
|
+
right: 0;
|
|
25
|
+
margin: auto;
|
|
26
|
+
width: 16px;
|
|
27
|
+
height: 10px;
|
|
28
|
+
background: inherit;
|
|
29
|
+
clip-path: polygon(
|
|
30
|
+
0% 0%,
|
|
31
|
+
50% 100%,
|
|
32
|
+
100% 0%
|
|
33
|
+
);
|
|
34
|
+
transform: translateY(
|
|
35
|
+
calc(+100% - 1px)
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
}
|
|
@@ -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,{memo,useMemo}from"react";import{classNames,getPrefixCls,isEqual}from"../utils";import"./index.global.less";var Tooltip=function(_param){var className=_param.className,children=_param.children,props=_objectWithoutProperties(_param,["className","children"]);var cls=useMemo(function(){return classNames([getPrefixCls("tooltip"),className])},[className]);return React.createElement("div",_extends({className:cls,role:"tooltip"},props),children)};export default memo(Tooltip,isEqual);
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../components/tooltip/index.tsx"],"sourcesContent":["import React, { memo, useMemo } from 'react';\nimport { classNames, getPrefixCls, isEqual } from '../utils';\nimport './index.global.less';\n\nexport interface TooltipProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\nconst Tooltip: React.FC<TooltipProps> = ({ className, children, ...props }) => {\n const cls = useMemo(() => classNames([getPrefixCls('tooltip'), className]), [className]);\n\n return (\n <div className={cls} role=\"tooltip\" {...props}>\n {children}\n </div>\n );\n};\n\nexport default memo(Tooltip, isEqual);\n"],"names":["React","memo","useMemo","classNames","getPrefixCls","isEqual","Tooltip","className","children","props","cls","div","role"],"mappings":"AAAA,w9BAAA,OAAOA,OAASC,IAAI,CAAEC,OAAO,KAAQ,OAAQ,AAC7C,QAASC,UAAU,CAAEC,YAAY,CAAEC,OAAO,KAAQ,UAAW,AAC7D,OAAO,qBAAsB,CAM7B,IAAMC,QAAkC,gBAAuC,KAApCC,iBAAAA,UAAWC,gBAAAA,SAAaC,uCAAxBF,YAAWC,aACpD,IAAME,IAAMR,QAAQ,kBAAMC,WAAW,CAACC,aAAa,WAAYG,UAAU,GAAG,CAACA,UAAU,EAEvF,OACE,oBAACI,gBAAIJ,UAAWG,IAAKE,KAAK,WAAcH,OACrCD,SAGP,CAEA,gBAAeP,KAAKK,QAASD,QAAS"}
|