@nocobase/app 2.0.0-alpha.6 → 2.0.0-alpha.8

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 (99) hide show
  1. package/dist/client/113.736e29a0.async.js +7 -0
  2. package/dist/client/1145.0351040a.async.js +3 -0
  3. package/dist/client/1161.0b3b5766.async.js +40 -0
  4. package/dist/client/1442.be509f94.async.js +5 -0
  5. package/dist/client/1595.1827ce7f.async.js +45 -0
  6. package/dist/client/1758.eeeacf43.async.js +5 -0
  7. package/dist/client/1883.6ee256ab.async.js +17 -0
  8. package/dist/client/1905.ff0793ff.async.js +12 -0
  9. package/dist/client/2042.feb4b9ac.async.js +10 -0
  10. package/dist/client/2097.5a49892c.async.js +12 -0
  11. package/dist/client/{2190.90c718a9.async.js → 2190.4f5395e5.async.js} +1 -1
  12. package/dist/client/2380.900b7a22.async.js +15 -0
  13. package/dist/client/2612.0865e67e.async.js +19 -0
  14. package/dist/client/2775.455c3402.async.js +47 -0
  15. package/dist/client/2936.902710e4.async.js +28 -0
  16. package/dist/client/3357.be95167c.async.js +28 -0
  17. package/dist/client/341.fba65e23.async.js +28 -0
  18. package/dist/client/3451.a9466e73.async.js +24 -0
  19. package/dist/client/4327.68c0f17b.async.js +16 -0
  20. package/dist/client/4351.efe05af2.async.js +15 -0
  21. package/dist/client/4666.fb83d11a.async.js +9 -0
  22. package/dist/client/4727.0f6df8fb.async.js +1 -0
  23. package/dist/client/4750.044f647b.async.js +32 -0
  24. package/dist/client/4926.58238954.async.js +17 -0
  25. package/dist/client/5013.b14730ba.async.js +3 -0
  26. package/dist/client/5501.22d50b3a.async.js +23 -0
  27. package/dist/client/5662.8c643e63.async.js +26 -0
  28. package/dist/client/5950.179a885e.async.js +4 -0
  29. package/dist/client/6021.cdefa0d3.async.js +22 -0
  30. package/dist/client/645.ea6376fe.async.js +60 -0
  31. package/dist/client/6474.49632e37.async.js +21 -0
  32. package/dist/client/6534.6ea6468b.async.js +33 -0
  33. package/dist/client/6747.de538558.async.js +22 -0
  34. package/dist/client/689.4de33d65.async.js +3 -0
  35. package/dist/client/6920.497d7e80.async.js +59 -0
  36. package/dist/client/6996.ae27c9d6.async.js +9 -0
  37. package/dist/client/703.20003a5c.async.js +17 -0
  38. package/dist/client/7087.5646e199.async.js +6 -0
  39. package/dist/client/7197.35a4b316.async.js +35 -0
  40. package/dist/client/7483.546ddcb6.async.js +23 -0
  41. package/dist/client/7534.0d69e071.async.js +34 -0
  42. package/dist/client/8183.4c6f7e21.async.js +12 -0
  43. package/dist/client/8408.c0ef773c.async.js +84 -0
  44. package/dist/client/8805.819c4f44.async.js +20 -0
  45. package/dist/client/9017.4ae5c322.async.js +6 -0
  46. package/dist/client/9042.3d21f631.async.js +45 -0
  47. package/dist/client/908.0e8c8a54.async.js +14 -0
  48. package/dist/client/9317.fe6ffa9a.async.js +13 -0
  49. package/dist/client/935.97d45ffa.async.js +27 -0
  50. package/dist/client/95.24aa76c4.async.js +6 -0
  51. package/dist/client/9547.a442df93.async.js +25 -0
  52. package/dist/client/9801.34b13a74.async.js +9 -0
  53. package/dist/client/9844.6f484975.async.js +37 -0
  54. package/dist/client/index.html +1 -1
  55. package/dist/client/index.html.tpl +1 -1
  56. package/dist/client/{npm._at_umijs.47085d01.async.js → npm._at_umijs.f64c1387.async.js} +1 -1
  57. package/dist/client/{npm.highlight.js.c1f693ec.async.js → npm.highlight.js.d3beb708.async.js} +1 -1
  58. package/dist/client/{npm.htmlparser2.a2f8d64d.async.js → npm.htmlparser2.ee1fb042.async.js} +1 -1
  59. package/dist/client/p__index.25560ad9.async.js +2272 -0
  60. package/dist/client/{umi.b4472505.js → umi.103d7bb8.js} +2 -2
  61. package/package.json +6 -6
  62. package/dist/client/1145.4029b0be.async.js +0 -3
  63. package/dist/client/1617.dd671a87.async.js +0 -6
  64. package/dist/client/1833.82373d30.async.js +0 -6
  65. package/dist/client/2134.1d86e440.async.js +0 -5
  66. package/dist/client/2498.be8b1194.async.js +0 -7
  67. package/dist/client/260.5b02a0a5.async.js +0 -4
  68. package/dist/client/2953.2e77d77c.async.js +0 -24
  69. package/dist/client/3170.6147bd19.async.js +0 -24
  70. package/dist/client/3255.e6303833.async.js +0 -10
  71. package/dist/client/3520.81fd6362.async.js +0 -24
  72. package/dist/client/3522.674f2264.async.js +0 -4
  73. package/dist/client/4088.0568ef31.async.js +0 -5
  74. package/dist/client/4205.c3eac46d.async.js +0 -9
  75. package/dist/client/4644.ae01f8a6.async.js +0 -4
  76. package/dist/client/4666.d20ff352.async.js +0 -8
  77. package/dist/client/4840.477401f9.async.js +0 -8
  78. package/dist/client/5068.72e9d750.async.js +0 -5
  79. package/dist/client/5087.468f5500.async.js +0 -6
  80. package/dist/client/5950.b83f8586.async.js +0 -4
  81. package/dist/client/6416.361c93ff.async.js +0 -4
  82. package/dist/client/6472.ac05f778.async.js +0 -7
  83. package/dist/client/6779.47fc1971.async.js +0 -10
  84. package/dist/client/6816.1ff200ac.async.js +0 -5
  85. package/dist/client/6996.836a3f7f.async.js +0 -8
  86. package/dist/client/7463.70ca58ce.async.js +0 -20
  87. package/dist/client/7522.1f91be5c.async.js +0 -23
  88. package/dist/client/7596.232a7185.async.js +0 -10
  89. package/dist/client/7688.85d6d7bb.async.js +0 -4
  90. package/dist/client/8106.829fd6b5.async.js +0 -10
  91. package/dist/client/8541.e3110aaa.async.js +0 -8
  92. package/dist/client/9017.28eacc5a.async.js +0 -6
  93. package/dist/client/937.a55819ab.async.js +0 -5
  94. package/dist/client/9462.a7773548.async.js +0 -35
  95. package/dist/client/9489.25ca39a9.async.js +0 -7
  96. package/dist/client/9663.c04b2ad1.async.js +0 -5
  97. package/dist/client/9729.0d7a5c47.async.js +0 -8
  98. package/dist/client/9848.18f8d3db.async.js +0 -4
  99. package/dist/client/p__index.d82bc129.async.js +0 -2316
@@ -0,0 +1,23 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7483,95],{10095:function(a,n,e){e.r(n),e.d(n,{JSBlockRunJSContext:function(){return _}});var o=e(72004),r=e.n(o),s=e(12444),l=e.n(s),i=e(31996),c=e.n(i),d=e(26037),u=e.n(d),m=e(1772),_=function(b){c()(t,b);var h=u()(t);function t(){return l()(this,t),h.apply(this,arguments)}return r()(t)}(m.Uo);_.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 ESM module: `const mod = await ctx.importAsync(url)`"}}),_.define({label:"RunJS \u4E0A\u4E0B\u6587",properties:{element:{description:"ElementProxy\uFF0C\u5B89\u5168\u7684 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",detail:"ElementProxy",properties:{innerHTML:"\u8BFB\u53D6\u6216\u8BBE\u7F6E\u5BB9\u5668\u7684 HTML \u5185\u5BB9"}},record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF0C\u7528\u4E8E\u6570\u636E\u533A\u5757/\u8BE6\u60C5\u7B49\u573A\u666F\uFF09",value:"\u5F53\u524D\u503C\uFF08\u82E5\u5B58\u5728\uFF09",React:"React \u5E93",antd:"Ant Design \u5E93"},methods:{onRefReady:"\u5BB9\u5668 ref \u5C31\u7EEA\u56DE\u8C03\uFF1A\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",importAsync:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})},37483:function(a,n,e){e.r(n);var o=e(10095),r={contexts:[o.JSBlockRunJSContext],prefix:"sn-echarts",label:"Init ECharts",description:"Load ECharts and render a simple chart inside the block",locales:{"zh-CN":{label:"\u521D\u59CB\u5316 ECharts",description:"\u52A0\u8F7D ECharts \u5E76\u5728\u533A\u5757\u5185\u6E32\u67D3\u793A\u4F8B\u56FE\u8868"}},content:`
7
+ const container = document.createElement('div');
8
+ container.style.height = '400px';
9
+ container.style.width = '100%';
10
+ ctx.element.replaceChildren(container);
11
+ const echarts = await ctx.requireAsync('https://cdn.jsdelivr.net/npm/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
+ `};n.default=r}}]);
@@ -0,0 +1,34 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[7534,4727],{64727:function(s,n,e){e.r(n),e.d(n,{JSColumnRunJSContext:function(){return l}});var t=e(72004),r=e.n(t),a=e(12444),_=e.n(a),i=e(31996),u=e.n(i),d=e(26037),c=e.n(d),m=e(1772),l=function(b){u()(o,b);var p=c()(o);function o(){return _()(this,o),p.apply(this,arguments)}return r()(o)}(m.Uo);l.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)`"}}),l.define({label:"JS \u5217 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u8868\u683C\u5355\u5143\u683C\u7684\u5B89\u5168 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",record:"\u5F53\u524D\u884C\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF09",recordIndex:"\u5F53\u524D\u884C\u7D22\u5F15\uFF08\u4ECE 0 \u5F00\u59CB\uFF09",collection:"\u96C6\u5408\u5B9A\u4E49\u5143\u6570\u636E\uFF08\u53EA\u8BFB\uFF09",viewer:"\u89C6\u56FE\u63A7\u5236\u5668\uFF0C\u53EF\u7528\u4E8E\u5728\u5355\u5143\u683C\u4E2D\u89E6\u53D1\u62BD\u5C49/\u5BF9\u8BDD\u6846/\u5185\u5D4C\u7B49\u4EA4\u4E92",React:"React \u5E93",antd:"Ant Design \u5E93"},methods:{onRefReady:"\u7B49\u5F85\u5355\u5143\u683C DOM \u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)",requireAsync:"\u6309 URL \u5F02\u6B65\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",importAsync:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})},67534:function(s,n,e){e.r(n);var t=e(64727),r={contexts:[t.JSColumnRunJSContext],prefix:"sn-col-concat",label:"Concat two fields",description:"Combine two field values into the current column cell",locales:{"zh-CN":{label:"\u62FC\u63A5\u4E24\u4E2A\u5B57\u6BB5\u503C",description:"\u5728\u81EA\u5B9A\u4E49\u5217\u4E2D\u62FC\u63A5\u4E24\u4E2A\u5B57\u6BB5\u7684\u503C\u4F5C\u4E3A\u663E\u793A\u5185\u5BB9"}},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
+ ctx.element.textContent = parts.length ? parts.join(' / ') : ctx.t('N/A');
34
+ `};n.default=r}}]);
@@ -0,0 +1,12 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[8183,689],{689:function(l,o,e){e.r(o),e.d(o,{JSCollectionActionRunJSContext:function(){return t}});var n=e(72004),s=e.n(n),r=e(12444),u=e.n(r),a=e(31996),c=e.n(a),d=e(26037),i=e.n(d),m=e(1772),t=function(b){c()(_,b);var C=i()(_);function _(){return u()(this,_),C.apply(this,arguments)}return s()(_)}(m.Uo);t.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.`}}),t.define({label:"JS \u96C6\u5408\u52A8\u4F5C RunJS \u4E0A\u4E0B\u6587",properties:{resource:"\u5217\u8868\u8D44\u6E90\uFF08\u5305\u542B\u9009\u4E2D\u884C/\u5206\u9875\u4FE1\u606F\u7B49\uFF09"}},{locale:"zh-CN"})},58183:function(l,o,e){e.r(o);var n=e(689),s={contexts:[n.JSCollectionActionRunJSContext],prefix:"sn-act-destroy-selected",label:"Destroy selected rows",description:"Delete selected rows via resource.destroySelectedRows()",locales:{"zh-CN":{label:"\u5220\u9664\u9009\u4E2D\u884C",description:"\u901A\u8FC7 resource.destroySelectedRows() \u5220\u9664\u9009\u4E2D\u884C"}},content:`
4
+ const rows = ctx.resource?.getSelectedRows?.() || [];
5
+ if (!rows.length) {
6
+ ctx.message.warning(ctx.t('Please select data'));
7
+ return;
8
+ }
9
+
10
+ await ctx.resource.destroySelectedRows();
11
+ ctx.message.success(ctx.t('Deleted {{count}} rows', { count: rows.length }));
12
+ `};o.default=s}}]);
@@ -0,0 +1,84 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[8408,95],{10095:function(s,n,e){e.r(n),e.d(n,{JSBlockRunJSContext:function(){return a}});var t=e(72004),r=e.n(t),l=e(12444),u=e.n(l),_=e(31996),c=e.n(_),i=e(26037),d=e.n(i),m=e(1772),a=function(p){c()(o,p);var b=d()(o);function o(){return u()(this,o),b.apply(this,arguments)}return r()(o)}(m.Uo);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 ESM module: `const mod = await ctx.importAsync(url)`"}}),a.define({label:"RunJS \u4E0A\u4E0B\u6587",properties:{element:{description:"ElementProxy\uFF0C\u5B89\u5168\u7684 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",detail:"ElementProxy",properties:{innerHTML:"\u8BFB\u53D6\u6216\u8BBE\u7F6E\u5BB9\u5668\u7684 HTML \u5185\u5BB9"}},record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF0C\u7528\u4E8E\u6570\u636E\u533A\u5757/\u8BE6\u60C5\u7B49\u573A\u666F\uFF09",value:"\u5F53\u524D\u503C\uFF08\u82E5\u5B58\u5728\uFF09",React:"React \u5E93",antd:"Ant Design \u5E93"},methods:{onRefReady:"\u5BB9\u5668 ref \u5C31\u7EEA\u56DE\u8C03\uFF1A\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",importAsync:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})},98408:function(s,n,e){e.r(n);var t=e(10095),r={contexts:[t.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:"\u5D4C\u5165 Vue \u7EC4\u4EF6",description:"\u901A\u8FC7 ctx.importAsync \u52A0\u8F7D Vue 3 ESM \u6784\u5EFA\u5E76\u6E32\u67D3\u4EA4\u4E92\u7EC4\u4EF6"}},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.element.replaceChildren(mountNode);
15
+
16
+ async function bootstrap() {
17
+ const mod = await ctx.importAsync('https://esm.sh/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
+ const mountTarget = ctx.element.querySelector('.nb-vue-counter');
77
+ app.mount(mountTarget || ctx.element);
78
+ }
79
+
80
+ bootstrap().catch((error) => {
81
+ console.error('[RunJS] failed to mount Vue counter', error);
82
+ mountNode.innerHTML = '<div style="color:#c00;">' + (error?.message || ctx.t('Vue initialization failed')) + '</div>';
83
+ });
84
+ `};n.default=r}}]);
@@ -0,0 +1,20 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[8805,95],{10095:function(a,n,e){e.r(n),e.d(n,{JSBlockRunJSContext:function(){return _}});var r=e(72004),t=e.n(r),s=e(12444),l=e.n(s),c=e(31996),u=e.n(c),i=e(26037),d=e.n(i),m=e(1772),_=function(b){u()(o,b);var p=d()(o);function o(){return l()(this,o),p.apply(this,arguments)}return t()(o)}(m.Uo);_.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 ESM module: `const mod = await ctx.importAsync(url)`"}}),_.define({label:"RunJS \u4E0A\u4E0B\u6587",properties:{element:{description:"ElementProxy\uFF0C\u5B89\u5168\u7684 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",detail:"ElementProxy",properties:{innerHTML:"\u8BFB\u53D6\u6216\u8BBE\u7F6E\u5BB9\u5668\u7684 HTML \u5185\u5BB9"}},record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF0C\u7528\u4E8E\u6570\u636E\u533A\u5757/\u8BE6\u60C5\u7B49\u573A\u666F\uFF09",value:"\u5F53\u524D\u503C\uFF08\u82E5\u5B58\u5728\uFF09",React:"React \u5E93",antd:"Ant Design \u5E93"},methods:{onRefReady:"\u5BB9\u5668 ref \u5C31\u7EEA\u56DE\u8C03\uFF1A\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",importAsync:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})},8805:function(a,n,e){e.r(n);var r=e(10095),t={contexts:[r.JSBlockRunJSContext],prefix:"sn-resource-example",label:"Resource example",description:"Create a resource via ctx.createResource and render JSON output",locales:{"zh-CN":{label:"\u8D44\u6E90\u793A\u4F8B",description:"\u4F7F\u7528 ctx.useResource \u52A0\u8F7D\u6570\u636E\u5E76\u6E32\u67D3 JSON \u8F93\u51FA"}},content:`
7
+ // Create a resource and load a single record
8
+ const resource = ctx.createResource('SingleRecordResource');
9
+ resource.setDataSourceKey('main');
10
+ resource.setResourceName('users');
11
+ // Optionally set filterByTk to target a specific record:
12
+ // resource.setRequestOptions('params', { filterByTk: 1 });
13
+ await resource.refresh();
14
+
15
+ ctx.element.innerHTML = \`
16
+ <pre style="padding: 12px; background: #f5f5f5; border-radius: 6px;">
17
+ \${JSON.stringify(resource.getData(), null, 2)}
18
+ </pre>
19
+ \`;
20
+ `};n.default=t}}]);
@@ -0,0 +1,6 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9017],{79017:function(e,n,t){t.r(n);var i={contexts:["*"],prefix:"sn-notify",label:"Open notification",description:"Open an AntD notification with custom content",locales:{"zh-CN":{label:"\u6253\u5F00\u901A\u77E5",description:"\u5C55\u793A\u4E00\u6761\u81EA\u5B9A\u4E49\u5185\u5BB9\u7684\u901A\u77E5"}},content:`
2
+ ctx.notification.open({
3
+ message: ctx.t('Notification title'),
4
+ description: ctx.t('This is a notification description'),
5
+ });
6
+ `};n.default=i}}]);
@@ -0,0 +1,45 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9042,113,7087],{67087:function(f,o,e){e.r(o),e.d(o,{FormJSFieldItemRunJSContext:function(){return _}});var t=e(72004),s=e.n(t),r=e(12444),a=e.n(r),l=e(31996),u=e.n(l),d=e(26037),i=e.n(d),m=e(1772),_=function(c){u()(n,c);var b=i()(n);function n(){return a()(this,n),b.apply(this,arguments)}return s()(n)}(m.Uo);_.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.`},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" })`}}),_.define({label:"\u8868\u5355 JS \u5B57\u6BB5\u9879 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u8868\u5355\u5B57\u6BB5\u5BB9\u5668",value:"\u5B57\u6BB5\u503C\uFF08\u5C55\u793A\u6A21\u5F0F\u4E3A\u53EA\u8BFB\uFF1B\u53D7\u63A7\u573A\u666F\u7528 setProps \u4FEE\u6539\uFF09",record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF09"},methods:{onRefReady:"\u5BB9\u5668\u5C31\u7EEA\u56DE\u8C03",setProps:"\u8BBE\u7F6E\u8868\u5355\u9879\u5C5E\u6027\uFF1A`setProps(fieldModel, { value })`\uFF08\u7531\u8054\u52A8/\u8868\u5355\u4E0A\u4E0B\u6587\u63D0\u4F9B\uFF09"}},{locale:"zh-CN"})},40113:function(f,o,e){e.r(o),e.d(o,{JSFieldRunJSContext:function(){return _}});var t=e(72004),s=e.n(t),r=e(12444),a=e.n(r),l=e(31996),u=e.n(l),d=e(26037),i=e.n(d),m=e(1772),_=function(c){u()(n,c);var b=i()(n);function n(){return a()(this,n),b.apply(this,arguments)}return s()(n)}(m.Uo);_.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 })`}}),_.define({label:"JS \u5B57\u6BB5 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u5B57\u6BB5\u6E32\u67D3\u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49 DOM \u64CD\u4F5C",value:"\u5B57\u6BB5\u5F53\u524D\u503C\uFF08\u53EA\u8BFB\uFF09",record:"\u5F53\u524D\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF0C\u5305\u542B\u7236\u8BB0\u5F55\u5168\u90E8\u5B57\u6BB5\u503C\uFF09",collection:"\u96C6\u5408\u5B9A\u4E49\u5143\u6570\u636E\uFF08\u53EA\u8BFB\uFF0C\u63CF\u8FF0\u5B57\u6BB5\u6240\u5C5E\u96C6\u5408\u7684 Schema\uFF09"},methods:{onRefReady:"\u5728\u5B57\u6BB5\u5BB9\u5668 DOM \u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)\uFF1B\u793A\u4F8B\uFF1Actx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})},19042:function(f,o,e){e.r(o);var t=e(40113),s=e(67087),r={contexts:[t.JSFieldRunJSContext,s.FormJSFieldItemRunJSContext],prefix:"sn-jsf-relative-time",label:"Display date field as relative time",description:"Render date values as \u201C3 days ago\u201D, \u201Cjust now\u201D, etc.",locales:{"zh-CN":{label:"\u5C06\u65E5\u671F\u5B57\u6BB5\u663E\u793A\u4E3A\u76F8\u5BF9\u65F6\u95F4",description:"\u5C06\u65E5\u671F\u663E\u793A\u4E3A\u201C3\u5929\u524D\u201D\u3001\u201C\u521A\u521A\u201D\u7B49\u76F8\u5BF9\u65F6\u95F4"}},content:`
13
+ const formatRelativeTime = (date) => {
14
+ const now = new Date();
15
+ const diff = now - new Date(date);
16
+ const seconds = Math.floor(diff / 1000);
17
+ const minutes = Math.floor(seconds / 60);
18
+ const hours = Math.floor(minutes / 60);
19
+ const days = Math.floor(hours / 24);
20
+ const months = Math.floor(days / 30);
21
+ const years = Math.floor(days / 365);
22
+
23
+ if (seconds < 60) return ctx.t('just now');
24
+ if (minutes < 60) return ctx.t('{{count}} minutes ago', { count: minutes });
25
+ if (hours < 24) return ctx.t('{{count}} hours ago', { count: hours });
26
+ if (days < 30) return ctx.t('{{count}} days ago', { count: days });
27
+ if (months < 12) return ctx.t('{{count}} months ago', { count: months });
28
+ return ctx.t('{{count}} years ago', { count: years });
29
+ };
30
+
31
+ const dateStr = ctx.value;
32
+ if (!dateStr) {
33
+ ctx.element.innerHTML = '-';
34
+ return;
35
+ }
36
+
37
+ const relativeTime = formatRelativeTime(dateStr);
38
+ const fullDate = new Date(dateStr).toLocaleString();
39
+
40
+ ctx.element.innerHTML = \`
41
+ <span title="\${fullDate}" style="cursor: help; color: #666;">
42
+ \${relativeTime}
43
+ </span>
44
+ \`;
45
+ `};o.default=r}}]);
@@ -0,0 +1,14 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[908],{30908:function(o,n,e){e.r(n);var t={contexts:["*"],prefix:"sn-import",label:"Import ESM module",description:"Dynamically import an ESM module by URL",locales:{"zh-CN":{label:"\u5BFC\u5165 ESM \u6A21\u5757",description:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757"}},content:`
2
+ // Import an ESM module by URL
3
+ // Works in yarn dev and yarn start
4
+ const mod = await ctx.importAsync('https://cdn.jsdelivr.net/npm/lit-html@2/+esm');
5
+ const { html, render } = mod;
6
+
7
+ ctx.element.innerHTML = '';
8
+ const container = document.createElement('div');
9
+ container.style.padding = '8px';
10
+ container.style.border = '1px dashed #999';
11
+ ctx.element.append(container);
12
+
13
+ render(html\`<span style="color:#52c41a;">lit-html loaded and rendered</span>\`, container);
14
+ `};n.default=t}}]);
@@ -0,0 +1,13 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9317],{9317:function(n,e,s){s.r(e);var t={contexts:["*"],prefix:"sn-api-request",label:"API request template",description:"Basic template to send HTTP requests via ctx.api.request",locales:{"zh-CN":{label:"API \u8BF7\u6C42\u6A21\u677F",description:"\u4F7F\u7528 ctx.api.request \u53D1\u9001 HTTP \u8BF7\u6C42\u7684\u57FA\u7840\u6A21\u677F"}},content:`
2
+ // Replace url/method/params/data as needed
3
+ const response = await ctx.api.request({
4
+ url: 'users:list',
5
+ method: 'get',
6
+ params: {
7
+ pageSize: 10,
8
+ },
9
+ });
10
+
11
+ ctx.message.success(ctx.t('Request finished'));
12
+ console.log(ctx.t('Response data:'), response?.data);
13
+ `};e.default=t}}]);
@@ -0,0 +1,27 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[935,1442],{41442:function(a,n,e){e.r(n),e.d(n,{JSItemRunJSContext:function(){return s}});var t=e(72004),_=e.n(t),r=e(12444),l=e.n(r),d=e(31996),i=e.n(d),m=e(26037),u=e.n(m),c=e(1772),s=function(b){i()(o,b);var f=u()(o);function o(){return l()(this,o),f.apply(this,arguments)}return _()(o)}(c.Uo);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.`},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 \u8868\u5355\u9879 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u8868\u5355\u9879\u6E32\u67D3\u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49 DOM \u64CD\u4F5C",resource:"\u5F53\u524D\u8D44\u6E90\uFF08\u53EA\u8BFB\uFF09",record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF09"},methods:{onRefReady:"\u5BB9\u5668\u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)"}},{locale:"zh-CN"})},90935:function(a,n,e){e.r(n);var t=e(41442),_={contexts:[t.JSItemRunJSContext],prefix:"sn-link-set",label:"Set field value",description:"Programmatically update another field in linkage scripts",locales:{"zh-CN":{label:"\u8BBE\u7F6E\u5B57\u6BB5\u503C",description:"\u5728\u8054\u52A8\u811A\u672C\u4E2D\u4E3A\u5176\u4ED6\u5B57\u6BB5\u8BBE\u7F6E\u503C"}},content:`
6
+ // Update another field in the same form/block
7
+ const targetFieldUid = 'FIELD_UID_OR_NAME';
8
+ const nextValue = ctx.record?.status ?? ctx.t('Updated value');
9
+
10
+ const items = ctx.model?.subModels?.grid?.subModels?.items;
11
+ const candidates = Array.isArray(items)
12
+ ? items
13
+ : Array.from(items?.values?.() || items || []);
14
+ const fieldModel =
15
+ candidates.find((item) => item?.uid === targetFieldUid) ||
16
+ candidates.find((item) => item?.props?.name === targetFieldUid);
17
+
18
+ if (!fieldModel) {
19
+ ctx.message?.warning?.(ctx.t('Field {{name}} not found', { name: targetFieldUid }));
20
+ return;
21
+ }
22
+
23
+ fieldModel.setProps({ value: nextValue });
24
+ ctx.message?.success?.(
25
+ ctx.t('Updated field {{name}}', { name: fieldModel?.props?.label || targetFieldUid }),
26
+ );
27
+ `};n.default=_}}]);
@@ -0,0 +1,6 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[95],{10095:function(h,_,e){e.r(_),e.d(_,{JSBlockRunJSContext:function(){return o}});var t=e(72004),r=e.n(t),a=e(12444),s=e.n(a),l=e(31996),i=e.n(l),u=e(26037),c=e.n(u),m=e(1772),o=function(d){i()(n,d);var b=c()(n);function n(){return s()(this,n),b.apply(this,arguments)}return r()(n)}(m.Uo);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 ESM module: `const mod = await ctx.importAsync(url)`"}}),o.define({label:"RunJS \u4E0A\u4E0B\u6587",properties:{element:{description:"ElementProxy\uFF0C\u5B89\u5168\u7684 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",detail:"ElementProxy",properties:{innerHTML:"\u8BFB\u53D6\u6216\u8BBE\u7F6E\u5BB9\u5668\u7684 HTML \u5185\u5BB9"}},record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF0C\u7528\u4E8E\u6570\u636E\u533A\u5757/\u8BE6\u60C5\u7B49\u573A\u666F\uFF09",value:"\u5F53\u524D\u503C\uFF08\u82E5\u5B58\u5728\uFF09",React:"React \u5E93",antd:"Ant Design \u5E93"},methods:{onRefReady:"\u5BB9\u5668 ref \u5C31\u7EEA\u56DE\u8C03\uFF1A\n```js\nctx.onRefReady(ctx.ref, el => { /* ... */ })\n```",requireAsync:"\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",importAsync:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})}}]);
@@ -0,0 +1,25 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9547,113],{40113:function(a,n,e){e.r(n),e.d(n,{JSFieldRunJSContext:function(){return l}});var t=e(72004),_=e.n(t),s=e(12444),r=e.n(s),d=e(31996),i=e.n(d),u=e(26037),c=e.n(u),m=e(1772),l=function(b){i()(o,b);var f=c()(o);function o(){return r()(this,o),f.apply(this,arguments)}return _()(o)}(m.Uo);l.define({label:"JSField RunJS context",properties:{element:`ElementProxy instance providing a safe DOM container for field rendering.
2
+ Supports innerHTML, append, and other DOM manipulation methods.`,value:`Current value of the field (read-only).
3
+ Contains the data value stored in this field.`,record:`Current record data object (read-only).
4
+ Contains all field values of the parent record.`,collection:`Collection definition metadata (read-only).
5
+ Provides schema information about the collection this field belongs to.`},methods:{onRefReady:`Wait for field container DOM element to be ready before executing callback.
6
+ Parameters: (ref: React.RefObject, callback: (element: HTMLElement) => void, timeout?: number) => void
7
+ Example: ctx.onRefReady(ctx.ref, (el) => { el.innerHTML = ctx.value })`}}),l.define({label:"JS \u5B57\u6BB5 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u5B57\u6BB5\u6E32\u67D3\u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49 DOM \u64CD\u4F5C",value:"\u5B57\u6BB5\u5F53\u524D\u503C\uFF08\u53EA\u8BFB\uFF09",record:"\u5F53\u524D\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF0C\u5305\u542B\u7236\u8BB0\u5F55\u5168\u90E8\u5B57\u6BB5\u503C\uFF09",collection:"\u96C6\u5408\u5B9A\u4E49\u5143\u6570\u636E\uFF08\u53EA\u8BFB\uFF0C\u63CF\u8FF0\u5B57\u6BB5\u6240\u5C5E\u96C6\u5408\u7684 Schema\uFF09"},methods:{onRefReady:"\u5728\u5B57\u6BB5\u5BB9\u5668 DOM \u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)\uFF1B\u793A\u4F8B\uFF1Actx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})},39547:function(a,n,e){e.r(n);var t=e(40113),_={contexts:[t.JSFieldRunJSContext],prefix:"sn-jsf-copy",label:"Display text field with copy button",description:"Render the text field value with a copy-to-clipboard button",locales:{"zh-CN":{label:"\u5C06\u6587\u672C\u5B57\u6BB5\u663E\u793A\u4E3A\u590D\u5236\u6309\u94AE",description:"\u5C55\u793A\u5B57\u6BB5\u503C\u5E76\u63D0\u4F9B\u5FEB\u6377\u590D\u5236\u5230\u526A\u8D34\u677F\u7684\u6309\u94AE"}},content:`
8
+ const text = String(ctx.value ?? '');
9
+ ctx.element.innerHTML = '<a class="nb-copy" style="cursor:pointer;color:#1677ff">' +
10
+ ctx.t('Copy') + '</a>';
11
+
12
+ ctx.element.querySelector('.nb-copy')?.addEventListener('click', async () => {
13
+ if (navigator?.clipboard?.writeText) {
14
+ await navigator.clipboard.writeText(text);
15
+ } else {
16
+ const ta = document.createElement('textarea');
17
+ ta.value = text;
18
+ document.body.appendChild(ta);
19
+ ta.select();
20
+ document.execCommand('copy');
21
+ document.body.removeChild(ta);
22
+ }
23
+ ctx.message.success(ctx.t('Copied'));
24
+ });
25
+ `};n.default=_}}]);
@@ -0,0 +1,9 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9801,689],{689:function(r,o,e){e.r(o),e.d(o,{JSCollectionActionRunJSContext:function(){return t}});var n=e(72004),s=e.n(n),l=e(12444),u=e.n(l),c=e(31996),a=e.n(c),d=e(26037),i=e.n(d),m=e(1772),t=function(b){a()(_,b);var C=i()(_);function _(){return u()(this,_),C.apply(this,arguments)}return s()(_)}(m.Uo);t.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.`}}),t.define({label:"JS \u96C6\u5408\u52A8\u4F5C RunJS \u4E0A\u4E0B\u6587",properties:{resource:"\u5217\u8868\u8D44\u6E90\uFF08\u5305\u542B\u9009\u4E2D\u884C/\u5206\u9875\u4FE1\u606F\u7B49\uFF09"}},{locale:"zh-CN"})},29801:function(r,o,e){e.r(o);var n=e(689),s={contexts:[n.JSCollectionActionRunJSContext],prefix:"sn-act-iterate",label:"Iterate selected rows",description:"Loop through selected rows and process each record",locales:{"zh-CN":{label:"\u904D\u5386\u9009\u4E2D\u884C",description:"\u904D\u5386\u9009\u4E2D\u884C\u5E76\u5904\u7406\u6BCF\u6761\u8BB0\u5F55"}},content:`
4
+ const rows = ctx.resource?.getSelectedRows?.() || [];
5
+ for (const row of rows) {
6
+ console.log(ctx.t('Selected row:'), row);
7
+ }
8
+ ctx.message.success(ctx.t('Processed {{count}} rows', { count: rows.length }));
9
+ `};o.default=s}}]);
@@ -0,0 +1,37 @@
1
+ "use strict";(self.webpackChunknocobase=self.webpackChunknocobase||[]).push([[9844,113,4727,7087],{67087:function(p,o,e){e.r(o),e.d(o,{FormJSFieldItemRunJSContext:function(){return _}});var r=e(72004),t=e.n(r),l=e(12444),s=e.n(l),a=e(31996),u=e.n(a),d=e(26037),i=e.n(d),m=e(1772),_=function(c){u()(n,c);var b=i()(n);function n(){return s()(this,n),b.apply(this,arguments)}return t()(n)}(m.Uo);_.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.`},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" })`}}),_.define({label:"\u8868\u5355 JS \u5B57\u6BB5\u9879 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u8868\u5355\u5B57\u6BB5\u5BB9\u5668",value:"\u5B57\u6BB5\u503C\uFF08\u5C55\u793A\u6A21\u5F0F\u4E3A\u53EA\u8BFB\uFF1B\u53D7\u63A7\u573A\u666F\u7528 setProps \u4FEE\u6539\uFF09",record:"\u5F53\u524D\u8BB0\u5F55\uFF08\u53EA\u8BFB\uFF09"},methods:{onRefReady:"\u5BB9\u5668\u5C31\u7EEA\u56DE\u8C03",setProps:"\u8BBE\u7F6E\u8868\u5355\u9879\u5C5E\u6027\uFF1A`setProps(fieldModel, { value })`\uFF08\u7531\u8054\u52A8/\u8868\u5355\u4E0A\u4E0B\u6587\u63D0\u4F9B\uFF09"}},{locale:"zh-CN"})},64727:function(p,o,e){e.r(o),e.d(o,{JSColumnRunJSContext:function(){return _}});var r=e(72004),t=e.n(r),l=e(12444),s=e.n(l),a=e(31996),u=e.n(a),d=e(26037),i=e.n(d),m=e(1772),_=function(c){u()(n,c);var b=i()(n);function n(){return s()(this,n),b.apply(this,arguments)}return t()(n)}(m.Uo);_.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)`"}}),_.define({label:"JS \u5217 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u8868\u683C\u5355\u5143\u683C\u7684\u5B89\u5168 DOM \u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49",record:"\u5F53\u524D\u884C\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF09",recordIndex:"\u5F53\u524D\u884C\u7D22\u5F15\uFF08\u4ECE 0 \u5F00\u59CB\uFF09",collection:"\u96C6\u5408\u5B9A\u4E49\u5143\u6570\u636E\uFF08\u53EA\u8BFB\uFF09",viewer:"\u89C6\u56FE\u63A7\u5236\u5668\uFF0C\u53EF\u7528\u4E8E\u5728\u5355\u5143\u683C\u4E2D\u89E6\u53D1\u62BD\u5C49/\u5BF9\u8BDD\u6846/\u5185\u5D4C\u7B49\u4EA4\u4E92",React:"React \u5E93",antd:"Ant Design \u5E93"},methods:{onRefReady:"\u7B49\u5F85\u5355\u5143\u683C DOM \u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)",requireAsync:"\u6309 URL \u5F02\u6B65\u52A0\u8F7D\u5916\u90E8\u5E93\uFF1A`const lib = await ctx.requireAsync(url)`",importAsync:"\u6309 URL \u52A8\u6001\u5BFC\u5165 ESM \u6A21\u5757\uFF1A`const mod = await ctx.importAsync(url)`"}},{locale:"zh-CN"})},40113:function(p,o,e){e.r(o),e.d(o,{JSFieldRunJSContext:function(){return _}});var r=e(72004),t=e.n(r),l=e(12444),s=e.n(l),a=e(31996),u=e.n(a),d=e(26037),i=e.n(d),m=e(1772),_=function(c){u()(n,c);var b=i()(n);function n(){return s()(this,n),b.apply(this,arguments)}return t()(n)}(m.Uo);_.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 })`}}),_.define({label:"JS \u5B57\u6BB5 RunJS \u4E0A\u4E0B\u6587",properties:{element:"ElementProxy\uFF0C\u5B57\u6BB5\u6E32\u67D3\u5BB9\u5668\uFF0C\u652F\u6301 innerHTML/append \u7B49 DOM \u64CD\u4F5C",value:"\u5B57\u6BB5\u5F53\u524D\u503C\uFF08\u53EA\u8BFB\uFF09",record:"\u5F53\u524D\u8BB0\u5F55\u5BF9\u8C61\uFF08\u53EA\u8BFB\uFF0C\u5305\u542B\u7236\u8BB0\u5F55\u5168\u90E8\u5B57\u6BB5\u503C\uFF09",collection:"\u96C6\u5408\u5B9A\u4E49\u5143\u6570\u636E\uFF08\u53EA\u8BFB\uFF0C\u63CF\u8FF0\u5B57\u6BB5\u6240\u5C5E\u96C6\u5408\u7684 Schema\uFF09"},methods:{onRefReady:"\u5728\u5B57\u6BB5\u5BB9\u5668 DOM \u5C31\u7EEA\u540E\u6267\u884C\u56DE\u8C03\u3002\u53C2\u6570\uFF1A(ref, callback, timeout?)\uFF1B\u793A\u4F8B\uFF1Actx.onRefReady(ctx.ref, el => { el.innerHTML = ctx.value })"}},{locale:"zh-CN"})},69844:function(p,o,e){e.r(o);var r=e(40113),t=e(67087),l=e(64727),s={contexts:[r.JSFieldRunJSContext,t.FormJSFieldItemRunJSContext,l.JSColumnRunJSContext],scenes:["detail","table"],prefix:"sn-jsf-status-tag",label:"Display status field as colored tag",description:"Display status values using colored tags",locales:{"zh-CN":{label:"\u5C06\u72B6\u6001\u5B57\u6BB5\u663E\u793A\u4E3A\u5F69\u8272\u6807\u7B7E",description:"\u6839\u636E\u72B6\u6001\u503C\u663E\u793A\u4E0D\u540C\u989C\u8272\u7684\u6807\u7B7E"}},content:`
13
+ const statusColors = {
14
+ active: 'green',
15
+ pending: 'orange',
16
+ inactive: 'gray',
17
+ error: 'red',
18
+ success: 'blue',
19
+ };
20
+
21
+ const status = String(ctx.value || 'unknown');
22
+ const color = statusColors[status] || 'default';
23
+
24
+ ctx.element.innerHTML = \`
25
+ <span style="
26
+ display: inline-block;
27
+ padding: 2px 8px;
28
+ border-radius: 4px;
29
+ font-size: 12px;
30
+ background-color: var(--\${color}-1, #f0f0f0);
31
+ color: var(--\${color}-6, #333);
32
+ border: 1px solid var(--\${color}-3, #d9d9d9);
33
+ ">
34
+ \${ctx.t(status)}
35
+ </span>
36
+ \`;
37
+ `};o.default=s}}]);
@@ -18,6 +18,6 @@
18
18
  </head>
19
19
  <body>
20
20
  <div id="root"></div>
21
- <script src="/umi.b4472505.js"></script>
21
+ <script src="/umi.103d7bb8.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.b4472505.js"></script>
21
+ <script src="/umi.103d7bb8.js"></script>
22
22
 
23
23
  </body></html>
@@ -4,4 +4,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
4
4
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ye(t,r){if(t){if(typeof t=="string")return xe(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xe(t,r)}}function Re(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function je(t){if(Array.isArray(t))return xe(t)}function xe(t,r){(r==null||r>t.length)&&(r=t.length);for(var n=0,o=new Array(r);n<r;n++)o[n]=t[n];return o}function Ie(t,r){if(t==null)return{};var n=De(t,r),o,f;if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(t);for(f=0;f<x.length;f++)o=x[f],!(r.indexOf(o)>=0)&&Object.prototype.propertyIsEnumerable.call(t,o)&&(n[o]=t[o])}return n}function De(t,r){if(t==null)return{};var n={},o=Object.keys(t),f,x;for(x=0;x<o.length;x++)f=o[x],!(r.indexOf(f)>=0)&&(n[f]=t[f]);return n}function we(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);r&&(o=o.filter(function(f){return Object.getOwnPropertyDescriptor(t,f).enumerable})),n.push.apply(n,o)}return n}function H(t){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?we(Object(n),!0).forEach(function(o){Ne(t,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):we(Object(n)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(n,o))})}return t}function Ne(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}var V="routes";function ce(t){return t.split("?")[0].split("#")[0]}var de=function(r){if(!r.startsWith("http"))return!1;try{var n=new URL(r);return!!n}catch{return!1}},Fe=function(r){var n=r.path;if(!n||n==="/")try{return"/".concat(N(JSON.stringify(r)))}catch{}return n&&ce(n)},Ce=function(r,n){var o=r.name,f=r.locale;return"locale"in r&&f===!1||!o?!1:r.locale||"".concat(n,".").concat(o)},Oe=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"/";return r.endsWith("/*")?r.replace("/*","/"):(r||n).startsWith("/")||de(r)?r:"/".concat(n,"/").concat(r).replace(/\/\//g,"/").replace(/\/\//g,"/")},We=function(r,n){var o=r.menu,f=o===void 0?{}:o,x=r.indexRoute,l=r.path,d=l===void 0?"":l,O=r.children||[],j=f.name,G=j===void 0?r.name:j,U=f.icon,W=U===void 0?r.icon:U,pe=f.hideChildren,Me=pe===void 0?r.hideChildren:pe,be=f.flatMenu,Pe=be===void 0?r.flatMenu:be,le=x&&Object.keys(x).join(",")!=="redirect"?[H({path:d,menu:f},x)].concat(O||[]):O,te=H({},r);if(G&&(te.name=G),W&&(te.icon=W),le&&le.length){if(Me)return delete te.children,te;var _e=he(H(H({},n),{},{data:le}),r);if(Pe)return _e;delete te[V]}return te},ee=function(r){return Array.isArray(r)&&r.length>0};function he(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{path:"/"},n=t.data,o=t.formatMessage,f=t.parentName,x=t.locale;return!n||!Array.isArray(n)?[]:n.filter(function(l){return l?ee(l.children)||l.path||l.originPath||l.layout?!0:(l.redirect||l.unaccessible,!1):!1}).filter(function(l){var d,O;return!(l==null||(d=l.menu)===null||d===void 0)&&d.name||l!=null&&l.flatMenu||!(l==null||(O=l.menu)===null||O===void 0)&&O.flatMenu?!0:l.menu!==!1}).map(function(l){var d=H(H({},l),{},{path:l.path||l.originPath});return!d.children&&d[V]&&(d.children=d[V],delete d[V]),d.unaccessible&&delete d.name,d.path==="*"&&(d.path="."),d.path==="/*"&&(d.path="."),!d.path&&d.originPath&&(d.path=d.originPath),d}).map(function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{path:"/"},d=l.children||l[V]||[],O=Oe(l.path,r?r.path:"/"),j=l.name,G=Ce(l,f||"menu"),U=G!==!1&&x!==!1&&o&&G?o({id:G,defaultMessage:j}):j,W=r.pro_layout_parentKeys,pe=W===void 0?[]:W,Me=r.children,be=r.icon,Pe=r.flatMenu,le=r.indexRoute,te=r.routes,_e=Ie(r,I),Ae=new Set([].concat(ge(pe),ge(l.parentKeys||[])));r.key&&Ae.add(r.key);var re=H(H(H({},_e),{},{menu:void 0},l),{},{path:O,locale:G,key:l.key||Fe(H(H({},l),{},{path:O})),pro_layout_parentKeys:Array.from(Ae).filter(function(Ee){return Ee&&Ee!=="/"})});if(U?re.name=U:delete re.name,re.menu===void 0&&delete re.menu,ee(d)){var Se=he(H(H({},t),{},{data:d,parentName:G||""}),re);ee(Se)&&(re.children=Se)}return We(re,t)}).flat(1)}var Be=function t(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return r.filter(function(n){return n&&(n.name||ee(n.children))&&!n.hideInMenu&&!n.redirect}).map(function(n){var o=H({},n),f=o.children||n[V]||[];if(delete o[V],ee(f)&&!o.hideChildrenInMenu&&f.some(function(l){return l&&!!l.name})){var x=t(f);if(x.length)return H(H({},o),{},{children:x})}return H({},n)}).filter(function(n){return n})},He=function(t){ne(n,t);var r=Y(n);function n(){return M(this,n),r.apply(this,arguments)}return k(n,[{key:"get",value:function(f){var x;try{var l=J(this.entries()),d;try{for(l.s();!(d=l.n()).done;){var O=m(d.value,2),j=O[0],G=O[1],U=ce(j);if(!de(j)&&(0,i.Bo)(U,[]).test(f)){x=G;break}}}catch(W){l.e(W)}finally{l.f()}}catch{x=void 0}return x}}]),n}(X(Map)),Ke=function(r){var n=new He,o=function f(x,l){x.forEach(function(d){var O=d.children||d[V]||[];ee(O)&&f(O,d);var j=Oe(d.path,l?l.path:"/");n.set(ce(j),d)})};return o(r),n},$e=function t(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return r.map(function(n){var o=n.children||n[V];if(ee(o)){var f=t(o);if(f.length)return H({},n)}var x=H({},n);return delete x[V],delete x.children,x}).filter(function(n){return n})},Le=function(r,n,o,f){var x=he({data:r,formatMessage:o,locale:n}),l=f?$e(x):Be(x),d=Ke(x);return{breadcrumb:d,menuData:l}},Ue=Le;function me(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);r&&(o=o.filter(function(f){return Object.getOwnPropertyDescriptor(t,f).enumerable})),n.push.apply(n,o)}return n}function se(t){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?me(Object(n),!0).forEach(function(o){ze(t,o,n[o])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):me(Object(n)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(n,o))})}return t}function ze(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}var Ge=function t(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n={};return r.forEach(function(o){var f=se({},o);if(!(!f||!f.key)){!f.children&&f[V]&&(f.children=f[V],delete f[V]);var x=f.children||[];n[ce(f.path||f.key||"/")]=se({},f),n[f.key||f.path||"/"]=se({},f),x&&(n=se(se({},n),t(x)))}}),n},Je=Ge,Qe=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0,o=arguments.length>2?arguments[2]:void 0;return r.filter(function(f){if(f==="/"&&n==="/")return!0;if(f!=="/"&&f!=="/*"&&f&&!de(f)){var x=ce(f);try{if(o&&(0,i.Bo)("".concat(x)).test(n)||(0,i.Bo)("".concat(x),[]).test(n)||(0,i.Bo)("".concat(x,"/(.*)")).test(n))return!0}catch{}}return!1}).sort(function(f,x){return f===n?10:x===n?-10:f.substr(1).split("/").length-x.substr(1).split("/").length})},Ve=function(r,n,o,f){var x=Je(n),l=Object.keys(x),d=Qe(l,r||"/",f);return!d||d.length<1?[]:(o||(d=[d[d.length-1]]),d.map(function(O){var j=x[O]||{pro_layout_parentKeys:"",key:""},G=new Map,U=(j.pro_layout_parentKeys||[]).map(function(W){return G.has(W)?null:(G.set(W,!0),x[W])}).filter(function(W){return W});return j.key&&U.push(j),U}).flat(1))},Xe=Ve},47930:function(e,v){var a;function i(h){"@babel/helpers - typeof";return i=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(b){return typeof b}:function(b){return b&&typeof Symbol=="function"&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b},i(h)}a={value:!0},v.Bo=a=a=a=a=a=a=void 0;function c(h){for(var b=[],y=0;y<h.length;){var A=h[y];if(A==="*"||A==="+"||A==="?"){b.push({type:"MODIFIER",index:y,value:h[y++]});continue}if(A==="\\"){b.push({type:"ESCAPED_CHAR",index:y++,value:h[y++]});continue}if(A==="{"){b.push({type:"OPEN",index:y,value:h[y++]});continue}if(A==="}"){b.push({type:"CLOSE",index:y,value:h[y++]});continue}if(A===":"){for(var $="",P=y+1;P<h.length;){var T=h.charCodeAt(P);if(T>=48&&T<=57||T>=65&&T<=90||T>=97&&T<=122||T===95){$+=h[P++];continue}break}if(!$)throw new TypeError("Missing parameter name at "+y);b.push({type:"NAME",index:y,value:$}),y=P;continue}if(A==="("){var z=1,N="",P=y+1;if(h[P]==="?")throw new TypeError('Pattern cannot start with "?" at '+P);for(;P<h.length;){if(h[P]==="\\"){N+=h[P++]+h[P++];continue}if(h[P]===")"){if(z--,z===0){P++;break}}else if(h[P]==="("&&(z++,h[P+1]!=="?"))throw new TypeError("Capturing groups are not allowed at "+P);N+=h[P++]}if(z)throw new TypeError("Unbalanced pattern at "+y);if(!N)throw new TypeError("Missing pattern at "+y);b.push({type:"PATTERN",index:y,value:N}),y=P;continue}b.push({type:"CHAR",index:y,value:h[y++]})}return b.push({type:"END",index:y,value:""}),b}function u(h,b){b===void 0&&(b={});for(var y=c(h),A=b.prefixes,$=A===void 0?"./":A,P="[^"+S(b.delimiter||"/#?")+"]+?",T=[],z=0,N=0,F="",I=function(X){if(N<y.length&&y[N].type===X)return y[N++].value},m=function(X){var Z=I(X);if(Z!==void 0)return Z;var ie=y[N],ve=ie.type,q=ie.index;throw new TypeError("Unexpected "+ve+" at "+q+", expected "+X)},L=function(){for(var X="",Z;Z=I("CHAR")||I("ESCAPED_CHAR");)X+=Z;return X};N<y.length;){var C=I("CHAR"),B=I("NAME"),J=I("PATTERN");if(B||J){var M=C||"";$.indexOf(M)===-1&&(F+=M,M=""),F&&(T.push(F),F=""),T.push({name:B||z++,prefix:M,suffix:"",pattern:J||P,modifier:I("MODIFIER")||""});continue}var Q=C||I("ESCAPED_CHAR");if(Q){F+=Q;continue}F&&(T.push(F),F="");var k=I("OPEN");if(k){var M=L(),ne=I("NAME")||"",Y=I("PATTERN")||"",ue=L();m("CLOSE"),T.push({name:ne||(Y?z++:""),pattern:ne&&!Y?P:Y,prefix:M,suffix:ue,modifier:I("MODIFIER")||""});continue}m("END")}return T}a=u;function s(h,b){return p(u(h,b),b)}a=s;function p(h,b){b===void 0&&(b={});var y=E(b),A=b.encode,$=A===void 0?function(N){return N}:A,P=b.validate,T=P===void 0?!0:P,z=h.map(function(N){if(i(N)==="object")return new RegExp("^(?:"+N.pattern+")$",y)});return function(N){for(var F="",I=0;I<h.length;I++){var m=h[I];if(typeof m=="string"){F+=m;continue}var L=N?N[m.name]:void 0,C=m.modifier==="?"||m.modifier==="*",B=m.modifier==="*"||m.modifier==="+";if(Array.isArray(L)){if(!B)throw new TypeError('Expected "'+m.name+'" to not repeat, but got an array');if(L.length===0){if(C)continue;throw new TypeError('Expected "'+m.name+'" to not be empty')}for(var J=0;J<L.length;J++){var M=$(L[J],m);if(T&&!z[I].test(M))throw new TypeError('Expected all "'+m.name+'" to match "'+m.pattern+'", but got "'+M+'"');F+=m.prefix+M+m.suffix}continue}if(typeof L=="string"||typeof L=="number"){var M=$(String(L),m);if(T&&!z[I].test(M))throw new TypeError('Expected "'+m.name+'" to match "'+m.pattern+'", but got "'+M+'"');F+=m.prefix+M+m.suffix;continue}if(!C){var Q=B?"an array":"a string";throw new TypeError('Expected "'+m.name+'" to be '+Q)}}return F}}a=p;function _(h,b){var y=[],A=oe(h,y,b);return w(A,y,b)}a=_;function w(h,b,y){y===void 0&&(y={});var A=y.decode,$=A===void 0?function(P){return P}:A;return function(P){var T=h.exec(P);if(!T)return!1;for(var z=T[0],N=T.index,F=Object.create(null),I=function(C){if(T[C]===void 0)return"continue";var B=b[C-1];B.modifier==="*"||B.modifier==="+"?F[B.name]=T[C].split(B.prefix+B.suffix).map(function(J){return $(J,B)}):F[B.name]=$(T[C],B)},m=1;m<T.length;m++)I(m);return{path:z,index:N,params:F}}}a=w;function S(h){return h.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function E(h){return h&&h.sensitive?"":"i"}function K(h,b){if(!b)return h;var y=h.source.match(/\((?!\?)/g);if(y)for(var A=0;A<y.length;A++)b.push({name:A,prefix:"",suffix:"",modifier:"",pattern:""});return h}function g(h,b,y){var A=h.map(function($){return oe($,b,y).source});return new RegExp("(?:"+A.join("|")+")",E(y))}function R(h,b,y){return D(u(h,y),b,y)}function D(h,b,y){y===void 0&&(y={});for(var A=y.strict,$=A===void 0?!1:A,P=y.start,T=P===void 0?!0:P,z=y.end,N=z===void 0?!0:z,F=y.encode,I=F===void 0?function(ae){return ae}:F,m="["+S(y.endsWith||"")+"]|$",L="["+S(y.delimiter||"/#?")+"]",C=T?"^":"",B=0,J=h;B<J.length;B++){var M=J[B];if(typeof M=="string")C+=S(I(M));else{var Q=S(I(M.prefix)),k=S(I(M.suffix));if(M.pattern)if(b&&b.push(M),Q||k)if(M.modifier==="+"||M.modifier==="*"){var ne=M.modifier==="*"?"?":"";C+="(?:"+Q+"((?:"+M.pattern+")(?:"+k+Q+"(?:"+M.pattern+"))*)"+k+")"+ne}else C+="(?:"+Q+"("+M.pattern+")"+k+")"+M.modifier;else C+="("+M.pattern+")"+M.modifier;else C+="(?:"+Q+k+")"+M.modifier}}if(N)$||(C+=L+"?"),C+=y.endsWith?"(?="+m+")":"$";else{var Y=h[h.length-1],ue=typeof Y=="string"?L.indexOf(Y[Y.length-1])>-1:Y===void 0;$||(C+="(?:"+L+"(?="+m+"))?"),ue||(C+="(?="+L+"|"+m+")")}return new RegExp(C,E(y))}a=D;function oe(h,b,y){return h instanceof RegExp?K(h,b):Array.isArray(h)?g(h,b,y):R(h,b,y)}v.Bo=oe},37923:function(e){function v(a,i){(i==null||i>a.length)&&(i=a.length);for(var c=0,u=new Array(i);c<i;c++)u[c]=a[c];return u}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},82187:function(e){function v(a){if(Array.isArray(a))return a}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},96446:function(e,v,a){var i=a(37923);function c(u){if(Array.isArray(u))return i(u)}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},25098:function(e){function v(a){if(a===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},44987:function(e){function v(i){var c,u,s,p=2;for(typeof Symbol<"u"&&(u=Symbol.asyncIterator,s=Symbol.iterator);p--;){if(u&&(c=i[u])!=null)return c.call(i);if(s&&(c=i[s])!=null)return new a(c.call(i));u="@@asyncIterator",s="@@iterator"}throw new TypeError("Object is not async iterable")}function a(i){function c(u){if(Object(u)!==u)return Promise.reject(new TypeError(u+" is not an object."));var s=u.done;return Promise.resolve(u.value).then(function(p){return{value:p,done:s}})}return a=function(s){this.s=s,this.n=s.next},a.prototype={s:null,n:null,next:function(){return c(this.n.apply(this.s,arguments))},return:function(s){var p=this.s.return;return p===void 0?Promise.resolve({value:s,done:!0}):c(p.apply(this.s,arguments))},throw:function(s){var p=this.s.return;return p===void 0?Promise.reject(s):c(p.apply(this.s,arguments))}},new a(i)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},97235:function(e){function v(a,i){if(i.has(a))throw new TypeError("Cannot initialize the same private elements twice on an object")}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},28771:function(e){function v(a,i){return i.get?i.get.call(a):i.value}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},40008:function(e){function v(a,i,c){if(i.set)i.set.call(a,c);else{if(!i.writable)throw new TypeError("attempted to set read only private field");i.value=c}}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},12444:function(e){function v(a,i){if(!(a instanceof i))throw new TypeError("Cannot call a class as a function")}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},56194:function(e){function v(a,i,c){if(!i.has(a))throw new TypeError("attempted to "+c+" private field on non-instance");return i.get(a)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},33862:function(e,v,a){var i=a(28771),c=a(56194);function u(s,p){var _=c(s,p,"get");return i(s,_)}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},29777:function(e,v,a){var i=a(97235);function c(u,s,p){i(u,s),s.set(u,p)}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},25457:function(e,v,a){var i=a(40008),c=a(56194);function u(s,p,_){var w=c(s,p,"set");return i(s,w,_),_}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},74978:function(e){function v(a,i,c){if(!i.has(a))throw new TypeError("attempted to get private field on non-instance");return c}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},73190:function(e,v,a){var i=a(97235);function c(u,s){i(u,s),s.add(u)}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},42672:function(e,v,a){var i=a(21314),c=a(21771);function u(s,p,_){return c()?(e.exports=u=Reflect.construct.bind(),e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=u=function(S,E,K){var g=[null];g.push.apply(g,E);var R=Function.bind.apply(S,g),D=new R;return K&&i(D,K.prototype),D},e.exports.__esModule=!0,e.exports.default=e.exports),u.apply(null,arguments)}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},72004:function(e,v,a){var i=a(51883);function c(s,p){for(var _=0;_<p.length;_++){var w=p[_];w.enumerable=w.enumerable||!1,w.configurable=!0,"value"in w&&(w.writable=!0),Object.defineProperty(s,i(w.key),w)}}function u(s,p,_){return p&&c(s.prototype,p),_&&c(s,_),Object.defineProperty(s,"prototype",{writable:!1}),s}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},96695:function(e,v,a){var i=a(96263);function c(u,s){var p=typeof Symbol<"u"&&u[Symbol.iterator]||u["@@iterator"];if(!p){if(Array.isArray(u)||(p=i(u))||s&&u&&typeof u.length=="number"){p&&(u=p);var _=0,w=function(){};return{s:w,n:function(){return _>=u.length?{done:!0}:{done:!1,value:u[_++]}},e:function(R){throw R},f:w}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
5
5
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var S=!0,E=!1,K;return{s:function(){p=p.call(u)},n:function(){var R=p.next();return S=R.done,R},e:function(R){E=!0,K=R},f:function(){try{!S&&p.return!=null&&p.return()}finally{if(E)throw K}}}}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},26037:function(e,v,a){var i=a(48374),c=a(21771),u=a(73408);function s(p){var _=c();return function(){var S=i(p),E;if(_){var K=i(this).constructor;E=Reflect.construct(S,arguments,K)}else E=S.apply(this,arguments);return u(this,E)}}e.exports=s,e.exports.__esModule=!0,e.exports.default=e.exports},28785:function(e,v,a){var i=a(70426);function c(){return typeof Reflect<"u"&&Reflect.get?(e.exports=c=Reflect.get.bind(),e.exports.__esModule=!0,e.exports.default=e.exports):(e.exports=c=function(s,p,_){var w=i(s,p);if(w){var S=Object.getOwnPropertyDescriptor(w,p);return S.get?S.get.call(arguments.length<3?s:_):S.value}},e.exports.__esModule=!0,e.exports.default=e.exports),c.apply(this,arguments)}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},48374:function(e){function v(a){return e.exports=v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(c){return c.__proto__||Object.getPrototypeOf(c)},e.exports.__esModule=!0,e.exports.default=e.exports,v(a)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},31996:function(e,v,a){var i=a(21314);function c(u,s){if(typeof s!="function"&&s!==null)throw new TypeError("Super expression must either be null or a function");u.prototype=Object.create(s&&s.prototype,{constructor:{value:u,writable:!0,configurable:!0}}),Object.defineProperty(u,"prototype",{writable:!1}),s&&i(u,s)}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},15143:function(e){function v(a){try{return Function.toString.call(a).indexOf("[native code]")!==-1}catch{return typeof a=="function"}}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},21771:function(e){function v(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},96936:function(e){function v(a){if(typeof Symbol<"u"&&a[Symbol.iterator]!=null||a["@@iterator"]!=null)return Array.from(a)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},73964:function(e){function v(a,i){var c=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(c!=null){var u,s,p,_,w=[],S=!0,E=!1;try{if(p=(c=c.call(a)).next,i===0){if(Object(c)!==c)return;S=!1}else for(;!(S=(u=p.call(c)).done)&&(w.push(u.value),w.length!==i);S=!0);}catch(K){E=!0,s=K}finally{try{if(!S&&c.return!=null&&(_=c.return(),Object(_)!==_))return}finally{if(E)throw s}}return w}}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},69094:function(e){function v(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
6
6
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},88619:function(e){function v(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
7
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},49677:function(e){function v(a){if(a==null)throw new TypeError("Cannot destructure "+a)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},13769:function(e,v,a){var i=a(48541);function c(u,s){if(u==null)return{};var p=i(u,s),_,w;if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(u);for(w=0;w<S.length;w++)_=S[w],!(s.indexOf(_)>=0)&&Object.prototype.propertyIsEnumerable.call(u,_)&&(p[_]=u[_])}return p}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},48541:function(e){function v(a,i){if(a==null)return{};var c={},u=Object.keys(a),s,p;for(p=0;p<u.length;p++)s=u[p],!(i.indexOf(s)>=0)&&(c[s]=a[s]);return c}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},73408:function(e,v,a){var i=a(52677).default,c=a(25098);function u(s,p){if(p&&(i(p)==="object"||typeof p=="function"))return p;if(p!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return c(s)}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},21314:function(e){function v(a,i){return e.exports=v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(u,s){return u.__proto__=s,u},e.exports.__esModule=!0,e.exports.default=e.exports,v(a,i)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},5574:function(e,v,a){var i=a(82187),c=a(73964),u=a(96263),s=a(69094);function p(_,w){return i(_)||c(_,w)||u(_,w)||s()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},70426:function(e,v,a){var i=a(48374);function c(u,s){for(;!Object.prototype.hasOwnProperty.call(u,s)&&(u=i(u),u!==null););return u}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},68400:function(e){function v(a,i){return i||(i=a.slice(0)),Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(i)}}))}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},61227:function(e,v,a){var i=a(82187),c=a(96936),u=a(96263),s=a(69094);function p(_){return i(_)||c(_)||u(_)||s()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},19632:function(e,v,a){var i=a(96446),c=a(96936),u=a(96263),s=a(88619);function p(_){return i(_)||c(_)||u(_)||s()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},96263:function(e,v,a){var i=a(37923);function c(u,s){if(u){if(typeof u=="string")return i(u,s);var p=Object.prototype.toString.call(u).slice(8,-1);if(p==="Object"&&u.constructor&&(p=u.constructor.name),p==="Map"||p==="Set")return Array.from(u);if(p==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p))return i(u,s)}}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},12665:function(e,v,a){var i=a(48374),c=a(21314),u=a(15143),s=a(42672);function p(_){var w=typeof Map=="function"?new Map:void 0;return e.exports=p=function(E){if(E===null||!u(E))return E;if(typeof E!="function")throw new TypeError("Super expression must either be null or a function");if(typeof w<"u"){if(w.has(E))return w.get(E);w.set(E,K)}function K(){return s(E,arguments,i(this).constructor)}return K.prototype=Object.create(E.prototype,{constructor:{value:K,enumerable:!1,writable:!0,configurable:!0}}),c(K,E)},e.exports.__esModule=!0,e.exports.default=e.exports,p(_)}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports}}]);
7
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},13769:function(e,v,a){var i=a(48541);function c(u,s){if(u==null)return{};var p=i(u,s),_,w;if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(u);for(w=0;w<S.length;w++)_=S[w],!(s.indexOf(_)>=0)&&Object.prototype.propertyIsEnumerable.call(u,_)&&(p[_]=u[_])}return p}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},48541:function(e){function v(a,i){if(a==null)return{};var c={},u=Object.keys(a),s,p;for(p=0;p<u.length;p++)s=u[p],!(i.indexOf(s)>=0)&&(c[s]=a[s]);return c}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},73408:function(e,v,a){var i=a(52677).default,c=a(25098);function u(s,p){if(p&&(i(p)==="object"||typeof p=="function"))return p;if(p!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return c(s)}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},21314:function(e){function v(a,i){return e.exports=v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(u,s){return u.__proto__=s,u},e.exports.__esModule=!0,e.exports.default=e.exports,v(a,i)}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},5574:function(e,v,a){var i=a(82187),c=a(73964),u=a(96263),s=a(69094);function p(_,w){return i(_)||c(_,w)||u(_,w)||s()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},70426:function(e,v,a){var i=a(48374);function c(u,s){for(;!Object.prototype.hasOwnProperty.call(u,s)&&(u=i(u),u!==null););return u}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},68400:function(e){function v(a,i){return i||(i=a.slice(0)),Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(i)}}))}e.exports=v,e.exports.__esModule=!0,e.exports.default=e.exports},61227:function(e,v,a){var i=a(82187),c=a(96936),u=a(96263),s=a(69094);function p(_){return i(_)||c(_)||u(_)||s()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},19632:function(e,v,a){var i=a(96446),c=a(96936),u=a(96263),s=a(88619);function p(_){return i(_)||c(_)||u(_)||s()}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports},96263:function(e,v,a){var i=a(37923);function c(u,s){if(u){if(typeof u=="string")return i(u,s);var p=Object.prototype.toString.call(u).slice(8,-1);if(p==="Object"&&u.constructor&&(p=u.constructor.name),p==="Map"||p==="Set")return Array.from(u);if(p==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(p))return i(u,s)}}e.exports=c,e.exports.__esModule=!0,e.exports.default=e.exports},12665:function(e,v,a){var i=a(48374),c=a(21314),u=a(15143),s=a(42672);function p(_){var w=typeof Map=="function"?new Map:void 0;return e.exports=p=function(E){if(E===null||!u(E))return E;if(typeof E!="function")throw new TypeError("Super expression must either be null or a function");if(typeof w<"u"){if(w.has(E))return w.get(E);w.set(E,K)}function K(){return s(E,arguments,i(this).constructor)}return K.prototype=Object.create(E.prototype,{constructor:{value:K,enumerable:!1,writable:!0,configurable:!0}}),c(K,E)},e.exports.__esModule=!0,e.exports.default=e.exports,p(_)}e.exports=p,e.exports.__esModule=!0,e.exports.default=e.exports}}]);