@ioca/react 1.3.95 → 1.3.97

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.
Files changed (211) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +31 -31
  3. package/lib/cjs/components/affix/affix.js.map +1 -1
  4. package/lib/cjs/components/affix/totop.js.map +1 -1
  5. package/lib/cjs/components/badge/badge.js.map +1 -1
  6. package/lib/cjs/components/button/button.js.map +1 -1
  7. package/lib/cjs/components/button/confirm.js.map +1 -1
  8. package/lib/cjs/components/button/group.js.map +1 -1
  9. package/lib/cjs/components/button/toggle.js.map +1 -1
  10. package/lib/cjs/components/card/card.js.map +1 -1
  11. package/lib/cjs/components/checkbox/checkbox.js.map +1 -1
  12. package/lib/cjs/components/checkbox/item.js.map +1 -1
  13. package/lib/cjs/components/collapse/collapse.js.map +1 -1
  14. package/lib/cjs/components/collapse/item.js.map +1 -1
  15. package/lib/cjs/components/datagrid/cell.js.map +1 -1
  16. package/lib/cjs/components/datagrid/datagrid.js.map +1 -1
  17. package/lib/cjs/components/datagrid/resize.js.map +1 -1
  18. package/lib/cjs/components/datagrid/row.js.map +1 -1
  19. package/lib/cjs/components/datagrid/sorter.js.map +1 -1
  20. package/lib/cjs/components/description/description.js.map +1 -1
  21. package/lib/cjs/components/drawer/drawer.js.map +1 -1
  22. package/lib/cjs/components/dropdown/dropdown.js.map +1 -1
  23. package/lib/cjs/components/dropdown/item.js.map +1 -1
  24. package/lib/cjs/components/editor/controls.js.map +1 -1
  25. package/lib/cjs/components/editor/editor.js.map +1 -1
  26. package/lib/cjs/components/flex/flex.js.map +1 -1
  27. package/lib/cjs/components/form/context.js.map +1 -1
  28. package/lib/cjs/components/form/field.js.map +1 -1
  29. package/lib/cjs/components/form/form.js.map +1 -1
  30. package/lib/cjs/components/form/useConfig.js.map +1 -1
  31. package/lib/cjs/components/form/useForm.js.map +1 -1
  32. package/lib/cjs/components/icon/icon.js.map +1 -1
  33. package/lib/cjs/components/image/image.js +0 -1
  34. package/lib/cjs/components/image/image.js.map +1 -1
  35. package/lib/cjs/components/image/list.js.map +1 -1
  36. package/lib/cjs/components/input/container.js.map +1 -1
  37. package/lib/cjs/components/input/input.js.map +1 -1
  38. package/lib/cjs/components/input/number.js.map +1 -1
  39. package/lib/cjs/components/input/range.js.map +1 -1
  40. package/lib/cjs/components/input/textarea.js +8 -3
  41. package/lib/cjs/components/input/textarea.js.map +1 -1
  42. package/lib/cjs/components/list/item.js.map +1 -1
  43. package/lib/cjs/components/list/list.js.map +1 -1
  44. package/lib/cjs/components/loading/loading.js.map +1 -1
  45. package/lib/cjs/components/message/message.js +6 -0
  46. package/lib/cjs/components/message/message.js.map +1 -1
  47. package/lib/cjs/components/modal/content.js.map +1 -1
  48. package/lib/cjs/components/modal/context.js.map +1 -1
  49. package/lib/cjs/components/modal/hookModal.js.map +1 -1
  50. package/lib/cjs/components/modal/modal.js.map +1 -1
  51. package/lib/cjs/components/modal/useModal.js.map +1 -1
  52. package/lib/cjs/components/pagination/page.js.map +1 -1
  53. package/lib/cjs/components/pagination/pagination.js.map +1 -1
  54. package/lib/cjs/components/picker/colors/footer.js.map +1 -1
  55. package/lib/cjs/components/picker/colors/handle.js.map +1 -1
  56. package/lib/cjs/components/picker/colors/index.js.map +1 -1
  57. package/lib/cjs/components/picker/dates/dates.js.map +1 -1
  58. package/lib/cjs/components/picker/dates/index.js.map +1 -1
  59. package/lib/cjs/components/picker/dates/panel.js.map +1 -1
  60. package/lib/cjs/components/picker/time/index.js.map +1 -1
  61. package/lib/cjs/components/picker/time/item.js.map +1 -1
  62. package/lib/cjs/components/picker/time/panel.js.map +1 -1
  63. package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
  64. package/lib/cjs/components/popup/content.js.map +1 -1
  65. package/lib/cjs/components/popup/popup.js.map +1 -1
  66. package/lib/cjs/components/progress/circle.js.map +1 -1
  67. package/lib/cjs/components/progress/line.js.map +1 -1
  68. package/lib/cjs/components/progress/progress.js.map +1 -1
  69. package/lib/cjs/components/radio/item.js.map +1 -1
  70. package/lib/cjs/components/radio/radio.js.map +1 -1
  71. package/lib/cjs/components/resizable/resizable.js.map +1 -1
  72. package/lib/cjs/components/river/river.js.map +1 -1
  73. package/lib/cjs/components/select/options.js.map +1 -1
  74. package/lib/cjs/components/select/select.js.map +1 -1
  75. package/lib/cjs/components/step/divider.js.map +1 -1
  76. package/lib/cjs/components/step/item.js.map +1 -1
  77. package/lib/cjs/components/step/step.js.map +1 -1
  78. package/lib/cjs/components/swiper/item.js.map +1 -1
  79. package/lib/cjs/components/swiper/swiper.js.map +1 -1
  80. package/lib/cjs/components/tabs/item.js.map +1 -1
  81. package/lib/cjs/components/tabs/tabs.js.map +1 -1
  82. package/lib/cjs/components/tag/tag.js.map +1 -1
  83. package/lib/cjs/components/text/highlight.js.map +1 -1
  84. package/lib/cjs/components/text/number.js.map +1 -1
  85. package/lib/cjs/components/text/text.js.map +1 -1
  86. package/lib/cjs/components/text/time.js.map +1 -1
  87. package/lib/cjs/components/tree/item.js.map +1 -1
  88. package/lib/cjs/components/tree/tree.js.map +1 -1
  89. package/lib/cjs/components/upload/renderFile.js.map +1 -1
  90. package/lib/cjs/components/upload/upload.js.map +1 -1
  91. package/lib/cjs/components/utils/empty/index.js.map +1 -1
  92. package/lib/cjs/components/utils/helpericon/helpericon.js.map +1 -1
  93. package/lib/cjs/components/video/video.js.map +1 -1
  94. package/lib/cjs/js/hooks.js.map +1 -1
  95. package/lib/cjs/js/usePreview/content.js +2 -0
  96. package/lib/cjs/js/usePreview/content.js.map +1 -1
  97. package/lib/cjs/js/usePreview/index.js.map +1 -1
  98. package/lib/cjs/js/usePreview/renderFile.js.map +1 -1
  99. package/lib/cjs/js/usePreview/type.js.map +1 -1
  100. package/lib/cjs/js/useRipple/index.js +6 -6
  101. package/lib/cjs/js/useRipple/index.js.map +1 -1
  102. package/lib/cjs/js/useTheme/index.js.map +1 -1
  103. package/lib/cjs/js/utils.js.map +1 -1
  104. package/lib/css/index.css +1 -1
  105. package/lib/css/index.css.map +1 -1
  106. package/lib/es/components/affix/affix.js.map +1 -1
  107. package/lib/es/components/affix/totop.js.map +1 -1
  108. package/lib/es/components/badge/badge.js.map +1 -1
  109. package/lib/es/components/button/button.js.map +1 -1
  110. package/lib/es/components/button/confirm.js.map +1 -1
  111. package/lib/es/components/button/group.js.map +1 -1
  112. package/lib/es/components/button/toggle.js.map +1 -1
  113. package/lib/es/components/card/card.js.map +1 -1
  114. package/lib/es/components/checkbox/checkbox.js.map +1 -1
  115. package/lib/es/components/checkbox/item.js.map +1 -1
  116. package/lib/es/components/collapse/collapse.js.map +1 -1
  117. package/lib/es/components/collapse/item.js.map +1 -1
  118. package/lib/es/components/datagrid/cell.js.map +1 -1
  119. package/lib/es/components/datagrid/datagrid.js.map +1 -1
  120. package/lib/es/components/datagrid/resize.js.map +1 -1
  121. package/lib/es/components/datagrid/row.js.map +1 -1
  122. package/lib/es/components/datagrid/sorter.js.map +1 -1
  123. package/lib/es/components/description/description.js.map +1 -1
  124. package/lib/es/components/drawer/drawer.js.map +1 -1
  125. package/lib/es/components/dropdown/dropdown.js.map +1 -1
  126. package/lib/es/components/dropdown/item.js.map +1 -1
  127. package/lib/es/components/editor/controls.js.map +1 -1
  128. package/lib/es/components/editor/editor.js.map +1 -1
  129. package/lib/es/components/flex/flex.js.map +1 -1
  130. package/lib/es/components/form/context.js.map +1 -1
  131. package/lib/es/components/form/field.js.map +1 -1
  132. package/lib/es/components/form/form.js.map +1 -1
  133. package/lib/es/components/form/useConfig.js.map +1 -1
  134. package/lib/es/components/form/useForm.js.map +1 -1
  135. package/lib/es/components/icon/icon.js.map +1 -1
  136. package/lib/es/components/image/image.js +0 -1
  137. package/lib/es/components/image/image.js.map +1 -1
  138. package/lib/es/components/image/list.js.map +1 -1
  139. package/lib/es/components/input/container.js.map +1 -1
  140. package/lib/es/components/input/input.js.map +1 -1
  141. package/lib/es/components/input/number.js.map +1 -1
  142. package/lib/es/components/input/range.js.map +1 -1
  143. package/lib/es/components/input/textarea.js +9 -4
  144. package/lib/es/components/input/textarea.js.map +1 -1
  145. package/lib/es/components/list/item.js.map +1 -1
  146. package/lib/es/components/list/list.js.map +1 -1
  147. package/lib/es/components/loading/loading.js.map +1 -1
  148. package/lib/es/components/message/message.js +6 -0
  149. package/lib/es/components/message/message.js.map +1 -1
  150. package/lib/es/components/modal/content.js.map +1 -1
  151. package/lib/es/components/modal/context.js.map +1 -1
  152. package/lib/es/components/modal/hookModal.js.map +1 -1
  153. package/lib/es/components/modal/modal.js.map +1 -1
  154. package/lib/es/components/modal/useModal.js.map +1 -1
  155. package/lib/es/components/pagination/page.js.map +1 -1
  156. package/lib/es/components/pagination/pagination.js.map +1 -1
  157. package/lib/es/components/picker/colors/footer.js.map +1 -1
  158. package/lib/es/components/picker/colors/handle.js.map +1 -1
  159. package/lib/es/components/picker/colors/index.js.map +1 -1
  160. package/lib/es/components/picker/dates/dates.js.map +1 -1
  161. package/lib/es/components/picker/dates/index.js.map +1 -1
  162. package/lib/es/components/picker/dates/panel.js.map +1 -1
  163. package/lib/es/components/picker/time/index.js.map +1 -1
  164. package/lib/es/components/picker/time/item.js.map +1 -1
  165. package/lib/es/components/picker/time/panel.js.map +1 -1
  166. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  167. package/lib/es/components/popup/content.js.map +1 -1
  168. package/lib/es/components/popup/popup.js.map +1 -1
  169. package/lib/es/components/progress/circle.js.map +1 -1
  170. package/lib/es/components/progress/line.js.map +1 -1
  171. package/lib/es/components/progress/progress.js.map +1 -1
  172. package/lib/es/components/radio/item.js.map +1 -1
  173. package/lib/es/components/radio/radio.js.map +1 -1
  174. package/lib/es/components/resizable/resizable.js.map +1 -1
  175. package/lib/es/components/river/river.js.map +1 -1
  176. package/lib/es/components/select/options.js.map +1 -1
  177. package/lib/es/components/select/select.js.map +1 -1
  178. package/lib/es/components/step/divider.js.map +1 -1
  179. package/lib/es/components/step/item.js.map +1 -1
  180. package/lib/es/components/step/step.js.map +1 -1
  181. package/lib/es/components/swiper/item.js.map +1 -1
  182. package/lib/es/components/swiper/swiper.js.map +1 -1
  183. package/lib/es/components/tabs/item.js.map +1 -1
  184. package/lib/es/components/tabs/tabs.js.map +1 -1
  185. package/lib/es/components/tag/tag.js.map +1 -1
  186. package/lib/es/components/text/highlight.js.map +1 -1
  187. package/lib/es/components/text/number.js.map +1 -1
  188. package/lib/es/components/text/text.js.map +1 -1
  189. package/lib/es/components/text/time.js.map +1 -1
  190. package/lib/es/components/tree/item.js.map +1 -1
  191. package/lib/es/components/tree/tree.js.map +1 -1
  192. package/lib/es/components/upload/renderFile.js.map +1 -1
  193. package/lib/es/components/upload/upload.js.map +1 -1
  194. package/lib/es/components/utils/empty/index.js.map +1 -1
  195. package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
  196. package/lib/es/components/video/video.js.map +1 -1
  197. package/lib/es/js/hooks.js.map +1 -1
  198. package/lib/es/js/usePreview/content.js +2 -0
  199. package/lib/es/js/usePreview/content.js.map +1 -1
  200. package/lib/es/js/usePreview/index.js.map +1 -1
  201. package/lib/es/js/usePreview/renderFile.js.map +1 -1
  202. package/lib/es/js/usePreview/type.js.map +1 -1
  203. package/lib/es/js/useRipple/index.js +6 -6
  204. package/lib/es/js/useRipple/index.js.map +1 -1
  205. package/lib/es/js/useTheme/index.js.map +1 -1
  206. package/lib/es/js/utils.js.map +1 -1
  207. package/lib/index.js +22 -10
  208. package/lib/types/components/input/type.d.ts +5 -2
  209. package/lib/types/components/message/message.d.ts +4 -0
  210. package/lib/types/js/useTheme/index.d.ts +1 -1
  211. package/package.json +102 -101
@@ -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":"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"}
1
+ {"version":3,"file":"controls.js","sources":["../../../../packages/components/editor/controls.tsx"],"sourcesContent":["import {\r\n\tClearAllRound,\r\n\tFormatBoldRound,\r\n\tFormatItalicRound,\r\n\tFormatUnderlinedRound,\r\n\tRedoRound,\r\n\tStrikethroughSRound,\r\n\tUndoRound,\r\n} from \"@ricons/material\";\r\nimport { Fragment } from \"react/jsx-runtime\";\r\nimport { escapeAttrValue } from \"xss\";\r\nimport Button from \"../button\";\r\nimport Icon from \"../icon\";\r\n\r\nexport const exec = (a, b?, c?) => {\r\n\tif (typeof document === \"undefined\") return;\r\n\treturn document.execCommand(a, b, c);\r\n};\r\n\r\nexport const xssOptions = {\r\n\tonIgnoreTagAttr: function (tag, name, value) {\r\n\t\tif ([\"data-\", \"style\"].includes(name.substr(0, 5))) {\r\n\t\t\treturn name + '=\"' + escapeAttrValue(value) + '\"';\r\n\t\t}\r\n\t},\r\n};\r\n\r\nconst fnMap = {\r\n\tbold: {\r\n\t\ticon: <FormatBoldRound />,\r\n\t\tonClick: () => exec(\"bold\"),\r\n\t\ttip: \"粗体\",\r\n\t},\r\n\titalic: {\r\n\t\ticon: <FormatItalicRound />,\r\n\t\tonClick: () => exec(\"italic\"),\r\n\t\ttip: \"斜体\",\r\n\t},\r\n\tunderline: {\r\n\t\ticon: <FormatUnderlinedRound />,\r\n\t\tonClick: () => exec(\"underline\"),\r\n\t\ttip: \"下划线\",\r\n\t},\r\n\tstrike: {\r\n\t\ticon: <StrikethroughSRound />,\r\n\t\tonClick: () => exec(\"strikeThrough\"),\r\n\t\ttip: \"删除线\",\r\n\t},\r\n\tredo: {\r\n\t\ticon: <RedoRound />,\r\n\t\tonClick: () => exec(\"redo\"),\r\n\t\ttip: \"重做\",\r\n\t},\r\n\tundo: {\r\n\t\ticon: <UndoRound />,\r\n\t\tonClick: () => exec(\"undo\"),\r\n\t\ttip: \"撤销\",\r\n\t},\r\n\t// color: {\r\n\t// \ticon: <FormatColorTextRound />,\r\n\t// \tonClick: () => exec(\"foreColor\", false, \"\"),\r\n\t// },\r\n\t// backColor: {\r\n\t// \ticon: <FormatColorFillRound />,\r\n\t// \tonClick: () => exec(\"backColor\", false, \"\"),\r\n\t// },\r\n\tclear: {\r\n\t\ticon: <ClearAllRound />,\r\n\t\tonClick: () => exec(\"removeFormat\"),\r\n\t\ttip: \"清除格式\",\r\n\t},\r\n};\r\n\r\nconst aliasMap = {\r\n\tsimple: [\"undo\", \"redo\", \"bold\", \"italic\", \"underline\", \"strike\", \"clear\"],\r\n\tall: Object.keys(fnMap),\r\n};\r\n\r\nexport default function getControls(fns, options) {\r\n\tconst { controlBtnProps } = options;\r\n\tconst keys = typeof fns === \"string\" ? aliasMap[fns] : fns;\r\n\r\n\treturn keys.map((k) => {\r\n\t\tif (fnMap[k]) {\r\n\t\t\tconst { icon, render, tip, onClick } = fnMap[k];\r\n\r\n\t\t\tif (render) {\r\n\t\t\t\treturn render(options);\r\n\t\t\t}\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<Button key={k} {...controlBtnProps} onClick={onClick}>\r\n\t\t\t\t\t<Icon icon={icon} />\r\n\t\t\t\t\t{tip && <span className='i-editor-control-tip'>{tip}</span>}\r\n\t\t\t\t</Button>\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn <Fragment key={k} />;\r\n\t});\r\n}\r\n"],"names":["escapeAttrValue","_jsx","FormatBoldRound","FormatItalicRound","FormatUnderlinedRound","StrikethroughSRound","RedoRound","UndoRound","ClearAllRound","icon","_jsxs","Button","Icon","Fragment"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor.js","sources":["../../../../packages/components/editor/editor.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useImperativeHandle, useRef } from \"react\";\nimport xss from \"xss\";\nimport { IButton } from \"../button/type\";\nimport getControls, { exec, xssOptions } from \"./controls\";\nimport \"./index.css\";\nimport { IEditor } from \"./type\";\n\nconst Editor = (props: IEditor) => {\n\tconst {\n\t\tref,\n\t\twidth,\n\t\theight = \"10em\",\n\t\tplaceholder,\n\t\tautosize,\n\t\tborder = true,\n\t\trichPaste,\n\t\tcontrols = \"simple\",\n\t\tclassName,\n\t\tstyle,\n\t\tonInput,\n\t\tonPaste,\n\t\tonKeyDown,\n\t\t...restProps\n\t} = props;\n\tconst editorRef = useRef<HTMLDivElement>(null);\n\tconst controlBtnProps: IButton = {\n\t\tsquare: true,\n\t\tflat: true,\n\t\tsize: \"small\",\n\t};\n\n\tconst handlePaste = async (e) => {\n\t\tonPaste?.(e);\n\n\t\tif (richPaste) return;\n\t\te.preventDefault();\n\t\tconst text = e.clipboardData.getData(\"text/plain\");\n\t\texec(\"insertText\", false, text);\n\t};\n\n\tconst handleKeyDown = (e) => {\n\t\tonKeyDown?.(e);\n\n\t\tswitch (e.key) {\n\t\t\tcase \"Tab\":\n\t\t\t\te.preventDefault();\n\t\t\t\texec(\"insertHTML\", false, \"&#09;\");\n\t\t\t\tbreak;\n\t\t\tcase \"Enter\":\n\t\t\t\te.preventDefault();\n\t\t\t\texec(\"insertLineBreak\");\n\n\t\t\t\tif (!editorRef.current) return;\n\t\t\t\teditorRef.current.scrollBy({\n\t\t\t\t\ttop: 20,\n\t\t\t\t\tleft: -1000,\n\t\t\t\t});\n\n\t\t\t\tif (!autosize) return;\n\t\t\t\teditorRef.current.style.height = `${editorRef.current.scrollHeight}px`;\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tinput: editorRef.current,\n\t\t\tsetValue(html) {\n\t\t\t\tif (!editorRef.current) return;\n\t\t\t\tconst safeHtml = xss(html, xssOptions);\n\n\t\t\t\teditorRef.current.innerHTML = safeHtml;\n\t\t\t},\n\t\t\tgetSafeValue() {\n\t\t\t\tconst html = editorRef.current?.innerHTML ?? \"\";\n\n\t\t\t\treturn xss(html, xssOptions);\n\t\t\t},\n\t\t};\n\t});\n\n\tconst handleInput = (e) => {\n\t\tlet html = editorRef.current?.innerHTML ?? \"\";\n\n\t\tif ([\"<br>\", \"\\n\"].includes(html) && editorRef.current) {\n\t\t\thtml = \"\";\n\t\t\teditorRef.current.innerHTML = html;\n\t\t}\n\n\t\tonInput?.(html, e);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-editor\", className, {\n\t\t\t\t\"i-editor-borderless\": !border,\n\t\t\t})}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\t[autosize ? \"minHeight\" : \"height\"]: height,\n\t\t\t\twidth,\n\t\t\t}}\n\t\t>\n\t\t\t{controls !== \"none\" && (\n\t\t\t\t<div className='i-editor-controls'>\n\t\t\t\t\t{getControls(controls, {\n\t\t\t\t\t\tcontrolBtnProps,\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tref={editorRef}\n\t\t\t\tclassName='i-editor-content'\n\t\t\t\tdata-placeholder={placeholder}\n\t\t\t\tcontentEditable\n\t\t\t\tonPaste={handlePaste}\n\t\t\t\tonInput={handleInput}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Editor;\n"],"names":["controls","useRef","exec","useImperativeHandle","xss","xssOptions","_jsxs","classNames","_jsx","getControls"],"mappings":"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"}
1
+ {"version":3,"file":"editor.js","sources":["../../../../packages/components/editor/editor.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { useImperativeHandle, useRef } from \"react\";\r\nimport xss from \"xss\";\r\nimport { IButton } from \"../button/type\";\r\nimport getControls, { exec, xssOptions } from \"./controls\";\r\nimport \"./index.css\";\r\nimport { IEditor } from \"./type\";\r\n\r\nconst Editor = (props: IEditor) => {\r\n\tconst {\r\n\t\tref,\r\n\t\twidth,\r\n\t\theight = \"10em\",\r\n\t\tplaceholder,\r\n\t\tautosize,\r\n\t\tborder = true,\r\n\t\trichPaste,\r\n\t\tcontrols = \"simple\",\r\n\t\tclassName,\r\n\t\tstyle,\r\n\t\tonInput,\r\n\t\tonPaste,\r\n\t\tonKeyDown,\r\n\t\t...restProps\r\n\t} = props;\r\n\tconst editorRef = useRef<HTMLDivElement>(null);\r\n\tconst controlBtnProps: IButton = {\r\n\t\tsquare: true,\r\n\t\tflat: true,\r\n\t\tsize: \"small\",\r\n\t};\r\n\r\n\tconst handlePaste = async (e) => {\r\n\t\tonPaste?.(e);\r\n\r\n\t\tif (richPaste) return;\r\n\t\te.preventDefault();\r\n\t\tconst text = e.clipboardData.getData(\"text/plain\");\r\n\t\texec(\"insertText\", false, text);\r\n\t};\r\n\r\n\tconst handleKeyDown = (e) => {\r\n\t\tonKeyDown?.(e);\r\n\r\n\t\tswitch (e.key) {\r\n\t\t\tcase \"Tab\":\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\texec(\"insertHTML\", false, \"&#09;\");\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Enter\":\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\texec(\"insertLineBreak\");\r\n\r\n\t\t\t\tif (!editorRef.current) return;\r\n\t\t\t\teditorRef.current.scrollBy({\r\n\t\t\t\t\ttop: 20,\r\n\t\t\t\t\tleft: -1000,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!autosize) return;\r\n\t\t\t\teditorRef.current.style.height = `${editorRef.current.scrollHeight}px`;\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\tuseImperativeHandle(ref, () => {\r\n\t\treturn {\r\n\t\t\tinput: editorRef.current,\r\n\t\t\tsetValue(html) {\r\n\t\t\t\tif (!editorRef.current) return;\r\n\t\t\t\tconst safeHtml = xss(html, xssOptions);\r\n\r\n\t\t\t\teditorRef.current.innerHTML = safeHtml;\r\n\t\t\t},\r\n\t\t\tgetSafeValue() {\r\n\t\t\t\tconst html = editorRef.current?.innerHTML ?? \"\";\r\n\r\n\t\t\t\treturn xss(html, xssOptions);\r\n\t\t\t},\r\n\t\t};\r\n\t});\r\n\r\n\tconst handleInput = (e) => {\r\n\t\tlet html = editorRef.current?.innerHTML ?? \"\";\r\n\r\n\t\tif ([\"<br>\", \"\\n\"].includes(html) && editorRef.current) {\r\n\t\t\thtml = \"\";\r\n\t\t\teditorRef.current.innerHTML = html;\r\n\t\t}\r\n\r\n\t\tonInput?.(html, e);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={classNames(\"i-editor\", className, {\r\n\t\t\t\t\"i-editor-borderless\": !border,\r\n\t\t\t})}\r\n\t\t\tstyle={{\r\n\t\t\t\t...style,\r\n\t\t\t\t[autosize ? \"minHeight\" : \"height\"]: height,\r\n\t\t\t\twidth,\r\n\t\t\t}}\r\n\t\t>\r\n\t\t\t{controls !== \"none\" && (\r\n\t\t\t\t<div className='i-editor-controls'>\r\n\t\t\t\t\t{getControls(controls, {\r\n\t\t\t\t\t\tcontrolBtnProps,\r\n\t\t\t\t\t})}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\r\n\t\t\t<div\r\n\t\t\t\tref={editorRef}\r\n\t\t\t\tclassName='i-editor-content'\r\n\t\t\t\tdata-placeholder={placeholder}\r\n\t\t\t\tcontentEditable\r\n\t\t\t\tonPaste={handlePaste}\r\n\t\t\t\tonInput={handleInput}\r\n\t\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\t\t{...restProps}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Editor;\r\n"],"names":["controls","useRef","exec","useImperativeHandle","xss","xssOptions","_jsxs","classNames","_jsx","getControls"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"flex.js","sources":["../../../../packages/components/flex/flex.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport \"./index.css\";\nimport { IFlex } from \"./type\";\n\nconst Flex: React.FC<IFlex> = (props: IFlex) => {\n\tconst {\n\t\tas: Component = \"div\" as any,\n\t\talign,\n\t\tjustify,\n\t\tdirection,\n\t\twrap,\n\t\tgap,\n\t\tcolumns,\n\t\tclassName,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst gridColumns = useMemo(() => {\n\t\tif (!columns) return;\n\n\t\tif (typeof columns === \"number\") return `repeat(${columns}, 1fr)`;\n\n\t\treturn columns;\n\t}, [columns]);\n\n\treturn (\n\t\t<Component\n\t\t\t{...restProps}\n\t\t\tstyle={{\n\t\t\t\talignItems: align,\n\t\t\t\tjustifyContent: justify,\n\t\t\t\tgap,\n\t\t\t\tflexDirection: direction,\n\t\t\t\tflexWrap: wrap === true ? \"wrap\" : wrap,\n\t\t\t\tgridTemplateColumns: gridColumns as any,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t[columns ? \"grid\" : \"flex\"]: true,\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport default Flex;\n"],"names":["useMemo","_jsx","classNames"],"mappings":";;;;;;;;;;;;AAKA,MAAM,IAAI,GAAoB,CAAC,KAAY,KAAI;AAC9C,IAAA,MAAM,EACL,EAAE,EAAE,SAAS,GAAG,KAAY,EAC5B,KAAK,EACL,OAAO,EACP,SAAS,EACT,IAAI,EACJ,GAAG,EACH,OAAO,EACP,SAAS,EACT,KAAK,EACL,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAGA,aAAO,CAAC,MAAK;AAChC,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAA,OAAA,EAAU,OAAO,CAAA,MAAA,CAAQ;AAEjE,QAAA,OAAO,OAAO;AACf,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,QACCC,cAAC,CAAA,SAAS,OACL,SAAS,EACb,KAAK,EAAE;AACN,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,cAAc,EAAE,OAAO;YACvB,GAAG;AACH,YAAA,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;AACvC,YAAA,mBAAmB,EAAE,WAAkB;AACvC,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAEC,mBAAU,CAAC,SAAS,EAAE;YAChC,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;SACjC,CAAC,EAAA,CACD;AAEJ;;;;"}
1
+ {"version":3,"file":"flex.js","sources":["../../../../packages/components/flex/flex.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { useMemo } from \"react\";\r\nimport \"./index.css\";\r\nimport { IFlex } from \"./type\";\r\n\r\nconst Flex: React.FC<IFlex> = (props: IFlex) => {\r\n\tconst {\r\n\t\tas: Component = \"div\" as any,\r\n\t\talign,\r\n\t\tjustify,\r\n\t\tdirection,\r\n\t\twrap,\r\n\t\tgap,\r\n\t\tcolumns,\r\n\t\tclassName,\r\n\t\tstyle,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst gridColumns = useMemo(() => {\r\n\t\tif (!columns) return;\r\n\r\n\t\tif (typeof columns === \"number\") return `repeat(${columns}, 1fr)`;\r\n\r\n\t\treturn columns;\r\n\t}, [columns]);\r\n\r\n\treturn (\r\n\t\t<Component\r\n\t\t\t{...restProps}\r\n\t\t\tstyle={{\r\n\t\t\t\talignItems: align,\r\n\t\t\t\tjustifyContent: justify,\r\n\t\t\t\tgap,\r\n\t\t\t\tflexDirection: direction,\r\n\t\t\t\tflexWrap: wrap === true ? \"wrap\" : wrap,\r\n\t\t\t\tgridTemplateColumns: gridColumns as any,\r\n\t\t\t\t...style,\r\n\t\t\t}}\r\n\t\t\tclassName={classNames(className, {\r\n\t\t\t\t[columns ? \"grid\" : \"flex\"]: true,\r\n\t\t\t})}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default Flex;\r\n"],"names":["useMemo","_jsx","classNames"],"mappings":";;;;;;;;;;;;AAKA,MAAM,IAAI,GAAoB,CAAC,KAAY,KAAI;AAC9C,IAAA,MAAM,EACL,EAAE,EAAE,SAAS,GAAG,KAAY,EAC5B,KAAK,EACL,OAAO,EACP,SAAS,EACT,IAAI,EACJ,GAAG,EACH,OAAO,EACP,SAAS,EACT,KAAK,EACL,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,WAAW,GAAGA,aAAO,CAAC,MAAK;AAChC,QAAA,IAAI,CAAC,OAAO;YAAE;QAEd,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAA,OAAA,EAAU,OAAO,CAAA,MAAA,CAAQ;AAEjE,QAAA,OAAO,OAAO;AACf,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,QACCC,cAAC,CAAA,SAAS,OACL,SAAS,EACb,KAAK,EAAE;AACN,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,cAAc,EAAE,OAAO;YACvB,GAAG;AACH,YAAA,aAAa,EAAE,SAAS;YACxB,QAAQ,EAAE,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;AACvC,YAAA,mBAAmB,EAAE,WAAkB;AACvC,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAEC,mBAAU,CAAC,SAAS,EAAE;YAChC,CAAC,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;SACjC,CAAC,EAAA,CACD;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../packages/components/form/context.tsx"],"sourcesContent":["import { createContext } from \"react\";\nimport { IFormInstance } from \"./useForm\";\n\nconst Context = createContext({} as IFormInstance);\n\nexport default Context;\n"],"names":["createContext"],"mappings":";;;;;;AAGA,MAAM,OAAO,GAAGA,mBAAa,CAAC,EAAmB;;;;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../packages/components/form/context.tsx"],"sourcesContent":["import { createContext } from \"react\";\r\nimport { IFormInstance } from \"./useForm\";\r\n\r\nconst Context = createContext({} as IFormInstance);\r\n\r\nexport default Context;\r\n"],"names":["createContext"],"mappings":";;;;;;AAGA,MAAM,OAAO,GAAGA,mBAAa,CAAC,EAAmB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sources":["../../../../packages/components/form/field.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\nimport PubSub from \"pubsub-js\";\nimport {\n\tChildren,\n\tcloneElement,\n\tisValidElement,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n} from \"react\";\nimport Context from \"./context\";\nimport { IField } from \"./type\";\n\nfunction Field(props: IField) {\n\tconst { name, required, children } = props;\n\tconst state = useReactive({\n\t\tvalue: undefined,\n\t\tstatus: \"normal\",\n\t\tmessage: undefined,\n\t\tupdate: 0,\n\t});\n\tconst form = useContext(Context);\n\tconst { id } = form;\n\n\tconst handleChange = (v) => {\n\t\tif (!name) return;\n\n\t\tform.set(name, v);\n\t\tPubSub.publish(`${id}:change`, {\n\t\t\tname,\n\t\t\tvalue: v,\n\t\t});\n\t};\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node) => {\n\t\t\tif (!isValidElement(node)) return null;\n\n\t\t\tconst { onChange } = node.props as any;\n\t\t\tconst { value, status, message } = state;\n\n\t\t\treturn cloneElement(node, {\n\t\t\t\tvalue,\n\t\t\t\tstatus,\n\t\t\t\tmessage,\n\t\t\t\trequired,\n\t\t\t\tonChange: (...args) => {\n\t\t\t\t\thandleChange(args[0]);\n\t\t\t\t\tonChange?.(...args);\n\t\t\t\t\tObject.assign(state, {\n\t\t\t\t\t\tstatus: \"normal\",\n\t\t\t\t\t\tmessage: undefined,\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t} as any);\n\t\t});\n\t}, [children, state.update]);\n\n\tuseEffect(() => {\n\t\tif (!name) return;\n\n\t\tPubSub.subscribe(`${id}:set:${name}`, (evt, v) => {\n\t\t\tstate.value = v;\n\t\t\tstate.update += 1;\n\t\t});\n\t\tPubSub.subscribe(`${id}:invalid:${name}`, (evt, v) => {\n\t\t\tObject.assign(state, v);\n\t\t\tstate.update += 1;\n\t\t});\n\n\t\tPromise.resolve().then(() => {\n\t\t\tform.set(name, form.cacheData[name] ?? undefined);\n\t\t});\n\n\t\treturn () => {\n\t\t\tPubSub.unsubscribe(`${id}:set:${name}`);\n\t\t\tPubSub.unsubscribe(`${id}:invalid:${name}`);\n\t\t\tform.delete(name);\n\t\t};\n\t}, [name, children]);\n\n\tif (!name) return children;\n\n\treturn hijackChildren;\n}\n\nexport default Field;\n"],"names":["useReactive","useContext","Context","PubSub","useMemo","Children","isValidElement","cloneElement","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sources":["../../../../packages/components/form/field.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\r\nimport PubSub from \"pubsub-js\";\r\nimport {\r\n\tChildren,\r\n\tcloneElement,\r\n\tisValidElement,\r\n\tuseContext,\r\n\tuseEffect,\r\n\tuseMemo,\r\n} from \"react\";\r\nimport Context from \"./context\";\r\nimport { IField } from \"./type\";\r\n\r\nfunction Field(props: IField) {\r\n\tconst { name, required, children } = props;\r\n\tconst state = useReactive({\r\n\t\tvalue: undefined,\r\n\t\tstatus: \"normal\",\r\n\t\tmessage: undefined,\r\n\t\tupdate: 0,\r\n\t});\r\n\tconst form = useContext(Context);\r\n\tconst { id } = form;\r\n\r\n\tconst handleChange = (v) => {\r\n\t\tif (!name) return;\r\n\r\n\t\tform.set(name, v);\r\n\t\tPubSub.publish(`${id}:change`, {\r\n\t\t\tname,\r\n\t\t\tvalue: v,\r\n\t\t});\r\n\t};\r\n\r\n\tconst hijackChildren = useMemo(() => {\r\n\t\treturn Children.map(children, (node) => {\r\n\t\t\tif (!isValidElement(node)) return null;\r\n\r\n\t\t\tconst { onChange } = node.props as any;\r\n\t\t\tconst { value, status, message } = state;\r\n\r\n\t\t\treturn cloneElement(node, {\r\n\t\t\t\tvalue,\r\n\t\t\t\tstatus,\r\n\t\t\t\tmessage,\r\n\t\t\t\trequired,\r\n\t\t\t\tonChange: (...args) => {\r\n\t\t\t\t\thandleChange(args[0]);\r\n\t\t\t\t\tonChange?.(...args);\r\n\t\t\t\t\tObject.assign(state, {\r\n\t\t\t\t\t\tstatus: \"normal\",\r\n\t\t\t\t\t\tmessage: undefined,\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t} as any);\r\n\t\t});\r\n\t}, [children, state.update]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!name) return;\r\n\r\n\t\tPubSub.subscribe(`${id}:set:${name}`, (evt, v) => {\r\n\t\t\tstate.value = v;\r\n\t\t\tstate.update += 1;\r\n\t\t});\r\n\t\tPubSub.subscribe(`${id}:invalid:${name}`, (evt, v) => {\r\n\t\t\tObject.assign(state, v);\r\n\t\t\tstate.update += 1;\r\n\t\t});\r\n\r\n\t\tPromise.resolve().then(() => {\r\n\t\t\tform.set(name, form.cacheData[name] ?? undefined);\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tPubSub.unsubscribe(`${id}:set:${name}`);\r\n\t\t\tPubSub.unsubscribe(`${id}:invalid:${name}`);\r\n\t\t\tform.delete(name);\r\n\t\t};\r\n\t}, [name, children]);\r\n\r\n\tif (!name) return children;\r\n\r\n\treturn hijackChildren;\r\n}\r\n\r\nexport default Field;\r\n"],"names":["useReactive","useContext","Context","PubSub","useMemo","Children","isValidElement","cloneElement","useEffect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sources":["../../../../packages/components/form/form.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport PubSub from \"pubsub-js\";\nimport { CSSProperties, useEffect, useMemo } from \"react\";\nimport Context from \"./context\";\nimport Field from \"./field\";\nimport \"./index.css\";\nimport { IForm } from \"./type\";\nimport useConfig from \"./useConfig\";\nimport useForm, { IFormInstance } from \"./useForm\";\n\nconst Form = (props: IForm) => {\n\tconst {\n\t\tform = {} as IFormInstance,\n\t\trules,\n\t\tinitialValues,\n\t\tstyle,\n\t\tclassName,\n\t\twidth,\n\t\tcolumns,\n\t\titemMaxWidth,\n\t\tgap = \"1em\",\n\t\tlabelInline,\n\t\tlabelWidth,\n\t\tlabelRight,\n\t\tchildren,\n\t\tonKeyDown,\n\t\tonEnter,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst handleKeyDown = (e) => {\n\t\tonKeyDown?.(e);\n\n\t\tif (e.keyCode !== 13) return;\n\n\t\tonEnter?.(e, form.data, form);\n\t};\n\n\tconst gridColumns = useMemo(() => {\n\t\tif (!columns && !itemMaxWidth) return;\n\n\t\tif (itemMaxWidth) {\n\t\t\treturn `repeat(auto-fill, minmax(${itemMaxWidth}, 1fr))`;\n\t\t}\n\n\t\tif (typeof columns === \"number\") {\n\t\t\treturn `minmax(0, 1fr) `.repeat(columns);\n\t\t}\n\n\t\treturn columns;\n\t}, [columns]);\n\n\tuseEffect(() => {\n\t\tObject.assign(form, {\n\t\t\tdata: { ...initialValues },\n\t\t\trules,\n\t\t});\n\t}, [form]);\n\n\tuseEffect(() => {\n\t\tPubSub.subscribe(`${form.id}:change`, (evt, v) => {\n\t\t\tonChange?.(v.name, v.value);\n\t\t});\n\n\t\treturn () => {\n\t\t\tPubSub.unsubscribe(`${form.id}:change`);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<Context value={form}>\n\t\t\t<form\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t...style,\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\tgap,\n\t\t\t\t\t\tgridTemplateColumns: gridColumns as any,\n\t\t\t\t\t\t\"--label-width\": labelWidth,\n\t\t\t\t\t\t\"--label-align\": labelRight ? \"right\" : undefined,\n\t\t\t\t\t} as CSSProperties\n\t\t\t\t}\n\t\t\t\tclassName={classNames(\"i-form\", className, {\n\t\t\t\t\t\"i-form-inline\": labelInline,\n\t\t\t\t})}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\t{...restProps}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</form>\n\t\t</Context>\n\t);\n};\n\nForm.useForm = useForm;\nForm.Field = Field;\nForm.useConfig = useConfig;\n\nexport default Form;\n"],"names":["useMemo","useEffect","PubSub","_jsx","Context","classNames","useForm","Field","useConfig"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;AAC7B,IAAA,MAAM,EACL,IAAI,GAAG,EAAmB,EAC1B,KAAK,EACL,aAAa,EACb,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,YAAY,EACZ,GAAG,GAAG,KAAK,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAI;AAC3B,QAAA,SAAS,GAAG,CAAC,CAAC;AAEd,QAAA,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;YAAE;QAEtB,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9B,KAAC;AAED,IAAA,MAAM,WAAW,GAAGA,aAAO,CAAC,MAAK;AAChC,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY;YAAE;QAE/B,IAAI,YAAY,EAAE;YACjB,OAAO,CAAA,yBAAA,EAA4B,YAAY,CAAA,OAAA,CAAS;;AAGzD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;;AAGzC,QAAA,OAAO,OAAO;AACf,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEbC,eAAS,CAAC,MAAK;AACd,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AACnB,YAAA,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE;YAC1B,KAAK;AACL,SAAA,CAAC;AACH,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEVA,eAAS,CAAC,MAAK;AACd,QAAAC,eAAM,CAAC,SAAS,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAS,OAAA,CAAA,EAAE,CAAC,GAAG,EAAE,CAAC,KAAI;YAChD,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AAC5B,SAAC,CAAC;AAEF,QAAA,OAAO,MAAK;YACXA,eAAM,CAAC,WAAW,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAS,OAAA,CAAA,CAAC;AACxC,SAAC;KACD,EAAE,EAAE,CAAC;IAEN,QACCC,cAAC,CAAAC,eAAO,EAAC,EAAA,KAAK,EAAE,IAAI,EAAA,QAAA,EACnBD,cACC,CAAA,MAAA,EAAA,EAAA,KAAK,EACJ;AACC,gBAAA,GAAG,KAAK;gBACR,KAAK;gBACL,GAAG;AACH,gBAAA,mBAAmB,EAAE,WAAkB;AACvC,gBAAA,eAAe,EAAE,UAAU;gBAC3B,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;AAChC,aAAA,EAEnB,SAAS,EAAEE,mBAAU,CAAC,QAAQ,EAAE,SAAS,EAAE;AAC1C,gBAAA,eAAe,EAAE,WAAW;aAC5B,CAAC,EACF,SAAS,EAAE,aAAa,EAAA,GACpB,SAAS,EAAA,QAAA,EAEZ,QAAQ,EAAA,CACH,EACE,CAAA;AAEZ;AAEA,IAAI,CAAC,OAAO,GAAGC,eAAO;AACtB,IAAI,CAAC,KAAK,GAAGC,aAAK;AAClB,IAAI,CAAC,SAAS,GAAGC,iBAAS;;;;"}
1
+ {"version":3,"file":"form.js","sources":["../../../../packages/components/form/form.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport PubSub from \"pubsub-js\";\r\nimport { CSSProperties, useEffect, useMemo } from \"react\";\r\nimport Context from \"./context\";\r\nimport Field from \"./field\";\r\nimport \"./index.css\";\r\nimport { IForm } from \"./type\";\r\nimport useConfig from \"./useConfig\";\r\nimport useForm, { IFormInstance } from \"./useForm\";\r\n\r\nconst Form = (props: IForm) => {\r\n\tconst {\r\n\t\tform = {} as IFormInstance,\r\n\t\trules,\r\n\t\tinitialValues,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\twidth,\r\n\t\tcolumns,\r\n\t\titemMaxWidth,\r\n\t\tgap = \"1em\",\r\n\t\tlabelInline,\r\n\t\tlabelWidth,\r\n\t\tlabelRight,\r\n\t\tchildren,\r\n\t\tonKeyDown,\r\n\t\tonEnter,\r\n\t\tonChange,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst handleKeyDown = (e) => {\r\n\t\tonKeyDown?.(e);\r\n\r\n\t\tif (e.keyCode !== 13) return;\r\n\r\n\t\tonEnter?.(e, form.data, form);\r\n\t};\r\n\r\n\tconst gridColumns = useMemo(() => {\r\n\t\tif (!columns && !itemMaxWidth) return;\r\n\r\n\t\tif (itemMaxWidth) {\r\n\t\t\treturn `repeat(auto-fill, minmax(${itemMaxWidth}, 1fr))`;\r\n\t\t}\r\n\r\n\t\tif (typeof columns === \"number\") {\r\n\t\t\treturn `minmax(0, 1fr) `.repeat(columns);\r\n\t\t}\r\n\r\n\t\treturn columns;\r\n\t}, [columns]);\r\n\r\n\tuseEffect(() => {\r\n\t\tObject.assign(form, {\r\n\t\t\tdata: { ...initialValues },\r\n\t\t\trules,\r\n\t\t});\r\n\t}, [form]);\r\n\r\n\tuseEffect(() => {\r\n\t\tPubSub.subscribe(`${form.id}:change`, (evt, v) => {\r\n\t\t\tonChange?.(v.name, v.value);\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tPubSub.unsubscribe(`${form.id}:change`);\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn (\r\n\t\t<Context value={form}>\r\n\t\t\t<form\r\n\t\t\t\tstyle={\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t...style,\r\n\t\t\t\t\t\twidth,\r\n\t\t\t\t\t\tgap,\r\n\t\t\t\t\t\tgridTemplateColumns: gridColumns as any,\r\n\t\t\t\t\t\t\"--label-width\": labelWidth,\r\n\t\t\t\t\t\t\"--label-align\": labelRight ? \"right\" : undefined,\r\n\t\t\t\t\t} as CSSProperties\r\n\t\t\t\t}\r\n\t\t\t\tclassName={classNames(\"i-form\", className, {\r\n\t\t\t\t\t\"i-form-inline\": labelInline,\r\n\t\t\t\t})}\r\n\t\t\t\tonKeyDown={handleKeyDown}\r\n\t\t\t\t{...restProps}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t</form>\r\n\t\t</Context>\r\n\t);\r\n};\r\n\r\nForm.useForm = useForm;\r\nForm.Field = Field;\r\nForm.useConfig = useConfig;\r\n\r\nexport default Form;\r\n"],"names":["useMemo","useEffect","PubSub","_jsx","Context","classNames","useForm","Field","useConfig"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;AAC7B,IAAA,MAAM,EACL,IAAI,GAAG,EAAmB,EAC1B,KAAK,EACL,aAAa,EACb,KAAK,EACL,SAAS,EACT,KAAK,EACL,OAAO,EACP,YAAY,EACZ,GAAG,GAAG,KAAK,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAI;AAC3B,QAAA,SAAS,GAAG,CAAC,CAAC;AAEd,QAAA,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE;YAAE;QAEtB,OAAO,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9B,KAAC;AAED,IAAA,MAAM,WAAW,GAAGA,aAAO,CAAC,MAAK;AAChC,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY;YAAE;QAE/B,IAAI,YAAY,EAAE;YACjB,OAAO,CAAA,yBAAA,EAA4B,YAAY,CAAA,OAAA,CAAS;;AAGzD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;;AAGzC,QAAA,OAAO,OAAO;AACf,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEbC,eAAS,CAAC,MAAK;AACd,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;AACnB,YAAA,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE;YAC1B,KAAK;AACL,SAAA,CAAC;AACH,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEVA,eAAS,CAAC,MAAK;AACd,QAAAC,eAAM,CAAC,SAAS,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAS,OAAA,CAAA,EAAE,CAAC,GAAG,EAAE,CAAC,KAAI;YAChD,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC;AAC5B,SAAC,CAAC;AAEF,QAAA,OAAO,MAAK;YACXA,eAAM,CAAC,WAAW,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAS,OAAA,CAAA,CAAC;AACxC,SAAC;KACD,EAAE,EAAE,CAAC;IAEN,QACCC,cAAC,CAAAC,eAAO,EAAC,EAAA,KAAK,EAAE,IAAI,EAAA,QAAA,EACnBD,cACC,CAAA,MAAA,EAAA,EAAA,KAAK,EACJ;AACC,gBAAA,GAAG,KAAK;gBACR,KAAK;gBACL,GAAG;AACH,gBAAA,mBAAmB,EAAE,WAAkB;AACvC,gBAAA,eAAe,EAAE,UAAU;gBAC3B,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS;AAChC,aAAA,EAEnB,SAAS,EAAEE,mBAAU,CAAC,QAAQ,EAAE,SAAS,EAAE;AAC1C,gBAAA,eAAe,EAAE,WAAW;aAC5B,CAAC,EACF,SAAS,EAAE,aAAa,EAAA,GACpB,SAAS,EAAA,QAAA,EAEZ,QAAQ,EAAA,CACH,EACE,CAAA;AAEZ;AAEA,IAAI,CAAC,OAAO,GAAGC,eAAO;AACtB,IAAI,CAAC,KAAK,GAAGC,aAAK;AAClB,IAAI,CAAC,SAAS,GAAGC,iBAAS;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useConfig.js","sources":["../../../../packages/components/form/useConfig.tsx"],"sourcesContent":["import { Fragment, useMemo, useState } from \"react\";\nimport Field from \"./field\";\nimport Form from \"./form\";\nimport { IForm, IFormItem } from \"./type\";\nimport useForm from \"./useForm\";\n\nexport default function useConfig(configs: IFormItem[], formProps?: IForm) {\n\tconst form = useForm();\n\tconst { onChange } = formProps ?? {};\n\tconst [values, setValues] = useState({});\n\n\tconst handleChange = (name, value) => {\n\t\tsetValues(() => ({ ...form.get() }));\n\t\tonChange?.(name, value);\n\t};\n\n\tconst node = useMemo(() => {\n\t\treturn (\n\t\t\t<Form {...formProps} onChange={handleChange} form={form}>\n\t\t\t\t{configs.map((config) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\trequired,\n\t\t\t\t\t\tcomponent: El,\n\t\t\t\t\t\tcomponentProps = {},\n\t\t\t\t\t\tcolspan = 1,\n\t\t\t\t\t\trender,\n\t\t\t\t\t\tshouldUpdate,\n\t\t\t\t\t\tshouldRender,\n\t\t\t\t\t} = config;\n\t\t\t\t\tconst { className, style } = componentProps;\n\n\t\t\t\t\tif (shouldRender && !shouldRender(values, form)) {\n\t\t\t\t\t\treturn <Fragment key={name} />;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Field key={name} name={name} required={required}>\n\t\t\t\t\t\t\t{render?.(config, values) ?? (\n\t\t\t\t\t\t\t\t<El\n\t\t\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\t\t\t\t{...componentProps}\n\t\t\t\t\t\t\t\t\tclassName={`${className ?? \"\"} ${\n\t\t\t\t\t\t\t\t\t\tcolspan !== 1\n\t\t\t\t\t\t\t\t\t\t\t? `colspan-${colspan}`\n\t\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)}\n\t\t\t\t\t\t</Field>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</Form>\n\t\t);\n\t}, [configs, values]);\n\n\treturn {\n\t\tform,\n\t\tnode,\n\t};\n}\n"],"names":["form","useForm","useState","useMemo","_jsx","Form","Fragment","Field"],"mappings":";;;;;;;;;;AAMc,SAAU,SAAS,CAAC,OAAoB,EAAE,SAAiB,EAAA;AACxE,IAAA,MAAMA,MAAI,GAAGC,eAAO,EAAE;AACtB,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,IAAI,EAAE;IACpC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC;AAExC,IAAA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,KAAI;AACpC,QAAA,SAAS,CAAC,OAAO,EAAE,GAAGF,MAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,QAAA,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC;AACxB,KAAC;AAED,IAAA,MAAM,IAAI,GAAGG,aAAO,CAAC,MAAK;QACzB,QACCC,eAACC,YAAI,EAAA,EAAA,GAAK,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAEL,MAAI,YACrD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;gBACvB,MAAM,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EAAE,EAAE,EACb,cAAc,GAAG,EAAE,EACnB,OAAO,GAAG,CAAC,EACX,MAAM,EACN,YAAY,EACZ,YAAY,GACZ,GAAG,MAAM;AACV,gBAAA,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,cAAc;gBAE3C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAEA,MAAI,CAAC,EAAE;AAChD,oBAAA,OAAOI,cAAC,CAAAE,cAAQ,EAAM,EAAA,EAAA,IAAI,CAAI;;AAG/B,gBAAA,QACCF,cAAC,CAAAG,aAAK,IAAY,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAC9C,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,KACxBH,eAAC,EAAE,EAAA,EACF,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EACd,GAAA,cAAc,EAClB,SAAS,EAAE,GAAG,SAAS,IAAI,EAAE,CAC5B,CAAA,EAAA,OAAO,KAAK;8BACT,CAAW,QAAA,EAAA,OAAO,CAAE;8BACpB,EACJ,CAAE,CAAA,EAAA,CACD,CACF,EAZU,EAAA,IAAI,CAaR;aAET,CAAC,EACI,CAAA;AAET,KAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAErB,OAAO;cACNJ,MAAI;QACJ,IAAI;KACJ;AACF;;;;"}
1
+ {"version":3,"file":"useConfig.js","sources":["../../../../packages/components/form/useConfig.tsx"],"sourcesContent":["import { Fragment, useMemo, useState } from \"react\";\r\nimport Field from \"./field\";\r\nimport Form from \"./form\";\r\nimport { IForm, IFormItem } from \"./type\";\r\nimport useForm from \"./useForm\";\r\n\r\nexport default function useConfig(configs: IFormItem[], formProps?: IForm) {\r\n\tconst form = useForm();\r\n\tconst { onChange } = formProps ?? {};\r\n\tconst [values, setValues] = useState({});\r\n\r\n\tconst handleChange = (name, value) => {\r\n\t\tsetValues(() => ({ ...form.get() }));\r\n\t\tonChange?.(name, value);\r\n\t};\r\n\r\n\tconst node = useMemo(() => {\r\n\t\treturn (\r\n\t\t\t<Form {...formProps} onChange={handleChange} form={form}>\r\n\t\t\t\t{configs.map((config) => {\r\n\t\t\t\t\tconst {\r\n\t\t\t\t\t\tname,\r\n\t\t\t\t\t\tlabel,\r\n\t\t\t\t\t\trequired,\r\n\t\t\t\t\t\tcomponent: El,\r\n\t\t\t\t\t\tcomponentProps = {},\r\n\t\t\t\t\t\tcolspan = 1,\r\n\t\t\t\t\t\trender,\r\n\t\t\t\t\t\tshouldUpdate,\r\n\t\t\t\t\t\tshouldRender,\r\n\t\t\t\t\t} = config;\r\n\t\t\t\t\tconst { className, style } = componentProps;\r\n\r\n\t\t\t\t\tif (shouldRender && !shouldRender(values, form)) {\r\n\t\t\t\t\t\treturn <Fragment key={name} />;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Field key={name} name={name} required={required}>\r\n\t\t\t\t\t\t\t{render?.(config, values) ?? (\r\n\t\t\t\t\t\t\t\t<El\r\n\t\t\t\t\t\t\t\t\tlabel={label}\r\n\t\t\t\t\t\t\t\t\trequired={required}\r\n\t\t\t\t\t\t\t\t\t{...componentProps}\r\n\t\t\t\t\t\t\t\t\tclassName={`${className ?? \"\"} ${\r\n\t\t\t\t\t\t\t\t\t\tcolspan !== 1\r\n\t\t\t\t\t\t\t\t\t\t\t? `colspan-${colspan}`\r\n\t\t\t\t\t\t\t\t\t\t\t: \"\"\r\n\t\t\t\t\t\t\t\t\t}`}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</Field>\r\n\t\t\t\t\t);\r\n\t\t\t\t})}\r\n\t\t\t</Form>\r\n\t\t);\r\n\t}, [configs, values]);\r\n\r\n\treturn {\r\n\t\tform,\r\n\t\tnode,\r\n\t};\r\n}\r\n"],"names":["form","useForm","useState","useMemo","_jsx","Form","Fragment","Field"],"mappings":";;;;;;;;;;AAMc,SAAU,SAAS,CAAC,OAAoB,EAAE,SAAiB,EAAA;AACxE,IAAA,MAAMA,MAAI,GAAGC,eAAO,EAAE;AACtB,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,IAAI,EAAE;IACpC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC;AAExC,IAAA,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,KAAK,KAAI;AACpC,QAAA,SAAS,CAAC,OAAO,EAAE,GAAGF,MAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpC,QAAA,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC;AACxB,KAAC;AAED,IAAA,MAAM,IAAI,GAAGG,aAAO,CAAC,MAAK;QACzB,QACCC,eAACC,YAAI,EAAA,EAAA,GAAK,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAEL,MAAI,YACrD,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;gBACvB,MAAM,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,SAAS,EAAE,EAAE,EACb,cAAc,GAAG,EAAE,EACnB,OAAO,GAAG,CAAC,EACX,MAAM,EACN,YAAY,EACZ,YAAY,GACZ,GAAG,MAAM;AACV,gBAAA,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,cAAc;gBAE3C,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAEA,MAAI,CAAC,EAAE;AAChD,oBAAA,OAAOI,cAAC,CAAAE,cAAQ,EAAM,EAAA,EAAA,IAAI,CAAI;;AAG/B,gBAAA,QACCF,cAAC,CAAAG,aAAK,IAAY,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAC9C,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,KACxBH,eAAC,EAAE,EAAA,EACF,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EACd,GAAA,cAAc,EAClB,SAAS,EAAE,GAAG,SAAS,IAAI,EAAE,CAC5B,CAAA,EAAA,OAAO,KAAK;8BACT,CAAW,QAAA,EAAA,OAAO,CAAE;8BACpB,EACJ,CAAE,CAAA,EAAA,CACD,CACF,EAZU,EAAA,IAAI,CAaR;aAET,CAAC,EACI,CAAA;AAET,KAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAErB,OAAO;cACNJ,MAAI;QACJ,IAAI;KACJ;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useForm.js","sources":["../../../../packages/components/form/useForm.ts"],"sourcesContent":["import PubSub from \"pubsub-js\";\nimport { uid } from \"radash\";\nimport { useRef } from \"react\";\nimport { IForm, TRule } from \"./type\";\n\nexport class IFormInstance {\n\treadonly id?: string;\n\tdata: Record<string, any> = {};\n\tcacheData: Record<string, any> = {};\n\trules?: Pick<IForm, \"rules\"> = {};\n\n\tconstructor() {\n\t\tthis.id = uid(8);\n\t\tthis.data = {};\n\t}\n\n\tget(field?: string) {\n\t\treturn field ? this.data[field] : this.data;\n\t}\n\n\tset(field: any, value?: any) {\n\t\tconst id = this.id;\n\t\tif (!this.data) return;\n\n\t\tif (typeof field === \"string\") {\n\t\t\tthis.data[field] = value;\n\t\t\tthis.cacheData[field] = value;\n\t\t\tPubSub.publish(`${id}:set:${field}`, value);\n\t\t\treturn;\n\t\t}\n\n\t\tObject.keys(field).map((name) => {\n\t\t\tthis.data[name] = field[name];\n\t\t\tthis.cacheData[name] = field[name];\n\t\t\tPubSub.publish(`${id}:set:${name}`, field[name]);\n\t\t});\n\t}\n\n\tdelete(field) {\n\t\tdelete this.data[field];\n\t}\n\n\tclear() {\n\t\tif (!this.data) return;\n\t\tthis.cacheData = {};\n\n\t\tObject.keys(this.data).map((name) => {\n\t\t\tPubSub.publish(`${this.id}:set:${name}`, undefined);\n\t\t\tthis.data[name] = undefined;\n\t\t});\n\t}\n\n\tasync validate(field?: string) {\n\t\tconst { id, rules, data } = this;\n\t\tif (!rules) return data;\n\n\t\tif (field) {\n\t\t\tconst o = rules[field];\n\t\t\tconst rule: TRule = {\n\t\t\t\tvalidator: (v) =>\n\t\t\t\t\tArray.isArray(v)\n\t\t\t\t\t\t? v.length > 0\n\t\t\t\t\t\t: ![undefined, null, \"\"].includes(v),\n\t\t\t\tmessage: undefined,\n\t\t\t};\n\n\t\t\tif (typeof o === \"function\") {\n\t\t\t\trule.validator = o;\n\t\t\t} else if (o === true) {\n\t\t\t\trule.validator = (v) => ![undefined, null, \"\"].includes(v);\n\t\t\t\trule.message = \"required\";\n\t\t\t} else {\n\t\t\t\tObject.assign(rule, o);\n\t\t\t}\n\n\t\t\tconst isValid = rule.validator?.(data[field], this);\n\t\t\tif (typeof isValid === \"string\") {\n\t\t\t\trule.message = isValid;\n\t\t\t}\n\n\t\t\tif (isValid !== true) {\n\t\t\t\tPubSub.publish(`${id}:invalid:${field}`, {\n\t\t\t\t\tmessage: rule.message,\n\t\t\t\t\tstatus: \"error\",\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tPubSub.publish(`${id}:invalid:${name}`, {\n\t\t\t\tmessage: null,\n\t\t\t\tstatus: \"normal\",\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\n\t\tlet isAllValid = true;\n\n\t\tObject.keys(data).map((name) => {\n\t\t\tconst o = rules[name];\n\t\t\tif (o === undefined) return;\n\n\t\t\tconst rule: TRule = {\n\t\t\t\tvalidator: (v) => (Array.isArray(v) ? v.length > 0 : !!v),\n\t\t\t\tmessage: undefined,\n\t\t\t};\n\n\t\t\tif (typeof o === \"function\") {\n\t\t\t\trule.validator = o;\n\t\t\t} else if (o === true) {\n\t\t\t\trule.validator = (v) => ![undefined, null, \"\"].includes(v);\n\t\t\t\trule.message = \"required\";\n\t\t\t} else {\n\t\t\t\tObject.assign(rule, o);\n\t\t\t}\n\n\t\t\tconst isValid = rule.validator?.(data[name], this);\n\t\t\tif (typeof isValid === \"string\") {\n\t\t\t\trule.message = isValid;\n\t\t\t}\n\n\t\t\tif (isValid !== true) {\n\t\t\t\tPubSub.publish(`${id}:invalid:${name}`, {\n\t\t\t\t\tmessage: rule.message,\n\t\t\t\t\tstatus: \"error\",\n\t\t\t\t});\n\t\t\t\tisAllValid = false;\n\t\t\t} else {\n\t\t\t\tPubSub.publish(`${id}:invalid:${name}`, {\n\t\t\t\t\tmessage: null,\n\t\t\t\t\tstatus: \"normal\",\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn isAllValid ? Promise.resolve(data) : false;\n\t}\n}\n\nexport default function useForm(form?: IFormInstance) {\n\tconst formRef = useRef<IFormInstance>(null);\n\n\tif (!formRef.current) {\n\t\tformRef.current = form ?? new IFormInstance();\n\t}\n\n\treturn formRef.current;\n}\n"],"names":["uid","PubSub","useRef"],"mappings":"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"}
1
+ {"version":3,"file":"useForm.js","sources":["../../../../packages/components/form/useForm.ts"],"sourcesContent":["import PubSub from \"pubsub-js\";\r\nimport { uid } from \"radash\";\r\nimport { useRef } from \"react\";\r\nimport { IForm, TRule } from \"./type\";\r\n\r\nexport class IFormInstance {\r\n\treadonly id?: string;\r\n\tdata: Record<string, any> = {};\r\n\tcacheData: Record<string, any> = {};\r\n\trules?: Pick<IForm, \"rules\"> = {};\r\n\r\n\tconstructor() {\r\n\t\tthis.id = uid(8);\r\n\t\tthis.data = {};\r\n\t}\r\n\r\n\tget(field?: string) {\r\n\t\treturn field ? this.data[field] : this.data;\r\n\t}\r\n\r\n\tset(field: any, value?: any) {\r\n\t\tconst id = this.id;\r\n\t\tif (!this.data) return;\r\n\r\n\t\tif (typeof field === \"string\") {\r\n\t\t\tthis.data[field] = value;\r\n\t\t\tthis.cacheData[field] = value;\r\n\t\t\tPubSub.publish(`${id}:set:${field}`, value);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tObject.keys(field).map((name) => {\r\n\t\t\tthis.data[name] = field[name];\r\n\t\t\tthis.cacheData[name] = field[name];\r\n\t\t\tPubSub.publish(`${id}:set:${name}`, field[name]);\r\n\t\t});\r\n\t}\r\n\r\n\tdelete(field) {\r\n\t\tdelete this.data[field];\r\n\t}\r\n\r\n\tclear() {\r\n\t\tif (!this.data) return;\r\n\t\tthis.cacheData = {};\r\n\r\n\t\tObject.keys(this.data).map((name) => {\r\n\t\t\tPubSub.publish(`${this.id}:set:${name}`, undefined);\r\n\t\t\tthis.data[name] = undefined;\r\n\t\t});\r\n\t}\r\n\r\n\tasync validate(field?: string) {\r\n\t\tconst { id, rules, data } = this;\r\n\t\tif (!rules) return data;\r\n\r\n\t\tif (field) {\r\n\t\t\tconst o = rules[field];\r\n\t\t\tconst rule: TRule = {\r\n\t\t\t\tvalidator: (v) =>\r\n\t\t\t\t\tArray.isArray(v)\r\n\t\t\t\t\t\t? v.length > 0\r\n\t\t\t\t\t\t: ![undefined, null, \"\"].includes(v),\r\n\t\t\t\tmessage: undefined,\r\n\t\t\t};\r\n\r\n\t\t\tif (typeof o === \"function\") {\r\n\t\t\t\trule.validator = o;\r\n\t\t\t} else if (o === true) {\r\n\t\t\t\trule.validator = (v) => ![undefined, null, \"\"].includes(v);\r\n\t\t\t\trule.message = \"required\";\r\n\t\t\t} else {\r\n\t\t\t\tObject.assign(rule, o);\r\n\t\t\t}\r\n\r\n\t\t\tconst isValid = rule.validator?.(data[field], this);\r\n\t\t\tif (typeof isValid === \"string\") {\r\n\t\t\t\trule.message = isValid;\r\n\t\t\t}\r\n\r\n\t\t\tif (isValid !== true) {\r\n\t\t\t\tPubSub.publish(`${id}:invalid:${field}`, {\r\n\t\t\t\t\tmessage: rule.message,\r\n\t\t\t\t\tstatus: \"error\",\r\n\t\t\t\t});\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tPubSub.publish(`${id}:invalid:${name}`, {\r\n\t\t\t\tmessage: null,\r\n\t\t\t\tstatus: \"normal\",\r\n\t\t\t});\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tlet isAllValid = true;\r\n\r\n\t\tObject.keys(data).map((name) => {\r\n\t\t\tconst o = rules[name];\r\n\t\t\tif (o === undefined) return;\r\n\r\n\t\t\tconst rule: TRule = {\r\n\t\t\t\tvalidator: (v) => (Array.isArray(v) ? v.length > 0 : !!v),\r\n\t\t\t\tmessage: undefined,\r\n\t\t\t};\r\n\r\n\t\t\tif (typeof o === \"function\") {\r\n\t\t\t\trule.validator = o;\r\n\t\t\t} else if (o === true) {\r\n\t\t\t\trule.validator = (v) => ![undefined, null, \"\"].includes(v);\r\n\t\t\t\trule.message = \"required\";\r\n\t\t\t} else {\r\n\t\t\t\tObject.assign(rule, o);\r\n\t\t\t}\r\n\r\n\t\t\tconst isValid = rule.validator?.(data[name], this);\r\n\t\t\tif (typeof isValid === \"string\") {\r\n\t\t\t\trule.message = isValid;\r\n\t\t\t}\r\n\r\n\t\t\tif (isValid !== true) {\r\n\t\t\t\tPubSub.publish(`${id}:invalid:${name}`, {\r\n\t\t\t\t\tmessage: rule.message,\r\n\t\t\t\t\tstatus: \"error\",\r\n\t\t\t\t});\r\n\t\t\t\tisAllValid = false;\r\n\t\t\t} else {\r\n\t\t\t\tPubSub.publish(`${id}:invalid:${name}`, {\r\n\t\t\t\t\tmessage: null,\r\n\t\t\t\t\tstatus: \"normal\",\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn isAllValid ? Promise.resolve(data) : false;\r\n\t}\r\n}\r\n\r\nexport default function useForm(form?: IFormInstance) {\r\n\tconst formRef = useRef<IFormInstance>(null);\r\n\r\n\tif (!formRef.current) {\r\n\t\tformRef.current = form ?? new IFormInstance();\r\n\t}\r\n\r\n\treturn formRef.current;\r\n}\r\n"],"names":["uid","PubSub","useRef"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sources":["../../../../packages/components/icon/icon.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { cloneElement, isValidElement } from \"react\";\nimport \"./index.css\";\nimport { IIcon } from \"./type\";\n\nconst Icon = (props: IIcon) => {\n\tconst {\n\t\tref,\n\t\ticon,\n\t\tsize = \"1.425em\",\n\t\trotate,\n\t\tstyle,\n\t\tclassName,\n\t\t...restProps\n\t} = props;\n\n\tif (!isValidElement(icon)) return icon;\n\n\tconst iconProps = {\n\t\tref,\n\t\tstyle: {\n\t\t\ttransform: rotate ? `rotate(${rotate}deg)` : undefined,\n\t\t\t...style,\n\t\t\twidth: size,\n\t\t\theight: size,\n\t\t},\n\t\tclassName: classNames(\"i-icon\", className),\n\t\t...restProps,\n\t};\n\n\treturn cloneElement(icon, iconProps);\n};\n\nexport default Icon;\n"],"names":["isValidElement","classNames","cloneElement"],"mappings":";;;;;;;;;;;AAKA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;IAC7B,MAAM,EACL,GAAG,EACH,IAAI,EACJ,IAAI,GAAG,SAAS,EAChB,MAAM,EACN,KAAK,EACL,SAAS,EACT,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,IAAI,CAACA,oBAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;AAEtC,IAAA,MAAM,SAAS,GAAG;QACjB,GAAG;AACH,QAAA,KAAK,EAAE;YACN,SAAS,EAAE,MAAM,GAAG,CAAU,OAAA,EAAA,MAAM,CAAM,IAAA,CAAA,GAAG,SAAS;AACtD,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;AACZ,SAAA;AACD,QAAA,SAAS,EAAEC,mBAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC1C,QAAA,GAAG,SAAS;KACZ;AAED,IAAA,OAAOC,kBAAY,CAAC,IAAI,EAAE,SAAS,CAAC;AACrC;;;;"}
1
+ {"version":3,"file":"icon.js","sources":["../../../../packages/components/icon/icon.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { cloneElement, isValidElement } from \"react\";\r\nimport \"./index.css\";\r\nimport { IIcon } from \"./type\";\r\n\r\nconst Icon = (props: IIcon) => {\r\n\tconst {\r\n\t\tref,\r\n\t\ticon,\r\n\t\tsize = \"1.425em\",\r\n\t\trotate,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tif (!isValidElement(icon)) return icon;\r\n\r\n\tconst iconProps = {\r\n\t\tref,\r\n\t\tstyle: {\r\n\t\t\ttransform: rotate ? `rotate(${rotate}deg)` : undefined,\r\n\t\t\t...style,\r\n\t\t\twidth: size,\r\n\t\t\theight: size,\r\n\t\t},\r\n\t\tclassName: classNames(\"i-icon\", className),\r\n\t\t...restProps,\r\n\t};\r\n\r\n\treturn cloneElement(icon, iconProps);\r\n};\r\n\r\nexport default Icon;\r\n"],"names":["isValidElement","classNames","cloneElement"],"mappings":";;;;;;;;;;;AAKA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;IAC7B,MAAM,EACL,GAAG,EACH,IAAI,EACJ,IAAI,GAAG,SAAS,EAChB,MAAM,EACN,KAAK,EACL,SAAS,EACT,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,IAAI,CAACA,oBAAc,CAAC,IAAI,CAAC;AAAE,QAAA,OAAO,IAAI;AAEtC,IAAA,MAAM,SAAS,GAAG;QACjB,GAAG;AACH,QAAA,KAAK,EAAE;YACN,SAAS,EAAE,MAAM,GAAG,CAAU,OAAA,EAAA,MAAM,CAAM,IAAA,CAAA,GAAG,SAAS;AACtD,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,MAAM,EAAE,IAAI;AACZ,SAAA;AACD,QAAA,SAAS,EAAEC,mBAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC1C,QAAA,GAAG,SAAS;KACZ;AAED,IAAA,OAAOC,kBAAY,CAAC,IAAI,EAAE,SAAS,CAAC;AACrC;;;;"}
@@ -34,7 +34,6 @@ const Image = (props) => {
34
34
  state.status = undefined;
35
35
  };
36
36
  const handleClick = (e) => {
37
- e.stopPropagation();
38
37
  onClick?.(e);
39
38
  if (!previewable || !src)
40
39
  return;
@@ -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\tthumb,\n\t\tround,\n\t\tsize,\n\t\theight,\n\t\twidth,\n\t\tratio,\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\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\te.stopPropagation();\n\t\tonClick?.(e);\n\n\t\tif (!previewable || !src) return;\n\n\t\tconst previewConfigs =\n\t\t\ttypeof previewable === \"boolean\" ? {} : previewable;\n\n\t\tpreview({\n\t\t\t...previewConfigs,\n\t\t\titems: [\n\t\t\t\t{\n\t\t\t\t\tsrc,\n\t\t\t\t\ttype: \"IMAGE\",\n\t\t\t\t},\n\t\t\t],\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!src || typeof window === \"undefined\") return;\n\n\t\tif (!ref.current?.complete && observe && lazyload) {\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]);\n\n\trestProps[lazyload ? \"data-src\" : \"src\"] = thumb ?? 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: width ?? size ?? iSize,\n\t\t\t\theight: height ?? size ?? iSize,\n\t\t\t\taspectRatio: ratio,\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\tonClick={handleClick}\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 }}\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","_Fragment","Loading","List"],"mappings":";;;;;;;;;;;;;;;;;;;AAYA,MAAM,KAAK,GAAG,CAAC,KAAa,KAAI;AAC/B,IAAA,MAAM,EACL,GAAG,EACH,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,IACPA,cAAC,CAAAC,YAAI,EAAC,EAAA,IAAI,EAAED,cAAA,CAACE,yBAAgB,EAAA,EAAA,CAAG,EAAE,IAAI,EAAC,KAAK,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,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;IAE1C,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;QACzB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,OAAO,GAAG,CAAC,CAAC;AAEZ,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG;YAAE;AAE1B,QAAA,MAAM,cAAc,GACnB,OAAO,WAAW,KAAK,SAAS,GAAG,EAAE,GAAG,WAAW;AAEpD,QAAA,OAAO,CAAC;AACP,YAAA,GAAG,cAAc;AACjB,YAAA,KAAK,EAAE;AACN,gBAAA;oBACC,GAAG;AACH,oBAAA,IAAI,EAAE,OAAO;AACb,iBAAA;AACD,aAAA;AACD,SAAA,CAAC;AACH,KAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,IAAI,CAAC,GAAG,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE;QAE3C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,IAAI,QAAQ,EAAE;AAClD,YAAA,KAAK,CAAC,MAAM,GAAG,SAAS;;QAGzB,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO;YAAE;QAE3C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAgB,EAAE,OAAgB,KAAI;AAC3D,YAAA,IAAI,CAAC,OAAO;gBAAE;AAEd,YAAA,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;YAC9C,SAAS,CAAC,GAAG,CAAC;AACf,SAAC,CAAC;AAEF,QAAA,OAAO,MAAK;YACX,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACtC,SAAC;AACF,KAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAET,IAAA,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,GAAG;AACvD,IAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,GAAG,QAAQ,GAAG,SAAS;IAE/D,QACCP,cACC,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE;AACN,YAAA,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,KAAK;AAC7B,YAAA,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,KAAK;AAC/B,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAEQ,mBAAU,CAAC,SAAS,EAAE,SAAS,EAAE;AAC3C,YAAA,OAAO,EAAE,KAAK;YACd,CAAC,CAAA,QAAA,EAAW,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM;AACzC,SAAA,CAAC,EACF,OAAO,EAAE,WAAW,EAEnB,QAAA,EAAA,KAAK,CAAC,MAAM,KAAK,OAAO,IACxB,QAAQ,KAERC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACE,GAAG,KACHV,wBACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,KACrB,SAAS,EACb,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EAAA,CACnB,CACF,EAEA,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAIA,cAAC,CAAAW,eAAO,IAAC,QAAQ,EAAA,IAAA,EAAA,CAAG,EAEzD,KAAK,KACLX,cACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEQ,mBAAU,CAAC,eAAe,EAAE,UAAU,CAAC,EAClD,OAAO,EAAE,WAAW,EAAA,QAAA,EAEnB,KAAK,EACD,CAAA,CACN,IACC,CACH,EAAA,CACI;AAER;AAEA,KAAK,CAAC,IAAI,GAAGI,YAAI;;;;"}
1
+ {"version":3,"file":"image.js","sources":["../../../../packages/components/image/image.tsx"],"sourcesContent":["import { HideImageTwotone } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { useEffect, useRef } from \"react\";\r\nimport { useIntersectionObserver } from \"../../js/hooks\";\r\nimport usePreview from \"../../js/usePreview\";\r\nimport Icon from \"../icon\";\r\nimport Loading from \"../loading\";\r\nimport \"./index.css\";\r\nimport List from \"./list\";\r\nimport type { CompositionImage, IImage } from \"./type\";\r\n\r\nconst Image = (props: IImage) => {\r\n\tconst {\r\n\t\tsrc,\r\n\t\tthumb,\r\n\t\tround,\r\n\t\tsize,\r\n\t\theight,\r\n\t\twidth,\r\n\t\tratio,\r\n\t\tinitSize,\r\n\t\tlazyload,\r\n\t\tfallback = (\r\n\t\t\t<Icon icon={<HideImageTwotone />} size='2em' className='color-5' />\r\n\t\t),\r\n\t\tfit,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\tcover,\r\n\t\tcoverClass,\r\n\t\tusePreview: previewable,\r\n\t\tonLoad,\r\n\t\tonError,\r\n\t\tonClick,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive<{ status?: string }>({\r\n\t\tstatus: \"loading\",\r\n\t});\r\n\tconst ref = useRef<HTMLImageElement>(null);\r\n\r\n\tconst { observe, unobserve } = useIntersectionObserver();\r\n\tconst preview = usePreview();\r\n\r\n\tconst handleError = (err) => {\r\n\t\tonError?.(err);\r\n\t\tstate.status = \"error\";\r\n\t};\r\n\r\n\tconst handleLoad = (e) => {\r\n\t\tonLoad?.(e);\r\n\t\tstate.status = undefined;\r\n\t};\r\n\r\n\tconst handleClick = (e) => {\r\n\t\tonClick?.(e);\r\n\r\n\t\tif (!previewable || !src) return;\r\n\r\n\t\tconst previewConfigs =\r\n\t\t\ttypeof previewable === \"boolean\" ? {} : previewable;\r\n\r\n\t\tpreview({\r\n\t\t\t...previewConfigs,\r\n\t\t\titems: [\r\n\t\t\t\t{\r\n\t\t\t\t\tsrc,\r\n\t\t\t\t\ttype: \"IMAGE\",\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t});\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!src || typeof window === \"undefined\") return;\r\n\r\n\t\tif (!ref.current?.complete && observe && lazyload) {\r\n\t\t\tstate.status = \"loading\";\r\n\t\t}\r\n\r\n\t\tif (!lazyload || !ref.current || !observe) return;\r\n\r\n\t\tobserve(ref.current, (tar: HTMLElement, visible: boolean) => {\r\n\t\t\tif (!visible) return;\r\n\r\n\t\t\ttar.setAttribute(\"src\", tar.dataset.src || \"\");\r\n\t\t\tunobserve(tar);\r\n\t\t});\r\n\r\n\t\treturn () => {\r\n\t\t\tref.current && unobserve(ref.current);\r\n\t\t};\r\n\t}, [src]);\r\n\r\n\trestProps[lazyload ? \"data-src\" : \"src\"] = thumb ?? src;\r\n\tconst iSize = state.status === \"loading\" ? initSize : undefined;\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tstyle={{\r\n\t\t\t\twidth: width ?? size ?? iSize,\r\n\t\t\t\theight: height ?? size ?? iSize,\r\n\t\t\t\taspectRatio: ratio,\r\n\t\t\t\t...style,\r\n\t\t\t}}\r\n\t\t\tclassName={classNames(\"i-image\", className, {\r\n\t\t\t\trounded: round,\r\n\t\t\t\t[`i-image-${state.status}`]: state.status,\r\n\t\t\t})}\r\n\t\t\tonClick={handleClick}\r\n\t\t>\r\n\t\t\t{state.status === \"error\" ? (\r\n\t\t\t\tfallback\r\n\t\t\t) : (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{src && (\r\n\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\tref={ref}\r\n\t\t\t\t\t\t\tstyle={{ objectFit: fit }}\r\n\t\t\t\t\t\t\t{...restProps}\r\n\t\t\t\t\t\t\tonLoad={handleLoad}\r\n\t\t\t\t\t\t\tonError={handleError}\r\n\t\t\t\t\t\t\tonClick={handleClick}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{src && state.status === \"loading\" && <Loading absolute />}\r\n\r\n\t\t\t\t\t{cover && (\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclassName={classNames(\"i-image-cover\", coverClass)}\r\n\t\t\t\t\t\t\tonClick={handleClick}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{cover}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</>\r\n\t\t\t)}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nImage.List = List;\r\n\r\nexport default Image as CompositionImage;\r\n"],"names":["_jsx","Icon","HideImageTwotone","useReactive","useRef","useIntersectionObserver","usePreview","useEffect","classNames","_jsxs","_Fragment","Loading","List"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../../packages/components/image/list.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { getFileType, getSuffixByUrl } from \"../../js/utils\";\nimport Flex from \"../flex\";\nimport Image from \"./image\";\nimport { IImageList } from \"./type\";\n\nexport default function List(props: IImageList) {\n\tconst {\n\t\titems = [],\n\t\tgap = 8,\n\t\tcolumns,\n\t\twrap,\n\t\tdirection,\n\t\tusePreview: previewable,\n\t\tonClick,\n\t\t...restProps\n\t} = props;\n\tconst preview = usePreview();\n\n\tconst files = useMemo(() => {\n\t\treturn items.map((item) => {\n\t\t\tconst o: TPreviewItem = {\n\t\t\t\tsrc: \"\",\n\t\t\t};\n\t\t\tif (typeof item === \"string\") {\n\t\t\t\to.src = item;\n\t\t\t} else {\n\t\t\t\tObject.assign(o, item);\n\t\t\t}\n\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\n\n\t\t\treturn o;\n\t\t});\n\t}, [items]);\n\n\tconst handleClick = (e, i) => {\n\t\tonClick?.(e);\n\n\t\tpreviewable &&\n\t\t\tpreview({\n\t\t\t\titems: files,\n\t\t\t\tinitial: i,\n\t\t\t});\n\t};\n\n\tif (!files.length) return \"\";\n\n\treturn (\n\t\t<Flex\n\t\t\tclassName='i-image-list'\n\t\t\tgap={gap}\n\t\t\tcolumns={columns}\n\t\t\twrap={wrap}\n\t\t\tdirection={direction}\n\t\t>\n\t\t\t{files.map((img, i) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Image\n\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\tsrc={img.src}\n\t\t\t\t\t\tusePreview={false}\n\t\t\t\t\t\tonClick={(e) => handleClick(e, i)}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t})}\n\t\t</Flex>\n\t);\n}\n"],"names":["usePreview","useMemo","getSuffixByUrl","getFileType","_jsx","Flex","Image"],"mappings":";;;;;;;;;;;AAQwB,SAAA,IAAI,CAAC,KAAiB,EAAA;IAC7C,MAAM,EACL,KAAK,GAAG,EAAE,EACV,GAAG,GAAG,CAAC,EACP,OAAO,EACP,IAAI,EACJ,SAAS,EACT,UAAU,EAAE,WAAW,EACvB,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;AACT,IAAA,MAAM,OAAO,GAAGA,aAAU,EAAE;AAE5B,IAAA,MAAM,KAAK,GAAGC,aAAO,CAAC,MAAK;AAC1B,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACzB,YAAA,MAAM,CAAC,GAAiB;AACvB,gBAAA,GAAG,EAAE,EAAE;aACP;AACD,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC7B,gBAAA,CAAC,CAAC,GAAG,GAAG,IAAI;;iBACN;AACN,gBAAA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;;YAGvB,CAAC,CAAC,MAAM,GAAGC,oBAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AACtC,YAAA,CAAC,CAAC,IAAI,GAAGC,iBAAW,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAE5C,YAAA,OAAO,CAAC;AACT,SAAC,CAAC;AACH,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,KAAI;AAC5B,QAAA,OAAO,GAAG,CAAC,CAAC;QAEZ,WAAW;AACV,YAAA,OAAO,CAAC;AACP,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,CAAC;AACV,aAAA,CAAC;AACJ,KAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,QAAA,OAAO,EAAE;AAE5B,IAAA,QACCC,cAAA,CAACC,YAAI,EAAA,EACJ,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EAEnB,QAAA,EAAA,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AACrB,YAAA,QACCD,cAAA,CAACE,aAAK,EAAA,EAEL,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAC7B,SAAS,EAAA,EAJR,CAAC,CAKL;SAEH,CAAC,EACI,CAAA;AAET;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../../packages/components/image/list.tsx"],"sourcesContent":["import { useMemo } from \"react\";\r\nimport usePreview from \"../../js/usePreview\";\r\nimport { TPreviewItem } from \"../../js/usePreview/type\";\r\nimport { getFileType, getSuffixByUrl } from \"../../js/utils\";\r\nimport Flex from \"../flex\";\r\nimport Image from \"./image\";\r\nimport { IImageList } from \"./type\";\r\n\r\nexport default function List(props: IImageList) {\r\n\tconst {\r\n\t\titems = [],\r\n\t\tgap = 8,\r\n\t\tcolumns,\r\n\t\twrap,\r\n\t\tdirection,\r\n\t\tusePreview: previewable,\r\n\t\tonClick,\r\n\t\t...restProps\r\n\t} = props;\r\n\tconst preview = usePreview();\r\n\r\n\tconst files = useMemo(() => {\r\n\t\treturn items.map((item) => {\r\n\t\t\tconst o: TPreviewItem = {\r\n\t\t\t\tsrc: \"\",\r\n\t\t\t};\r\n\t\t\tif (typeof item === \"string\") {\r\n\t\t\t\to.src = item;\r\n\t\t\t} else {\r\n\t\t\t\tObject.assign(o, item);\r\n\t\t\t}\r\n\r\n\t\t\to.suffix = getSuffixByUrl(o.src) || \"\";\r\n\t\t\to.type = getFileType(o.suffix, item[\"type\"]);\r\n\r\n\t\t\treturn o;\r\n\t\t});\r\n\t}, [items]);\r\n\r\n\tconst handleClick = (e, i) => {\r\n\t\tonClick?.(e);\r\n\r\n\t\tpreviewable &&\r\n\t\t\tpreview({\r\n\t\t\t\titems: files,\r\n\t\t\t\tinitial: i,\r\n\t\t\t});\r\n\t};\r\n\r\n\tif (!files.length) return \"\";\r\n\r\n\treturn (\r\n\t\t<Flex\r\n\t\t\tclassName='i-image-list'\r\n\t\t\tgap={gap}\r\n\t\t\tcolumns={columns}\r\n\t\t\twrap={wrap}\r\n\t\t\tdirection={direction}\r\n\t\t>\r\n\t\t\t{files.map((img, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Image\r\n\t\t\t\t\t\tkey={i}\r\n\t\t\t\t\t\tsrc={img.src}\r\n\t\t\t\t\t\tusePreview={false}\r\n\t\t\t\t\t\tonClick={(e) => handleClick(e, i)}\r\n\t\t\t\t\t\t{...restProps}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t</Flex>\r\n\t);\r\n}\r\n"],"names":["usePreview","useMemo","getSuffixByUrl","getFileType","_jsx","Flex","Image"],"mappings":";;;;;;;;;;;AAQwB,SAAA,IAAI,CAAC,KAAiB,EAAA;IAC7C,MAAM,EACL,KAAK,GAAG,EAAE,EACV,GAAG,GAAG,CAAC,EACP,OAAO,EACP,IAAI,EACJ,SAAS,EACT,UAAU,EAAE,WAAW,EACvB,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;AACT,IAAA,MAAM,OAAO,GAAGA,aAAU,EAAE;AAE5B,IAAA,MAAM,KAAK,GAAGC,aAAO,CAAC,MAAK;AAC1B,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACzB,YAAA,MAAM,CAAC,GAAiB;AACvB,gBAAA,GAAG,EAAE,EAAE;aACP;AACD,YAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC7B,gBAAA,CAAC,CAAC,GAAG,GAAG,IAAI;;iBACN;AACN,gBAAA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;;YAGvB,CAAC,CAAC,MAAM,GAAGC,oBAAc,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;AACtC,YAAA,CAAC,CAAC,IAAI,GAAGC,iBAAW,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAE5C,YAAA,OAAO,CAAC;AACT,SAAC,CAAC;AACH,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,KAAI;AAC5B,QAAA,OAAO,GAAG,CAAC,CAAC;QAEZ,WAAW;AACV,YAAA,OAAO,CAAC;AACP,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,CAAC;AACV,aAAA,CAAC;AACJ,KAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,QAAA,OAAO,EAAE;AAE5B,IAAA,QACCC,cAAA,CAACC,YAAI,EAAA,EACJ,SAAS,EAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EAEnB,QAAA,EAAA,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;AACrB,YAAA,QACCD,cAAA,CAACE,aAAK,EAAA,EAEL,GAAG,EAAE,GAAG,CAAC,GAAG,EACZ,UAAU,EAAE,KAAK,EACjB,OAAO,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAC7B,SAAS,EAAA,EAJR,CAAC,CAKL;SAEH,CAAC,EACI,CAAA;AAET;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sources":["../../../../packages/components/input/container.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { IInputContainer } from \"./type\";\n\nexport default function InputContainer(props: IInputContainer) {\n\tconst {\n\t\tas: As = \"label\",\n\t\tlabel,\n\t\tclassName,\n\t\tlabelInline,\n\t\tstyle,\n\t\tchildren,\n\t\tstatus,\n\t\ttip,\n\t\trequired,\n\t} = props;\n\n\treturn (\n\t\t<As\n\t\t\tclassName={classNames(\"i-input-label\", className, {\n\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t{children}\n\n\t\t\t{tip && (\n\t\t\t\t<span\n\t\t\t\t\tclassName={classNames(\"i-input-message\", {\n\t\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{tip}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</As>\n\t);\n}\n"],"names":["_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;AAGwB,SAAA,cAAc,CAAC,KAAsB,EAAA;IAC5D,MAAM,EACL,EAAE,EAAE,EAAE,GAAG,OAAO,EAChB,KAAK,EACL,SAAS,EACT,WAAW,EACX,KAAK,EACL,QAAQ,EACR,MAAM,EACN,GAAG,EACH,QAAQ,GACR,GAAG,KAAK;IAET,QACCA,eAAC,CAAA,EAAE,EACF,EAAA,SAAS,EAAEC,mBAAU,CAAC,eAAe,EAAE,SAAS,EAAE;AACjD,YAAA,gBAAgB,EAAE,WAAW;AAC7B,SAAA,CAAC,EACF,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CAEX,KAAK,KACLD,eAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAClC,QAAQ,IAAIE,yBAAM,SAAS,EAAC,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAAS,EAC5C,KAAK,CAAA,EAAA,CACA,CACP,EAEA,QAAQ,EAER,GAAG,KACHA,yBACC,SAAS,EAAED,mBAAU,CAAC,iBAAiB,EAAE;AACxC,oBAAA,CAAC,WAAW,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,QAAQ;AAC1C,iBAAA,CAAC,YAED,GAAG,EAAA,CACE,CACP,CAAA,EAAA,CACG;AAEP;;;;"}
1
+ {"version":3,"file":"container.js","sources":["../../../../packages/components/input/container.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { IInputContainer } from \"./type\";\r\n\r\nexport default function InputContainer(props: IInputContainer) {\r\n\tconst {\r\n\t\tas: As = \"label\",\r\n\t\tlabel,\r\n\t\tclassName,\r\n\t\tlabelInline,\r\n\t\tstyle,\r\n\t\tchildren,\r\n\t\tstatus,\r\n\t\ttip,\r\n\t\trequired,\r\n\t} = props;\r\n\r\n\treturn (\r\n\t\t<As\r\n\t\t\tclassName={classNames(\"i-input-label\", className, {\r\n\t\t\t\t\"i-input-inline\": labelInline,\r\n\t\t\t})}\r\n\t\t\tstyle={style}\r\n\t\t>\r\n\t\t\t{label && (\r\n\t\t\t\t<span className='i-input-label-text'>\r\n\t\t\t\t\t{required && <span className='error'>*</span>}\r\n\t\t\t\t\t{label}\r\n\t\t\t\t</span>\r\n\t\t\t)}\r\n\r\n\t\t\t{children}\r\n\r\n\t\t\t{tip && (\r\n\t\t\t\t<span\r\n\t\t\t\t\tclassName={classNames(\"i-input-message\", {\r\n\t\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\r\n\t\t\t\t\t})}\r\n\t\t\t\t>\r\n\t\t\t\t\t{tip}\r\n\t\t\t\t</span>\r\n\t\t\t)}\r\n\t\t</As>\r\n\t);\r\n}\r\n"],"names":["_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;AAGwB,SAAA,cAAc,CAAC,KAAsB,EAAA;IAC5D,MAAM,EACL,EAAE,EAAE,EAAE,GAAG,OAAO,EAChB,KAAK,EACL,SAAS,EACT,WAAW,EACX,KAAK,EACL,QAAQ,EACR,MAAM,EACN,GAAG,EACH,QAAQ,GACR,GAAG,KAAK;IAET,QACCA,eAAC,CAAA,EAAE,EACF,EAAA,SAAS,EAAEC,mBAAU,CAAC,eAAe,EAAE,SAAS,EAAE;AACjD,YAAA,gBAAgB,EAAE,WAAW;AAC7B,SAAA,CAAC,EACF,KAAK,EAAE,KAAK,EAAA,QAAA,EAAA,CAEX,KAAK,KACLD,eAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAClC,QAAQ,IAAIE,yBAAM,SAAS,EAAC,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAAS,EAC5C,KAAK,CAAA,EAAA,CACA,CACP,EAEA,QAAQ,EAER,GAAG,KACHA,yBACC,SAAS,EAAED,mBAAU,CAAC,iBAAiB,EAAE;AACxC,oBAAA,CAAC,WAAW,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,QAAQ;AAC1C,iBAAA,CAAC,YAED,GAAG,EAAA,CACE,CACP,CAAA,EAAA,CACG;AAEP;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../../../packages/components/input/input.tsx"],"sourcesContent":["import { VisibilityOffRound, VisibilityRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { ChangeEvent, useEffect, useMemo } from \"react\";\nimport \"../../css/input.css\";\nimport Helpericon from \"../utils/helpericon\";\nimport InputContainer from \"./container\";\nimport Number from \"./number\";\nimport Range from \"./range\";\nimport Textarea from \"./textarea\";\nimport type { CompositionInput, IInput } from \"./type\";\n\nconst Input = ((props: IInput) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tlabel,\n\t\tname,\n\t\tvalue = \"\",\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\ttip,\n\t\tclear,\n\t\twidth,\n\t\thideVisible,\n\t\tborder,\n\t\tunderline,\n\t\trequired,\n\t\tmaxLength,\n\t\tonChange,\n\t\tonEnter,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tvalue,\n\t\ttype,\n\t\tvisible: false,\n\t});\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst v = e.target.value;\n\n\t\tstate.value = v;\n\t\tonChange?.(v, e);\n\t};\n\n\tconst handleKeydown = (e) => {\n\t\te.code === \"Enter\" && onEnter?.(e);\n\t};\n\n\tconst handleHelperClick = () => {\n\t\tif (type === \"password\" && !hideVisible) {\n\t\t\tObject.assign(state, {\n\t\t\t\tvisible: !state.visible,\n\t\t\t\ttype: !state.visible ? \"text\" : \"password\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst v = \"\";\n\t\tonChange?.(v);\n\t};\n\n\tconst HelperIcon = useMemo(() => {\n\t\tif (type === \"password\") {\n\t\t\treturn state.visible ? <VisibilityRound /> : <VisibilityOffRound />;\n\t\t}\n\n\t\treturn undefined;\n\t}, [state.visible]);\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\tconst inputProps = {\n\t\tref,\n\t\ttype: state.type,\n\t\tname,\n\t\tvalue: state.value,\n\t\tmaxLength,\n\t\tclassName: classNames(\"i-input\", `i-input-${type}`),\n\t\tonChange: handleChange,\n\t\tonKeyDown: handleKeydown,\n\t\t...restProps,\n\t};\n\n\tconst clearable = clear && state.value;\n\tconst showHelper = type === \"password\" && !!state.value;\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={className}\n\t\t\tstyle={{ width, ...style }}\n\t\t\ttip={message ?? tip}\n\t\t\tstatus={status}\n\t\t\trequired={required}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\"i-input-underline\": underline,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\n\n\t\t\t\t<input {...inputProps} />\n\n\t\t\t\t{maxLength && state.value?.length > 0 && (\n\t\t\t\t\t<span className='color-8 pr-4 font-sm'>\n\t\t\t\t\t\t{state.value.length} / {maxLength}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive={!!clearable || showHelper}\n\t\t\t\t\ticon={HelperIcon}\n\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t/>\n\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n}) as CompositionInput;\n\nInput.Textarea = Textarea;\nInput.Number = Number;\nInput.Range = Range;\n\nexport default Input;\n"],"names":["useReactive","useMemo","_jsx","VisibilityRound","VisibilityOffRound","useEffect","classNames","InputContainer","_jsxs","Helpericon","Textarea","Number","Range"],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sources":["../../../../packages/components/input/input.tsx"],"sourcesContent":["import { VisibilityOffRound, VisibilityRound } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { ChangeEvent, useEffect, useMemo } from \"react\";\r\nimport \"../../css/input.css\";\r\nimport Helpericon from \"../utils/helpericon\";\r\nimport InputContainer from \"./container\";\r\nimport Number from \"./number\";\r\nimport Range from \"./range\";\r\nimport Textarea from \"./textarea\";\r\nimport type { CompositionInput, IInput } from \"./type\";\r\n\r\nconst Input = ((props: IInput) => {\r\n\tconst {\r\n\t\tref,\r\n\t\ttype = \"text\",\r\n\t\tlabel,\r\n\t\tname,\r\n\t\tvalue = \"\",\r\n\t\tprepend,\r\n\t\tappend,\r\n\t\tlabelInline,\r\n\t\tclassName,\r\n\t\tstatus = \"normal\",\r\n\t\tmessage,\r\n\t\ttip,\r\n\t\tclear,\r\n\t\twidth,\r\n\t\thideVisible,\r\n\t\tborder,\r\n\t\tunderline,\r\n\t\trequired,\r\n\t\tmaxLength,\r\n\t\tonChange,\r\n\t\tonEnter,\r\n\t\tstyle,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tvalue,\r\n\t\ttype,\r\n\t\tvisible: false,\r\n\t});\r\n\r\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n\t\tconst v = e.target.value;\r\n\r\n\t\tstate.value = v;\r\n\t\tonChange?.(v, e);\r\n\t};\r\n\r\n\tconst handleKeydown = (e) => {\r\n\t\te.code === \"Enter\" && onEnter?.(e);\r\n\t};\r\n\r\n\tconst handleHelperClick = () => {\r\n\t\tif (type === \"password\" && !hideVisible) {\r\n\t\t\tObject.assign(state, {\r\n\t\t\t\tvisible: !state.visible,\r\n\t\t\t\ttype: !state.visible ? \"text\" : \"password\",\r\n\t\t\t});\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst v = \"\";\r\n\t\tonChange?.(v);\r\n\t};\r\n\r\n\tconst HelperIcon = useMemo(() => {\r\n\t\tif (type === \"password\") {\r\n\t\t\treturn state.visible ? <VisibilityRound /> : <VisibilityOffRound />;\r\n\t\t}\r\n\r\n\t\treturn undefined;\r\n\t}, [state.visible]);\r\n\r\n\tuseEffect(() => {\r\n\t\tstate.value = value;\r\n\t}, [value]);\r\n\r\n\tconst inputProps = {\r\n\t\tref,\r\n\t\ttype: state.type,\r\n\t\tname,\r\n\t\tvalue: state.value,\r\n\t\tmaxLength,\r\n\t\tclassName: classNames(\"i-input\", `i-input-${type}`),\r\n\t\tonChange: handleChange,\r\n\t\tonKeyDown: handleKeydown,\r\n\t\t...restProps,\r\n\t};\r\n\r\n\tconst clearable = clear && state.value;\r\n\tconst showHelper = type === \"password\" && !!state.value;\r\n\r\n\treturn (\r\n\t\t<InputContainer\r\n\t\t\tlabel={label}\r\n\t\t\tlabelInline={labelInline}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={{ width, ...style }}\r\n\t\t\ttip={message ?? tip}\r\n\t\t\tstatus={status}\r\n\t\t\trequired={required}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tclassName={classNames(\"i-input-item\", {\r\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\r\n\t\t\t\t\t\"i-input-borderless\": !border,\r\n\t\t\t\t\t\"i-input-underline\": underline,\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\r\n\r\n\t\t\t\t<input {...inputProps} />\r\n\r\n\t\t\t\t{maxLength && state.value?.length > 0 && (\r\n\t\t\t\t\t<span className='color-8 pr-4 font-sm'>\r\n\t\t\t\t\t\t{state.value.length} / {maxLength}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<Helpericon\r\n\t\t\t\t\tactive={!!clearable || showHelper}\r\n\t\t\t\t\ticon={HelperIcon}\r\n\t\t\t\t\tonClick={handleHelperClick}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\r\n\t\t\t</div>\r\n\t\t</InputContainer>\r\n\t);\r\n}) as CompositionInput;\r\n\r\nInput.Textarea = Textarea;\r\nInput.Number = Number;\r\nInput.Range = Range;\r\n\r\nexport default Input;\r\n"],"names":["useReactive","useMemo","_jsx","VisibilityRound","VisibilityOffRound","useEffect","classNames","InputContainer","_jsxs","Helpericon","Textarea","Number","Range"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sources":["../../../../packages/components/input/number.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { ChangeEvent, useEffect } from \"react\";\nimport \"../../css/input.css\";\nimport { clamp, formatNumber } from \"../../js/utils\";\nimport Helpericon from \"../utils/helpericon\";\nimport InputContainer from \"./container\";\nimport type { IInputNumber } from \"./type\";\n\nconst Number = (props: IInputNumber) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tname,\n\t\tvalue = \"\",\n\t\tlabelInline,\n\t\tstep = 1,\n\t\tmin = -Infinity,\n\t\tmax = Infinity,\n\t\tthousand,\n\t\tprecision,\n\t\ttype,\n\t\tclassName,\n\t\twidth,\n\t\tstatus = \"normal\",\n\t\tappend,\n\t\tborder,\n\t\tprepend,\n\t\tdisabled,\n\t\tmessage,\n\t\ttip,\n\t\thideControl,\n\t\tstyle,\n\t\tonChange,\n\t\tonEnter,\n\t\tonInput,\n\t\tonBlur,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tvalue,\n\t});\n\n\tconst getRangeNumber = (v: number) => clamp(v, min, max);\n\n\tconst getFormatNumber = (v: number) =>\n\t\tformatNumber(v, { precision, thousand });\n\n\tconst formatInputValue = (v?: string | number) => {\n\t\tif (!v) return \"\";\n\t\tif (typeof v === \"number\" || !thousand) return v;\n\n\t\treturn v.replaceAll(thousand, \"\");\n\t};\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst { value } = e.target;\n\t\tconst v = formatInputValue(value.replace(/[^\\d\\.-]/g, \"\"));\n\n\t\tstate.value = v;\n\t\tonChange?.(+v, e);\n\t};\n\n\tconst handleOperate = (param: number) => {\n\t\tconst value = formatInputValue(state.value) ?? 0;\n\t\tconst result = getRangeNumber(+value + param);\n\n\t\tstate.value = getFormatNumber(result);\n\n\t\tonChange?.(result);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\tconst inputProps = {\n\t\tref,\n\t\tname,\n\t\tdisabled,\n\t\tvalue: state.value,\n\t\tclassName: \"i-input i-input-number\",\n\t\tonChange: handleChange,\n\t\t...restProps,\n\t};\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={className}\n\t\t\tstyle={{ width, ...style }}\n\t\t\ttip={message ?? tip}\n\t\t\tstatus={status}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\n\n\t\t\t\t{!hideControl && !disabled && (\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon={<MinusRound />}\n\t\t\t\t\t\tonClick={() => handleOperate(-step)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<input {...inputProps} />\n\n\t\t\t\t{!hideControl && !disabled && (\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon={<PlusRound />}\n\t\t\t\t\t\tonClick={() => handleOperate(step)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Number;\n"],"names":["useReactive","clamp","formatNumber","useEffect","_jsx","InputContainer","_jsxs","classNames","Helpericon","MinusRound","PlusRound"],"mappings":"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"}
1
+ {"version":3,"file":"number.js","sources":["../../../../packages/components/input/number.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { ChangeEvent, useEffect } from \"react\";\r\nimport \"../../css/input.css\";\r\nimport { clamp, formatNumber } from \"../../js/utils\";\r\nimport Helpericon from \"../utils/helpericon\";\r\nimport InputContainer from \"./container\";\r\nimport type { IInputNumber } from \"./type\";\r\n\r\nconst Number = (props: IInputNumber) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tlabel,\r\n\t\tname,\r\n\t\tvalue = \"\",\r\n\t\tlabelInline,\r\n\t\tstep = 1,\r\n\t\tmin = -Infinity,\r\n\t\tmax = Infinity,\r\n\t\tthousand,\r\n\t\tprecision,\r\n\t\ttype,\r\n\t\tclassName,\r\n\t\twidth,\r\n\t\tstatus = \"normal\",\r\n\t\tappend,\r\n\t\tborder,\r\n\t\tprepend,\r\n\t\tdisabled,\r\n\t\tmessage,\r\n\t\ttip,\r\n\t\thideControl,\r\n\t\tstyle,\r\n\t\tonChange,\r\n\t\tonEnter,\r\n\t\tonInput,\r\n\t\tonBlur,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tvalue,\r\n\t});\r\n\r\n\tconst getRangeNumber = (v: number) => clamp(v, min, max);\r\n\r\n\tconst getFormatNumber = (v: number) =>\r\n\t\tformatNumber(v, { precision, thousand });\r\n\r\n\tconst formatInputValue = (v?: string | number) => {\r\n\t\tif (!v) return \"\";\r\n\t\tif (typeof v === \"number\" || !thousand) return v;\r\n\r\n\t\treturn v.replaceAll(thousand, \"\");\r\n\t};\r\n\r\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n\t\tconst { value } = e.target;\r\n\t\tconst v = formatInputValue(value.replace(/[^\\d\\.-]/g, \"\"));\r\n\r\n\t\tstate.value = v;\r\n\t\tonChange?.(+v, e);\r\n\t};\r\n\r\n\tconst handleOperate = (param: number) => {\r\n\t\tconst value = formatInputValue(state.value) ?? 0;\r\n\t\tconst result = getRangeNumber(+value + param);\r\n\r\n\t\tstate.value = getFormatNumber(result);\r\n\r\n\t\tonChange?.(result);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tstate.value = value;\r\n\t}, [value]);\r\n\r\n\tconst inputProps = {\r\n\t\tref,\r\n\t\tname,\r\n\t\tdisabled,\r\n\t\tvalue: state.value,\r\n\t\tclassName: \"i-input i-input-number\",\r\n\t\tonChange: handleChange,\r\n\t\t...restProps,\r\n\t};\r\n\r\n\treturn (\r\n\t\t<InputContainer\r\n\t\t\tlabel={label}\r\n\t\t\tlabelInline={labelInline}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={{ width, ...style }}\r\n\t\t\ttip={message ?? tip}\r\n\t\t\tstatus={status}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tclassName={classNames(\"i-input-item\", {\r\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\r\n\t\t\t\t\t\"i-input-borderless\": !border,\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\r\n\r\n\t\t\t\t{!hideControl && !disabled && (\r\n\t\t\t\t\t<Helpericon\r\n\t\t\t\t\t\tactive\r\n\t\t\t\t\t\ticon={<MinusRound />}\r\n\t\t\t\t\t\tonClick={() => handleOperate(-step)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<input {...inputProps} />\r\n\r\n\t\t\t\t{!hideControl && !disabled && (\r\n\t\t\t\t\t<Helpericon\r\n\t\t\t\t\t\tactive\r\n\t\t\t\t\t\ticon={<PlusRound />}\r\n\t\t\t\t\t\tonClick={() => handleOperate(step)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\r\n\t\t\t</div>\r\n\t\t</InputContainer>\r\n\t);\r\n};\r\n\r\nexport default Number;\r\n"],"names":["useReactive","clamp","formatNumber","useEffect","_jsx","InputContainer","_jsxs","classNames","Helpericon","MinusRound","PlusRound"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sources":["../../../../packages/components/input/range.tsx"],"sourcesContent":["import { MinusRound, PlusRound, SyncAltRound } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { ChangeEvent, MouseEvent, useEffect } from \"react\";\nimport \"../../css/input.css\";\nimport { clamp, formatNumber } from \"../../js/utils\";\nimport Helpericon from \"../utils/helpericon\";\nimport InputContainer from \"./container\";\nimport type { IInputRange } from \"./type\";\n\nconst Range = (props: IInputRange) => {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\tvalue,\n\t\tlabelInline,\n\t\tmin = -Infinity,\n\t\tmax = Infinity,\n\t\ttype,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\ttip,\n\t\tappend,\n\t\tprepend,\n\t\tstep = 1,\n\t\twidth,\n\t\tthousand,\n\t\tprecision,\n\t\thideControl,\n\t\tplaceholder,\n\t\tborder,\n\t\tautoSwitch,\n\t\tonChange,\n\t\tonBlur,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tvalue,\n\t});\n\n\tconst getRangeNumber = (v: number) => clamp(v, min, max);\n\n\tconst getFormatNumber = (v: number) =>\n\t\tformatNumber(v, { precision, thousand });\n\n\tconst formatInputValue = (v?: string | number) => {\n\t\tif (!v) return \"\";\n\t\tif (typeof v === \"number\" || !thousand) return v;\n\n\t\treturn v.replaceAll(thousand, \"\");\n\t};\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>, i: number) => {\n\t\tconst { value } = e.target;\n\t\tconst v = formatInputValue(value.replace(/[^\\d\\.-]/g, \"\"));\n\t\tconst range = Array.isArray(state.value) ? state.value : [];\n\n\t\trange[i] = v;\n\t\tstate.value = range;\n\t\tonChange?.(range, e);\n\t};\n\n\tconst handleOperate = (\n\t\te: MouseEvent<Element>,\n\t\tparam: number,\n\t\ti: number\n\t) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tconst range = Array.isArray(state.value) ? state.value : [];\n\t\tconst value = formatInputValue(range[i]) ?? 0;\n\t\tconst result = getRangeNumber(+value + param);\n\n\t\trange[i] = getFormatNumber(result);\n\n\t\tstate.value = range;\n\t\tonChange?.(range, e);\n\t};\n\n\tconst handleSwitch = (e?: MouseEvent) => {\n\t\te?.preventDefault();\n\t\te?.stopPropagation();\n\t\tconst range = state.value ? state.value : [];\n\t\t[range[0], range[1]] = [range[1], range[0]];\n\n\t\tstate.value = range;\n\t\tonChange?.(range);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\tconst inputProps = {\n\t\tname,\n\t\tclassName: \"i-input i-input-number\",\n\t\t...restProps,\n\t};\n\n\tconst handleBlur = () => {\n\t\tif (!autoSwitch) return;\n\t\tconst range = Array.isArray(state.value) ? state.value : [];\n\n\t\tif (range.length < 2) return;\n\n\t\tconst [left, right] = range.map(Number);\n\t\tif (left > right) {\n\t\t\thandleSwitch();\n\t\t}\n\t};\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={className}\n\t\t\tstyle={{ width, ...style }}\n\t\t\ttip={message ?? tip}\n\t\t\tstatus={status}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\n\n\t\t\t\t{!hideControl && (\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon={<MinusRound />}\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, -step, 0)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<input\n\t\t\t\t\tvalue={state.value?.[0] || \"\"}\n\t\t\t\t\tplaceholder={placeholder?.[0]}\n\t\t\t\t\t{...inputProps}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tonChange={(e) => handleChange(e, 0)}\n\t\t\t\t/>\n\n\t\t\t\t{!hideControl && (\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon={<PlusRound />}\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, step, 0)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\ticon={<SyncAltRound />}\n\t\t\t\t\tstyle={{ margin: 0 }}\n\t\t\t\t\tonClick={handleSwitch}\n\t\t\t\t/>\n\t\t\t\t{!hideControl && (\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon={<MinusRound />}\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, -step, 1)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<input\n\t\t\t\t\tvalue={state.value?.[1] || \"\"}\n\t\t\t\t\tplaceholder={placeholder?.[1]}\n\t\t\t\t\t{...inputProps}\n\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\tonChange={(e) => handleChange(e, 1)}\n\t\t\t\t/>\n\n\t\t\t\t{!hideControl && (\n\t\t\t\t\t<Helpericon\n\t\t\t\t\t\tactive\n\t\t\t\t\t\ticon={<PlusRound />}\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, step, 1)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Range;\n"],"names":["useReactive","clamp","formatNumber","useEffect","_jsx","InputContainer","_jsxs","classNames","Helpericon","MinusRound","PlusRound","SyncAltRound"],"mappings":"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"}
1
+ {"version":3,"file":"range.js","sources":["../../../../packages/components/input/range.tsx"],"sourcesContent":["import { MinusRound, PlusRound, SyncAltRound } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { ChangeEvent, MouseEvent, useEffect } from \"react\";\r\nimport \"../../css/input.css\";\r\nimport { clamp, formatNumber } from \"../../js/utils\";\r\nimport Helpericon from \"../utils/helpericon\";\r\nimport InputContainer from \"./container\";\r\nimport type { IInputRange } from \"./type\";\r\n\r\nconst Range = (props: IInputRange) => {\r\n\tconst {\r\n\t\tlabel,\r\n\t\tname,\r\n\t\tvalue,\r\n\t\tlabelInline,\r\n\t\tmin = -Infinity,\r\n\t\tmax = Infinity,\r\n\t\ttype,\r\n\t\tclassName,\r\n\t\tstatus = \"normal\",\r\n\t\tmessage,\r\n\t\ttip,\r\n\t\tappend,\r\n\t\tprepend,\r\n\t\tstep = 1,\r\n\t\twidth,\r\n\t\tthousand,\r\n\t\tprecision,\r\n\t\thideControl,\r\n\t\tplaceholder,\r\n\t\tborder,\r\n\t\tautoSwitch,\r\n\t\tonChange,\r\n\t\tonBlur,\r\n\t\tstyle,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tvalue,\r\n\t});\r\n\r\n\tconst getRangeNumber = (v: number) => clamp(v, min, max);\r\n\r\n\tconst getFormatNumber = (v: number) =>\r\n\t\tformatNumber(v, { precision, thousand });\r\n\r\n\tconst formatInputValue = (v?: string | number) => {\r\n\t\tif (!v) return \"\";\r\n\t\tif (typeof v === \"number\" || !thousand) return v;\r\n\r\n\t\treturn v.replaceAll(thousand, \"\");\r\n\t};\r\n\r\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>, i: number) => {\r\n\t\tconst { value } = e.target;\r\n\t\tconst v = formatInputValue(value.replace(/[^\\d\\.-]/g, \"\"));\r\n\t\tconst range = Array.isArray(state.value) ? state.value : [];\r\n\r\n\t\trange[i] = v;\r\n\t\tstate.value = range;\r\n\t\tonChange?.(range, e);\r\n\t};\r\n\r\n\tconst handleOperate = (\r\n\t\te: MouseEvent<Element>,\r\n\t\tparam: number,\r\n\t\ti: number\r\n\t) => {\r\n\t\te.preventDefault();\r\n\t\te.stopPropagation();\r\n\r\n\t\tconst range = Array.isArray(state.value) ? state.value : [];\r\n\t\tconst value = formatInputValue(range[i]) ?? 0;\r\n\t\tconst result = getRangeNumber(+value + param);\r\n\r\n\t\trange[i] = getFormatNumber(result);\r\n\r\n\t\tstate.value = range;\r\n\t\tonChange?.(range, e);\r\n\t};\r\n\r\n\tconst handleSwitch = (e?: MouseEvent) => {\r\n\t\te?.preventDefault();\r\n\t\te?.stopPropagation();\r\n\t\tconst range = state.value ? state.value : [];\r\n\t\t[range[0], range[1]] = [range[1], range[0]];\r\n\r\n\t\tstate.value = range;\r\n\t\tonChange?.(range);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tstate.value = value;\r\n\t}, [value]);\r\n\r\n\tconst inputProps = {\r\n\t\tname,\r\n\t\tclassName: \"i-input i-input-number\",\r\n\t\t...restProps,\r\n\t};\r\n\r\n\tconst handleBlur = () => {\r\n\t\tif (!autoSwitch) return;\r\n\t\tconst range = Array.isArray(state.value) ? state.value : [];\r\n\r\n\t\tif (range.length < 2) return;\r\n\r\n\t\tconst [left, right] = range.map(Number);\r\n\t\tif (left > right) {\r\n\t\t\thandleSwitch();\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<InputContainer\r\n\t\t\tlabel={label}\r\n\t\t\tlabelInline={labelInline}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={{ width, ...style }}\r\n\t\t\ttip={message ?? tip}\r\n\t\t\tstatus={status}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tclassName={classNames(\"i-input-item\", {\r\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\r\n\t\t\t\t\t\"i-input-borderless\": !border,\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\r\n\r\n\t\t\t\t{!hideControl && (\r\n\t\t\t\t\t<Helpericon\r\n\t\t\t\t\t\tactive\r\n\t\t\t\t\t\ticon={<MinusRound />}\r\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, -step, 0)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<input\r\n\t\t\t\t\tvalue={state.value?.[0] || \"\"}\r\n\t\t\t\t\tplaceholder={placeholder?.[0]}\r\n\t\t\t\t\t{...inputProps}\r\n\t\t\t\t\tonBlur={handleBlur}\r\n\t\t\t\t\tonChange={(e) => handleChange(e, 0)}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{!hideControl && (\r\n\t\t\t\t\t<Helpericon\r\n\t\t\t\t\t\tactive\r\n\t\t\t\t\t\ticon={<PlusRound />}\r\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, step, 0)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t\t<Helpericon\r\n\t\t\t\t\tactive\r\n\t\t\t\t\ticon={<SyncAltRound />}\r\n\t\t\t\t\tstyle={{ margin: 0 }}\r\n\t\t\t\t\tonClick={handleSwitch}\r\n\t\t\t\t/>\r\n\t\t\t\t{!hideControl && (\r\n\t\t\t\t\t<Helpericon\r\n\t\t\t\t\t\tactive\r\n\t\t\t\t\t\ticon={<MinusRound />}\r\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, -step, 1)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<input\r\n\t\t\t\t\tvalue={state.value?.[1] || \"\"}\r\n\t\t\t\t\tplaceholder={placeholder?.[1]}\r\n\t\t\t\t\t{...inputProps}\r\n\t\t\t\t\tonBlur={handleBlur}\r\n\t\t\t\t\tonChange={(e) => handleChange(e, 1)}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{!hideControl && (\r\n\t\t\t\t\t<Helpericon\r\n\t\t\t\t\t\tactive\r\n\t\t\t\t\t\ticon={<PlusRound />}\r\n\t\t\t\t\t\tonClick={(e) => handleOperate(e, step, 1)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\r\n\t\t\t</div>\r\n\t\t</InputContainer>\r\n\t);\r\n};\r\n\r\nexport default Range;\r\n"],"names":["useReactive","clamp","formatNumber","useEffect","_jsx","InputContainer","_jsxs","classNames","Helpericon","MinusRound","PlusRound","SyncAltRound"],"mappings":"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"}
@@ -21,7 +21,7 @@ const Textarea = (props) => {
21
21
  const handleChange = (e) => {
22
22
  const v = e.target.value;
23
23
  state.value = v;
24
- const ta = refTextarea.current?.firstChild;
24
+ const ta = refTextarea.current;
25
25
  if (autoSize && ta) {
26
26
  ta.style.height = `${ta.scrollHeight}px`;
27
27
  }
@@ -36,8 +36,13 @@ const Textarea = (props) => {
36
36
  react.useEffect(() => {
37
37
  state.value = value;
38
38
  }, [value]);
39
+ react.useImperativeHandle(ref, () => {
40
+ return {
41
+ input: refTextarea.current,
42
+ };
43
+ });
39
44
  const inputProps = {
40
- ref,
45
+ ref: refTextarea,
41
46
  name,
42
47
  value: state.value,
43
48
  className: "i-input i-textarea",
@@ -45,7 +50,7 @@ const Textarea = (props) => {
45
50
  onKeyDown: handleKeydown,
46
51
  ...restProps,
47
52
  };
48
- return (jsxRuntime.jsx(container.default, { label: label, labelInline: labelInline, className: className, style: { width, ...style }, tip: message ?? tip, status: status, children: jsxRuntime.jsx("div", { ref: refTextarea, className: classNames__default("i-input-item", {
53
+ return (jsxRuntime.jsx(container.default, { label: label, labelInline: labelInline, className: className, style: { width, ...style }, tip: message ?? tip, status: status, children: jsxRuntime.jsx("div", { className: classNames__default("i-input-item", {
49
54
  [`i-input-${status}`]: status !== "normal",
50
55
  "i-input-borderless": !border,
51
56
  }), children: jsxRuntime.jsx("textarea", { ...inputProps }) }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"textarea.js","sources":["../../../../packages/components/input/textarea.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { ChangeEvent, useEffect, useRef } from \"react\";\nimport \"../../css/input.css\";\nimport InputContainer from \"./container\";\nimport type { ITextarea } from \"./type\";\n\nconst Textarea = (props: ITextarea) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tname,\n\t\tvalue = \"\",\n\t\tlabelInline,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\ttip,\n\t\tautoSize,\n\t\tborder,\n\t\twidth,\n\t\tstyle,\n\t\tonChange,\n\t\tonEnter,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tvalue,\n\t});\n\tconst refTextarea = useRef<HTMLDivElement>(null);\n\n\tconst handleChange = (\n\t\te: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n\t) => {\n\t\tconst v = e.target.value;\n\n\t\tstate.value = v;\n\n\t\tconst ta = refTextarea.current?.firstChild as HTMLElement;\n\t\tif (autoSize && ta) {\n\t\t\tta.style.height = `${ta.scrollHeight}px`;\n\t\t}\n\n\t\tonChange?.(v, e);\n\t};\n\n\tconst handleKeydown = (e) => {\n\t\tif (e.code !== \"Enter\") return;\n\n\t\te.stopPropagation();\n\t\tonEnter?.(e);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\tconst inputProps = {\n\t\tref,\n\t\tname,\n\t\tvalue: state.value,\n\t\tclassName: \"i-input i-textarea\",\n\t\tonChange: handleChange,\n\t\tonKeyDown: handleKeydown,\n\t\t...restProps,\n\t};\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={className}\n\t\t\tstyle={{ width, ...style }}\n\t\t\ttip={message ?? tip}\n\t\t\tstatus={status}\n\t\t>\n\t\t\t<div\n\t\t\t\tref={refTextarea}\n\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<textarea {...inputProps} />\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Textarea;\n"],"names":["useReactive","useRef","useEffect","_jsx","InputContainer","classNames"],"mappings":";;;;;;;;;;;;;;AAOA,MAAM,QAAQ,GAAG,CAAC,KAAgB,KAAI;AACrC,IAAA,MAAM,EACL,GAAG,EACH,KAAK,EACL,IAAI,EACJ,KAAK,GAAG,EAAE,EACV,WAAW,EACX,SAAS,EACT,MAAM,GAAG,QAAQ,EACjB,OAAO,EACP,GAAG,EACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGA,kBAAW,CAAC;QACzB,KAAK;AACL,KAAA,CAAC;AACF,IAAA,MAAM,WAAW,GAAGC,YAAM,CAAiB,IAAI,CAAC;AAEhD,IAAA,MAAM,YAAY,GAAG,CACpB,CAAsD,KACnD;AACH,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAExB,QAAA,KAAK,CAAC,KAAK,GAAG,CAAC;AAEf,QAAA,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,UAAyB;AACzD,QAAA,IAAI,QAAQ,IAAI,EAAE,EAAE;YACnB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAA,EAAA,CAAI;;AAGzC,QAAA,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;AACjB,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAI;AAC3B,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE;QAExB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,OAAO,GAAG,CAAC,CAAC;AACb,KAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACpB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,UAAU,GAAG;QAClB,GAAG;QACH,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,GAAG,SAAS;KACZ;IAED,QACCC,eAACC,iBAAc,EAAA,EACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAC1B,GAAG,EAAE,OAAO,IAAI,GAAG,EACnB,MAAM,EAAE,MAAM,YAEdD,cACC,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,WAAW,EAChB,SAAS,EAAEE,mBAAU,CAAC,cAAc,EAAE;AACrC,gBAAA,CAAC,WAAW,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,QAAQ;gBAC1C,oBAAoB,EAAE,CAAC,MAAM;AAC7B,aAAA,CAAC,YAEFF,cAAc,CAAA,UAAA,EAAA,EAAA,GAAA,UAAU,GAAI,EACvB,CAAA,EAAA,CACU;AAEnB;;;;"}
1
+ {"version":3,"file":"textarea.js","sources":["../../../../packages/components/input/textarea.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { ChangeEvent, useEffect, useImperativeHandle, useRef } from \"react\";\r\nimport \"../../css/input.css\";\r\nimport InputContainer from \"./container\";\r\nimport type { ITextarea } from \"./type\";\r\n\r\nconst Textarea = (props: ITextarea) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tlabel,\r\n\t\tname,\r\n\t\tvalue = \"\",\r\n\t\tlabelInline,\r\n\t\tclassName,\r\n\t\tstatus = \"normal\",\r\n\t\tmessage,\r\n\t\ttip,\r\n\t\tautoSize,\r\n\t\tborder,\r\n\t\twidth,\r\n\t\tstyle,\r\n\t\tonChange,\r\n\t\tonEnter,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tvalue,\r\n\t});\r\n\tconst refTextarea = useRef<HTMLTextAreaElement>(null);\r\n\r\n\tconst handleChange = (\r\n\t\te: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\r\n\t) => {\r\n\t\tconst v = e.target.value;\r\n\r\n\t\tstate.value = v;\r\n\r\n\t\tconst ta = refTextarea.current as HTMLElement;\r\n\t\tif (autoSize && ta) {\r\n\t\t\tta.style.height = `${ta.scrollHeight}px`;\r\n\t\t}\r\n\r\n\t\tonChange?.(v, e);\r\n\t};\r\n\r\n\tconst handleKeydown = (e) => {\r\n\t\tif (e.code !== \"Enter\") return;\r\n\r\n\t\te.stopPropagation();\r\n\t\tonEnter?.(e);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tstate.value = value;\r\n\t}, [value]);\r\n\r\n\tuseImperativeHandle(ref, () => {\r\n\t\treturn {\r\n\t\t\tinput: refTextarea.current,\r\n\t\t};\r\n\t});\r\n\r\n\tconst inputProps = {\r\n\t\tref: refTextarea,\r\n\t\tname,\r\n\t\tvalue: state.value,\r\n\t\tclassName: \"i-input i-textarea\",\r\n\t\tonChange: handleChange,\r\n\t\tonKeyDown: handleKeydown,\r\n\t\t...restProps,\r\n\t};\r\n\r\n\treturn (\r\n\t\t<InputContainer\r\n\t\t\tlabel={label}\r\n\t\t\tlabelInline={labelInline}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={{ width, ...style }}\r\n\t\t\ttip={message ?? tip}\r\n\t\t\tstatus={status}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tclassName={classNames(\"i-input-item\", {\r\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\r\n\t\t\t\t\t\"i-input-borderless\": !border,\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\t\t<textarea {...inputProps} />\r\n\t\t\t</div>\r\n\t\t</InputContainer>\r\n\t);\r\n};\r\n\r\nexport default Textarea;\r\n"],"names":["useReactive","useRef","useEffect","useImperativeHandle","_jsx","InputContainer","classNames"],"mappings":";;;;;;;;;;;;;;AAOA,MAAM,QAAQ,GAAG,CAAC,KAAgB,KAAI;AACrC,IAAA,MAAM,EACL,GAAG,EACH,KAAK,EACL,IAAI,EACJ,KAAK,GAAG,EAAE,EACV,WAAW,EACX,SAAS,EACT,MAAM,GAAG,QAAQ,EACjB,OAAO,EACP,GAAG,EACH,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGA,kBAAW,CAAC;QACzB,KAAK;AACL,KAAA,CAAC;AACF,IAAA,MAAM,WAAW,GAAGC,YAAM,CAAsB,IAAI,CAAC;AAErD,IAAA,MAAM,YAAY,GAAG,CACpB,CAAsD,KACnD;AACH,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAExB,QAAA,KAAK,CAAC,KAAK,GAAG,CAAC;AAEf,QAAA,MAAM,EAAE,GAAG,WAAW,CAAC,OAAsB;AAC7C,QAAA,IAAI,QAAQ,IAAI,EAAE,EAAE;YACnB,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAA,EAAA,CAAI;;AAGzC,QAAA,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC;AACjB,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAC,KAAI;AAC3B,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE;QAExB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,OAAO,GAAG,CAAC,CAAC;AACb,KAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACpB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAAC,yBAAmB,CAAC,GAAG,EAAE,MAAK;QAC7B,OAAO;YACN,KAAK,EAAE,WAAW,CAAC,OAAO;SAC1B;AACF,KAAC,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG;AAClB,QAAA,GAAG,EAAE,WAAW;QAChB,IAAI;QACJ,KAAK,EAAE,KAAK,CAAC,KAAK;AAClB,QAAA,SAAS,EAAE,oBAAoB;AAC/B,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,GAAG,SAAS;KACZ;AAED,IAAA,QACCC,cAAC,CAAAC,iBAAc,IACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAC1B,GAAG,EAAE,OAAO,IAAI,GAAG,EACnB,MAAM,EAAE,MAAM,YAEdD,cACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEE,mBAAU,CAAC,cAAc,EAAE;AACrC,gBAAA,CAAC,WAAW,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,QAAQ;gBAC1C,oBAAoB,EAAE,CAAC,MAAM;AAC7B,aAAA,CAAC,YAEFF,cAAc,CAAA,UAAA,EAAA,EAAA,GAAA,UAAU,GAAI,EACvB,CAAA,EAAA,CACU;AAEnB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sources":["../../../../packages/components/list/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { IListItem } from \"./type\";\n\nconst Item = (props: IListItem) => {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\ttype,\n\t\talign,\n\t\tdisabled,\n\t\tlabel,\n\t\tstyle,\n\t\tborder,\n\t\tclassName,\n\t\tchildren,\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t<li\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\"i-list-item\", className, {\n\t\t\t\t\"i-list-item-active\": active,\n\t\t\t\t\"i-list-option\": type === \"option\",\n\t\t\t\t\"i-list-item-bordered\": border,\n\t\t\t\tdisabled,\n\t\t\t})}\n\t\t\tstyle={{ alignItems: align, ...style }}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label !== undefined && (\n\t\t\t\t<span className='i-list-item-label'>{label}</span>\n\t\t\t)}\n\t\t\t{children}\n\t\t</li>\n\t);\n};\n\nexport default Item;\n"],"names":["_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;AAGA,MAAM,IAAI,GAAG,CAAC,KAAgB,KAAI;IACjC,MAAM,EACL,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,QACCA,eAAA,CAAA,IAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAU,CAAC,aAAa,EAAE,SAAS,EAAE;AAC/C,YAAA,oBAAoB,EAAE,MAAM;YAC5B,eAAe,EAAE,IAAI,KAAK,QAAQ;AAClC,YAAA,sBAAsB,EAAE,MAAM;YAC9B,QAAQ;AACR,SAAA,CAAC,EACF,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAA,GAClC,SAAS,EAEZ,QAAA,EAAA,CAAA,KAAK,KAAK,SAAS,KACnBC,cAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,CAClD,EACA,QAAQ,CAAA,EAAA,CACL;AAEP;;;;"}
1
+ {"version":3,"file":"item.js","sources":["../../../../packages/components/list/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { IListItem } from \"./type\";\r\n\r\nconst Item = (props: IListItem) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tactive,\r\n\t\ttype,\r\n\t\talign,\r\n\t\tdisabled,\r\n\t\tlabel,\r\n\t\tstyle,\r\n\t\tborder,\r\n\t\tclassName,\r\n\t\tchildren,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\treturn (\r\n\t\t<li\r\n\t\t\tref={ref}\r\n\t\t\tclassName={classNames(\"i-list-item\", className, {\r\n\t\t\t\t\"i-list-item-active\": active,\r\n\t\t\t\t\"i-list-option\": type === \"option\",\r\n\t\t\t\t\"i-list-item-bordered\": border,\r\n\t\t\t\tdisabled,\r\n\t\t\t})}\r\n\t\t\tstyle={{ alignItems: align, ...style }}\r\n\t\t\t{...restProps}\r\n\t\t>\r\n\t\t\t{label !== undefined && (\r\n\t\t\t\t<span className='i-list-item-label'>{label}</span>\r\n\t\t\t)}\r\n\t\t\t{children}\r\n\t\t</li>\r\n\t);\r\n};\r\n\r\nexport default Item;\r\n"],"names":["_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;AAGA,MAAM,IAAI,GAAG,CAAC,KAAgB,KAAI;IACjC,MAAM,EACL,GAAG,EACH,MAAM,EACN,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,QACCA,eAAA,CAAA,IAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAU,CAAC,aAAa,EAAE,SAAS,EAAE;AAC/C,YAAA,oBAAoB,EAAE,MAAM;YAC5B,eAAe,EAAE,IAAI,KAAK,QAAQ;AAClC,YAAA,sBAAsB,EAAE,MAAM;YAC9B,QAAQ;AACR,SAAA,CAAC,EACF,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAA,GAClC,SAAS,EAEZ,QAAA,EAAA,CAAA,KAAK,KAAK,SAAS,KACnBC,cAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,CAClD,EACA,QAAQ,CAAA,EAAA,CACL;AAEP;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sources":["../../../../packages/components/list/list.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { Children, cloneElement } from \"react\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { IList } from \"./type\";\n\nconst List = (props: IList) => {\n\tconst { label, type, border, className, children, ...restProps } = props;\n\n\treturn (\n\t\t<ul className={classNames(\"i-list\", className)} {...restProps}>\n\t\t\t{Children.map(children, (node: any, i) => {\n\t\t\t\tconst renderLabel =\n\t\t\t\t\ttypeof label === \"function\" ? label(i) : label;\n\n\t\t\t\tconst { type, props: nodeProps } = node;\n\n\t\t\t\tif (type === Item) {\n\t\t\t\t\treturn cloneElement(node, {\n\t\t\t\t\t\tlabel: renderLabel,\n\t\t\t\t\t\t...nodeProps,\n\t\t\t\t\t\ttype: props.type,\n\t\t\t\t\t\tborder,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn node;\n\t\t\t})}\n\t\t</ul>\n\t);\n};\n\nList.Item = Item;\n\nexport default List;\n"],"names":["_jsx","classNames","Children","Item","cloneElement"],"mappings":";;;;;;;;;;;;;AAMA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;AAC7B,IAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;IAExE,QACCA,cAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAEC,mBAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAM,GAAA,SAAS,YAC3DC,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAS,EAAE,CAAC,KAAI;AACxC,YAAA,MAAM,WAAW,GAChB,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;YAE/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;AAEvC,YAAA,IAAI,IAAI,KAAKC,YAAI,EAAE;gBAClB,OAAOC,kBAAY,CAAC,IAAI,EAAE;AACzB,oBAAA,KAAK,EAAE,WAAW;AAClB,oBAAA,GAAG,SAAS;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM;AACN,iBAAA,CAAC;;AAGH,YAAA,OAAO,IAAI;SACX,CAAC,EACE,CAAA;AAEP;AAEA,IAAI,CAAC,IAAI,GAAGD,YAAI;;;;"}
1
+ {"version":3,"file":"list.js","sources":["../../../../packages/components/list/list.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { Children, cloneElement } from \"react\";\r\nimport \"./index.css\";\r\nimport Item from \"./item\";\r\nimport { IList } from \"./type\";\r\n\r\nconst List = (props: IList) => {\r\n\tconst { label, type, border, className, children, ...restProps } = props;\r\n\r\n\treturn (\r\n\t\t<ul className={classNames(\"i-list\", className)} {...restProps}>\r\n\t\t\t{Children.map(children, (node: any, i) => {\r\n\t\t\t\tconst renderLabel =\r\n\t\t\t\t\ttypeof label === \"function\" ? label(i) : label;\r\n\r\n\t\t\t\tconst { type, props: nodeProps } = node;\r\n\r\n\t\t\t\tif (type === Item) {\r\n\t\t\t\t\treturn cloneElement(node, {\r\n\t\t\t\t\t\tlabel: renderLabel,\r\n\t\t\t\t\t\t...nodeProps,\r\n\t\t\t\t\t\ttype: props.type,\r\n\t\t\t\t\t\tborder,\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn node;\r\n\t\t\t})}\r\n\t\t</ul>\r\n\t);\r\n};\r\n\r\nList.Item = Item;\r\n\r\nexport default List;\r\n"],"names":["_jsx","classNames","Children","Item","cloneElement"],"mappings":";;;;;;;;;;;;;AAMA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;AAC7B,IAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;IAExE,QACCA,cAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAEC,mBAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAM,GAAA,SAAS,YAC3DC,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAS,EAAE,CAAC,KAAI;AACxC,YAAA,MAAM,WAAW,GAChB,OAAO,KAAK,KAAK,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;YAE/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;AAEvC,YAAA,IAAI,IAAI,KAAKC,YAAI,EAAE;gBAClB,OAAOC,kBAAY,CAAC,IAAI,EAAE;AACzB,oBAAA,KAAK,EAAE,WAAW;AAClB,oBAAA,GAAG,SAAS;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM;AACN,iBAAA,CAAC;;AAGH,YAAA,OAAO,IAAI;SACX,CAAC,EACE,CAAA;AAEP;AAEA,IAAI,CAAC,IAAI,GAAGD,YAAI;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"loading.js","sources":["../../../../packages/components/loading/loading.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport \"./index.css\";\nimport { ILoading } from \"./type\";\n\nconst Loading = (props: ILoading) => {\n\tconst { icon, text, size, absolute, style, className, ...restProps } =\n\t\tprops;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-loading-container\",\n\t\t\t\t{\n\t\t\t\t\tabsolute,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={{\n\t\t\t\t...style,\n\t\t\t\tinset: absolute ? 0 : \"unset\",\n\t\t\t}}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{icon ?? (\n\t\t\t\t<svg\n\t\t\t\t\twidth='24'\n\t\t\t\t\theight='24'\n\t\t\t\t\tstroke='#000'\n\t\t\t\t\tviewBox='0 0 24 24'\n\t\t\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t\t\t\tclassName='i-loading-icon'\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tfontSize: size,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<circle\n\t\t\t\t\t\tcx='12'\n\t\t\t\t\t\tcy='12'\n\t\t\t\t\t\tr='9.5'\n\t\t\t\t\t\tfill='none'\n\t\t\t\t\t\tstrokeWidth='3'\n\t\t\t\t\t\tstrokeLinecap='round'\n\t\t\t\t\t\tstrokeDasharray={40}\n\t\t\t\t\t\tstrokeDashoffset={0}\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t)}\n\n\t\t\t{text}\n\t\t</div>\n\t);\n};\n\nexport default Loading;\n"],"names":["_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;AAIA,MAAM,OAAO,GAAG,CAAC,KAAe,KAAI;AACnC,IAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GACnE,KAAK;AAEN,IAAA,QACCA,eACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,mBAAU,CACpB,qBAAqB,EACrB;YACC,QAAQ;AACR,SAAA,EACD,SAAS,CACT,EACD,KAAK,EAAE;AACN,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,QAAQ,GAAG,CAAC,GAAG,OAAO;AAC7B,SAAA,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEZ,IAAI,KACJC,cAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,IAAI;AACd,iBAAA,EAAA,QAAA,EAEDA,2BACC,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,KAAK,EACP,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,eAAe,EAAE,EAAE,EACnB,gBAAgB,EAAE,CAAC,GAClB,EACG,CAAA,CACN,EAEA,IAAI,CAAA,EAAA,CACA;AAER;;;;"}
1
+ {"version":3,"file":"loading.js","sources":["../../../../packages/components/loading/loading.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport \"./index.css\";\r\nimport { ILoading } from \"./type\";\r\n\r\nconst Loading = (props: ILoading) => {\r\n\tconst { icon, text, size, absolute, style, className, ...restProps } =\r\n\t\tprops;\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={classNames(\r\n\t\t\t\t\"i-loading-container\",\r\n\t\t\t\t{\r\n\t\t\t\t\tabsolute,\r\n\t\t\t\t},\r\n\t\t\t\tclassName\r\n\t\t\t)}\r\n\t\t\tstyle={{\r\n\t\t\t\t...style,\r\n\t\t\t\tinset: absolute ? 0 : \"unset\",\r\n\t\t\t}}\r\n\t\t\t{...restProps}\r\n\t\t>\r\n\t\t\t{icon ?? (\r\n\t\t\t\t<svg\r\n\t\t\t\t\twidth='24'\r\n\t\t\t\t\theight='24'\r\n\t\t\t\t\tstroke='#000'\r\n\t\t\t\t\tviewBox='0 0 24 24'\r\n\t\t\t\t\txmlns='http://www.w3.org/2000/svg'\r\n\t\t\t\t\tclassName='i-loading-icon'\r\n\t\t\t\t\tstyle={{\r\n\t\t\t\t\t\tfontSize: size,\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t<circle\r\n\t\t\t\t\t\tcx='12'\r\n\t\t\t\t\t\tcy='12'\r\n\t\t\t\t\t\tr='9.5'\r\n\t\t\t\t\t\tfill='none'\r\n\t\t\t\t\t\tstrokeWidth='3'\r\n\t\t\t\t\t\tstrokeLinecap='round'\r\n\t\t\t\t\t\tstrokeDasharray={40}\r\n\t\t\t\t\t\tstrokeDashoffset={0}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</svg>\r\n\t\t\t)}\r\n\r\n\t\t\t{text}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Loading;\r\n"],"names":["_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;AAIA,MAAM,OAAO,GAAG,CAAC,KAAe,KAAI;AACnC,IAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GACnE,KAAK;AAEN,IAAA,QACCA,eACC,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,mBAAU,CACpB,qBAAqB,EACrB;YACC,QAAQ;AACR,SAAA,EACD,SAAS,CACT,EACD,KAAK,EAAE;AACN,YAAA,GAAG,KAAK;YACR,KAAK,EAAE,QAAQ,GAAG,CAAC,GAAG,OAAO;AAC7B,SAAA,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEZ,IAAI,KACJC,cAAA,CAAA,KAAA,EAAA,EACC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAC,gBAAgB,EAC1B,KAAK,EAAE;AACN,oBAAA,QAAQ,EAAE,IAAI;AACd,iBAAA,EAAA,QAAA,EAEDA,2BACC,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,IAAI,EACP,CAAC,EAAC,KAAK,EACP,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,eAAe,EAAE,EAAE,EACnB,gBAAgB,EAAE,CAAC,GAClB,EACG,CAAA,CACN,EAEA,IAAI,CAAA,EAAA,CACA;AAER;;;;"}
@@ -159,6 +159,12 @@ message.warning = (content) => {
159
159
  className: "bg-warning",
160
160
  });
161
161
  };
162
+ message.info = (content) => {
163
+ return message({
164
+ content,
165
+ className: "bg-blue",
166
+ });
167
+ };
162
168
  message.one = (config) => {
163
169
  const o = handler.oneInstance;
164
170
  if (o) {