@nocobase/client 1.9.46 → 1.9.49
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.
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function getOperators(): {
|
|
2
|
+
is_logic(logic: any): boolean;
|
|
3
|
+
truthy(value: any): boolean;
|
|
4
|
+
getOperator(logic: any): string;
|
|
5
|
+
getValues(logic: any): any;
|
|
6
|
+
apply(logic: any, data: any): any;
|
|
7
|
+
uses_data(logic: any): any[];
|
|
8
|
+
addOperation(name: any, code: any): void;
|
|
9
|
+
rmOperation(name: any): void;
|
|
10
|
+
rule_like(rule: any, pattern: any): any;
|
|
11
|
+
};
|
package/es/index.mjs
CHANGED
|
@@ -8858,7 +8858,7 @@ function addAppVersion(e, t) {
|
|
|
8858
8858
|
addAppVersion((o = e.properties) == null ? void 0 : o[n], t);
|
|
8859
8859
|
}), e;
|
|
8860
8860
|
}
|
|
8861
|
-
const name = "@nocobase/client", version = "1.9.
|
|
8861
|
+
const name = "@nocobase/client", version = "1.9.49", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
|
|
8862
8862
|
"@ahooksjs/use-url-state": "3.5.1",
|
|
8863
8863
|
"@ant-design/cssinjs": "^1.11.1",
|
|
8864
8864
|
"@ant-design/icons": "^5.6.1",
|
|
@@ -8879,9 +8879,9 @@ const name = "@nocobase/client", version = "1.9.46", license = "AGPL-3.0", main
|
|
|
8879
8879
|
"@formily/reactive-react": "^2.2.27",
|
|
8880
8880
|
"@formily/shared": "^2.2.27",
|
|
8881
8881
|
"@formily/validator": "^2.2.27",
|
|
8882
|
-
"@nocobase/evaluators": "1.9.
|
|
8883
|
-
"@nocobase/sdk": "1.9.
|
|
8884
|
-
"@nocobase/utils": "1.9.
|
|
8882
|
+
"@nocobase/evaluators": "1.9.49",
|
|
8883
|
+
"@nocobase/sdk": "1.9.49",
|
|
8884
|
+
"@nocobase/utils": "1.9.49",
|
|
8885
8885
|
ahooks: "^3.7.2",
|
|
8886
8886
|
antd: "5.24.2",
|
|
8887
8887
|
"antd-mobile": "^5.41.1",
|
|
@@ -31690,11 +31690,16 @@ const DragHandler = (e) => {
|
|
|
31690
31690
|
const { appends: F } = d(), w = n((T = m.current) == null ? void 0 : T.collectionName);
|
|
31691
31691
|
a.parseVariable(I, v, { appends: F }).then(({ value: D }) => {
|
|
31692
31692
|
nextTick(() => {
|
|
31693
|
-
const B =
|
|
31693
|
+
const B = normalizeDisplayAssociationFieldValue(
|
|
31694
|
+
transformVariableValue(D, { targetCollectionField: m.current })
|
|
31695
|
+
);
|
|
31694
31696
|
if (B == null)
|
|
31695
31697
|
i.value != null && (i.value = null);
|
|
31696
31698
|
else {
|
|
31697
|
-
|
|
31699
|
+
const N = normalizeDisplayAssociationFieldValue(
|
|
31700
|
+
transformVariableValue(i.value, { targetCollectionField: m.current })
|
|
31701
|
+
);
|
|
31702
|
+
if (_.isEqual(N, B))
|
|
31698
31703
|
return;
|
|
31699
31704
|
i.setValue(B), i.componentProps = P(x({}, i.componentProps), {
|
|
31700
31705
|
readOnlySubmit: !0,
|
|
@@ -31706,7 +31711,29 @@ const DragHandler = (e) => {
|
|
|
31706
31711
|
console.error(D);
|
|
31707
31712
|
});
|
|
31708
31713
|
}, [S, g]);
|
|
31709
|
-
}
|
|
31714
|
+
};
|
|
31715
|
+
function normalizeDisplayAssociationFieldValue(e) {
|
|
31716
|
+
return untracked(() => {
|
|
31717
|
+
const t = toJS(e);
|
|
31718
|
+
return removeCircularReferences(t);
|
|
31719
|
+
});
|
|
31720
|
+
}
|
|
31721
|
+
function removeCircularReferences(e, t = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakSet()) {
|
|
31722
|
+
if (e == null || typeof e != "object" || !Array.isArray(e) && (!_.isPlainObject(e) || Object.getPrototypeOf(e) === null))
|
|
31723
|
+
return e;
|
|
31724
|
+
if (n.has(e))
|
|
31725
|
+
return;
|
|
31726
|
+
if (t.has(e))
|
|
31727
|
+
return t.get(e);
|
|
31728
|
+
const o = Array.isArray(e) ? [] : {};
|
|
31729
|
+
return t.set(e, o), n.add(e), Array.isArray(e) ? e.forEach((r, a) => {
|
|
31730
|
+
o[a] = removeCircularReferences(r, t, n);
|
|
31731
|
+
}) : Object.keys(e).forEach((r) => {
|
|
31732
|
+
const a = removeCircularReferences(e[r], t, n);
|
|
31733
|
+
a !== void 0 && (o[r] = a);
|
|
31734
|
+
}), n.delete(e), o;
|
|
31735
|
+
}
|
|
31736
|
+
const useContextVariable = () => {
|
|
31710
31737
|
var p, m;
|
|
31711
31738
|
let e;
|
|
31712
31739
|
const { isPopupVisibleControlledByURL: t } = usePopupSettings(), { params: n } = useCurrentPopupContext(), o = useCollection(), r = useDataBlockRequestData(), a = useTableBlockContextBasicValue() || {};
|
|
@@ -44639,7 +44666,11 @@ function AttachmentList(e) {
|
|
|
44639
44666
|
[l]
|
|
44640
44667
|
), m = useCallback(
|
|
44641
44668
|
(h) => {
|
|
44642
|
-
|
|
44669
|
+
if (n) {
|
|
44670
|
+
const g = o.filter((f) => f.id !== h.id);
|
|
44671
|
+
g.length === 0 ? r(null) : r(g);
|
|
44672
|
+
} else
|
|
44673
|
+
r(null);
|
|
44643
44674
|
},
|
|
44644
44675
|
[n, r, o]
|
|
44645
44676
|
);
|
package/es/schema-component/antd/form-item/hooks/useLazyLoadDisplayAssociationFieldsOfForm.d.ts
CHANGED
|
@@ -14,3 +14,29 @@
|
|
|
14
14
|
*/
|
|
15
15
|
declare const useLazyLoadDisplayAssociationFieldsOfForm: () => void;
|
|
16
16
|
export default useLazyLoadDisplayAssociationFieldsOfForm;
|
|
17
|
+
/**
|
|
18
|
+
* Remove circular references from an object while preserving shared references.
|
|
19
|
+
*
|
|
20
|
+
* This function distinguishes between:
|
|
21
|
+
* - Circular references: Objects that reference themselves in the recursion path (removed)
|
|
22
|
+
* - Shared references: Objects that appear multiple times but aren't circular (preserved)
|
|
23
|
+
*
|
|
24
|
+
* @param value - The value to process
|
|
25
|
+
* @param seen - WeakMap cache of processed objects
|
|
26
|
+
* @param path - WeakSet tracking current recursion path
|
|
27
|
+
* @returns The processed value with circular references removed
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // Shared reference (preserved)
|
|
31
|
+
* const shared = { name: "shared" };
|
|
32
|
+
* removeCircularReferences({ a: shared, b: shared });
|
|
33
|
+
* // Returns: { a: { name: "shared" }, b: { name: "shared" } }
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Circular reference (removed)
|
|
37
|
+
* const circular = { name: "circular" };
|
|
38
|
+
* circular.self = circular;
|
|
39
|
+
* removeCircularReferences(circular);
|
|
40
|
+
* // Returns: { name: "circular" }
|
|
41
|
+
*/
|
|
42
|
+
export declare function removeCircularReferences(value: any, seen?: WeakMap<object, any>, path?: WeakSet<object>): any;
|
package/lib/index.js
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
width: 100%;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
`,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(m==null?void 0:m.name)||(0,import_shared.uid)(),[a,m]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client3.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:a}=yield replaceVariables(e,{variables:t,localVariables:o});try{const l=evaluate(n,x({now:()=>new Date().toString()},a));i(l)}catch(l){console.error(l)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=P(x({},o),{name:i}),a=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else a(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.9.46",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.9.46","@nocobase/sdk":"1.9.46","@nocobase/utils":"1.9.46",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^15.1.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.28"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,d=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(d=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(l);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const l=i(t),c=this.current.addProperty(l.name||(0,import_shared.uid)(),l);c.parent=this.current;const[u,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:d,wrap:u,wrapped:l},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;let l=0,c=0,u=!1;const d={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(d[f]=_,this.current.parent.removeProperty(f))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),m=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var C;if(!v)return null;if(typeof v!="string")return v;const b=(0,import_get.default)(n,v);return(C=b==null?void 0:b[LAZY_COMPONENT_KEY])!=null?C:b},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,C)=>{const b=S=>{Object.keys(S).forEach(y=>{const F=S[y];y==="title"&&(m.title=F,p.title=F),y==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{m.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{m.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const S={};return(0,import_set.default)(S,v,C),b(S)}b(v),d()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,C)=>{_.remove(v,C)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,C,b)=>{_.insertAdjacent(v,C,b)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[a,l]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>q(this,null,function*(){l(!0);const d=yield o(e);l(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),C=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(C)||(h=C)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:a}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??l,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const a=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(a==null?void 0:a.interface))return!0;if(a!=null&&a.target){if(Array.isArray(i))return!0;const l=a.targetKey||"id";if(i&&i[l]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const a=o(`${r}.${i}`);return a!=null&&a.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(a.type)&&(n=(0,import_client.getValuesByPath)(n,a.targetKey||"id"),i=`${i}.${a.targetKey||"id"}`,(a==null?void 0:a.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,a]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(d=>d.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let C=d;const b=o.find(j=>j.uid===h.uid);if(!b)return;import_lodash.default.isFunction(u)&&(u=u(b,h,getSourceKey$1(p,b.field))),import_lodash.default.isFunction(d)&&(C=d(b,h)),import_lodash.default.isFunction(m)&&(m=m(b));const S=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[C]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},S),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,a)=>a["x-component"]==="AssociationField."+e?a:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,a,l,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),C=useRecord(),{isNew:b}=useCollectionRecord()||{},S=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:y}=useParsedFilter({filterOption:S,onFilterChange:()=>{b&&_.reset()}}),F=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=C==null?void 0:C[F==null?void 0:F.sourceKey],A=(0,import_react2.useMemo)(()=>{const D=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([D&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,y]),D&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,y,j,h]);return(0,import_react2.useMemo)(()=>P(x({resource:F==null?void 0:F.target,action:m},p),{params:P(x({},p==null?void 0:p.params),{filter:A})}),[F==null?void 0:F.target,m,A,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(r);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[r]),n=(0,import_react2.useCallback)(l=>{try{const c=JSON.stringify(l);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:l}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),a=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:a}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const l=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",l),()=>{window.removeEventListener("nocobase-table-settings-changed",l)}},[o]);const a=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const l=new Map;a.forEach(p=>{l.set(p.key,p)});const c=e.map(p=>{const h=l.get(p.key);if(h){const g=p.columnHidden||!h.visible,_=h.width||p.width,f=h.fixed||p.fixed;return P(x({},p),{columnHidden:g,fixed:f,width:_,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,a])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
65
|
+
`,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),d=useCompile(),m=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(m==null?void 0:m.name)||(0,import_shared.uid)(),[a,m]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:d(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,d,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client3.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:a}=yield replaceVariables(e,{variables:t,localVariables:o});try{const l=evaluate(n,x({now:()=>new Date().toString()},a));i(l)}catch(l){console.error(l)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=P(x({},o),{name:i}),a=(u,d)=>{const m=this.items.findIndex(p=>p.name===u);m===-1?this.items.push(d):this.items[m]=d};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),d=c.children.findIndex(m=>m.name===u);d===-1?c.children.push(n):c.children[d]=n}else a(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.9.49",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.9.49","@nocobase/sdk":"1.9.49","@nocobase/utils":"1.9.49",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^15.1.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.28"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:d,removed:m}){var p;let h=[];if((d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),(m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),m!=null&&m["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${m["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,d=0;this.current.parent.mapProperties((_,f)=>{f===this.current.name&&(d=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p["x-index"]=d,p.parent=this.current.parent,this.current.parent.setProperties(l);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:m,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),d=this.current.addProperty(u.name||(0,import_shared.uid)(),u);d["x-index"]=0,d.parent=this.current,this.current.setProperties(l);const[m,p]=splitWrapSchema(d,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:m,wrapped:u},r))}insertBeforeEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;delete t["x-index"];const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const l=i(t),c=this.current.addProperty(l.name||(0,import_shared.uid)(),l);c.parent=this.current;const[u,d]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:d,wrap:u,wrapped:l},r))}insertAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o==null?void 0:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;let l=0,c=0,u=!1;const d={};if(this.current.parent.mapProperties((_,f)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(d[f]=_,this.current.parent.removeProperty(f))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const m=i(t),p=this.current.parent.addProperty(m.name||(0,import_shared.uid)(),m);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(d);const[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,wrapped:m},r))}}function useFindComponent(){const e=(0,import_react2.useContext)(import_react.SchemaOptionsContext),t=(0,import_react2.useMemo)(()=>(e==null?void 0:e.components)||{},[e]);return o=>{if(!o)return null;if(typeof o!="string")return o;const r=(0,import_get.default)(t,o);return r||console.error(`[nocobase]: Component "${o}" not found`),r}}function useDesignable(){const{designable:e,setDesignable:t,refresh:o,reset:r}=(0,import_react2.useContext)(SchemaComponentContext),i=(0,import_react2.useContext)(import_react.SchemaOptionsContext),n=(0,import_react2.useMemo)(()=>(i==null?void 0:i.components)||{},[i]),a=(0,import_react2.useMemo)(()=>()=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{}),[]),l=(0,import_ahooks.useUpdate)(),c=useRefreshFieldSchema(),u=useRefreshComponent(),d=(0,import_react2.useCallback)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),m=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:d,current:p,model:m,appVersion:clientPkg.version}),[g,h,d,p,m]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:d,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var C;if(!v)return null;if(typeof v!="string")return v;const b=(0,import_get.default)(n,v);return(C=b==null?void 0:b[LAZY_COMPONENT_KEY])!=null?C:b},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,C)=>{const b=S=>{Object.keys(S).forEach(y=>{const F=S[y];y==="title"&&(m.title=F,p.title=F),y==="x-decorator-props"&&(m.decoratorProps||(m.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(j=>{m.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(m.componentProps||(m.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{m.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const S={};return(0,import_set.default)(S,v,C),b(S)}b(v),d()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,C)=>{_.remove(v,C)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,C,b)=>{_.insertAdjacent(v,C,b)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[a,l]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>q(this,null,function*(){l(!0);const d=yield o(e);l(!1),n(d),t==null||t(d)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:d}){return d.startsWith("$")&&d!=="$and"&&d!=="$or"},transformValue(d){if(!isVariable$1(d))return d;const m=getVariableName(d),p=r(m);let h=null;const g=getPath(d).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),C=(0,import_client.getValuesByPath)({[m]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(C)||(h=C)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:a}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),d=r??l,m=o??(d[LinkageRuleDataKeyMap[t]]||(d==null?void 0:d.parent[LinkageRuleDataKeyMap[t]])),p=useApp(),h=(0,import_react2.useCallback)(()=>{m&&e&&getSatisfiedValueMap({rules:m,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,m,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const a=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(a==null?void 0:a.interface))return!0;if(a!=null&&a.target){if(Array.isArray(i))return!0;const l=a.targetKey||"id";if(i&&i[l]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const a=o(`${r}.${i}`);return a!=null&&a.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(a.type)&&(n=(0,import_client.getValuesByPath)(n,a.targetKey||"id"),i=`${i}.${a.targetKey||"id"}`,(a==null?void 0:a.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,a]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(d=>d.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(d=>d.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,d="id",m="$eq")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let C=d;const b=o.find(j=>j.uid===h.uid);if(!b)return;import_lodash.default.isFunction(u)&&(u=u(b,h,getSourceKey$1(p,b.field))),import_lodash.default.isFunction(d)&&(C=d(b,h)),import_lodash.default.isFunction(m)&&(m=m(b));const S=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[C]:{[m]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},S),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,a)=>a["x-component"]==="AssociationField."+e?a:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,a,l,c,u,d;const{action:m="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),C=useRecord(),{isNew:b}=useCollectionRecord()||{},S=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((d=p==null?void 0:p.params)==null?void 0:d.filter),{filter:y}=useParsedFilter({filterOption:S,onFilterChange:()=>{b&&_.reset()}}),F=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=C==null?void 0:C[F==null?void 0:F.sourceKey],A=(0,import_react2.useMemo)(()=>{const D=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([D&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,y]),D&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,y,j,h]);return(0,import_react2.useMemo)(()=>P(x({resource:F==null?void 0:F.target,action:m},p),{params:P(x({},p==null?void 0:p.params),{filter:A})}),[F==null?void 0:F.target,m,A,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableUidContext=(0,import_react2.createContext)(null),useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react2.useContext)(TableUidContext),r=`nocobase_table_column_settings_${o}`,i=(0,import_react2.useCallback)(()=>{try{const l=localStorage.getItem(r);return l?JSON.parse(l):null}catch(l){return console.warn("Failed to parse table column settings from localStorage:",l),null}},[r]),n=(0,import_react2.useCallback)(l=>{try{const c=JSON.stringify(l);localStorage.setItem(r,c);const u=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:l}});window.dispatchEvent(u)}catch(c){console.warn("Failed to save table column settings to localStorage:",c),import_antd.message.error(t("Failed to save table settings"))}},[r,o,t]),a=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(r);const l=new CustomEvent("nocobase-table-settings-changed",{detail:{key:r,tableId:o,settings:null}});window.dispatchEvent(l)}catch(l){console.warn("Failed to clear table column settings from localStorage:",l),import_antd.message.error(t("Failed to clear table settings"))}},[r,o,t]);return{getSettings:i,saveSettings:n,clearSettings:a}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react2.useContext)(TableUidContext),{getSettings:r}=useColumnSettings(),[i,n]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const l=c=>{const{key:u,tableId:d}=c.detail;(u.includes(o)||d===o)&&n(m=>m+1)};return window.addEventListener("nocobase-table-settings-changed",l),()=>{window.removeEventListener("nocobase-table-settings-changed",l)}},[o]);const a=(0,import_react2.useMemo)(()=>r(),[r,i]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!a||a.length===0)return e;const l=new Map;a.forEach(p=>{l.set(p.key,p)});const c=e.map(p=>{const h=l.get(p.key);if(h){const g=p.columnHidden||!h.visible,_=h.width||p.width,f=h.fixed||p.fixed;return P(x({},p),{columnHidden:g,fixed:f,width:_,_orderIndex:h.order})}return p}),u=[],d=[];c.forEach(p=>{p._orderIndex!==void 0?u.push(p):d.push(p)}),u.sort((p,h)=>(p._orderIndex||0)-(h._orderIndex||0));const m=[...u,...d];return m.forEach(p=>{delete p._orderIndex}),m},[e,a])}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
66
66
|
&.skeleton-wrapper {
|
|
67
67
|
width: 100%;
|
|
68
68
|
background: ${o.colorBgContainer};
|
|
@@ -637,7 +637,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
637
637
|
&:hover {
|
|
638
638
|
background-color: ${n.colorFillSecondary};
|
|
639
639
|
}
|
|
640
|
-
`;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[d.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>c(h.value),className:p,children:r(h.label)},h.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),m.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:p,onClick:()=>c(h.value),title:r(h.label),children:r(h.label)},h.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:P(x({},e.style),{width:"100%"}),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({options:r(options),open:a,onDropdownVisibleChange:l},e),{allowClear:!1,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(t==null?void 0:t.type)?100:null},value:(t==null?void 0:t.type)||"exact",onChange:c,dropdownRender:u})),["past","next"].includes(t==null?void 0:t.type)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:t==null?void 0:t.number,onChange:d=>{const m=P(x({},t),{number:d});o(m)}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:t==null?void 0:t.unit,style:{minWidth:130,maxWidth:140},onChange:d=>{const m=P(x({},t),{unit:d});o(m)},options:[{value:"day",label:i("Day")},{value:"week",label:i("Calendar week")},{value:"month",label:i("Calendar Month")},{value:"year",label:i("Calendar Year")}],popupMatchSelectWidth:!0},"unit")],((t==null?void 0:t.type)==="exact"||!(t!=null&&t.type))&&(0,import_jsx_runtime.jsx)(SmartDatePicker,x({},e))]})},common=Object.freeze(Object.defineProperty({__proto__:null,DateFilterDynamicComponent,DndContext,DragHandler,DraggableContext,ShowFormData,Sortable,SortableContext,SortableItem,SortableProvider,getRenderContent},Symbol.toStringTag,{value:"Module"})),useStyles$9=genStyleHook("nb-block-item",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-form-item:hover":{"> .general-schema-designer":{background:"var(--colorBgSettingsHover) !important",border:"0 !important",top:"-5px !important",bottom:"-5px !important",left:"-5px !important",right:"-5px !important"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:0,bottom:0,left:0,right:0,display:"none",border:"2px solid var(--colorBorderSettingsHover)",pointerEvents:"none","> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:"var(--colorSettings)",color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-card":{borderRadius:e.borderRadiusBlock}}}}),useGetAriaLabelOfBlockItem=e=>{var t,o;const r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:n==null?void 0:n.displayName,l=i(r["x-collection-field"]);let{name:c}=useBlockContext()||{},{name:u,getField:d}=useCollection_deprecated();c=e||(c!=="action"?c:"");const m=i(r.title)||i((o=(t=d(r.name))==null?void 0:t.uiSchema)==null?void 0:o.title);return{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",["block-item",a,u,c,l,m,p].filter(Boolean).join("-")),[a,u,c,l,m])}},BlockItem=withDynamicSchemaProps(e=>{const{className:t,children:o,style:r}=useProps(e),{componentCls:i,hashId:n}=useStyles$9(),a=(0,import_react.useFieldSchema)(),{render:l}=useSchemaToolbarRender(a),{getAriaLabel:c}=useGetAriaLabelOfBlockItem(e.name),u=(0,import_react2.useMemo)(()=>c(),[c]),d=useCollection(),m=a["x-decorator"]==="FormItem"&&a["x-block-linkage-rules"],p=a["x-component"]==="Iframe"&&a["x-block-linkage-rules"],h=(0,import_jsx_runtime.jsxs)(SortableItem,{role:"button","aria-label":u,className:(0,import_classnames.default)("nb-block-item",t,i,n),style:r,children:[l(),(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:console.log,children:o})]});return d&&!m&&!p?h:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:h})},{displayName:"BlockItem"}),TestDesigner=()=>{const{remove:e}=useDesignable();return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)("a",{onClick:()=>{e()},children:"删除"}),(0,import_jsx_runtime.jsx)(DragHandler,{})]})},FilterFormDesigner=()=>(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FilterFormItemSettings"}),useOperatorList=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection_deprecated(),{getCollectionFields:o,getInterface:r}=useCollectionManager_deprecated();return(0,import_react2.useMemo)(()=>{var i,n,a,l,c;const u=(i=e["x-designer-props"])==null?void 0:i.interface,d=o(t);if(u)return((a=(n=r(u))==null?void 0:n.filterable)==null?void 0:a.operators)||[];const m=d.find(p=>p.name===e.name);return(((c=(l=r(m==null?void 0:m.interface))==null?void 0:l.filterable)==null?void 0:c.operators)||[]).filter(p=>typeof p.visible!="function"||p.visible(m))},[e.name])},EditTitle=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=useCompile(),c=o(i.name)||t(i["x-collection-field"]);return c?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:n("Edit field title"),schema:{type:"object",title:n("Edit field title"),properties:{title:{title:n("Field title"),default:r==null?void 0:r.title,description:`${n("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:u})=>{var d;const m=u.trim()===""?(d=c==null?void 0:c.uiSchema)==null?void 0:d.title:u;r.title=l(m),i.title=u,a.emit("patch",{schema:{"x-uid":i["x-uid"],title:i.title}}),a.refresh()}},"edit-field-title"):null},EditDescription=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable();return e.readPretty?null:(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:o("Edit description"),schema:{type:"object",title:o("Edit description"),properties:{description:{default:e==null?void 0:e.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({description:i})=>{e.description=i,t.description=i,r.emit("patch",{schema:{"x-uid":t["x-uid"],description:t.description}}),r.refresh()}},"edit-description")},EditTooltip=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable();return t.readPretty?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:r("Edit tooltip"),schema:{type:"object",title:r("Edit description"),properties:{tooltip:{default:(e=o==null?void 0:o["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({tooltip:n})=>{t.decoratorProps.tooltip=n,o["x-decorator-props"]=o["x-decorator-props"]||{},o["x-decorator-props"].tooltip=n,i.emit("patch",{schema:{"x-uid":o["x-uid"],"x-decorator-props":o["x-decorator-props"]}}),i.refresh()}},"edit-tooltip"):null},EditRequired=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r,refresh:i}=useDesignable();return!e.readPretty&&t["x-component"]!=="FormField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:o("Required"),checked:t.required,onChange:n=>{const a={"x-uid":t["x-uid"]};e.required=n,t.required=n,a.required=n,r.emit("patch",{schema:a}),i()}},"required"):null},EditValidationRules=()=>{var e;const{getInterface:t,getCollectionJoinField:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),{form:i}=useFormBlockContext(),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{t:l}=(0,import_react_i18next.useTranslation)(),{dn:c,refresh:u}=useDesignable(),d=r(a.name)||o(a["x-collection-field"]),m=t(d==null?void 0:d.interface),p=(e=m==null?void 0:m.validateSchema)==null?void 0:e.call(m,a),h=g=>g!=null&&!Number.isNaN(g);return i&&!(i!=null&&i.readPretty)&&p?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:l("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:l("Set validation rules"),properties:{rules:{type:"array",default:a==null?void 0:a["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},p),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:g=>{var _;const f=[];for(const b of g.rules)f.push(import_lodash.default.pickBy(b,h));const v={"x-uid":a["x-uid"]};if(["percent"].includes(d==null?void 0:d.interface))for(const b of f)(b.maxValue||b.minValue)&&(b.percentMode=!0),b.percentFormat&&(b.percentFormats=!0);const C=import_lodash.default.concat([],((_=d==null?void 0:d.uiSchema)==null?void 0:_["x-validator"])||[],f);n.validator=C,n.required=a.required,a["x-validator"]=f,v["x-validator"]=f,c.emit("patch",{schema:v}),u()}}):null},EditDefaultValue=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),{form:r}=useFormBlockContext(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l,refresh:c}=useDesignable(),u=o(n.name)||t(n["x-collection-field"]);return r&&!(r!=null&&r.readPretty)&&(e=u==null?void 0:u.uiSchema)!=null&&e.type?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:a("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:a("Set default value"),properties:{default:P(x({},u==null?void 0:u.uiSchema),{name:"default",title:a("Default value"),"x-decorator":"FormItem",default:n.default||(u==null?void 0:u.defaultValue)})}},onSubmit:d=>{const m={"x-uid":n["x-uid"]};i.value!==d.default&&(i.value=d.default),n.default=d.default,m.default=d.default,l.emit("patch",{schema:m}),c()}}):null},EditComponent=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l}=useDesignable(),c=r(n.name)||t(n["x-collection-field"]),u=useFieldModeOptions(),d=["belongsTo","hasOne","hasMany","belongsToMany"].includes(c==null?void 0:c.type),m=o(c==null?void 0:c.target),p=isFileCollection(m);return d&&u?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:a("Field component"),options:u,value:((e=i==null?void 0:i.componentProps)==null?void 0:e.mode)||(p?"FileManager":"Select"),onChange:h=>{const g={"x-uid":n["x-uid"]};n["x-component-props"]=n["x-component-props"]||{},n["x-component-props"].mode=h,g["x-component-props"]=n["x-component-props"],i.componentProps=i.componentProps||{},i.componentProps.mode=h,l.emit("patch",{schema:g}),l.refresh()}},"field-mode"):null},EditPattern=()=>{const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),{form:o}=useFormBlockContext(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=t(i.name)||e(i["x-collection-field"]);let c="editable";return i["x-disabled"]===!0&&(c="readonly"),i["x-read-pretty"]===!0&&(c="read-pretty"),o&&!(o!=null&&o.readPretty)&&(l==null?void 0:l.interface)!=="o2m"&&!isPatternDisabled(i)?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:n("Pattern"),options:[{label:n("Editable"),value:"editable"},{label:n("Readonly"),value:"readonly"},{label:n("Easy-reading"),value:"read-pretty"}],value:c,onChange:u=>{const d={"x-uid":i["x-uid"]};switch(u){case"readonly":{i["x-read-pretty"]=!1,i["x-disabled"]=!0,d["x-read-pretty"]=!1,d["x-disabled"]=!0,r.readPretty=!1,r.disabled=!0;break}case"read-pretty":{i["x-read-pretty"]=!0,i["x-disabled"]=!1,d["x-read-pretty"]=!0,d["x-disabled"]=!1,r.readPretty=!0;break}default:{i["x-read-pretty"]=!1,i["x-disabled"]=!1,d["x-read-pretty"]=!1,d["x-disabled"]=!1,r.readPretty=!1,r.disabled=!1;break}}a.emit("patch",{schema:d}),a.refresh()}},"pattern"):null},useEnsureOperatorsValid=()=>{useCollectOperator();const e=(0,import_react.useFieldSchema)(),t=useOperatorList(),{getOperators:o,collectOperator:r}=useOperators(),i=o();i&&t.length&&!i[e.name]&&r(e.name,t[0].value)},EditOperator=()=>{const e=useCompile(),t=(0,import_react.useFieldSchema)(),o=(0,import_react.useField)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable(),n=useOperatorList(),{getOperator:a,collectOperator:l}=useOperators();return n.length&&!a(t.name)&&l(t.name,n[0].value),n.length?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:r("Operator"),value:a(t.name),options:e(n),onChange:c=>{var u,d,m,p,h,g;l(t.name,c),import_lodash.default.set(t,"x-filter-operator",c);const _=n.find(v=>v.value===c);let f=x({},t["x-component-props"]);o.value=void 0,(u=_==null?void 0:_.schema)!=null&&u["x-component"]&&!(_!=null&&_.onlyFilterAction)?(import_lodash.default.set(t,"x-component-props.component",(d=_.schema)==null?void 0:d["x-component"]),import_lodash.default.set(o,"componentProps.component",(m=_.schema)==null?void 0:m["x-component"]),f=x(x(P(x({},t["x-component-props"]),{component:_.schema["x-component"]}),o.componentProps),(p=_.schema)==null?void 0:p["x-component-props"])):(h=t["x-component-props"])!=null&&h.component&&(import_lodash.default.set(t,"x-component-props.component",null),import_lodash.default.set(o,"componentProps.component",null),f=x(P(x({},t["x-component-props"]),{component:null}),(g=_.schema)==null?void 0:g["x-component-props"])),o.componentProps=f,t["x-component-props"]=f,t.default=null,o.value=null,o.initialValue=null,i.emit("patch",{schema:{"x-uid":t["x-uid"],"x-component-props":f,"x-filter-operator":c,default:null}}),i.refresh()}},"operator"):null},EditTitleField=()=>{var e,t,o;const{getCollectionFields:r,getCollectionJoinField:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),{t:c}=(0,import_react_i18next.useTranslation)(),{dn:u}=useDesignable(),d=useCompile(),m=n(l.name)||i(l["x-collection-field"]),p=(m!=null&&m.target?r(m==null?void 0:m.target):(e=r(m==null?void 0:m.targetCollection))!=null?e:[]).filter(h=>!(h!=null&&h.target)&&h.type!=="boolean").map(h=>{var g;return{value:h==null?void 0:h.name,label:d((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||(h==null?void 0:h.name)}});return p.length>0&&l["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:c("Title field"),options:p,value:(o=(t=a==null?void 0:a.componentProps)==null?void 0:t.fieldNames)==null?void 0:o.label,onChange:h=>{var g,_;const f={"x-uid":l["x-uid"]},v=P(x(x({},(_=(g=m==null?void 0:m.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:_.fieldNames),a.componentProps.fieldNames),{label:h});l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].fieldNames=v,f["x-component-props"]=l["x-component-props"],a.componentProps.fieldNames=l["x-component-props"].fieldNames,u.emit("patch",{schema:f}),u.refresh()}},"title-field"):null},isDisplayField=e=>e.includes("."),useLazyLoadDisplayAssociationFieldsOfForm=()=>{var e;const{name:t}=useCollection_deprecated(),{getCollectionJoinField:o,getCollection:r}=useCollectionManager_deprecated(),i=(0,import_react.useForm)(),n=(0,import_react.useFieldSchema)(),a=useVariables$1(),l=(0,import_react.useField)(),{formValue:c}=useSubFormValue(),{isInSubForm:u,isInSubTable:d}=useFlag()||{},{getAssociationAppends:m}=useAssociationNames(),p=n.name.toString(),h=(0,import_react2.useRef)(null),g=(0,import_react2.useRef)(null);h.current==null&&isDisplayField(p)&&(h.current=o(`${t}.${p}`)),g.current==null&&isDisplayField(p)&&(g.current=o(`${t}.${p.split(".")[0]}`));const _=(0,import_react2.useMemo)(()=>!isDisplayField(p)||!a||t==="fields"||!h.current,[p,a,t,h.current]),f=_?{}:(0,import_reactive.untracked)(()=>import_lodash.default.cloneDeep(u||d?c:i.values)),v=isDisplayField(p)&&g.current?import_lodash.default.get(f,`${p.split(".")[0]}.${((e=g.current)==null?void 0:e.targetKey)||"id"}`):void 0,C=(0,import_react2.useRef)(v);import_lodash.default.isEqual(C.current,v)||(C.current=v);const b=C.current;(0,import_react2.useEffect)(()=>{var S;if(_||import_lodash.default.isEmpty(f))return;const y={name:"$nForm",ctx:f,collectionName:t,dataSource:h.current.dataSourceKey},F=`{{ $nForm.${p} }}`;if(b==null)return;const{appends:j}=m(),A=r((S=h.current)==null?void 0:S.collectionName);a.parseVariable(F,y,{appends:j}).then(({value:D})=>{(0,import_client.nextTick)(()=>{const N=transformVariableValue(D,{targetCollectionField:h.current});if(N==null)l.value!=null&&(l.value=null);else{if(import_lodash.default.isEqual(l.value,N))return;l.setValue(N),l.componentProps=P(x({},l.componentProps),{readOnlySubmit:!0,filterTargetKey:(A==null?void 0:A.filterTargetKey)||"id"})}})}).catch(D=>{console.error(D)})},[b,_])},useContextVariable=()=>{var e,t;let o;const{isPopupVisibleControlledByURL:r}=usePopupSettings(),{params:i}=useCurrentPopupContext(),n=useCollection(),a=useDataBlockRequestData(),l=useTableBlockContextBasicValue()||{};r()?o=(e=getStoredPopupContext(i==null?void 0:i.popupuid))==null?void 0:e.tableBlockContext:o=P(x({},l),{collection:n,blockData:a});const{field:c,blockData:u,rowKey:d,collection:m}=o||{},p=(0,import_react2.useMemo)(()=>{var h,g;return(g=(h=u==null?void 0:u.data)==null?void 0:h.filter)==null?void 0:g.call(h,_=>{var f,v;return(v=((f=c==null?void 0:c.data)==null?void 0:f.selectedRowKeys)||[])==null?void 0:v.includes(_[d])})},[(t=c==null?void 0:c.data)==null?void 0:t.selectedRowKeys,d,u]);return(0,import_react2.useMemo)(()=>({name:"$context",ctx:p||[],collectionName:m}),[m,p])},useLocalVariables=e=>{var t;const{parentObjectCtx:o,shouldDisplayParentObject:r,collectionName:i}=useParentObjectContext(),{currentObjectCtx:n,shouldDisplayCurrentObject:a}=useCurrentObjectContext(),{currentRecordCtx:l,collectionName:c}=useCurrentRecordContext(),{currentParentRecordCtx:u,collectionName:d,dataSource:m}=useCurrentParentRecordContext(),{popupRecordCtx:p,collectionName:h,dataSource:g,defaultValue:_}=usePopupVariableContext(),{parentPopupRecordCtx:f,collectionName:v,dataSource:C,defaultValue:b}=useParentPopupVariableContext(),{urlSearchParamsCtx:S,shouldDisplay:y,defaultValue:F}=useURLSearchParamsVariable(),{datetimeCtx:j}=useDatetimeVariableContext(),{currentFormCtx:A}=useCurrentFormContext({form:e==null?void 0:e.currentForm}),{name:D}=useCollection_deprecated(),N=useContextVariable();let{name:M}=useBlockCollection();e!=null&&e.collectionName&&(M=e.collectionName);const w=useApp(),R=((t=w.getVariables)==null?void 0:t.call(w).map(T=>({name:T.name,ctx:T.useCtx()})))||[];return(0,import_react2.useMemo)(()=>[{name:"currentRecord",ctx:l,collectionName:c},{name:M,ctx:A||l,collectionName:M},{name:"$form",ctx:A,collectionName:M},{name:"$nRecord",ctx:l,collectionName:c,dataSource:m},{name:"$nParentRecord",ctx:u,collectionName:d,dataSource:m},{name:"$nPopupRecord",ctx:p,collectionName:h,dataSource:g,defaultValue:_},{name:"$nParentPopupRecord",ctx:f,collectionName:v,dataSource:C,defaultValue:b},{name:"$nForm",ctx:A,collectionName:M},{name:"$nDate",ctx:j},{name:"$date",ctx:j},N,a&&{name:"$iteration",ctx:n,collectionName:D},r&&{name:"$nParentIteration",ctx:o,collectionName:i},y&&{name:"$nURLSearchParams",ctx:S,defaultValue:F},...R].filter(Boolean),[l,c,M,A,u,d,m,p,f,h,g,j,a,n,D,_,b,r,o,i,N,S,...R.map(T=>T.ctx)])},useLocalVariables$1=useLocalVariables,useVariables=()=>(0,import_react2.useContext)(VariablesContext),useVariables$1=useVariables,isSubFormOrSubTableField=e=>{for(;e;){if(isSubMode(e))return!0;if(e["x-component"]==="FormV2")return!1;e=e.parent}return!1},useLinkageRulesForSubTableOrSubForm=()=>{const e=(0,import_react.useFieldSchema)(),t=(0,import_react.useField)(),{fieldSchema:o,formValue:r}=useSubFormValue(),i=useLocalVariables$1(),n=useVariables$1(),a=getLinkageRules$1(o),l=useApp();(0,import_react2.useEffect)(()=>{if(!isSubFormOrSubTableField(e))return;if(!t.onUnmount.__rested){const u=t.onUnmount;t.onUnmount=()=>{var d;(d=t.__disposes)==null||d.forEach(m=>{m()}),u()},t.onUnmount.__rested=!0}if(!a)return;t.__disposes&&t.__disposes.forEach(u=>{u()});const c=t.__disposes=[];forEachLinkageRule(a,(u,d)=>{var m;(m=u.targetFields)!=null&&m.includes(e.name)&&c.push(bindLinkageRulesToFiled({field:t,linkageRules:a,formValues:r,localVariables:i,action:u,rule:d,variables:n,variableNameOfLeftCondition:"$iteration"},l.jsonLogic))}),t.__linkageRules=a},[t,e==null?void 0:e.name,r,JSON.stringify(a),i,n])};function getLinkageRules$1(e){var t;if(!e)return;const o=e["x-linkage-rules"]||((t=e==null?void 0:e.parent)==null?void 0:t["x-linkage-rules"])||[];return o==null?void 0:o.filter(r=>!r.disabled)}const useParseDefaultValue=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),i=useCollectionRecord(),{isInAssignFieldValues:n,isInSetDefaultValueDialog:a,isInFormDataTemplate:l,isInSubTable:c,isInSubForm:u}=useFlag()||{},d=useCollection(),{isSpecialCase:m,setDefaultValue:p}=useSpecialCase(),h=useRecordIndex(),{type:g,form:_}=useFormBlockContext(),{getOperator:f}=useOperators(),v=useDataSourceManager(),C=(0,import_react2.useCallback)(b=>{let S=o==null?void 0:o.getVariable(b);return S||(S=r.find(y=>y.name===b)),S},[r,o]);(0,import_react2.useEffect)(()=>{var b,S;if(g==="update"&&t.default&&e.form===_&&((S=e.setValue)==null||S.call(e,(b=i==null?void 0:i.data)==null?void 0:b[t.name])),t.default==null||a||l||isSubMode(t)||!(i!=null&&i.isNew)&&!n)return;const y=(...j)=>q(void 0,[...j],function*({forceUpdate:A=!1}={}){if(o&&e&&(isVariable$1(t.default)&&e.value==null||e.value===t.default||A)){e.loading=!0;const D=!t.name.toString().includes(".")&&(d==null?void 0:d.getField(t.name)),{value:N,collectionName:M,dataSource:w="main"}=yield o.parseVariable(t.default,r,{fieldOperator:f(t.name)});if(D!=null&&D.target&&M&&D.target!==M&&!isInherit({collectionName:D.target,targetCollectionName:M,dm:v,dataSource:w})){e.loading=!1;return}const R=transformVariableValue(N,{targetCollectionField:D});R==null||R===""?e.mounted&&(e.setInitialValue(void 0),e.setValue(void 0)):m()?h===0&&p(R):c?e.setValue(R):e.setInitialValue(R),e.loading=!1}else!/\{\{.+\}\}/g.test(t.default)&&e.setInitialValue&&e.setInitialValue(t.default)}),F=import_lodash.default.debounce(y,DEBOUNCE_WAIT);if(isVariable$1(t.default)){const j=getVariableName(t.default),A=C(j);return A?(y({forceUpdate:!0}),(0,import_reactive.reaction)(()=>{const D={[j]:(A==null?void 0:A.ctx)||{}},N=getPath(t.default),M=(0,import_client.getValuesByPath)(D,N);return M===void 0?Math.random():M},()=>F({forceUpdate:!0}),{equals:import_lodash.default.isEqual})):console.error(`useParseDefaultValue: can not find variable ${j}`)}else e.value==null&&(c||u)&&e.setValue(t.default)},[t.default,r,g,f,v,d])},isInherit=({collectionName:e,targetCollectionName:t,dm:o,dataSource:r})=>{var i,n,a;const l=(i=o==null?void 0:o.getDataSource(r))==null?void 0:i.collectionManager;return(a=(n=l==null?void 0:l.getCollection(e))==null?void 0:n.getAllCollectionsInheritChain())==null?void 0:a.includes(t)};import_antd_v5.FormItem.displayName="FormilyFormItem";const formItemWrapCss=import_css.css`
|
|
640
|
+
`;return(0,import_jsx_runtime.jsxs)("div",{style:{maxHeight:300,overflowY:"auto"},children:[d.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",onClick:()=>c(h.value),className:p,children:r(h.label)},h.value)),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:"4px 0"}}),m.map(h=>(0,import_jsx_runtime.jsx)("div",{role:"option",className:p,onClick:()=>c(h.value),title:r(h.label),children:r(h.label)},h.value))]})};return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:P(x({},e.style),{width:"100%"}),children:[(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({options:r(options),open:a,onDropdownVisibleChange:l},e),{allowClear:!1,style:{width:"100%",minWidth:100,maxWidth:["past","next","exact",void 0].includes(t==null?void 0:t.type)?100:null},value:(t==null?void 0:t.type)||"exact",onChange:c,dropdownRender:u})),["past","next"].includes(t==null?void 0:t.type)&&[(0,import_jsx_runtime.jsx)(import_antd.InputNumber,{value:t==null?void 0:t.number,onChange:d=>{const m=P(x({},t),{number:d});o(m)}},"number"),(0,import_jsx_runtime.jsx)(import_antd.Select,{value:t==null?void 0:t.unit,style:{minWidth:130,maxWidth:140},onChange:d=>{const m=P(x({},t),{unit:d});o(m)},options:[{value:"day",label:i("Day")},{value:"week",label:i("Calendar week")},{value:"month",label:i("Calendar Month")},{value:"year",label:i("Calendar Year")}],popupMatchSelectWidth:!0},"unit")],((t==null?void 0:t.type)==="exact"||!(t!=null&&t.type))&&(0,import_jsx_runtime.jsx)(SmartDatePicker,x({},e))]})},common=Object.freeze(Object.defineProperty({__proto__:null,DateFilterDynamicComponent,DndContext,DragHandler,DraggableContext,ShowFormData,Sortable,SortableContext,SortableItem,SortableProvider,getRenderContent},Symbol.toStringTag,{value:"Module"})),useStyles$9=genStyleHook("nb-block-item",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-form-item:hover":{"> .general-schema-designer":{background:"var(--colorBgSettingsHover) !important",border:"0 !important",top:"-5px !important",bottom:"-5px !important",left:"-5px !important",right:"-5px !important"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:0,bottom:0,left:0,right:0,display:"none",border:"2px solid var(--colorBorderSettingsHover)",pointerEvents:"none","> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:"var(--colorSettings)",color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-card":{borderRadius:e.borderRadiusBlock}}}}),useGetAriaLabelOfBlockItem=e=>{var t,o;const r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:n==null?void 0:n.displayName,l=i(r["x-collection-field"]);let{name:c}=useBlockContext()||{},{name:u,getField:d}=useCollection_deprecated();c=e||(c!=="action"?c:"");const m=i(r.title)||i((o=(t=d(r.name))==null?void 0:t.uiSchema)==null?void 0:o.title);return{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",["block-item",a,u,c,l,m,p].filter(Boolean).join("-")),[a,u,c,l,m])}},BlockItem=withDynamicSchemaProps(e=>{const{className:t,children:o,style:r}=useProps(e),{componentCls:i,hashId:n}=useStyles$9(),a=(0,import_react.useFieldSchema)(),{render:l}=useSchemaToolbarRender(a),{getAriaLabel:c}=useGetAriaLabelOfBlockItem(e.name),u=(0,import_react2.useMemo)(()=>c(),[c]),d=useCollection(),m=a["x-decorator"]==="FormItem"&&a["x-block-linkage-rules"],p=a["x-component"]==="Iframe"&&a["x-block-linkage-rules"],h=(0,import_jsx_runtime.jsxs)(SortableItem,{role:"button","aria-label":u,className:(0,import_classnames.default)("nb-block-item",t,i,n),style:r,children:[l(),(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:console.log,children:o})]});return d&&!m&&!p?h:(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:h})},{displayName:"BlockItem"}),TestDesigner=()=>{const{remove:e}=useDesignable();return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)("a",{onClick:()=>{e()},children:"删除"}),(0,import_jsx_runtime.jsx)(DragHandler,{})]})},FilterFormDesigner=()=>(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FilterFormItemSettings"}),useOperatorList=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection_deprecated(),{getCollectionFields:o,getInterface:r}=useCollectionManager_deprecated();return(0,import_react2.useMemo)(()=>{var i,n,a,l,c;const u=(i=e["x-designer-props"])==null?void 0:i.interface,d=o(t);if(u)return((a=(n=r(u))==null?void 0:n.filterable)==null?void 0:a.operators)||[];const m=d.find(p=>p.name===e.name);return(((c=(l=r(m==null?void 0:m.interface))==null?void 0:l.filterable)==null?void 0:c.operators)||[]).filter(p=>typeof p.visible!="function"||p.visible(m))},[e.name])},EditTitle=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=useCompile(),c=o(i.name)||t(i["x-collection-field"]);return c?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:n("Edit field title"),schema:{type:"object",title:n("Edit field title"),properties:{title:{title:n("Field title"),default:r==null?void 0:r.title,description:`${n("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit:({title:u})=>{var d;const m=u.trim()===""?(d=c==null?void 0:c.uiSchema)==null?void 0:d.title:u;r.title=l(m),i.title=u,a.emit("patch",{schema:{"x-uid":i["x-uid"],title:i.title}}),a.refresh()}},"edit-field-title"):null},EditDescription=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable();return e.readPretty?null:(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:o("Edit description"),schema:{type:"object",title:o("Edit description"),properties:{description:{default:e==null?void 0:e.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({description:i})=>{e.description=i,t.description=i,r.emit("patch",{schema:{"x-uid":t["x-uid"],description:t.description}}),r.refresh()}},"edit-description")},EditTooltip=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable();return t.readPretty?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:r("Edit tooltip"),schema:{type:"object",title:r("Edit description"),properties:{tooltip:{default:(e=o==null?void 0:o["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit:({tooltip:n})=>{t.decoratorProps.tooltip=n,o["x-decorator-props"]=o["x-decorator-props"]||{},o["x-decorator-props"].tooltip=n,i.emit("patch",{schema:{"x-uid":o["x-uid"],"x-decorator-props":o["x-decorator-props"]}}),i.refresh()}},"edit-tooltip"):null},EditRequired=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r,refresh:i}=useDesignable();return!e.readPretty&&t["x-component"]!=="FormField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:o("Required"),checked:t.required,onChange:n=>{const a={"x-uid":t["x-uid"]};e.required=n,t.required=n,a.required=n,r.emit("patch",{schema:a}),i()}},"required"):null},EditValidationRules=()=>{var e;const{getInterface:t,getCollectionJoinField:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),{form:i}=useFormBlockContext(),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),{t:l}=(0,import_react_i18next.useTranslation)(),{dn:c,refresh:u}=useDesignable(),d=r(a.name)||o(a["x-collection-field"]),m=t(d==null?void 0:d.interface),p=(e=m==null?void 0:m.validateSchema)==null?void 0:e.call(m,a),h=g=>g!=null&&!Number.isNaN(g);return i&&!(i!=null&&i.readPretty)&&p?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:l("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:l("Set validation rules"),properties:{rules:{type:"array",default:a==null?void 0:a["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},p),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:g=>{var _;const f=[];for(const b of g.rules)f.push(import_lodash.default.pickBy(b,h));const v={"x-uid":a["x-uid"]};if(["percent"].includes(d==null?void 0:d.interface))for(const b of f)(b.maxValue||b.minValue)&&(b.percentMode=!0),b.percentFormat&&(b.percentFormats=!0);const C=import_lodash.default.concat([],((_=d==null?void 0:d.uiSchema)==null?void 0:_["x-validator"])||[],f);n.validator=C,n.required=a.required,a["x-validator"]=f,v["x-validator"]=f,c.emit("patch",{schema:v}),u()}}):null},EditDefaultValue=()=>{var e;const{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated(),{form:r}=useFormBlockContext(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l,refresh:c}=useDesignable(),u=o(n.name)||t(n["x-collection-field"]);return r&&!(r!=null&&r.readPretty)&&(e=u==null?void 0:u.uiSchema)!=null&&e.type?(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:a("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:a("Set default value"),properties:{default:P(x({},u==null?void 0:u.uiSchema),{name:"default",title:a("Default value"),"x-decorator":"FormItem",default:n.default||(u==null?void 0:u.defaultValue)})}},onSubmit:d=>{const m={"x-uid":n["x-uid"]};i.value!==d.default&&(i.value=d.default),n.default=d.default,m.default=d.default,l.emit("patch",{schema:m}),c()}}):null},EditComponent=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),{getField:r}=useCollection_deprecated(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l}=useDesignable(),c=r(n.name)||t(n["x-collection-field"]),u=useFieldModeOptions(),d=["belongsTo","hasOne","hasMany","belongsToMany"].includes(c==null?void 0:c.type),m=o(c==null?void 0:c.target),p=isFileCollection(m);return d&&u?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:a("Field component"),options:u,value:((e=i==null?void 0:i.componentProps)==null?void 0:e.mode)||(p?"FileManager":"Select"),onChange:h=>{const g={"x-uid":n["x-uid"]};n["x-component-props"]=n["x-component-props"]||{},n["x-component-props"].mode=h,g["x-component-props"]=n["x-component-props"],i.componentProps=i.componentProps||{},i.componentProps.mode=h,l.emit("patch",{schema:g}),l.refresh()}},"field-mode"):null},EditPattern=()=>{const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),{form:o}=useFormBlockContext(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{t:n}=(0,import_react_i18next.useTranslation)(),{dn:a}=useDesignable(),l=t(i.name)||e(i["x-collection-field"]);let c="editable";return i["x-disabled"]===!0&&(c="readonly"),i["x-read-pretty"]===!0&&(c="read-pretty"),o&&!(o!=null&&o.readPretty)&&(l==null?void 0:l.interface)!=="o2m"&&!isPatternDisabled(i)?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:n("Pattern"),options:[{label:n("Editable"),value:"editable"},{label:n("Readonly"),value:"readonly"},{label:n("Easy-reading"),value:"read-pretty"}],value:c,onChange:u=>{const d={"x-uid":i["x-uid"]};switch(u){case"readonly":{i["x-read-pretty"]=!1,i["x-disabled"]=!0,d["x-read-pretty"]=!1,d["x-disabled"]=!0,r.readPretty=!1,r.disabled=!0;break}case"read-pretty":{i["x-read-pretty"]=!0,i["x-disabled"]=!1,d["x-read-pretty"]=!0,d["x-disabled"]=!1,r.readPretty=!0;break}default:{i["x-read-pretty"]=!1,i["x-disabled"]=!1,d["x-read-pretty"]=!1,d["x-disabled"]=!1,r.readPretty=!1,r.disabled=!1;break}}a.emit("patch",{schema:d}),a.refresh()}},"pattern"):null},useEnsureOperatorsValid=()=>{useCollectOperator();const e=(0,import_react.useFieldSchema)(),t=useOperatorList(),{getOperators:o,collectOperator:r}=useOperators(),i=o();i&&t.length&&!i[e.name]&&r(e.name,t[0].value)},EditOperator=()=>{const e=useCompile(),t=(0,import_react.useFieldSchema)(),o=(0,import_react.useField)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable(),n=useOperatorList(),{getOperator:a,collectOperator:l}=useOperators();return n.length&&!a(t.name)&&l(t.name,n[0].value),n.length?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:r("Operator"),value:a(t.name),options:e(n),onChange:c=>{var u,d,m,p,h,g;l(t.name,c),import_lodash.default.set(t,"x-filter-operator",c);const _=n.find(v=>v.value===c);let f=x({},t["x-component-props"]);o.value=void 0,(u=_==null?void 0:_.schema)!=null&&u["x-component"]&&!(_!=null&&_.onlyFilterAction)?(import_lodash.default.set(t,"x-component-props.component",(d=_.schema)==null?void 0:d["x-component"]),import_lodash.default.set(o,"componentProps.component",(m=_.schema)==null?void 0:m["x-component"]),f=x(x(P(x({},t["x-component-props"]),{component:_.schema["x-component"]}),o.componentProps),(p=_.schema)==null?void 0:p["x-component-props"])):(h=t["x-component-props"])!=null&&h.component&&(import_lodash.default.set(t,"x-component-props.component",null),import_lodash.default.set(o,"componentProps.component",null),f=x(P(x({},t["x-component-props"]),{component:null}),(g=_.schema)==null?void 0:g["x-component-props"])),o.componentProps=f,t["x-component-props"]=f,t.default=null,o.value=null,o.initialValue=null,i.emit("patch",{schema:{"x-uid":t["x-uid"],"x-component-props":f,"x-filter-operator":c,default:null}}),i.refresh()}},"operator"):null},EditTitleField=()=>{var e,t,o;const{getCollectionFields:r,getCollectionJoinField:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),{t:c}=(0,import_react_i18next.useTranslation)(),{dn:u}=useDesignable(),d=useCompile(),m=n(l.name)||i(l["x-collection-field"]),p=(m!=null&&m.target?r(m==null?void 0:m.target):(e=r(m==null?void 0:m.targetCollection))!=null?e:[]).filter(h=>!(h!=null&&h.target)&&h.type!=="boolean").map(h=>{var g;return{value:h==null?void 0:h.name,label:d((g=h==null?void 0:h.uiSchema)==null?void 0:g.title)||(h==null?void 0:h.name)}});return p.length>0&&l["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:c("Title field"),options:p,value:(o=(t=a==null?void 0:a.componentProps)==null?void 0:t.fieldNames)==null?void 0:o.label,onChange:h=>{var g,_;const f={"x-uid":l["x-uid"]},v=P(x(x({},(_=(g=m==null?void 0:m.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:_.fieldNames),a.componentProps.fieldNames),{label:h});l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].fieldNames=v,f["x-component-props"]=l["x-component-props"],a.componentProps.fieldNames=l["x-component-props"].fieldNames,u.emit("patch",{schema:f}),u.refresh()}},"title-field"):null},isDisplayField=e=>e.includes("."),useLazyLoadDisplayAssociationFieldsOfForm=()=>{var e;const{name:t}=useCollection_deprecated(),{getCollectionJoinField:o,getCollection:r}=useCollectionManager_deprecated(),i=(0,import_react.useForm)(),n=(0,import_react.useFieldSchema)(),a=useVariables$1(),l=(0,import_react.useField)(),{formValue:c}=useSubFormValue(),{isInSubForm:u,isInSubTable:d}=useFlag()||{},{getAssociationAppends:m}=useAssociationNames(),p=n.name.toString(),h=(0,import_react2.useRef)(null),g=(0,import_react2.useRef)(null);h.current==null&&isDisplayField(p)&&(h.current=o(`${t}.${p}`)),g.current==null&&isDisplayField(p)&&(g.current=o(`${t}.${p.split(".")[0]}`));const _=(0,import_react2.useMemo)(()=>!isDisplayField(p)||!a||t==="fields"||!h.current,[p,a,t,h.current]),f=_?{}:(0,import_reactive.untracked)(()=>import_lodash.default.cloneDeep(u||d?c:i.values)),v=isDisplayField(p)&&g.current?import_lodash.default.get(f,`${p.split(".")[0]}.${((e=g.current)==null?void 0:e.targetKey)||"id"}`):void 0,C=(0,import_react2.useRef)(v);import_lodash.default.isEqual(C.current,v)||(C.current=v);const b=C.current;(0,import_react2.useEffect)(()=>{var S;if(_||import_lodash.default.isEmpty(f))return;const y={name:"$nForm",ctx:f,collectionName:t,dataSource:h.current.dataSourceKey},F=`{{ $nForm.${p} }}`;if(b==null)return;const{appends:j}=m(),A=r((S=h.current)==null?void 0:S.collectionName);a.parseVariable(F,y,{appends:j}).then(({value:D})=>{(0,import_client.nextTick)(()=>{const N=normalizeDisplayAssociationFieldValue(transformVariableValue(D,{targetCollectionField:h.current}));if(N==null)l.value!=null&&(l.value=null);else{const M=normalizeDisplayAssociationFieldValue(transformVariableValue(l.value,{targetCollectionField:h.current}));if(import_lodash.default.isEqual(M,N))return;l.setValue(N),l.componentProps=P(x({},l.componentProps),{readOnlySubmit:!0,filterTargetKey:(A==null?void 0:A.filterTargetKey)||"id"})}})}).catch(D=>{console.error(D)})},[b,_])};function normalizeDisplayAssociationFieldValue(e){return(0,import_reactive.untracked)(()=>{const t=(0,import_reactive.toJS)(e);return removeCircularReferences(t)})}function removeCircularReferences(e,t=new WeakMap,o=new WeakSet){if(e==null||typeof e!="object"||!Array.isArray(e)&&(!import_lodash.default.isPlainObject(e)||Object.getPrototypeOf(e)===null))return e;if(o.has(e))return;if(t.has(e))return t.get(e);const r=Array.isArray(e)?[]:{};return t.set(e,r),o.add(e),Array.isArray(e)?e.forEach((i,n)=>{r[n]=removeCircularReferences(i,t,o)}):Object.keys(e).forEach(i=>{const n=removeCircularReferences(e[i],t,o);n!==void 0&&(r[i]=n)}),o.delete(e),r}const useContextVariable=()=>{var e,t;let o;const{isPopupVisibleControlledByURL:r}=usePopupSettings(),{params:i}=useCurrentPopupContext(),n=useCollection(),a=useDataBlockRequestData(),l=useTableBlockContextBasicValue()||{};r()?o=(e=getStoredPopupContext(i==null?void 0:i.popupuid))==null?void 0:e.tableBlockContext:o=P(x({},l),{collection:n,blockData:a});const{field:c,blockData:u,rowKey:d,collection:m}=o||{},p=(0,import_react2.useMemo)(()=>{var h,g;return(g=(h=u==null?void 0:u.data)==null?void 0:h.filter)==null?void 0:g.call(h,_=>{var f,v;return(v=((f=c==null?void 0:c.data)==null?void 0:f.selectedRowKeys)||[])==null?void 0:v.includes(_[d])})},[(t=c==null?void 0:c.data)==null?void 0:t.selectedRowKeys,d,u]);return(0,import_react2.useMemo)(()=>({name:"$context",ctx:p||[],collectionName:m}),[m,p])},useLocalVariables=e=>{var t;const{parentObjectCtx:o,shouldDisplayParentObject:r,collectionName:i}=useParentObjectContext(),{currentObjectCtx:n,shouldDisplayCurrentObject:a}=useCurrentObjectContext(),{currentRecordCtx:l,collectionName:c}=useCurrentRecordContext(),{currentParentRecordCtx:u,collectionName:d,dataSource:m}=useCurrentParentRecordContext(),{popupRecordCtx:p,collectionName:h,dataSource:g,defaultValue:_}=usePopupVariableContext(),{parentPopupRecordCtx:f,collectionName:v,dataSource:C,defaultValue:b}=useParentPopupVariableContext(),{urlSearchParamsCtx:S,shouldDisplay:y,defaultValue:F}=useURLSearchParamsVariable(),{datetimeCtx:j}=useDatetimeVariableContext(),{currentFormCtx:A}=useCurrentFormContext({form:e==null?void 0:e.currentForm}),{name:D}=useCollection_deprecated(),N=useContextVariable();let{name:M}=useBlockCollection();e!=null&&e.collectionName&&(M=e.collectionName);const w=useApp(),R=((t=w.getVariables)==null?void 0:t.call(w).map(T=>({name:T.name,ctx:T.useCtx()})))||[];return(0,import_react2.useMemo)(()=>[{name:"currentRecord",ctx:l,collectionName:c},{name:M,ctx:A||l,collectionName:M},{name:"$form",ctx:A,collectionName:M},{name:"$nRecord",ctx:l,collectionName:c,dataSource:m},{name:"$nParentRecord",ctx:u,collectionName:d,dataSource:m},{name:"$nPopupRecord",ctx:p,collectionName:h,dataSource:g,defaultValue:_},{name:"$nParentPopupRecord",ctx:f,collectionName:v,dataSource:C,defaultValue:b},{name:"$nForm",ctx:A,collectionName:M},{name:"$nDate",ctx:j},{name:"$date",ctx:j},N,a&&{name:"$iteration",ctx:n,collectionName:D},r&&{name:"$nParentIteration",ctx:o,collectionName:i},y&&{name:"$nURLSearchParams",ctx:S,defaultValue:F},...R].filter(Boolean),[l,c,M,A,u,d,m,p,f,h,g,j,a,n,D,_,b,r,o,i,N,S,...R.map(T=>T.ctx)])},useLocalVariables$1=useLocalVariables,useVariables=()=>(0,import_react2.useContext)(VariablesContext),useVariables$1=useVariables,isSubFormOrSubTableField=e=>{for(;e;){if(isSubMode(e))return!0;if(e["x-component"]==="FormV2")return!1;e=e.parent}return!1},useLinkageRulesForSubTableOrSubForm=()=>{const e=(0,import_react.useFieldSchema)(),t=(0,import_react.useField)(),{fieldSchema:o,formValue:r}=useSubFormValue(),i=useLocalVariables$1(),n=useVariables$1(),a=getLinkageRules$1(o),l=useApp();(0,import_react2.useEffect)(()=>{if(!isSubFormOrSubTableField(e))return;if(!t.onUnmount.__rested){const u=t.onUnmount;t.onUnmount=()=>{var d;(d=t.__disposes)==null||d.forEach(m=>{m()}),u()},t.onUnmount.__rested=!0}if(!a)return;t.__disposes&&t.__disposes.forEach(u=>{u()});const c=t.__disposes=[];forEachLinkageRule(a,(u,d)=>{var m;(m=u.targetFields)!=null&&m.includes(e.name)&&c.push(bindLinkageRulesToFiled({field:t,linkageRules:a,formValues:r,localVariables:i,action:u,rule:d,variables:n,variableNameOfLeftCondition:"$iteration"},l.jsonLogic))}),t.__linkageRules=a},[t,e==null?void 0:e.name,r,JSON.stringify(a),i,n])};function getLinkageRules$1(e){var t;if(!e)return;const o=e["x-linkage-rules"]||((t=e==null?void 0:e.parent)==null?void 0:t["x-linkage-rules"])||[];return o==null?void 0:o.filter(r=>!r.disabled)}const useParseDefaultValue=()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),i=useCollectionRecord(),{isInAssignFieldValues:n,isInSetDefaultValueDialog:a,isInFormDataTemplate:l,isInSubTable:c,isInSubForm:u}=useFlag()||{},d=useCollection(),{isSpecialCase:m,setDefaultValue:p}=useSpecialCase(),h=useRecordIndex(),{type:g,form:_}=useFormBlockContext(),{getOperator:f}=useOperators(),v=useDataSourceManager(),C=(0,import_react2.useCallback)(b=>{let S=o==null?void 0:o.getVariable(b);return S||(S=r.find(y=>y.name===b)),S},[r,o]);(0,import_react2.useEffect)(()=>{var b,S;if(g==="update"&&t.default&&e.form===_&&((S=e.setValue)==null||S.call(e,(b=i==null?void 0:i.data)==null?void 0:b[t.name])),t.default==null||a||l||isSubMode(t)||!(i!=null&&i.isNew)&&!n)return;const y=(...j)=>q(void 0,[...j],function*({forceUpdate:A=!1}={}){if(o&&e&&(isVariable$1(t.default)&&e.value==null||e.value===t.default||A)){e.loading=!0;const D=!t.name.toString().includes(".")&&(d==null?void 0:d.getField(t.name)),{value:N,collectionName:M,dataSource:w="main"}=yield o.parseVariable(t.default,r,{fieldOperator:f(t.name)});if(D!=null&&D.target&&M&&D.target!==M&&!isInherit({collectionName:D.target,targetCollectionName:M,dm:v,dataSource:w})){e.loading=!1;return}const R=transformVariableValue(N,{targetCollectionField:D});R==null||R===""?e.mounted&&(e.setInitialValue(void 0),e.setValue(void 0)):m()?h===0&&p(R):c?e.setValue(R):e.setInitialValue(R),e.loading=!1}else!/\{\{.+\}\}/g.test(t.default)&&e.setInitialValue&&e.setInitialValue(t.default)}),F=import_lodash.default.debounce(y,DEBOUNCE_WAIT);if(isVariable$1(t.default)){const j=getVariableName(t.default),A=C(j);return A?(y({forceUpdate:!0}),(0,import_reactive.reaction)(()=>{const D={[j]:(A==null?void 0:A.ctx)||{}},N=getPath(t.default),M=(0,import_client.getValuesByPath)(D,N);return M===void 0?Math.random():M},()=>F({forceUpdate:!0}),{equals:import_lodash.default.isEqual})):console.error(`useParseDefaultValue: can not find variable ${j}`)}else e.value==null&&(c||u)&&e.setValue(t.default)},[t.default,r,g,f,v,d])},isInherit=({collectionName:e,targetCollectionName:t,dm:o,dataSource:r})=>{var i,n,a;const l=(i=o==null?void 0:o.getDataSource(r))==null?void 0:i.collectionManager;return(a=(n=l==null?void 0:l.getCollection(e))==null?void 0:n.getAllCollectionsInheritChain())==null?void 0:a.includes(t)};import_antd_v5.FormItem.displayName="FormilyFormItem";const formItemWrapCss=import_css.css`
|
|
641
641
|
& .ant-space {
|
|
642
642
|
flex-wrap: wrap;
|
|
643
643
|
}
|
|
@@ -918,7 +918,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
918
918
|
width: ${a}px !important;
|
|
919
919
|
height: ${a}px !important;
|
|
920
920
|
}
|
|
921
|
-
`),style:p,children:(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${d}-list`,`${d}-list-picture-card`),style:p,children:(0,import_jsx_runtime.jsx)(AttachmentList,x({disabled:i,readPretty:!0,multiple:n,value:o,onChange:r},l))})}))}const Upload=(0,import_react.connect)(InternalUpload,(0,import_react.mapProps)({value:"fileList"}),(0,import_react.mapReadPretty)(ReadPretty$9));Upload.ReadPretty=ReadPretty$9;function useSizeHint(e){const t=e??FILE_SIZE_LIMIT_DEFAULT,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_filesize.default)(t,{base:2,standard:"jedec",locale:r.language});return t!==0?o("File size should not exceed {{size}}.",{size:i}):""}function DefaultThumbnailPreviewer({file:e}){var t;const{componentCls:o}=useStyles$6(),{getThumbnailURL:r=getThumbnailPlaceholderURL}=(t=attachmentFileTypes.getTypeByFile(e))!=null?t:{},i=r(e);return(0,import_jsx_runtime.jsx)("img",{src:i,alt:e.title,className:`${o}-list-item-image`})}function AttachmentListItem(e){var t,o;const{file:r,disabled:i,onPreview:n,onDelete:a,readPretty:l,showFileName:c}=e,{componentCls:u}=useStyles$6(),{t:d}=(0,import_react_i18next.useTranslation)(),m=(0,import_react2.useCallback)(C=>{C.preventDefault(),C.stopPropagation(),n==null||n(r)},[r,n]),p=(0,import_react2.useCallback)(()=>{a==null||a(r)},[r,a]),h=(0,import_react2.useCallback)(()=>{(0,import_file_saver.saveAs)(r.url,`${r.title}${r.extname}`)},[r]),{ThumbnailPreviewer:g=DefaultThumbnailPreviewer}=(t=attachmentFileTypes.getTypeByFile(r))!=null?t:{},_=[(0,import_jsx_runtime.jsx)("span",{className:`${u}-list-item-thumbnail`,children:(0,import_jsx_runtime.jsx)(g,{file:r})},"thumbnail"),c!==!1&&r.title?(0,import_jsx_runtime.jsx)("span",{className:`${u}-list-item-name`,title:r.title,children:r.status==="uploading"?d("Uploading"):r.title},"title"):null],f=r.url?(0,import_jsx_runtime.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:r.url,onClick:m,children:_}):(0,import_jsx_runtime.jsx)("span",{className:`${u}-span`,children:_}),v=(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(`${u}-list-item`,`${u}-list-item-${(o=r.status)!=null?o:"done"}`,`${u}-list-item-list-type-picture-card`),children:[(0,import_jsx_runtime.jsx)("div",{className:`${u}-list-item-info`,children:f}),(0,import_jsx_runtime.jsx)("span",{className:`${u}-list-item-actions`,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:3,children:[!l&&r.url&&(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.DownloadOutlined,{}),onClick:h}),!l&&!i&&r.status!=="uploading"&&(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.DeleteOutlined,{}),onClick:p})]})}),r.status==="uploading"&&(0,import_jsx_runtime.jsx)("div",{className:`${u}-list-item-progress`,children:(0,import_jsx_runtime.jsx)(import_antd.Progress,{strokeWidth:4,type:"line",showInfo:!1,percent:Number(r.percent)})})]});return(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:c!==!1&&r.title?"28px":"0px"},className:`${u}-list-picture-card-container ${u}-list-item-container`,children:r.status==="error"?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:r.response,getPopupContainer:C=>C.parentNode,children:v}):v})}function Previewer({index:e,onSwitchIndex:t,list:o}){var r;if(e==null)return null;const i=o[e],{Previewer:n=IframePreviewer}=(r=attachmentFileTypes.getTypeByFile(i))!=null?r:{};return(0,import_jsx_runtime.jsx)(n,{index:e,list:o,onSwitchIndex:t})}function AttachmentList(e){const{disabled:t,multiple:o,value:r,onChange:i,readPretty:n,showFileName:a}=e,[l,c]=(0,import_react2.useState)([]),[u,d]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{const h=toFileList(r);c(h)},[r]);const m=(0,import_react2.useCallback)(h=>{const g=l.findIndex(_=>_.id===h.id);d(g)},[l]),p=(0,import_react2.useCallback)(h=>{i(o?r.filter(g=>g.id!==h.id):null)},[o,i,r]);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[l.map((h,g)=>(0,import_jsx_runtime.jsx)(AttachmentListItem,{file:h,index:g,disabled:t,onPreview:m,onDelete:p,readPretty:n,showFileName:a},h.id||h.url)),(0,import_jsx_runtime.jsx)(Previewer,{index:u,onSwitchIndex:d,list:l})]})}function Uploader(e){var t=e,{rules:o}=t,r=W(t,["rules"]);const{disabled:i,multiple:n,value:a,onChange:l,toValueItem:c=toValueItem}=r,[u,d]=(0,import_react2.useState)([]),[m,p]=(0,import_react2.useState)([]),{t:h}=(0,import_react_i18next.useTranslation)(),{componentCls:g}=useStyles$6(),_=(0,import_react.useField)(),f=useUploadProps(r),v=useBeforeUpload(o);(0,import_react2.useEffect)(()=>{if(m.length){const N=m.filter(M=>M.status==="error");_.setFeedback({type:"error",code:"ValidateError",messages:[N.length?h("Some files are not uploaded correctly, please check."):" "]})}else _.setFeedback({})},[_,m,h]);const C=(0,import_react2.useCallback)(N=>{var M;const w=N.fileList.filter(R=>R.status!=="done").map(normalizeFile);if(p(w),n){const R=N.fileList.filter(T=>T.status==="done");if(R.length){const T=[...u,...R.map($=>{var B;return c((B=$.response)==null?void 0:B.data)})];w.length?d(T):(l==null||l([...a||[],...T]),d([]))}}else{const R=N.fileList.find(T=>T.uid===N.file.uid);R.status==="done"&&(l==null||l(c((M=R.response)==null?void 0:M.data)),p([]))}},[n,a,u,c,l]),b=(0,import_react2.useCallback)(N=>{p(M=>{const w=M.indexOf(N);return M.splice(w,1),[...M]})},[]),S=(0,import_react2.useCallback)(N=>{d(M=>{const w=M.indexOf(N);return M.splice(w,1),[...M]})},[]),y=useComponent("QRCodeUploader"),{mimetype:F,size:j}=o??{},A=useSizeHint(j),D=!i&&(n||(!a||Array.isArray(a)&&!a.length)&&!m.length);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[u.map((N,M)=>(0,import_jsx_runtime.jsx)(AttachmentListItem,{file:N,index:M,disabled:i,onDelete:S},N.id)),m.map((N,M)=>(0,import_jsx_runtime.jsx)(AttachmentListItem,{file:N,index:M,disabled:i,onDelete:b},N.uid)),(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${g}-list-picture-card-container`,`${g}-list-item-container`),style:D?{}:{display:"none"},children:(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:A,children:(0,import_jsx_runtime.jsx)(import_antd.Upload,P(x({accept:F},f),{disabled:i,multiple:n,listType:"picture-card",fileList:m,beforeUpload:v,onChange:C,showUploadList:!1,children:D?(0,import_jsx_runtime.jsxs)("span",{children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),(0,import_jsx_runtime.jsx)("br",{})," ",h("Upload")]}):null}))})}),D&&y&&(0,import_jsx_runtime.jsx)(y,{disabled:i,multiple:n,value:a,onChange:l})]})}function Attachment(e){const{wrapSSR:t,hashId:o,componentCls:r}=useStyles$6();return t((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${r}-wrapper`,`${r}-picture-card-wrapper`,"nb-upload",o),children:(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(`${r}-list`,`${r}-list-picture-card`),children:[(0,import_jsx_runtime.jsx)(AttachmentList,x({},e)),(0,import_jsx_runtime.jsx)(Uploader,x({},e))]})}))}Attachment.ReadPretty=ReadPretty$9;Upload.Attachment=withDynamicSchemaProps((0,import_react.connect)(Attachment,(0,import_react.mapReadPretty)(Attachment.ReadPretty)),{displayName:"Upload.Attachment"});Upload.Dragger=(0,import_react.connect)(e=>{const t=e,{tipContent:o,onChange:r}=t,i=W(t,["tipContent","onChange"]),{wrapSSR:n,hashId:a,componentCls:l}=useStyles$6(),c=(0,import_react2.useCallback)(u=>{r==null||r(toFileList(u.fileList))},[r]);return n((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${l}-dragger`,a),children:(0,import_jsx_runtime.jsxs)(import_antd.Upload.Dragger,P(x({},useUploadProps(i)),{onChange:c,children:[o,e.children]}))}))},(0,import_react.mapProps)({value:"fileList"}));Upload.DraggerV2=withDynamicSchemaProps((0,import_react.connect)(e=>{var t=e,{rules:o}=t,r=W(t,["rules"]);const{t:i}=(0,import_react_i18next.useTranslation)(),n=i("Click or drag file to this area to upload"),a=useProps(r),{title:l=n}=a,c=W(a,["title"]),[u,d]=(0,import_react2.useState)(!1),{wrapSSR:m,hashId:p,componentCls:h}=useStyles$6(),g=useBeforeUpload(o),{size:_,mimetype:f}=o??{},v=useSizeHint(_),C=(0,import_react2.useCallback)(({fileList:b})=>{const{onChange:S}=c;S==null||S(b),b.some(y=>y.status==="uploading")?d(!0):d(!1)},[c]);return m((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-dragger`,p),children:(0,import_jsx_runtime.jsxs)(import_antd.Upload.Dragger,P(x({},useUploadProps(P(x(x({},r),c),{accept:f,onChange:C,beforeUpload:g}))),{children:[(0,import_jsx_runtime.jsx)("p",{className:`${h}-drag-icon`,children:u?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{style:{fontSize:36},spin:!0}):(0,import_jsx_runtime.jsx)(import_icons.InboxOutlined,{})}),(0,import_jsx_runtime.jsx)("p",{className:`${h}-text`,children:l}),(0,import_jsx_runtime.jsxs)("ul",{children:[(0,import_jsx_runtime.jsx)("li",{className:`${h}-hint`,children:i("Support for a single or bulk upload.")}),(0,import_jsx_runtime.jsx)("li",{className:`${h}-hint`,children:v})]})]}))}))},(0,import_react.mapProps)({value:"fileList"})),{displayName:"Upload.DraggerV2"});const schema$1={Nester:{type:"void","x-component":"AssociationField.Nester",properties:{grid:{type:"void","x-component":"Grid","x-initializer":"form:configureFields"}}},AddNewer:{type:"void","x-component":"AssociationField.AddNewer","x-action":"create",title:'{{ t("Add record") }}',"x-component-props":{className:"nb-action-popup"},properties:{tabs:{type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab","x-initializer-props":{gridInitializer:"popup:addNew:addBlock"},properties:{tab1:{type:"void",title:'{{t("Add new")}}',"x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:addNew:addBlock",properties:{}}}}}}}},Selector:{type:"void","x-component":"AssociationField.Selector",title:'{{ t("Select record") }}',"x-component-props":{className:"nb-record-picker-selector"},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:tableSelector:addBlock",properties:{}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:submit","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}},Viewer:{type:"void",title:'{{ t("View record") }}',"x-component":"AssociationField.Viewer","x-component-props":{className:"nb-action-popup"},properties:{tabs:{type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab",properties:{tab1:{type:"void",title:'{{t("Details")}}',"x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:common:addBlock",properties:{}}}}}}}},SubTable:{type:"void","x-component":"AssociationField.SubTable","x-initializer":"table:configureColumns","x-initializer-props":{action:!1},properties:{}}},useTableSelectorProps$3=()=>{const e=(0,import_react.useField)(),{multiple:t,options:o=[],setSelectedRows:r,selectedRows:i=[],onChange:n}=(0,import_react2.useContext)(RecordPickerContext),a=useTableSelectorProps$4(),{onRowSelectionChange:l,rowKey:c="id"}=a,u=W(a,["onRowSelectionChange","rowKey"]),{setVisible:d}=useActionContext();return P(x({},u),{rowKey:c,rowSelection:{type:t?"checkbox":"radio",selectedRowKeys:i==null?void 0:i.filter(m=>o.every(p=>p[c]!==m[c])).map(m=>m[c])},onRowSelectionChange(m,p){if(t){const h=flatData$2(e.value)||[],g=(0,import_lodash.differenceBy)(i||[],h,c),_=(0,import_lodash.unionBy)(g,p,c),f=_.map(v=>v[c]);r==null||r(_),l==null||l(f,_)}else r==null||r(p),l==null||l(m,p),n((p==null?void 0:p[0])||null),d(!1)}})};function FileSelector(e){const t=e,{disabled:o,multiple:r,value:i,onChange:n,action:a,onSelect:l,quickUpload:c,selectFile:u}=t,d=W(t,["disabled","multiple","value","onChange","action","onSelect","quickUpload","selectFile"]),{wrapSSR:m,hashId:p,componentCls:h}=useStyles$6(),{useFileCollectionStorageRules:g,useAttachmentFieldProps:_}=(0,import_react.useExpressionScope)(),{t:f}=(0,import_react_i18next.useTranslation)(),v=g(),C=_(),b=u===void 0&&c===void 0;return m((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-wrapper`,`${h}-picture-card-wrapper`,"nb-upload",p),children:(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(`${h}-list`,`${h}-list-picture-card`),children:[(0,import_jsx_runtime.jsx)(AttachmentList,x({disabled:o,multiple:r,value:i,onChange:n},d)),b?(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-list-picture-card-container`,`${h}-list-item-container`),children:(0,import_jsx_runtime.jsx)(import_antd.Upload,{disabled:o,multiple:r,listType:"picture-card",showUploadList:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},onClick:l,children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),f("Select")]})})}):null,c?(0,import_jsx_runtime.jsx)(Uploader,x(P(x({},C),{value:i,multiple:r,onChange:n,action:a,rules:v,disabled:o}),d)):null,u&&(r||!i)?(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-list-picture-card-container`,`${h}-list-item-container`),children:(0,import_jsx_runtime.jsx)(import_antd.Upload,{disabled:o,multiple:r,listType:"picture-card",showUploadList:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},onClick:l,children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),f("Select")]})})}):null]})}))}const InternalFileManager=e=>{var t,o;const r=e,{value:i,multiple:n,onChange:a}=r,l=W(r,["value","multiple","onChange"]),c=(0,import_react.useFieldSchema)(),[u,d]=(0,import_react2.useState)(!1),[m,p]=(0,import_react2.useState)([]),h=useInsertSchema$1("Selector"),g=useFieldNames$1(e),{designable:_}=useDesignable(),f=(0,import_react.useField)(),[v,C]=(0,import_react2.useState)([]),{getField:b}=useCollection_deprecated(),S=b(f.props.name),y=useLabelUiSchema$1(S==null?void 0:S.target,(g==null?void 0:g.label)||"label"),F=useCompile(),{modalProps:j}=useActionContext(),A=M=>{M.stopPropagation(),M.preventDefault(),_?h(schema$1.Selector):c.reduceProperties((w,R)=>R["x-component"]==="AssociationField.Selector"?R:w,null)||c.addProperty("selector",schema$1.Selector),d(!0),p([])};(0,import_react2.useEffect)(()=>{if(i&&Object.keys(i).length>0){const M=(Array.isArray(i)?i:i?[i]:[]).filter(Boolean).map(w=>{const R=w[g.label];return P(x({},w),{[g.label]:getLabelFormatValue$1(F(y),F(R))})});C(M)}else C([])},[i,g==null?void 0:g.label]);const D={size:"small",fieldNames:g,multiple:["o2m","m2m","mbm"].includes(S==null?void 0:S.interface)&&n,association:{target:S==null?void 0:S.target},options:v,onChange:e==null?void 0:e.onChange,selectedRows:m,setSelectedRows:p,collectionField:S},N=()=>{const{setVisible:M}=useActionContext(),{multiple:w,selectedRows:R,onChange:T,options:$,collectionField:B}=(0,import_react2.useContext)(RecordPickerContext);return{onClick(){T(w?(0,import_lodash.unionBy)(R,$,(B==null?void 0:B.targetKey)||"id"):(R==null?void 0:R[0])||null),M(!1)}}};return(0,import_jsx_runtime.jsxs)("div",{style:{width:"100%",overflow:"auto"},children:[(0,import_jsx_runtime.jsx)(FileSelector,P(x({},l),{value:n?v:v==null?void 0:v[0],multiple:n,quickUpload:((t=c["x-component-props"])==null?void 0:t.quickUpload)!==!1,selectFile:((o=c["x-component-props"])==null?void 0:o.selectFile)!==!1,action:`${S==null?void 0:S.target}:create`,onSelect:A,onChange:a})),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{openMode:"drawer",visible:u,setVisible:d,modalProps:{getContainer:(l==null?void 0:l.getContainer)||(j==null?void 0:j.getContainer)},formValueChanged:!1},children:(0,import_jsx_runtime.jsx)(RecordPickerProvider,P(x({},D),{children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:S==null?void 0:S.target,children:(0,import_jsx_runtime.jsx)(FormProvider,{children:(0,import_jsx_runtime.jsx)(TableSelectorParamsProvider,{params:{},children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{usePickActionProps:N,useTableSelectorProps:useTableSelectorProps$3},children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:f.address,schema:c,filterProperties:M=>M["x-component"]==="AssociationField.Selector"})})})})})}))})]})},FileManageReadPretty=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),{getField:o}=useCollection_deprecated(),{getCollectionJoinField:r}=useCollectionManager_deprecated();return o(t.name)||r(t["x-collection-field"])?(0,import_jsx_runtime.jsx)(Upload.ReadPretty,x({},e)):null}),EMPTY="N/A",SchemaField=(0,import_react.createSchemaField)({components:{Space:import_antd.Space,Input:import_antd.Input,ArrayItems:import_antd_v5.ArrayItems,FormItem:import_antd_v5.FormItem}}),CascadeSelect=(0,import_react.connect)(e=>{var t;const{data:o,mapOptions:r,onChange:i,value:n}=e,[a,l]=(0,import_react2.useState)([{key:void 0,children:[],value:null}]),[c,u]=(0,import_react2.useState)(o),[d,m]=(0,import_react2.useState)(!1),p=useCompile(),h=useAPIClient(),g=useServiceOptions$1(e),{options:_,field:f}=useAssociationFieldContext(),v=h.resource(_.target),{getCollectionJoinField:C,getInterface:b}=useCollectionManager_deprecated(),S=(t=f==null?void 0:f.componentProps)==null?void 0:t.fieldNames,y=(_==null?void 0:_.target)&&(S==null?void 0:S.label)&&C(`${_.target}.${S.label}`),F=(0,import_react2.useMemo)(()=>{var R,T;return y!=null&&y.interface&&((T=(R=b(y.interface))==null?void 0:R.filterable)==null?void 0:T.operators[0].value)||"$includes"},[y]),j=(0,import_react.useField)();(0,import_react2.useEffect)(()=>{var R;if(n){const T=Array.isArray(n)?extractLastNonNullValueObjects(n==null?void 0:n.filter(B=>B.value),!0):transformNestedData(n),$=(R=T==null?void 0:T.map)==null?void 0:R.call(T,B=>({key:B.parentId,children:[],value:B}));l($)}},[]),(0,import_react2.useEffect)(()=>{n||l([{key:void 0,children:[],value:null}])},[n]);const A=(0,import_react2.useCallback)(R=>{try{return R==null?void 0:R.filter(T=>["number","string"].includes(typeof T[S.value])).map(T=>{var $,B,I;let E=p(T[S.label]);if(($=y==null?void 0:y.uiSchema)!=null&&$.enum)if(Array.isArray(E))E=E.map((V,O)=>{var L,U;const z=(U=(L=y.uiSchema.enum).find)==null?void 0:U.call(L,G=>G.value===V);return z?(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:z.color,style:{marginRight:3},children:(z==null?void 0:z.label)||V},O):(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:V},V)}).reverse();else{const V=(I=(B=y.uiSchema.enum).find)==null?void 0:I.call(B,O=>O.value===E);V&&(E=(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:V.color,children:V.label}))}return(y==null?void 0:y.type)==="date"&&(E=(0,import_dayjs.default)(E).format("YYYY-MM-DD")),r?r({[S.label]:E||EMPTY,[S.value]:T[S.value]}):P(x({},T),{[S.label]:E||EMPTY,[S.value]:T[S.value]})}).filter(Boolean)}catch(T){return console.error(T),R}},[y==null?void 0:y.uiSchema,S]),D=R=>q(void 0,null,function*(){var T,$;const B=yield v.list({pageSize:200,params:g==null?void 0:g.params,filter:mergeFilter([R,(T=g==null?void 0:g.params)==null?void 0:T.filter]),tree:R.parentId?void 0:!0});return($=B==null?void 0:B.data)==null?void 0:$.data}),N=(R,T,$)=>q(void 0,null,function*(){const B=yield D({parentId:T==null?void 0:T.id}),I=[...a];if(I.splice($+1),I[$]=P(x({},I[$]),{value:T}),T!=null&&T.id&&(I[$+1]={key:T==null?void 0:T.id,children:(B==null?void 0:B.length)>0?B:null}),l(I),["o2m","m2m"].includes(_.interface)){const E=Array.isArray(f.fieldValue)?f.fieldValue:[];E[j.index]=T,f.fieldValue=E}else f.value=T;I.length===1&&!I[0].value?i==null||i(null):i==null||i(I)}),M=(R,T,$)=>q(void 0,null,function*(){var B,I,E;if(R){m(!0);const V=yield D({parentId:T==null?void 0:T.key});if(m(!1),u(V),$===(a==null?void 0:a.length)-1&&(B=T==null?void 0:T.value)!=null&&B.id){const O=yield D({parentId:(I=T==null?void 0:T.value)==null?void 0:I.id}),L=[...a];L.splice($+1),L[$]=P(x({},L[$]),{value:T==null?void 0:T.value}),L[$+1]={key:(E=T==null?void 0:T.value)==null?void 0:E.id,children:(O==null?void 0:O.length)>0?O:null},l(L),i==null||i(L)}}}),w=(R,T)=>q(void 0,null,function*(){const $=R?{[S.label]:{[F]:R}}:{};m(!0);const B=yield D(P(x({},$),{parentId:T==null?void 0:T.key}));m(!1),u(B)});return(0,import_jsx_runtime.jsx)(import_antd.Space,{wrap:!0,children:a.map((R,T)=>{var $,B,I;return R.children&&(0,import_jsx_runtime.jsx)(import_antd.Select,{disabled:f.disabled,allowClear:!0,showSearch:!0,autoClearSearchValue:!0,filterOption:!1,filterSort:null,defaultValue:{label:($=R==null?void 0:R.value)==null?void 0:$[S.label],value:(B=R==null?void 0:R.value)==null?void 0:B[S.value]},labelInValue:!0,onSearch:E=>w(E,R),fieldNames:S,style:{minWidth:150},onChange:(E,V)=>N(E,V,T),options:d?[]:A(c),onDropdownVisibleChange:E=>M(E,R,T),notFoundContent:d?(0,import_jsx_runtime.jsx)(import_antd.Spin,{size:"small"}):null},`${(I=R.value)==null?void 0:I.id}+ ${R.key} + ${S.label}`)})})}),AssociationCascadeSelect=(0,import_react.connect)(e=>(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(CascadeSelect,x({},e))})),InternalCascadeSelect=(0,import_react.observer)(e=>{var t;const{options:o}=useAssociationFieldContext(),r=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[]),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react.useField)(),a=(0,import_react.useForm)(),l=(0,import_react.useFieldSchema)(),{loading:c,data:u}=useDataBlockRequest()||{},d=(0,import_react2.useMemo)(()=>{var g;return(g=u==null?void 0:u.data)==null?void 0:g[l.name]},[c]),m=!u||l.name in((u==null?void 0:u.data)||{}),p=(0,import_lodash.debounce)(g=>{var _,f;if(o.interface==="m2o"){const v=extractLastNonNullValueObjects((_=g.values)==null?void 0:_[l.name]);setTimeout(()=>{g.setValuesIn(l.name,v),n.value=v})}else{const v=extractLastNonNullValueObjects(((f=g.values)==null?void 0:f.select_array)||[]).filter(C=>C&&Object.keys(C).length>0);setTimeout(()=>{n.value=v})}},300);(0,import_react2.useEffect)(()=>{const g=(0,import_shared.uid)();return r.addEffects(g,()=>{(0,import_core.onFormValuesChange)(_=>{p(_)})}),()=>{r.removeEffects(g),p.cancel()}},[]),(0,import_react2.useEffect)(()=>{var g,_;(g=a.values)!=null&&g[l.name]||(r&&r.values.select_array&&!((_=a.values)!=null&&_[l.name])?(r.setValuesIn("select_array",void 0),setTimeout(()=>{r.setValuesIn("select_array",[{}])})):r.setValuesIn(l.name,null))},[(t=a.values)==null?void 0:t[l.name]]);const h={type:"object",properties:{select_array:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",default:Array.isArray(d)&&d.length>0?d:[{}],items:{type:"void","x-component":"Space","x-component-props":{style:{width:"100%",display:"flex"},className:import_css.css`
|
|
921
|
+
`),style:p,children:(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${d}-list`,`${d}-list-picture-card`),style:p,children:(0,import_jsx_runtime.jsx)(AttachmentList,x({disabled:i,readPretty:!0,multiple:n,value:o,onChange:r},l))})}))}const Upload=(0,import_react.connect)(InternalUpload,(0,import_react.mapProps)({value:"fileList"}),(0,import_react.mapReadPretty)(ReadPretty$9));Upload.ReadPretty=ReadPretty$9;function useSizeHint(e){const t=e??FILE_SIZE_LIMIT_DEFAULT,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_filesize.default)(t,{base:2,standard:"jedec",locale:r.language});return t!==0?o("File size should not exceed {{size}}.",{size:i}):""}function DefaultThumbnailPreviewer({file:e}){var t;const{componentCls:o}=useStyles$6(),{getThumbnailURL:r=getThumbnailPlaceholderURL}=(t=attachmentFileTypes.getTypeByFile(e))!=null?t:{},i=r(e);return(0,import_jsx_runtime.jsx)("img",{src:i,alt:e.title,className:`${o}-list-item-image`})}function AttachmentListItem(e){var t,o;const{file:r,disabled:i,onPreview:n,onDelete:a,readPretty:l,showFileName:c}=e,{componentCls:u}=useStyles$6(),{t:d}=(0,import_react_i18next.useTranslation)(),m=(0,import_react2.useCallback)(C=>{C.preventDefault(),C.stopPropagation(),n==null||n(r)},[r,n]),p=(0,import_react2.useCallback)(()=>{a==null||a(r)},[r,a]),h=(0,import_react2.useCallback)(()=>{(0,import_file_saver.saveAs)(r.url,`${r.title}${r.extname}`)},[r]),{ThumbnailPreviewer:g=DefaultThumbnailPreviewer}=(t=attachmentFileTypes.getTypeByFile(r))!=null?t:{},_=[(0,import_jsx_runtime.jsx)("span",{className:`${u}-list-item-thumbnail`,children:(0,import_jsx_runtime.jsx)(g,{file:r})},"thumbnail"),c!==!1&&r.title?(0,import_jsx_runtime.jsx)("span",{className:`${u}-list-item-name`,title:r.title,children:r.status==="uploading"?d("Uploading"):r.title},"title"):null],f=r.url?(0,import_jsx_runtime.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:r.url,onClick:m,children:_}):(0,import_jsx_runtime.jsx)("span",{className:`${u}-span`,children:_}),v=(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(`${u}-list-item`,`${u}-list-item-${(o=r.status)!=null?o:"done"}`,`${u}-list-item-list-type-picture-card`),children:[(0,import_jsx_runtime.jsx)("div",{className:`${u}-list-item-info`,children:f}),(0,import_jsx_runtime.jsx)("span",{className:`${u}-list-item-actions`,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{size:3,children:[!l&&r.url&&(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.DownloadOutlined,{}),onClick:h}),!l&&!i&&r.status!=="uploading"&&(0,import_jsx_runtime.jsx)(import_antd.Button,{size:"small",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.DeleteOutlined,{}),onClick:p})]})}),r.status==="uploading"&&(0,import_jsx_runtime.jsx)("div",{className:`${u}-list-item-progress`,children:(0,import_jsx_runtime.jsx)(import_antd.Progress,{strokeWidth:4,type:"line",showInfo:!1,percent:Number(r.percent)})})]});return(0,import_jsx_runtime.jsx)("div",{style:{marginBottom:c!==!1&&r.title?"28px":"0px"},className:`${u}-list-picture-card-container ${u}-list-item-container`,children:r.status==="error"?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:r.response,getPopupContainer:C=>C.parentNode,children:v}):v})}function Previewer({index:e,onSwitchIndex:t,list:o}){var r;if(e==null)return null;const i=o[e],{Previewer:n=IframePreviewer}=(r=attachmentFileTypes.getTypeByFile(i))!=null?r:{};return(0,import_jsx_runtime.jsx)(n,{index:e,list:o,onSwitchIndex:t})}function AttachmentList(e){const{disabled:t,multiple:o,value:r,onChange:i,readPretty:n,showFileName:a}=e,[l,c]=(0,import_react2.useState)([]),[u,d]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{const h=toFileList(r);c(h)},[r]);const m=(0,import_react2.useCallback)(h=>{const g=l.findIndex(_=>_.id===h.id);d(g)},[l]),p=(0,import_react2.useCallback)(h=>{if(o){const g=r.filter(_=>_.id!==h.id);g.length===0?i(null):i(g)}else i(null)},[o,i,r]);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[l.map((h,g)=>(0,import_jsx_runtime.jsx)(AttachmentListItem,{file:h,index:g,disabled:t,onPreview:m,onDelete:p,readPretty:n,showFileName:a},h.id||h.url)),(0,import_jsx_runtime.jsx)(Previewer,{index:u,onSwitchIndex:d,list:l})]})}function Uploader(e){var t=e,{rules:o}=t,r=W(t,["rules"]);const{disabled:i,multiple:n,value:a,onChange:l,toValueItem:c=toValueItem}=r,[u,d]=(0,import_react2.useState)([]),[m,p]=(0,import_react2.useState)([]),{t:h}=(0,import_react_i18next.useTranslation)(),{componentCls:g}=useStyles$6(),_=(0,import_react.useField)(),f=useUploadProps(r),v=useBeforeUpload(o);(0,import_react2.useEffect)(()=>{if(m.length){const N=m.filter(M=>M.status==="error");_.setFeedback({type:"error",code:"ValidateError",messages:[N.length?h("Some files are not uploaded correctly, please check."):" "]})}else _.setFeedback({})},[_,m,h]);const C=(0,import_react2.useCallback)(N=>{var M;const w=N.fileList.filter(R=>R.status!=="done").map(normalizeFile);if(p(w),n){const R=N.fileList.filter(T=>T.status==="done");if(R.length){const T=[...u,...R.map($=>{var B;return c((B=$.response)==null?void 0:B.data)})];w.length?d(T):(l==null||l([...a||[],...T]),d([]))}}else{const R=N.fileList.find(T=>T.uid===N.file.uid);R.status==="done"&&(l==null||l(c((M=R.response)==null?void 0:M.data)),p([]))}},[n,a,u,c,l]),b=(0,import_react2.useCallback)(N=>{p(M=>{const w=M.indexOf(N);return M.splice(w,1),[...M]})},[]),S=(0,import_react2.useCallback)(N=>{d(M=>{const w=M.indexOf(N);return M.splice(w,1),[...M]})},[]),y=useComponent("QRCodeUploader"),{mimetype:F,size:j}=o??{},A=useSizeHint(j),D=!i&&(n||(!a||Array.isArray(a)&&!a.length)&&!m.length);return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[u.map((N,M)=>(0,import_jsx_runtime.jsx)(AttachmentListItem,{file:N,index:M,disabled:i,onDelete:S},N.id)),m.map((N,M)=>(0,import_jsx_runtime.jsx)(AttachmentListItem,{file:N,index:M,disabled:i,onDelete:b},N.uid)),(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${g}-list-picture-card-container`,`${g}-list-item-container`),style:D?{}:{display:"none"},children:(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:A,children:(0,import_jsx_runtime.jsx)(import_antd.Upload,P(x({accept:F},f),{disabled:i,multiple:n,listType:"picture-card",fileList:m,beforeUpload:v,onChange:C,showUploadList:!1,children:D?(0,import_jsx_runtime.jsxs)("span",{children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),(0,import_jsx_runtime.jsx)("br",{})," ",h("Upload")]}):null}))})}),D&&y&&(0,import_jsx_runtime.jsx)(y,{disabled:i,multiple:n,value:a,onChange:l})]})}function Attachment(e){const{wrapSSR:t,hashId:o,componentCls:r}=useStyles$6();return t((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${r}-wrapper`,`${r}-picture-card-wrapper`,"nb-upload",o),children:(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(`${r}-list`,`${r}-list-picture-card`),children:[(0,import_jsx_runtime.jsx)(AttachmentList,x({},e)),(0,import_jsx_runtime.jsx)(Uploader,x({},e))]})}))}Attachment.ReadPretty=ReadPretty$9;Upload.Attachment=withDynamicSchemaProps((0,import_react.connect)(Attachment,(0,import_react.mapReadPretty)(Attachment.ReadPretty)),{displayName:"Upload.Attachment"});Upload.Dragger=(0,import_react.connect)(e=>{const t=e,{tipContent:o,onChange:r}=t,i=W(t,["tipContent","onChange"]),{wrapSSR:n,hashId:a,componentCls:l}=useStyles$6(),c=(0,import_react2.useCallback)(u=>{r==null||r(toFileList(u.fileList))},[r]);return n((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${l}-dragger`,a),children:(0,import_jsx_runtime.jsxs)(import_antd.Upload.Dragger,P(x({},useUploadProps(i)),{onChange:c,children:[o,e.children]}))}))},(0,import_react.mapProps)({value:"fileList"}));Upload.DraggerV2=withDynamicSchemaProps((0,import_react.connect)(e=>{var t=e,{rules:o}=t,r=W(t,["rules"]);const{t:i}=(0,import_react_i18next.useTranslation)(),n=i("Click or drag file to this area to upload"),a=useProps(r),{title:l=n}=a,c=W(a,["title"]),[u,d]=(0,import_react2.useState)(!1),{wrapSSR:m,hashId:p,componentCls:h}=useStyles$6(),g=useBeforeUpload(o),{size:_,mimetype:f}=o??{},v=useSizeHint(_),C=(0,import_react2.useCallback)(({fileList:b})=>{const{onChange:S}=c;S==null||S(b),b.some(y=>y.status==="uploading")?d(!0):d(!1)},[c]);return m((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-dragger`,p),children:(0,import_jsx_runtime.jsxs)(import_antd.Upload.Dragger,P(x({},useUploadProps(P(x(x({},r),c),{accept:f,onChange:C,beforeUpload:g}))),{children:[(0,import_jsx_runtime.jsx)("p",{className:`${h}-drag-icon`,children:u?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{style:{fontSize:36},spin:!0}):(0,import_jsx_runtime.jsx)(import_icons.InboxOutlined,{})}),(0,import_jsx_runtime.jsx)("p",{className:`${h}-text`,children:l}),(0,import_jsx_runtime.jsxs)("ul",{children:[(0,import_jsx_runtime.jsx)("li",{className:`${h}-hint`,children:i("Support for a single or bulk upload.")}),(0,import_jsx_runtime.jsx)("li",{className:`${h}-hint`,children:v})]})]}))}))},(0,import_react.mapProps)({value:"fileList"})),{displayName:"Upload.DraggerV2"});const schema$1={Nester:{type:"void","x-component":"AssociationField.Nester",properties:{grid:{type:"void","x-component":"Grid","x-initializer":"form:configureFields"}}},AddNewer:{type:"void","x-component":"AssociationField.AddNewer","x-action":"create",title:'{{ t("Add record") }}',"x-component-props":{className:"nb-action-popup"},properties:{tabs:{type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab","x-initializer-props":{gridInitializer:"popup:addNew:addBlock"},properties:{tab1:{type:"void",title:'{{t("Add new")}}',"x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:addNew:addBlock",properties:{}}}}}}}},Selector:{type:"void","x-component":"AssociationField.Selector",title:'{{ t("Select record") }}',"x-component-props":{className:"nb-record-picker-selector"},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:tableSelector:addBlock",properties:{}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-toolbar":"ActionSchemaToolbar","x-settings":"actionSettings:submit","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}},Viewer:{type:"void",title:'{{ t("View record") }}',"x-component":"AssociationField.Viewer","x-component-props":{className:"nb-action-popup"},properties:{tabs:{type:"void","x-component":"Tabs","x-component-props":{},"x-initializer":"popup:addTab",properties:{tab1:{type:"void",title:'{{t("Details")}}',"x-component":"Tabs.TabPane","x-designer":"Tabs.Designer","x-component-props":{},properties:{grid:{type:"void","x-component":"Grid","x-initializer":"popup:common:addBlock",properties:{}}}}}}}},SubTable:{type:"void","x-component":"AssociationField.SubTable","x-initializer":"table:configureColumns","x-initializer-props":{action:!1},properties:{}}},useTableSelectorProps$3=()=>{const e=(0,import_react.useField)(),{multiple:t,options:o=[],setSelectedRows:r,selectedRows:i=[],onChange:n}=(0,import_react2.useContext)(RecordPickerContext),a=useTableSelectorProps$4(),{onRowSelectionChange:l,rowKey:c="id"}=a,u=W(a,["onRowSelectionChange","rowKey"]),{setVisible:d}=useActionContext();return P(x({},u),{rowKey:c,rowSelection:{type:t?"checkbox":"radio",selectedRowKeys:i==null?void 0:i.filter(m=>o.every(p=>p[c]!==m[c])).map(m=>m[c])},onRowSelectionChange(m,p){if(t){const h=flatData$2(e.value)||[],g=(0,import_lodash.differenceBy)(i||[],h,c),_=(0,import_lodash.unionBy)(g,p,c),f=_.map(v=>v[c]);r==null||r(_),l==null||l(f,_)}else r==null||r(p),l==null||l(m,p),n((p==null?void 0:p[0])||null),d(!1)}})};function FileSelector(e){const t=e,{disabled:o,multiple:r,value:i,onChange:n,action:a,onSelect:l,quickUpload:c,selectFile:u}=t,d=W(t,["disabled","multiple","value","onChange","action","onSelect","quickUpload","selectFile"]),{wrapSSR:m,hashId:p,componentCls:h}=useStyles$6(),{useFileCollectionStorageRules:g,useAttachmentFieldProps:_}=(0,import_react.useExpressionScope)(),{t:f}=(0,import_react_i18next.useTranslation)(),v=g(),C=_(),b=u===void 0&&c===void 0;return m((0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-wrapper`,`${h}-picture-card-wrapper`,"nb-upload",p),children:(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(`${h}-list`,`${h}-list-picture-card`),children:[(0,import_jsx_runtime.jsx)(AttachmentList,x({disabled:o,multiple:r,value:i,onChange:n},d)),b?(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-list-picture-card-container`,`${h}-list-item-container`),children:(0,import_jsx_runtime.jsx)(import_antd.Upload,{disabled:o,multiple:r,listType:"picture-card",showUploadList:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},onClick:l,children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),f("Select")]})})}):null,c?(0,import_jsx_runtime.jsx)(Uploader,x(P(x({},C),{value:i,multiple:r,onChange:n,action:a,rules:v,disabled:o}),d)):null,u&&(r||!i)?(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(`${h}-list-picture-card-container`,`${h}-list-item-container`),children:(0,import_jsx_runtime.jsx)(import_antd.Upload,{disabled:o,multiple:r,listType:"picture-card",showUploadList:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:{width:"100%",height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},onClick:l,children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{}),f("Select")]})})}):null]})}))}const InternalFileManager=e=>{var t,o;const r=e,{value:i,multiple:n,onChange:a}=r,l=W(r,["value","multiple","onChange"]),c=(0,import_react.useFieldSchema)(),[u,d]=(0,import_react2.useState)(!1),[m,p]=(0,import_react2.useState)([]),h=useInsertSchema$1("Selector"),g=useFieldNames$1(e),{designable:_}=useDesignable(),f=(0,import_react.useField)(),[v,C]=(0,import_react2.useState)([]),{getField:b}=useCollection_deprecated(),S=b(f.props.name),y=useLabelUiSchema$1(S==null?void 0:S.target,(g==null?void 0:g.label)||"label"),F=useCompile(),{modalProps:j}=useActionContext(),A=M=>{M.stopPropagation(),M.preventDefault(),_?h(schema$1.Selector):c.reduceProperties((w,R)=>R["x-component"]==="AssociationField.Selector"?R:w,null)||c.addProperty("selector",schema$1.Selector),d(!0),p([])};(0,import_react2.useEffect)(()=>{if(i&&Object.keys(i).length>0){const M=(Array.isArray(i)?i:i?[i]:[]).filter(Boolean).map(w=>{const R=w[g.label];return P(x({},w),{[g.label]:getLabelFormatValue$1(F(y),F(R))})});C(M)}else C([])},[i,g==null?void 0:g.label]);const D={size:"small",fieldNames:g,multiple:["o2m","m2m","mbm"].includes(S==null?void 0:S.interface)&&n,association:{target:S==null?void 0:S.target},options:v,onChange:e==null?void 0:e.onChange,selectedRows:m,setSelectedRows:p,collectionField:S},N=()=>{const{setVisible:M}=useActionContext(),{multiple:w,selectedRows:R,onChange:T,options:$,collectionField:B}=(0,import_react2.useContext)(RecordPickerContext);return{onClick(){T(w?(0,import_lodash.unionBy)(R,$,(B==null?void 0:B.targetKey)||"id"):(R==null?void 0:R[0])||null),M(!1)}}};return(0,import_jsx_runtime.jsxs)("div",{style:{width:"100%",overflow:"auto"},children:[(0,import_jsx_runtime.jsx)(FileSelector,P(x({},l),{value:n?v:v==null?void 0:v[0],multiple:n,quickUpload:((t=c["x-component-props"])==null?void 0:t.quickUpload)!==!1,selectFile:((o=c["x-component-props"])==null?void 0:o.selectFile)!==!1,action:`${S==null?void 0:S.target}:create`,onSelect:A,onChange:a})),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{openMode:"drawer",visible:u,setVisible:d,modalProps:{getContainer:(l==null?void 0:l.getContainer)||(j==null?void 0:j.getContainer)},formValueChanged:!1},children:(0,import_jsx_runtime.jsx)(RecordPickerProvider,P(x({},D),{children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:S==null?void 0:S.target,children:(0,import_jsx_runtime.jsx)(FormProvider,{children:(0,import_jsx_runtime.jsx)(TableSelectorParamsProvider,{params:{},children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{usePickActionProps:N,useTableSelectorProps:useTableSelectorProps$3},children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:f.address,schema:c,filterProperties:M=>M["x-component"]==="AssociationField.Selector"})})})})})}))})]})},FileManageReadPretty=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),{getField:o}=useCollection_deprecated(),{getCollectionJoinField:r}=useCollectionManager_deprecated();return o(t.name)||r(t["x-collection-field"])?(0,import_jsx_runtime.jsx)(Upload.ReadPretty,x({},e)):null}),EMPTY="N/A",SchemaField=(0,import_react.createSchemaField)({components:{Space:import_antd.Space,Input:import_antd.Input,ArrayItems:import_antd_v5.ArrayItems,FormItem:import_antd_v5.FormItem}}),CascadeSelect=(0,import_react.connect)(e=>{var t;const{data:o,mapOptions:r,onChange:i,value:n}=e,[a,l]=(0,import_react2.useState)([{key:void 0,children:[],value:null}]),[c,u]=(0,import_react2.useState)(o),[d,m]=(0,import_react2.useState)(!1),p=useCompile(),h=useAPIClient(),g=useServiceOptions$1(e),{options:_,field:f}=useAssociationFieldContext(),v=h.resource(_.target),{getCollectionJoinField:C,getInterface:b}=useCollectionManager_deprecated(),S=(t=f==null?void 0:f.componentProps)==null?void 0:t.fieldNames,y=(_==null?void 0:_.target)&&(S==null?void 0:S.label)&&C(`${_.target}.${S.label}`),F=(0,import_react2.useMemo)(()=>{var R,T;return y!=null&&y.interface&&((T=(R=b(y.interface))==null?void 0:R.filterable)==null?void 0:T.operators[0].value)||"$includes"},[y]),j=(0,import_react.useField)();(0,import_react2.useEffect)(()=>{var R;if(n){const T=Array.isArray(n)?extractLastNonNullValueObjects(n==null?void 0:n.filter(B=>B.value),!0):transformNestedData(n),$=(R=T==null?void 0:T.map)==null?void 0:R.call(T,B=>({key:B.parentId,children:[],value:B}));l($)}},[]),(0,import_react2.useEffect)(()=>{n||l([{key:void 0,children:[],value:null}])},[n]);const A=(0,import_react2.useCallback)(R=>{try{return R==null?void 0:R.filter(T=>["number","string"].includes(typeof T[S.value])).map(T=>{var $,B,I;let E=p(T[S.label]);if(($=y==null?void 0:y.uiSchema)!=null&&$.enum)if(Array.isArray(E))E=E.map((V,O)=>{var L,U;const z=(U=(L=y.uiSchema.enum).find)==null?void 0:U.call(L,G=>G.value===V);return z?(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:z.color,style:{marginRight:3},children:(z==null?void 0:z.label)||V},O):(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:V},V)}).reverse();else{const V=(I=(B=y.uiSchema.enum).find)==null?void 0:I.call(B,O=>O.value===E);V&&(E=(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:V.color,children:V.label}))}return(y==null?void 0:y.type)==="date"&&(E=(0,import_dayjs.default)(E).format("YYYY-MM-DD")),r?r({[S.label]:E||EMPTY,[S.value]:T[S.value]}):P(x({},T),{[S.label]:E||EMPTY,[S.value]:T[S.value]})}).filter(Boolean)}catch(T){return console.error(T),R}},[y==null?void 0:y.uiSchema,S]),D=R=>q(void 0,null,function*(){var T,$;const B=yield v.list({pageSize:200,params:g==null?void 0:g.params,filter:mergeFilter([R,(T=g==null?void 0:g.params)==null?void 0:T.filter]),tree:R.parentId?void 0:!0});return($=B==null?void 0:B.data)==null?void 0:$.data}),N=(R,T,$)=>q(void 0,null,function*(){const B=yield D({parentId:T==null?void 0:T.id}),I=[...a];if(I.splice($+1),I[$]=P(x({},I[$]),{value:T}),T!=null&&T.id&&(I[$+1]={key:T==null?void 0:T.id,children:(B==null?void 0:B.length)>0?B:null}),l(I),["o2m","m2m"].includes(_.interface)){const E=Array.isArray(f.fieldValue)?f.fieldValue:[];E[j.index]=T,f.fieldValue=E}else f.value=T;I.length===1&&!I[0].value?i==null||i(null):i==null||i(I)}),M=(R,T,$)=>q(void 0,null,function*(){var B,I,E;if(R){m(!0);const V=yield D({parentId:T==null?void 0:T.key});if(m(!1),u(V),$===(a==null?void 0:a.length)-1&&(B=T==null?void 0:T.value)!=null&&B.id){const O=yield D({parentId:(I=T==null?void 0:T.value)==null?void 0:I.id}),L=[...a];L.splice($+1),L[$]=P(x({},L[$]),{value:T==null?void 0:T.value}),L[$+1]={key:(E=T==null?void 0:T.value)==null?void 0:E.id,children:(O==null?void 0:O.length)>0?O:null},l(L),i==null||i(L)}}}),w=(R,T)=>q(void 0,null,function*(){const $=R?{[S.label]:{[F]:R}}:{};m(!0);const B=yield D(P(x({},$),{parentId:T==null?void 0:T.key}));m(!1),u(B)});return(0,import_jsx_runtime.jsx)(import_antd.Space,{wrap:!0,children:a.map((R,T)=>{var $,B,I;return R.children&&(0,import_jsx_runtime.jsx)(import_antd.Select,{disabled:f.disabled,allowClear:!0,showSearch:!0,autoClearSearchValue:!0,filterOption:!1,filterSort:null,defaultValue:{label:($=R==null?void 0:R.value)==null?void 0:$[S.label],value:(B=R==null?void 0:R.value)==null?void 0:B[S.value]},labelInValue:!0,onSearch:E=>w(E,R),fieldNames:S,style:{minWidth:150},onChange:(E,V)=>N(E,V,T),options:d?[]:A(c),onDropdownVisibleChange:E=>M(E,R,T),notFoundContent:d?(0,import_jsx_runtime.jsx)(import_antd.Spin,{size:"small"}):null},`${(I=R.value)==null?void 0:I.id}+ ${R.key} + ${S.label}`)})})}),AssociationCascadeSelect=(0,import_react.connect)(e=>(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(CascadeSelect,x({},e))})),InternalCascadeSelect=(0,import_react.observer)(e=>{var t;const{options:o}=useAssociationFieldContext(),r=(0,import_react2.useMemo)(()=>(0,import_core.createForm)(),[]),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react.useField)(),a=(0,import_react.useForm)(),l=(0,import_react.useFieldSchema)(),{loading:c,data:u}=useDataBlockRequest()||{},d=(0,import_react2.useMemo)(()=>{var g;return(g=u==null?void 0:u.data)==null?void 0:g[l.name]},[c]),m=!u||l.name in((u==null?void 0:u.data)||{}),p=(0,import_lodash.debounce)(g=>{var _,f;if(o.interface==="m2o"){const v=extractLastNonNullValueObjects((_=g.values)==null?void 0:_[l.name]);setTimeout(()=>{g.setValuesIn(l.name,v),n.value=v})}else{const v=extractLastNonNullValueObjects(((f=g.values)==null?void 0:f.select_array)||[]).filter(C=>C&&Object.keys(C).length>0);setTimeout(()=>{n.value=v})}},300);(0,import_react2.useEffect)(()=>{const g=(0,import_shared.uid)();return r.addEffects(g,()=>{(0,import_core.onFormValuesChange)(_=>{p(_)})}),()=>{r.removeEffects(g),p.cancel()}},[]),(0,import_react2.useEffect)(()=>{var g,_;(g=a.values)!=null&&g[l.name]||(r&&r.values.select_array&&!((_=a.values)!=null&&_[l.name])?(r.setValuesIn("select_array",void 0),setTimeout(()=>{r.setValuesIn("select_array",[{}])})):r.setValuesIn(l.name,null))},[(t=a.values)==null?void 0:t[l.name]]);const h={type:"object",properties:{select_array:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",default:Array.isArray(d)&&d.length>0?d:[{}],items:{type:"void","x-component":"Space","x-component-props":{style:{width:"100%",display:"flex"},className:import_css.css`
|
|
922
922
|
.ant-formily-item-control {
|
|
923
923
|
max-width: 100% !important;
|
|
924
924
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/client",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.49",
|
|
4
4
|
"license": "AGPL-3.0",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"@formily/reactive-react": "^2.2.27",
|
|
27
27
|
"@formily/shared": "^2.2.27",
|
|
28
28
|
"@formily/validator": "^2.2.27",
|
|
29
|
-
"@nocobase/evaluators": "1.9.
|
|
30
|
-
"@nocobase/sdk": "1.9.
|
|
31
|
-
"@nocobase/utils": "1.9.
|
|
29
|
+
"@nocobase/evaluators": "1.9.49",
|
|
30
|
+
"@nocobase/sdk": "1.9.49",
|
|
31
|
+
"@nocobase/utils": "1.9.49",
|
|
32
32
|
"ahooks": "^3.7.2",
|
|
33
33
|
"antd": "5.24.2",
|
|
34
34
|
"antd-mobile": "^5.41.1",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"dumi": "2.2.14",
|
|
86
86
|
"dumi-theme-nocobase": "^0.2.28"
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "b90fa583f837a84067c354a72574e738cc6c3281"
|
|
89
89
|
}
|