@nocobase/app 2.1.0-alpha.16 → 2.1.0-alpha.17

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 (241) hide show
  1. package/client-v2/src/.plugins/index.ts +14 -3
  2. package/client-v2/src/.plugins/packageMap.json +129 -0
  3. package/client-v2/src/.plugins/packages/nocobase_example_plugin_acl_allow.ts +1 -0
  4. package/client-v2/src/.plugins/packages/nocobase_example_plugin_acl_middleware.ts +1 -0
  5. package/client-v2/src/.plugins/packages/nocobase_example_plugin_action_group.ts +1 -0
  6. package/client-v2/src/.plugins/packages/nocobase_example_plugin_block_custom_resource.ts +1 -0
  7. package/client-v2/src/.plugins/packages/nocobase_example_plugin_block_filter_collection.ts +1 -0
  8. package/client-v2/src/.plugins/packages/nocobase_example_plugin_block_timeline.ts +1 -0
  9. package/client-v2/src/.plugins/packages/nocobase_example_plugin_collection_block.ts +1 -0
  10. package/client-v2/src/.plugins/packages/nocobase_example_plugin_custom_details_block.ts +1 -0
  11. package/client-v2/src/.plugins/packages/nocobase_example_plugin_custom_form_block.ts +1 -0
  12. package/client-v2/src/.plugins/packages/nocobase_example_plugin_custom_table_block.ts +1 -0
  13. package/client-v2/src/.plugins/packages/nocobase_example_plugin_custom_table_block_action_group.ts +1 -0
  14. package/client-v2/src/.plugins/packages/nocobase_example_plugin_custom_table_block_field.ts +1 -0
  15. package/client-v2/src/.plugins/packages/nocobase_example_plugin_custom_table_block_resource.ts +1 -0
  16. package/client-v2/src/.plugins/packages/nocobase_example_plugin_data_block.ts +1 -0
  17. package/client-v2/src/.plugins/packages/nocobase_example_plugin_field_simple.ts +1 -0
  18. package/client-v2/src/.plugins/packages/nocobase_example_plugin_nested_action.ts +1 -0
  19. package/client-v2/src/.plugins/packages/nocobase_example_plugin_nested_block.ts +1 -0
  20. package/client-v2/src/.plugins/packages/nocobase_example_plugin_simple_action.ts +1 -0
  21. package/client-v2/src/.plugins/packages/nocobase_example_plugin_simple_block.ts +1 -0
  22. package/client-v2/src/.plugins/packages/nocobase_example_plugin_simple_popup_action.ts +1 -0
  23. package/client-v2/src/.plugins/packages/nocobase_plugin_acl.ts +1 -0
  24. package/client-v2/src/.plugins/packages/nocobase_plugin_action_bulk_edit.ts +1 -0
  25. package/client-v2/src/.plugins/packages/nocobase_plugin_action_bulk_update.ts +1 -0
  26. package/client-v2/src/.plugins/packages/nocobase_plugin_action_custom_request.ts +1 -0
  27. package/client-v2/src/.plugins/packages/nocobase_plugin_action_duplicate.ts +1 -0
  28. package/client-v2/src/.plugins/packages/nocobase_plugin_action_export.ts +1 -0
  29. package/client-v2/src/.plugins/packages/nocobase_plugin_action_import.ts +1 -0
  30. package/client-v2/src/.plugins/packages/nocobase_plugin_action_print.ts +1 -0
  31. package/client-v2/src/.plugins/packages/nocobase_plugin_ai.ts +1 -0
  32. package/client-v2/src/.plugins/packages/nocobase_plugin_ai_gigachat.ts +1 -0
  33. package/client-v2/src/.plugins/packages/nocobase_plugin_api_doc.ts +1 -0
  34. package/client-v2/src/.plugins/packages/nocobase_plugin_api_keys.ts +1 -0
  35. package/client-v2/src/.plugins/packages/nocobase_plugin_async_task_manager.ts +1 -0
  36. package/client-v2/src/.plugins/packages/nocobase_plugin_audit_logs.ts +1 -0
  37. package/client-v2/src/.plugins/packages/nocobase_plugin_auth.ts +1 -0
  38. package/client-v2/src/.plugins/packages/nocobase_plugin_auth_sms.ts +1 -0
  39. package/client-v2/src/.plugins/packages/nocobase_plugin_backup_restore.ts +1 -0
  40. package/client-v2/src/.plugins/packages/nocobase_plugin_block_grid_card.ts +1 -0
  41. package/client-v2/src/.plugins/packages/nocobase_plugin_block_iframe.ts +1 -0
  42. package/client-v2/src/.plugins/packages/nocobase_plugin_block_list.ts +1 -0
  43. package/client-v2/src/.plugins/packages/nocobase_plugin_block_markdown.ts +1 -0
  44. package/client-v2/src/.plugins/packages/nocobase_plugin_block_multi_step_form.ts +1 -0
  45. package/client-v2/src/.plugins/packages/nocobase_plugin_block_template.ts +1 -0
  46. package/client-v2/src/.plugins/packages/nocobase_plugin_block_tree.ts +1 -0
  47. package/client-v2/src/.plugins/packages/nocobase_plugin_block_workbench.ts +1 -0
  48. package/client-v2/src/.plugins/packages/nocobase_plugin_calendar.ts +1 -0
  49. package/client-v2/src/.plugins/packages/nocobase_plugin_charts.ts +1 -0
  50. package/client-v2/src/.plugins/packages/nocobase_plugin_client.ts +1 -0
  51. package/client-v2/src/.plugins/packages/nocobase_plugin_collection_fdw.ts +1 -0
  52. package/client-v2/src/.plugins/packages/nocobase_plugin_collection_sql.ts +1 -0
  53. package/client-v2/src/.plugins/packages/nocobase_plugin_collection_tree.ts +1 -0
  54. package/client-v2/src/.plugins/packages/nocobase_plugin_comments.ts +1 -0
  55. package/client-v2/src/.plugins/packages/nocobase_plugin_custom_variables.ts +1 -0
  56. package/client-v2/src/.plugins/packages/nocobase_plugin_data_source_main.ts +1 -0
  57. package/client-v2/src/.plugins/packages/nocobase_plugin_data_source_manager.ts +1 -0
  58. package/client-v2/src/.plugins/packages/nocobase_plugin_data_visualization.ts +1 -0
  59. package/client-v2/src/.plugins/packages/nocobase_plugin_data_visualization_echarts.ts +1 -0
  60. package/client-v2/src/.plugins/packages/nocobase_plugin_departments.ts +1 -0
  61. package/client-v2/src/.plugins/packages/nocobase_plugin_disable_pm_add.ts +1 -0
  62. package/client-v2/src/.plugins/packages/nocobase_plugin_embed.ts +1 -0
  63. package/client-v2/src/.plugins/packages/nocobase_plugin_environment_variables.ts +1 -0
  64. package/client-v2/src/.plugins/packages/nocobase_plugin_error_handler.ts +1 -0
  65. package/client-v2/src/.plugins/packages/nocobase_plugin_field_attachment_url.ts +1 -0
  66. package/client-v2/src/.plugins/packages/nocobase_plugin_field_china_region.ts +1 -0
  67. package/client-v2/src/.plugins/packages/nocobase_plugin_field_code.ts +1 -0
  68. package/client-v2/src/.plugins/packages/nocobase_plugin_field_formula.ts +1 -0
  69. package/client-v2/src/.plugins/packages/nocobase_plugin_field_m2m_array.ts +1 -0
  70. package/client-v2/src/.plugins/packages/nocobase_plugin_field_markdown_vditor.ts +1 -0
  71. package/client-v2/src/.plugins/packages/nocobase_plugin_field_sequence.ts +1 -0
  72. package/client-v2/src/.plugins/packages/nocobase_plugin_field_sort.ts +1 -0
  73. package/client-v2/src/.plugins/packages/nocobase_plugin_file_manager.ts +1 -0
  74. package/client-v2/src/.plugins/packages/nocobase_plugin_file_previewer_office.ts +1 -0
  75. package/client-v2/src/.plugins/packages/nocobase_plugin_flow_engine.ts +1 -0
  76. package/client-v2/src/.plugins/packages/nocobase_plugin_form_drafts.ts +1 -0
  77. package/client-v2/src/.plugins/packages/nocobase_plugin_gantt.ts +1 -0
  78. package/client-v2/src/.plugins/packages/nocobase_plugin_graph_collection_manager.ts +1 -0
  79. package/client-v2/src/.plugins/packages/nocobase_plugin_hello.ts +1 -0
  80. package/client-v2/src/.plugins/packages/nocobase_plugin_idp_oauth.ts +1 -0
  81. package/client-v2/src/.plugins/packages/nocobase_plugin_kanban.ts +1 -0
  82. package/client-v2/src/.plugins/packages/nocobase_plugin_license.ts +1 -0
  83. package/client-v2/src/.plugins/packages/nocobase_plugin_locale_tester.ts +1 -0
  84. package/client-v2/src/.plugins/packages/nocobase_plugin_localization.ts +1 -0
  85. package/client-v2/src/.plugins/packages/nocobase_plugin_logger.ts +1 -0
  86. package/client-v2/src/.plugins/packages/nocobase_plugin_map.ts +1 -0
  87. package/client-v2/src/.plugins/packages/nocobase_plugin_mcp_server.ts +1 -0
  88. package/client-v2/src/.plugins/packages/nocobase_plugin_mobile.ts +1 -0
  89. package/client-v2/src/.plugins/packages/nocobase_plugin_mobile_client.ts +1 -0
  90. package/client-v2/src/.plugins/packages/nocobase_plugin_mock_collections.ts +1 -0
  91. package/client-v2/src/.plugins/packages/nocobase_plugin_multi_app_manager.ts +1 -0
  92. package/client-v2/src/.plugins/packages/nocobase_plugin_multi_app_share_collection.ts +1 -0
  93. package/client-v2/src/.plugins/packages/nocobase_plugin_multi_keyword_filter.ts +1 -0
  94. package/client-v2/src/.plugins/packages/nocobase_plugin_notification_email.ts +1 -0
  95. package/client-v2/src/.plugins/packages/nocobase_plugin_notification_in_app_message.ts +1 -0
  96. package/client-v2/src/.plugins/packages/nocobase_plugin_notification_manager.ts +1 -0
  97. package/client-v2/src/.plugins/packages/nocobase_plugin_notifications.ts +1 -0
  98. package/client-v2/src/.plugins/packages/nocobase_plugin_public_forms.ts +1 -0
  99. package/client-v2/src/.plugins/packages/nocobase_plugin_snapshot_field.ts +1 -0
  100. package/client-v2/src/.plugins/packages/nocobase_plugin_system_settings.ts +1 -0
  101. package/client-v2/src/.plugins/packages/nocobase_plugin_text_copy.ts +1 -0
  102. package/client-v2/src/.plugins/packages/nocobase_plugin_theme_editor.ts +1 -0
  103. package/client-v2/src/.plugins/packages/nocobase_plugin_ui_schema_storage.ts +1 -0
  104. package/client-v2/src/.plugins/packages/nocobase_plugin_ui_templates.ts +1 -0
  105. package/client-v2/src/.plugins/packages/nocobase_plugin_user_data_sync.ts +1 -0
  106. package/client-v2/src/.plugins/packages/nocobase_plugin_users.ts +1 -0
  107. package/client-v2/src/.plugins/packages/nocobase_plugin_verification.ts +1 -0
  108. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow.ts +1 -0
  109. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_action_trigger.ts +1 -0
  110. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_aggregate.ts +1 -0
  111. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_cc.ts +1 -0
  112. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_custom_action_trigger.ts +1 -0
  113. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_date_calculation.ts +1 -0
  114. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_delay.ts +1 -0
  115. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_dynamic_calculation.ts +1 -0
  116. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_javascript.ts +1 -0
  117. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_json_query.ts +1 -0
  118. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_json_variable_mapping.ts +1 -0
  119. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_loop.ts +1 -0
  120. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_mailer.ts +1 -0
  121. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_manual.ts +1 -0
  122. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_notification.ts +1 -0
  123. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_parallel.ts +1 -0
  124. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_request.ts +1 -0
  125. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_request_interceptor.ts +1 -0
  126. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_response_message.ts +1 -0
  127. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_sql.ts +1 -0
  128. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_test.ts +1 -0
  129. package/client-v2/src/.plugins/packages/nocobase_plugin_workflow_variable.ts +1 -0
  130. package/dist/client/assets/{index-8e933cba.js → index-27c2e9bc.js} +84 -84
  131. package/dist/client/assets/{vendor-misc-4fd76bfe.js → vendor-misc-5f2d5dc4.js} +6 -6
  132. package/dist/client/index.html +1 -1
  133. package/dist/client/index.html.tpl +1 -1
  134. package/package.json +7 -6
  135. package/dist/client/v2/assets/1020-0212416d.js +0 -2
  136. package/dist/client/v2/assets/1020-0212416d.js.LICENSE.txt +0 -7
  137. package/dist/client/v2/assets/1222-49e8dadb.css +0 -1
  138. package/dist/client/v2/assets/1222-c8810ac8.js +0 -2
  139. package/dist/client/v2/assets/1222-c8810ac8.js.LICENSE.txt +0 -9
  140. package/dist/client/v2/assets/1310-21e5c8a8.js +0 -59
  141. package/dist/client/v2/assets/1331-9092cf22.js +0 -1
  142. package/dist/client/v2/assets/1425-a2b446a6.js +0 -42
  143. package/dist/client/v2/assets/1507-a673a0c0.js +0 -7
  144. package/dist/client/v2/assets/158-6a033567.js +0 -23
  145. package/dist/client/v2/assets/1676-5db7433e.js +0 -9
  146. package/dist/client/v2/assets/1725-6f5b8d53.js +0 -83
  147. package/dist/client/v2/assets/1786-8969223a.js +0 -16
  148. package/dist/client/v2/assets/1951-f63bc4b3.js +0 -55
  149. package/dist/client/v2/assets/2017-b35f125d.js +0 -26
  150. package/dist/client/v2/assets/212-59d29e60.js +0 -18
  151. package/dist/client/v2/assets/2131-a150fed4.js +0 -1
  152. package/dist/client/v2/assets/22-9d12a303.js +0 -1
  153. package/dist/client/v2/assets/2203-9aa79271.js +0 -4
  154. package/dist/client/v2/assets/2335-1d33c3cf.js +0 -22
  155. package/dist/client/v2/assets/2555-dee484a1.js +0 -31
  156. package/dist/client/v2/assets/2702-8d5ab2a8.js +0 -5
  157. package/dist/client/v2/assets/2710-93d67bf0.js +0 -36
  158. package/dist/client/v2/assets/2726-f6cc5db9.js +0 -23
  159. package/dist/client/v2/assets/2861-48106fd8.js +0 -3
  160. package/dist/client/v2/assets/2898-2a7d5793.js +0 -17
  161. package/dist/client/v2/assets/2958-5a85effa.js +0 -27
  162. package/dist/client/v2/assets/3018-fc630932.js +0 -3
  163. package/dist/client/v2/assets/3117-3d38bb4d.js +0 -33
  164. package/dist/client/v2/assets/3279-1f24fe26.js +0 -1
  165. package/dist/client/v2/assets/338-2f192edd.js +0 -3
  166. package/dist/client/v2/assets/3475-c42974e1.js +0 -1
  167. package/dist/client/v2/assets/3660-27f9c6c5.js +0 -6
  168. package/dist/client/v2/assets/3662-135bbea1.js +0 -28
  169. package/dist/client/v2/assets/3690-4a8bdf43.js +0 -12
  170. package/dist/client/v2/assets/3727-b74fc29b.js +0 -44
  171. package/dist/client/v2/assets/3916-ba5b43b5.js +0 -6
  172. package/dist/client/v2/assets/3937-af967d62.js +0 -3
  173. package/dist/client/v2/assets/3989-e72345bb.js +0 -27
  174. package/dist/client/v2/assets/4222-29a8147d.js +0 -5
  175. package/dist/client/v2/assets/4313-9687f912.js +0 -28
  176. package/dist/client/v2/assets/5064-93d8e29e.js +0 -10
  177. package/dist/client/v2/assets/5501-a3b5b97f.js +0 -17
  178. package/dist/client/v2/assets/5721-f00ddbf2.js +0 -18
  179. package/dist/client/v2/assets/5759-d5b1d946.js +0 -47
  180. package/dist/client/v2/assets/5761-8ab1974d.js +0 -28
  181. package/dist/client/v2/assets/6064-1517304e.js +0 -2
  182. package/dist/client/v2/assets/6064-1517304e.js.LICENSE.txt +0 -236
  183. package/dist/client/v2/assets/6269-35e90156.js +0 -1
  184. package/dist/client/v2/assets/6373-9d047c6b.js +0 -13
  185. package/dist/client/v2/assets/6437-2f91d29a.js +0 -12
  186. package/dist/client/v2/assets/6581-51c928bf.js +0 -21
  187. package/dist/client/v2/assets/6738-eb09fa59.js +0 -20
  188. package/dist/client/v2/assets/700-5f166286.js +0 -15
  189. package/dist/client/v2/assets/7021-01608dc5.js +0 -45
  190. package/dist/client/v2/assets/7201-8e6e91a3.js +0 -14
  191. package/dist/client/v2/assets/7211-b8c71ed2.js +0 -9
  192. package/dist/client/v2/assets/7492-5c593f52.js +0 -5
  193. package/dist/client/v2/assets/754-41b763b9.js +0 -17
  194. package/dist/client/v2/assets/7761-637067c6.js +0 -123
  195. package/dist/client/v2/assets/7876-673cbc3c.js +0 -6
  196. package/dist/client/v2/assets/7946-09b77e08.js +0 -13
  197. package/dist/client/v2/assets/7959-ab57fce2.js +0 -40
  198. package/dist/client/v2/assets/8138-704104a5.js +0 -24
  199. package/dist/client/v2/assets/8262-7a324b59.js +0 -9
  200. package/dist/client/v2/assets/8434-79232eec.js +0 -25
  201. package/dist/client/v2/assets/8438-9d210970.js +0 -37
  202. package/dist/client/v2/assets/8562-215edc37.js +0 -17
  203. package/dist/client/v2/assets/9811-52d18c3d.js +0 -1
  204. package/dist/client/v2/assets/9827-d1f02095.js +0 -9
  205. package/dist/client/v2/assets/9836-288424d8.js +0 -22
  206. package/dist/client/v2/assets/index-e2c0ebd2.js +0 -261
  207. package/dist/client/v2/assets/index-e2c0ebd2.js.LICENSE.txt +0 -1
  208. package/dist/client/v2/assets/runtime-6f58b646.js +0 -1
  209. package/dist/client/v2/assets/vendor-antd-05d1c710.js +0 -451
  210. package/dist/client/v2/assets/vendor-antd-ecosystem-1ffc870c.js +0 -2
  211. package/dist/client/v2/assets/vendor-antd-ecosystem-1ffc870c.js.LICENSE.txt +0 -1
  212. package/dist/client/v2/assets/vendor-antd-icons-db04cf76.js +0 -2
  213. package/dist/client/v2/assets/vendor-antd-icons-db04cf76.js.LICENSE.txt +0 -1621
  214. package/dist/client/v2/assets/vendor-lodash-831bd1b8.js +0 -2
  215. package/dist/client/v2/assets/vendor-lodash-831bd1b8.js.LICENSE.txt +0 -8
  216. package/dist/client/v2/assets/vendor-moment-84b317dc.js +0 -2
  217. package/dist/client/v2/assets/vendor-moment-84b317dc.js.LICENSE.txt +0 -631
  218. package/dist/client/v2/assets/vendor-ses-b7bccbcd.js +0 -23
  219. package/dist/client/v2/browser-checker.js +0 -186
  220. package/dist/client/v2/favicon/favicon.ico +0 -0
  221. package/dist/client/v2/file-placeholder/ai-200-200.png +0 -0
  222. package/dist/client/v2/file-placeholder/audio-200-200.png +0 -0
  223. package/dist/client/v2/file-placeholder/docx-200-200.png +0 -0
  224. package/dist/client/v2/file-placeholder/eps-200-200.png +0 -0
  225. package/dist/client/v2/file-placeholder/gif-200-200.png +0 -0
  226. package/dist/client/v2/file-placeholder/jpeg-200-200.png +0 -0
  227. package/dist/client/v2/file-placeholder/pdf-200-200.png +0 -0
  228. package/dist/client/v2/file-placeholder/png-200-200.png +0 -0
  229. package/dist/client/v2/file-placeholder/pptx-200-200.png +0 -0
  230. package/dist/client/v2/file-placeholder/psd-200-200.png +0 -0
  231. package/dist/client/v2/file-placeholder/svg-200-200.png +0 -0
  232. package/dist/client/v2/file-placeholder/unknown-200-200.png +0 -0
  233. package/dist/client/v2/file-placeholder/video-200-200.png +0 -0
  234. package/dist/client/v2/file-placeholder/xlsx-200-200.png +0 -0
  235. package/dist/client/v2/file-placeholder/zip-200-200.png +0 -0
  236. package/dist/client/v2/global.css +0 -63
  237. package/dist/client/v2/index.html +0 -19
  238. package/dist/client/v2/nocobase.png +0 -0
  239. package/dist/client/v2/robots.txt +0 -2
  240. /package/dist/client/assets/{index-8e933cba.js.LICENSE.txt → index-27c2e9bc.js.LICENSE.txt} +0 -0
  241. /package/dist/client/assets/{vendor-misc-4fd76bfe.js.LICENSE.txt → vendor-misc-5f2d5dc4.js.LICENSE.txt} +0 -0
@@ -1,83 +0,0 @@
1
- export const __rspack_esm_id="1725";export const __rspack_esm_ids=["1725"];export const __webpack_modules__={79271(e,t,o){o.r(t),o.d(t,{JSBlockRunJSContext:()=>r});var n=o(29007);class r extends n.uk{}r.define({label:"RunJS context",properties:{element:{description:`ElementProxy instance providing a safe DOM container.
2
- Supports innerHTML, append, and other DOM manipulation methods.
3
- Use this to render content in the JS block.`,detail:"ElementProxy",properties:{innerHTML:"Set or read the HTML content of the container element."}},record:`Current record data object (read-only).
4
- Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
6
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),r.define({label:"RunJS 上下文",properties:{element:{description:"ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等",detail:"ElementProxy",properties:{innerHTML:"读取或设置容器的 HTML 内容"}},record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})},40812(e,t,o){o.r(t),o.d(t,{default:()=>n});let n={contexts:[o(79271).JSBlockRunJSContext],prefix:"sn-jsb-vue",label:"Embed Vue component",description:"Use ctx.importAsync to load Vue 3 ESM build and render a reactive widget",locales:{"zh-CN":{label:"嵌入 Vue 组件",description:"通过 ctx.importAsync 加载 Vue 3 ESM 构建并渲染交互组件"}},content:`
7
- const mountNode = document.createElement('div');
8
- mountNode.style.padding = '16px';
9
- mountNode.style.background = '#fff';
10
- mountNode.style.borderRadius = '8px';
11
- const target = document.createElement('div');
12
- target.className = 'nb-vue-counter';
13
- mountNode.appendChild(target);
14
- ctx.render(mountNode);
15
-
16
- async function bootstrap() {
17
- const mod = await ctx.importAsync('vue@3.4.27/dist/vue.runtime.esm-browser.js');
18
- const createApp = mod?.createApp;
19
- const ref = mod?.ref;
20
- const h = mod?.h;
21
- if (typeof createApp !== 'function' || typeof ref !== 'function' || typeof h !== 'function') {
22
- throw new Error('Vue ESM module not available');
23
- }
24
-
25
- const Counter = {
26
- setup() {
27
- const count = ref(0);
28
- const increase = () => {
29
- count.value += 1;
30
- };
31
- const openPopup = async () => {
32
- const popupUid = ctx.model?.uid ? ctx.model.uid + '-popup' : 'vue-popup';
33
- await ctx.openView(popupUid, {
34
- mode: 'drawer',
35
- title: ctx.t('Hello from Vue'),
36
- params: {
37
- fromVue: true,
38
- triggerCount: count.value,
39
- },
40
- });
41
- };
42
- return () =>
43
- h(
44
- 'div',
45
- { style: 'display:flex;align-items:center;gap:12px;' },
46
- [
47
- h(
48
- 'button',
49
- {
50
- style:
51
- 'padding:6px 12px;border:1px solid #fa8c16;background:#fa8c16;color:#fff;border-radius:4px;cursor:pointer;',
52
- onClick: increase,
53
- },
54
- ctx.t('Increase'),
55
- ),
56
- h(
57
- 'button',
58
- {
59
- style:
60
- 'padding:6px 12px;border:1px solid #1677ff;background:#1677ff;color:#fff;border-radius:4px;cursor:pointer;',
61
- onClick: openPopup,
62
- },
63
- ctx.t('Open popup'),
64
- ),
65
- h(
66
- 'span',
67
- null,
68
- ctx.t('Current count') + ': ' + count.value,
69
- ),
70
- ],
71
- );
72
- },
73
- };
74
-
75
- const app = createApp(Counter);
76
- app.mount(target);
77
- }
78
-
79
- bootstrap().catch((error) => {
80
- console.error('[RunJS] failed to mount Vue counter', error);
81
- mountNode.innerHTML = '<div style="color:#c00;">' + (error?.message || ctx.t('Vue initialization failed')) + '</div>';
82
- });
83
- `}}};
@@ -1,16 +0,0 @@
1
- export const __rspack_esm_id="1786";export const __rspack_esm_ids=["1786"];export const __webpack_modules__={25831(e,t,o){o.r(t),o.d(t,{FormJSFieldItemRunJSContext:()=>r});var n=o(29007);class r extends n.uk{}r.define({label:"FormJSFieldItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form field rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,value:"Current field value (read-only in display mode; in controlled scenarios, use setProps to modify).",record:`Current record data object (read-only).
3
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form field container DOM element to be ready before executing callback.
4
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`,setProps:`Set form field properties programmatically.
5
- Parameters: (fieldModel: any, props: { value?: any, disabled?: boolean, visible?: boolean }) => void
6
- Example: ctx.setProps(fieldModel, { value: "new value" })`}}),r.define({label:"表单 JS 字段项 RunJS 上下文",properties:{element:"ElementProxy,表单字段容器",value:"字段值(展示模式为只读;受控场景用 setProps 修改)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪回调",setProps:"设置表单项属性:`setProps(fieldModel, { value })`(由联动/表单上下文提供)"}},{locale:"zh-CN"})},98542(e,t,o){o.r(t),o.d(t,{JSFieldRunJSContext:()=>r});var n=o(29007);class r extends n.uk{}r.define({label:"JSField RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for field rendering.
7
- Supports innerHTML, append, and other DOM manipulation methods.`,value:`Current value of the field (read-only).
8
- Contains the data value stored in this field.`,record:`Current record data object (read-only).
9
- Contains all field values of the parent record.`,collection:`Collection definition metadata (read-only).
10
- Provides schema information about the collection this field belongs to.`},methods:{onRefReady:`Wait for field container DOM element to be ready before executing callback.
11
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
12
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = ctx.value })`}}),r.define({label:"JS 字段 RunJS 上下文",properties:{element:"ElementProxy,字段渲染容器,支持 innerHTML/append 等 DOM 操作",value:"字段当前值(只读)",record:"当前记录对象(只读,包含父记录全部字段值)",collection:"集合定义元数据(只读,描述字段所属集合的 Schema)"},methods:{onRefReady:"在字段容器 DOM 就绪后执行回调。参数:(ref, callback, timeout?);示例:ctx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})},84529(e,t,o){o.r(t),o.d(t,{default:()=>a});var n=o(98542),r=o(25831);let a={contexts:[n.JSFieldRunJSContext,r.FormJSFieldItemRunJSContext],prefix:"sn-jsf-num",label:"Display number field as localized number",description:"Format numeric values with locale-aware separators before rendering",locales:{"zh-CN":{label:"将数字字段显示为本地化格式",description:"按本地化格式输出数值"}},content:`
13
- // Format number using locale
14
- const n = Number(ctx.value ?? 0);
15
- ctx.render(String(Number.isFinite(n) ? n.toLocaleString() : ctx.value ?? ''));
16
- `}}};
@@ -1,55 +0,0 @@
1
- export const __rspack_esm_id="1951";export const __rspack_esm_ids=["1951"];export const __webpack_modules__={79271(e,t,r){r.r(t),r.d(t,{JSBlockRunJSContext:()=>n});var a=r(29007);class n extends a.uk{}n.define({label:"RunJS context",properties:{element:{description:`ElementProxy instance providing a safe DOM container.
2
- Supports innerHTML, append, and other DOM manipulation methods.
3
- Use this to render content in the JS block.`,detail:"ElementProxy",properties:{innerHTML:"Set or read the HTML content of the container element."}},record:`Current record data object (read-only).
4
- Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
6
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),n.define({label:"RunJS 上下文",properties:{element:{description:"ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等",detail:"ElementProxy",properties:{innerHTML:"读取或设置容器的 HTML 内容"}},record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})},47890(e,t,r){r.r(t),r.d(t,{default:()=>a});let a={contexts:[r(79271).JSBlockRunJSContext],prefix:"sn-jsb-stats",label:"Render statistics cards",description:"Display multiple statistic cards with numbers from API",locales:{"zh-CN":{label:"渲染统计卡片",description:"显示多个统计数字卡片(从 API 获取数据)"}},content:`
7
- const { Card, Statistic, Row, Col } = ctx.libs.antd;
8
-
9
- const res = await ctx.request({
10
- url: 'users:list',
11
- method: 'get',
12
- params: {
13
- pageSize: 100,
14
- appends: ['roles'],
15
- },
16
- });
17
-
18
- const users = res?.data?.data || [];
19
-
20
- const total = users.length;
21
- const adminCount = users.filter((user) =>
22
- Array.isArray(user?.roles) && user.roles.some((role) => role?.name === 'admin')
23
- ).length;
24
- const withEmail = users.filter((user) => !!user?.email).length;
25
- const distinctRoles = new Set(
26
- users
27
- .flatMap((user) => (Array.isArray(user?.roles) ? user.roles.map((role) => role?.name) : []))
28
- .filter(Boolean),
29
- ).size;
30
-
31
- ctx.render(
32
- <Row gutter={16}>
33
- <Col span={6}>
34
- <Card>
35
- <Statistic title={ctx.t('Total users')} value={total} valueStyle={{ color: '#3f8600' }} />
36
- </Card>
37
- </Col>
38
- <Col span={6}>
39
- <Card>
40
- <Statistic title={ctx.t('Administrators')} value={adminCount} valueStyle={{ color: '#1890ff' }} />
41
- </Card>
42
- </Col>
43
- <Col span={6}>
44
- <Card>
45
- <Statistic title={ctx.t('Users with email')} value={withEmail} valueStyle={{ color: '#faad14' }} />
46
- </Card>
47
- </Col>
48
- <Col span={6}>
49
- <Card>
50
- <Statistic title={ctx.t('Distinct roles')} value={distinctRoles} valueStyle={{ color: '#cf1322' }} />
51
- </Card>
52
- </Col>
53
- </Row>
54
- );
55
- `}}};
@@ -1,26 +0,0 @@
1
- export const __rspack_esm_id="2017";export const __rspack_esm_ids=["2017"];export const __webpack_modules__={32221(e,t,o){o.r(t),o.d(t,{JSItemRunJSContext:()=>s});var n=o(29007);class s extends n.uk{}s.define({label:"JSItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form item rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,resource:`Current resource instance (read-only).
3
- Provides access to the data resource associated with the current form context.`,record:`Current record data object (read-only).
4
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form item container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`}}),s.define({label:"JS 表单项 RunJS 上下文",properties:{element:"ElementProxy,表单项渲染容器,支持 innerHTML/append 等 DOM 操作",resource:"当前资源(只读)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪后执行回调。参数:(ref, callback, timeout?)"}},{locale:"zh-CN"})},57768(e,t,o){o.r(t),o.d(t,{default:()=>n});let n={contexts:[o(32221).JSItemRunJSContext],prefix:"sn-link-show-hide",label:"Show/hide fields based on condition",description:"Toggle multiple fields visibility based on a condition",locales:{"zh-CN":{label:"条件显示/隐藏字段",description:"根据条件批量显示或隐藏多个字段"}},content:`
6
- // Show payment fields only when paymentMethod is 'online'
7
- const paymentMethod = ctx.record?.paymentMethod;
8
- const showPaymentFields = paymentMethod === 'online';
9
-
10
- const items = ctx.model?.subModels?.grid?.subModels?.items;
11
- const candidates = Array.isArray(items) ? items : Array.from(items?.values?.() || items || []);
12
-
13
- // Fields to toggle
14
- const fieldNames = ['creditCard', 'expiryDate', 'cvv'];
15
-
16
- fieldNames.forEach((fieldName) => {
17
- const field = candidates.find((item) => item?.props?.name === fieldName);
18
- if (field) {
19
- field.setProps({
20
- display: showPaymentFields ? 'visible' : 'hidden',
21
- // Also clear values when hiding
22
- value: showPaymentFields ? field.props.value : undefined,
23
- });
24
- }
25
- });
26
- `}}};
@@ -1,18 +0,0 @@
1
- export const __rspack_esm_id="212";export const __rspack_esm_ids=["212"];export const __webpack_modules__={79271(e,t,n){n.r(t),n.d(t,{JSBlockRunJSContext:()=>a});var r=n(29007);class a extends r.uk{}a.define({label:"RunJS context",properties:{element:{description:`ElementProxy instance providing a safe DOM container.
2
- Supports innerHTML, append, and other DOM manipulation methods.
3
- Use this to render content in the JS block.`,detail:"ElementProxy",properties:{innerHTML:"Set or read the HTML content of the container element."}},record:`Current record data object (read-only).
4
- Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
6
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),a.define({label:"RunJS 上下文",properties:{element:{description:"ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等",detail:"ElementProxy",properties:{innerHTML:"读取或设置容器的 HTML 内容"}},record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})},97487(e,t,n){n.r(t),n.d(t,{default:()=>r});let r={contexts:[n(79271).JSBlockRunJSContext],prefix:"sn-jsb-click",label:"Add click listener",description:"Render a button and bind a click event handler",locales:{"zh-CN":{label:"添加点击监听",description:"渲染按钮并绑定点击事件处理"}},content:`
7
- // Render a button and bind a click handler
8
- const button = document.createElement('button');
9
- button.textContent = ctx.t('Click me');
10
- button.style.padding = '6px 12px';
11
- button.addEventListener('click', () => ctx.message.success(ctx.t('Clicked!')));
12
-
13
- const wrapper = document.createElement('div');
14
- wrapper.style.padding = '12px';
15
- wrapper.appendChild(button);
16
-
17
- ctx.render(wrapper);
18
- `}}};
@@ -1 +0,0 @@
1
- export const __rspack_esm_id="2131";export const __rspack_esm_ids=["2131"];export const __webpack_modules__={71894(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"AddOutline-AddOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"AddOutline-add"},i.createElement("rect",{id:"AddOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M25.1,6.5 C25.3209139,6.5 25.5,6.6790861 25.5,6.9 L25.5,22.5 L41.1,22.5 C41.3209139,22.5 41.5,22.6790861 41.5,22.9 L41.5,25.1 C41.5,25.3209139 41.3209139,25.5 41.1,25.5 L25.5,25.5 L25.5,41.1 C25.5,41.3209139 25.3209139,41.5 25.1,41.5 L22.9,41.5 C22.6790861,41.5 22.5,41.3209139 22.5,41.1 L22.5,25.5 L6.9,25.5 C6.6790861,25.5 6.5,25.3209139 6.5,25.1 L6.5,22.9 C6.5,22.6790861 6.6790861,22.5 6.9,22.5 L22.5,22.5 L22.5,6.9 C22.5,6.6790861 22.6790861,6.5 22.9,6.5 L25.1,6.5 Z",id:"AddOutline-路径",fill:"currentColor",fillRule:"nonzero"}))))}},89384(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"CheckCircleFill-CheckCircleFill",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"CheckCircleFill-编组"},i.createElement("rect",{id:"CheckCircleFill-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M24,2 C36.1502645,2 46,11.8497355 46,24 C46,36.1502645 36.1502645,46 24,46 C11.8497355,46 2,36.1502645 2,24 C2,11.8497355 11.8497355,2 24,2 Z M35.8202936,17 L32.7086692,17 C32.6025922,17 32.500859,17.0421352 32.4258461,17.1171378 L32.4258461,17.1171378 L21.3922352,28.1492247 L16.3591562,23.1163755 C16.2841422,23.0413649 16.1824034,22.9992247 16.0763199,22.9992247 L16.0763199,22.9992247 L12.9653996,22.9992247 C12.859342,22.9992247 12.7576259,23.0413445 12.6826161,23.1163228 C12.5263737,23.2724998 12.5263207,23.5257658 12.6824977,23.6820082 C12.8583452,23.8579294 13.0341927,24.0338505 13.2100402,24.2097716 C13.2577488,24.2575002 13.3065097,24.3063074 13.3562592,24.3561283 L13.6661084,24.6666997 C14.3074913,25.3100963 15.0728595,26.0807873 15.8520136,26.8666654 L16.4372421,27.4571699 C18.2552812,29.2922548 19.9983838,31.0574343 20.2666114,31.3285298 L20.301004,31.3632341 C20.8867904,31.9490205 21.8365379,31.9490205 22.4223243,31.3632341 L22.4223243,31.3632341 L36.1031319,17.6828471 C36.1781492,17.6078322 36.2202936,17.5060887 36.2202936,17.4 C36.2202936,17.1790861 36.0412075,17 35.8202936,17 L35.8202936,17 Z",id:"CheckCircleFill-形状结合",fill:"currentColor",fillRule:"nonzero"}))))}},12487(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"CheckOutline-CheckOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"CheckOutline-编组"},i.createElement("rect",{id:"CheckOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M44.309608,12.6841286 L21.2180499,35.5661955 L21.2180499,35.5661955 C20.6343343,36.1446015 19.6879443,36.1446015 19.1042286,35.5661955 C19.0538201,35.5162456 19.0077648,35.4636155 18.9660627,35.4087682 C18.9113105,35.368106 18.8584669,35.3226694 18.808302,35.2729607 L3.6903839,20.2920499 C3.53346476,20.1365529 3.53231192,19.8832895 3.68780898,19.7263704 C3.7629255,19.6505669 3.86521855,19.6079227 3.97193622,19.6079227 L7.06238923,19.6079227 C7.16784214,19.6079227 7.26902895,19.6495648 7.34393561,19.7237896 L20.160443,32.4236157 L20.160443,32.4236157 L40.656066,12.115858 C40.7309719,12.0416387 40.8321549,12 40.9376034,12 L44.0280571,12 C44.248971,12 44.4280571,12.1790861 44.4280571,12.4 C44.4280571,12.5067183 44.3854124,12.609012 44.309608,12.6841286 Z",id:"CheckOutline-路径",fill:"currentColor",fillRule:"nonzero"}))))}},30750(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"ClockCircleFill-ClockCircleFill",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"ClockCircleFill-编组"},i.createElement("rect",{id:"ClockCircleFill-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M24,2 C36.1502645,2 46,11.8497355 46,24 C46,36.1502645 36.1502645,46 24,46 C11.8497355,46 2,36.1502645 2,24 C2,11.8497355 11.8497355,2 24,2 Z M24.6,14 L22.4,14 C22.1790861,14 22,14.1790861 22,14.4 L22,14.4 L22,23.1715729 L22.0065089,23.3850222 C22.0584325,24.2354066 22.4192395,25.0405598 23.0251263,25.6464466 L23.0251263,25.6464466 L31.1564971,33.7778175 C31.3127068,33.9340272 31.5659728,33.9340272 31.7221825,33.7778175 L31.7221825,33.7778175 L33.2778175,32.2221825 C33.4340272,32.0659728 33.4340272,31.8127068 33.2778175,31.6564971 L33.2778175,31.6564971 L25.1464466,23.5251263 L25.0952092,23.4650801 C25.0337142,23.38027 25,23.2776595 25,23.1715729 L25,23.1715729 L25,14.4 C25,14.1790861 24.8209139,14 24.6,14 L24.6,14 Z",id:"ClockCircleFill-形状结合",fill:"currentColor",fillRule:"nonzero"}))))}},39268(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"CloseCircleFill-CloseCircleFill",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"CloseCircleFill-编组"},i.createElement("rect",{id:"CloseCircleFill-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M24,2 C36.1502645,2 46,11.8497355 46,24 C46,36.1502645 36.1502645,46 24,46 C11.8497355,46 2,36.1502645 2,24 C2,11.8497355 11.8497355,2 24,2 Z M18.6753876,16 L15.5637812,16 C15.4576916,16 15.3559474,16.0421451 15.2809323,16.1171635 C15.124726,16.2733766 15.1247316,16.5266426 15.2809447,16.6828489 L15.2809447,16.6828489 L22.299066,23.7006641 L14.6828159,31.3171619 C14.6078042,31.3921761 14.5656632,31.4939157 14.5656632,31.6 C14.5656632,31.8209139 14.7447493,32 14.9656632,32 L14.9656632,32 L18.0753284,32 C18.1814068,32 18.2831412,31.9578638 18.3581544,31.8828594 L18.3581544,31.8828594 L24.420066,25.8216641 L30.4818451,31.8828564 C30.5568585,31.9578626 30.6585942,32 30.7646741,32 L30.7646741,32 L33.8763476,32 C33.9824309,32 34.0841695,31.9578599 34.1591835,31.8828496 C34.315397,31.7266436 34.3154031,31.4733776 34.1591972,31.3171641 L34.1591972,31.3171641 L26.542066,23.6996641 L33.5591874,16.6828489 C33.6342057,16.6078338 33.6763508,16.5060896 33.6763508,16.4 C33.6763508,16.1790861 33.4972647,16 33.2763508,16 L33.2763508,16 L30.1637654,16 C30.0576705,16 29.9559218,16.0421493 29.8809058,16.1171741 L29.8809058,16.1171741 L24.420066,21.5786641 L18.9582218,16.1171488 C18.883208,16.0421394 18.7814701,16 18.6753876,16 L18.6753876,16 Z",id:"CloseCircleFill-形状结合",fill:"currentColor",fillRule:"nonzero"}))))}},48547(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"CloseOutline-CloseOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"CloseOutline-编组"},i.createElement("rect",{id:"CloseOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M10.6085104,8.11754663 L24.1768397,21.8195031 L24.1768397,21.8195031 L37.7443031,8.1175556 C37.8194278,8.04168616 37.9217669,7.999 38.0285372,7.999 L41.1040268,7.999 C41.3249407,7.999 41.5040268,8.1780861 41.5040268,8.399 C41.5040268,8.50440471 41.4624226,8.60554929 41.3882578,8.68044752 L26.2773302,23.9408235 L26.2773302,23.9408235 L41.5021975,39.3175645 C41.65763,39.4745475 41.6563731,39.7278104 41.4993901,39.8832429 C41.4244929,39.9574004 41.3233534,39.999 41.2179546,39.999 L38.1434012,39.999 C38.0366291,39.999 37.9342885,39.9563124 37.8591634,39.8804408 L24.1768397,26.0621438 L24.1768397,26.0621438 L10.4936501,39.8804497 C10.4185257,39.9563159 10.3161889,39.999 10.2094212,39.999 L7.13584526,39.999 C6.91493136,39.999 6.73584526,39.8199139 6.73584526,39.599 C6.73584526,39.4936017 6.77744443,39.3924627 6.85160121,39.3175656 L22.0763492,23.9408235 L22.0763492,23.9408235 L6.96554081,8.68044639 C6.81010226,8.52346929 6.81134951,8.27020637 6.9683266,8.11476782 C7.04322474,8.04060377 7.14436883,7.999 7.24977299,7.999 L10.3242852,7.999 C10.4310511,7.999 10.5333863,8.04168267 10.6085104,8.11754663 Z",id:"CloseOutline-路径",fill:"currentColor",fillRule:"nonzero"}))))}},55576(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"DownFill-DownFill",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"DownFill-编组"},i.createElement("rect",{id:"DownFill-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M40.6640052,13 L7.34128264,13 C6.57572302,13 5.83336217,13.2619065 5.23947349,13.7351762 C3.80578911,14.8838891 3.58308085,16.9699517 4.74301968,18.3897608 L21.404381,38.7725222 C21.5528531,38.9517214 21.7152446,39.1171361 21.9008348,39.2641713 C23.3345192,40.4128842 25.4363283,40.1923313 26.6009069,38.7725222 L43.2576284,18.3897608 C43.740163,17.8016198 44,17.0664436 44,16.3082931 C44.004629,14.4795422 42.505988,13 40.6640052,13 Z",id:"DownFill-路径",fill:"currentColor",fillRule:"nonzero"}))))}},21983(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"DownOutline-DownOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",null,i.createElement("rect",{id:"DownOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M5.11219264,16.3947957 L22.6612572,34.5767382 L22.6612572,34.5767382 C23.2125856,35.1304785 24.0863155,35.1630514 24.6755735,34.6744571 L24.7825775,34.5767382 L42.8834676,16.3956061 C42.9580998,16.320643 43,16.2191697 43,16.1133896 L43,12.9866673 C43,12.7657534 42.8209139,12.5866673 42.6,12.5866673 C42.4936115,12.5866673 42.391606,12.6290496 42.316542,12.7044413 L23.7816937,31.3201933 L23.7816937,31.3201933 L5.6866816,12.7237117 C5.53262122,12.5653818 5.27937888,12.5619207 5.121049,12.7159811 C5.04365775,12.7912854 5,12.8946805 5,13.0026627 L5,16.1170064 C5,16.2206403 5.04022164,16.3202292 5.11219264,16.3947957 Z",id:"DownOutline-down",fill:"currentColor",fillRule:"nonzero"}))))}},38281(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"ExclamationCircleFill-ExclamationCircleFill",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",null,i.createElement("rect",{id:"ExclamationCircleFill-矩形",fill:"#D76060",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M24,2 C36.1502645,2 46,11.8497355 46,24 C46,36.1502645 36.1502645,46 24,46 C11.8497355,46 2,36.1502645 2,24 C2,11.8497355 11.8497355,2 24,2 Z M25.1,31 L22.9,31 C22.6790861,31 22.5,31.1790861 22.5,31.4 L22.5,31.4 L22.5,33.6 C22.5,33.8209139 22.6790861,34 22.9,34 L22.9,34 L25.1,34 C25.3209139,34 25.5,33.8209139 25.5,33.6 L25.5,33.6 L25.5,31.4 C25.5,31.1790861 25.3209139,31 25.1,31 L25.1,31 Z M25.1,14 L22.9,14 C22.6790861,14 22.5,14.1790861 22.5,14.4 L22.5,14.4 L22.5,27.6 C22.5,27.8209139 22.6790861,28 22.9,28 L22.9,28 L25.1,28 C25.3209139,28 25.5,27.8209139 25.5,27.6 L25.5,27.6 L25.5,14.4 C25.5,14.1790861 25.3209139,14 25.1,14 L25.1,14 Z",id:"ExclamationCircleFill-形状结合",fill:"currentColor",fillRule:"nonzero"}))))}},1734(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"InformationCircleFill-InformationCircleFill",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"InformationCircleFill-编组"},i.createElement("rect",{id:"InformationCircleFill-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M24,2 C36.1502645,2 46,11.8497355 46,24 C46,36.1502645 36.1502645,46 24,46 C11.8497355,46 2,36.1502645 2,24 C2,11.8497355 11.8497355,2 24,2 Z M25.6,20 L21.4,20 C21.1790861,20 21,20.1790861 21,20.4 L21,20.4 L21,22.6 C21,22.8209139 21.1790861,23 21.4,23 L21.4,23 L22.6,23 C22.8209139,23 23,23.1790861 23,23.4 L23,23.4 L23,34.6 C23,34.8209139 23.1790861,35 23.4,35 L23.4,35 L25.6,35 C25.8209139,35 26,34.8209139 26,34.6 L26,34.6 L26,20.4 C26,20.1790861 25.8209139,20 25.6,20 L25.6,20 Z M25.6,14 L23.4,14 C23.1790861,14 23,14.1790861 23,14.4 L23,14.4 L23,16.6 C23,16.8209139 23.1790861,17 23.4,17 L23.4,17 L25.6,17 C25.8209139,17 26,16.8209139 26,16.6 L26,16.6 L26,14.4 C26,14.1790861 25.8209139,14 25.6,14 L25.6,14 Z",id:"InformationCircleFill-形状结合",fill:"currentColor",fillRule:"nonzero"}))))}},71412(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"LeftOutline-LeftOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"LeftOutline-编组"},i.createElement("rect",{id:"LeftOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M31.7053818,5.11219264 L13.5234393,22.6612572 L13.5234393,22.6612572 C12.969699,23.2125856 12.9371261,24.0863155 13.4257204,24.6755735 L13.5234393,24.7825775 L31.7045714,42.8834676 C31.7795345,42.9580998 31.8810078,43 31.9867879,43 L35.1135102,43 C35.3344241,43 35.5135102,42.8209139 35.5135102,42.6 C35.5135102,42.4936115 35.4711279,42.391606 35.3957362,42.316542 L16.7799842,23.7816937 L16.7799842,23.7816937 L35.3764658,5.6866816 C35.5347957,5.53262122 35.5382568,5.27937888 35.3841964,5.121049 C35.3088921,5.04365775 35.205497,5 35.0975148,5 L31.9831711,5 C31.8795372,5 31.7799483,5.04022164 31.7053818,5.11219264 Z",id:"LeftOutline-路径",fill:"currentColor",fillRule:"nonzero"}))))}},56787(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"MinusOutline-MinusOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"MinusOutline-add"},i.createElement("rect",{id:"MinusOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M41.1,22.5 C41.3209139,22.5 41.5,22.6790861 41.5,22.9 L41.5,25.1 C41.5,25.3209139 41.3209139,25.5 41.1,25.5 L6.9,25.5 C6.6790861,25.5 6.5,25.3209139 6.5,25.1 L6.5,22.9 C6.5,22.6790861 6.6790861,22.5 6.9,22.5 L41.1,22.5 Z",id:"MinusOutline-路径",fill:"currentColor",fillRule:"nonzero"}))))}},84951(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"QuestionCircleOutline-QuestionCircleOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"QuestionCircleOutline-编组"},i.createElement("rect",{id:"QuestionCircleOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M24,2 C36.1502645,2 46,11.8497355 46,24 C46,36.1502645 36.1502645,46 24,46 C11.8497355,46 2,36.1502645 2,24 C2,11.8497355 11.8497355,2 24,2 Z M24,5 C13.5065898,5 5,13.5065898 5,24 C5,34.4934102 13.5065898,43 24,43 C34.4934102,43 43,34.4934102 43,24 C43,13.5065898 34.4934102,5 24,5 Z M26,32.4 L26,34.6 C26,34.8209139 25.8209139,35 25.6,35 L23.4,35 C23.1790861,35 23,34.8209139 23,34.6 L23,32.4 C23,32.1790861 23.1790861,32 23.4,32 L25.6,32 C25.8209139,32 26,32.1790861 26,32.4 Z M24,12 C27.8659932,12 31,15.1340068 31,19 C31,22.1706393 28.8919961,24.8489278 26.0010432,25.7098107 L26.0001268,28.6 C25.9999299,28.8208643 25.8208644,28.9998731 25.6,29 L23.4,29 C23.1790861,29 23,28.8209139 23,28.6 L23,23.4 C23,23.1790861 23.1790861,23 23.4,23 L24,23 L24,23 C26.209139,23 28,21.209139 28,19 C28,16.790861 26.209139,15 24,15 C21.790861,15 20,16.790861 20,19 L17,19 C17,15.1340068 20.1340068,12 24,12 Z",id:"QuestionCircleOutline-形状",fill:"currentColor",fillRule:"nonzero"}))))}},90757(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"RightOutline-RightOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"RightOutline-RightOutlined"},i.createElement("rect",{id:"RightOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M17.3947957,5.11219264 L35.5767382,22.6612572 L35.5767382,22.6612572 C36.1304785,23.2125856 36.1630514,24.0863155 35.6744571,24.6755735 L35.5767382,24.7825775 L17.3956061,42.8834676 C17.320643,42.9580998 17.2191697,43 17.1133896,43 L13.9866673,43 C13.7657534,43 13.5866673,42.8209139 13.5866673,42.6 C13.5866673,42.4936115 13.6290496,42.391606 13.7044413,42.316542 L32.3201933,23.7816937 L32.3201933,23.7816937 L13.7237117,5.6866816 C13.5653818,5.53262122 13.5619207,5.27937888 13.7159811,5.121049 C13.7912854,5.04365775 13.8946805,5 14.0026627,5 L17.1170064,5 C17.2206403,5 17.3202292,5.04022164 17.3947957,5.11219264 Z",id:"RightOutline-right",fill:"currentColor",fillRule:"nonzero"}))))}},56799(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"SearchOutline-SearchOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"SearchOutline-编组"},i.createElement("rect",{id:"SearchOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M10.2434135,10.1505371 C17.2346315,3.28315429 28.5696354,3.28315429 35.5608534,10.1505371 C42.3159331,16.7859644 42.5440954,27.4048667 36.2453405,34.3093889 L43.7095294,41.6422249 C43.8671196,41.7970419 43.8693677,42.0502979 43.7145508,42.2078881 C43.7128864,42.2095822 43.7112069,42.2112616 43.7095126,42.2129259 L42.1705322,43.7246464 C42.014915,43.8775072 41.7655181,43.8775006 41.6099089,43.7246316 L34.0775268,36.3248916 L34.0775268,36.3248916 C27.0485579,41.8551751 16.7593545,41.4200547 10.2434135,35.0195303 C3.25219551,28.1521474 3.25219551,17.0179199 10.2434135,10.1505371 Z M12.3532001,12.2229532 C6.52718516,17.9457722 6.52718516,27.2242951 12.3532001,32.9471142 C18.1792151,38.6699332 27.6250517,38.6699332 33.4510667,32.9471142 C39.2770817,27.2242951 39.2770817,17.9457722 33.4510667,12.2229532 C27.6250517,6.50013419 18.1792151,6.50013419 12.3532001,12.2229532 Z",id:"SearchOutline-形状",fill:"currentColor",fillRule:"nonzero"}))))}},87910(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"SoundOutline-SoundOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"SoundOutline-编组"},i.createElement("rect",{id:"SoundOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M28.267333,7.42364522 C28.6217345,7.94869119 28.8108515,8.56559899 28.8108515,9.19662571 L28.8108515,38.803714 C28.8108515,40.568974 27.3619563,42 25.5746535,42 C24.9357472,42 24.311136,41.8132153 23.7795338,41.4631847 L13.5176584,34.7058449 L8.3149307,34.706256 C5.93186028,34.706256 4,32.7982213 4,30.4445413 L4,17.6593971 C4,15.3057171 5.93186028,13.3976824 8.3149307,13.3976824 L13.3601634,13.3972713 L23.7795338,6.53715498 C25.2666597,5.55796489 27.2759158,5.95486009 28.267333,7.42364522 Z M40.4649231,8.99868666 C40.5511218,9.17742383 40.619996,9.32223121 40.6715457,9.43310881 C42.8085201,14.0295034 44,19.1437027 44,24.532755 C44,29.7837404 42.8687892,34.7737758 40.8339269,39.2781083 C40.7469512,39.4706362 40.6237802,39.7330988 40.4644141,40.0654961 C40.3689469,40.2647533 40.1300031,40.3488277 39.9307715,40.2533072 C39.9306414,40.2532448 39.9305113,40.2531824 39.9303812,40.2531198 C39.6706542,40.1282492 39.4751102,40.0342363 39.3437492,39.9710811 C38.9410401,39.777468 38.6130663,39.619786 38.3598279,39.498035 C38.2070716,39.4245934 38.0007263,39.3253875 37.740792,39.2004172 C37.5419104,39.104853 37.4580092,38.8662856 37.5532468,38.6672473 C37.7034937,38.3532445 37.8197479,38.104744 37.9020095,37.9217457 C39.7416376,33.8293278 40.763802,29.2989389 40.763802,24.532755 C40.763802,19.6931433 39.7099001,15.0966478 37.8164042,10.9549334 C37.7526807,10.8155487 37.6652043,10.6300308 37.5539748,10.3983796 C37.4585265,10.1993116 37.5423279,9.96050973 37.7412949,9.8648511 C37.9298799,9.7741839 38.0818373,9.70112639 38.1971671,9.64567856 C38.5403397,9.48068928 39.0100918,9.2548436 39.6064234,8.9681415 C39.6867211,8.9295363 39.7949893,8.87748349 39.9312282,8.81198307 C40.1301627,8.71623553 40.3690201,8.79982709 40.4649231,8.99868666 Z M24.954689,9.60481048 L14.4401642,16.5275765 C14.3748695,16.5705665 14.2984086,16.5934809 14.2202323,16.5934873 L8.3149307,16.5939685 L8.3149307,16.5939685 C7.76171792,16.5939685 7.30576856,17.0052668 7.24345545,17.5351457 L7.23619803,17.6593971 L7.23619803,30.4445413 C7.23619803,30.9909313 7.65263219,31.4412574 8.18892037,31.502802 L8.31467178,31.50997 L14.3775506,31.5094909 C14.4557573,31.5094847 14.5322502,31.5324045 14.5975676,31.5754153 L24.9546682,38.39546 C25.139173,38.5169545 25.3872345,38.4658746 25.508729,38.2813698 C25.5517339,38.2160614 25.5746535,38.1395804 25.5746535,38.0613845 L25.5746535,9.93889975 C25.5746535,9.71798585 25.3955674,9.53889975 25.1746535,9.53889975 C25.0964661,9.53889975 25.019993,9.56181436 24.954689,9.60481048 Z M34.6436115,11.798648 C34.7547335,12.030794 34.8419854,12.2167889 34.9053671,12.3566328 C36.590502,16.0746763 37.5276039,20.1956294 37.5276039,24.532755 C37.5276039,28.7641394 36.635639,32.7897635 35.0272837,36.4362183 C34.9380427,36.6385449 34.8101552,36.9146706 34.6436211,37.2645952 C34.5486602,37.4640326 34.3100191,37.5487723 34.1105639,37.4538487 C34.1101091,37.4536323 34.1096547,37.453415 34.1092007,37.4531968 C33.9190573,37.3618222 33.7721424,37.2912213 33.6684561,37.2413942 C33.186467,37.0097713 32.80073,36.824403 32.5112451,36.6852892 C32.3647538,36.6148919 32.1675294,36.5201144 31.9195719,36.4009569 C31.7210538,36.3055358 31.6370188,36.067582 31.7316042,35.8686644 C31.8690322,35.5796464 31.9753727,35.3500122 32.0506255,35.1797617 C33.4919206,31.9190071 34.2914059,28.3180945 34.2914059,24.532755 C34.2914059,20.6930477 33.46879,17.0431031 31.9881259,13.7454591 C31.9261905,13.6075203 31.840749,13.424362 31.7318014,13.1959842 C31.636885,12.9969991 31.7208632,12.7587263 31.919573,12.6632348 C32.0929373,12.5799233 32.2332164,12.5125112 32.3404102,12.4609985 C32.6888449,12.2935556 33.1655706,12.0644616 33.7705875,11.7737163 C33.8540198,11.7336223 33.9670458,11.6793068 34.1096655,11.6107699 C34.3087736,11.5152168 34.5476881,11.5990382 34.6433466,11.7980956 C34.643435,11.7982797 34.6435233,11.7984638 34.6436115,11.798648 Z",id:"SoundOutline-形状",fill:"currentColor",fillRule:"nonzero"}))))}},41088(e,l,t){t.d(l,{A:()=>n});var i=t(96540);let n=function(e){return i.createElement("svg",Object.assign({width:"1em",height:"1em",viewBox:"0 0 48 48",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink"},e,{style:Object.assign({verticalAlign:"-0.125em"},e.style),className:["antd-mobile-icon",e.className].filter(Boolean).join(" ")}),i.createElement("g",{id:"TextDeletionOutline-TextDeletionOutline",stroke:"none",strokeWidth:1,fill:"none",fillRule:"evenodd"},i.createElement("g",{id:"TextDeletionOutline-编组"},i.createElement("rect",{id:"TextDeletionOutline-矩形",fill:"#FFFFFF",opacity:0,x:0,y:0,width:48,height:48}),i.createElement("path",{d:"M38.5492302,6 C41.5596051,6 44,8.46240906 44,11.499981 L44,35.5 C44,38.5375742 41.5596051,41.000013 38.54923,41.000013 L17.3058462,41.000013 C14.6665152,41.000013 12.2347138,39.555982 10.9529738,37.2279238 L4.91451284,27.0612608 C3.6951623,24.8464932 3.6951623,22.1535354 4.91451335,19.9387516 L10.9529743,9.77208856 C12.234697,7.44403098 14.6665154,6 17.3058464,6 L38.5492302,6 Z M38.5492273,8.74994707 L17.3058465,8.74994707 C15.7329163,8.74994707 14.2719651,9.57120176 13.4439762,10.9206455 L13.3349608,11.1076457 L7.29739408,21.2743087 C6.57566975,22.5850072 6.53495505,24.1690434 7.18837846,25.5157286 L7.29739386,25.7265623 L13.3349605,35.8932253 C14.0992225,37.2803788 15.5202936,38.1698544 17.0914483,38.2444783 L17.3058454,38.2499783 L38.5492292,38.2499783 C39.9923716,38.2499783 41.1854088,37.114979 41.2700704,35.6613101 L41.2746127,35.4999769 L41.2746127,11.4999513 C41.2746127,10.0436198 40.1496291,8.83987037 38.7089651,8.75452144 L38.5492273,8.74994707 Z M22.3492842,17 C22.4547968,17 22.556036,17.0416892 22.6309531,17.1159883 L26.757,21.208 L30.8830469,17.1159883 C30.957964,17.0416892 31.0592032,17 31.1647158,17 L34.2719196,17 C34.4928335,17 34.6719196,17.1790861 34.6719196,17.4 C34.6719196,17.5067321 34.6292639,17.6090378 34.5534423,17.6841566 L28.879,23.306 L34.8245071,29.1968543 C34.9814364,29.3523411 34.9826059,29.6056044 34.8271191,29.7625337 C34.7520011,29.8383486 34.6497001,29.881 34.5429734,29.881 L31.4366959,29.881 C31.331195,29.881 31.2299662,29.8393201 31.1550512,29.7650357 L26.758,25.405 L22.3599432,29.7650669 C22.2850309,29.8393322 22.1838155,29.881 22.07833,29.881 L18.9720266,29.881 C18.7511127,29.881 18.5720266,29.7019139 18.5720266,29.481 C18.5720266,29.3742733 18.614678,29.2719723 18.6904929,29.1968543 L24.636,23.306 L18.9624269,17.6841345 C18.8055037,17.5286415 18.8043444,17.2753782 18.9598374,17.118455 C19.0349545,17.042647 19.1372506,17 19.2439719,17 L22.3492842,17 Z",id:"TextDeletionOutline-形状结合",fill:"currentColor",fillRule:"nonzero"}))))}}};
@@ -1 +0,0 @@
1
- export const __rspack_esm_id="22";export const __rspack_esm_ids=["22"];export const __webpack_modules__={9845(){}};
@@ -1,4 +0,0 @@
1
- export const __rspack_esm_id="2203";export const __rspack_esm_ids=["2203"];export const __webpack_modules__={27142(e,n,o){o.r(n),o.d(n,{default:()=>t});let t={contexts:["*"],prefix:"sn-window-open",label:"Open new window",description:"Safely open a new browser window/tab",locales:{"zh-CN":{label:"打开新窗口",description:"安全地打开一个新的浏览器窗口或标签页"}},content:`
2
- // Open a new window/tab
3
- window.open('https://example.com', '_blank');
4
- `}}};
@@ -1,22 +0,0 @@
1
- export const __rspack_esm_id="2335";export const __rspack_esm_ids=["2335"];export const __webpack_modules__={32221(e,t,r){r.r(t),r.d(t,{JSItemRunJSContext:()=>a});var o=r(29007);class a extends o.uk{}a.define({label:"JSItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form item rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,resource:`Current resource instance (read-only).
3
- Provides access to the data resource associated with the current form context.`,record:`Current record data object (read-only).
4
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form item container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`}}),a.define({label:"JS 表单项 RunJS 上下文",properties:{element:"ElementProxy,表单项渲染容器,支持 innerHTML/append 等 DOM 操作",resource:"当前资源(只读)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪后执行回调。参数:(ref, callback, timeout?)"}},{locale:"zh-CN"})},74354(e,t,r){r.r(t),r.d(t,{default:()=>o});let o={contexts:[r(32221).JSItemRunJSContext],prefix:"sn-link-calc",label:"Calculate total price (quantity \xd7 price)",description:"Automatically calculate total when quantity or unit price changes",locales:{"zh-CN":{label:"计算总价(数量 \xd7 单价)",description:"当数量或单价变化时自动计算总价"}},content:`
6
- // Get quantity and unit price from current record
7
- const quantity = Number(ctx.record?.quantity) || 0;
8
- const unitPrice = Number(ctx.record?.unitPrice) || 0;
9
- const total = quantity * unitPrice;
10
-
11
- // Find and update the 'totalPrice' field
12
- const items = ctx.model?.subModels?.grid?.subModels?.items;
13
- const candidates = Array.isArray(items) ? items : Array.from(items?.values?.() || items || []);
14
-
15
- const totalField = candidates.find((item) => item?.props?.name === 'totalPrice');
16
-
17
- if (totalField) {
18
- totalField.setProps({ value: total.toFixed(2) });
19
- } else {
20
- console.warn('[Form snippet] totalPrice field not found');
21
- }
22
- `}}};
@@ -1,31 +0,0 @@
1
- export const __rspack_esm_id="2555";export const __rspack_esm_ids=["2555"];export const __webpack_modules__={79271(e,t,r){r.r(t),r.d(t,{JSBlockRunJSContext:()=>o});var n=r(29007);class o extends n.uk{}o.define({label:"RunJS context",properties:{element:{description:`ElementProxy instance providing a safe DOM container.
2
- Supports innerHTML, append, and other DOM manipulation methods.
3
- Use this to render content in the JS block.`,detail:"ElementProxy",properties:{innerHTML:"Set or read the HTML content of the container element."}},record:`Current record data object (read-only).
4
- Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
6
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),o.define({label:"RunJS 上下文",properties:{element:{description:"ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等",detail:"ElementProxy",properties:{innerHTML:"读取或设置容器的 HTML 内容"}},record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})},53494(e,t,r){r.r(t),r.d(t,{default:()=>n});let n={contexts:[r(79271).JSBlockRunJSContext],prefix:"sn-jsb-info-card",label:"Render record info card",description:"Display current record information in an Ant Design card",locales:{"zh-CN":{label:"渲染记录信息卡片",description:"使用 Ant Design 卡片显示当前记录的关键信息"}},content:`
7
- const { Card, Descriptions, Tag } = ctx.libs.antd;
8
-
9
- if (!ctx.record) {
10
- ctx.render('<div style="padding:16px;color:#999;">' + ctx.t('No record data') + '</div>');
11
- return;
12
- }
13
-
14
- const record = ctx.record;
15
-
16
- ctx.render(
17
- <Card title={ctx.t('Record Details')} bordered style={{ margin: 0 }}>
18
- <Descriptions column={2} size="small">
19
- <Descriptions.Item label={ctx.t('ID')}>{record.id || '-'}</Descriptions.Item>
20
- <Descriptions.Item label={ctx.t('Status')}>
21
- <Tag color={record.status === 'active' ? 'green' : 'default'}>{record.status || '-'}</Tag>
22
- </Descriptions.Item>
23
- <Descriptions.Item label={ctx.t('Title')}>{record.title || '-'}</Descriptions.Item>
24
- <Descriptions.Item label={ctx.t('Created At')}>
25
- {record.createdAt ? new Date(record.createdAt).toLocaleString() : '-'}
26
- </Descriptions.Item>
27
- </Descriptions>
28
- </Card>
29
- );
30
-
31
- `}}};
@@ -1,5 +0,0 @@
1
- export const __rspack_esm_id="2702";export const __rspack_esm_ids=["2702"];export const __webpack_modules__={32221(e,t,r){r.r(t),r.d(t,{JSItemRunJSContext:()=>a});var o=r(29007);class a extends o.uk{}a.define({label:"JSItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form item rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,resource:`Current resource instance (read-only).
3
- Provides access to the data resource associated with the current form context.`,record:`Current record data object (read-only).
4
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form item container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`}}),a.define({label:"JS 表单项 RunJS 上下文",properties:{element:"ElementProxy,表单项渲染容器,支持 innerHTML/append 等 DOM 操作",resource:"当前资源(只读)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪后执行回调。参数:(ref, callback, timeout?)"}},{locale:"zh-CN"})}};
@@ -1,36 +0,0 @@
1
- export const __rspack_esm_id="2710";export const __rspack_esm_ids=["2710"];export const __webpack_modules__={96108(e,t,n){n.r(t),n.d(t,{JSColumnRunJSContext:()=>o});var r=n(29007);class o extends r.uk{}o.define({label:"JSColumn RunJS context",properties:{element:"ElementProxy instance providing a safe DOM container for the current table cell. Supports innerHTML/append and basic DOM APIs.",record:"Current row record object (read-only).",recordIndex:"Index of the current row in the page (0-based).",collection:"Collection definition metadata (read-only).",viewer:"View controller providing dialog/drawer/embed helpers for interactions initiated from the cell (e.g., open details).",React:"React library",antd:"Ant Design library"},methods:{onRefReady:"Wait for cell DOM element to be ready before executing callback. Parameters: (ref, callback, timeout?) => void",requireAsync:"Load external library by URL: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import ESM module by URL: `const mod = await ctx.importAsync(url)`"}}),o.define({label:"JS 列 RunJS 上下文",properties:{element:"ElementProxy,表格单元格的安全 DOM 容器,支持 innerHTML/append 等",record:"当前行记录对象(只读)",recordIndex:"当前行索引(从 0 开始)",collection:"集合定义元数据(只读)",viewer:"视图控制器,可用于在单元格中触发抽屉/对话框/内嵌等交互",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"等待单元格 DOM 就绪后执行回调。参数:(ref, callback, timeout?)",requireAsync:"按 URL 异步加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})},27733(e,t,n){n.r(t),n.d(t,{default:()=>r});let r={contexts:[n(96108).JSColumnRunJSContext],prefix:"sn-col-concat",label:"Concat two fields",description:"Combine two field values into the current column cell",locales:{"zh-CN":{label:"拼接两个字段值",description:"在自定义列中拼接两个字段的值作为显示内容"}},content:`
2
- // Demo helper: infer previous columns' dataIndex values based on the current column position
3
- // In production, hardcode field names to avoid surprises when columns are reordered
4
- function resolvePreviousDataIndexes() {
5
- const parent = ctx.model?.parent;
6
- const list = parent?.subModels?.columns;
7
- if (!Array.isArray(list)) return [];
8
- const currentUid = ctx.model?.uid;
9
- const currentIndex = list.findIndex((item) => item?.uid === currentUid);
10
- if (currentIndex <= 0) return [];
11
- return list
12
- .slice(Math.max(0, currentIndex - 2), currentIndex)
13
- .map((item) => (item && item.props ? item.props.dataIndex : undefined))
14
- .filter((key) => typeof key === 'string' && key.length > 0);
15
- }
16
-
17
- const [autoFieldA, autoFieldB] = resolvePreviousDataIndexes();
18
-
19
- // Fallback: manually specify field keys when auto detection is not enough
20
- const fieldA = autoFieldA || 'firstName';
21
- const fieldB = autoFieldB || 'lastName';
22
-
23
- const normalize = (value) => {
24
- if (value === undefined || value === null) return '';
25
- return String(value).trim();
26
- };
27
-
28
- const valueA = normalize(ctx.record?.[fieldA]);
29
- const valueB = normalize(ctx.record?.[fieldB]);
30
-
31
- const parts = [valueA, valueB].filter((item) => item.length > 0);
32
-
33
- const result = document.createElement('span');
34
- result.textContent = parts.length ? parts.join(' / ') : ctx.t('N/A');
35
- ctx.render(result);
36
- `}}};
@@ -1,23 +0,0 @@
1
- export const __rspack_esm_id="2726";export const __rspack_esm_ids=["2726"];export const __webpack_modules__={79271(e,t,n){n.r(t),n.d(t,{JSBlockRunJSContext:()=>a});var r=n(29007);class a extends r.uk{}a.define({label:"RunJS context",properties:{element:{description:`ElementProxy instance providing a safe DOM container.
2
- Supports innerHTML, append, and other DOM manipulation methods.
3
- Use this to render content in the JS block.`,detail:"ElementProxy",properties:{innerHTML:"Set or read the HTML content of the container element."}},record:`Current record data object (read-only).
4
- Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
6
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),a.define({label:"RunJS 上下文",properties:{element:{description:"ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等",detail:"ElementProxy",properties:{innerHTML:"读取或设置容器的 HTML 内容"}},record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})},37285(e,t,n){n.r(t),n.d(t,{default:()=>r});let r={contexts:[n(79271).JSBlockRunJSContext],prefix:"sn-echarts",label:"Init ECharts",description:"Load ECharts and render a simple chart inside the block",locales:{"zh-CN":{label:"初始化 ECharts",description:"加载 ECharts 并在区块内渲染示例图表"}},content:`
7
- const container = document.createElement('div');
8
- container.style.height = '400px';
9
- container.style.width = '100%';
10
- ctx.render(container);
11
- const echarts = await ctx.requireAsync('echarts@5/dist/echarts.min.js');
12
- if (!echarts) {
13
- throw new Error('ECharts library not loaded');
14
- }
15
-
16
- const chart = echarts.init(container);
17
- chart.setOption({
18
- title: { text: ctx.t('ECharts') },
19
- series: [{ type: 'pie', data: [{ value: 1, name: ctx.t('A') }] }],
20
- });
21
-
22
- chart.resize();
23
- `}}};
@@ -1,3 +0,0 @@
1
- export const __rspack_esm_id="2861";export const __rspack_esm_ids=["2861"];export const __webpack_modules__={64700(e,o,s){s.r(o),s.d(o,{JSCollectionActionRunJSContext:()=>c});var t=s(29007);class c extends t.uk{}c.define({label:"JSCollectionAction RunJS context",properties:{resource:`Collection resource instance providing access to selected rows, pagination, and data operations.
2
- Use ctx.resource.selectedRows to get selected records.
3
- Use ctx.resource.pagination for page info.`}}),c.define({label:"JS 集合动作 RunJS 上下文",properties:{resource:"列表资源(包含选中行/分页信息等)"}},{locale:"zh-CN"})}};
@@ -1,17 +0,0 @@
1
- export const __rspack_esm_id="2898";export const __rspack_esm_ids=["2898"];export const __webpack_modules__={25831(e,t,o){o.r(t),o.d(t,{FormJSFieldItemRunJSContext:()=>r});var n=o(29007);class r extends n.uk{}r.define({label:"FormJSFieldItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form field rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,value:"Current field value (read-only in display mode; in controlled scenarios, use setProps to modify).",record:`Current record data object (read-only).
3
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form field container DOM element to be ready before executing callback.
4
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`,setProps:`Set form field properties programmatically.
5
- Parameters: (fieldModel: any, props: { value?: any, disabled?: boolean, visible?: boolean }) => void
6
- Example: ctx.setProps(fieldModel, { value: "new value" })`}}),r.define({label:"表单 JS 字段项 RunJS 上下文",properties:{element:"ElementProxy,表单字段容器",value:"字段值(展示模式为只读;受控场景用 setProps 修改)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪回调",setProps:"设置表单项属性:`setProps(fieldModel, { value })`(由联动/表单上下文提供)"}},{locale:"zh-CN"})},98542(e,t,o){o.r(t),o.d(t,{JSFieldRunJSContext:()=>r});var n=o(29007);class r extends n.uk{}r.define({label:"JSField RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for field rendering.
7
- Supports innerHTML, append, and other DOM manipulation methods.`,value:`Current value of the field (read-only).
8
- Contains the data value stored in this field.`,record:`Current record data object (read-only).
9
- Contains all field values of the parent record.`,collection:`Collection definition metadata (read-only).
10
- Provides schema information about the collection this field belongs to.`},methods:{onRefReady:`Wait for field container DOM element to be ready before executing callback.
11
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
12
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = ctx.value })`}}),r.define({label:"JS 字段 RunJS 上下文",properties:{element:"ElementProxy,字段渲染容器,支持 innerHTML/append 等 DOM 操作",value:"字段当前值(只读)",record:"当前记录对象(只读,包含父记录全部字段值)",collection:"集合定义元数据(只读,描述字段所属集合的 Schema)"},methods:{onRefReady:"在字段容器 DOM 就绪后执行回调。参数:(ref, callback, timeout?);示例:ctx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})},17689(e,t,o){o.r(t),o.d(t,{default:()=>a});var n=o(98542),r=o(25831);let a={contexts:[n.JSFieldRunJSContext,r.FormJSFieldItemRunJSContext],prefix:"sn-jsf-color",label:"Display number field as colored text",description:"Display numeric values using colors based on their sign",locales:{"zh-CN":{label:"将数字字段显示为彩色文本",description:"根据数值正负设置显示颜色"}},content:`
13
- // Colorize based on numeric sign
14
- const n = Number(ctx.value ?? 0);
15
- const color = Number.isFinite(n) ? (n > 0 ? 'green' : n < 0 ? 'red' : '#999') : '#555';
16
- ctx.render('<span style=' + JSON.stringify('color:' + color) + '>' + String(ctx.value ?? '') + '</span>');
17
- `}}};
@@ -1,27 +0,0 @@
1
- export const __rspack_esm_id="2958";export const __rspack_esm_ids=["2958"];export const __webpack_modules__={25831(e,t,n){n.r(t),n.d(t,{FormJSFieldItemRunJSContext:()=>o});var r=n(29007);class o extends r.uk{}o.define({label:"FormJSFieldItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form field rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,value:"Current field value (read-only in display mode; in controlled scenarios, use setProps to modify).",record:`Current record data object (read-only).
3
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form field container DOM element to be ready before executing callback.
4
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`,setProps:`Set form field properties programmatically.
5
- Parameters: (fieldModel: any, props: { value?: any, disabled?: boolean, visible?: boolean }) => void
6
- Example: ctx.setProps(fieldModel, { value: "new value" })`}}),o.define({label:"表单 JS 字段项 RunJS 上下文",properties:{element:"ElementProxy,表单字段容器",value:"字段值(展示模式为只读;受控场景用 setProps 修改)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪回调",setProps:"设置表单项属性:`setProps(fieldModel, { value })`(由联动/表单上下文提供)"}},{locale:"zh-CN"})},79271(e,t,n){n.r(t),n.d(t,{JSBlockRunJSContext:()=>o});var r=n(29007);class o extends r.uk{}o.define({label:"RunJS context",properties:{element:{description:`ElementProxy instance providing a safe DOM container.
7
- Supports innerHTML, append, and other DOM manipulation methods.
8
- Use this to render content in the JS block.`,detail:"ElementProxy",properties:{innerHTML:"Set or read the HTML content of the container element."}},record:`Current record data object (read-only).
9
- Available when the JS block is within a data block or detail view context.`,value:"Current value of the field or component, if available in the current context.",React:"React library",antd:"Ant Design library"},methods:{onRefReady:`Wait for container DOM element to be ready before executing callback.
10
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
11
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = "Ready!" })`,requireAsync:"Load external library: `const lib = await ctx.requireAsync(url)`",importAsync:"Dynamically import an ESM module by URL: `const mod = await ctx.importAsync(url)`.\nNote: if the module has only a default export, ctx.importAsync returns that default value directly (no `.default`)."}}),o.define({label:"RunJS 上下文",properties:{element:{description:"ElementProxy,安全的 DOM 容器,支持 innerHTML/append 等",detail:"ElementProxy",properties:{innerHTML:"读取或设置容器的 HTML 内容"}},record:"当前记录(只读,用于数据区块/详情等场景)",value:"当前值(若存在)",React:"React 库",antd:"Ant Design 库"},methods:{onRefReady:"容器 ref 就绪回调:\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"加载外部库:`const lib = await ctx.requireAsync(url)`",importAsync:"按 URL 动态导入 ESM 模块:`const mod = await ctx.importAsync(url)`。\n注意:当模块只有 default 一个导出时,ctx.importAsync 会直接返回 default 值(无需再写 `.default`)。"}},{locale:"zh-CN"})},98542(e,t,n){n.r(t),n.d(t,{JSFieldRunJSContext:()=>o});var r=n(29007);class o extends r.uk{}o.define({label:"JSField RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for field rendering.
12
- Supports innerHTML, append, and other DOM manipulation methods.`,value:`Current value of the field (read-only).
13
- Contains the data value stored in this field.`,record:`Current record data object (read-only).
14
- Contains all field values of the parent record.`,collection:`Collection definition metadata (read-only).
15
- Provides schema information about the collection this field belongs to.`},methods:{onRefReady:`Wait for field container DOM element to be ready before executing callback.
16
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
17
- Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = ctx.value })`}}),o.define({label:"JS 字段 RunJS 上下文",properties:{element:"ElementProxy,字段渲染容器,支持 innerHTML/append 等 DOM 操作",value:"字段当前值(只读)",record:"当前记录对象(只读,包含父记录全部字段值)",collection:"集合定义元数据(只读,描述字段所属集合的 Schema)"},methods:{onRefReady:"在字段容器 DOM 就绪后执行回调。参数:(ref, callback, timeout?);示例:ctx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})},93117(e,t,n){n.r(t),n.d(t,{default:()=>l});var r=n(79271),o=n(98542),a=n(25831);let l={contexts:[r.JSBlockRunJSContext,o.JSFieldRunJSContext,a.FormJSFieldItemRunJSContext],prefix:"sn-query-selector",label:"Query selector",description:"Find a child element inside rendered DOM using querySelector",locales:{"zh-CN":{label:"查询子元素",description:"使用 querySelector 在渲染的 DOM 内查找子元素"}},content:`
18
- const wrapper = document.createElement('div');
19
- wrapper.innerHTML = '<div class="child-class"></div>';
20
-
21
- ctx.render(wrapper);
22
-
23
- const child = wrapper.querySelector('.child-class');
24
- if (child) {
25
- child.textContent = ctx.t('Hello from querySelector');
26
- }
27
- `}}};
@@ -1,3 +0,0 @@
1
- export const __rspack_esm_id="3018";export const __rspack_esm_ids=["3018"];export const __webpack_modules__={19505(e,r,s){s.r(r),s.d(r,{default:()=>t});let t={contexts:["*"],prefix:"sn-msg-error",label:"Message error",description:"Show an error toast message",locales:{"zh-CN":{label:"错误消息提示",description:"显示一条错误提示消息"}},content:`
2
- ctx.message.error(ctx.t('Operation failed'));
3
- `}}};
@@ -1,33 +0,0 @@
1
- export const __rspack_esm_id="3117";export const __rspack_esm_ids=["3117"];export const __webpack_modules__={32221(e,t,o){o.r(t),o.d(t,{JSItemRunJSContext:()=>s});var r=o(29007);class s extends r.uk{}s.define({label:"JSItem RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for form item rendering.
2
- Supports innerHTML, append, and other DOM manipulation methods.`,resource:`Current resource instance (read-only).
3
- Provides access to the data resource associated with the current form context.`,record:`Current record data object (read-only).
4
- Contains all field values of the parent record.`,formValues:{description:"Snapshot of current form values (object). Available in form contexts (CreateForm/EditForm).",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:`Wait for form item container DOM element to be ready before executing callback.
5
- Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void`}}),s.define({label:"JS 表单项 RunJS 上下文",properties:{element:"ElementProxy,表单项渲染容器,支持 innerHTML/append 等 DOM 操作",resource:"当前资源(只读)",record:"当前记录(只读)",formValues:{description:"当前表单值快照(对象)。仅表单相关上下文可用(Create/Edit Form)。",detail:"Record<string, any>",examples:["const { name, status } = ctx.formValues || {};"]}},methods:{onRefReady:"容器就绪后执行回调。参数:(ref, callback, timeout?)"}},{locale:"zh-CN"})},80236(e,t,o){o.r(t),o.d(t,{default:()=>r});let r={contexts:[o(32221).JSItemRunJSContext],prefix:"sn-link-copy",label:"Copy value from another field",description:"Copy value from one field to another when checkbox is checked",locales:{"zh-CN":{label:"复制字段值",description:"勾选复选框时,将一个字段的值复制到另一个字段"}},content:`
6
- // When 'sameAsAbove' is checked, copy billing address to shipping address
7
- const sameAsAbove = ctx.record?.sameAsAbove;
8
-
9
- if (!sameAsAbove) {
10
- return;
11
- }
12
-
13
- const items = ctx.model?.subModels?.grid?.subModels?.items;
14
- const candidates = Array.isArray(items) ? items : Array.from(items?.values?.() || items || []);
15
-
16
- // Source and target field mappings
17
- const fieldMappings = [
18
- { from: 'billingAddress', to: 'shippingAddress' },
19
- { from: 'billingCity', to: 'shippingCity' },
20
- { from: 'billingZipCode', to: 'shippingZipCode' },
21
- ];
22
-
23
- fieldMappings.forEach(({ from, to }) => {
24
- const sourceValue = ctx.record?.[from];
25
- const targetField = candidates.find((item) => item?.props?.name === to);
26
-
27
- if (targetField) {
28
- targetField.setProps({ value: sourceValue });
29
- }
30
- });
31
-
32
- ctx.message?.success?.(ctx.t('Address copied successfully'));
33
- `}}};