@nocobase/app 1.9.0-beta.9 → 2.0.0-alpha.2

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 (105) hide show
  1. package/dist/client/1145.4029b0be.async.js +3 -0
  2. package/dist/client/1617.dd671a87.async.js +6 -0
  3. package/dist/client/1833.82373d30.async.js +6 -0
  4. package/dist/client/2134.1d86e440.async.js +5 -0
  5. package/dist/client/2190.90c718a9.async.js +3 -0
  6. package/dist/client/2498.be8b1194.async.js +7 -0
  7. package/dist/client/260.5b02a0a5.async.js +4 -0
  8. package/dist/client/2953.2e77d77c.async.js +24 -0
  9. package/dist/client/3130.8c624281.async.js +35 -0
  10. package/dist/client/3170.6147bd19.async.js +24 -0
  11. package/dist/client/3255.e6303833.async.js +10 -0
  12. package/dist/client/3520.81fd6362.async.js +24 -0
  13. package/dist/client/3522.674f2264.async.js +4 -0
  14. package/dist/client/4088.0568ef31.async.js +5 -0
  15. package/dist/client/4205.c3eac46d.async.js +9 -0
  16. package/dist/client/4644.ae01f8a6.async.js +4 -0
  17. package/dist/client/4666.d20ff352.async.js +8 -0
  18. package/dist/client/4840.477401f9.async.js +8 -0
  19. package/dist/client/5068.72e9d750.async.js +5 -0
  20. package/dist/client/5087.468f5500.async.js +6 -0
  21. package/dist/client/5950.b83f8586.async.js +4 -0
  22. package/dist/client/6416.361c93ff.async.js +4 -0
  23. package/dist/client/6472.ac05f778.async.js +7 -0
  24. package/dist/client/6779.47fc1971.async.js +10 -0
  25. package/dist/client/6816.1ff200ac.async.js +5 -0
  26. package/dist/client/6996.836a3f7f.async.js +8 -0
  27. package/dist/client/7463.70ca58ce.async.js +20 -0
  28. package/dist/client/7522.1f91be5c.async.js +23 -0
  29. package/dist/client/7596.232a7185.async.js +10 -0
  30. package/dist/client/7688.85d6d7bb.async.js +4 -0
  31. package/dist/client/8106.829fd6b5.async.js +10 -0
  32. package/dist/client/816.b71d5e67.async.js +1 -0
  33. package/dist/client/8541.e3110aaa.async.js +8 -0
  34. package/dist/client/9017.28eacc5a.async.js +6 -0
  35. package/dist/client/937.a55819ab.async.js +5 -0
  36. package/dist/client/9489.25ca39a9.async.js +7 -0
  37. package/dist/client/9663.c04b2ad1.async.js +5 -0
  38. package/dist/client/9729.0d7a5c47.async.js +8 -0
  39. package/dist/client/9848.18f8d3db.async.js +4 -0
  40. package/dist/client/index.html +1 -1
  41. package/dist/client/index.html.tpl +1 -1
  42. package/dist/client/npm._at_ant-design.0bc226be.async.js +141 -0
  43. package/dist/client/npm._at_babel.aa6aa60c.async.js +3 -0
  44. package/dist/client/npm._at_codemirror.23366286.async.js +26 -0
  45. package/dist/client/npm._at_formily.7785699b.async.js +96 -0
  46. package/dist/client/npm._at_lezer.8e7184b5.async.js +2 -0
  47. package/dist/client/npm._at_rc-component.adfcb69e.async.js +8 -0
  48. package/dist/client/npm._at_umijs.47085d01.async.js +7 -0
  49. package/dist/client/npm.acorn.1f389fab.async.js +6 -0
  50. package/dist/client/{npm.antd-mobile.6d2f2685.async.js → npm.antd-mobile.9ba7b196.async.js} +1 -1
  51. package/dist/client/npm.antd.8f85b075.async.js +935 -0
  52. package/dist/client/{npm.d3-selection.15d6ab5b.async.js → npm.d3-selection.605ec083.async.js} +1 -1
  53. package/dist/client/{npm.d3-transition.5fd82a9c.async.js → npm.d3-transition.1d02fe5d.async.js} +1 -1
  54. package/dist/client/{npm.dayjs.45ed1676.async.js → npm.dayjs.772d2a39.async.js} +1 -1
  55. package/dist/client/npm.dompurify.2dcd638d.async.js +2 -0
  56. package/dist/client/{npm.entities.8159ac3e.async.js → npm.entities.536e25f7.async.js} +1 -1
  57. package/dist/client/{npm.highlight.js.f727dfe3.async.js → npm.highlight.js.c1f693ec.async.js} +2 -2
  58. package/dist/client/{npm.htmlparser2.1a3babb6.async.js → npm.htmlparser2.a2f8d64d.async.js} +1 -1
  59. package/dist/client/npm.joi.0be0ffb8.async.js +1 -0
  60. package/dist/client/npm.lodash-es.d3d83c5d.async.js +1 -0
  61. package/dist/client/{npm.markdown-it.5b35f93d.async.js → npm.markdown-it.9eced26c.async.js} +1 -1
  62. package/dist/client/npm.mermaid.91e7e45d.async.js +1556 -0
  63. package/dist/client/npm.rc-cascader.2d4909f4.async.js +4 -0
  64. package/dist/client/npm.rc-image.500705f3.async.js +1 -0
  65. package/dist/client/npm.rc-menu.623f9c7e.async.js +1 -0
  66. package/dist/client/npm.rc-picker.c4dce7bc.async.js +22 -0
  67. package/dist/client/npm.rc-select.34fc277e.async.js +3 -0
  68. package/dist/client/npm.rc-slider.a10210c6.async.js +1 -0
  69. package/dist/client/npm.rc-table.8e9124fe.async.js +22 -0
  70. package/dist/client/npm.rc-tree-select.c1fbaa19.async.js +5 -0
  71. package/dist/client/npm.rc-tree.c1d5eac5.async.js +1 -0
  72. package/dist/client/npm.rc-util.7f3dc7bf.async.js +35 -0
  73. package/dist/client/{npm.react-router-dom.2109af81.async.js → npm.react-router-dom.c4482ef7.async.js} +1 -1
  74. package/dist/client/npm.ses.94a6543e.async.js +29 -0
  75. package/dist/client/npm.slate-react.ef6881ab.async.js +15 -0
  76. package/dist/client/npm.slate.44c32547.async.js +1 -0
  77. package/dist/client/npm.util.9c956416.async.js +10 -0
  78. package/dist/client/p__index.5eda2656.chunk.css +1 -0
  79. package/dist/client/p__index.751f234c.async.js +2316 -0
  80. package/dist/client/umi.ce574f8c.js +63 -0
  81. package/package.json +6 -6
  82. package/dist/client/381.370f6149.async.js +0 -42
  83. package/dist/client/npm._at_ant-design.94678b5d.async.js +0 -141
  84. package/dist/client/npm._at_formily.f71b1c62.async.js +0 -96
  85. package/dist/client/npm._at_juggle.71821ece.async.js +0 -1
  86. package/dist/client/npm._at_rc-component.5f4cc5e2.async.js +0 -8
  87. package/dist/client/npm._at_umijs.7f6c4722.async.js +0 -7
  88. package/dist/client/npm.antd.a8e8f371.async.js +0 -464
  89. package/dist/client/npm.dompurify.2ca7a7c6.async.js +0 -3
  90. package/dist/client/npm.elkjs.f35a7d45.async.js +0 -26
  91. package/dist/client/npm.lodash-es.99877438.async.js +0 -1
  92. package/dist/client/npm.mermaid.b398414f.async.js +0 -1529
  93. package/dist/client/npm.rc-cascader.cf6ec555.async.js +0 -4
  94. package/dist/client/npm.rc-image.d550fa79.async.js +0 -1
  95. package/dist/client/npm.rc-menu.da4ef0ce.async.js +0 -1
  96. package/dist/client/npm.rc-picker.89eafb74.async.js +0 -22
  97. package/dist/client/npm.rc-select.44fb85b4.async.js +0 -3
  98. package/dist/client/npm.rc-slider.d2d511ab.async.js +0 -1
  99. package/dist/client/npm.rc-table.c5aa8a0d.async.js +0 -22
  100. package/dist/client/npm.rc-tree-select.5597dcbf.async.js +0 -5
  101. package/dist/client/npm.rc-tree.49888c60.async.js +0 -1
  102. package/dist/client/npm.rc-util.d5d23626.async.js +0 -18
  103. package/dist/client/p__index.7c1854dd.async.js +0 -1812
  104. package/dist/client/p__index.b3e3d810.chunk.css +0 -1
  105. package/dist/client/umi.639badb9.js +0 -63
@@ -0,0 +1,24 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[3170],{3170:function(i,e,n){n.r(e),e.default={contexts:["*"],prefix:"sn-link-visibility",label:"Toggle visible",content:`
2
+ const targetFieldUid = 'FIELD_UID_OR_NAME';
3
+ const shouldHide = true;
4
+
5
+ const items = ctx.model?.subModels?.grid?.subModels?.items;
6
+ const candidates: any[] = Array.isArray(items)
7
+ ? items
8
+ : Array.from(items?.values?.() || items || []);
9
+ const fieldModel =
10
+ candidates.find((item) => item?.uid === targetFieldUid) ||
11
+ candidates.find((item) => item?.props?.name === targetFieldUid);
12
+
13
+ if (!fieldModel) {
14
+ ctx.message?.warning?.(ctx.t('Field {{name}} not found', { name: targetFieldUid }));
15
+ return;
16
+ }
17
+
18
+ fieldModel.setProps({ hiddenModel: shouldHide });
19
+ ctx.message?.success?.(
20
+ ctx.t(shouldHide ? 'Hidden field {{name}}' : 'Shown field {{name}}', {
21
+ name: fieldModel?.props?.label || targetFieldUid,
22
+ }),
23
+ );
24
+ `}}}]);
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[3255],{43255:function(n,t,e){e.r(t),t.default={contexts:["JSBlockRunJSContext"],prefix:"sn-echarts",label:"Init ECharts",content:`
2
+ ctx.element.style.height = '400px';
3
+ const echarts = await ctx.requireAsync('https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js');
4
+ if (!echarts) {
5
+ ctx.message.error(ctx.t('Failed to load ECharts'));
6
+ } else {
7
+ const chart = echarts.init(ctx.element);
8
+ chart.setOption({ title: { text: ctx.t('ECharts') }, series: [{ type: 'pie', data: [{ value: 1, name: ctx.t('A') }] }] });
9
+ }
10
+ `}}}]);
@@ -0,0 +1,24 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[3520],{53520:function(i,e,n){n.r(e),e.default={contexts:["*"],prefix:"sn-link-required",label:"Set required",content:`
2
+ const targetFieldUid = 'FIELD_UID_OR_NAME';
3
+ const required = true;
4
+
5
+ const items = ctx.model?.subModels?.grid?.subModels?.items;
6
+ const candidates: any[] = Array.isArray(items)
7
+ ? items
8
+ : Array.from(items?.values?.() || items || []);
9
+ const fieldModel =
10
+ candidates.find((item) => item?.uid === targetFieldUid) ||
11
+ candidates.find((item) => item?.props?.name === targetFieldUid);
12
+
13
+ if (!fieldModel) {
14
+ ctx.message?.warning?.(ctx.t('Field {{name}} not found', { name: targetFieldUid }));
15
+ return;
16
+ }
17
+
18
+ fieldModel.setProps({ required });
19
+ ctx.message?.success?.(
20
+ ctx.t(required ? 'Set field {{name}} as required' : 'Field {{name}} is optional', {
21
+ name: fieldModel?.props?.label || targetFieldUid,
22
+ }),
23
+ );
24
+ `}}}]);
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[3522],{83522:function(t,c,e){e.r(c);var o={contexts:["*"],prefix:"sn-copy-record",label:"Copy record JSON",description:"Copy current ctx.record JSON to clipboard",content:`
2
+ await ctx.copyToClipboard(JSON.stringify(ctx.record ?? {}, null, 2));
3
+ ctx.message.success(ctx.t('Record JSON copied to clipboard'));
4
+ `};c.default=o}}]);
@@ -0,0 +1,5 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[4088],{64088:function(a,i,n){n.r(i);var e={contexts:["*"],versions:["*"],prefix:"sn-nav-push",label:"View navigation: push",description:"Navigate within current view (if supported)",content:`
2
+ // Push a new sub-view (if navigation is available)
3
+ ctx.view?.navigation?.push({ viewUid: 'detail', filterByTk: 1 });
4
+ // To go back: ctx.view?.navigation?.back();
5
+ `};i.default=e}}]);
@@ -0,0 +1,9 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[4205],{94205:function(a,e,n){n.r(e),e.default={contexts:["*"],prefix:"sn-require",label:"Load external library",description:"Dynamically load an external JS via RequireJS",content:`
2
+ // Load an external library (AMD/RequireJS)
3
+ try {
4
+ const lib = await ctx.requireAsync('https://cdn.example.com/lib@1.0.0/index.js');
5
+ console.log('lib loaded:', lib);
6
+ } catch (e) {
7
+ ctx.message.error(ctx.t('Failed to load external library: {{msg}}', { msg: String(e?.message || e) }));
8
+ }
9
+ `}}}]);
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[4644],{94644:function(t,e,n){n.r(e),e.default={contexts:["JSFieldRunJSContext","FormJSFieldItemRunJSContext"],prefix:"sn-jsf-value",label:"Render field value",content:`
2
+ const v = String(ctx.value ?? '');
3
+ ctx.element.innerHTML = \`<span class="nb-js-field-value" style="color:#1890ff;font-weight:600">\${v}</span>\`;
4
+ `}}}]);
@@ -0,0 +1,8 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[4666],{74666:function(p,e,n){n.r(e);var i={contexts:["*"],versions:["*"],prefix:"sn-open-drawer",label:"Open view (drawer)",description:"Open a view in drawer via ctx.openView",content:`
2
+ const popupUid = 'your-popup-uid';
3
+ await ctx.openView(popupUid, {
4
+ mode: 'drawer',
5
+ viewUid: 'detail',
6
+ inputArgs: { foo: 'bar' },
7
+ });
8
+ `};e.default=i}}]);
@@ -0,0 +1,8 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[4840],{24840:function(d,n,e){e.r(n);var t={contexts:["JSBlockRunJSContext"],prefix:"sn-jsb-card",label:"Render card",content:`
2
+ ctx.element.innerHTML = \`
3
+ <div style="border:1px solid #ddd;border-radius:8px;padding:16px;">
4
+ <h3 style="margin:0 0 8px;">\${ctx.t('Title')}</h3>
5
+ <div>\${ctx.t('Card content')}</div>
6
+ </div>
7
+ \`;
8
+ `};n.default=t}}]);
@@ -0,0 +1,5 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[5068],{35068:function(t,n,e){e.r(n),n.default={contexts:["JSFieldRunJSContext","FormJSFieldItemRunJSContext"],prefix:"sn-jsf-num",label:"Format number",content:`
2
+ // Format number using locale
3
+ const n = Number(ctx.value ?? 0);
4
+ ctx.element.innerHTML = String(Number.isFinite(n) ? n.toLocaleString() : ctx.value ?? '');
5
+ `}}}]);
@@ -0,0 +1,6 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[5087],{5087:function(t,e,n){n.r(e),e.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsb-style",label:"Append style",content:`
2
+ // Append styles to container
3
+ ctx.element.style.border = '1px dashed #999';
4
+ ctx.element.style.padding = '12px';
5
+ ctx.element.style.borderRadius = '8px';
6
+ `}}}]);
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[5950],{45950:function(o,n,e){e.r(n),n.default={contexts:["*"],prefix:"sn-window-open",label:"Open new window",description:"Safely open a new browser window/tab",content:`
2
+ // Open a new window/tab
3
+ window.open('https://example.com', '_blank');
4
+ `}}}]);
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[6416],{86416:function(t,e,c){c.r(e),e.default={contexts:["*"],prefix:"sn-log-ctx",label:"Log ctx",description:"Log the whole ctx object to console",content:`
2
+ console.log('ctx =>', ctx);
3
+ ctx.message?.success?.(ctx.t('ctx printed'));
4
+ `}}}]);
@@ -0,0 +1,7 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[6472],{16472:function(n,e,c){c.r(e),e.default={contexts:["JSRecordActionRunJSContext"],prefix:"sn-act-record-id",label:"Show record id",content:`
2
+ if (!ctx.record) {
3
+ ctx.message.error(ctx.t('Record not found'));
4
+ } else {
5
+ ctx.message.success(ctx.t('Record ID: {{id}}', { id: ctx.filterByTk ?? ctx.record?.id }));
6
+ }
7
+ `}}}]);
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[6779],{36779:function(t,n,e){e.r(n),n.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsb-click",label:"Add click listener",content:`
2
+ // Render a button and bind a click handler
3
+ ctx.element.innerHTML = \`
4
+ <button id="nb-jsb-btn" style="padding:6px 12px">\${ctx.t('Click me')}</button>
5
+ \`;
6
+ const btn = document.getElementById('nb-jsb-btn');
7
+ if (btn) {
8
+ btn.addEventListener('click', () => ctx.message.success(ctx.t('Clicked!')));
9
+ }
10
+ `}}}]);
@@ -0,0 +1,5 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[6816],{76816:function(e,n,t){t.r(n),n.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsx-unmount",label:"JSX unmount",content:`
2
+ if (ctx.__reactRoot?.unmount) { try { ctx.__reactRoot.unmount(); } catch(_) {} }
3
+ ctx.__reactRoot = undefined;
4
+ ctx.element.innerHTML = '';
5
+ `}}}]);
@@ -0,0 +1,8 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[6996],{96996:function(o,n,e){e.r(n);var i={contexts:["*"],versions:["*"],prefix:"sn-open-dialog",label:"Open view (dialog)",description:"Open a view in dialog via ctx.openView",content:`
2
+ const popupUid = 'your-popup-uid';
3
+ await ctx.openView(popupUid, {
4
+ mode: 'dialog',
5
+ viewUid: 'detail',
6
+ inputArgs: { foo: 'bar' },
7
+ });
8
+ `};n.default=i}}]);
@@ -0,0 +1,20 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7463],{17463:function(n,t,e){e.r(t),t.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsb-react",label:"Render React",content:`
2
+ // Render a React element into ctx.element via ReactDOM
3
+ const { React, ReactDOM, antd } = ctx;
4
+ const { Button } = antd;
5
+
6
+ // Unmount previous render to allow repeated runs
7
+ if (ctx.__reactRoot?.unmount) {
8
+ try { ctx.__reactRoot.unmount(); } catch(_) {}
9
+ ctx.__reactRoot = undefined;
10
+ }
11
+
12
+ const node = React.createElement(
13
+ 'div',
14
+ { style: { padding: 12 } },
15
+ React.createElement(Button, { type: 'primary', onClick: () => ctx.message.success(ctx.t('Clicked!')) }, ctx.t('Click')),
16
+ );
17
+ const root = ReactDOM.createRoot(ctx.element);
18
+ root.render(node);
19
+ ctx.__reactRoot = root;
20
+ `}}}]);
@@ -0,0 +1,23 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7522],{37522:function(t,e,n){n.r(e),e.default={contexts:["*"],prefix:"sn-link-set",label:"Set field value",content:`
2
+ // Update another field in the same form/block
3
+ const targetFieldUid = 'FIELD_UID_OR_NAME';
4
+ const nextValue = ctx.record?.status ?? ctx.t('Updated value');
5
+
6
+ const items = ctx.model?.subModels?.grid?.subModels?.items;
7
+ const candidates: any[] = Array.isArray(items)
8
+ ? items
9
+ : Array.from(items?.values?.() || items || []);
10
+ const fieldModel =
11
+ candidates.find((item) => item?.uid === targetFieldUid) ||
12
+ candidates.find((item) => item?.props?.name === targetFieldUid);
13
+
14
+ if (!fieldModel) {
15
+ ctx.message?.warning?.(ctx.t('Field {{name}} not found', { name: targetFieldUid }));
16
+ return;
17
+ }
18
+
19
+ fieldModel.setProps({ value: nextValue });
20
+ ctx.message?.success?.(
21
+ ctx.t('Updated field {{name}}', { name: fieldModel?.props?.label || targetFieldUid }),
22
+ );
23
+ `}}}]);
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7596],{67596:function(o,t,n){n.r(t),t.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsx-mount",label:"JSX mount",content:`
2
+ // Render JSX (editor does not auto-transform)
3
+ const { ReactDOM, antd } = ctx;
4
+ const { Button } = antd;
5
+
6
+ if (ctx.__reactRoot?.unmount) { try { ctx.__reactRoot.unmount(); } catch(_) {} ctx.__reactRoot = undefined; }
7
+ const root = ReactDOM.createRoot(ctx.element);
8
+ root.render(<Button type="primary" onClick={() => ctx.message.success(ctx.t('Clicked!'))}>{ctx.t('Button')}</Button>);
9
+ ctx.__reactRoot = root;
10
+ `}}}]);
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7688],{57688:function(e,n,t){t.r(n),n.default={contexts:["JSRecordActionRunJSContext","JSCollectionActionRunJSContext"],prefix:"sn-act-run",label:"Run action",content:`
2
+ await ctx.runAction('someAction', { foo: 'bar' });
3
+ ctx.message.success(ctx.t('Action executed'));
4
+ `}}}]);
@@ -0,0 +1,10 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[8106],{68106:function(e,t,n){n.r(t),t.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsb-button",label:"Render button handler",content:`
2
+ const { React, ReactDOM, antd } = ctx;
3
+ const { Button } = antd;
4
+
5
+ if (ctx.__reactRoot?.unmount) { try { ctx.__reactRoot.unmount(); } catch(_) {} ctx.__reactRoot = undefined; }
6
+ const node = React.createElement(Button, { type: 'primary', onClick: () => ctx.message.success(ctx.t('Clicked!')) }, ctx.t('Button'));
7
+ const root = ReactDOM.createRoot(ctx.element);
8
+ root.render(node);
9
+ ctx.__reactRoot = root;
10
+ `}}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[816],{20816:function(M,m,e){e.r(m),e.d(m,{default:function(){return A}});var y=e(84203),p=e(34138),j=e.n(p),x=e(97857),C=e.n(x),o=e(46911);function k(u,I){o.o.initialize(C()({securityLevel:"loose"},I));function L(n){return n.split(/\s+/g)[0]}var l=u.renderer.rules.fence;function R(n,c,E,F,s){var v=n[c],f=v.info.trim(),H=f?L(f):"";if(["mermaid","{mermaid}"].indexOf(H)===-1)return l!==void 0?l(n,c,E,F,s):"";var g="",r=[],a=document.createElement("div");document.body.appendChild(a);try{var h="mermaid-container";o.o.mermaidAPI.render(h,v.content,function(d){var i=document.getElementById(h);i!==null&&r.push(["style","max-width:".concat(i.style.maxWidth,";max-height:").concat(i.style.maxHeight)]),g=d},a)}catch(d){return'<div class="alert alert-danger">'.concat(d,"</div>")}finally{a.remove()}return r.push(["src","data:image/svg+xml,".concat(encodeURIComponent(g))]),"<img ".concat(s.renderAttrs({attrs:r}),">")}u.renderer.rules.fence=R}var t=new y.Z({html:!0,linkify:!0,typographer:!0,breaks:!0});t.use(j()),t.use(k);var A=t}}]);
@@ -0,0 +1,8 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[8541],{28541:function(t,e,n){n.r(e),e.default={contexts:["JSItemRunJSContext"],prefix:"sn-jsitem-basic",label:"Render form item",content:`
2
+ ctx.element.innerHTML = \`
3
+ <div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6;">
4
+ <h3 style="color: #1890ff; margin: 0 0 12px 0; font-size: 18px; font-weight: 600;">\${ctx.t('JS Item')}</h3>
5
+ <div style="color:#555">\${ctx.t('This area is rendered by your JavaScript code.')}</div>
6
+ </div>
7
+ \`;
8
+ `}}}]);
@@ -0,0 +1,6 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9017],{79017:function(i,n,t){t.r(n),n.default={contexts:["*"],prefix:"sn-notify",label:"Open notification",description:"Open an AntD notification with custom content",content:`
2
+ ctx.notification.open({
3
+ message: ctx.t('Notification title'),
4
+ description: ctx.t('This is a notification description'),
5
+ });
6
+ `}}}]);
@@ -0,0 +1,5 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[937],{60937:function(s,e,t){t.r(e),e.default={contexts:["*"],prefix:"sn-api-get",label:"GET request template",description:"Basic template to send a GET request via ctx.api",content:`
2
+ const res = await ctx.api.request({ url: '/your/api', method: 'get', params: { page: 1 } });
3
+ ctx.message.success(ctx.t('GET request completed'));
4
+ console.log(ctx.t('GET result:'), res);
5
+ `}}}]);
@@ -0,0 +1,7 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9489],{39489:function(t,e,o){o.r(e),e.default={contexts:["JSCollectionActionRunJSContext"],prefix:"sn-act-iterate",label:"Iterate selected rows",content:`
2
+ const rows = ctx.resource?.getSelectedRows?.() || [];
3
+ for (const row of rows) {
4
+ console.log(ctx.t('Selected row:'), row);
5
+ }
6
+ ctx.message.success(ctx.t('Processed {{count}} rows', { count: rows.length }));
7
+ `}}}]);
@@ -0,0 +1,5 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9663],{39663:function(t,e,n){n.r(e),e.default={contexts:["JSBlockRunJSContext"],prefix:"sn-jsb-html",label:"Render HTML",content:`
2
+ ctx.element.innerHTML = \`
3
+ <div style="padding:12px">\${ctx.t('Hello JSBlock')}</div>
4
+ \`;
5
+ `}}}]);
@@ -0,0 +1,8 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9729],{79729:function(n,e,t){t.r(e),e.default={contexts:["JSCollectionActionRunJSContext"],prefix:"sn-act-selected-count",label:"Selected count",content:`
2
+ const rows = ctx.resource?.getSelectedRows?.() || [];
3
+ if (!rows.length) {
4
+ ctx.message.warning(ctx.t('Please select data'));
5
+ } else {
6
+ ctx.message.success(ctx.t('Selected {{count}} rows', { count: rows.length }));
7
+ }
8
+ `}}}]);
@@ -0,0 +1,4 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9848],{49848:function(o,e,c){c.r(e);var n={contexts:["*"],prefix:"sn-log-record",label:"Log record JSON",description:"Log current ctx.record as formatted JSON",content:`
2
+ console.log(ctx.t('Current record JSON:'), JSON.stringify(ctx.record ?? {}, null, 2));
3
+ ctx.message.success(ctx.t('Printed to console'));
4
+ `};e.default=n}}]);
@@ -18,6 +18,6 @@
18
18
  </head>
19
19
  <body>
20
20
  <div id="root"></div>
21
- <script src="/umi.639badb9.js"></script>
21
+ <script src="/umi.ce574f8c.js"></script>
22
22
 
23
23
  </body></html>
@@ -18,6 +18,6 @@
18
18
  </head>
19
19
  <body>
20
20
  <div id="root"></div>
21
- <script src="/umi.639badb9.js"></script>
21
+ <script src="/umi.ce574f8c.js"></script>
22
22
 
23
23
  </body></html>