@ioca/react 1.3.95 → 1.3.96

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 (203) 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.map +1 -1
  34. package/lib/cjs/components/image/list.js.map +1 -1
  35. package/lib/cjs/components/input/container.js.map +1 -1
  36. package/lib/cjs/components/input/input.js.map +1 -1
  37. package/lib/cjs/components/input/number.js.map +1 -1
  38. package/lib/cjs/components/input/range.js.map +1 -1
  39. package/lib/cjs/components/input/textarea.js.map +1 -1
  40. package/lib/cjs/components/list/item.js.map +1 -1
  41. package/lib/cjs/components/list/list.js.map +1 -1
  42. package/lib/cjs/components/loading/loading.js.map +1 -1
  43. package/lib/cjs/components/message/message.js.map +1 -1
  44. package/lib/cjs/components/modal/content.js.map +1 -1
  45. package/lib/cjs/components/modal/context.js.map +1 -1
  46. package/lib/cjs/components/modal/hookModal.js.map +1 -1
  47. package/lib/cjs/components/modal/modal.js.map +1 -1
  48. package/lib/cjs/components/modal/useModal.js.map +1 -1
  49. package/lib/cjs/components/pagination/page.js.map +1 -1
  50. package/lib/cjs/components/pagination/pagination.js.map +1 -1
  51. package/lib/cjs/components/picker/colors/footer.js.map +1 -1
  52. package/lib/cjs/components/picker/colors/handle.js.map +1 -1
  53. package/lib/cjs/components/picker/colors/index.js.map +1 -1
  54. package/lib/cjs/components/picker/dates/dates.js.map +1 -1
  55. package/lib/cjs/components/picker/dates/index.js.map +1 -1
  56. package/lib/cjs/components/picker/dates/panel.js.map +1 -1
  57. package/lib/cjs/components/picker/time/index.js.map +1 -1
  58. package/lib/cjs/components/picker/time/item.js.map +1 -1
  59. package/lib/cjs/components/picker/time/panel.js.map +1 -1
  60. package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
  61. package/lib/cjs/components/popup/content.js.map +1 -1
  62. package/lib/cjs/components/popup/popup.js.map +1 -1
  63. package/lib/cjs/components/progress/circle.js.map +1 -1
  64. package/lib/cjs/components/progress/line.js.map +1 -1
  65. package/lib/cjs/components/progress/progress.js.map +1 -1
  66. package/lib/cjs/components/radio/item.js.map +1 -1
  67. package/lib/cjs/components/radio/radio.js.map +1 -1
  68. package/lib/cjs/components/resizable/resizable.js.map +1 -1
  69. package/lib/cjs/components/river/river.js.map +1 -1
  70. package/lib/cjs/components/select/options.js.map +1 -1
  71. package/lib/cjs/components/select/select.js.map +1 -1
  72. package/lib/cjs/components/step/divider.js.map +1 -1
  73. package/lib/cjs/components/step/item.js.map +1 -1
  74. package/lib/cjs/components/step/step.js.map +1 -1
  75. package/lib/cjs/components/swiper/item.js.map +1 -1
  76. package/lib/cjs/components/swiper/swiper.js.map +1 -1
  77. package/lib/cjs/components/tabs/item.js.map +1 -1
  78. package/lib/cjs/components/tabs/tabs.js.map +1 -1
  79. package/lib/cjs/components/tag/tag.js.map +1 -1
  80. package/lib/cjs/components/text/highlight.js.map +1 -1
  81. package/lib/cjs/components/text/number.js.map +1 -1
  82. package/lib/cjs/components/text/text.js.map +1 -1
  83. package/lib/cjs/components/text/time.js.map +1 -1
  84. package/lib/cjs/components/tree/item.js.map +1 -1
  85. package/lib/cjs/components/tree/tree.js.map +1 -1
  86. package/lib/cjs/components/upload/renderFile.js.map +1 -1
  87. package/lib/cjs/components/upload/upload.js.map +1 -1
  88. package/lib/cjs/components/utils/empty/index.js.map +1 -1
  89. package/lib/cjs/components/utils/helpericon/helpericon.js.map +1 -1
  90. package/lib/cjs/components/video/video.js.map +1 -1
  91. package/lib/cjs/js/hooks.js.map +1 -1
  92. package/lib/cjs/js/usePreview/content.js +2 -0
  93. package/lib/cjs/js/usePreview/content.js.map +1 -1
  94. package/lib/cjs/js/usePreview/index.js.map +1 -1
  95. package/lib/cjs/js/usePreview/renderFile.js.map +1 -1
  96. package/lib/cjs/js/usePreview/type.js.map +1 -1
  97. package/lib/cjs/js/useRipple/index.js +6 -6
  98. package/lib/cjs/js/useRipple/index.js.map +1 -1
  99. package/lib/cjs/js/useTheme/index.js.map +1 -1
  100. package/lib/cjs/js/utils.js.map +1 -1
  101. package/lib/css/index.css +1 -1
  102. package/lib/css/index.css.map +1 -1
  103. package/lib/es/components/affix/affix.js.map +1 -1
  104. package/lib/es/components/affix/totop.js.map +1 -1
  105. package/lib/es/components/badge/badge.js.map +1 -1
  106. package/lib/es/components/button/button.js.map +1 -1
  107. package/lib/es/components/button/confirm.js.map +1 -1
  108. package/lib/es/components/button/group.js.map +1 -1
  109. package/lib/es/components/button/toggle.js.map +1 -1
  110. package/lib/es/components/card/card.js.map +1 -1
  111. package/lib/es/components/checkbox/checkbox.js.map +1 -1
  112. package/lib/es/components/checkbox/item.js.map +1 -1
  113. package/lib/es/components/collapse/collapse.js.map +1 -1
  114. package/lib/es/components/collapse/item.js.map +1 -1
  115. package/lib/es/components/datagrid/cell.js.map +1 -1
  116. package/lib/es/components/datagrid/datagrid.js.map +1 -1
  117. package/lib/es/components/datagrid/resize.js.map +1 -1
  118. package/lib/es/components/datagrid/row.js.map +1 -1
  119. package/lib/es/components/datagrid/sorter.js.map +1 -1
  120. package/lib/es/components/description/description.js.map +1 -1
  121. package/lib/es/components/drawer/drawer.js.map +1 -1
  122. package/lib/es/components/dropdown/dropdown.js.map +1 -1
  123. package/lib/es/components/dropdown/item.js.map +1 -1
  124. package/lib/es/components/editor/controls.js.map +1 -1
  125. package/lib/es/components/editor/editor.js.map +1 -1
  126. package/lib/es/components/flex/flex.js.map +1 -1
  127. package/lib/es/components/form/context.js.map +1 -1
  128. package/lib/es/components/form/field.js.map +1 -1
  129. package/lib/es/components/form/form.js.map +1 -1
  130. package/lib/es/components/form/useConfig.js.map +1 -1
  131. package/lib/es/components/form/useForm.js.map +1 -1
  132. package/lib/es/components/icon/icon.js.map +1 -1
  133. package/lib/es/components/image/image.js.map +1 -1
  134. package/lib/es/components/image/list.js.map +1 -1
  135. package/lib/es/components/input/container.js.map +1 -1
  136. package/lib/es/components/input/input.js.map +1 -1
  137. package/lib/es/components/input/number.js.map +1 -1
  138. package/lib/es/components/input/range.js.map +1 -1
  139. package/lib/es/components/input/textarea.js.map +1 -1
  140. package/lib/es/components/list/item.js.map +1 -1
  141. package/lib/es/components/list/list.js.map +1 -1
  142. package/lib/es/components/loading/loading.js.map +1 -1
  143. package/lib/es/components/message/message.js.map +1 -1
  144. package/lib/es/components/modal/content.js.map +1 -1
  145. package/lib/es/components/modal/context.js.map +1 -1
  146. package/lib/es/components/modal/hookModal.js.map +1 -1
  147. package/lib/es/components/modal/modal.js.map +1 -1
  148. package/lib/es/components/modal/useModal.js.map +1 -1
  149. package/lib/es/components/pagination/page.js.map +1 -1
  150. package/lib/es/components/pagination/pagination.js.map +1 -1
  151. package/lib/es/components/picker/colors/footer.js.map +1 -1
  152. package/lib/es/components/picker/colors/handle.js.map +1 -1
  153. package/lib/es/components/picker/colors/index.js.map +1 -1
  154. package/lib/es/components/picker/dates/dates.js.map +1 -1
  155. package/lib/es/components/picker/dates/index.js.map +1 -1
  156. package/lib/es/components/picker/dates/panel.js.map +1 -1
  157. package/lib/es/components/picker/time/index.js.map +1 -1
  158. package/lib/es/components/picker/time/item.js.map +1 -1
  159. package/lib/es/components/picker/time/panel.js.map +1 -1
  160. package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
  161. package/lib/es/components/popup/content.js.map +1 -1
  162. package/lib/es/components/popup/popup.js.map +1 -1
  163. package/lib/es/components/progress/circle.js.map +1 -1
  164. package/lib/es/components/progress/line.js.map +1 -1
  165. package/lib/es/components/progress/progress.js.map +1 -1
  166. package/lib/es/components/radio/item.js.map +1 -1
  167. package/lib/es/components/radio/radio.js.map +1 -1
  168. package/lib/es/components/resizable/resizable.js.map +1 -1
  169. package/lib/es/components/river/river.js.map +1 -1
  170. package/lib/es/components/select/options.js.map +1 -1
  171. package/lib/es/components/select/select.js.map +1 -1
  172. package/lib/es/components/step/divider.js.map +1 -1
  173. package/lib/es/components/step/item.js.map +1 -1
  174. package/lib/es/components/step/step.js.map +1 -1
  175. package/lib/es/components/swiper/item.js.map +1 -1
  176. package/lib/es/components/swiper/swiper.js.map +1 -1
  177. package/lib/es/components/tabs/item.js.map +1 -1
  178. package/lib/es/components/tabs/tabs.js.map +1 -1
  179. package/lib/es/components/tag/tag.js.map +1 -1
  180. package/lib/es/components/text/highlight.js.map +1 -1
  181. package/lib/es/components/text/number.js.map +1 -1
  182. package/lib/es/components/text/text.js.map +1 -1
  183. package/lib/es/components/text/time.js.map +1 -1
  184. package/lib/es/components/tree/item.js.map +1 -1
  185. package/lib/es/components/tree/tree.js.map +1 -1
  186. package/lib/es/components/upload/renderFile.js.map +1 -1
  187. package/lib/es/components/upload/upload.js.map +1 -1
  188. package/lib/es/components/utils/empty/index.js.map +1 -1
  189. package/lib/es/components/utils/helpericon/helpericon.js.map +1 -1
  190. package/lib/es/components/video/video.js.map +1 -1
  191. package/lib/es/js/hooks.js.map +1 -1
  192. package/lib/es/js/usePreview/content.js +2 -0
  193. package/lib/es/js/usePreview/content.js.map +1 -1
  194. package/lib/es/js/usePreview/index.js.map +1 -1
  195. package/lib/es/js/usePreview/renderFile.js.map +1 -1
  196. package/lib/es/js/usePreview/type.js.map +1 -1
  197. package/lib/es/js/useRipple/index.js +6 -6
  198. package/lib/es/js/useRipple/index.js.map +1 -1
  199. package/lib/es/js/useTheme/index.js.map +1 -1
  200. package/lib/es/js/utils.js.map +1 -1
  201. package/lib/index.js +8 -6
  202. package/lib/types/js/useTheme/index.d.ts +1 -1
  203. package/package.json +102 -101
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useMemo } from \"react\";\nimport HighLight from \"./highlight\";\nimport \"./index.css\";\nimport Number from \"./number\";\nimport Time from \"./time\";\nimport { CompositionText, IText } from \"./type\";\n\nconst Text = (props: IText) => {\n\tconst {\n\t\tas: Tag = \"span\",\n\t\tsize,\n\t\tweight,\n\t\tdecoration,\n\t\tgradient,\n\t\twave,\n\t\tstyle,\n\t\tclassName,\n\t\tchildren,\n\t} = props;\n\n\tconst gradients = useMemo(() => {\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\n\n\t\treturn {\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\n\t\t\tbackgroundClip: \"text\",\n\t\t};\n\t}, [gradient]);\n\n\treturn (\n\t\t<Tag\n\t\t\tstyle={{\n\t\t\t\tfontSize: size,\n\t\t\t\tfontWeight: weight,\n\t\t\t\ttextDecoration: decoration,\n\t\t\t\t...gradients,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tclassName={classNames(className, {\n\t\t\t\t\"i-text-gradient\": gradient,\n\t\t\t\t\"i-text-gradient-wave\": wave,\n\t\t\t})}\n\t\t>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nText.Number = Number;\nText.Time = Time;\nText.HighLight = HighLight;\n\nexport default Text as CompositionText;\n"],"names":["_jsx","Time"],"mappings":";;;;;;;AAQA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;IAC7B,MAAM,EACL,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,IAAI,EACJ,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,GACR,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAK;QAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,EAAE;QAEpD,OAAO;YACN,eAAe,EAAE,2BAA2B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA;AACjE,YAAA,cAAc,EAAE,MAAM;SACtB;AACF,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,QACCA,GAAA,CAAC,GAAG,EAAA,EACH,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,GAAG,SAAS;AACZ,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE;AAChC,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,sBAAsB,EAAE,IAAI;AAC5B,SAAA,CAAC,EAED,QAAA,EAAA,QAAQ,EACJ,CAAA;AAER;AAEA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,IAAI,CAAC,IAAI,GAAGC,QAAI;AAChB,IAAI,CAAC,SAAS,GAAG,SAAS;;;;"}
1
+ {"version":3,"file":"text.js","sources":["../../../../packages/components/text/text.tsx"],"sourcesContent":["import classNames from \"classnames\";\r\nimport { useMemo } from \"react\";\r\nimport HighLight from \"./highlight\";\r\nimport \"./index.css\";\r\nimport Number from \"./number\";\r\nimport Time from \"./time\";\r\nimport { CompositionText, IText } from \"./type\";\r\n\r\nconst Text = (props: IText) => {\r\n\tconst {\r\n\t\tas: Tag = \"span\",\r\n\t\tsize,\r\n\t\tweight,\r\n\t\tdecoration,\r\n\t\tgradient,\r\n\t\twave,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\tchildren,\r\n\t} = props;\r\n\r\n\tconst gradients = useMemo(() => {\r\n\t\tif (!gradient || !Array.isArray(gradient)) return {};\r\n\r\n\t\treturn {\r\n\t\t\tbackgroundImage: `-webkit-linear-gradient(${gradient.join(\",\")})`,\r\n\t\t\tbackgroundClip: \"text\",\r\n\t\t};\r\n\t}, [gradient]);\r\n\r\n\treturn (\r\n\t\t<Tag\r\n\t\t\tstyle={{\r\n\t\t\t\tfontSize: size,\r\n\t\t\t\tfontWeight: weight,\r\n\t\t\t\ttextDecoration: decoration,\r\n\t\t\t\t...gradients,\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\"i-text-gradient\": gradient,\r\n\t\t\t\t\"i-text-gradient-wave\": wave,\r\n\t\t\t})}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Tag>\r\n\t);\r\n};\r\n\r\nText.Number = Number;\r\nText.Time = Time;\r\nText.HighLight = HighLight;\r\n\r\nexport default Text as CompositionText;\r\n"],"names":["_jsx","Time"],"mappings":";;;;;;;AAQA,MAAM,IAAI,GAAG,CAAC,KAAY,KAAI;IAC7B,MAAM,EACL,EAAE,EAAE,GAAG,GAAG,MAAM,EAChB,IAAI,EACJ,MAAM,EACN,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,GACR,GAAG,KAAK;AAET,IAAA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAK;QAC9B,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,EAAE;QAEpD,OAAO;YACN,eAAe,EAAE,2BAA2B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA;AACjE,YAAA,cAAc,EAAE,MAAM;SACtB;AACF,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,QACCA,GAAA,CAAC,GAAG,EAAA,EACH,KAAK,EAAE;AACN,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,GAAG,SAAS;AACZ,YAAA,GAAG,KAAK;AACR,SAAA,EACD,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE;AAChC,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,sBAAsB,EAAE,IAAI;AAC5B,SAAA,CAAC,EAED,QAAA,EAAA,QAAQ,EACJ,CAAA;AAER;AAEA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,IAAI,CAAC,IAAI,GAAGC,QAAI;AAChB,IAAI,CAAC,SAAS,GAAG,SAAS;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sources":["../../../../packages/components/text/time.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { formatTime } from \"../../js/utils\";\nimport Text from \"./text\";\nimport { ITextTime } from \"./type\";\n\nexport default function Number(props: ITextTime) {\n\tconst { seconds, zero, units, ...restProps } = props;\n\n\tconst text = useMemo(() => {\n\t\tif (seconds === undefined) return \"\";\n\n\t\treturn formatTime(seconds, {\n\t\t\tzero,\n\t\t\tunits,\n\t\t});\n\t}, [seconds]);\n\n\treturn <Text {...restProps}>{text}</Text>;\n}\n"],"names":["_jsx"],"mappings":";;;;;AAKwB,SAAA,MAAM,CAAC,KAAgB,EAAA;AAC9C,IAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAEpD,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAK;QACzB,IAAI,OAAO,KAAK,SAAS;AAAE,YAAA,OAAO,EAAE;QAEpC,OAAO,UAAU,CAAC,OAAO,EAAE;YAC1B,IAAI;YACJ,KAAK;AACL,SAAA,CAAC;AACH,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,OAAOA,IAAC,IAAI,EAAA,EAAA,GAAK,SAAS,EAAG,QAAA,EAAA,IAAI,GAAQ;AAC1C;;;;"}
1
+ {"version":3,"file":"time.js","sources":["../../../../packages/components/text/time.tsx"],"sourcesContent":["import { useMemo } from \"react\";\r\nimport { formatTime } from \"../../js/utils\";\r\nimport Text from \"./text\";\r\nimport { ITextTime } from \"./type\";\r\n\r\nexport default function Number(props: ITextTime) {\r\n\tconst { seconds, zero, units, ...restProps } = props;\r\n\r\n\tconst text = useMemo(() => {\r\n\t\tif (seconds === undefined) return \"\";\r\n\r\n\t\treturn formatTime(seconds, {\r\n\t\t\tzero,\r\n\t\t\tunits,\r\n\t\t});\r\n\t}, [seconds]);\r\n\r\n\treturn <Text {...restProps}>{text}</Text>;\r\n}\r\n"],"names":["_jsx"],"mappings":";;;;;AAKwB,SAAA,MAAM,CAAC,KAAgB,EAAA;AAC9C,IAAA,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAEpD,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAK;QACzB,IAAI,OAAO,KAAK,SAAS;AAAE,YAAA,OAAO,EAAE;QAEpC,OAAO,UAAU,CAAC,OAAO,EAAE;YAC1B,IAAI;YACJ,KAAK;AACL,SAAA,CAAC;AACH,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAEb,IAAA,OAAOA,IAAC,IAAI,EAAA,EAAA,GAAK,SAAS,EAAG,QAAA,EAAA,IAAI,GAAQ;AAC1C;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sources":["../../../../packages/components/tree/item.tsx"],"sourcesContent":["import { KeyboardArrowDownRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { MouseEvent, useState } from \"react\";\nimport Checkbox from \"../checkbox\";\nimport Icon from \"../icon\";\nimport { ITree, ITreeHeader, PropsTreeItem } from \"./type\";\n\ninterface ITreeList extends Omit<ITree, \"nodeProps\"> {\n\tnodeProps: {\n\t\tkey: string;\n\t\ttitle: string;\n\t\tchildren: string;\n\t};\n}\n\nexport function TreeList(props: ITreeList) {\n\tconst {\n\t\tdata = [],\n\t\tdepth = 0,\n\t\tround,\n\t\tstyle,\n\t\tclassName,\n\t\tparent,\n\t\tnodeProps,\n\t\t...restProps\n\t} = props;\n\n\tconst contents = data.map((item, i) => {\n\t\tconst { type } = item;\n\t\tconst title = item[nodeProps.title];\n\t\tconst itemKey =\n\t\t\titem[nodeProps.key] ||\n\t\t\t(parent?.key !== undefined ? `${parent.key}-${i}` : `${i}`);\n\n\t\titem.key = itemKey;\n\t\titem.parent = parent;\n\n\t\tif (type === \"title\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className='i-tree-group-title'>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\tif (type && type !== \"item\") {\n\t\t\treturn (\n\t\t\t\t<div key={i} className={`i-tree-type-${type}`}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<TreeItem\n\t\t\t\tkey={itemKey}\n\t\t\t\tindex={i}\n\t\t\t\titem={item}\n\t\t\t\tdepth={depth}\n\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t);\n\t});\n\n\tif (depth > 0) return <>{contents}</>;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree\", className, {\n\t\t\t\t\"i-tree-round\": round,\n\t\t\t})}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{contents}\n\t\t</div>\n\t);\n}\n\nconst Header = (props: ITreeHeader) => {\n\tconst { as: Tag = \"a\", href, selected, children, ...restProps } = props;\n\n\tconst className = classNames(\"i-tree-item-header\", {\n\t\t\"i-tree-item-selected\": selected,\n\t});\n\n\tif (typeof Tag === \"string\") {\n\t\treturn (\n\t\t\t<Tag href={href} className={className} {...restProps}>\n\t\t\t\t{children}\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Tag to={href || \"\"} className={className} {...restProps}>\n\t\t\t{children}\n\t\t</Tag>\n\t);\n};\n\nexport const TreeItem = (props: PropsTreeItem) => {\n\tconst {\n\t\titem,\n\t\tdepth = 0,\n\t\tindex,\n\t\tselected,\n\t\tchecked = [],\n\t\tpartofs = {},\n\t\tcheckable,\n\t\tnodeProps,\n\t\trenderExtra,\n\t\tonItemClick,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\n\tconst { as, key = \"\", href, icon, title, expanded, disabled } = item;\n\tconst children = item[nodeProps.children];\n\n\tconst [expand, setExpand] = useState(expanded);\n\n\tconst handleExpand = (e: MouseEvent<HTMLElement>, fromToggle?: boolean) => {\n\t\tif (fromToggle) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\tif (disabled || !children?.length) return;\n\n\t\tsetExpand((v) => !v);\n\t};\n\n\tconst handleItemClick = (e: MouseEvent<HTMLElement>) => {\n\t\tif (disabled) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\treturn;\n\t\t}\n\n\t\thandleExpand(e);\n\t\tonItemClick?.(item, e);\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tconst handleItemCheck = (checked) => onItemCheck?.(item, checked, []);\n\tconst itemChecked = checked.includes(key);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-tree-item\", {\n\t\t\t\t\"i-tree-expand\": expand,\n\t\t\t})}\n\t\t>\n\t\t\t<Header\n\t\t\t\tas={as}\n\t\t\t\thref={href}\n\t\t\t\tstyle={{ paddingLeft: `${depth * 1.5 + 0.5}em` }}\n\t\t\t\tselected={selected === key}\n\t\t\t\tonClick={handleItemClick}\n\t\t\t>\n\t\t\t\t{checkable && (\n\t\t\t\t\t<Checkbox.Item\n\t\t\t\t\t\tvalue={itemChecked}\n\t\t\t\t\t\tpartof={!itemChecked && partofs[key]}\n\t\t\t\t\t\tclassName='i-tree-checkbox'\n\t\t\t\t\t\tonChange={handleItemCheck}\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{icon && <span className='i-tree-item-icon'>{icon}</span>}\n\n\t\t\t\t<span className='i-tree-item-title'>{title}</span>\n\n\t\t\t\t{renderExtra?.(item)}\n\n\t\t\t\t{children && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<KeyboardArrowDownRound />}\n\t\t\t\t\t\tclassName='i-tree-toggle'\n\t\t\t\t\t\tonClick={(e) => handleExpand(e, true)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Header>\n\n\t\t\t{children?.length && (\n\t\t\t\t<div className='i-tree-item-content'>\n\t\t\t\t\t<TreeList\n\t\t\t\t\t\tdata={children}\n\t\t\t\t\t\tdepth={depth + 1}\n\t\t\t\t\t\tselected={selected}\n\t\t\t\t\t\tcheckable={checkable}\n\t\t\t\t\t\tparent={item}\n\t\t\t\t\t\tpartofs={partofs}\n\t\t\t\t\t\tchecked={checked}\n\t\t\t\t\t\tnodeProps={nodeProps}\n\t\t\t\t\t\trenderExtra={renderExtra}\n\t\t\t\t\t\tonItemClick={onItemClick}\n\t\t\t\t\t\tonItemSelect={onItemSelect}\n\t\t\t\t\t\tonItemCheck={onItemCheck}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"item.js","sources":["../../../../packages/components/tree/item.tsx"],"sourcesContent":["import { KeyboardArrowDownRound } from \"@ricons/material\";\r\nimport classNames from \"classnames\";\r\nimport { MouseEvent, useState } from \"react\";\r\nimport Checkbox from \"../checkbox\";\r\nimport Icon from \"../icon\";\r\nimport { ITree, ITreeHeader, PropsTreeItem } from \"./type\";\r\n\r\ninterface ITreeList extends Omit<ITree, \"nodeProps\"> {\r\n\tnodeProps: {\r\n\t\tkey: string;\r\n\t\ttitle: string;\r\n\t\tchildren: string;\r\n\t};\r\n}\r\n\r\nexport function TreeList(props: ITreeList) {\r\n\tconst {\r\n\t\tdata = [],\r\n\t\tdepth = 0,\r\n\t\tround,\r\n\t\tstyle,\r\n\t\tclassName,\r\n\t\tparent,\r\n\t\tnodeProps,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst contents = data.map((item, i) => {\r\n\t\tconst { type } = item;\r\n\t\tconst title = item[nodeProps.title];\r\n\t\tconst itemKey =\r\n\t\t\titem[nodeProps.key] ||\r\n\t\t\t(parent?.key !== undefined ? `${parent.key}-${i}` : `${i}`);\r\n\r\n\t\titem.key = itemKey;\r\n\t\titem.parent = parent;\r\n\r\n\t\tif (type === \"title\") {\r\n\t\t\treturn (\r\n\t\t\t\t<div key={i} className='i-tree-group-title'>\r\n\t\t\t\t\t{title}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (type && type !== \"item\") {\r\n\t\t\treturn (\r\n\t\t\t\t<div key={i} className={`i-tree-type-${type}`}>\r\n\t\t\t\t\t{title}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<TreeItem\r\n\t\t\t\tkey={itemKey}\r\n\t\t\t\tindex={i}\r\n\t\t\t\titem={item}\r\n\t\t\t\tdepth={depth}\r\n\t\t\t\tnodeProps={nodeProps}\r\n\t\t\t\t{...restProps}\r\n\t\t\t/>\r\n\t\t);\r\n\t});\r\n\r\n\tif (depth > 0) return <>{contents}</>;\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={classNames(\"i-tree\", className, {\r\n\t\t\t\t\"i-tree-round\": round,\r\n\t\t\t})}\r\n\t\t\tstyle={style}\r\n\t\t>\r\n\t\t\t{contents}\r\n\t\t</div>\r\n\t);\r\n}\r\n\r\nconst Header = (props: ITreeHeader) => {\r\n\tconst { as: Tag = \"a\", href, selected, children, ...restProps } = props;\r\n\r\n\tconst className = classNames(\"i-tree-item-header\", {\r\n\t\t\"i-tree-item-selected\": selected,\r\n\t});\r\n\r\n\tif (typeof Tag === \"string\") {\r\n\t\treturn (\r\n\t\t\t<Tag href={href} className={className} {...restProps}>\r\n\t\t\t\t{children}\r\n\t\t\t</Tag>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<Tag to={href || \"\"} className={className} {...restProps}>\r\n\t\t\t{children}\r\n\t\t</Tag>\r\n\t);\r\n};\r\n\r\nexport const TreeItem = (props: PropsTreeItem) => {\r\n\tconst {\r\n\t\titem,\r\n\t\tdepth = 0,\r\n\t\tindex,\r\n\t\tselected,\r\n\t\tchecked = [],\r\n\t\tpartofs = {},\r\n\t\tcheckable,\r\n\t\tnodeProps,\r\n\t\trenderExtra,\r\n\t\tonItemClick,\r\n\t\tonItemSelect,\r\n\t\tonItemCheck,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst { as, key = \"\", href, icon, title, expanded, disabled } = item;\r\n\tconst children = item[nodeProps.children];\r\n\r\n\tconst [expand, setExpand] = useState(expanded);\r\n\r\n\tconst handleExpand = (e: MouseEvent<HTMLElement>, fromToggle?: boolean) => {\r\n\t\tif (fromToggle) {\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\r\n\t\tif (disabled || !children?.length) return;\r\n\r\n\t\tsetExpand((v) => !v);\r\n\t};\r\n\r\n\tconst handleItemClick = (e: MouseEvent<HTMLElement>) => {\r\n\t\tif (disabled) {\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\thandleExpand(e);\r\n\t\tonItemClick?.(item, e);\r\n\t\tonItemSelect?.(key, item);\r\n\t};\r\n\r\n\tconst handleItemCheck = (checked) => onItemCheck?.(item, checked, []);\r\n\tconst itemChecked = checked.includes(key);\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={classNames(\"i-tree-item\", {\r\n\t\t\t\t\"i-tree-expand\": expand,\r\n\t\t\t})}\r\n\t\t>\r\n\t\t\t<Header\r\n\t\t\t\tas={as}\r\n\t\t\t\thref={href}\r\n\t\t\t\tstyle={{ paddingLeft: `${depth * 1.5 + 0.5}em` }}\r\n\t\t\t\tselected={selected === key}\r\n\t\t\t\tonClick={handleItemClick}\r\n\t\t\t>\r\n\t\t\t\t{checkable && (\r\n\t\t\t\t\t<Checkbox.Item\r\n\t\t\t\t\t\tvalue={itemChecked}\r\n\t\t\t\t\t\tpartof={!itemChecked && partofs[key]}\r\n\t\t\t\t\t\tclassName='i-tree-checkbox'\r\n\t\t\t\t\t\tonChange={handleItemCheck}\r\n\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{icon && <span className='i-tree-item-icon'>{icon}</span>}\r\n\r\n\t\t\t\t<span className='i-tree-item-title'>{title}</span>\r\n\r\n\t\t\t\t{renderExtra?.(item)}\r\n\r\n\t\t\t\t{children && (\r\n\t\t\t\t\t<Icon\r\n\t\t\t\t\t\ticon={<KeyboardArrowDownRound />}\r\n\t\t\t\t\t\tclassName='i-tree-toggle'\r\n\t\t\t\t\t\tonClick={(e) => handleExpand(e, true)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Header>\r\n\r\n\t\t\t{children?.length && (\r\n\t\t\t\t<div className='i-tree-item-content'>\r\n\t\t\t\t\t<TreeList\r\n\t\t\t\t\t\tdata={children}\r\n\t\t\t\t\t\tdepth={depth + 1}\r\n\t\t\t\t\t\tselected={selected}\r\n\t\t\t\t\t\tcheckable={checkable}\r\n\t\t\t\t\t\tparent={item}\r\n\t\t\t\t\t\tpartofs={partofs}\r\n\t\t\t\t\t\tchecked={checked}\r\n\t\t\t\t\t\tnodeProps={nodeProps}\r\n\t\t\t\t\t\trenderExtra={renderExtra}\r\n\t\t\t\t\t\tonItemClick={onItemClick}\r\n\t\t\t\t\t\tonItemSelect={onItemSelect}\r\n\t\t\t\t\t\tonItemCheck={onItemCheck}\r\n\t\t\t\t\t\t{...restProps}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</div>\r\n\t);\r\n};\r\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sources":["../../../../packages/components/tree/tree.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\nimport { useEffect, useImperativeHandle } from \"react\";\nimport \"./index.css\";\nimport { TreeList } from \"./item\";\nimport { ITree, ITreeItem } from \"./type\";\n\nconst defaultNodeProps = {\n\tkey: \"key\",\n\ttitle: \"title\",\n\tchildren: \"children\",\n};\n\nconst Tree = (props: ITree) => {\n\tconst {\n\t\tdata = [],\n\t\tref,\n\t\tselected,\n\t\tchecked = [],\n\t\tdisabledRelated,\n\t\tnodeProps,\n\t\tonItemSelect,\n\t\tonItemCheck,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tselected,\n\t\tchecked,\n\t\tpartofs: {} as Record<string, boolean>,\n\t\tnodeMaps: new Map(),\n\t});\n\tconst oNodeProps = Object.assign({}, defaultNodeProps, nodeProps);\n\n\tconst isChecked = (key?: string) => state.checked.includes(key || \"\");\n\n\tconst checkItem = (\n\t\titem: ITreeItem,\n\t\tchecked: boolean,\n\t\tdirection?: \"root\" | \"leaf\"\n\t) => {\n\t\tconst { key = \"\", parent, children } = item;\n\t\tconst shouldChanged = { [key]: checked };\n\t\tconst partofs = { [key]: false };\n\n\t\tif (disabledRelated) return [shouldChanged];\n\n\t\tif (checked) {\n\t\t\tif (parent && direction !== \"leaf\") {\n\t\t\t\tconst hasUnchecked = parent.children?.some(\n\t\t\t\t\t(o) => o.key !== key && !isChecked(o.key)\n\t\t\t\t);\n\n\t\t\t\tconst [changes, parts] = checkItem(parent, true, \"root\");\n\n\t\t\t\tif (!hasUnchecked) {\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t}\n\n\t\t\t\tObject.assign(partofs, hasUnchecked ? parts : {}, {\n\t\t\t\t\t[parent.key as string]: true,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (children?.length && direction !== \"root\") {\n\t\t\t\tchildren.map((o) => {\n\t\t\t\t\tif (isChecked(o.key)) return;\n\n\t\t\t\t\tconst [changes] = checkItem(o, true, \"leaf\");\n\n\t\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn [shouldChanged, partofs];\n\t\t}\n\n\t\tif (parent && direction !== \"leaf\") {\n\t\t\tconst [changes, parts] = checkItem(parent, false, \"root\");\n\n\t\t\tObject.assign(shouldChanged, changes);\n\n\t\t\tconst hasChecked = parent.children?.some(\n\t\t\t\t(o) => isChecked(o.key) && o.key !== key\n\t\t\t);\n\n\t\t\tObject.assign(partofs, hasChecked ? {} : parts, {\n\t\t\t\t[parent.key as string]: hasChecked,\n\t\t\t\t[key]: false,\n\t\t\t});\n\t\t}\n\t\tif (children?.length && direction !== \"root\") {\n\t\t\tchildren.map((o) => {\n\t\t\t\tconst [changes] = checkItem(o, false, \"leaf\");\n\n\t\t\t\tif (!isChecked(o.key)) return;\n\n\t\t\t\tObject.assign(shouldChanged, changes);\n\t\t\t\tpartofs[o.key as string] = false;\n\t\t\t});\n\t\t}\n\n\t\treturn [shouldChanged, partofs];\n\t};\n\n\tconst handleCheck = (item: ITreeItem, checked: boolean) => {\n\t\tconst [shouldChanged, partofs] = checkItem(item, checked);\n\t\tconst changedKeys = Object.keys(shouldChanged);\n\n\t\tstate.checked = checked\n\t\t\t? Array.from(new Set([...state.checked, ...changedKeys]))\n\t\t\t: state.checked.filter((k) => !changedKeys.includes(k));\n\n\t\tObject.assign(state.partofs, partofs);\n\n\t\tonItemCheck?.(item, checked, state.checked);\n\t};\n\n\tconst handleSelect = (key: string, item: ITreeItem) => {\n\t\tif (!props.selectable) return;\n\n\t\tstate.selected = key;\n\t\tonItemSelect?.(key, item);\n\t};\n\n\tuseEffect(() => {\n\t\tif (selected === undefined) return;\n\n\t\tstate.selected = selected;\n\t}, [selected]);\n\n\tuseEffect(() => {\n\t\tstate.nodeMaps.clear();\n\n\t\tconst { key, children } = oNodeProps;\n\t\tconst recursive = (nodes) => {\n\t\t\tnodes.map((o) => {\n\t\t\t\tstate.nodeMaps.set(o[key], o);\n\n\t\t\t\to[children]?.length > 0 && recursive(o[children]);\n\t\t\t});\n\t\t};\n\n\t\trecursive(data);\n\t}, [data]);\n\n\tuseImperativeHandle(ref, () => {\n\t\treturn {\n\t\t\tgetChecked: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tstate.checked.map((k) => {\n\t\t\t\t\tconst item = state.nodeMaps.get(k);\n\t\t\t\t\titems.push(item);\n\t\t\t\t});\n\t\t\t\treturn [state.checked, items];\n\t\t\t},\n\t\t\tgetSelected: () => {\n\t\t\t\tconst item = state.nodeMaps.get(state.selected);\n\t\t\t\treturn [state.selected, item];\n\t\t\t},\n\t\t\tgetPartofs: () => {\n\t\t\t\tconst items: ITreeItem[] = [];\n\t\t\t\tconst keys = Object.keys(state.partofs).filter((k) => {\n\t\t\t\t\tconst indeterminate = state.partofs[k];\n\n\t\t\t\t\tif (indeterminate) {\n\t\t\t\t\t\tconst item = state.nodeMaps.get(k);\n\t\t\t\t\t\titems.push(item);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn indeterminate;\n\t\t\t\t});\n\n\t\t\t\treturn [keys, items];\n\t\t\t},\n\t\t};\n\t});\n\n\treturn (\n\t\t<TreeList\n\t\t\tdata={data}\n\t\t\tselected={state.selected}\n\t\t\tchecked={state.checked}\n\t\t\tpartofs={state.partofs}\n\t\t\tnodeProps={oNodeProps}\n\t\t\tonItemCheck={handleCheck}\n\t\t\tonItemSelect={handleSelect}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nexport default Tree;\n"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sources":["../../../../packages/components/tree/tree.tsx"],"sourcesContent":["import { useReactive } from \"ahooks\";\r\nimport { useEffect, useImperativeHandle } from \"react\";\r\nimport \"./index.css\";\r\nimport { TreeList } from \"./item\";\r\nimport { ITree, ITreeItem } from \"./type\";\r\n\r\nconst defaultNodeProps = {\r\n\tkey: \"key\",\r\n\ttitle: \"title\",\r\n\tchildren: \"children\",\r\n};\r\n\r\nconst Tree = (props: ITree) => {\r\n\tconst {\r\n\t\tdata = [],\r\n\t\tref,\r\n\t\tselected,\r\n\t\tchecked = [],\r\n\t\tdisabledRelated,\r\n\t\tnodeProps,\r\n\t\tonItemSelect,\r\n\t\tonItemCheck,\r\n\t\t...restProps\r\n\t} = props;\r\n\tconst state = useReactive({\r\n\t\tselected,\r\n\t\tchecked,\r\n\t\tpartofs: {} as Record<string, boolean>,\r\n\t\tnodeMaps: new Map(),\r\n\t});\r\n\tconst oNodeProps = Object.assign({}, defaultNodeProps, nodeProps);\r\n\r\n\tconst isChecked = (key?: string) => state.checked.includes(key || \"\");\r\n\r\n\tconst checkItem = (\r\n\t\titem: ITreeItem,\r\n\t\tchecked: boolean,\r\n\t\tdirection?: \"root\" | \"leaf\"\r\n\t) => {\r\n\t\tconst { key = \"\", parent, children } = item;\r\n\t\tconst shouldChanged = { [key]: checked };\r\n\t\tconst partofs = { [key]: false };\r\n\r\n\t\tif (disabledRelated) return [shouldChanged];\r\n\r\n\t\tif (checked) {\r\n\t\t\tif (parent && direction !== \"leaf\") {\r\n\t\t\t\tconst hasUnchecked = parent.children?.some(\r\n\t\t\t\t\t(o) => o.key !== key && !isChecked(o.key)\r\n\t\t\t\t);\r\n\r\n\t\t\t\tconst [changes, parts] = checkItem(parent, true, \"root\");\r\n\r\n\t\t\t\tif (!hasUnchecked) {\r\n\t\t\t\t\tObject.assign(shouldChanged, changes);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tObject.assign(partofs, hasUnchecked ? parts : {}, {\r\n\t\t\t\t\t[parent.key as string]: true,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (children?.length && direction !== \"root\") {\r\n\t\t\t\tchildren.map((o) => {\r\n\t\t\t\t\tif (isChecked(o.key)) return;\r\n\r\n\t\t\t\t\tconst [changes] = checkItem(o, true, \"leaf\");\r\n\r\n\t\t\t\t\tObject.assign(shouldChanged, changes);\r\n\t\t\t\t\tpartofs[o.key as string] = false;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn [shouldChanged, partofs];\r\n\t\t}\r\n\r\n\t\tif (parent && direction !== \"leaf\") {\r\n\t\t\tconst [changes, parts] = checkItem(parent, false, \"root\");\r\n\r\n\t\t\tObject.assign(shouldChanged, changes);\r\n\r\n\t\t\tconst hasChecked = parent.children?.some(\r\n\t\t\t\t(o) => isChecked(o.key) && o.key !== key\r\n\t\t\t);\r\n\r\n\t\t\tObject.assign(partofs, hasChecked ? {} : parts, {\r\n\t\t\t\t[parent.key as string]: hasChecked,\r\n\t\t\t\t[key]: false,\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (children?.length && direction !== \"root\") {\r\n\t\t\tchildren.map((o) => {\r\n\t\t\t\tconst [changes] = checkItem(o, false, \"leaf\");\r\n\r\n\t\t\t\tif (!isChecked(o.key)) return;\r\n\r\n\t\t\t\tObject.assign(shouldChanged, changes);\r\n\t\t\t\tpartofs[o.key as string] = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn [shouldChanged, partofs];\r\n\t};\r\n\r\n\tconst handleCheck = (item: ITreeItem, checked: boolean) => {\r\n\t\tconst [shouldChanged, partofs] = checkItem(item, checked);\r\n\t\tconst changedKeys = Object.keys(shouldChanged);\r\n\r\n\t\tstate.checked = checked\r\n\t\t\t? Array.from(new Set([...state.checked, ...changedKeys]))\r\n\t\t\t: state.checked.filter((k) => !changedKeys.includes(k));\r\n\r\n\t\tObject.assign(state.partofs, partofs);\r\n\r\n\t\tonItemCheck?.(item, checked, state.checked);\r\n\t};\r\n\r\n\tconst handleSelect = (key: string, item: ITreeItem) => {\r\n\t\tif (!props.selectable) return;\r\n\r\n\t\tstate.selected = key;\r\n\t\tonItemSelect?.(key, item);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (selected === undefined) return;\r\n\r\n\t\tstate.selected = selected;\r\n\t}, [selected]);\r\n\r\n\tuseEffect(() => {\r\n\t\tstate.nodeMaps.clear();\r\n\r\n\t\tconst { key, children } = oNodeProps;\r\n\t\tconst recursive = (nodes) => {\r\n\t\t\tnodes.map((o) => {\r\n\t\t\t\tstate.nodeMaps.set(o[key], o);\r\n\r\n\t\t\t\to[children]?.length > 0 && recursive(o[children]);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\trecursive(data);\r\n\t}, [data]);\r\n\r\n\tuseImperativeHandle(ref, () => {\r\n\t\treturn {\r\n\t\t\tgetChecked: () => {\r\n\t\t\t\tconst items: ITreeItem[] = [];\r\n\t\t\t\tstate.checked.map((k) => {\r\n\t\t\t\t\tconst item = state.nodeMaps.get(k);\r\n\t\t\t\t\titems.push(item);\r\n\t\t\t\t});\r\n\t\t\t\treturn [state.checked, items];\r\n\t\t\t},\r\n\t\t\tgetSelected: () => {\r\n\t\t\t\tconst item = state.nodeMaps.get(state.selected);\r\n\t\t\t\treturn [state.selected, item];\r\n\t\t\t},\r\n\t\t\tgetPartofs: () => {\r\n\t\t\t\tconst items: ITreeItem[] = [];\r\n\t\t\t\tconst keys = Object.keys(state.partofs).filter((k) => {\r\n\t\t\t\t\tconst indeterminate = state.partofs[k];\r\n\r\n\t\t\t\t\tif (indeterminate) {\r\n\t\t\t\t\t\tconst item = state.nodeMaps.get(k);\r\n\t\t\t\t\t\titems.push(item);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn indeterminate;\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn [keys, items];\r\n\t\t\t},\r\n\t\t};\r\n\t});\r\n\r\n\treturn (\r\n\t\t<TreeList\r\n\t\t\tdata={data}\r\n\t\t\tselected={state.selected}\r\n\t\t\tchecked={state.checked}\r\n\t\t\tpartofs={state.partofs}\r\n\t\t\tnodeProps={oNodeProps}\r\n\t\t\tonItemCheck={handleCheck}\r\n\t\t\tonItemSelect={handleSelect}\r\n\t\t\t{...restProps}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default Tree;\r\n"],"names":["_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderFile.js","sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import { ListAltRound } from \"@ricons/material\";\nimport { title } from \"radash\";\nimport { RefObject } from \"react\";\nimport SortableContainer from \"react-easy-sort\";\nimport { TFileType } from \"../../js/usePreview/type\";\nimport { formatBytes, getFileType } from \"../../js/utils\";\nimport Icon from \"../icon\";\nimport Image from \"../image\";\nimport Helpericon from \"../utils/helpericon\";\nimport { IUploadItem } from \"./type\";\n\nexport const ListContainer = (props) => {\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\n\tconst customProps = {\n\t\tclassName: \"i-upload-list\",\n\t\tonClick: (e) => {\n\t\t\te.stopPropagation();\n\t\t\te.preventDefault();\n\t\t},\n\t};\n\n\tif (!sortable) {\n\t\treturn <div {...customProps} {...restProps} />;\n\t}\n\treturn (\n\t\t<SortableContainer\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\n\t\t\tonSortEnd={onSortEnd}\n\t\t\t{...customProps}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n};\n\nconst FileListItem = (\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\n) => {\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\n\n\tif (!file) return \"\";\n\n\tconst { id, name, size, url, src } = file;\n\tconst type = getFileType(name, file.type);\n\n\tif (renderItem) {\n\t\treturn renderItem(file, index);\n\t}\n\n\tconst CloseBtn = (\n\t\t<Helpericon\n\t\t\tactive\n\t\t\tclassName='i-upload-delete'\n\t\t\tonClick={(e) => {\n\t\t\t\te.stopPropagation();\n\t\t\t\te.preventDefault();\n\t\t\t\tonRemove(index);\n\t\t\t}}\n\t\t/>\n\t);\n\n\tswitch (mode) {\n\t\tcase \"card\":\n\t\t\tlet node = <></>;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase TFileType.IMAGE:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tlazyload\n\t\t\t\t\t\t\tsrc={url || src}\n\t\t\t\t\t\t\tfit='cover'\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase TFileType.VIDEO:\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tnode = (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\n\t\t\t\t\t\t\t\t{title(name)}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\ttitle={name}\n\t\t\t\t\tclassName='i-upload-item-card'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t{node}\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={ref}\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName='i-upload-item'\n\t\t\t\t\tonClick={() => onPreview?.(index)}\n\t\t\t\t>\n\t\t\t\t\t<span>{name}</span>\n\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\n\n\t\t\t\t\t{CloseBtn}\n\t\t\t\t</div>\n\t\t\t);\n\t}\n};\n\nexport default FileListItem;\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":";;;;;;;;;;AAWa,MAAA,aAAa,GAAG,CAAC,KAAK,KAAI;AACtC,IAAA,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAC9D,IAAA,MAAM,WAAW,GAAG;AACnB,QAAA,SAAS,EAAE,eAAe;AAC1B,QAAA,OAAO,EAAE,CAAC,CAAC,KAAI;YACd,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;SAClB;KACD;IAED,IAAI,CAAC,QAAQ,EAAE;AACd,QAAA,OAAOA,GAAS,CAAA,KAAA,EAAA,EAAA,GAAA,WAAW,EAAM,GAAA,SAAS,GAAI;;AAE/C,IAAA,QACCA,GAAC,CAAA,iBAAiB,EACjB,EAAA,oBAAoB,EAAC,uBAAuB,EAC5C,SAAS,EAAE,SAAS,EAChB,GAAA,WAAW,KACX,SAAS,EAAA,CACZ;AAEJ;AAEA,MAAM,YAAY,GAAG,CACpB,KAA+D,KAC5D;AACH,IAAA,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK;AAEzE,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AAEpB,IAAA,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;IAEzC,IAAI,UAAU,EAAE;AACf,QAAA,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;;AAG/B,IAAA,MAAM,QAAQ,IACbA,GAAC,CAAA,UAAU,IACV,MAAM,EAAA,IAAA,EACN,SAAS,EAAC,iBAAiB,EAC3B,OAAO,EAAE,CAAC,CAAC,KAAI;YACd,CAAC,CAAC,eAAe,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE;YAClB,QAAQ,CAAC,KAAK,CAAC;SACf,EAAA,CACA,CACF;IAED,QAAQ,IAAI;AACX,QAAA,KAAK,MAAM;YACV,IAAI,IAAI,GAAGA,GAAA,CAAAC,QAAA,EAAA,EAAA,CAAK;YAEhB,QAAQ,IAAI;gBACX,KAAK,SAAS,CAAC,KAAK;AACnB,oBAAA,IAAI,IACHD,GAAC,CAAA,KAAK,EACL,EAAA,QAAQ,EACR,IAAA,EAAA,GAAG,EAAE,GAAG,IAAI,GAAG,EACf,GAAG,EAAC,OAAO,EACX,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,EAAA,CACrC,CACF;oBACD;gBACD,KAAK,SAAS,CAAC,KAAK;AACnB,oBAAA,IAAI,GAAGA,GAAA,CAAA,OAAA,EAAA,EAAO,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,OAAO,EAAC,MAAM,EAAA,CAAG;oBAChD;AACD,gBAAA;oBACC,IAAI,IACHE,IAAA,CAAAD,QAAA,EAAA,EAAA,QAAA,EAAA,CACCD,GAAC,CAAA,IAAI,IAAC,IAAI,EAAEA,GAAC,CAAA,YAAY,EAAG,EAAA,CAAA,EAAA,CAAI,EAChCA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,oBAAoB,EAClC,QAAA,EAAA,KAAK,CAAC,IAAI,CAAC,EAAA,CACN,CACL,EAAA,CAAA,CACH;oBACD;;AAGF,YAAA,QACCE,IAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,IAAI,EACX,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAA,QAAA,EAAA,CAEhC,IAAI,EACJ,QAAQ,CAAA,EAAA,CACJ;AAER,QAAA;AACC,YAAA,QACCA,IACC,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,GAAG,EAER,SAAS,EAAC,eAAe,EACzB,OAAO,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,EAAA,QAAA,EAAA,CAEjCF,wBAAO,IAAI,EAAA,CAAQ,EAEnBA,GAAG,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,GAAK,EAExD,QAAQ,KARJ,EAAE,CASF;;AAGV;;;;"}
1
+ {"version":3,"file":"renderFile.js","sources":["../../../../packages/components/upload/renderFile.tsx"],"sourcesContent":["import { ListAltRound } from \"@ricons/material\";\r\nimport { title } from \"radash\";\r\nimport { RefObject } from \"react\";\r\nimport SortableContainer from \"react-easy-sort\";\r\nimport { TFileType } from \"../../js/usePreview/type\";\r\nimport { formatBytes, getFileType } from \"../../js/utils\";\r\nimport Icon from \"../icon\";\r\nimport Image from \"../image\";\r\nimport Helpericon from \"../utils/helpericon\";\r\nimport { IUploadItem } from \"./type\";\r\n\r\nexport const ListContainer = (props) => {\r\n\tconst { sortable, onSortEnd, itemProps, ...restProps } = props;\r\n\tconst customProps = {\r\n\t\tclassName: \"i-upload-list\",\r\n\t\tonClick: (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t},\r\n\t};\r\n\r\n\tif (!sortable) {\r\n\t\treturn <div {...customProps} {...restProps} />;\r\n\t}\r\n\treturn (\r\n\t\t<SortableContainer\r\n\t\t\tdraggedItemClassName='i-upload-item-dragged'\r\n\t\t\tonSortEnd={onSortEnd}\r\n\t\t\t{...customProps}\r\n\t\t\t{...restProps}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nconst FileListItem = (\r\n\tprops: IUploadItem & { ref?: RefObject<HTMLDivElement | null> }\r\n) => {\r\n\tconst { ref, mode, index, file, renderItem, onRemove, onPreview } = props;\r\n\r\n\tif (!file) return \"\";\r\n\r\n\tconst { id, name, size, url, src } = file;\r\n\tconst type = getFileType(name, file.type);\r\n\r\n\tif (renderItem) {\r\n\t\treturn renderItem(file, index);\r\n\t}\r\n\r\n\tconst CloseBtn = (\r\n\t\t<Helpericon\r\n\t\t\tactive\r\n\t\t\tclassName='i-upload-delete'\r\n\t\t\tonClick={(e) => {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tonRemove(index);\r\n\t\t\t}}\r\n\t\t/>\r\n\t);\r\n\r\n\tswitch (mode) {\r\n\t\tcase \"card\":\r\n\t\t\tlet node = <></>;\r\n\r\n\t\t\tswitch (type) {\r\n\t\t\t\tcase TFileType.IMAGE:\r\n\t\t\t\t\tnode = (\r\n\t\t\t\t\t\t<Image\r\n\t\t\t\t\t\t\tlazyload\r\n\t\t\t\t\t\t\tsrc={url || src}\r\n\t\t\t\t\t\t\tfit='cover'\r\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase TFileType.VIDEO:\r\n\t\t\t\t\tnode = <video src={url || src} preload='none' />;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tnode = (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t<Icon icon={<ListAltRound />} />\r\n\t\t\t\t\t\t\t<span className='i-upload-file-name'>\r\n\t\t\t\t\t\t\t\t{title(name)}\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</>\r\n\t\t\t\t\t);\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<div\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\ttitle={name}\r\n\t\t\t\t\tclassName='i-upload-item-card'\r\n\t\t\t\t\tonClick={() => onPreview?.(index)}\r\n\t\t\t\t>\r\n\t\t\t\t\t{node}\r\n\t\t\t\t\t{CloseBtn}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\tdefault:\r\n\t\t\treturn (\r\n\t\t\t\t<div\r\n\t\t\t\t\tref={ref}\r\n\t\t\t\t\tkey={id}\r\n\t\t\t\t\tclassName='i-upload-item'\r\n\t\t\t\t\tonClick={() => onPreview?.(index)}\r\n\t\t\t\t>\r\n\t\t\t\t\t<span>{name}</span>\r\n\r\n\t\t\t\t\t<i className='i-upload-size'>{formatBytes(size ?? 0)}</i>\r\n\r\n\t\t\t\t\t{CloseBtn}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t}\r\n};\r\n\r\nexport default FileListItem;\r\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { DriveFolderUploadOutlined, PlusSharp } from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport {\n\tChangeEvent,\n\tCSSProperties,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseRef,\n} from \"react\";\nimport { SortableItem } from \"react-easy-sort\";\nimport usePreview from \"../../js/usePreview\";\nimport { TPreviewItem } from \"../../js/usePreview/type\";\nimport { arrayMove } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport InputContainer from \"../input/container\";\nimport \"./index.css\";\nimport FileListItem, { ListContainer } from \"./renderFile\";\nimport { IFile, IUpload } from \"./type\";\n\nconst Upload = (props: IUpload) => {\n\tconst {\n\t\tref,\n\t\tlabel,\n\t\tlabelInline,\n\t\tvalue,\n\t\tfiles = [],\n\t\tinitialFiles,\n\t\tplaceholder,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\tdefaultButtonProps,\n\t\tmode = \"default\",\n\t\tcardSize = \"4em\",\n\t\tdisabled,\n\t\tsortable,\n\t\tlimit = props.multiple ? Infinity : 1,\n\t\tmultiple,\n\t\trenderItem,\n\t\tshouldUpload = () => true,\n\t\tuploader,\n\t\tonChange,\n\t\tonFilesChange,\n\t\tonUpload,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tfiles,\n\t\tvalue,\n\t\tstatus,\n\t\tmessage,\n\t});\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\tconst preview = usePreview();\n\tconst defBtnProps = Object.assign(\n\t\t{\n\t\t\tchildren: (\n\t\t\t\t<>\n\t\t\t\t\t<Icon icon={<DriveFolderUploadOutlined />} /> 上传\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t\tdefaultButtonProps\n\t);\n\n\tconst trigger = useMemo(() => {\n\t\tif (children) return children;\n\n\t\tswitch (mode) {\n\t\t\tcase \"card\":\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tflat\n\t\t\t\t\t\toutline\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{...defBtnProps}\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\"i-upload-btn\",\n\t\t\t\t\t\t\tdefBtnProps.className\n\t\t\t\t\t\t)}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t}\n\t}, [mode, children]);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\n\t\tconst { files: before } = state;\n\t\tconst changed: IFile[] = [];\n\n\t\tfiles.map((f) => {\n\t\t\tconst { id, name, size, type } = f;\n\t\t\tconst same = before.find((pf) => {\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\n\t\t\t\treturn n === name && s === size && t === type;\n\t\t\t});\n\t\t\tconst src = URL.createObjectURL(f);\n\n\t\t\tObject.assign(f, {\n\t\t\t\tid: id ?? uid(7),\n\t\t\t\tsrc: src ?? f.name,\n\t\t\t\turl: src ?? f.name,\n\t\t\t});\n\t\t\t!same && changed.push(f);\n\t\t});\n\n\t\tconst after = [...before, ...changed];\n\n\t\tObject.assign(state, {\n\t\t\tfiles: multiple ? after.slice(0, limit) : [after.at(-1)],\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\n\t\tonFilesChange?.(state.files, changed, e);\n\t\tonChange?.(state.files, e);\n\n\t\thandleUpload(changed);\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleRemove = (i: number) => {\n\t\tconst [...files] = state.files;\n\n\t\tconst changed = files.splice(i, 1);\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\n\n\t\tstate.files = files;\n\t\tonFilesChange?.(files, changed);\n\t\tonChange?.(files);\n\n\t\tinputRef.current && (inputRef.current.value = \"\");\n\t};\n\n\tconst handleUpload = async (files: IFile[]) => {\n\t\tif (!uploader) return;\n\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\n\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\n\n\t\treturn onUpload?.(result);\n\t};\n\n\tconst handlePreview = (i: number) => {\n\t\tpreview({ items: state.files as TPreviewItem[], initial: i });\n\t};\n\n\tconst setFileList = (files?: IFile[] | File[]) => {\n\t\tif (!files) return;\n\n\t\tstate.files = files.map((f) => {\n\t\t\treturn { ...f, id: f.id ?? uid(7) };\n\t\t});\n\t};\n\n\tconst handleSortEnd = (before, after) => {\n\t\tconst [...files] = state.files;\n\n\t\tstate.files = arrayMove(files, before, after);\n\t\tonChange?.(state.files);\n\t};\n\n\tuseEffect(() => {\n\t\tObject.assign(state, {\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\t}, [status, message]);\n\n\tuseEffect(() => {\n\t\tstate.files = value?.filter?.((file) => !!file.id) ?? [];\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetFileList(initialFiles);\n\t}, []);\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tgetFileList: () => state.files,\n\n\t\t\tsetFileList,\n\t\t}),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<InputContainer\n\t\t\tas='div'\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\n\t\t\t\t})}\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\n\t\t\t>\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\n\t\t\t\t\t{state.files.map((file: IFile, i: number) => {\n\t\t\t\t\t\tconst node = (\n\t\t\t\t\t\t\t<FileListItem\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\tindex={i}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tmode={mode}\n\t\t\t\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!sortable) return node;\n\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\n\t\t\t\t\t})}\n\t\t\t\t</ListContainer>\n\n\t\t\t\t{state.message && (\n\t\t\t\t\t<span className='i-upload-message'>{state.message}</span>\n\t\t\t\t)}\n\n\t\t\t\t{state.files.length < limit && (\n\t\t\t\t\t<label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tref={inputRef}\n\t\t\t\t\t\t\ttype='file'\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\n\t\t\t\t\t\t\tmultiple={multiple}\n\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{trigger}\n\t\t\t\t\t</label>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n};\n\nexport default Upload;\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAM,MAAM,GAAG,CAAC,KAAc,KAAI;AACjC,IAAA,MAAM,EACL,GAAG,EACH,KAAK,EACL,WAAW,EACX,KAAK,EACL,KAAK,GAAG,EAAE,EACV,YAAY,EACZ,WAAW,EACX,MAAM,GAAG,QAAQ,EACjB,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,kBAAkB,EAClB,IAAI,GAAG,SAAS,EAChB,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,EACrC,QAAQ,EACR,UAAU,EACV,YAAY,GAAG,MAAM,IAAI,EACzB,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAG,WAAW,CAAC;QACzB,KAAK;QACL,KAAK;QACL,MAAM;QACN,OAAO;AACP,KAAA,CAAC;AACF,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE;AAC5B,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAChC;AACC,QAAA,QAAQ,GACPA,IACC,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAC,GAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAEA,GAAC,CAAA,yBAAyB,EAAG,EAAA,CAAA,EAAA,CAAI,qBAC3C,CACH;KACD,EACD,kBAAkB,CAClB;AAED,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAK;AAC5B,QAAA,IAAI,QAAQ;AAAE,YAAA,OAAO,QAAQ;QAE7B,QAAQ,IAAI;AACX,YAAA,KAAK,MAAM;AACV,gBAAA,QACCA,GAAA,CAAC,MAAM,EAAA,EACN,SAAS,EAAC,2BAA2B,EACrC,MAAM,EAAA,IAAA,EACN,IAAI,EAAA,IAAA,EACJ,OAAO,EAAA,IAAA,EACP,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAElBA,GAAC,CAAA,IAAI,EAAC,EAAA,IAAI,EAAEA,GAAA,CAAC,SAAS,EAAA,EAAA,CAAG,EAAI,CAAA,EAAA,CACrB;AAEX,YAAA;gBACC,QACCA,IAAC,MAAM,EAAA,EAAA,GACF,WAAW,EACf,SAAS,EAAE,UAAU,CACpB,cAAc,EACd,WAAW,CAAC,SAAS,CACrB,EACD,QAAQ,EAAE,QAAQ,EACjB,CAAA;;AAGN,KAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAEpB,IAAA,MAAM,YAAY,GAAG,CAAC,CAAgC,KAAI;AACzD,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAY;AACzD,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK;QAC/B,MAAM,OAAO,GAAY,EAAE;AAE3B,QAAA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;YACf,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAI;AAC/B,gBAAA,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;gBACxC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;AAC9C,aAAC,CAAC;YACF,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAElC,YAAA,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;AAChB,gBAAA,EAAE,EAAE,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAChB,gBAAA,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI;AAClB,gBAAA,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI;AAClB,aAAA,CAAC;YACF,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,SAAC,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;AAErC,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACpB,KAAK,EAAE,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM;YACN,OAAO;AACP,SAAA,CAAC;QAEF,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1B,YAAY,CAAC,OAAO,CAAC;AACrB,QAAA,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;AAClD,KAAC;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,CAAS,KAAI;QAClC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK;QAE9B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,QAAA,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;AAE1C,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACnB,QAAA,aAAa,GAAG,KAAK,EAAE,OAAO,CAAC;AAC/B,QAAA,QAAQ,GAAG,KAAK,CAAC;AAEjB,QAAA,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;AAClD,KAAC;AAED,IAAA,MAAM,YAAY,GAAG,OAAO,KAAc,KAAI;AAC7C,QAAA,IAAI,CAAC,QAAQ;YAAE;QAEf,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AAEpD,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAE3D,QAAA,OAAO,QAAQ,GAAG,MAAM,CAAC;AAC1B,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAS,KAAI;AACnC,QAAA,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAuB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AAC9D,KAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,KAAwB,KAAI;AAChD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC7B,YAAA,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;AACpC,SAAC,CAAC;AACH,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,KAAK,KAAI;QACvC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK;QAE9B,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AAC7C,QAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,KAAC;IAED,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACpB,MAAM;YACN,OAAO;AACP,SAAA,CAAC;AACH,KAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErB,SAAS,CAAC,MAAK;QACd,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AACzD,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,SAAS,CAAC,MAAK;QACd,WAAW,CAAC,YAAY,CAAC;KACzB,EAAE,EAAE,CAAC;AAEN,IAAA,mBAAmB,CAClB,GAAG,EACH,OAAO;AACN,QAAA,WAAW,EAAE,MAAM,KAAK,CAAC,KAAK;QAE9B,WAAW;KACX,CAAC,EACF,EAAE,CACF;AAED,IAAA,QACCA,GAAA,CAAC,cAAc,EAAA,EACd,EAAE,EAAC,KAAK,EACR,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,EACtD,KAAK,EAAE,KAAK,EAAA,QAAA,EAEZF,cACC,SAAS,EAAE,UAAU,CAAC,gBAAgB,EAAE;AACvC,gBAAA,CAAC,YAAY,IAAI,CAAA,CAAE,GAAG,IAAI,KAAK,SAAS;AACxC,aAAA,CAAC,EACF,KAAK,EAAE,EAAE,CAAC,oBAAoB,GAAG,QAAQ,EAAmB,EAAA,QAAA,EAAA,CAE5DE,GAAC,CAAA,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAA,QAAA,EACzD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAW,EAAE,CAAS,KAAI;AAC3C,wBAAA,MAAM,IAAI,IACTA,GAAA,CAAC,YAAY,EAEZ,EAAA,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EAAA,EANnB,CAAC,CAOL,CACF;AAED,wBAAA,IAAI,CAAC,QAAQ;AAAE,4BAAA,OAAO,IAAI;AAE1B,wBAAA,OAAOA,IAAC,YAAY,EAAA,EAAA,QAAA,EAAU,IAAI,EAAR,EAAA,CAAC,CAAuB;AACnD,qBAAC,CAAC,EAAA,CACa,EAEf,KAAK,CAAC,OAAO,KACbA,GAAM,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,kBAAkB,EAAE,QAAA,EAAA,KAAK,CAAC,OAAO,EAAQ,CAAA,CACzD,EAEA,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,KAC1BF,2BACCE,GACK,CAAA,OAAA,EAAA,EAAA,GAAA,SAAS,EACb,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,qBAAqB,EAC/B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EAAA,CACrB,EACD,OAAO,CACD,EAAA,CAAA,CACR,CACI,EAAA,CAAA,EAAA,CACU;AAEnB;;;;"}
1
+ {"version":3,"file":"upload.js","sources":["../../../../packages/components/upload/upload.tsx"],"sourcesContent":["import { DriveFolderUploadOutlined, PlusSharp } from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { uid } from \"radash\";\r\nimport {\r\n\tChangeEvent,\r\n\tCSSProperties,\r\n\tuseEffect,\r\n\tuseImperativeHandle,\r\n\tuseMemo,\r\n\tuseRef,\r\n} from \"react\";\r\nimport { SortableItem } from \"react-easy-sort\";\r\nimport usePreview from \"../../js/usePreview\";\r\nimport { TPreviewItem } from \"../../js/usePreview/type\";\r\nimport { arrayMove } from \"../../js/utils\";\r\nimport Button from \"../button\";\r\nimport Icon from \"../icon\";\r\nimport InputContainer from \"../input/container\";\r\nimport \"./index.css\";\r\nimport FileListItem, { ListContainer } from \"./renderFile\";\r\nimport { IFile, IUpload } from \"./type\";\r\n\r\nconst Upload = (props: IUpload) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tlabel,\r\n\t\tlabelInline,\r\n\t\tvalue,\r\n\t\tfiles = [],\r\n\t\tinitialFiles,\r\n\t\tplaceholder,\r\n\t\tstatus = \"normal\",\r\n\t\tmessage,\r\n\t\tclassName,\r\n\t\tstyle,\r\n\t\tchildren,\r\n\t\tdefaultButtonProps,\r\n\t\tmode = \"default\",\r\n\t\tcardSize = \"4em\",\r\n\t\tdisabled,\r\n\t\tsortable,\r\n\t\tlimit = props.multiple ? Infinity : 1,\r\n\t\tmultiple,\r\n\t\trenderItem,\r\n\t\tshouldUpload = () => true,\r\n\t\tuploader,\r\n\t\tonChange,\r\n\t\tonFilesChange,\r\n\t\tonUpload,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tconst state = useReactive({\r\n\t\tfiles,\r\n\t\tvalue,\r\n\t\tstatus,\r\n\t\tmessage,\r\n\t});\r\n\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\tconst preview = usePreview();\r\n\tconst defBtnProps = Object.assign(\r\n\t\t{\r\n\t\t\tchildren: (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<Icon icon={<DriveFolderUploadOutlined />} /> 上传\r\n\t\t\t\t</>\r\n\t\t\t),\r\n\t\t},\r\n\t\tdefaultButtonProps\r\n\t);\r\n\r\n\tconst trigger = useMemo(() => {\r\n\t\tif (children) return children;\r\n\r\n\t\tswitch (mode) {\r\n\t\t\tcase \"card\":\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tclassName='i-upload-card-btn color-5'\r\n\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\tflat\r\n\t\t\t\t\t\toutline\r\n\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Icon icon={<PlusSharp />} />\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t);\r\n\t\t\tdefault:\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\t{...defBtnProps}\r\n\t\t\t\t\t\tclassName={classNames(\r\n\t\t\t\t\t\t\t\"i-upload-btn\",\r\n\t\t\t\t\t\t\tdefBtnProps.className\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t/>\r\n\t\t\t\t);\r\n\t\t}\r\n\t}, [mode, children]);\r\n\r\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\r\n\t\tconst files = Array.from(e.target.files || []) as IFile[];\r\n\t\tconst { files: before } = state;\r\n\t\tconst changed: IFile[] = [];\r\n\r\n\t\tfiles.map((f) => {\r\n\t\t\tconst { id, name, size, type } = f;\r\n\t\t\tconst same = before.find((pf) => {\r\n\t\t\t\tconst { name: n, size: s, type: t } = pf;\r\n\t\t\t\treturn n === name && s === size && t === type;\r\n\t\t\t});\r\n\t\t\tconst src = URL.createObjectURL(f);\r\n\r\n\t\t\tObject.assign(f, {\r\n\t\t\t\tid: id ?? uid(7),\r\n\t\t\t\tsrc: src ?? f.name,\r\n\t\t\t\turl: src ?? f.name,\r\n\t\t\t});\r\n\t\t\t!same && changed.push(f);\r\n\t\t});\r\n\r\n\t\tconst after = [...before, ...changed];\r\n\r\n\t\tObject.assign(state, {\r\n\t\t\tfiles: multiple ? after.slice(0, limit) : [after.at(-1)],\r\n\t\t\tstatus,\r\n\t\t\tmessage,\r\n\t\t});\r\n\r\n\t\tonFilesChange?.(state.files, changed, e);\r\n\t\tonChange?.(state.files, e);\r\n\r\n\t\thandleUpload(changed);\r\n\t\tinputRef.current && (inputRef.current.value = \"\");\r\n\t};\r\n\r\n\tconst handleRemove = (i: number) => {\r\n\t\tconst [...files] = state.files;\r\n\r\n\t\tconst changed = files.splice(i, 1);\r\n\t\tURL.revokeObjectURL(changed[0]?.src || \"\");\r\n\r\n\t\tstate.files = files;\r\n\t\tonFilesChange?.(files, changed);\r\n\t\tonChange?.(files);\r\n\r\n\t\tinputRef.current && (inputRef.current.value = \"\");\r\n\t};\r\n\r\n\tconst handleUpload = async (files: IFile[]) => {\r\n\t\tif (!uploader) return;\r\n\r\n\t\tconst shouldUploadFiles = files.filter(shouldUpload);\r\n\r\n\t\tconst result = Promise.all(shouldUploadFiles.map(uploader));\r\n\r\n\t\treturn onUpload?.(result);\r\n\t};\r\n\r\n\tconst handlePreview = (i: number) => {\r\n\t\tpreview({ items: state.files as TPreviewItem[], initial: i });\r\n\t};\r\n\r\n\tconst setFileList = (files?: IFile[] | File[]) => {\r\n\t\tif (!files) return;\r\n\r\n\t\tstate.files = files.map((f) => {\r\n\t\t\treturn { ...f, id: f.id ?? uid(7) };\r\n\t\t});\r\n\t};\r\n\r\n\tconst handleSortEnd = (before, after) => {\r\n\t\tconst [...files] = state.files;\r\n\r\n\t\tstate.files = arrayMove(files, before, after);\r\n\t\tonChange?.(state.files);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tObject.assign(state, {\r\n\t\t\tstatus,\r\n\t\t\tmessage,\r\n\t\t});\r\n\t}, [status, message]);\r\n\r\n\tuseEffect(() => {\r\n\t\tstate.files = value?.filter?.((file) => !!file.id) ?? [];\r\n\t}, [value]);\r\n\r\n\tuseEffect(() => {\r\n\t\tsetFileList(initialFiles);\r\n\t}, []);\r\n\r\n\tuseImperativeHandle(\r\n\t\tref,\r\n\t\t() => ({\r\n\t\t\tgetFileList: () => state.files,\r\n\r\n\t\t\tsetFileList,\r\n\t\t}),\r\n\t\t[]\r\n\t);\r\n\r\n\treturn (\r\n\t\t<InputContainer\r\n\t\t\tas='div'\r\n\t\t\tlabel={label}\r\n\t\t\tlabelInline={labelInline}\r\n\t\t\tclassName={classNames(\"i-input-label-file\", className)}\r\n\t\t\tstyle={style}\r\n\t\t>\r\n\t\t\t<div\r\n\t\t\t\tclassName={classNames(\"i-upload-inner\", {\r\n\t\t\t\t\t[`i-upload-${mode}`]: mode !== \"default\",\r\n\t\t\t\t})}\r\n\t\t\t\tstyle={{ [\"--upload-card-size\"]: cardSize } as CSSProperties}\r\n\t\t\t>\r\n\t\t\t\t<ListContainer sortable={sortable} onSortEnd={handleSortEnd}>\r\n\t\t\t\t\t{state.files.map((file: IFile, i: number) => {\r\n\t\t\t\t\t\tconst node = (\r\n\t\t\t\t\t\t\t<FileListItem\r\n\t\t\t\t\t\t\t\tkey={i}\r\n\t\t\t\t\t\t\t\tindex={i}\r\n\t\t\t\t\t\t\t\tfile={file}\r\n\t\t\t\t\t\t\t\tmode={mode}\r\n\t\t\t\t\t\t\t\trenderItem={renderItem}\r\n\t\t\t\t\t\t\t\tonRemove={handleRemove}\r\n\t\t\t\t\t\t\t\tonPreview={handlePreview}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tif (!sortable) return node;\r\n\r\n\t\t\t\t\t\treturn <SortableItem key={i}>{node}</SortableItem>;\r\n\t\t\t\t\t})}\r\n\t\t\t\t</ListContainer>\r\n\r\n\t\t\t\t{state.message && (\r\n\t\t\t\t\t<span className='i-upload-message'>{state.message}</span>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{state.files.length < limit && (\r\n\t\t\t\t\t<label>\r\n\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t{...restProps}\r\n\t\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t\t\tref={inputRef}\r\n\t\t\t\t\t\t\ttype='file'\r\n\t\t\t\t\t\t\tclassName='i-input-file-hidden'\r\n\t\t\t\t\t\t\tmultiple={multiple}\r\n\t\t\t\t\t\t\tonChange={handleChange}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t{trigger}\r\n\t\t\t\t\t</label>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t</InputContainer>\r\n\t);\r\n};\r\n\r\nexport default Upload;\r\n"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/utils/empty/index.tsx"],"sourcesContent":["import { InboxTwotone } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\nexport default function Empty(props) {\n\tconst { className, ...restProps } = props;\n\n\treturn (\n\t\t<InboxTwotone\n\t\t\tclassName={classNames(\"i-empty\", className)}\n\t\t\t{...restProps}\n\t\t/>\n\t);\n}\n"],"names":["_jsx"],"mappings":";;;;AAIwB,SAAA,KAAK,CAAC,KAAK,EAAA;IAClC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAEzC,IAAA,QACCA,GAAC,CAAA,YAAY,EACZ,EAAA,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,GACvC,SAAS,EAAA,CACZ;AAEJ;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/utils/empty/index.tsx"],"sourcesContent":["import { InboxTwotone } from \"@ricons/material\";\r\nimport classNames from \"classnames\";\r\nimport \"./index.css\";\r\n\r\nexport default function Empty(props) {\r\n\tconst { className, ...restProps } = props;\r\n\r\n\treturn (\r\n\t\t<InboxTwotone\r\n\t\t\tclassName={classNames(\"i-empty\", className)}\r\n\t\t\t{...restProps}\r\n\t\t/>\r\n\t);\r\n}\r\n"],"names":["_jsx"],"mappings":";;;;AAIwB,SAAA,KAAK,CAAC,KAAK,EAAA;IAClC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAEzC,IAAA,QACCA,GAAC,CAAA,YAAY,EACZ,EAAA,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,GACvC,SAAS,EAAA,CACZ;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpericon.js","sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import { CloseRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { uid } from \"radash\";\nimport { createElement } from \"react\";\nimport Icon from \"../../icon\";\nimport \"./index.css\";\nimport { IHelperIcon } from \"./type\";\n\nconst Helpericon = (props: IHelperIcon) => {\n\tconst {\n\t\tas = \"a\",\n\t\tactive,\n\t\tclassName,\n\t\ticon = <CloseRound />,\n\t\t...restProps\n\t} = props;\n\n\tif (!active) return <></>;\n\n\treturn createElement(\n\t\tas,\n\t\t{\n\t\t\tclassName: classNames(\"i-helpericon\", className),\n\t\t\t...restProps,\n\t\t},\n\t\t[\n\t\t\tcreateElement(Icon, {\n\t\t\t\tkey: uid(3),\n\t\t\t\ticon,\n\t\t\t}),\n\t\t]\n\t);\n};\n\nexport default Helpericon;\n"],"names":["_jsx"],"mappings":";;;;;;;AAQA,MAAM,UAAU,GAAG,CAAC,KAAkB,KAAI;IACzC,MAAM,EACL,EAAE,GAAG,GAAG,EACR,MAAM,EACN,SAAS,EACT,IAAI,GAAGA,GAAC,CAAA,UAAU,KAAG,EACrB,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAOA,iBAAK;IAEzB,OAAO,aAAa,CACnB,EAAE,EACF;AACC,QAAA,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC;AAChD,QAAA,GAAG,SAAS;KACZ,EACD;QACC,aAAa,CAAC,IAAI,EAAE;AACnB,YAAA,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACX,IAAI;SACJ,CAAC;AACF,KAAA,CACD;AACF;;;;"}
1
+ {"version":3,"file":"helpericon.js","sources":["../../../../../packages/components/utils/helpericon/helpericon.tsx"],"sourcesContent":["import { CloseRound } from \"@ricons/material\";\r\nimport classNames from \"classnames\";\r\nimport { uid } from \"radash\";\r\nimport { createElement } from \"react\";\r\nimport Icon from \"../../icon\";\r\nimport \"./index.css\";\r\nimport { IHelperIcon } from \"./type\";\r\n\r\nconst Helpericon = (props: IHelperIcon) => {\r\n\tconst {\r\n\t\tas = \"a\",\r\n\t\tactive,\r\n\t\tclassName,\r\n\t\ticon = <CloseRound />,\r\n\t\t...restProps\r\n\t} = props;\r\n\r\n\tif (!active) return <></>;\r\n\r\n\treturn createElement(\r\n\t\tas,\r\n\t\t{\r\n\t\t\tclassName: classNames(\"i-helpericon\", className),\r\n\t\t\t...restProps,\r\n\t\t},\r\n\t\t[\r\n\t\t\tcreateElement(Icon, {\r\n\t\t\t\tkey: uid(3),\r\n\t\t\t\ticon,\r\n\t\t\t}),\r\n\t\t]\r\n\t);\r\n};\r\n\r\nexport default Helpericon;\r\n"],"names":["_jsx"],"mappings":";;;;;;;AAQA,MAAM,UAAU,GAAG,CAAC,KAAkB,KAAI;IACzC,MAAM,EACL,EAAE,GAAG,GAAG,EACR,MAAM,EACN,SAAS,EACT,IAAI,GAAGA,GAAC,CAAA,UAAU,KAAG,EACrB,GAAG,SAAS,EACZ,GAAG,KAAK;AAET,IAAA,IAAI,CAAC,MAAM;AAAE,QAAA,OAAOA,iBAAK;IAEzB,OAAO,aAAa,CACnB,EAAE,EACF;AACC,QAAA,SAAS,EAAE,UAAU,CAAC,cAAc,EAAE,SAAS,CAAC;AAChD,QAAA,GAAG,SAAS;KACZ,EACD;QACC,aAAa,CAAC,IAAI,EAAE;AACnB,YAAA,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACX,IAAI;SACJ,CAAC;AACF,KAAA,CACD;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\n\tFullscreenExitRound,\n\tFullscreenRound,\n\tPauseRound,\n\tPlayArrowRound,\n\tStopRound,\n\tVolumeDownRound,\n\tVolumeOffRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\nimport Button from \"../button\";\nimport Icon from \"../icon\";\nimport Progress from \"../progress\";\nimport Text from \"../text\";\nimport \"./index.css\";\nimport { IVideo } from \"./type\";\n\nconst Video = (props: IVideo) => {\n\tconst {\n\t\tref,\n\t\tstyle,\n\t\thideControls,\n\t\tautoplay,\n\t\tmuted,\n\t\tvolume = 50,\n\t\theight,\n\t\twidth,\n\t\tuseOriginControls,\n\t\ttimeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tvolumeProgressProps = {\n\t\t\tbarClass: \"bg-blue\",\n\t\t},\n\t\tclassName,\n\t\tonFullScreenChange,\n\t\t...restProps\n\t} = props;\n\tconst state = useReactive({\n\t\tplaying: autoplay,\n\t\tvolume: muted ? 0 : volume,\n\t\tvolumeCache: 0,\n\t\tmuted,\n\t\tcurrent: 0,\n\t\tduration: 0,\n\t\tisFullscreen: false,\n\t\tcontrolHidden: true,\n\t\tdraggingProgress: false,\n\t});\n\tconst videoRef = useRef<HTMLVideoElement>(null);\n\tconst hiddenTO = useRef<any>(null);\n\n\tconst timeUpdateListener = (e) => {\n\t\tconst tar = e.target;\n\t\tif (tar.paused || state.draggingProgress) return;\n\n\t\tObject.assign(state, {\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t};\n\n\tconst playChangeListener = (e) => {\n\t\tstate.playing = !e.target.paused;\n\t};\n\n\tconst fsChangeListener = () => {\n\t\tif (typeof document === \"undefined\") return;\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\n\t};\n\n\tconst volumeChangeListener = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tvolume: tar.volume * 100,\n\t\t\tmuted: tar.volume === 0,\n\t\t});\n\t};\n\n\tconst handlePlay = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.paused ? v.play() : v.pause();\n\t};\n\n\tconst handleReady = (e) => {\n\t\tconst tar = e.target;\n\t\tObject.assign(state, {\n\t\t\tduration: tar.duration,\n\t\t\tcurrent: tar.currentTime,\n\t\t});\n\t\ttar.volume = state.volume / 100;\n\t};\n\n\tconst handleMuted = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tif (v.volume > 0) {\n\t\t\tstate.volumeCache = v.volume;\n\t\t\tv.volume = 0;\n\t\t\treturn;\n\t\t}\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\n\t};\n\n\tconst handleStop = () => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = 0;\n\t\tv.pause();\n\t};\n\n\tconst handleFullscreen = () => {\n\t\tconst tar = videoRef.current?.parentElement;\n\t\tif (!tar) return;\n\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\n\t\tonFullScreenChange?.(!state.isFullscreen);\n\t};\n\n\tconst handleUpdateTime = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.currentTime = (state.duration * t) / 100;\n\t};\n\n\tconst handleUpdateVolume = (t) => {\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.volume = t / 100;\n\t};\n\n\tconst showControls = !hideControls && !useOriginControls;\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!showControls || !state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst handleDraggingProgress = (dragging) => {\n\t\tstate.draggingProgress = dragging;\n\t};\n\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\n\n\tuseImperativeHandle(ref, () => ({\n\t\tplay: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.play();\n\t\t},\n\t\tpause: () => {\n\t\t\tconst v = videoRef.current;\n\t\t\tif (!v) return;\n\n\t\t\tv.pause();\n\t\t},\n\t\tstop: handleStop,\n\t\tfullscreen: handleFullscreen,\n\t\tgetVideo: () => videoRef.current,\n\t}));\n\n\tuseEffect(() => {\n\t\tif (typeof document === \"undefined\") return;\n\n\t\tconst v = videoRef.current;\n\t\tif (!v) return;\n\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\n\t\tv.addEventListener(\"play\", playChangeListener);\n\t\tv.addEventListener(\"pause\", playChangeListener);\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\n\n\t\treturn () => {\n\t\t\tclearHiddenTO();\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\n\t\t};\n\t}, []);\n\n\tconst currentValue = (state.current / state.duration) * 100;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\"i-video\", className)}\n\t\t\tstyle={{ height, width, ...style }}\n\t\t\tonClick={handlePlay}\n\t\t\tonDoubleClick={() => handleFullscreen()}\n\t\t\tonMouseMove={handleMouseMove}\n\t\t>\n\t\t\t<video\n\t\t\t\tref={videoRef}\n\t\t\t\tonCanPlay={handleReady}\n\t\t\t\t{...restProps}\n\t\t\t\tcontrols={useOriginControls}\n\t\t\t/>\n\n\t\t\t{showControls && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\n\t\t\t\t\t})}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t>\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\n\t\t\t\t\t\tactive={state.playing}\n\t\t\t\t\t\tonClick={handlePlay}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tonClick={handleStop}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\n\t\t\t\t\t</Button>\n\t\t\t\t\t<span className='i-video-times font-sm'>\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Progress\n\t\t\t\t\t\t{...timeProgressProps}\n\t\t\t\t\t\tvalue={currentValue}\n\t\t\t\t\t\tonChange={handleUpdateTime}\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className='i-video-control-volume'>\n\t\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tactive={state.volume <= 0}\n\t\t\t\t\t\t\tafter={\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={handleMuted}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\n\t\t\t\t\t\t</Button.Toggle>\n\n\t\t\t\t\t\t<div className='i-video-volume'>\n\t\t\t\t\t\t\t<Progress\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\n\t\t\t\t\t\t\t\tvertical\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\n\t\t\t\t\t\t\t\tvalue={state.volume}\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Button.Toggle\n\t\t\t\t\t\tclassName='i-video-btn'\n\t\t\t\t\t\tflat\n\t\t\t\t\t\tsquare\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\n\t\t\t\t\t\tactive={state.isFullscreen}\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\n\t\t\t\t\t</Button.Toggle>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Video;\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"video.js","sources":["../../../../packages/components/video/video.tsx"],"sourcesContent":["import {\r\n\tFullscreenExitRound,\r\n\tFullscreenRound,\r\n\tPauseRound,\r\n\tPlayArrowRound,\r\n\tStopRound,\r\n\tVolumeDownRound,\r\n\tVolumeOffRound,\r\n} from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { throttle } from \"radash\";\r\nimport { useEffect, useImperativeHandle, useRef } from \"react\";\r\nimport { exitFullScreen, fullScreen } from \"../../js/utils\";\r\nimport Button from \"../button\";\r\nimport Icon from \"../icon\";\r\nimport Progress from \"../progress\";\r\nimport Text from \"../text\";\r\nimport \"./index.css\";\r\nimport { IVideo } from \"./type\";\r\n\r\nconst Video = (props: IVideo) => {\r\n\tconst {\r\n\t\tref,\r\n\t\tstyle,\r\n\t\thideControls,\r\n\t\tautoplay,\r\n\t\tmuted,\r\n\t\tvolume = 50,\r\n\t\theight,\r\n\t\twidth,\r\n\t\tuseOriginControls,\r\n\t\ttimeProgressProps = {\r\n\t\t\tbarClass: \"bg-blue\",\r\n\t\t},\r\n\t\tvolumeProgressProps = {\r\n\t\t\tbarClass: \"bg-blue\",\r\n\t\t},\r\n\t\tclassName,\r\n\t\tonFullScreenChange,\r\n\t\t...restProps\r\n\t} = props;\r\n\tconst state = useReactive({\r\n\t\tplaying: autoplay,\r\n\t\tvolume: muted ? 0 : volume,\r\n\t\tvolumeCache: 0,\r\n\t\tmuted,\r\n\t\tcurrent: 0,\r\n\t\tduration: 0,\r\n\t\tisFullscreen: false,\r\n\t\tcontrolHidden: true,\r\n\t\tdraggingProgress: false,\r\n\t});\r\n\tconst videoRef = useRef<HTMLVideoElement>(null);\r\n\tconst hiddenTO = useRef<any>(null);\r\n\r\n\tconst timeUpdateListener = (e) => {\r\n\t\tconst tar = e.target;\r\n\t\tif (tar.paused || state.draggingProgress) return;\r\n\r\n\t\tObject.assign(state, {\r\n\t\t\tcurrent: tar.currentTime,\r\n\t\t});\r\n\t};\r\n\r\n\tconst playChangeListener = (e) => {\r\n\t\tstate.playing = !e.target.paused;\r\n\t};\r\n\r\n\tconst fsChangeListener = () => {\r\n\t\tif (typeof document === \"undefined\") return;\r\n\t\tconst tar = videoRef.current?.parentElement;\r\n\t\tif (!tar) return;\r\n\r\n\t\tstate.isFullscreen = document.fullscreenElement === tar;\r\n\t};\r\n\r\n\tconst volumeChangeListener = (e) => {\r\n\t\tconst tar = e.target;\r\n\t\tObject.assign(state, {\r\n\t\t\tvolume: tar.volume * 100,\r\n\t\t\tmuted: tar.volume === 0,\r\n\t\t});\r\n\t};\r\n\r\n\tconst handlePlay = () => {\r\n\t\tconst v = videoRef.current;\r\n\t\tif (!v) return;\r\n\r\n\t\tv.paused ? v.play() : v.pause();\r\n\t};\r\n\r\n\tconst handleReady = (e) => {\r\n\t\tconst tar = e.target;\r\n\t\tObject.assign(state, {\r\n\t\t\tduration: tar.duration,\r\n\t\t\tcurrent: tar.currentTime,\r\n\t\t});\r\n\t\ttar.volume = state.volume / 100;\r\n\t};\r\n\r\n\tconst handleMuted = () => {\r\n\t\tconst v = videoRef.current;\r\n\t\tif (!v) return;\r\n\r\n\t\tif (v.volume > 0) {\r\n\t\t\tstate.volumeCache = v.volume;\r\n\t\t\tv.volume = 0;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tv.volume = state.volumeCache === 0 ? 0.5 : state.volumeCache;\r\n\t};\r\n\r\n\tconst handleStop = () => {\r\n\t\tconst v = videoRef.current;\r\n\t\tif (!v) return;\r\n\r\n\t\tv.currentTime = 0;\r\n\t\tv.pause();\r\n\t};\r\n\r\n\tconst handleFullscreen = () => {\r\n\t\tconst tar = videoRef.current?.parentElement;\r\n\t\tif (!tar) return;\r\n\r\n\t\tstate.isFullscreen ? exitFullScreen() : fullScreen(tar);\r\n\t\tonFullScreenChange?.(!state.isFullscreen);\r\n\t};\r\n\r\n\tconst handleUpdateTime = (t) => {\r\n\t\tconst v = videoRef.current;\r\n\t\tif (!v) return;\r\n\r\n\t\tv.currentTime = (state.duration * t) / 100;\r\n\t};\r\n\r\n\tconst handleUpdateVolume = (t) => {\r\n\t\tconst v = videoRef.current;\r\n\t\tif (!v) return;\r\n\r\n\t\tv.volume = t / 100;\r\n\t};\r\n\r\n\tconst showControls = !hideControls && !useOriginControls;\r\n\r\n\tconst clearHiddenTO = () => {\r\n\t\tif (!hiddenTO.current) return;\r\n\t\tclearTimeout(hiddenTO.current);\r\n\t\thiddenTO.current = null;\r\n\t};\r\n\r\n\tconst setHiddenFalse = () => {\r\n\t\tif (!showControls || !state.controlHidden) return;\r\n\t\tstate.controlHidden = false;\r\n\r\n\t\tclearHiddenTO();\r\n\t\thiddenTO.current = setTimeout(() => {\r\n\t\t\tstate.controlHidden = true;\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\tconst handleDraggingProgress = (dragging) => {\r\n\t\tstate.draggingProgress = dragging;\r\n\t};\r\n\r\n\tconst handleMouseMove = throttle({ interval: 900 }, setHiddenFalse);\r\n\r\n\tuseImperativeHandle(ref, () => ({\r\n\t\tplay: () => {\r\n\t\t\tconst v = videoRef.current;\r\n\t\t\tif (!v) return;\r\n\r\n\t\t\tv.play();\r\n\t\t},\r\n\t\tpause: () => {\r\n\t\t\tconst v = videoRef.current;\r\n\t\t\tif (!v) return;\r\n\r\n\t\t\tv.pause();\r\n\t\t},\r\n\t\tstop: handleStop,\r\n\t\tfullscreen: handleFullscreen,\r\n\t\tgetVideo: () => videoRef.current,\r\n\t}));\r\n\r\n\tuseEffect(() => {\r\n\t\tif (typeof document === \"undefined\") return;\r\n\r\n\t\tconst v = videoRef.current;\r\n\t\tif (!v) return;\r\n\r\n\t\tv.addEventListener(\"timeupdate\", timeUpdateListener);\r\n\t\tv.addEventListener(\"play\", playChangeListener);\r\n\t\tv.addEventListener(\"pause\", playChangeListener);\r\n\t\tv.addEventListener(\"volumechange\", volumeChangeListener);\r\n\t\tdocument.addEventListener(\"fullscreenchange\", fsChangeListener);\r\n\r\n\t\treturn () => {\r\n\t\t\tclearHiddenTO();\r\n\t\t\tv.removeEventListener(\"timeupdate\", timeUpdateListener);\r\n\t\t\tv.removeEventListener(\"play\", playChangeListener);\r\n\t\t\tv.removeEventListener(\"pause\", playChangeListener);\r\n\t\t\tv.removeEventListener(\"volumechange\", volumeChangeListener);\r\n\t\t\tdocument.removeEventListener(\"fullscreenchange\", fsChangeListener);\r\n\t\t};\r\n\t}, []);\r\n\r\n\tconst currentValue = (state.current / state.duration) * 100;\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={classNames(\"i-video\", className)}\r\n\t\t\tstyle={{ height, width, ...style }}\r\n\t\t\tonClick={handlePlay}\r\n\t\t\tonDoubleClick={() => handleFullscreen()}\r\n\t\t\tonMouseMove={handleMouseMove}\r\n\t\t>\r\n\t\t\t<video\r\n\t\t\t\tref={videoRef}\r\n\t\t\t\tonCanPlay={handleReady}\r\n\t\t\t\t{...restProps}\r\n\t\t\t\tcontrols={useOriginControls}\r\n\t\t\t/>\r\n\r\n\t\t\t{showControls && (\r\n\t\t\t\t<div\r\n\t\t\t\t\tclassName={classNames(\"i-video-controls\", {\r\n\t\t\t\t\t\t\"i-video-controls-hidden\": state.controlHidden,\r\n\t\t\t\t\t})}\r\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Button.Toggle\r\n\t\t\t\t\t\tclassName='i-video-btn'\r\n\t\t\t\t\t\tflat\r\n\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\tafter={<Icon icon={<PauseRound />} />}\r\n\t\t\t\t\t\tactive={state.playing}\r\n\t\t\t\t\t\tonClick={handlePlay}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Icon icon={<PlayArrowRound />} />\r\n\t\t\t\t\t</Button.Toggle>\r\n\t\t\t\t\t<Button\r\n\t\t\t\t\t\tclassName='i-video-btn'\r\n\t\t\t\t\t\tflat\r\n\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\tonClick={handleStop}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Icon icon={<StopRound />} />\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t\t<span className='i-video-times font-sm'>\r\n\t\t\t\t\t\t<Text.Time seconds={state.current} /> /\r\n\t\t\t\t\t\t<Text.Time seconds={state.duration} />\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<Progress\r\n\t\t\t\t\t\t{...timeProgressProps}\r\n\t\t\t\t\t\tvalue={currentValue}\r\n\t\t\t\t\t\tonChange={handleUpdateTime}\r\n\t\t\t\t\t\tonDraggingChange={handleDraggingProgress}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<div className='i-video-control-volume'>\r\n\t\t\t\t\t\t<Button.Toggle\r\n\t\t\t\t\t\t\tclassName='i-video-btn'\r\n\t\t\t\t\t\t\tflat\r\n\t\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\t\tactive={state.volume <= 0}\r\n\t\t\t\t\t\t\tafter={\r\n\t\t\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\t\t\ticon={<VolumeOffRound />}\r\n\t\t\t\t\t\t\t\t\tstyle={{ padding: \".125em\" }}\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\tonClick={handleMuted}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Icon icon={<VolumeDownRound />} />\r\n\t\t\t\t\t\t</Button.Toggle>\r\n\r\n\t\t\t\t\t\t<div className='i-video-volume'>\r\n\t\t\t\t\t\t\t<Progress\r\n\t\t\t\t\t\t\t\tstyle={{ height: 100 }}\r\n\t\t\t\t\t\t\t\tvertical\r\n\t\t\t\t\t\t\t\t{...volumeProgressProps}\r\n\t\t\t\t\t\t\t\tvalue={state.volume}\r\n\t\t\t\t\t\t\t\tonChange={handleUpdateVolume}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<Button.Toggle\r\n\t\t\t\t\t\tclassName='i-video-btn'\r\n\t\t\t\t\t\tflat\r\n\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\tafter={<Icon icon={<FullscreenExitRound />} />}\r\n\t\t\t\t\t\tactive={state.isFullscreen}\r\n\t\t\t\t\t\tonClick={() => handleFullscreen()}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Icon icon={<FullscreenRound />} />\r\n\t\t\t\t\t</Button.Toggle>\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Video;\r\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (!document || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false }\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tKeydownEvents.add(listener);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\tconst WM = new WeakMap();\n\tconst IO = new IntersectionObserver((entries) => {\n\t\tentries.map((entry) => {\n\t\t\tconst callback = WM.get(entry.target);\n\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t});\n\t}, configs);\n\n\tfunction observe(target: HTMLElement, callback: Function) {\n\t\tif (WM.get(target)) return;\n\t\tWM.set(target, callback);\n\t\ttarget && IO.observe(target);\n\t}\n\n\tfunction unobserve(target: HTMLElement) {\n\t\ttarget && IO.unobserve(target);\n\t\tWM.delete(target);\n\t}\n\n\tfunction disconnect() {\n\t\tIO.disconnect();\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\tconst WM = new WeakMap();\n\tconst IO = new ResizeObserver((entries) => {\n\t\tentries.map((entry) => {\n\t\t\tconst callback = WM.get(entry.target);\n\t\t\tcallback?.(entry.target);\n\t\t});\n\t});\n\n\tfunction observe(target: HTMLElement, callback: Function) {\n\t\tif (WM.get(target)) return;\n\t\ttarget && IO.observe(target);\n\t\tWM.set(target, callback);\n\t}\n\n\tfunction unobserve(target: HTMLElement) {\n\t\ttarget && IO.unobserve(target);\n\t\tWM.delete(target);\n\t}\n\n\tfunction disconnect() {\n\t\tIO.disconnect();\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\ntype TMouseEvent = (e: MouseEvent) => void;\r\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\r\ntype TEventOption = {\r\n\tdisabled?: boolean;\r\n};\r\n\r\nconst MouseMoveEvents = new Set<TMouseEvent>();\r\nconst MouseUpEvents = new Set<TMouseEvent>();\r\nconst KeydownEvents = new Set<TKeyboardEvent>();\r\n\r\nlet initialized = false;\r\n\r\nconst initEvents = () => {\r\n\tif (!document || initialized) return;\r\n\tinitialized = true;\r\n\r\n\tconst touchable = \"ontouchend\" in document;\r\n\tconst EVENTS: Record<string, any> = {\r\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\r\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\r\n\t\tKEYDOWN: \"keydown\",\r\n\t};\r\n\r\n\tdocument.addEventListener(\r\n\t\tEVENTS.MOVE,\r\n\t\t(e) => {\r\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\r\n\t\t\t\tlistener(e);\r\n\t\t\t}\r\n\t\t},\r\n\t\t{ passive: false }\r\n\t);\r\n\r\n\tdocument.addEventListener(EVENTS.UP, (e) => {\r\n\t\tfor (const listener of MouseUpEvents.values()) {\r\n\t\t\tlistener(e);\r\n\t\t}\r\n\t});\r\n\r\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\r\n\t\tfor (const listener of KeydownEvents.values()) {\r\n\t\t\tlistener(e);\r\n\t\t}\r\n\t});\r\n};\r\n\r\nfunction initEventsOnce() {\r\n\tuseEffect(initEvents, []);\r\n}\r\n\r\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\r\n\tinitEventsOnce();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (options?.disabled) return;\r\n\r\n\t\tMouseMoveEvents.add(listener);\r\n\t\treturn () => {\r\n\t\t\tMouseMoveEvents.delete(listener);\r\n\t\t};\r\n\t}, []);\r\n}\r\n\r\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\r\n\tinitEventsOnce();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (options?.disabled) return;\r\n\r\n\t\tMouseUpEvents.add(listener);\r\n\t\treturn () => {\r\n\t\t\tMouseUpEvents.delete(listener);\r\n\t\t};\r\n\t}, []);\r\n}\r\n\r\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\r\n\tinitEventsOnce();\r\n\r\n\tuseEffect(() => {\r\n\t\tif (options?.disabled) return;\r\n\r\n\t\tKeydownEvents.add(listener);\r\n\t\treturn () => {\r\n\t\t\tKeydownEvents.delete(listener);\r\n\t\t};\r\n\t}, []);\r\n}\r\n\r\nconst defaultObserver = {\r\n\tobserve: undefined,\r\n\tunobserve: undefined,\r\n\tdisconnect: undefined,\r\n};\r\n\r\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\r\n\tif (typeof window === \"undefined\") {\r\n\t\treturn {\r\n\t\t\t...defaultObserver,\r\n\t\t};\r\n\t}\r\n\r\n\tconst WM = new WeakMap();\r\n\tconst IO = new IntersectionObserver((entries) => {\r\n\t\tentries.map((entry) => {\r\n\t\t\tconst callback = WM.get(entry.target);\r\n\t\t\tcallback?.(entry.target, entry.isIntersecting);\r\n\t\t});\r\n\t}, configs);\r\n\r\n\tfunction observe(target: HTMLElement, callback: Function) {\r\n\t\tif (WM.get(target)) return;\r\n\t\tWM.set(target, callback);\r\n\t\ttarget && IO.observe(target);\r\n\t}\r\n\r\n\tfunction unobserve(target: HTMLElement) {\r\n\t\ttarget && IO.unobserve(target);\r\n\t\tWM.delete(target);\r\n\t}\r\n\r\n\tfunction disconnect() {\r\n\t\tIO.disconnect();\r\n\t}\r\n\r\n\treturn {\r\n\t\tobserve,\r\n\t\tunobserve,\r\n\t\tdisconnect,\r\n\t};\r\n}\r\n\r\nexport function useResizeObserver() {\r\n\tif (typeof window === \"undefined\") {\r\n\t\treturn {\r\n\t\t\t...defaultObserver,\r\n\t\t};\r\n\t}\r\n\r\n\tconst WM = new WeakMap();\r\n\tconst IO = new ResizeObserver((entries) => {\r\n\t\tentries.map((entry) => {\r\n\t\t\tconst callback = WM.get(entry.target);\r\n\t\t\tcallback?.(entry.target);\r\n\t\t});\r\n\t});\r\n\r\n\tfunction observe(target: HTMLElement, callback: Function) {\r\n\t\tif (WM.get(target)) return;\r\n\t\ttarget && IO.observe(target);\r\n\t\tWM.set(target, callback);\r\n\t}\r\n\r\n\tfunction unobserve(target: HTMLElement) {\r\n\t\ttarget && IO.unobserve(target);\r\n\t\tWM.delete(target);\r\n\t}\r\n\r\n\tfunction disconnect() {\r\n\t\tIO.disconnect();\r\n\t}\r\n\r\n\treturn {\r\n\t\tobserve,\r\n\t\tunobserve,\r\n\t\tdisconnect,\r\n\t};\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -76,6 +76,8 @@ function Content(props) {
76
76
  onRotate?.(state.rotate);
77
77
  };
78
78
  const handleMouseWheel = throttle({ interval: 60 }, (e) => {
79
+ e.stopPropagation();
80
+ e.preventDefault();
79
81
  if (!isImage)
80
82
  return;
81
83
  let after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\nimport Icon from \"@p/components/icon\";\nimport {\n\tAspectRatioRound,\n\tCloseRound,\n\tFileDownloadOutlined,\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n\tOpenInNewRound,\n\tRotateLeftRound,\n\tRotateRightRound,\n} from \"@ricons/material\";\nimport { useReactive } from \"ahooks\";\nimport classNames from \"classnames\";\nimport { throttle } from \"radash\";\nimport { useMemo, useRef } from \"react\";\nimport { useMouseMove, useMouseUp } from \"../hooks\";\nimport { getFileType, getSuffixByUrl } from \"../utils\";\nimport DefaultRenderFile from \"./renderFile\";\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\n\nexport default function Content(props: IPreview) {\n\tconst {\n\t\titems = [],\n\t\tinitial = 0,\n\t\trenderFile = DefaultRenderFile,\n\t\tonRotate,\n\t\tonChange,\n\t\tonClose,\n\t\tonZoom,\n\t} = props;\n\tconst state = useReactive({\n\t\tcurrent: initial,\n\t\trotate: 0,\n\t\tscale: 1,\n\t\ttranslate: [0, 0],\n\t\tstart: [0, 0],\n\t\tdragging: false,\n\t\tcontrolHidden: true,\n\t});\n\tconst box = useRef<HTMLDivElement>(null);\n\tconst translate = useRef<number[]>([0, 0]);\n\tconst hiddenTO = useRef<any>(null);\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 { file, content } = useMemo(() => {\n\t\tconst file = files[state.current];\n\t\tconst content = renderFile(file);\n\n\t\treturn {\n\t\t\tfile,\n\t\t\tcontent,\n\t\t};\n\t}, [state.current, items]);\n\n\tconst isImage = file.type === TFileType.IMAGE;\n\n\tconst handleSwitch = (next: number) => {\n\t\tconst l = files.length;\n\t\tconst { current: before } = state;\n\t\tif (next >= l) {\n\t\t\tstate.current = 0;\n\t\t} else if (next < 0) {\n\t\t\tstate.current = l - 1;\n\t\t} else {\n\t\t\tstate.current = next;\n\t\t}\n\t\tonChange?.(state.current, before);\n\n\t\tstate.rotate = files[state.current].rotate || 0;\n\n\t\tif (state.scale !== 1) {\n\t\t\tstate.scale = 1;\n\t\t\tonZoom?.(1);\n\t\t}\n\t\tonRotate?.(state.rotate);\n\t\tstate.translate = translate.current = [0, 0];\n\t};\n\n\tconst handleRotate = (deg: number) => {\n\t\tstate.rotate += deg;\n\n\t\tonRotate?.(state.rotate);\n\t};\n\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\n\t\tif (!isImage) return;\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\n\t\tif (after > 2) after = 2;\n\t\tif (after < 0.25) after = 0.25;\n\n\t\tonZoom?.(after);\n\t\tstate.scale = after;\n\t});\n\n\tconst handleMouseDown = (e) => {\n\t\tif (!isImage) return;\n\t\te.preventDefault();\n\t\tstate.dragging = true;\n\t\tstate.start = [e.pageX, e.pageY];\n\t};\n\n\tconst clearHiddenTO = () => {\n\t\tif (!hiddenTO.current || state.controlHidden) return;\n\t\tclearTimeout(hiddenTO.current);\n\t\thiddenTO.current = null;\n\t};\n\n\tconst setHiddenFalse = () => {\n\t\tif (!state.controlHidden) return;\n\t\tstate.controlHidden = false;\n\n\t\tclearHiddenTO();\n\t\thiddenTO.current = setTimeout(() => {\n\t\t\tstate.controlHidden = true;\n\t\t}, 1000);\n\t};\n\n\tconst throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\n\n\tconst handleMouseMove = (e) => {\n\t\tthrottleMouseMove();\n\t\tif (!state.dragging) return;\n\t\te.preventDefault();\n\n\t\tconst [x, y] = translate.current;\n\t\tconst [ox, oy] = state.start;\n\t\tconst offsetX = e.pageX - ox;\n\t\tconst offsetY = e.pageY - oy;\n\n\t\tstate.translate = [x + offsetX, y + offsetY];\n\t};\n\n\tconst handleMouseUp = () => {\n\t\tif (!state.dragging) return;\n\t\tstate.dragging = false;\n\t\ttranslate.current = state.translate;\n\t};\n\n\tuseMouseMove(handleMouseMove);\n\tuseMouseUp(handleMouseUp);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={box}\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\n\t\t\t\t\t\"no-transition\": state.dragging,\n\t\t\t\t})}\n\t\t\t\tstyle={{\n\t\t\t\t\ttransform: `translate(${state.translate\n\t\t\t\t\t\t.map((n) => `${n}px`)\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\n\t\t\t\t\t\tstate.scale\n\t\t\t\t\t})`,\n\t\t\t\t}}\n\t\t\t\tonWheel={handleMouseWheel}\n\t\t\t\tonMouseDown={handleMouseDown}\n\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t{content}\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Button square flat onClick={onClose}>\n\t\t\t\t\t<Icon icon={<CloseRound />} />\n\t\t\t\t</Button>\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<span className='px-8'>\n\t\t\t\t\t\t{state.current + 1} / {files.length}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t\t{state.scale !== 1 && (\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\n\t\t\t\t\t\t<span className='mt-2'>\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\n\t\t\t\t</Button>\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\n\t\t\t\t</Button>\n\n\t\t\t\t{files.length > 1 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsquare\n\t\t\t\t\t\t\tflat\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"names":["renderFile","DefaultRenderFile","_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"content.js","sources":["../../../../packages/js/usePreview/content.tsx"],"sourcesContent":["import Button from \"@p/components/button\";\r\nimport Icon from \"@p/components/icon\";\r\nimport {\r\n\tAspectRatioRound,\r\n\tCloseRound,\r\n\tFileDownloadOutlined,\r\n\tKeyboardArrowLeftRound,\r\n\tKeyboardArrowRightRound,\r\n\tOpenInNewRound,\r\n\tRotateLeftRound,\r\n\tRotateRightRound,\r\n} from \"@ricons/material\";\r\nimport { useReactive } from \"ahooks\";\r\nimport classNames from \"classnames\";\r\nimport { throttle } from \"radash\";\r\nimport { useMemo, useRef } from \"react\";\r\nimport { useMouseMove, useMouseUp } from \"../hooks\";\r\nimport { getFileType, getSuffixByUrl } from \"../utils\";\r\nimport DefaultRenderFile from \"./renderFile\";\r\nimport { IPreview, TFileType, TPreviewItem } from \"./type\";\r\n\r\nexport default function Content(props: IPreview) {\r\n\tconst {\r\n\t\titems = [],\r\n\t\tinitial = 0,\r\n\t\trenderFile = DefaultRenderFile,\r\n\t\tonRotate,\r\n\t\tonChange,\r\n\t\tonClose,\r\n\t\tonZoom,\r\n\t} = props;\r\n\tconst state = useReactive({\r\n\t\tcurrent: initial,\r\n\t\trotate: 0,\r\n\t\tscale: 1,\r\n\t\ttranslate: [0, 0],\r\n\t\tstart: [0, 0],\r\n\t\tdragging: false,\r\n\t\tcontrolHidden: true,\r\n\t});\r\n\tconst box = useRef<HTMLDivElement>(null);\r\n\tconst translate = useRef<number[]>([0, 0]);\r\n\tconst hiddenTO = useRef<any>(null);\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 { file, content } = useMemo(() => {\r\n\t\tconst file = files[state.current];\r\n\t\tconst content = renderFile(file);\r\n\r\n\t\treturn {\r\n\t\t\tfile,\r\n\t\t\tcontent,\r\n\t\t};\r\n\t}, [state.current, items]);\r\n\r\n\tconst isImage = file.type === TFileType.IMAGE;\r\n\r\n\tconst handleSwitch = (next: number) => {\r\n\t\tconst l = files.length;\r\n\t\tconst { current: before } = state;\r\n\t\tif (next >= l) {\r\n\t\t\tstate.current = 0;\r\n\t\t} else if (next < 0) {\r\n\t\t\tstate.current = l - 1;\r\n\t\t} else {\r\n\t\t\tstate.current = next;\r\n\t\t}\r\n\t\tonChange?.(state.current, before);\r\n\r\n\t\tstate.rotate = files[state.current].rotate || 0;\r\n\r\n\t\tif (state.scale !== 1) {\r\n\t\t\tstate.scale = 1;\r\n\t\t\tonZoom?.(1);\r\n\t\t}\r\n\t\tonRotate?.(state.rotate);\r\n\t\tstate.translate = translate.current = [0, 0];\r\n\t};\r\n\r\n\tconst handleRotate = (deg: number) => {\r\n\t\tstate.rotate += deg;\r\n\r\n\t\tonRotate?.(state.rotate);\r\n\t};\r\n\r\n\tconst handleMouseWheel = throttle({ interval: 60 }, (e) => {\r\n\t\te.stopPropagation();\r\n\t\te.preventDefault();\r\n\t\tif (!isImage) return;\r\n\t\tlet after = state.scale + (e.deltaY < 0 ? 0.05 : -0.05);\r\n\t\tif (after > 2) after = 2;\r\n\t\tif (after < 0.25) after = 0.25;\r\n\r\n\t\tonZoom?.(after);\r\n\t\tstate.scale = after;\r\n\t});\r\n\r\n\tconst handleMouseDown = (e) => {\r\n\t\tif (!isImage) return;\r\n\t\te.preventDefault();\r\n\t\tstate.dragging = true;\r\n\t\tstate.start = [e.pageX, e.pageY];\r\n\t};\r\n\r\n\tconst clearHiddenTO = () => {\r\n\t\tif (!hiddenTO.current || state.controlHidden) return;\r\n\t\tclearTimeout(hiddenTO.current);\r\n\t\thiddenTO.current = null;\r\n\t};\r\n\r\n\tconst setHiddenFalse = () => {\r\n\t\tif (!state.controlHidden) return;\r\n\t\tstate.controlHidden = false;\r\n\r\n\t\tclearHiddenTO();\r\n\t\thiddenTO.current = setTimeout(() => {\r\n\t\t\tstate.controlHidden = true;\r\n\t\t}, 1000);\r\n\t};\r\n\r\n\tconst throttleMouseMove = throttle({ interval: 300 }, setHiddenFalse);\r\n\r\n\tconst handleMouseMove = (e) => {\r\n\t\tthrottleMouseMove();\r\n\t\tif (!state.dragging) return;\r\n\t\te.preventDefault();\r\n\r\n\t\tconst [x, y] = translate.current;\r\n\t\tconst [ox, oy] = state.start;\r\n\t\tconst offsetX = e.pageX - ox;\r\n\t\tconst offsetY = e.pageY - oy;\r\n\r\n\t\tstate.translate = [x + offsetX, y + offsetY];\r\n\t};\r\n\r\n\tconst handleMouseUp = () => {\r\n\t\tif (!state.dragging) return;\r\n\t\tstate.dragging = false;\r\n\t\ttranslate.current = state.translate;\r\n\t};\r\n\r\n\tuseMouseMove(handleMouseMove);\r\n\tuseMouseUp(handleMouseUp);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t<div\r\n\t\t\t\tref={box}\r\n\t\t\t\tclassName={classNames(\"i-preview-content\", {\r\n\t\t\t\t\t\"no-transition\": state.dragging,\r\n\t\t\t\t})}\r\n\t\t\t\tstyle={{\r\n\t\t\t\t\ttransform: `translate(${state.translate\r\n\t\t\t\t\t\t.map((n) => `${n}px`)\r\n\t\t\t\t\t\t.join(\",\")}) rotate(${state.rotate}deg) scale(${\r\n\t\t\t\t\t\tstate.scale\r\n\t\t\t\t\t})`,\r\n\t\t\t\t}}\r\n\t\t\t\tonWheel={handleMouseWheel}\r\n\t\t\t\tonMouseDown={handleMouseDown}\r\n\t\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\t>\r\n\t\t\t\t{content}\r\n\t\t\t</div>\r\n\r\n\t\t\t<div\r\n\t\t\t\tclassName={classNames(\"i-preview-controls\", {\r\n\t\t\t\t\t\"i-preview-controls-hidden\": state.controlHidden,\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\t\t<Button square flat onClick={onClose}>\r\n\t\t\t\t\t<Icon icon={<CloseRound />} />\r\n\t\t\t\t</Button>\r\n\t\t\t\t{files.length > 1 && (\r\n\t\t\t\t\t<span className='px-8'>\r\n\t\t\t\t\t\t{state.current + 1} / {files.length}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t)}\r\n\t\t\t\t{state.scale !== 1 && (\r\n\t\t\t\t\t<Button flat onClick={() => (state.scale = 1)}>\r\n\t\t\t\t\t\t<Icon icon={<AspectRatioRound />} />\r\n\t\t\t\t\t\t<span className='mt-2'>\r\n\t\t\t\t\t\t\t{(state.scale * 100).toFixed(0)}%\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</Button>\r\n\t\t\t\t)}\r\n\t\t\t\t<Button square flat href={file.src} target='_blank'>\r\n\t\t\t\t\t<Icon icon={<OpenInNewRound />} />\r\n\t\t\t\t</Button>\r\n\t\t\t\t<Button square flat href={file.src} download target='_blank'>\r\n\t\t\t\t\t<Icon icon={<FileDownloadOutlined />} />\r\n\t\t\t\t</Button>\r\n\t\t\t\t<Button square flat onClick={() => handleRotate(90)}>\r\n\t\t\t\t\t<Icon icon={<RotateRightRound />} />\r\n\t\t\t\t</Button>\r\n\t\t\t\t<Button square flat onClick={() => handleRotate(-90)}>\r\n\t\t\t\t\t<Icon icon={<RotateLeftRound />} />\r\n\t\t\t\t</Button>\r\n\r\n\t\t\t\t{files.length > 1 && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\t\tflat\r\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current - 1)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t\t<Button\r\n\t\t\t\t\t\t\tsquare\r\n\t\t\t\t\t\t\tflat\r\n\t\t\t\t\t\t\tonClick={() => handleSwitch(state.current + 1)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\r\n\t\t\t\t\t\t</Button>\r\n\t\t\t\t\t</>\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t</>\r\n\t);\r\n}\r\n"],"names":["renderFile","DefaultRenderFile","_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../packages/js/usePreview/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\nimport HookModal from \"../../components/modal/hookModal\";\nimport type { RefHookModal } from \"../../components/modal/type\";\nimport { renderNode } from \"../utils\";\nimport Content from \"./content\";\nimport \"./index.css\";\nimport type { IPreview } from \"./type\";\n\nexport default function usePreview() {\n\tconst ref = useRef<RefHookModal>(null);\n\n\tconst preview = (config: IPreview) => {\n\t\tconst { items, modalProps, onClose, ...restProps } = config;\n\n\t\tconst handleClose = () => {\n\t\t\tonClose?.();\n\t\t\tunMount?.();\n\t\t};\n\n\t\tconst unMount = renderNode(\n\t\t\t<HookModal\n\t\t\t\tref={ref}\n\t\t\t\tvisible\n\t\t\t\tclassName='i-preview'\n\t\t\t\tcustomized\n\t\t\t\thideShadow\n\t\t\t\t{...modalProps}\n\t\t\t\tchildren={\n\t\t\t\t\t<Content\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t\titems={items}\n\t\t\t\t\t\tonClose={() => {\n\t\t\t\t\t\t\tref.current?.update({ visible: false });\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tfixed\n\t\t\t\tonClose={handleClose}\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn preview;\n}\n"],"names":["_jsx"],"mappings":";;;;;;AAQc,SAAU,UAAU,GAAA;AACjC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAe,IAAI,CAAC;AAEtC,IAAA,MAAM,OAAO,GAAG,CAAC,MAAgB,KAAI;AACpC,QAAA,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM;QAE3D,MAAM,WAAW,GAAG,MAAK;YACxB,OAAO,IAAI;YACX,OAAO,IAAI;AACZ,SAAC;AAED,QAAA,MAAM,OAAO,GAAG,UAAU,CACzBA,GAAA,CAAC,SAAS,EACT,EAAA,GAAG,EAAE,GAAG,EACR,OAAO,EAAA,IAAA,EACP,SAAS,EAAC,WAAW,EACrB,UAAU,EACV,IAAA,EAAA,UAAU,WACN,UAAU,EACd,QAAQ,EACPA,IAAC,OAAO,EAAA,EAAA,GACH,SAAS,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAK;oBACb,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBACvC,EAAA,CACA,EAEH,KAAK,EAAA,IAAA,EACL,OAAO,EAAE,WAAW,EACnB,CAAA,CACF;AACF,KAAC;AAED,IAAA,OAAO,OAAO;AACf;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/js/usePreview/index.tsx"],"sourcesContent":["import { useRef } from \"react\";\r\nimport HookModal from \"../../components/modal/hookModal\";\r\nimport type { RefHookModal } from \"../../components/modal/type\";\r\nimport { renderNode } from \"../utils\";\r\nimport Content from \"./content\";\r\nimport \"./index.css\";\r\nimport type { IPreview } from \"./type\";\r\n\r\nexport default function usePreview() {\r\n\tconst ref = useRef<RefHookModal>(null);\r\n\r\n\tconst preview = (config: IPreview) => {\r\n\t\tconst { items, modalProps, onClose, ...restProps } = config;\r\n\r\n\t\tconst handleClose = () => {\r\n\t\t\tonClose?.();\r\n\t\t\tunMount?.();\r\n\t\t};\r\n\r\n\t\tconst unMount = renderNode(\r\n\t\t\t<HookModal\r\n\t\t\t\tref={ref}\r\n\t\t\t\tvisible\r\n\t\t\t\tclassName='i-preview'\r\n\t\t\t\tcustomized\r\n\t\t\t\thideShadow\r\n\t\t\t\t{...modalProps}\r\n\t\t\t\tchildren={\r\n\t\t\t\t\t<Content\r\n\t\t\t\t\t\t{...restProps}\r\n\t\t\t\t\t\titems={items}\r\n\t\t\t\t\t\tonClose={() => {\r\n\t\t\t\t\t\t\tref.current?.update({ visible: false });\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\t\t\t\tfixed\r\n\t\t\t\tonClose={handleClose}\r\n\t\t\t/>\r\n\t\t);\r\n\t};\r\n\r\n\treturn preview;\r\n}\r\n"],"names":["_jsx"],"mappings":";;;;;;AAQc,SAAU,UAAU,GAAA;AACjC,IAAA,MAAM,GAAG,GAAG,MAAM,CAAe,IAAI,CAAC;AAEtC,IAAA,MAAM,OAAO,GAAG,CAAC,MAAgB,KAAI;AACpC,QAAA,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM;QAE3D,MAAM,WAAW,GAAG,MAAK;YACxB,OAAO,IAAI;YACX,OAAO,IAAI;AACZ,SAAC;AAED,QAAA,MAAM,OAAO,GAAG,UAAU,CACzBA,GAAA,CAAC,SAAS,EACT,EAAA,GAAG,EAAE,GAAG,EACR,OAAO,EAAA,IAAA,EACP,SAAS,EAAC,WAAW,EACrB,UAAU,EACV,IAAA,EAAA,UAAU,WACN,UAAU,EACd,QAAQ,EACPA,IAAC,OAAO,EAAA,EAAA,GACH,SAAS,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAK;oBACb,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBACvC,EAAA,CACA,EAEH,KAAK,EAAA,IAAA,EACL,OAAO,EAAE,WAAW,EACnB,CAAA,CACF;AACF,KAAC;AAED,IAAA,OAAO,OAAO;AACf;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderFile.js","sources":["../../../../packages/js/usePreview/renderFile.tsx"],"sourcesContent":["import Icon from \"@p/components/icon\";\nimport Video from \"@p/components/video\";\nimport { FeedOutlined } from \"@ricons/material\";\nimport { TFileType, TPreviewItem } from \"./type\";\n\nexport default function renderFile(props: TPreviewItem) {\n\tconst { name, suffix, type } = props;\n\n\tswitch (type) {\n\t\tcase TFileType.IMAGE:\n\t\t\treturn <img src={props.src} />;\n\t\tcase TFileType.VIDEO:\n\t\t\treturn <Video {...props} />;\n\t\tdefault:\n\t\t\treturn (\n\t\t\t\t<div className='i-preview-unknown'>\n\t\t\t\t\t<Icon icon={<FeedOutlined />} size='3em' />\n\t\t\t\t\t<h5 className='mt-4'>{name || suffix || \"?\"}</h5>\n\t\t\t\t</div>\n\t\t\t);\n\t}\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAKwB,SAAA,UAAU,CAAC,KAAmB,EAAA;IACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;IAEpC,QAAQ,IAAI;QACX,KAAK,SAAS,CAAC,KAAK;AACnB,YAAA,OAAOA,aAAK,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI;QAC/B,KAAK,SAAS,CAAC,KAAK;AACnB,YAAA,OAAOA,GAAC,CAAA,KAAK,EAAK,EAAA,GAAA,KAAK,GAAI;AAC5B,QAAA;AACC,YAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EACjC,QAAA,EAAA,CAAAD,GAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAEA,GAAC,CAAA,YAAY,KAAG,EAAE,IAAI,EAAC,KAAK,EAAG,CAAA,EAC3CA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,IAAI,IAAI,MAAM,IAAI,GAAG,EAAM,CAAA,CAAA,EAAA,CAC5C;;AAGV;;;;"}
1
+ {"version":3,"file":"renderFile.js","sources":["../../../../packages/js/usePreview/renderFile.tsx"],"sourcesContent":["import Icon from \"@p/components/icon\";\r\nimport Video from \"@p/components/video\";\r\nimport { FeedOutlined } from \"@ricons/material\";\r\nimport { TFileType, TPreviewItem } from \"./type\";\r\n\r\nexport default function renderFile(props: TPreviewItem) {\r\n\tconst { name, suffix, type } = props;\r\n\r\n\tswitch (type) {\r\n\t\tcase TFileType.IMAGE:\r\n\t\t\treturn <img src={props.src} />;\r\n\t\tcase TFileType.VIDEO:\r\n\t\t\treturn <Video {...props} />;\r\n\t\tdefault:\r\n\t\t\treturn (\r\n\t\t\t\t<div className='i-preview-unknown'>\r\n\t\t\t\t\t<Icon icon={<FeedOutlined />} size='3em' />\r\n\t\t\t\t\t<h5 className='mt-4'>{name || suffix || \"?\"}</h5>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t}\r\n}\r\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;AAKwB,SAAA,UAAU,CAAC,KAAmB,EAAA;IACrD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK;IAEpC,QAAQ,IAAI;QACX,KAAK,SAAS,CAAC,KAAK;AACnB,YAAA,OAAOA,aAAK,GAAG,EAAE,KAAK,CAAC,GAAG,GAAI;QAC/B,KAAK,SAAS,CAAC,KAAK;AACnB,YAAA,OAAOA,GAAC,CAAA,KAAK,EAAK,EAAA,GAAA,KAAK,GAAI;AAC5B,QAAA;AACC,YAAA,QACCC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EACjC,QAAA,EAAA,CAAAD,GAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAEA,GAAC,CAAA,YAAY,KAAG,EAAE,IAAI,EAAC,KAAK,EAAG,CAAA,EAC3CA,GAAI,CAAA,IAAA,EAAA,EAAA,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,IAAI,IAAI,MAAM,IAAI,GAAG,EAAM,CAAA,CAAA,EAAA,CAC5C;;AAGV;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"type.js","sources":["../../../../packages/js/usePreview/type.ts"],"sourcesContent":["import { CSSProperties, ReactNode } from \"react\";\nimport type { IModal } from \"../../components/modal/type\";\n\nexport type TPreviewItem = {\n\tsrc: string;\n\tname?: ReactNode;\n\tthumb?: string;\n\trotate?: number;\n\tzoom?: number;\n\tstyle?: CSSProperties;\n\ttype?: string;\n\tsuffix?: string;\n};\n\nexport enum TFileType {\n\tIMAGE = \"IMAGE\",\n\tVIDEO = \"VIDEO\",\n\tAUDIO = \"AUDIO\",\n\tPDF = \"PDF\",\n\tEXCEL = \"EXCEL\",\n\tTXT = \"TXT\",\n\tUNKNOWN = \"UNKNOWN\",\n}\n\nexport interface IPreview {\n\titems: (TPreviewItem | string)[];\n\tinitial?: number;\n\tcontrols?: boolean;\n\tloop?: boolean;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tmodalProps?: IModal;\n\trenderImage?: (file: TPreviewItem) => ReactNode;\n\trenderFile?: (file: TPreviewItem) => ReactNode;\n\tonClose?: () => void;\n\tonChange?: (after: number, before?: number) => void;\n\tonZoom?: (scale: number) => void;\n\tonRotate?: (deg: number) => void;\n}\n"],"names":[],"mappings":"IAcY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACpB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACpB,CAAC,EARW,SAAS,KAAT,SAAS,GAQpB,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"type.js","sources":["../../../../packages/js/usePreview/type.ts"],"sourcesContent":["import { CSSProperties, ReactNode } from \"react\";\r\nimport type { IModal } from \"../../components/modal/type\";\r\n\r\nexport type TPreviewItem = {\r\n\tsrc: string;\r\n\tname?: ReactNode;\r\n\tthumb?: string;\r\n\trotate?: number;\r\n\tzoom?: number;\r\n\tstyle?: CSSProperties;\r\n\ttype?: string;\r\n\tsuffix?: string;\r\n};\r\n\r\nexport enum TFileType {\r\n\tIMAGE = \"IMAGE\",\r\n\tVIDEO = \"VIDEO\",\r\n\tAUDIO = \"AUDIO\",\r\n\tPDF = \"PDF\",\r\n\tEXCEL = \"EXCEL\",\r\n\tTXT = \"TXT\",\r\n\tUNKNOWN = \"UNKNOWN\",\r\n}\r\n\r\nexport interface IPreview {\r\n\titems: (TPreviewItem | string)[];\r\n\tinitial?: number;\r\n\tcontrols?: boolean;\r\n\tloop?: boolean;\r\n\tclassName?: string;\r\n\tstyle?: CSSProperties;\r\n\tmodalProps?: IModal;\r\n\trenderImage?: (file: TPreviewItem) => ReactNode;\r\n\trenderFile?: (file: TPreviewItem) => ReactNode;\r\n\tonClose?: () => void;\r\n\tonChange?: (after: number, before?: number) => void;\r\n\tonZoom?: (scale: number) => void;\r\n\tonRotate?: (deg: number) => void;\r\n}\r\n"],"names":[],"mappings":"IAcY;AAAZ,CAAA,UAAY,SAAS,EAAA;AACpB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACpB,CAAC,EARW,SAAS,KAAT,SAAS,GAQpB,EAAA,CAAA,CAAA;;;;"}
@@ -20,12 +20,12 @@ function triggerRipple(target, e) {
20
20
  const [$box, $ripple] = createRipple();
21
21
  const rect = target.getBoundingClientRect();
22
22
  const size = Math.max(rect.width, rect.height) * 2;
23
- $ripple.style.cssText = `
24
- left: ${e.pageX - rect.left}px;
25
- top: ${e.pageY - rect.top}px;
26
- width: ${size}px;
27
- height: ${size}px;
28
- transition: all ${TIMEOUT / 1000}s;
23
+ $ripple.style.cssText = `
24
+ left: ${e.pageX - rect.left}px;
25
+ top: ${e.pageY - rect.top}px;
26
+ width: ${size}px;
27
+ height: ${size}px;
28
+ transition: all ${TIMEOUT / 1000}s;
29
29
  `;
30
30
  target.insertAdjacentElement("afterbegin", $box);
31
31
  target.offsetHeight;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\n\nconst TIMEOUT = 500;\n\nconst useRipple = () => {\n\tif (!document) return;\n\tif (document.documentElement.dataset[\"iocaRipple\"]) return;\n\tdocument.documentElement.dataset[\"iocaRipple\"] = \"enable\";\n\n\tdocument.addEventListener(\"mousedown\", listener);\n};\n\nfunction listener(e: MouseEvent) {\n\tconst target = e.target as HTMLElement;\n\tconst parent = target.closest(\"[data-ripple]\") as HTMLElement;\n\n\tif (!target || !parent) return;\n\n\ttriggerRipple(parent, e);\n}\n\nfunction triggerRipple(target: HTMLElement, e: MouseEvent) {\n\tif (!document) return;\n\tconst [$box, $ripple] = createRipple();\n\tconst rect = target.getBoundingClientRect();\n\tconst size = Math.max(rect.width, rect.height) * 2;\n\n\t$ripple.style.cssText = `\n left: ${e.pageX - rect.left}px;\n top: ${e.pageY - rect.top}px;\n width: ${size}px;\n height: ${size}px;\n transition: all ${TIMEOUT / 1000}s;\n `;\n\ttarget.insertAdjacentElement(\"afterbegin\", $box);\n\ttarget.offsetHeight;\n\t$ripple.classList.add(\"i-ripple-active\");\n\n\tsetTimeout(() => {\n\t\t$box.remove();\n\t}, TIMEOUT);\n}\n\nfunction createRipple() {\n\tconst $box = document.createElement(\"SPAN\");\n\tconst $ripple = document.createElement(\"SPAN\");\n\n\t$box.className = \"i-ripple-container\";\n\t$ripple.className = \"i-ripple\";\n\n\t$box.append($ripple);\n\n\treturn [$box, $ripple];\n}\n\nexport default useRipple;\n"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,GAAG;AAEb,MAAA,SAAS,GAAG,MAAK;AACtB,IAAA,IAAI,CAAC,QAAQ;QAAE;AACf,IAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE;IACpD,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,QAAQ;AAEzD,IAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC;AACjD;AAEA,SAAS,QAAQ,CAAC,CAAa,EAAA;AAC9B,IAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAgB;AAE7D,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE;AAExB,IAAA,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AACzB;AAEA,SAAS,aAAa,CAAC,MAAmB,EAAE,CAAa,EAAA;AACxD,IAAA,IAAI,CAAC,QAAQ;QAAE;IACf,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,EAAE;AACtC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAC3C,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAElD,IAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG;AACT,cAAA,EAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;AACpB,aAAA,EAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;iBAChB,IAAI,CAAA;kBACH,IAAI,CAAA;AACI,wBAAA,EAAA,OAAO,GAAG,IAAI,CAAA;KACnC;AACJ,IAAA,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAChD,MAAM,CAAC,YAAY;AACnB,IAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAExC,UAAU,CAAC,MAAK;QACf,IAAI,CAAC,MAAM,EAAE;KACb,EAAE,OAAO,CAAC;AACZ;AAEA,SAAS,YAAY,GAAA;IACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAE9C,IAAA,IAAI,CAAC,SAAS,GAAG,oBAAoB;AACrC,IAAA,OAAO,CAAC,SAAS,GAAG,UAAU;AAE9B,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAEpB,IAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/js/useRipple/index.ts"],"sourcesContent":["import \"./ripple.css\";\r\n\r\nconst TIMEOUT = 500;\r\n\r\nconst useRipple = () => {\r\n\tif (!document) return;\r\n\tif (document.documentElement.dataset[\"iocaRipple\"]) return;\r\n\tdocument.documentElement.dataset[\"iocaRipple\"] = \"enable\";\r\n\r\n\tdocument.addEventListener(\"mousedown\", listener);\r\n};\r\n\r\nfunction listener(e: MouseEvent) {\r\n\tconst target = e.target as HTMLElement;\r\n\tconst parent = target.closest(\"[data-ripple]\") as HTMLElement;\r\n\r\n\tif (!target || !parent) return;\r\n\r\n\ttriggerRipple(parent, e);\r\n}\r\n\r\nfunction triggerRipple(target: HTMLElement, e: MouseEvent) {\r\n\tif (!document) return;\r\n\tconst [$box, $ripple] = createRipple();\r\n\tconst rect = target.getBoundingClientRect();\r\n\tconst size = Math.max(rect.width, rect.height) * 2;\r\n\r\n\t$ripple.style.cssText = `\r\n left: ${e.pageX - rect.left}px;\r\n top: ${e.pageY - rect.top}px;\r\n width: ${size}px;\r\n height: ${size}px;\r\n transition: all ${TIMEOUT / 1000}s;\r\n `;\r\n\ttarget.insertAdjacentElement(\"afterbegin\", $box);\r\n\ttarget.offsetHeight;\r\n\t$ripple.classList.add(\"i-ripple-active\");\r\n\r\n\tsetTimeout(() => {\r\n\t\t$box.remove();\r\n\t}, TIMEOUT);\r\n}\r\n\r\nfunction createRipple() {\r\n\tconst $box = document.createElement(\"SPAN\");\r\n\tconst $ripple = document.createElement(\"SPAN\");\r\n\r\n\t$box.className = \"i-ripple-container\";\r\n\t$ripple.className = \"i-ripple\";\r\n\r\n\t$box.append($ripple);\r\n\r\n\treturn [$box, $ripple];\r\n}\r\n\r\nexport default useRipple;\r\n"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,GAAG;AAEb,MAAA,SAAS,GAAG,MAAK;AACtB,IAAA,IAAI,CAAC,QAAQ;QAAE;AACf,IAAA,IAAI,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE;IACpD,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,QAAQ;AAEzD,IAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC;AACjD;AAEA,SAAS,QAAQ,CAAC,CAAa,EAAA;AAC9B,IAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB;IACtC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAgB;AAE7D,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;QAAE;AAExB,IAAA,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;AACzB;AAEA,SAAS,aAAa,CAAC,MAAmB,EAAE,CAAa,EAAA;AACxD,IAAA,IAAI,CAAC,QAAQ;QAAE;IACf,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,YAAY,EAAE;AACtC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE;AAC3C,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAElD,IAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAA;AACT,cAAA,EAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAA;AACpB,aAAA,EAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAA;iBAChB,IAAI,CAAA;kBACH,IAAI,CAAA;AACI,wBAAA,EAAA,OAAO,GAAG,IAAI,CAAA;KACnC;AACJ,IAAA,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC;IAChD,MAAM,CAAC,YAAY;AACnB,IAAA,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAExC,UAAU,CAAC,MAAK;QACf,IAAI,CAAC,MAAM,EAAE;KACb,EAAE,OAAO,CAAC;AACZ;AAEA,SAAS,YAAY,GAAA;IACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAE9C,IAAA,IAAI,CAAC,SAAS,GAAG,oBAAoB;AACrC,IAAA,OAAO,CAAC,SAAS,GAAG,UAAU;AAE9B,IAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAEpB,IAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../packages/js/useTheme/index.ts"],"sourcesContent":["import { useLocalStorageState } from \"ahooks\";\nimport { useEffect } from \"react\";\nimport { ITheme } from \"./type\";\n\nconst useTheme = (props?: ITheme) => {\n\tconst {\n\t\tkey = \"ioca-react-theme\",\n\t\tdefaultValue,\n\t\tlistenStorageChange,\n\t} = props ?? {};\n\tconst [theme, setTheme] = useLocalStorageState<string>(key, {\n\t\tdefaultValue: defaultValue ?? \"\",\n\t\tlistenStorageChange,\n\t});\n\n\tuseEffect(() => {\n\t\tconst cls = document.documentElement.classList;\n\t\tconst cns = Array.from(cls);\n\t\tconst pre = cns.find((n) => n.startsWith(\"theme-\")) ?? \"\";\n\n\t\tif (pre) {\n\t\t\tcls.replace(pre, theme || \"theme-auto\");\n\t\t\treturn;\n\t\t}\n\n\t\ttheme && cls.add(theme);\n\t}, [theme]);\n\n\treturn {\n\t\ttheme,\n\t\tsetTheme,\n\t};\n};\n\nexport default useTheme;\n"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,GAAG,CAAC,KAAc,KAAI;AACnC,IAAA,MAAM,EACL,GAAG,GAAG,kBAAkB,EACxB,YAAY,EACZ,mBAAmB,GACnB,GAAG,KAAK,IAAI,EAAE;IACf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAS,GAAG,EAAE;QAC3D,YAAY,EAAE,YAAY,IAAI,EAAE;QAChC,mBAAmB;AACnB,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;QAEzD,IAAI,GAAG,EAAE;YACR,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC;YACvC;;AAGD,QAAA,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,OAAO;QACN,KAAK;QACL,QAAQ;KACR;AACF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/js/useTheme/index.ts"],"sourcesContent":["import { useLocalStorageState } from \"ahooks\";\r\nimport { useEffect } from \"react\";\r\nimport { ITheme } from \"./type\";\r\n\r\nconst useTheme = (props?: ITheme) => {\r\n\tconst {\r\n\t\tkey = \"ioca-react-theme\",\r\n\t\tdefaultValue,\r\n\t\tlistenStorageChange,\r\n\t} = props ?? {};\r\n\tconst [theme, setTheme] = useLocalStorageState<string>(key, {\r\n\t\tdefaultValue: defaultValue ?? \"\",\r\n\t\tlistenStorageChange,\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tconst cls = document.documentElement.classList;\r\n\t\tconst cns = Array.from(cls);\r\n\t\tconst pre = cns.find((n) => n.startsWith(\"theme-\")) ?? \"\";\r\n\r\n\t\tif (pre) {\r\n\t\t\tcls.replace(pre, theme || \"theme-auto\");\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttheme && cls.add(theme);\r\n\t}, [theme]);\r\n\r\n\treturn {\r\n\t\ttheme,\r\n\t\tsetTheme,\r\n\t};\r\n};\r\n\r\nexport default useTheme;\r\n"],"names":[],"mappings":";;;AAIA,MAAM,QAAQ,GAAG,CAAC,KAAc,KAAI;AACnC,IAAA,MAAM,EACL,GAAG,GAAG,kBAAkB,EACxB,YAAY,EACZ,mBAAmB,GACnB,GAAG,KAAK,IAAI,EAAE;IACf,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAS,GAAG,EAAE;QAC3D,YAAY,EAAE,YAAY,IAAI,EAAE;QAChC,mBAAmB;AACnB,KAAA,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;QAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;QAEzD,IAAI,GAAG,EAAE;YACR,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,IAAI,YAAY,CAAC;YACvC;;AAGD,QAAA,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,OAAO;QACN,KAAK;QACL,QAAQ;KACR;AACF;;;;"}