@ioca/react 1.3.75 → 1.3.77
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/lib/cjs/components/affix/totop.js +1 -2
- package/lib/cjs/components/affix/totop.js.map +1 -1
- package/lib/cjs/components/button/button.js +4 -0
- package/lib/cjs/components/button/button.js.map +1 -1
- package/lib/cjs/components/button/index.js +0 -1
- package/lib/cjs/components/button/index.js.map +1 -1
- package/lib/cjs/components/editor/controls.js +1 -2
- package/lib/cjs/components/editor/controls.js.map +1 -1
- package/lib/cjs/components/image/image.js +2 -2
- package/lib/cjs/components/image/image.js.map +1 -1
- package/lib/cjs/components/modal/modal.js +1 -2
- package/lib/cjs/components/modal/modal.js.map +1 -1
- package/lib/cjs/components/picker/colors/footer.js +1 -2
- package/lib/cjs/components/picker/colors/footer.js.map +1 -1
- package/lib/cjs/components/popconfirm/popconfirm.js +1 -2
- package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/cjs/components/popup/popup.js +1 -1
- package/lib/cjs/components/popup/popup.js.map +1 -1
- package/lib/cjs/components/tabs/tabs.js +1 -2
- package/lib/cjs/components/tabs/tabs.js.map +1 -1
- package/lib/cjs/components/upload/upload.js +1 -2
- package/lib/cjs/components/upload/upload.js.map +1 -1
- package/lib/cjs/components/video/video.js +1 -2
- package/lib/cjs/components/video/video.js.map +1 -1
- package/lib/cjs/index.js +2 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/js/usePreview/content.js +1 -2
- package/lib/cjs/js/usePreview/content.js.map +1 -1
- package/lib/css/index.css +1 -1
- package/lib/css/index.css.map +1 -1
- package/lib/es/components/affix/totop.js +1 -2
- package/lib/es/components/affix/totop.js.map +1 -1
- package/lib/es/components/button/button.js +4 -0
- package/lib/es/components/button/button.js.map +1 -1
- package/lib/es/components/button/index.js +0 -1
- package/lib/es/components/button/index.js.map +1 -1
- package/lib/es/components/editor/controls.js +1 -2
- package/lib/es/components/editor/controls.js.map +1 -1
- package/lib/es/components/image/image.js +2 -2
- package/lib/es/components/image/image.js.map +1 -1
- package/lib/es/components/modal/modal.js +1 -2
- package/lib/es/components/modal/modal.js.map +1 -1
- package/lib/es/components/picker/colors/footer.js +1 -2
- package/lib/es/components/picker/colors/footer.js.map +1 -1
- package/lib/es/components/popconfirm/popconfirm.js +1 -2
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/es/components/popup/popup.js +1 -1
- package/lib/es/components/popup/popup.js.map +1 -1
- package/lib/es/components/tabs/tabs.js +1 -2
- package/lib/es/components/tabs/tabs.js.map +1 -1
- package/lib/es/components/upload/upload.js +1 -2
- package/lib/es/components/upload/upload.js.map +1 -1
- package/lib/es/components/video/video.js +1 -2
- package/lib/es/components/video/video.js.map +1 -1
- package/lib/es/index.js +1 -2
- package/lib/es/index.js.map +1 -1
- package/lib/es/js/usePreview/content.js +1 -2
- package/lib/es/js/usePreview/content.js.map +1 -1
- package/lib/index.js +54 -55
- package/package.json +1 -1
- package/lib/cjs/components/button/merged.js +0 -13
- package/lib/cjs/components/button/merged.js.map +0 -1
- package/lib/es/components/button/merged.js +0 -9
- package/lib/es/components/button/merged.js.map +0 -1
- package/lib/types/components/button/merged.d.ts +0 -5
|
@@ -5,9 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var material = require('@ricons/material');
|
|
7
7
|
var classNames = require('classnames');
|
|
8
|
-
require('../button/merged.js');
|
|
9
|
-
var icon = require('../icon/icon.js');
|
|
10
8
|
var button = require('../button/button.js');
|
|
9
|
+
var icon = require('../icon/icon.js');
|
|
11
10
|
|
|
12
11
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
13
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"totop.js","sources":["../../../../packages/components/affix/totop.tsx"],"sourcesContent":["import { SkipPreviousRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport { IAffix } from \"./type\";\n\nfunction ToTop(props: IAffix) {\n\tconst { style, className, onClick } = props;\n\n\treturn (\n\t\t<Button\n\t\t\tsquare\n\t\t\tclassName={classNames(\"i-affix-totop\", className)}\n\t\t\tstyle={{ ...style }}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t<Icon icon={<SkipPreviousRound />} rotate={90} />\n\t\t</Button>\n\t);\n}\n\nexport default ToTop;\n"],"names":["_jsx","Button","classNames","Icon","SkipPreviousRound"],"mappings":"
|
|
1
|
+
{"version":3,"file":"totop.js","sources":["../../../../packages/components/affix/totop.tsx"],"sourcesContent":["import { SkipPreviousRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport { IAffix } from \"./type\";\n\nfunction ToTop(props: IAffix) {\n\tconst { style, className, onClick } = props;\n\n\treturn (\n\t\t<Button\n\t\t\tsquare\n\t\t\tclassName={classNames(\"i-affix-totop\", className)}\n\t\t\tstyle={{ ...style }}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t<Icon icon={<SkipPreviousRound />} rotate={90} />\n\t\t</Button>\n\t);\n}\n\nexport default ToTop;\n"],"names":["_jsx","Button","classNames","Icon","SkipPreviousRound"],"mappings":";;;;;;;;;;;;;;AAMA,SAAS,KAAK,CAAC,KAAa,EAAA;IAC3B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK;AAE3C,IAAA,QACCA,cAAC,CAAAC,cAAM,IACN,MAAM,EAAA,IAAA,EACN,SAAS,EAAEC,mBAAU,CAAC,eAAe,EAAE,SAAS,CAAC,EACjD,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,EACnB,OAAO,EAAE,OAAO,YAEhBF,cAAC,CAAAG,YAAI,IAAC,IAAI,EAAEH,eAACI,0BAAiB,EAAA,EAAA,CAAG,EAAE,MAAM,EAAE,EAAE,EAAI,CAAA,EAAA,CACzC;AAEX;;;;"}
|
|
@@ -7,6 +7,8 @@ var classNames = require('classnames');
|
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var index = require('../../js/useRipple/index.js');
|
|
9
9
|
var loading = require('../loading/loading.js');
|
|
10
|
+
var group = require('./group.js');
|
|
11
|
+
var toggle = require('./toggle.js');
|
|
10
12
|
|
|
11
13
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
12
14
|
|
|
@@ -61,6 +63,8 @@ const Button = (props) => {
|
|
|
61
63
|
...restProps,
|
|
62
64
|
}, childNodes);
|
|
63
65
|
};
|
|
66
|
+
Button.Toggle = toggle.default;
|
|
67
|
+
Button.Group = group.default;
|
|
64
68
|
|
|
65
69
|
exports.default = Button;
|
|
66
70
|
//# sourceMappingURL=button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../../../packages/components/button/button.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { MouseEvent, createElement, useEffect } from \"react\";\nimport useRipple from \"../../js/useRipple\";\nimport Loading from \"../loading\";\nimport \"./index.css\";\nimport { CompositionButton, IButton } from \"./type\";\n\nconst formatClass = ({\n\toutline,\n\tflat,\n\tloading,\n\tdisabled,\n\tsize = \"normal\",\n\tblock,\n\tround,\n\tsquare,\n\tsecondary,\n\tclassName,\n}: IButton) =>\n\tclassnames(\"i-btn\", className, {\n\t\t\"i-btn-outline\": outline,\n\t\t\"i-btn-flat\": flat,\n\t\t\"i-btn-block\": block,\n\t\t\"i-btn-loading\": loading,\n\t\t\"i-btn-square\": square,\n\t\t\"i-btn-secondary\": secondary,\n\t\t[`i-btn-${size}`]: size !== \"normal\",\n\t\tround,\n\t\tdisabled,\n\t});\n\nconst Button = (props: IButton) => {\n\tconst {\n\t\tas: As = \"a\",\n\t\tref,\n\t\tchildren,\n\t\tclassName,\n\t\tloading,\n\t\tflat,\n\t\toutline,\n\t\tsquare,\n\t\tsecondary,\n\t\tsize,\n\t\tround,\n\t\thref,\n\t\tripple = true,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (loading || restProps.disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tonClick?.(e);\n\t};\n\n\tif (!children) return <></>;\n\n\tconst childNodes = [\n\t\tloading && <Loading key='loading' />,\n\t\tcreateElement(\n\t\t\t\"span\",\n\t\t\t{ key: \"content\", className: \"i-btn-content\" },\n\t\t\tchildren\n\t\t),\n\t];\n\n\tconst attrs = {\n\t\tclassName: formatClass(props),\n\t\t[\"data-ripple\"]:\n\t\t\tripple && !loading && !restProps.disabled ? \"\" : undefined,\n\t\tonClick: handleClick,\n\t};\n\n\tuseEffect(() => {\n\t\tripple && useRipple();\n\t}, [ripple]);\n\n\tif (typeof As === \"string\") {\n\t\treturn createElement(\n\t\t\tAs,\n\t\t\t{\n\t\t\t\tref,\n\t\t\t\thref,\n\t\t\t\t...attrs,\n\t\t\t\t...restProps,\n\t\t\t},\n\t\t\tchildNodes\n\t\t);\n\t}\n\n\treturn createElement(\n\t\tAs,\n\t\t{\n\t\t\tto: href || \"\",\n\t\t\t...attrs,\n\t\t\t...restProps,\n\t\t},\n\t\tchildNodes\n\t);\n};\n\nexport default Button as CompositionButton;\n"],"names":["classnames","loading","_jsx","Loading","createElement","useEffect","useRipple"],"mappings":"
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../../../packages/components/button/button.tsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { MouseEvent, createElement, useEffect } from \"react\";\nimport useRipple from \"../../js/useRipple\";\nimport Loading from \"../loading\";\nimport Group from \"./group\";\nimport \"./index.css\";\nimport Toggle from \"./toggle\";\nimport { CompositionButton, IButton } from \"./type\";\n\nconst formatClass = ({\n\toutline,\n\tflat,\n\tloading,\n\tdisabled,\n\tsize = \"normal\",\n\tblock,\n\tround,\n\tsquare,\n\tsecondary,\n\tclassName,\n}: IButton) =>\n\tclassnames(\"i-btn\", className, {\n\t\t\"i-btn-outline\": outline,\n\t\t\"i-btn-flat\": flat,\n\t\t\"i-btn-block\": block,\n\t\t\"i-btn-loading\": loading,\n\t\t\"i-btn-square\": square,\n\t\t\"i-btn-secondary\": secondary,\n\t\t[`i-btn-${size}`]: size !== \"normal\",\n\t\tround,\n\t\tdisabled,\n\t});\n\nconst Button = (props: IButton) => {\n\tconst {\n\t\tas: As = \"a\",\n\t\tref,\n\t\tchildren,\n\t\tclassName,\n\t\tloading,\n\t\tflat,\n\t\toutline,\n\t\tsquare,\n\t\tsecondary,\n\t\tsize,\n\t\tround,\n\t\thref,\n\t\tripple = true,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (loading || restProps.disabled) {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tonClick?.(e);\n\t};\n\n\tif (!children) return <></>;\n\n\tconst childNodes = [\n\t\tloading && <Loading key='loading' />,\n\t\tcreateElement(\n\t\t\t\"span\",\n\t\t\t{ key: \"content\", className: \"i-btn-content\" },\n\t\t\tchildren\n\t\t),\n\t];\n\n\tconst attrs = {\n\t\tclassName: formatClass(props),\n\t\t[\"data-ripple\"]:\n\t\t\tripple && !loading && !restProps.disabled ? \"\" : undefined,\n\t\tonClick: handleClick,\n\t};\n\n\tuseEffect(() => {\n\t\tripple && useRipple();\n\t}, [ripple]);\n\n\tif (typeof As === \"string\") {\n\t\treturn createElement(\n\t\t\tAs,\n\t\t\t{\n\t\t\t\tref,\n\t\t\t\thref,\n\t\t\t\t...attrs,\n\t\t\t\t...restProps,\n\t\t\t},\n\t\t\tchildNodes\n\t\t);\n\t}\n\n\treturn createElement(\n\t\tAs,\n\t\t{\n\t\t\tto: href || \"\",\n\t\t\t...attrs,\n\t\t\t...restProps,\n\t\t},\n\t\tchildNodes\n\t);\n};\n\nButton.Toggle = Toggle;\nButton.Group = Group;\n\nexport default Button as CompositionButton;\n"],"names":["classnames","loading","_jsx","Loading","createElement","useEffect","useRipple","Toggle","Group"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,WAAW,GAAG,CAAC,EACpB,OAAO,EACP,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,QAAQ,EACf,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,EACT,SAAS,GACA,KACTA,mBAAU,CAAC,OAAO,EAAE,SAAS,EAAE;AAC9B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,CAAC,SAAS,IAAI,CAAA,CAAE,GAAG,IAAI,KAAK,QAAQ;IACpC,KAAK;IACL,QAAQ;AACR,CAAA,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,KAAc,KAAI;AACjC,IAAA,MAAM,EACL,EAAE,EAAE,EAAE,GAAG,GAAG,EACZ,GAAG,EACH,QAAQ,EACR,SAAS,WACTC,SAAO,EACP,IAAI,EACJ,OAAO,EACP,MAAM,EACN,SAAS,EACT,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,GAAG,IAAI,EACb,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAG,CAAC,CAA0B,KAAI;AAClD,QAAA,IAAIA,SAAO,IAAI,SAAS,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;YAClB;;AAGD,QAAA,OAAO,GAAG,CAAC,CAAC;AACb,KAAC;AAED,IAAA,IAAI,CAAC,QAAQ;AAAE,QAAA,OAAOC,uCAAK;AAE3B,IAAA,MAAM,UAAU,GAAG;AAClB,QAAAD,SAAO,IAAIC,cAAA,CAACC,eAAO,EAAA,EAAA,EAAK,SAAS,CAAG;AACpC,QAAAC,mBAAa,CACZ,MAAM,EACN,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,EAC9C,QAAQ,CACR;KACD;AAED,IAAA,MAAM,KAAK,GAAG;AACb,QAAA,SAAS,EAAE,WAAW,CAAC,KAAK,CAAC;AAC7B,QAAA,CAAC,aAAa,GACb,MAAM,IAAI,CAACH,SAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,EAAE,GAAG,SAAS;AAC3D,QAAA,OAAO,EAAE,WAAW;KACpB;IAEDI,eAAS,CAAC,MAAK;QACd,MAAM,IAAIC,aAAS,EAAE;AACtB,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEZ,IAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;QAC3B,OAAOF,mBAAa,CACnB,EAAE,EACF;YACC,GAAG;YACH,IAAI;AACJ,YAAA,GAAG,KAAK;AACR,YAAA,GAAG,SAAS;SACZ,EACD,UAAU,CACV;;IAGF,OAAOA,mBAAa,CACnB,EAAE,EACF;QACC,EAAE,EAAE,IAAI,IAAI,EAAE;AACd,QAAA,GAAG,KAAK;AACR,QAAA,GAAG,SAAS;KACZ,EACD,UAAU,CACV;AACF;AAEA,MAAM,CAAC,MAAM,GAAGG,cAAM;AACtB,MAAM,CAAC,KAAK,GAAGC,aAAK;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -5,9 +5,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var material = require('@ricons/material');
|
|
7
7
|
var xss = require('xss');
|
|
8
|
-
require('../button/merged.js');
|
|
9
|
-
var icon = require('../icon/icon.js');
|
|
10
8
|
var button = require('../button/button.js');
|
|
9
|
+
var icon = require('../icon/icon.js');
|
|
11
10
|
|
|
12
11
|
const exec = (a, b, c) => {
|
|
13
12
|
if (typeof document === "undefined")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controls.js","sources":["../../../../packages/components/editor/controls.tsx"],"sourcesContent":["import {\n\tClearAllRound,\n\tFormatBoldRound,\n\tFormatItalicRound,\n\tFormatUnderlinedRound,\n\tRedoRound,\n\tStrikethroughSRound,\n\tUndoRound,\n} from \"@ricons/material\";\nimport { Fragment } from \"react/jsx-runtime\";\nimport { escapeAttrValue } from \"xss\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\n\nexport const exec = (a, b?, c?) => {\n\tif (typeof document === \"undefined\") return;\n\treturn document.execCommand(a, b, c);\n};\n\nexport const xssOptions = {\n\tonIgnoreTagAttr: function (tag, name, value) {\n\t\tif ([\"data-\", \"style\"].includes(name.substr(0, 5))) {\n\t\t\treturn name + '=\"' + escapeAttrValue(value) + '\"';\n\t\t}\n\t},\n};\n\nconst fnMap = {\n\tbold: {\n\t\ticon: <FormatBoldRound />,\n\t\tonClick: () => exec(\"bold\"),\n\t\ttip: \"粗体\",\n\t},\n\titalic: {\n\t\ticon: <FormatItalicRound />,\n\t\tonClick: () => exec(\"italic\"),\n\t\ttip: \"斜体\",\n\t},\n\tunderline: {\n\t\ticon: <FormatUnderlinedRound />,\n\t\tonClick: () => exec(\"underline\"),\n\t\ttip: \"下划线\",\n\t},\n\tstrike: {\n\t\ticon: <StrikethroughSRound />,\n\t\tonClick: () => exec(\"strikeThrough\"),\n\t\ttip: \"删除线\",\n\t},\n\tredo: {\n\t\ticon: <RedoRound />,\n\t\tonClick: () => exec(\"redo\"),\n\t\ttip: \"重做\",\n\t},\n\tundo: {\n\t\ticon: <UndoRound />,\n\t\tonClick: () => exec(\"undo\"),\n\t\ttip: \"撤销\",\n\t},\n\t// color: {\n\t// \ticon: <FormatColorTextRound />,\n\t// \tonClick: () => exec(\"foreColor\", false, \"\"),\n\t// },\n\t// backColor: {\n\t// \ticon: <FormatColorFillRound />,\n\t// \tonClick: () => exec(\"backColor\", false, \"\"),\n\t// },\n\tclear: {\n\t\ticon: <ClearAllRound />,\n\t\tonClick: () => exec(\"removeFormat\"),\n\t\ttip: \"清除格式\",\n\t},\n};\n\nconst aliasMap = {\n\tsimple: [\"undo\", \"redo\", \"bold\", \"italic\", \"underline\", \"strike\", \"clear\"],\n\tall: Object.keys(fnMap),\n};\n\nexport default function getControls(fns, options) {\n\tconst { controlBtnProps } = options;\n\tconst keys = typeof fns === \"string\" ? aliasMap[fns] : fns;\n\n\treturn keys.map((k) => {\n\t\tif (fnMap[k]) {\n\t\t\tconst { icon, render, tip, onClick } = fnMap[k];\n\n\t\t\tif (render) {\n\t\t\t\treturn render(options);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<Button key={k} {...controlBtnProps} onClick={onClick}>\n\t\t\t\t\t<Icon icon={icon} />\n\t\t\t\t\t{tip && <span className='i-editor-control-tip'>{tip}</span>}\n\t\t\t\t</Button>\n\t\t\t);\n\t\t}\n\t\treturn <Fragment key={k} />;\n\t});\n}\n"],"names":["escapeAttrValue","_jsx","FormatBoldRound","FormatItalicRound","FormatUnderlinedRound","StrikethroughSRound","RedoRound","UndoRound","ClearAllRound","icon","_jsxs","Button","Icon","Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"controls.js","sources":["../../../../packages/components/editor/controls.tsx"],"sourcesContent":["import {\n\tClearAllRound,\n\tFormatBoldRound,\n\tFormatItalicRound,\n\tFormatUnderlinedRound,\n\tRedoRound,\n\tStrikethroughSRound,\n\tUndoRound,\n} from \"@ricons/material\";\nimport { Fragment } from \"react/jsx-runtime\";\nimport { escapeAttrValue } from \"xss\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\n\nexport const exec = (a, b?, c?) => {\n\tif (typeof document === \"undefined\") return;\n\treturn document.execCommand(a, b, c);\n};\n\nexport const xssOptions = {\n\tonIgnoreTagAttr: function (tag, name, value) {\n\t\tif ([\"data-\", \"style\"].includes(name.substr(0, 5))) {\n\t\t\treturn name + '=\"' + escapeAttrValue(value) + '\"';\n\t\t}\n\t},\n};\n\nconst fnMap = {\n\tbold: {\n\t\ticon: <FormatBoldRound />,\n\t\tonClick: () => exec(\"bold\"),\n\t\ttip: \"粗体\",\n\t},\n\titalic: {\n\t\ticon: <FormatItalicRound />,\n\t\tonClick: () => exec(\"italic\"),\n\t\ttip: \"斜体\",\n\t},\n\tunderline: {\n\t\ticon: <FormatUnderlinedRound />,\n\t\tonClick: () => exec(\"underline\"),\n\t\ttip: \"下划线\",\n\t},\n\tstrike: {\n\t\ticon: <StrikethroughSRound />,\n\t\tonClick: () => exec(\"strikeThrough\"),\n\t\ttip: \"删除线\",\n\t},\n\tredo: {\n\t\ticon: <RedoRound />,\n\t\tonClick: () => exec(\"redo\"),\n\t\ttip: \"重做\",\n\t},\n\tundo: {\n\t\ticon: <UndoRound />,\n\t\tonClick: () => exec(\"undo\"),\n\t\ttip: \"撤销\",\n\t},\n\t// color: {\n\t// \ticon: <FormatColorTextRound />,\n\t// \tonClick: () => exec(\"foreColor\", false, \"\"),\n\t// },\n\t// backColor: {\n\t// \ticon: <FormatColorFillRound />,\n\t// \tonClick: () => exec(\"backColor\", false, \"\"),\n\t// },\n\tclear: {\n\t\ticon: <ClearAllRound />,\n\t\tonClick: () => exec(\"removeFormat\"),\n\t\ttip: \"清除格式\",\n\t},\n};\n\nconst aliasMap = {\n\tsimple: [\"undo\", \"redo\", \"bold\", \"italic\", \"underline\", \"strike\", \"clear\"],\n\tall: Object.keys(fnMap),\n};\n\nexport default function getControls(fns, options) {\n\tconst { controlBtnProps } = options;\n\tconst keys = typeof fns === \"string\" ? aliasMap[fns] : fns;\n\n\treturn keys.map((k) => {\n\t\tif (fnMap[k]) {\n\t\t\tconst { icon, render, tip, onClick } = fnMap[k];\n\n\t\t\tif (render) {\n\t\t\t\treturn render(options);\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<Button key={k} {...controlBtnProps} onClick={onClick}>\n\t\t\t\t\t<Icon icon={icon} />\n\t\t\t\t\t{tip && <span className='i-editor-control-tip'>{tip}</span>}\n\t\t\t\t</Button>\n\t\t\t);\n\t\t}\n\t\treturn <Fragment key={k} />;\n\t});\n}\n"],"names":["escapeAttrValue","_jsx","FormatBoldRound","FormatItalicRound","FormatUnderlinedRound","StrikethroughSRound","RedoRound","UndoRound","ClearAllRound","icon","_jsxs","Button","Icon","Fragment"],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ const Image = (props) => {
|
|
|
50
50
|
react.useEffect(() => {
|
|
51
51
|
if (!src)
|
|
52
52
|
return;
|
|
53
|
-
if (!ref.current?.complete) {
|
|
53
|
+
if (!ref.current?.complete && observe) {
|
|
54
54
|
state.status = "loading";
|
|
55
55
|
}
|
|
56
56
|
if (!lazyload || !ref.current || !observe)
|
|
@@ -64,7 +64,7 @@ const Image = (props) => {
|
|
|
64
64
|
return () => {
|
|
65
65
|
ref.current && unobserve(ref.current);
|
|
66
66
|
};
|
|
67
|
-
}, [src, observe]);
|
|
67
|
+
}, [src, observe, ref.current]);
|
|
68
68
|
restProps[lazyload ? "data-src" : "src"] = src;
|
|
69
69
|
const iSize = state.status === "loading" ? initSize : undefined;
|
|
70
70
|
return (jsxRuntime.jsx("div", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sources":["../../../../packages/components/image/image.tsx"],"sourcesContent":["import { HideImageTwotone } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { useEffect, useRef } from \"react\";\nimport { useIntersectionObserver } from \"../../js/hooks\";\nimport usePreview from \"../../js/usePreview\";\nimport Icon from \"../icon\";\nimport Loading from \"../loading\";\nimport \"./index.css\";\nimport List from \"./list\";\nimport type { CompositionImage, IImage } from \"./type\";\n\nconst Image = (props: IImage) => {\n\tconst {\n\t\tsrc,\n\t\tround,\n\t\tsize,\n\t\tinitSize,\n\t\tlazyload,\n\t\tfallback = (\n\t\t\t<Icon icon={<HideImageTwotone />} size='2em' className='color-5' />\n\t\t),\n\t\tfit,\n\t\tstyle,\n\t\tclassName,\n\t\tcover,\n\t\tcoverClass,\n\t\tusePreview: previewable,\n\t\tonLoad,\n\t\tonError,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive<{ status?: string }>({\n\t\tstatus: \"loading\",\n\t});\n\tconst ref = useRef<HTMLImageElement>(null);\n\tconst wh = fit ? \"100%\" : undefined;\n\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst preview = usePreview();\n\n\tconst handleError = (err) => {\n\t\tonError?.(err);\n\t\tstate.status = \"error\";\n\t};\n\n\tconst handleLoad = (e) => {\n\t\tonLoad?.(e);\n\t\tstate.status = undefined;\n\t};\n\n\tconst handleClick = (e) => {\n\t\tonClick?.(e);\n\n\t\tpreviewable &&\n\t\t\tsrc &&\n\t\t\tpreview({\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tsrc,\n\t\t\t\t\t\ttype: \"IMAGE\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!src) return;\n\n\t\tif (!ref.current?.complete) {\n\t\t\tstate.status = \"loading\";\n\t\t}\n\n\t\tif (!lazyload || !ref.current || !observe) return;\n\n\t\tobserve(ref.current, (tar: HTMLElement, visible: boolean) => {\n\t\t\tif (!visible) return;\n\n\t\t\ttar.setAttribute(\"src\", tar.dataset.src || \"\");\n\t\t\tunobserve(tar);\n\t\t});\n\n\t\treturn () => {\n\t\t\tref.current && unobserve(ref.current);\n\t\t};\n\t}, [src, observe]);\n\n\trestProps[lazyload ? \"data-src\" : \"src\"] = src;\n\tconst iSize = state.status === \"loading\" ? initSize : undefined;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: size ?? iSize,\n\t\t\t\theight: size ?? iSize,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(\"i-image\", className, {\n\t\t\t\trounded: round,\n\t\t\t\t[`i-image-${state.status}`]: state.status,\n\t\t\t})}\n\t\t>\n\t\t\t{state.status === \"error\" ? (\n\t\t\t\tfallback\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{src && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\tstyle={{ objectFit: fit, width: wh, height: wh }}\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tonLoad={handleLoad}\n\t\t\t\t\t\t\tonError={handleError}\n\t\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{src && state.status === \"loading\" && <Loading absolute />}\n\n\t\t\t\t\t{cover && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={classNames(\"i-image-cover\", coverClass)}\n\t\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{cover}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nImage.List = List;\n\nexport default Image as CompositionImage;\n"],"names":["_jsx","Icon","HideImageTwotone","useReactive","useRef","useIntersectionObserver","usePreview","useEffect","classNames","_jsxs","Loading","List"],"mappings":";;;;;;;;;;;;;;;;;;;AAYA,MAAM,KAAK,GAAG,CAAC,KAAa,KAAI;IAC/B,MAAM,EACL,GAAG,EACH,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,IACPA,cAAA,CAACC,YAAI,EAAA,EAAC,IAAI,EAAED,cAAC,CAAAE,yBAAgB,EAAG,EAAA,CAAA,EAAE,IAAI,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAG,CAAA,CACnE,EACD,GAAG,EACH,KAAK,EACL,SAAS,EACT,KAAK,EACL,UAAU,EACV,UAAU,EAAE,WAAW,EACvB,MAAM,EACN,OAAO,EACP,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGC,kBAAW,CAAsB;AAC9C,QAAA,MAAM,EAAE,SAAS;AACjB,KAAA,CAAC;AACF,IAAA,MAAM,GAAG,GAAGC,YAAM,CAAmB,IAAI,CAAC;IAC1C,MAAM,EAAE,GAAG,GAAG,GAAG,MAAM,GAAG,SAAS;IAEnC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAGC,6BAAuB,EAAE;AACxD,IAAA,MAAM,OAAO,GAAGC,aAAU,EAAE;AAE5B,IAAA,MAAM,WAAW,GAAG,CAAC,GAAG,KAAI;AAC3B,QAAA,OAAO,GAAG,GAAG,CAAC;AACd,QAAA,KAAK,CAAC,MAAM,GAAG,OAAO;AACvB,KAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAI;AACxB,QAAA,MAAM,GAAG,CAAC,CAAC;AACX,QAAA,KAAK,CAAC,MAAM,GAAG,SAAS;AACzB,KAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,KAAI;AACzB,QAAA,OAAO,GAAG,CAAC,CAAC;QAEZ,WAAW;YACV,GAAG;AACH,YAAA,OAAO,CAAC;AACP,gBAAA,KAAK,EAAE;AACN,oBAAA;wBACC,GAAG;AACH,wBAAA,IAAI,EAAE,OAAO;AACb,qBAAA;AACD,iBAAA;AACD,aAAA,CAAC;AACJ,KAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,IAAI,CAAC,GAAG;YAAE;
|
|
1
|
+
{"version":3,"file":"image.js","sources":["../../../../packages/components/image/image.tsx"],"sourcesContent":["import { HideImageTwotone } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { useEffect, useRef } from \"react\";\nimport { useIntersectionObserver } from \"../../js/hooks\";\nimport usePreview from \"../../js/usePreview\";\nimport Icon from \"../icon\";\nimport Loading from \"../loading\";\nimport \"./index.css\";\nimport List from \"./list\";\nimport type { CompositionImage, IImage } from \"./type\";\n\nconst Image = (props: IImage) => {\n\tconst {\n\t\tsrc,\n\t\tround,\n\t\tsize,\n\t\tinitSize,\n\t\tlazyload,\n\t\tfallback = (\n\t\t\t<Icon icon={<HideImageTwotone />} size='2em' className='color-5' />\n\t\t),\n\t\tfit,\n\t\tstyle,\n\t\tclassName,\n\t\tcover,\n\t\tcoverClass,\n\t\tusePreview: previewable,\n\t\tonLoad,\n\t\tonError,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive<{ status?: string }>({\n\t\tstatus: \"loading\",\n\t});\n\tconst ref = useRef<HTMLImageElement>(null);\n\tconst wh = fit ? \"100%\" : undefined;\n\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst preview = usePreview();\n\n\tconst handleError = (err) => {\n\t\tonError?.(err);\n\t\tstate.status = \"error\";\n\t};\n\n\tconst handleLoad = (e) => {\n\t\tonLoad?.(e);\n\t\tstate.status = undefined;\n\t};\n\n\tconst handleClick = (e) => {\n\t\tonClick?.(e);\n\n\t\tpreviewable &&\n\t\t\tsrc &&\n\t\t\tpreview({\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tsrc,\n\t\t\t\t\t\ttype: \"IMAGE\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!src) return;\n\n\t\tif (!ref.current?.complete && observe) {\n\t\t\tstate.status = \"loading\";\n\t\t}\n\n\t\tif (!lazyload || !ref.current || !observe) return;\n\n\t\tobserve(ref.current, (tar: HTMLElement, visible: boolean) => {\n\t\t\tif (!visible) return;\n\n\t\t\ttar.setAttribute(\"src\", tar.dataset.src || \"\");\n\t\t\tunobserve(tar);\n\t\t});\n\n\t\treturn () => {\n\t\t\tref.current && unobserve(ref.current);\n\t\t};\n\t}, [src, observe, ref.current]);\n\n\trestProps[lazyload ? \"data-src\" : \"src\"] = src;\n\tconst iSize = state.status === \"loading\" ? initSize : undefined;\n\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\twidth: size ?? iSize,\n\t\t\t\theight: size ?? iSize,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(\"i-image\", className, {\n\t\t\t\trounded: round,\n\t\t\t\t[`i-image-${state.status}`]: state.status,\n\t\t\t})}\n\t\t>\n\t\t\t{state.status === \"error\" ? (\n\t\t\t\tfallback\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{src && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\tstyle={{ objectFit: fit, width: wh, height: wh }}\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tonLoad={handleLoad}\n\t\t\t\t\t\t\tonError={handleError}\n\t\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{src && state.status === \"loading\" && <Loading absolute />}\n\n\t\t\t\t\t{cover && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={classNames(\"i-image-cover\", coverClass)}\n\t\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{cover}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nImage.List = List;\n\nexport default Image as CompositionImage;\n"],"names":["_jsx","Icon","HideImageTwotone","useReactive","useRef","useIntersectionObserver","usePreview","useEffect","classNames","_jsxs","Loading","List"],"mappings":"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"}
|
|
@@ -7,10 +7,9 @@ var classNames = require('classnames');
|
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var reactDom = require('react-dom');
|
|
9
9
|
var hooks = require('../../js/hooks.js');
|
|
10
|
-
require('../button/
|
|
10
|
+
var button = require('../button/button.js');
|
|
11
11
|
var helpericon = require('../utils/helpericon/helpericon.js');
|
|
12
12
|
var useModal = require('./useModal.js');
|
|
13
|
-
var button = require('../button/button.js');
|
|
14
13
|
|
|
15
14
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
16
15
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sources":["../../../../packages/components/modal/modal.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useKeydown } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { CompositionModal, IModal, IModalContent } from \"./type\";\nimport useModal from \"./useModal\";\n\nfunction DefaultContent(props: IModalContent) {\n\tconst {\n\t\ttitle,\n\t\tfooter,\n\t\thideCloseButton,\n\t\tfooterLeft,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tchildren,\n\t\tonOk,\n\t\tonClose,\n\t} = props;\n\tconst showHeader = title || !hideCloseButton;\n\n\tconst handleOk = async () => {\n\t\tconst ret = await onOk?.();\n\n\t\tif (ret) return;\n\n\t\tonClose?.();\n\t};\n\n\tconst renderFooter = useMemo(() => {\n\t\tif (footer || footer === null) return footer;\n\n\t\tconst propsOk = Object.assign(\n\t\t\t{\n\t\t\t\tchildren: \"确定\",\n\t\t\t\tonClick: handleOk,\n\t\t\t},\n\t\t\tokButtonProps\n\t\t);\n\t\tconst propsCancel = Object.assign(\n\t\t\t{\n\t\t\t\tsecondary: true,\n\t\t\t\tchildren: \"关闭\",\n\t\t\t\tonClick: onClose,\n\t\t\t},\n\t\t\tcancelButtonProps\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{footerLeft}\n\t\t\t\t<Button {...propsOk} />\n\t\t\t\t<Button {...propsCancel} />\n\t\t\t</>\n\t\t);\n\t}, [footer, okButtonProps, cancelButtonProps]);\n\n\treturn (\n\t\t<>\n\t\t\t{showHeader && (\n\t\t\t\t<header className='i-modal-header'>\n\t\t\t\t\t{title && <b>{title}</b>}\n\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive={!hideCloseButton}\n\t\t\t\t\t\tclassName='i-modal-close'\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</header>\n\t\t\t)}\n\n\t\t\t<div className='i-modal-content'>{children}</div>\n\n\t\t\t<footer className='i-modal-footer'>{renderFooter}</footer>\n\t\t</>\n\t);\n}\n\nfunction Modal(props: IModal) {\n\tconst {\n\t\tvisible,\n\t\ttitle,\n\t\tfooter,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tclosable = true,\n\t\thideBackdrop,\n\t\tbackdropClosable = true,\n\t\thideCloseButton,\n\t\tdisableEsc,\n\t\twidth,\n\t\theight,\n\t\tcustomized,\n\t\tfixed,\n\t\thideShadow,\n\t\tchildren,\n\t\tstyle,\n\t\tclassName,\n\t\tkeepDOM,\n\t\tfooterLeft,\n\t\tonClick,\n\t\tonVisibleChange,\n\t\tonClose,\n\t\tonOk,\n\t\t...restProps\n\t} = props;\n\tconst [show, setShow] = useState(visible);\n\tconst [active, setActive] = useState(false);\n\tconst [bounced, setBounced] = useState(false);\n\tconst toggable = useRef(true);\n\n\tconst handleShow = () => {\n\t\tif (!toggable.current) return;\n\n\t\t(!keepDOM || !show) && setShow(true);\n\t\ttoggable.current = false;\n\t\tsetTimeout(() => {\n\t\t\tsetActive(true);\n\t\t\tonVisibleChange?.(true);\n\t\t\ttoggable.current = true;\n\t\t}, 24);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!toggable.current) return;\n\t\ttoggable.current = false;\n\n\t\tif (!closable) {\n\t\t\tsetBounced(true);\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetBounced(false);\n\t\t\t\ttoggable.current = true;\n\t\t\t}, 400);\n\t\t\treturn;\n\t\t}\n\n\t\tsetActive(false);\n\t\tsetTimeout(() => {\n\t\t\t!keepDOM && setShow(false);\n\t\t\ttoggable.current = true;\n\t\t\tonVisibleChange?.(false);\n\t\t\tonClose?.();\n\t\t}, 240);\n\t};\n\n\tconst handleBackdropClick = function () {\n\t\tbackdropClosable && handleHide();\n\t};\n\n\tuseKeydown(\n\t\t(e) => {\n\t\t\tif (e.code !== \"Escape\" || !visible) return;\n\t\t\thandleHide();\n\t\t},\n\t\t{ disabled: disableEsc }\n\t);\n\n\tuseEffect(() => {\n\t\tvisible ? handleShow() : handleHide();\n\t}, [visible]);\n\n\tconst handleClick = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tdocument.documentElement.click();\n\t};\n\n\tif (!show) return null;\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-modal-container\",\n\t\t\t\t{\n\t\t\t\t\t\"i-modal-backdrop\": !hideBackdrop,\n\t\t\t\t\t\"i-modal-customized\": customized,\n\t\t\t\t\t\"i-modal-active\": active,\n\t\t\t\t\tfixed,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\tonClick={handleBackdropClick}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-modal\", {\n\t\t\t\t\tbounced,\n\t\t\t\t\tshadow: !hideShadow,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\thandleClick();\n\t\t\t\t\tonClick?.(e);\n\t\t\t\t}}\n\t\t\t\t{...restProps}\n\t\t\t>\n\t\t\t\t{customized && children}\n\n\t\t\t\t{!customized && (\n\t\t\t\t\t<DefaultContent\n\t\t\t\t\t\ttitle={title}\n\t\t\t\t\t\thideCloseButton={hideCloseButton}\n\t\t\t\t\t\tfooter={footer}\n\t\t\t\t\t\tokButtonProps={okButtonProps}\n\t\t\t\t\t\tcancelButtonProps={cancelButtonProps}\n\t\t\t\t\t\tchildren={children}\n\t\t\t\t\t\tfooterLeft={footerLeft}\n\t\t\t\t\t\tonOk={onOk}\n\t\t\t\t\t\tonClose={handleHide}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument?.body ?? null\n\t);\n}\n\nModal.useModal = useModal;\n\nexport default Modal as CompositionModal;\n"],"names":["useMemo","_jsxs","_Fragment","_jsx","Button","Helpericon","useState","useRef","useKeydown","useEffect","createPortal","classNames","useModal"],"mappings":"
|
|
1
|
+
{"version":3,"file":"modal.js","sources":["../../../../packages/components/modal/modal.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useKeydown } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport { CompositionModal, IModal, IModalContent } from \"./type\";\nimport useModal from \"./useModal\";\n\nfunction DefaultContent(props: IModalContent) {\n\tconst {\n\t\ttitle,\n\t\tfooter,\n\t\thideCloseButton,\n\t\tfooterLeft,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tchildren,\n\t\tonOk,\n\t\tonClose,\n\t} = props;\n\tconst showHeader = title || !hideCloseButton;\n\n\tconst handleOk = async () => {\n\t\tconst ret = await onOk?.();\n\n\t\tif (ret) return;\n\n\t\tonClose?.();\n\t};\n\n\tconst renderFooter = useMemo(() => {\n\t\tif (footer || footer === null) return footer;\n\n\t\tconst propsOk = Object.assign(\n\t\t\t{\n\t\t\t\tchildren: \"确定\",\n\t\t\t\tonClick: handleOk,\n\t\t\t},\n\t\t\tokButtonProps\n\t\t);\n\t\tconst propsCancel = Object.assign(\n\t\t\t{\n\t\t\t\tsecondary: true,\n\t\t\t\tchildren: \"关闭\",\n\t\t\t\tonClick: onClose,\n\t\t\t},\n\t\t\tcancelButtonProps\n\t\t);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{footerLeft}\n\t\t\t\t<Button {...propsOk} />\n\t\t\t\t<Button {...propsCancel} />\n\t\t\t</>\n\t\t);\n\t}, [footer, okButtonProps, cancelButtonProps]);\n\n\treturn (\n\t\t<>\n\t\t\t{showHeader && (\n\t\t\t\t<header className='i-modal-header'>\n\t\t\t\t\t{title && <b>{title}</b>}\n\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive={!hideCloseButton}\n\t\t\t\t\t\tclassName='i-modal-close'\n\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t/>\n\t\t\t\t</header>\n\t\t\t)}\n\n\t\t\t<div className='i-modal-content'>{children}</div>\n\n\t\t\t<footer className='i-modal-footer'>{renderFooter}</footer>\n\t\t</>\n\t);\n}\n\nfunction Modal(props: IModal) {\n\tconst {\n\t\tvisible,\n\t\ttitle,\n\t\tfooter,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tclosable = true,\n\t\thideBackdrop,\n\t\tbackdropClosable = true,\n\t\thideCloseButton,\n\t\tdisableEsc,\n\t\twidth,\n\t\theight,\n\t\tcustomized,\n\t\tfixed,\n\t\thideShadow,\n\t\tchildren,\n\t\tstyle,\n\t\tclassName,\n\t\tkeepDOM,\n\t\tfooterLeft,\n\t\tonClick,\n\t\tonVisibleChange,\n\t\tonClose,\n\t\tonOk,\n\t\t...restProps\n\t} = props;\n\tconst [show, setShow] = useState(visible);\n\tconst [active, setActive] = useState(false);\n\tconst [bounced, setBounced] = useState(false);\n\tconst toggable = useRef(true);\n\n\tconst handleShow = () => {\n\t\tif (!toggable.current) return;\n\n\t\t(!keepDOM || !show) && setShow(true);\n\t\ttoggable.current = false;\n\t\tsetTimeout(() => {\n\t\t\tsetActive(true);\n\t\t\tonVisibleChange?.(true);\n\t\t\ttoggable.current = true;\n\t\t}, 24);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!toggable.current) return;\n\t\ttoggable.current = false;\n\n\t\tif (!closable) {\n\t\t\tsetBounced(true);\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetBounced(false);\n\t\t\t\ttoggable.current = true;\n\t\t\t}, 400);\n\t\t\treturn;\n\t\t}\n\n\t\tsetActive(false);\n\t\tsetTimeout(() => {\n\t\t\t!keepDOM && setShow(false);\n\t\t\ttoggable.current = true;\n\t\t\tonVisibleChange?.(false);\n\t\t\tonClose?.();\n\t\t}, 240);\n\t};\n\n\tconst handleBackdropClick = function () {\n\t\tbackdropClosable && handleHide();\n\t};\n\n\tuseKeydown(\n\t\t(e) => {\n\t\t\tif (e.code !== \"Escape\" || !visible) return;\n\t\t\thandleHide();\n\t\t},\n\t\t{ disabled: disableEsc }\n\t);\n\n\tuseEffect(() => {\n\t\tvisible ? handleShow() : handleHide();\n\t}, [visible]);\n\n\tconst handleClick = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tdocument.documentElement.click();\n\t};\n\n\tif (!show) return null;\n\n\treturn createPortal(\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-modal-container\",\n\t\t\t\t{\n\t\t\t\t\t\"i-modal-backdrop\": !hideBackdrop,\n\t\t\t\t\t\"i-modal-customized\": customized,\n\t\t\t\t\t\"i-modal-active\": active,\n\t\t\t\t\tfixed,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\tonClick={handleBackdropClick}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-modal\", {\n\t\t\t\t\tbounced,\n\t\t\t\t\tshadow: !hideShadow,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t}}\n\t\t\t\tonClick={(e) => {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\thandleClick();\n\t\t\t\t\tonClick?.(e);\n\t\t\t\t}}\n\t\t\t\t{...restProps}\n\t\t\t>\n\t\t\t\t{customized && children}\n\n\t\t\t\t{!customized && (\n\t\t\t\t\t<DefaultContent\n\t\t\t\t\t\ttitle={title}\n\t\t\t\t\t\thideCloseButton={hideCloseButton}\n\t\t\t\t\t\tfooter={footer}\n\t\t\t\t\t\tokButtonProps={okButtonProps}\n\t\t\t\t\t\tcancelButtonProps={cancelButtonProps}\n\t\t\t\t\t\tchildren={children}\n\t\t\t\t\t\tfooterLeft={footerLeft}\n\t\t\t\t\t\tonOk={onOk}\n\t\t\t\t\t\tonClose={handleHide}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>,\n\t\tdocument?.body ?? null\n\t);\n}\n\nModal.useModal = useModal;\n\nexport default Modal as CompositionModal;\n"],"names":["useMemo","_jsxs","_Fragment","_jsx","Button","Helpericon","useState","useRef","useKeydown","useEffect","createPortal","classNames","useModal"],"mappings":";;;;;;;;;;;;;;;;;AAUA,SAAS,cAAc,CAAC,KAAoB,EAAA;IAC3C,MAAM,EACL,KAAK,EACL,MAAM,EACN,eAAe,EACf,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,IAAI,EACJ,OAAO,GACP,GAAG,KAAK;AACT,IAAA,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,eAAe;AAE5C,IAAA,MAAM,QAAQ,GAAG,YAAW;AAC3B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI;AAE1B,QAAA,IAAI,GAAG;YAAE;QAET,OAAO,IAAI;AACZ,KAAC;AAED,IAAA,MAAM,YAAY,GAAGA,aAAO,CAAC,MAAK;AACjC,QAAA,IAAI,MAAM,IAAI,MAAM,KAAK,IAAI;AAAE,YAAA,OAAO,MAAM;AAE5C,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC5B;AACC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,OAAO,EAAE,QAAQ;SACjB,EACD,aAAa,CACb;AACD,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAChC;AACC,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,OAAO,EAAE,OAAO;SAChB,EACD,iBAAiB,CACjB;AAED,QAAA,QACCC,eACE,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAU,EACXC,cAAA,CAACC,cAAM,EAAK,EAAA,GAAA,OAAO,EAAI,CAAA,EACvBD,eAACC,cAAM,EAAA,EAAA,GAAK,WAAW,EAAI,CAAA,CAAA,EAAA,CACzB;KAEJ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAE9C,QACCH,eACE,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAU,KACVD,4BAAQ,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CAChC,KAAK,IAAIE,gCAAI,KAAK,EAAA,CAAK,EAExBA,cAAA,CAACE,kBAAU,EAAA,EACV,MAAM,EAAE,CAAC,eAAe,EACxB,SAAS,EAAC,eAAe,EACzB,OAAO,EAAE,OAAO,EACf,CAAA,CAAA,EAAA,CACM,CACT,EAEDF,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAE,QAAQ,EAAO,CAAA,EAEjDA,cAAQ,CAAA,QAAA,EAAA,EAAA,SAAS,EAAC,gBAAgB,YAAE,YAAY,EAAA,CAAU,CACxD,EAAA,CAAA;AAEL;AAEA,SAAS,KAAK,CAAC,KAAa,EAAA;IAC3B,MAAM,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,QAAQ,GAAG,IAAI,EACf,YAAY,EACZ,gBAAgB,GAAG,IAAI,EACvB,eAAe,EACf,UAAU,EACV,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACL,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,EACP,eAAe,EACf,OAAO,EACP,IAAI,EACJ,GAAG,SAAS,EACZ,GAAG,KAAK;IACT,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGG,cAAQ,CAAC,OAAO,CAAC;IACzC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AAC7C,IAAA,MAAM,QAAQ,GAAGC,YAAM,CAAC,IAAI,CAAC;IAE7B,MAAM,UAAU,GAAG,MAAK;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE;QAEvB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;AACpC,QAAA,QAAQ,CAAC,OAAO,GAAG,KAAK;QACxB,UAAU,CAAC,MAAK;YACf,SAAS,CAAC,IAAI,CAAC;AACf,YAAA,eAAe,GAAG,IAAI,CAAC;AACvB,YAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;SACvB,EAAE,EAAE,CAAC;AACP,KAAC;IAED,MAAM,UAAU,GAAG,MAAK;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE;AACvB,QAAA,QAAQ,CAAC,OAAO,GAAG,KAAK;QAExB,IAAI,CAAC,QAAQ,EAAE;YACd,UAAU,CAAC,IAAI,CAAC;YAChB,UAAU,CAAC,MAAK;gBACf,UAAU,CAAC,KAAK,CAAC;AACjB,gBAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;aACvB,EAAE,GAAG,CAAC;YACP;;QAGD,SAAS,CAAC,KAAK,CAAC;QAChB,UAAU,CAAC,MAAK;AACf,YAAA,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AAC1B,YAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;AACvB,YAAA,eAAe,GAAG,KAAK,CAAC;YACxB,OAAO,IAAI;SACX,EAAE,GAAG,CAAC;AACR,KAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,YAAA;QAC3B,gBAAgB,IAAI,UAAU,EAAE;AACjC,KAAC;AAED,IAAAC,gBAAU,CACT,CAAC,CAAC,KAAI;AACL,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO;YAAE;AACrC,QAAA,UAAU,EAAE;AACb,KAAC,EACD,EAAE,QAAQ,EAAE,UAAU,EAAE,CACxB;IAEDC,eAAS,CAAC,MAAK;QACd,OAAO,GAAG,UAAU,EAAE,GAAG,UAAU,EAAE;AACtC,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEb,MAAM,WAAW,GAAG,MAAK;QACxB,IAAI,OAAO,QAAQ,KAAK,WAAW;YAAE;AACrC,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE;AACjC,KAAC;AAED,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,IAAI;IAEtB,OAAOC,qBAAY,CAClBP,cACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEQ,mBAAU,CACpB,mBAAmB,EACnB;YACC,kBAAkB,EAAE,CAAC,YAAY;AACjC,YAAA,oBAAoB,EAAE,UAAU;AAChC,YAAA,gBAAgB,EAAE,MAAM;YACxB,KAAK;AACL,SAAA,EACD,SAAS,CACT,EACD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,mBAAmB,YAE5BV,eACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEU,mBAAU,CAAC,SAAS,EAAE;gBAChC,OAAO;gBACP,MAAM,EAAE,CAAC,UAAU;aACnB,CAAC,EACF,KAAK,EAAE;gBACN,KAAK;gBACL,MAAM;AACN,aAAA,EACD,OAAO,EAAE,CAAC,CAAC,KAAI;gBACd,CAAC,CAAC,eAAe,EAAE;AACnB,gBAAA,WAAW,EAAE;AACb,gBAAA,OAAO,GAAG,CAAC,CAAC;AACb,aAAC,EACG,GAAA,SAAS,EAEZ,QAAA,EAAA,CAAA,UAAU,IAAI,QAAQ,EAEtB,CAAC,UAAU,KACXR,cAAA,CAAC,cAAc,EAAA,EACd,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EAAA,CAClB,CACF,CAAA,EAAA,CACI,EACD,CAAA,EACN,QAAQ,EAAE,IAAI,IAAI,IAAI,CACtB;AACF;AAEA,KAAK,CAAC,QAAQ,GAAGS,gBAAQ;;;;"}
|
|
@@ -6,11 +6,10 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
var material = require('@ricons/material');
|
|
7
7
|
var ahooks = require('ahooks');
|
|
8
8
|
var react = require('react');
|
|
9
|
-
require('../../button/
|
|
9
|
+
var button = require('../../button/button.js');
|
|
10
10
|
var icon = require('../../icon/icon.js');
|
|
11
11
|
var input = require('../../input/input.js');
|
|
12
12
|
var select = require('../../select/select.js');
|
|
13
|
-
var button = require('../../button/button.js');
|
|
14
13
|
|
|
15
14
|
const ColorMethods = {
|
|
16
15
|
HEX: "toHexString",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"footer.js","sources":["../../../../../packages/components/picker/colors/footer.tsx"],"sourcesContent":["import { CheckRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport { useEffect } from \"react\";\nimport Button from \"../../button\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Select from \"../../select\";\n\nexport const ColorMethods = {\n\tHEX: \"toHexString\",\n\tRGB: \"toRgbString\",\n\tHSB: \"toHsbString\",\n};\n\nexport default function Footer(props) {\n\tconst { value, type, onTypeChange, onChange, onOk } = props;\n\tconst state = useReactive({\n\t\tvalue,\n\t\ttype,\n\t});\n\n\tconst handleChange = (v) => {\n\t\tstate.value = v;\n\t\tonChange(v);\n\t};\n\n\tconst handleTypeChange = (t) => {\n\t\tstate.type = t;\n\t\tonTypeChange(t);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t\tstate.type = type;\n\t}, [value, type]);\n\n\treturn (\n\t\t<div className='i-colorpicker-footer'>\n\t\t\t<Select\n\t\t\t\treadOnly\n\t\t\t\thideClear\n\t\t\t\thideArrow\n\t\t\t\tstyle={{ width: \"5.6em\" }}\n\t\t\t\toptions={[\"RGB\", \"HEX\", \"HSB\"]}\n\t\t\t\tvalue={state.type}\n\t\t\t\tonChange={handleTypeChange}\n\t\t\t/>\n\t\t\t<Input\n\t\t\t\tplaceholder='color'\n\t\t\t\tvalue={state.value}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\t\t\t<Button square onClick={onOk}>\n\t\t\t\t<Icon icon={<CheckRound />} />\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"names":["useReactive","useEffect","_jsxs","_jsx","Select","Input","Button","Icon","CheckRound"],"mappings":"
|
|
1
|
+
{"version":3,"file":"footer.js","sources":["../../../../../packages/components/picker/colors/footer.tsx"],"sourcesContent":["import { CheckRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport { useEffect } from \"react\";\nimport Button from \"../../button\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Select from \"../../select\";\n\nexport const ColorMethods = {\n\tHEX: \"toHexString\",\n\tRGB: \"toRgbString\",\n\tHSB: \"toHsbString\",\n};\n\nexport default function Footer(props) {\n\tconst { value, type, onTypeChange, onChange, onOk } = props;\n\tconst state = useReactive({\n\t\tvalue,\n\t\ttype,\n\t});\n\n\tconst handleChange = (v) => {\n\t\tstate.value = v;\n\t\tonChange(v);\n\t};\n\n\tconst handleTypeChange = (t) => {\n\t\tstate.type = t;\n\t\tonTypeChange(t);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t\tstate.type = type;\n\t}, [value, type]);\n\n\treturn (\n\t\t<div className='i-colorpicker-footer'>\n\t\t\t<Select\n\t\t\t\treadOnly\n\t\t\t\thideClear\n\t\t\t\thideArrow\n\t\t\t\tstyle={{ width: \"5.6em\" }}\n\t\t\t\toptions={[\"RGB\", \"HEX\", \"HSB\"]}\n\t\t\t\tvalue={state.type}\n\t\t\t\tonChange={handleTypeChange}\n\t\t\t/>\n\t\t\t<Input\n\t\t\t\tplaceholder='color'\n\t\t\t\tvalue={state.value}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\t\t\t<Button square onClick={onOk}>\n\t\t\t\t<Icon icon={<CheckRound />} />\n\t\t\t</Button>\n\t\t</div>\n\t);\n}\n"],"names":["useReactive","useEffect","_jsxs","_jsx","Select","Input","Button","Icon","CheckRound"],"mappings":";;;;;;;;;;;;;AAQa,MAAA,YAAY,GAAG;AAC3B,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,GAAG,EAAE,aAAa;;AAGK,SAAA,MAAM,CAAC,KAAK,EAAA;AACnC,IAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK;IAC3D,MAAM,KAAK,GAAGA,kBAAW,CAAC;QACzB,KAAK;QACL,IAAI;AACJ,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,CAAC,CAAC,KAAI;AAC1B,QAAA,KAAK,CAAC,KAAK,GAAG,CAAC;QACf,QAAQ,CAAC,CAAC,CAAC;AACZ,KAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAI;AAC9B,QAAA,KAAK,CAAC,IAAI,GAAG,CAAC;QACd,YAAY,CAAC,CAAC,CAAC;AAChB,KAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACnB,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI;AAClB,KAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAEjB,IAAA,QACCC,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,sBAAsB,aACpCC,cAAC,CAAAC,cAAM,EACN,EAAA,QAAQ,QACR,SAAS,EAAA,IAAA,EACT,SAAS,EACT,IAAA,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EACzB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAC9B,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,QAAQ,EAAE,gBAAgB,EAAA,CACzB,EACFD,cAAC,CAAAE,aAAK,IACL,WAAW,EAAC,OAAO,EACnB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,YAAY,GACrB,EACFF,cAAA,CAACG,cAAM,EAAA,EAAC,MAAM,EAAC,IAAA,EAAA,OAAO,EAAE,IAAI,EAAA,QAAA,EAC3BH,eAACI,YAAI,EAAA,EAAC,IAAI,EAAEJ,eAACK,mBAAU,EAAA,EAAA,CAAG,GAAI,EACtB,CAAA,CAAA,EAAA,CACJ;AAER;;;;;"}
|
|
@@ -5,11 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var material = require('@ricons/material');
|
|
7
7
|
var ahooks = require('ahooks');
|
|
8
|
-
require('../button/
|
|
8
|
+
var button = require('../button/button.js');
|
|
9
9
|
var flex = require('../flex/flex.js');
|
|
10
10
|
var icon = require('../icon/icon.js');
|
|
11
11
|
var popup = require('../popup/popup.js');
|
|
12
|
-
var button = require('../button/button.js');
|
|
13
12
|
|
|
14
13
|
const defaultOk = {
|
|
15
14
|
children: "确定",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport { MouseEvent } from \"react\";\nimport Button from \"../button\";\nimport { IButton } from \"../button/type\";\nimport Flex from \"../flex\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport { IPopconfirm } from \"./type\";\n\nconst defaultOk = {\n\tchildren: \"确定\",\n};\n\nconst defaultCancel = {\n\tchildren: \"取消\",\n\tsecondary: true,\n};\n\nconst Popconfirm = (props: IPopconfirm) => {\n\tconst {\n\t\ttrigger = \"click\",\n\t\tvisible,\n\t\ticon = <Icon icon={<InfoOutlined />} className='error' />,\n\t\tcontent,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tchildren,\n\t\talign = \"end\",\n\t\tposition = \"top\",\n\t\toffset = 12,\n\t\textra,\n\t\tonOk,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tloading: false,\n\t\tvisible,\n\t});\n\n\tconst ok: IButton = okButtonProps\n\t\t? Object.assign({}, defaultOk, okButtonProps)\n\t\t: defaultOk;\n\tconst cancel: IButton = cancelButtonProps\n\t\t? Object.assign({}, defaultCancel, cancelButtonProps)\n\t\t: defaultCancel;\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tstate.visible = v;\n\t\trestProps.onVisibleChange?.(v);\n\t};\n\n\tconst handleOk = async (e: MouseEvent<HTMLElement>) => {\n\t\tstate.loading = true;\n\t\tok.onClick?.(e);\n\n\t\tonOk?.()\n\t\t\t?.then(() => {\n\t\t\t\tstate.visible = false;\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCancel = async (e: MouseEvent<HTMLElement>) => {\n\t\tcancel.onClick?.(e);\n\t\tawait onClose?.();\n\t\tstate.visible = false;\n\t};\n\n\tconst popconfirmContent = (\n\t\t<div className='i-popconfirm'>\n\t\t\t<Flex gap={12}>\n\t\t\t\t{icon}\n\t\t\t\t<div className='i-popconfirm-content'>{content}</div>\n\t\t\t</Flex>\n\n\t\t\t<Flex\n\t\t\t\tgap={12}\n\t\t\t\tjustify='flex-end'\n\t\t\t\tclassName='mt-8 i-popconfirm-footer'\n\t\t\t>\n\t\t\t\t{cancelButtonProps !== null && (\n\t\t\t\t\t<Button {...cancel} onClick={handleCancel} />\n\t\t\t\t)}\n\t\t\t\t{extra}\n\t\t\t\t{okButtonProps !== null && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t{...ok}\n\t\t\t\t\t\tonClick={handleOk}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Flex>\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<Popup\n\t\t\tcontent={popconfirmContent}\n\t\t\t{...restProps}\n\t\t\ttrigger={trigger}\n\t\t\tvisible={state.visible}\n\t\t\talign={align}\n\t\t\toffset={offset}\n\t\t\tposition={position}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nexport default Popconfirm;\n"],"names":["icon","_jsx","Icon","InfoOutlined","useReactive","_jsxs","Flex","Button","Popup"],"mappings":"
|
|
1
|
+
{"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { InfoOutlined } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport { MouseEvent } from \"react\";\nimport Button from \"../button\";\nimport { IButton } from \"../button/type\";\nimport Flex from \"../flex\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport { IPopconfirm } from \"./type\";\n\nconst defaultOk = {\n\tchildren: \"确定\",\n};\n\nconst defaultCancel = {\n\tchildren: \"取消\",\n\tsecondary: true,\n};\n\nconst Popconfirm = (props: IPopconfirm) => {\n\tconst {\n\t\ttrigger = \"click\",\n\t\tvisible,\n\t\ticon = <Icon icon={<InfoOutlined />} className='error' />,\n\t\tcontent,\n\t\tokButtonProps,\n\t\tcancelButtonProps,\n\t\tchildren,\n\t\talign = \"end\",\n\t\tposition = \"top\",\n\t\toffset = 12,\n\t\textra,\n\t\tonOk,\n\t\tonClose,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tloading: false,\n\t\tvisible,\n\t});\n\n\tconst ok: IButton = okButtonProps\n\t\t? Object.assign({}, defaultOk, okButtonProps)\n\t\t: defaultOk;\n\tconst cancel: IButton = cancelButtonProps\n\t\t? Object.assign({}, defaultCancel, cancelButtonProps)\n\t\t: defaultCancel;\n\n\tconst handleVisibleChange = (v: boolean) => {\n\t\tstate.visible = v;\n\t\trestProps.onVisibleChange?.(v);\n\t};\n\n\tconst handleOk = async (e: MouseEvent<HTMLElement>) => {\n\t\tstate.loading = true;\n\t\tok.onClick?.(e);\n\n\t\tonOk?.()\n\t\t\t?.then(() => {\n\t\t\t\tstate.visible = false;\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tstate.loading = false;\n\t\t\t});\n\t};\n\n\tconst handleCancel = async (e: MouseEvent<HTMLElement>) => {\n\t\tcancel.onClick?.(e);\n\t\tawait onClose?.();\n\t\tstate.visible = false;\n\t};\n\n\tconst popconfirmContent = (\n\t\t<div className='i-popconfirm'>\n\t\t\t<Flex gap={12}>\n\t\t\t\t{icon}\n\t\t\t\t<div className='i-popconfirm-content'>{content}</div>\n\t\t\t</Flex>\n\n\t\t\t<Flex\n\t\t\t\tgap={12}\n\t\t\t\tjustify='flex-end'\n\t\t\t\tclassName='mt-8 i-popconfirm-footer'\n\t\t\t>\n\t\t\t\t{cancelButtonProps !== null && (\n\t\t\t\t\t<Button {...cancel} onClick={handleCancel} />\n\t\t\t\t)}\n\t\t\t\t{extra}\n\t\t\t\t{okButtonProps !== null && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t{...ok}\n\t\t\t\t\t\tonClick={handleOk}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Flex>\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<Popup\n\t\t\tcontent={popconfirmContent}\n\t\t\t{...restProps}\n\t\t\ttrigger={trigger}\n\t\t\tvisible={state.visible}\n\t\t\talign={align}\n\t\t\toffset={offset}\n\t\t\tposition={position}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t>\n\t\t\t{children}\n\t\t</Popup>\n\t);\n};\n\nexport default Popconfirm;\n"],"names":["icon","_jsx","Icon","InfoOutlined","useReactive","_jsxs","Flex","Button","Popup"],"mappings":"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"}
|
|
@@ -171,8 +171,8 @@ function Popup(props) {
|
|
|
171
171
|
arrowProps: { left: arrowX, top: arrowY, pos: arrowPos },
|
|
172
172
|
});
|
|
173
173
|
};
|
|
174
|
-
const { observe, unobserve, disconnect } = hooks.useResizeObserver();
|
|
175
174
|
react.useEffect(() => {
|
|
175
|
+
const { observe, unobserve, disconnect } = hooks.useResizeObserver();
|
|
176
176
|
if (trigger === "contextmenu" || !observe)
|
|
177
177
|
return;
|
|
178
178
|
triggerRef.current && observe(triggerRef.current, computePosition);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popup.js","sources":["../../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { useCreation, useReactive } from \"ahooks\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tisValidElement,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { useMouseUp, useResizeObserver } from \"../../js/hooks\";\nimport { getPointPosition, getPosition } from \"../../js/utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport { IPopup } from \"./type\";\n\nexport default function Popup(props: IPopup) {\n\tconst {\n\t\tvisible = false,\n\t\tcontent,\n\t\ttrigger = \"hover\",\n\t\tgap = 12,\n\t\toffset = 8,\n\t\tfixed,\n\t\tposition = \"top\",\n\t\tshowDelay = 16,\n\t\thideDelay = 12,\n\t\ttouchable,\n\t\tarrow = true,\n\t\talign,\n\t\tfitSize,\n\t\twatchResize,\n\t\tclickOutside = true,\n\t\tdisabled,\n\t\treferToWindow,\n\t\tstyle,\n\t\tclassName,\n\t\tgetContainer,\n\t\tchildren,\n\t\tonVisibleChange,\n\t} = props;\n\n\tconst triggerRef = useRef<HTMLElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst statusRef = useRef<string>(\"\");\n\tconst state = useReactive<{\n\t\tshow: boolean;\n\t\tstyle: CSSProperties;\n\t\tarrowProps: Record<string, any>;\n\t}>({\n\t\tshow: false,\n\t\tstyle: { position: fixed ? \"fixed\" : \"absolute\" },\n\t\tarrowProps: {},\n\t});\n\n\tuseMouseUp((e) => {\n\t\tif (!triggerRef.current || !contentRef.current || !clickOutside) return;\n\n\t\tconst tar = e.target as HTMLElement;\n\t\tconst isContain =\n\t\t\ttriggerRef.current.contains(tar) ||\n\t\t\tcontentRef.current.contains(tar);\n\n\t\tif (!state.show || isContain) return;\n\n\t\thandleToggle(false);\n\t});\n\n\tconst clearTimer = () => {\n\t\tif (!timerRef.current) return;\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst handleShow = () => {\n\t\tif (disabled) return;\n\t\tif (\n\t\t\tstate.show &&\n\t\t\t(trigger !== \"hover\" || (trigger === \"hover\" && !touchable))\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tstate.show = true;\n\t\tstatusRef.current = \"showing\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (statusRef.current !== \"showing\") {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\t\ttriggerRef.current,\n\t\t\t\tcontentRef.current,\n\t\t\t\t{\n\t\t\t\t\tposition,\n\t\t\t\t\tgap,\n\t\t\t\t\toffset,\n\t\t\t\t\talign,\n\t\t\t\t\trefWindow: referToWindow,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tstate.style = {\n\t\t\t\t...state.style,\n\t\t\t\topacity: 1,\n\t\t\t\ttransform: \"none\",\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t};\n\t\t\tstate.arrowProps = {\n\t\t\t\tleft: arrowX,\n\t\t\t\ttop: arrowY,\n\t\t\t\tpos: arrowPos,\n\t\t\t};\n\t\t\tonVisibleChange?.(true);\n\t\t\tclearTimer();\n\t\t\tstatusRef.current = \"\";\n\t\t}, showDelay);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!state.show) return;\n\n\t\tstatusRef.current = \"hiding\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (statusRef.current !== \"hiding\") {\n\t\t\t\tclearTimer();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.style = {\n\t\t\t\t...state.style,\n\t\t\t\topacity: 0,\n\t\t\t\ttransform: \"translate(0, 2px)\",\n\t\t\t};\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.show = false;\n\t\t\t\tclearTimer();\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\tstatusRef.current = \"\";\n\t\t\t}, 160);\n\t\t}, hideDelay);\n\t};\n\n\tconst handleToggle = (action?: boolean) => {\n\t\tif (action !== undefined) {\n\t\t\taction ? handleShow() : handleHide();\n\t\t\treturn;\n\t\t}\n\n\t\tstate.show ? handleHide() : handleShow();\n\t};\n\tconst eventMaps = useCreation(\n\t\t() => ({\n\t\t\tclick: {\n\t\t\t\tonClick: () => handleToggle(true),\n\t\t\t},\n\t\t\thover: {\n\t\t\t\tonMouseEnter: () => handleToggle(true),\n\t\t\t\tonMouseLeave: () => handleToggle(false),\n\t\t\t},\n\t\t\tfocus: {\n\t\t\t\tonFocus: () => handleToggle(true),\n\t\t\t\tonBlur: () => handleToggle(false),\n\t\t\t},\n\t\t\tcontextmenu: {\n\t\t\t\tonContextMenu: (e: MouseEvent) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tif (state.show) {\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.style = {\n\t\t\t\t\t\t\t...state.style,\n\t\t\t\t\t\t\tleft,\n\t\t\t\t\t\t\ttop,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.show = true;\n\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.style = {\n\t\t\t\t\t\t\t...state.style,\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: \"none\",\n\t\t\t\t\t\t\tleft,\n\t\t\t\t\t\t\ttop,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tclearTimer();\n\t\t\t\t\t\tonVisibleChange?.(true);\n\t\t\t\t\t}, showDelay);\n\t\t\t\t},\n\t\t\t},\n\t\t\tnone: {},\n\t\t}),\n\t\t[]\n\t);\n\n\tconst contentTouch = useMemo(() => {\n\t\tif (!touchable) return {};\n\t\tconst events: { [key: string]: () => void } = {};\n\n\t\tif (trigger === \"hover\") {\n\t\t\tevents[\"onMouseEnter\"] = () => {\n\t\t\t\tclearTimer();\n\t\t\t};\n\t\t\tevents[\"onMouseLeave\"] = () => handleToggle(false);\n\t\t}\n\n\t\treturn events;\n\t}, [touchable, trigger]);\n\n\tconst computePosition = () => {\n\t\tif (!state.show) return;\n\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\ttriggerRef.current,\n\t\t\tcontentRef.current,\n\t\t\t{\n\t\t\t\tposition,\n\t\t\t\tgap,\n\t\t\t\toffset,\n\t\t\t\talign,\n\t\t\t\trefWindow: referToWindow,\n\t\t\t}\n\t\t);\n\n\t\tObject.assign(state, {\n\t\t\tstyle: { ...state.style, left, top },\n\t\t\tarrowProps: { left: arrowX, top: arrowY, pos: arrowPos },\n\t\t});\n\t};\n\n\tconst { observe, unobserve, disconnect } = useResizeObserver();\n\tuseEffect(() => {\n\t\tif (trigger === \"contextmenu\" || !observe) return;\n\n\t\ttriggerRef.current && observe(triggerRef.current, computePosition);\n\n\t\tif (!watchResize || !contentRef.current) return;\n\n\t\tobserve(contentRef.current, computePosition);\n\n\t\treturn () => {\n\t\t\tif (!watchResize || !contentRef.current) return;\n\n\t\t\tunobserve(contentRef.current);\n\t\t\ttriggerRef.current && unobserve(triggerRef.current);\n\t\t\tdisconnect();\n\t\t};\n\t}, [watchResize, contentRef.current, triggerRef.current]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!fitSize || !state.show) return;\n\n\t\tconst vertical = [\"top\", \"bottom\"].includes(position);\n\t\tconst size =\n\t\t\ttriggerRef.current?.[vertical ? \"offsetWidth\" : \"offsetHeight\"];\n\t\tstate.style = { ...state.style, [vertical ? \"width\" : \"height\"]: size };\n\t}, [state.show, fitSize]);\n\n\tuseLayoutEffect(() => {\n\t\thandleToggle(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<>\n\t\t\t{Children.map(children, (child) => {\n\t\t\t\tif (!isValidElement(child)) return;\n\n\t\t\t\tconst { className, ...restProps } = child.props as any;\n\t\t\t\tObject.keys(eventMaps[trigger]).map((evt) => {\n\t\t\t\t\tif (!restProps[evt]) return;\n\t\t\t\t\tconst fn = eventMaps[trigger][evt];\n\n\t\t\t\t\teventMaps[trigger][evt] = (e) => {\n\t\t\t\t\t\tfn();\n\t\t\t\t\t\trestProps[evt](e);\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\treturn cloneElement(child, {\n\t\t\t\t\tref: triggerRef,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps,\n\t\t\t\t\t...eventMaps[trigger],\n\t\t\t\t});\n\t\t\t})}\n\n\t\t\t{state.show && (\n\t\t\t\t<Content\n\t\t\t\t\tref={contentRef}\n\t\t\t\t\tarrow={arrow && trigger !== \"contextmenu\"}\n\t\t\t\t\tstyle={{ ...style, ...state.style }}\n\t\t\t\t\tarrowProps={state.arrowProps}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\t{...contentTouch}\n\t\t\t\t\ttrigger={triggerRef.current as HTMLElement}\n\t\t\t\t\tgetContainer={getContainer}\n\t\t\t\t>\n\t\t\t\t\t{content}\n\t\t\t\t</Content>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"],"names":["content","useRef","useReactive","useMouseUp","getPosition","useCreation","getPointPosition","useMemo","useResizeObserver","useEffect","useLayoutEffect","_jsxs","_Fragment","Children","isValidElement","cloneElement","_jsx","Content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"popup.js","sources":["../../../../packages/components/popup/popup.tsx"],"sourcesContent":["import { useCreation, useReactive } from \"ahooks\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tMouseEvent,\n\tcloneElement,\n\tisValidElement,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { useMouseUp, useResizeObserver } from \"../../js/hooks\";\nimport { getPointPosition, getPosition } from \"../../js/utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport { IPopup } from \"./type\";\n\nexport default function Popup(props: IPopup) {\n\tconst {\n\t\tvisible = false,\n\t\tcontent,\n\t\ttrigger = \"hover\",\n\t\tgap = 12,\n\t\toffset = 8,\n\t\tfixed,\n\t\tposition = \"top\",\n\t\tshowDelay = 16,\n\t\thideDelay = 12,\n\t\ttouchable,\n\t\tarrow = true,\n\t\talign,\n\t\tfitSize,\n\t\twatchResize,\n\t\tclickOutside = true,\n\t\tdisabled,\n\t\treferToWindow,\n\t\tstyle,\n\t\tclassName,\n\t\tgetContainer,\n\t\tchildren,\n\t\tonVisibleChange,\n\t} = props;\n\n\tconst triggerRef = useRef<HTMLElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\tconst timerRef = useRef<any>(null);\n\tconst statusRef = useRef<string>(\"\");\n\tconst state = useReactive<{\n\t\tshow: boolean;\n\t\tstyle: CSSProperties;\n\t\tarrowProps: Record<string, any>;\n\t}>({\n\t\tshow: false,\n\t\tstyle: { position: fixed ? \"fixed\" : \"absolute\" },\n\t\tarrowProps: {},\n\t});\n\n\tuseMouseUp((e) => {\n\t\tif (!triggerRef.current || !contentRef.current || !clickOutside) return;\n\n\t\tconst tar = e.target as HTMLElement;\n\t\tconst isContain =\n\t\t\ttriggerRef.current.contains(tar) ||\n\t\t\tcontentRef.current.contains(tar);\n\n\t\tif (!state.show || isContain) return;\n\n\t\thandleToggle(false);\n\t});\n\n\tconst clearTimer = () => {\n\t\tif (!timerRef.current) return;\n\t\tclearTimeout(timerRef.current);\n\t\ttimerRef.current = null;\n\t};\n\n\tconst handleShow = () => {\n\t\tif (disabled) return;\n\t\tif (\n\t\t\tstate.show &&\n\t\t\t(trigger !== \"hover\" || (trigger === \"hover\" && !touchable))\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tstate.show = true;\n\t\tstatusRef.current = \"showing\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (statusRef.current !== \"showing\") {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\t\ttriggerRef.current,\n\t\t\t\tcontentRef.current,\n\t\t\t\t{\n\t\t\t\t\tposition,\n\t\t\t\t\tgap,\n\t\t\t\t\toffset,\n\t\t\t\t\talign,\n\t\t\t\t\trefWindow: referToWindow,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tstate.style = {\n\t\t\t\t...state.style,\n\t\t\t\topacity: 1,\n\t\t\t\ttransform: \"none\",\n\t\t\t\tleft,\n\t\t\t\ttop,\n\t\t\t};\n\t\t\tstate.arrowProps = {\n\t\t\t\tleft: arrowX,\n\t\t\t\ttop: arrowY,\n\t\t\t\tpos: arrowPos,\n\t\t\t};\n\t\t\tonVisibleChange?.(true);\n\t\t\tclearTimer();\n\t\t\tstatusRef.current = \"\";\n\t\t}, showDelay);\n\t};\n\n\tconst handleHide = () => {\n\t\tif (!state.show) return;\n\n\t\tstatusRef.current = \"hiding\";\n\t\ttimerRef.current = setTimeout(() => {\n\t\t\tif (statusRef.current !== \"hiding\") {\n\t\t\t\tclearTimer();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.style = {\n\t\t\t\t...state.style,\n\t\t\t\topacity: 0,\n\t\t\t\ttransform: \"translate(0, 2px)\",\n\t\t\t};\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.show = false;\n\t\t\t\tclearTimer();\n\t\t\t\tonVisibleChange?.(false);\n\t\t\t\tstatusRef.current = \"\";\n\t\t\t}, 160);\n\t\t}, hideDelay);\n\t};\n\n\tconst handleToggle = (action?: boolean) => {\n\t\tif (action !== undefined) {\n\t\t\taction ? handleShow() : handleHide();\n\t\t\treturn;\n\t\t}\n\n\t\tstate.show ? handleHide() : handleShow();\n\t};\n\tconst eventMaps = useCreation(\n\t\t() => ({\n\t\t\tclick: {\n\t\t\t\tonClick: () => handleToggle(true),\n\t\t\t},\n\t\t\thover: {\n\t\t\t\tonMouseEnter: () => handleToggle(true),\n\t\t\t\tonMouseLeave: () => handleToggle(false),\n\t\t\t},\n\t\t\tfocus: {\n\t\t\t\tonFocus: () => handleToggle(true),\n\t\t\t\tonBlur: () => handleToggle(false),\n\t\t\t},\n\t\t\tcontextmenu: {\n\t\t\t\tonContextMenu: (e: MouseEvent) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tif (state.show) {\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.style = {\n\t\t\t\t\t\t\t...state.style,\n\t\t\t\t\t\t\tleft,\n\t\t\t\t\t\t\ttop,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.show = true;\n\n\t\t\t\t\ttimerRef.current = setTimeout(() => {\n\t\t\t\t\t\tconst [left, top] = getPointPosition(\n\t\t\t\t\t\t\te,\n\t\t\t\t\t\t\tcontentRef.current as HTMLElement\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tstate.style = {\n\t\t\t\t\t\t\t...state.style,\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: \"none\",\n\t\t\t\t\t\t\tleft,\n\t\t\t\t\t\t\ttop,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tclearTimer();\n\t\t\t\t\t\tonVisibleChange?.(true);\n\t\t\t\t\t}, showDelay);\n\t\t\t\t},\n\t\t\t},\n\t\t\tnone: {},\n\t\t}),\n\t\t[]\n\t);\n\n\tconst contentTouch = useMemo(() => {\n\t\tif (!touchable) return {};\n\t\tconst events: { [key: string]: () => void } = {};\n\n\t\tif (trigger === \"hover\") {\n\t\t\tevents[\"onMouseEnter\"] = () => {\n\t\t\t\tclearTimer();\n\t\t\t};\n\t\t\tevents[\"onMouseLeave\"] = () => handleToggle(false);\n\t\t}\n\n\t\treturn events;\n\t}, [touchable, trigger]);\n\n\tconst computePosition = () => {\n\t\tif (!state.show) return;\n\n\t\tconst [left, top, { arrowX, arrowY, arrowPos }] = getPosition(\n\t\t\ttriggerRef.current,\n\t\t\tcontentRef.current,\n\t\t\t{\n\t\t\t\tposition,\n\t\t\t\tgap,\n\t\t\t\toffset,\n\t\t\t\talign,\n\t\t\t\trefWindow: referToWindow,\n\t\t\t}\n\t\t);\n\n\t\tObject.assign(state, {\n\t\t\tstyle: { ...state.style, left, top },\n\t\t\tarrowProps: { left: arrowX, top: arrowY, pos: arrowPos },\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tconst { observe, unobserve, disconnect } = useResizeObserver();\n\t\tif (trigger === \"contextmenu\" || !observe) return;\n\n\t\ttriggerRef.current && observe(triggerRef.current, computePosition);\n\n\t\tif (!watchResize || !contentRef.current) return;\n\n\t\tobserve(contentRef.current, computePosition);\n\n\t\treturn () => {\n\t\t\tif (!watchResize || !contentRef.current) return;\n\n\t\t\tunobserve(contentRef.current);\n\t\t\ttriggerRef.current && unobserve(triggerRef.current);\n\t\t\tdisconnect();\n\t\t};\n\t}, [watchResize, contentRef.current, triggerRef.current]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!fitSize || !state.show) return;\n\n\t\tconst vertical = [\"top\", \"bottom\"].includes(position);\n\t\tconst size =\n\t\t\ttriggerRef.current?.[vertical ? \"offsetWidth\" : \"offsetHeight\"];\n\t\tstate.style = { ...state.style, [vertical ? \"width\" : \"height\"]: size };\n\t}, [state.show, fitSize]);\n\n\tuseLayoutEffect(() => {\n\t\thandleToggle(visible);\n\t}, [visible]);\n\n\treturn (\n\t\t<>\n\t\t\t{Children.map(children, (child) => {\n\t\t\t\tif (!isValidElement(child)) return;\n\n\t\t\t\tconst { className, ...restProps } = child.props as any;\n\t\t\t\tObject.keys(eventMaps[trigger]).map((evt) => {\n\t\t\t\t\tif (!restProps[evt]) return;\n\t\t\t\t\tconst fn = eventMaps[trigger][evt];\n\n\t\t\t\t\teventMaps[trigger][evt] = (e) => {\n\t\t\t\t\t\tfn();\n\t\t\t\t\t\trestProps[evt](e);\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\treturn cloneElement(child, {\n\t\t\t\t\tref: triggerRef,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps,\n\t\t\t\t\t...eventMaps[trigger],\n\t\t\t\t});\n\t\t\t})}\n\n\t\t\t{state.show && (\n\t\t\t\t<Content\n\t\t\t\t\tref={contentRef}\n\t\t\t\t\tarrow={arrow && trigger !== \"contextmenu\"}\n\t\t\t\t\tstyle={{ ...style, ...state.style }}\n\t\t\t\t\tarrowProps={state.arrowProps}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\t{...contentTouch}\n\t\t\t\t\ttrigger={triggerRef.current as HTMLElement}\n\t\t\t\t\tgetContainer={getContainer}\n\t\t\t\t>\n\t\t\t\t\t{content}\n\t\t\t\t</Content>\n\t\t\t)}\n\t\t</>\n\t);\n}\n"],"names":["content","useRef","useReactive","useMouseUp","getPosition","useCreation","getPointPosition","useMemo","useEffect","useResizeObserver","useLayoutEffect","_jsxs","_Fragment","Children","isValidElement","cloneElement","_jsx","Content"],"mappings":"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"}
|
|
@@ -9,12 +9,11 @@ var classNames = require('classnames');
|
|
|
9
9
|
var radash = require('radash');
|
|
10
10
|
var react = require('react');
|
|
11
11
|
var hooks = require('../../js/hooks.js');
|
|
12
|
-
require('../button/
|
|
12
|
+
var button = require('../button/button.js');
|
|
13
13
|
var icon = require('../icon/icon.js');
|
|
14
14
|
var popup = require('../popup/popup.js');
|
|
15
15
|
var helpericon = require('../utils/helpericon/helpericon.js');
|
|
16
16
|
var item = require('./item.js');
|
|
17
|
-
var button = require('../button/button.js');
|
|
18
17
|
|
|
19
18
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
20
19
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport { useReactive, useSize } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { pick } from \"radash\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport { useIntersectionObserver } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs, TTabKey } from \"./type\";\n\ntype TState = {\n\tactive?: TTabKey;\n\tprevActive?: TTabKey;\n\tbarStyle: CSSProperties;\n\tcachedTabs: TTabKey[];\n\toverflow: boolean;\n\tmore: ITabItem[];\n\ttabs: ITabItem[];\n};\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TState>({\n\t\tactive,\n\t\tprevActive: undefined,\n\t\tbarStyle: {},\n\t\tcachedTabs: [],\n\t\toverflow: false,\n\t\tmore: [],\n\t\ttabs: [],\n\t});\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tstate.tabs = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.tabs = Children.map(children, (node, i) => {\n\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\tkey?: TTabKey;\n\t\t\t\t\tprops?: any;\n\t\t\t\t};\n\t\t\t\tconst { title, children, content, keepDOM } = nodeProps;\n\n\t\t\t\tconst cloned = children\n\t\t\t\t\t? typeof children === \"string\"\n\t\t\t\t\t\t? children\n\t\t\t\t\t\t: pick(children, [\"props\", \"type\", \"$$typeof\", \"ref\"])\n\t\t\t\t\t: content;\n\n\t\t\t\treturn {\n\t\t\t\t\tkey: key || String(i),\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent: cloned,\n\t\t\t\t\tkeepDOM,\n\t\t\t\t};\n\t\t\t}) as ITabItem[];\n\n\t\t\treturn;\n\t\t}\n\n\t\tstate.tabs = items.map((item, i) => {\n\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\treturn { key: item, title: item };\n\t\t\t}\n\t\t\tif (item.key === undefined) {\n\t\t\t\titem.key = i;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst { key } = tab;\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i > -1) {\n\t\t\topen(state.tabs[i].key ?? i);\n\t\t\treturn;\n\t\t}\n\n\t\tconst l = state.tabs.length;\n\t\tconst tkey = tab.key ?? l;\n\t\tstate.tabs.push({ ...tab, key: tkey });\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: TTabKey) => {\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tstate.tabs.splice(i, 1);\n\n\t\tif (state.active !== key) return;\n\n\t\tconst next = state.tabs[i] || state.tabs[i - 1];\n\t\topen(state.prevActive ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: TTabKey) => {\n\t\tif (key === state.active) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tstate.active = undefined;\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\n\t\tstate.prevActive = state.active;\n\t\tonTabChange?.(key, state.active);\n\t\tstate.active = key;\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore || !observe) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tstate.overflow = scrollHeight > height || scrollWidth > width;\n\n\t\tif (!state.overflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tif (!state.tabs[i]) return;\n\t\t\t\tstate.tabs[i].intersecting = visible;\n\t\t\t\tstate.more = state.tabs.filter((tab) => !tab.intersecting);\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || state.active === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = state.tabs.findIndex((tab) => tab.key === state.active);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (state.tabs[index].keepDOM && state.active) {\n\t\t\t\tconst i = state.cachedTabs.findIndex((k) => k === state.active);\n\t\t\t\ti < 0 && state.cachedTabs.unshift(state.active);\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t};\n\t\t}, 16);\n\t}, [state.active, bar, size]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || state.active === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore || !unobserve) return;\n\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = i, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": state.active === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={state.barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && state.overflow && state.more.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{state.more.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = i, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = state.active === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(state.more)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\tconst { key = i, content } = tab;\n\t\t\t\t\tconst isActive = state.active === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && state.cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"names":["_jsx","Button","Icon","MoreHorizRound","useRef","useReactive","useIntersectionObserver","useSize","useEffect","Children","pick","useImperativeHandle","_jsxs","classNames","Helpericon","Popup","TabItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../../packages/components/tabs/tabs.tsx"],"sourcesContent":["import { MoreHorizRound } from \"@ricons/material\";\nimport { useReactive, useSize } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { pick } from \"radash\";\nimport {\n\tCSSProperties,\n\tChildren,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n} from \"react\";\nimport { useIntersectionObserver } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Popup from \"../popup\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport TabItem from \"./item\";\nimport { CompositionTabs, ITabItem, ITabs, TTabKey } from \"./type\";\n\ntype TState = {\n\tactive?: TTabKey;\n\tprevActive?: TTabKey;\n\tbarStyle: CSSProperties;\n\tcachedTabs: TTabKey[];\n\toverflow: boolean;\n\tmore: ITabItem[];\n\ttabs: ITabItem[];\n};\n\nconst Tabs = ((props: ITabs) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttabs: items,\n\t\ttype = \"default\",\n\t\tprepend,\n\t\tappend,\n\t\tchildren,\n\t\tclassName,\n\t\tvertical,\n\t\ttoggable,\n\t\tnavsJustify = \"start\",\n\t\tbar = true,\n\t\thideMore,\n\t\tbarClass,\n\t\trenderMore = () => (\n\t\t\t<Button flat square size='small'>\n\t\t\t\t<Icon icon={<MoreHorizRound />} />\n\t\t\t</Button>\n\t\t),\n\t\tonTabChange,\n\t\t...rest\n\t} = props;\n\n\tconst navRefs = useRef<HTMLElement[]>([]);\n\tconst barRef = useRef<HTMLSpanElement>(null);\n\tconst navsRef = useRef<HTMLDivElement>(null);\n\tconst state = useReactive<TState>({\n\t\tactive,\n\t\tprevActive: undefined,\n\t\tbarStyle: {},\n\t\tcachedTabs: [],\n\t\toverflow: false,\n\t\tmore: [],\n\t\ttabs: [],\n\t});\n\tconst { observe, unobserve } = useIntersectionObserver();\n\tconst size = useSize(navsRef);\n\n\tuseEffect(() => {\n\t\tif (!items) {\n\t\t\tif (!children) {\n\t\t\t\tstate.tabs = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tstate.tabs = Children.map(children, (node, i) => {\n\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\tkey?: TTabKey;\n\t\t\t\t\tprops?: any;\n\t\t\t\t};\n\t\t\t\tconst { title, children, content, keepDOM } = nodeProps;\n\n\t\t\t\tconst cloned = children\n\t\t\t\t\t? typeof children === \"string\"\n\t\t\t\t\t\t? children\n\t\t\t\t\t\t: pick(children, [\"props\", \"type\", \"$$typeof\", \"ref\"])\n\t\t\t\t\t: content;\n\n\t\t\t\treturn {\n\t\t\t\t\tkey: key || String(i),\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent: cloned,\n\t\t\t\t\tkeepDOM,\n\t\t\t\t};\n\t\t\t}) as ITabItem[];\n\n\t\t\treturn;\n\t\t}\n\n\t\tstate.tabs = items.map((item, i) => {\n\t\t\tif ([\"string\", \"number\"].includes(typeof item)) {\n\t\t\t\treturn { key: item, title: item };\n\t\t\t}\n\t\t\tif (item.key === undefined) {\n\t\t\t\titem.key = i;\n\t\t\t}\n\t\t\treturn item;\n\t\t});\n\t}, [children, items]);\n\n\tconst add = (tab: ITabItem) => {\n\t\tconst { key } = tab;\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i > -1) {\n\t\t\topen(state.tabs[i].key ?? i);\n\t\t\treturn;\n\t\t}\n\n\t\tconst l = state.tabs.length;\n\t\tconst tkey = tab.key ?? l;\n\t\tstate.tabs.push({ ...tab, key: tkey });\n\t\topen(tkey);\n\t};\n\n\tconst close = (key: TTabKey) => {\n\t\tconst i = state.tabs.findIndex((t) => t.key === key);\n\n\t\tif (i < 0) return;\n\n\t\tstate.tabs.splice(i, 1);\n\n\t\tif (state.active !== key) return;\n\n\t\tconst next = state.tabs[i] || state.tabs[i - 1];\n\t\topen(state.prevActive ?? next?.key ?? \"\");\n\t};\n\n\tconst open = (key: TTabKey) => {\n\t\tif (key === state.active) {\n\t\t\tif (!toggable) return;\n\n\t\t\tonTabChange?.(undefined, key);\n\t\t\tstate.active = undefined;\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t};\n\t\t\treturn;\n\t\t}\n\n\t\tstate.prevActive = state.active;\n\t\tonTabChange?.(key, state.active);\n\t\tstate.active = key;\n\t};\n\n\tuseEffect(() => {\n\t\tif (!size || hideMore || !observe) return;\n\t\tconst { scrollHeight, scrollWidth } = navsRef.current as HTMLElement;\n\t\tconst { width, height } = size;\n\n\t\tstate.overflow = scrollHeight > height || scrollWidth > width;\n\n\t\tif (!state.overflow) return;\n\n\t\tnavRefs.current.map((nav, i) => {\n\t\t\tif (!nav) return;\n\t\t\tobserve(nav, (tar: HTMLElement, visible: boolean) => {\n\t\t\t\tif (!state.tabs[i]) return;\n\t\t\t\tstate.tabs[i].intersecting = visible;\n\t\t\t\tstate.more = state.tabs.filter((tab) => !tab.intersecting);\n\t\t\t});\n\t\t});\n\t}, [size, hideMore, state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!bar || type === \"pane\" || state.active === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst index = state.tabs.findIndex((tab) => tab.key === state.active);\n\n\t\tsetTimeout(() => {\n\t\t\tconst nav = navRefs.current[index];\n\n\t\t\tif (!nav) return;\n\n\t\t\tif (state.tabs[index].keepDOM && state.active) {\n\t\t\t\tconst i = state.cachedTabs.findIndex((k) => k === state.active);\n\t\t\t\ti < 0 && state.cachedTabs.unshift(state.active);\n\t\t\t}\n\n\t\t\tconst { offsetHeight, offsetLeft, offsetTop, offsetWidth } = nav;\n\t\t\tconst isLine = type === \"line\";\n\n\t\t\tstate.barStyle = {\n\t\t\t\theight: !vertical && isLine ? \".25em\" : offsetHeight,\n\t\t\t\twidth: vertical && isLine ? \".25em\" : offsetWidth,\n\t\t\t\ttransform: `translate(${offsetLeft}px, ${offsetTop}px)`,\n\t\t\t};\n\t\t}, 16);\n\t}, [state.active, bar, size]);\n\n\tuseEffect(() => {\n\t\tif (active === undefined || state.active === active) return;\n\n\t\topen(active);\n\t}, [active]);\n\n\tuseEffect(() => {\n\t\tif (hideMore || !unobserve) return;\n\n\t\treturn () => {\n\t\t\tnavRefs.current?.map(unobserve);\n\t\t};\n\t}, [state.tabs.length]);\n\n\tuseEffect(() => {\n\t\tif (!navsRef.current || vertical) return;\n\n\t\tconst handleMouseWheel = (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\n\t\t\tif (vertical) return;\n\n\t\t\tnavsRef.current?.scrollBy({\n\t\t\t\tleft: e.deltaY + e.deltaX,\n\t\t\t});\n\t\t};\n\n\t\tnavsRef.current.addEventListener(\"wheel\", handleMouseWheel, {\n\t\t\tpassive: false,\n\t\t});\n\n\t\treturn () => {\n\t\t\tif (!navsRef.current) return;\n\t\t\tnavsRef.current.removeEventListener(\"wheel\", handleMouseWheel);\n\t\t};\n\t}, [navsRef.current]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\topen,\n\t\tclose,\n\t\tadd,\n\t\tnavs: navsRef,\n\t}));\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-tabs\",\n\t\t\t\t{ flex: vertical, [`i-tabs-${type}`]: type !== \"default\" },\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-tab-navs-container\", {\n\t\t\t\t\t\"i-tab-navs-vertical\": vertical,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend}\n\n\t\t\t\t<div\n\t\t\t\t\tref={navsRef}\n\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\"i-tab-navs\",\n\t\t\t\t\t\t`justify-${navsJustify}`\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\t\tconst { title, key = i, closable } = tab;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tref={(ref) => (navRefs.current[i] = ref as any)}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": state.active === key,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t\t{closable && (\n\t\t\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\t\t\tas='i'\n\t\t\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\t\t\tclassName='i-tab-nav-close'\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tclose(key);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\n\t\t\t\t\t{bar && (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tref={barRef}\n\t\t\t\t\t\t\tclassName={classNames(\"i-tab-navs-bar\", barClass)}\n\t\t\t\t\t\t\tstyle={state.barStyle}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{!hideMore && state.overflow && state.more.length > 0 && (\n\t\t\t\t\t<Popup\n\t\t\t\t\t\tarrow={false}\n\t\t\t\t\t\tposition={vertical ? \"right\" : \"bottom\"}\n\t\t\t\t\t\talign='end'\n\t\t\t\t\t\ttouchable\n\t\t\t\t\t\thideDelay={500}\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\t<div className='i-tabs-morelist pd-4'>\n\t\t\t\t\t\t\t\t{state.more.map((tab, i) => {\n\t\t\t\t\t\t\t\t\tconst { key = i, title } = tab;\n\t\t\t\t\t\t\t\t\tconst isActive = state.active === key;\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-nav\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => open(key)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderMore(state.more)}\n\t\t\t\t\t</Popup>\n\t\t\t\t)}\n\n\t\t\t\t{append}\n\t\t\t</div>\n\n\t\t\t<div className='i-tab-contents'>\n\t\t\t\t{state.tabs.map((tab, i) => {\n\t\t\t\t\tconst { key = i, content } = tab;\n\t\t\t\t\tconst isActive = state.active === key;\n\t\t\t\t\tconst show =\n\t\t\t\t\t\tisActive ||\n\t\t\t\t\t\t(key !== undefined && state.cachedTabs.includes(key));\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\tshow && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-tab-content\", {\n\t\t\t\t\t\t\t\t\t\"i-tab-active\": isActive,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}) as CompositionTabs;\n\nTabs.Item = TabItem;\n\nexport default Tabs;\n"],"names":["_jsx","Button","Icon","MoreHorizRound","useRef","useReactive","useIntersectionObserver","useSize","useEffect","Children","pick","useImperativeHandle","_jsxs","classNames","Helpericon","Popup","TabItem"],"mappings":"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"}
|
|
@@ -11,11 +11,10 @@ var react = require('react');
|
|
|
11
11
|
var SortableContainer = require('react-easy-sort');
|
|
12
12
|
var index = require('../../js/usePreview/index.js');
|
|
13
13
|
var utils = require('../../js/utils.js');
|
|
14
|
-
require('../button/
|
|
14
|
+
var button = require('../button/button.js');
|
|
15
15
|
var icon = require('../icon/icon.js');
|
|
16
16
|
var container = require('../input/container.js');
|
|
17
17
|
var renderFile = require('./renderFile.js');
|
|
18
|
-
var button = require('../button/button.js');
|
|
19
18
|
|
|
20
19
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
21
20
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { PlusSharp } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultText = \"Upload\",\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tfiles,\n\t\tvalue,\n\t\tstatus,\n\t\tmessage,\n\t});\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button className='i-upload-btn' disabled={disabled}>\n\t\t\t\t\t\t{defaultText}\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst { files: before } = state;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\n\t\tObject.assign(state, {\n\t\t\tfiles: multiple ? after.slice(0, limit) : [after.at(-1)],\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\n\t\tonFilesChange?.(state.files, changed, e);\n\t\tonChange?.(state.files, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = state.files;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tstate.files = files;\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: state.files as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tstate.files = files.map((f) => {\n\t\t\treturn { ...f, id: f.id ?? uid(7) };\n\t\t});\n\t};\n\n\tconst handleSortEnd = (before, after) => {\n\t\tconst [...files] = state.files;\n\n\t\tstate.files = arrayMove(files, before, after);\n\t\tonChange?.(state.files);\n\t};\n\n\tuseEffect(() => {\n\t\tObject.assign(state, {\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tstate.files = value?.filter?.((file) => !!file.id) ?? [];\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => state.files,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{state.files.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{state.message && (\n\t\t\t\t\t<span className='i-upload-message'>{state.message}</span>\n\t\t\t\t)}\n\n\t\t\t\t{state.files.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"names":["useReactive","useRef","usePreview","useMemo","_jsx","Button","Icon","PlusSharp","uid","arrayMove","useEffect","useImperativeHandle","InputContainer","classNames","_jsxs","ListContainer","FileListItem","SortableItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload.js","sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { PlusSharp } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultText = \"Upload\",\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tfiles,\n\t\tvalue,\n\t\tstatus,\n\t\tmessage,\n\t});\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button className='i-upload-btn' disabled={disabled}>\n\t\t\t\t\t\t{defaultText}\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst { files: before } = state;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\n\t\tObject.assign(state, {\n\t\t\tfiles: multiple ? after.slice(0, limit) : [after.at(-1)],\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\n\t\tonFilesChange?.(state.files, changed, e);\n\t\tonChange?.(state.files, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = state.files;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tstate.files = files;\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: state.files as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tstate.files = files.map((f) => {\n\t\t\treturn { ...f, id: f.id ?? uid(7) };\n\t\t});\n\t};\n\n\tconst handleSortEnd = (before, after) => {\n\t\tconst [...files] = state.files;\n\n\t\tstate.files = arrayMove(files, before, after);\n\t\tonChange?.(state.files);\n\t};\n\n\tuseEffect(() => {\n\t\tObject.assign(state, {\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tstate.files = value?.filter?.((file) => !!file.id) ?? [];\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => state.files,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{state.files.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{state.message && (\n\t\t\t\t\t<span className='i-upload-message'>{state.message}</span>\n\t\t\t\t)}\n\n\t\t\t\t{state.files.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"names":["useReactive","useRef","usePreview","useMemo","_jsx","Button","Icon","PlusSharp","uid","arrayMove","useEffect","useImperativeHandle","InputContainer","classNames","_jsxs","ListContainer","FileListItem","SortableItem"],"mappings":"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"}
|