@nocobase/client 1.5.0 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.mjs +27 -24
- package/lib/index.js +7 -7
- package/package.json +5 -5
package/lib/index.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
f.display = field.value ? 'visible' : 'none';
|
|
14
14
|
f.value='HH:mm:ss'
|
|
15
15
|
});
|
|
16
|
-
}}}`,{dependencies:["uiSchema.x-component-props.picker"],when:'{{$deps[0]==="date"}}',fulfill:{state:{hidden:!1}},otherwise:{state:{hidden:!0,value:!1}}}]},"uiSchema.x-component-props.timeFormat":{type:"string",title:'{{t("Time format")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:"HH:mm:ss",enum:[{label:'{{t("12 hour")}}',value:"hh:mm:ss a"},{label:'{{t("24 hour")}}',value:"HH:mm:ss"}],"x-reactions":{dependencies:["uiSchema.x-component-props.showTime"],fulfill:{state:{hidden:"{{ !$deps[0] }}"}}}}},dataSource={type:"array",title:'{{t("Options")}}',"x-decorator":"FormItem","x-component":"ArrayTable","x-component-props":{pagination:{pageSize:1e3}},items:{type:"object",properties:{column1:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:50,title:"",align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},column2:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Option value")}}'},properties:{value:{type:"string",required:!0,"x-decorator":"FormItem","x-component":"Input","x-reactions":e=>{!e.initialValue&&!e.initialized&&(e.initialValue=(0,import_shared.uid)(),e.setValue((0,import_shared.uid)()))}}}},column3:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Option label")}}'},properties:{label:{type:"string",required:!0,"x-decorator":"FormItem","x-component":"Input"}}},column4:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Color")}}'},properties:{color:{type:"string","x-decorator":"FormItem","x-component":"ColorSelect"}}},column5:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:"",dataIndex:"operations",fixed:"right"},properties:{item:{type:"void","x-component":"FormItem",properties:{remove:{type:"void","x-component":"ArrayTable.Remove"}}}}}}},properties:{add:{type:"void","x-component":"ArrayTable.Addition","x-component-props":{randomValue:!0},title:"{{t('Add option')}}"}}},defaultProps={"uiSchema.title":{type:"string",title:'{{t("Field display name")}}',required:!0,"x-decorator":"FormItem","x-component":"Input"},name:{type:"string",title:'{{t("Field name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input","x-validator":"uid",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"}},recordPickerViewer={type:"void",title:'{{ t("View record") }}',"x-component":"RecordPicker.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:{}}}}}}}},collectionDataSource={type:"string",title:'{{t("Options")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},enum:"{{collections}}"},index=Object.freeze(Object.defineProperty({__proto__:null,autoFill,autoIncrement,collectionDataSource,constraintsProps,dataSource,dateTimeProps,defaultProps,operators,primaryKey,recordPickerViewer,relationshipType,reverseFieldProperties,type,unique},Symbol.toStringTag,{value:"Module"}));class CollectionFieldInterface{constructor(t){A(this,"name"),A(this,"group"),A(this,"title"),A(this,"description"),A(this,"order"),A(this,"default"),A(this,"sortable"),A(this,"availableTypes"),A(this,"supportDataSourceType"),A(this,"notSupportDataSourceType"),A(this,"hasDefaultValue"),A(this,"componentOptions"),A(this,"isAssociation"),A(this,"operators"),A(this,"properties"),A(this,"filterable"),A(this,"titleUsable"),A(this,"hidden"),this.collectionFieldInterfaceManager=t}addComponentOption(t){var o,r,i,n,a,l;if(!this.componentOptions){this.componentOptions=[];const c=(r=(o=this.default)==null?void 0:o.uiSchema)==null?void 0:r["x-component"],u=(n=(i=this.default)==null?void 0:i.uiSchema)==null?void 0:n["x-component-props"];if(c){const m=((l=(a=this.default)==null?void 0:a.uiSchema)==null?void 0:l.type)||"string",d=(0,import_client.tval)(c.startsWith("Input")?(0,import_lodash.capitalize)(m):c.split(".").pop());this.componentOptions=[{label:d,value:c,useProps(){return u||{}}}]}}this.componentOptions.push(t)}getConfigureFormProperties(){const t=this.hasDefaultValue?this.getDefaultValueProperty():{};return x(x({},(0,import_lodash.cloneDeep)(x(x({},defaultProps),this==null?void 0:this.properties))),t)}getDefaultValueProperty(){var t,o;return{defaultValue:P(x(x({},(0,import_lodash.cloneDeep)((t=this==null?void 0:this.default)==null?void 0:t.uiSchema)),(o=this==null?void 0:this.properties)==null?void 0:o.uiSchema),{required:!1,title:'{{ t("Default value") }}',"x-decorator":"FormItem","x-reactions":[{dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat","uiSchema.x-component-props.picker"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}",picker:"{{$deps[4]}}"}}}},{dependencies:["uiSchema.x-component-props.picker"],fulfill:{state:{value:null}}},{dependencies:["primaryKey","unique","autoIncrement","defaultToCurrentTime"],when:"{{$deps[0]||$deps[1]||$deps[2]||$deps[3]}}",fulfill:{state:{hidden:!0,value:null}},otherwise:{state:{hidden:!1}}},{dependencies:["uiSchema.enum"],fulfill:{state:{dataSource:"{{$deps[0]}}"}}}]})}}}class CollectionFieldInterfaceManager{constructor(t,o,r){A(this,"collectionFieldInterfaceInstances",{}),A(this,"collectionFieldGroups",{}),A(this,"actionList",{}),this.dataSourceManager=r,this.addFieldInterfaces(t),this.addFieldInterfaceGroups(o)}addFieldInterfaces(t=[]){const o=t.reduce((r,i)=>{const n=new i(this);return r[n.name]=n,Array.isArray(this.actionList[n.name])&&(this.actionList[n.name].forEach(a=>{n[a.type](a.data)}),this.actionList[n.name]=void 0),r},{});Object.assign(this.collectionFieldInterfaceInstances,o)}addFieldInterfaceComponentOption(t,o){const r=this.getFieldInterface(t);if(!r){this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"addComponentOption",data:o});return}r.addComponentOption(o)}getFieldInterface(t){return this.collectionFieldInterfaceInstances[t]}getFieldInterfaces(t){return Object.values(this.collectionFieldInterfaceInstances).filter(o=>{var r,i;if(!t||!o.supportDataSourceType&&!o.notSupportDataSourceType)return!0;if(o.supportDataSourceType)return(r=o.supportDataSourceType)==null?void 0:r.includes(t);if(o.notSupportDataSourceType)return!((i=o.notSupportDataSourceType)!=null&&i.includes(t))})}addFieldInterfaceGroups(t){Object.assign(this.collectionFieldGroups,t)}getFieldInterfaceGroups(){return this.collectionFieldGroups}getFieldInterfaceGroup(t){return this.collectionFieldGroups[t]}}const DEFAULT_DATA_SOURCE_KEY="main",DEFAULT_DATA_SOURCE_TITLE='{{t("Main")}}';class DataSourceManager{constructor(t={},o){A(this,"dataSourceInstancesMap",{}),A(this,"multiDataSources",[]),A(this,"collectionMixins",[]),A(this,"collectionTemplateManager"),A(this,"collectionFieldInterfaceManager"),this.options=t,this.app=o,this.collectionTemplateManager=new CollectionTemplateManager(t.collectionTemplates,this),this.collectionFieldInterfaceManager=new CollectionFieldInterfaceManager(t.fieldInterfaces,t.fieldInterfaceGroups,this),this.collectionMixins.push(...t.collectionMixins||[]),this.addDataSource(LocalDataSource,{key:DEFAULT_DATA_SOURCE_KEY,displayName:DEFAULT_DATA_SOURCE_TITLE,collections:t.collections||[]}),(t.dataSources||[]).forEach(r=>{this.addDataSource(LocalDataSource,r)})}addCollectionMixins(t=[]){const o=t.filter(r=>!this.collectionMixins.includes(r));o.length&&(this.collectionMixins.push(...o),this.getDataSources().forEach(r=>r.collectionManager.reAddCollections()))}getDataSources(t){const o=Object.values(this.dataSourceInstancesMap);return t?import_lodash.default.filter(o,t):o}getDataSource(t){return t?this.dataSourceInstancesMap[t]:this.dataSourceInstancesMap[DEFAULT_DATA_SOURCE_KEY]}removeDataSources(t){t.forEach(o=>{delete this.dataSourceInstancesMap[o]})}addDataSource(t,o){const r=new t(o,this);return this.dataSourceInstancesMap[r.key]=r,r}addDataSources(t,o){return q(this,null,function*(){this.multiDataSources.some(([r,i])=>r===t&&i===o)||this.multiDataSources.push([t,o])})}getAllCollections(t={}){const{filterCollection:o,filterDataSource:r}=t;return this.getDataSources(r).reduce((i,n)=>(i.push(P(x({},n.getOptions()),{collections:n.collectionManager.getCollections(o)})),i),[])}addFieldInterfaceGroups(t){this.collectionFieldInterfaceManager.addFieldInterfaceGroups(t)}addCollectionTemplates(t=[]){this.collectionTemplateManager.addCollectionTemplates(t)}addFieldInterfaces(t=[]){this.collectionFieldInterfaceManager.addFieldInterfaces(t)}reload(){return q(this,null,function*(){return yield Promise.all(this.multiDataSources.map(t=>q(this,[t],function*([o,r]){(yield o()).map(i=>this.addDataSource(r,i))}))),Promise.all(this.getDataSources().map(t=>t.reload()))})}}const HEADERS_DATA_SOURCE_KEY="x-data-source",isTitleField=(e,t)=>{var o;return(o=e.collectionFieldInterfaceManager.getFieldInterface(t.interface))==null?void 0:o.titleUsable},useDataSourceHeaders=e=>(0,import_react2.useMemo)(()=>{if(e&&e!==DEFAULT_DATA_SOURCE_KEY)return{[HEADERS_DATA_SOURCE_KEY]:e}},[e]),getDataSourceHeaders=e=>e&&e!==DEFAULT_DATA_SOURCE_KEY?{[HEADERS_DATA_SOURCE_KEY]:e}:{},TreeNode=e=>{const{tag:t,type:o,displayType:r=!0}=e,i={reference:"Reference",duplicate:"Duplicate",preloading:"Preloading"};return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Tag,{color:{reference:"blue",duplicate:"green",preloading:"cyan"}[o],children:[(0,import_jsx_runtime.jsx)("span",{children:t})," ",r?`(${i[o]})`:""]})})},systemKeys=["sort","createdById","createdBy","createdAt","updatedById","updatedBy","updatedAt","password","sequence"],useCollectionState=(e,t=!0,o)=>{const{getCollectionFields:r,getAllCollectionsInheritChain:i,getCollection:n,getInterface:a}=useCollectionManager_deprecated(),[l]=(0,import_react2.useState)(m),c=useCompile(),u=(0,import_react.useField)();function m(){return(i(e)||[]).map(v=>{var S;return{label:(S=n(v))==null?void 0:S.title,value:v}})}const d=(v,{exclude:S=[],depth:C=0,maxDepth:b,prefix:y=""})=>C>b?[]:r(v).map(F=>{var j;if(S.includes(F.name)||!F.interface||["sort","password","sequence"].includes(F.type)||o&&o(F))return;const k={type:"duplicate",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},T=P(x({},k),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},k),{displayType:t})),key:y?`${y}.${F.name}`:F.name,isLeaf:!0,field:F});return["belongsTo","belongsToMany"].includes(F.type)?(k.type="reference",T.type="reference",T.title=import_react2.default.createElement(TreeNode,P(x({},k),{type:"reference",displayType:t})),T.isLeaf=!1,T.children=p(F.target,{depth:C+1,maxDepth:b,prefix:T.key,exclude:systemKeys})):["hasOne","hasMany"].includes(F.type)&&(T.isLeaf=!1,T.children=d(F.target,{depth:C+1,maxDepth:b,prefix:T.key,exclude:["id",...systemKeys]})),T}).filter(Boolean),p=(v,{prefix:S,maxDepth:C,depth:b=0,exclude:y=[]})=>b>C?[]:r(v).map(F=>{var j;if(!F.target||!F.interface||y.includes(F.name))return;const k={type:"preloading",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},T=S?`${S}.${F.name}`:F.name;return{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},k),{displayType:t})),key:T,isLeaf:!1,field:F,children:p(F.target,{prefix:T,depth:b+1,maxDepth:C,exclude:y})}}).filter(Boolean),g=v=>v.map(S=>P(x({},S),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},S),{type:S.type,displayType:t})),children:S.children?g(S.children):null})),h=(0,import_react2.useCallback)((v,S,C)=>{var b,y;const F=S.index,j=(y=(b=u.initialValue)==null?void 0:b.items)==null?void 0:y[F];if(!v)return[];if(j!=null&&j.treeData||C)return g(C||j.treeData);try{return d(v,{exclude:["id",...systemKeys],maxDepth:1})}catch(k){return console.error(k),[]}},[]),f=(0,import_react2.useCallback)(v=>S=>new Promise(C=>{if(S.children.length)return S.children.forEach(b=>{loadChildren$1({node:b,traverseAssociations:p,traverseFields:d,systemKeys,fields:v})}),C(void 0);loadChildren$1({node:S,traverseAssociations:p,traverseFields:d,systemKeys,fields:v}),C(void 0)}),[]),_=(0,import_react2.useCallback)(v=>S=>{v.value=S},[]);return{collectionList:l,getEnableFieldTree:h,getOnLoadData:f,getOnCheck:_,getScopeDataSource:v=>{const S=r(v),C=(y,F)=>{var j,k;if(!y.interface)return;const T=a(y.interface);if(!(T!=null&&T.filterable))return;const{nested:O,children:N,operators:L}=T.filterable,D={name:y.name,title:((j=y==null?void 0:y.uiSchema)==null?void 0:j.title)||y.name,schema:y==null?void 0:y.uiSchema,operators:((k=L==null?void 0:L.filter)==null?void 0:k.call(L,R=>!(R!=null&&R.visible)||R.visible(y)))||[],interface:y.interface};if(!(y.target&&F>2)){if(F>2)return D;if(N!=null&&N.length&&(D.children=N),O){const R=r(y.target),$=b(R,F+1).filter(Boolean);D.children=D.children||[],D.children.push(...$)}return D}},b=(y,F)=>{const j=[];return y.forEach(k=>{const T=C(k,F);T&&j.push(T)}),j};return b(S,1)},useTitleFieldDataSource:v=>{const S=v.path.entire.replace("titleField","collection"),C=v.query(S).get("value"),b=r(C).filter(y=>{var F;return(F=a(y.interface))==null?void 0:F.titleUsable}).map(y=>{var F;return{value:y==null?void 0:y.name,label:c((F=y==null?void 0:y.uiSchema)==null?void 0:F.title)||(y==null?void 0:y.name)}});v.dataSource=b}}};function findNode(e,t){const o=[...e];for(;o.length;){const r=o.shift();if(r.key===t.key)return r;r.children&&o.push(...r.children)}}function loadChildren$1({node:e,traverseAssociations:t,traverseFields:o,systemKeys:r,fields:i}){const n=findNode(i.dataSource||i.componentProps.treeData,e);let a=[];return["belongsTo","belongsToMany"].includes(e.field.type)&&(e==null?void 0:e.type)==="reference"?a=t(e.field.target,{exclude:r,prefix:e.key,maxDepth:1}):(["hasOne","hasMany"].includes(e.field.type)||(e==null?void 0:e.type)==="duplicate")&&(a=o(e.field.target,{exclude:["id",...r],prefix:e.key,maxDepth:1})),a.length?n.children=a:n.isLeaf=!0,a}const NavigateNoUpdateContext=import_react2.default.createContext(null);NavigateNoUpdateContext.displayName="NavigateNoUpdateContext";const LocationNoUpdateContext=import_react2.default.createContext(null);LocationNoUpdateContext.displayName="LocationNoUpdateContext";const LocationSearchContext=import_react2.default.createContext("");LocationSearchContext.displayName="LocationSearchContext";const IsAdminPageContext=import_react2.default.createContext(!1);IsAdminPageContext.displayName="IsAdminPageContext";const CurrentPageUidContext=import_react2.default.createContext("");CurrentPageUidContext.displayName="CurrentPageUidContext";const MatchAdminContext=import_react2.default.createContext(!1);MatchAdminContext.displayName="MatchAdminContext";const MatchAdminNameContext=import_react2.default.createContext(!1);MatchAdminNameContext.displayName="MatchAdminNameContext";const IsInSettingsPageContext=import_react2.default.createContext(!1);IsInSettingsPageContext.displayName="IsInSettingsPageContext";const CurrentTabUidContext=import_react2.default.createContext("");CurrentTabUidContext.displayName="CurrentTabUidContext";const SearchParamsContext=import_react2.default.createContext(new URLSearchParams);SearchParamsContext.displayName="SearchParamsContext";const RouterBasenameContext=import_react2.default.createContext("");RouterBasenameContext.displayName="RouterBasenameContext";const IsSubPageClosedByPageMenuContext=import_react2.default.createContext({isSubPageClosedByPageMenu:!1,setFieldSchema:()=>{}});IsSubPageClosedByPageMenuContext.displayName="IsSubPageClosedByPageMenuContext";const IsSubPageClosedByPageMenuProvider=({children:e})=>{const t=(0,import_react_router_dom.useParams)(),o=(0,import_react2.useRef)({}),[r,i]=(0,import_react2.useState)(null),n=(0,import_react2.useMemo)(()=>{var l,c;const u=import_lodash.default.isEmpty(t["*"])&&((l=r==null?void 0:r["x-component-props"])==null?void 0:l.openMode)==="page"&&!!((c=o.current["*"])!=null&&c.includes(r["x-uid"]));return o.current=t,u},[r,t]),a=(0,import_react2.useMemo)(()=>({isSubPageClosedByPageMenu:n,setFieldSchema:i}),[n]);return(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuContext.Provider,{value:a,children:e})},RouterBasenameProvider=({children:e})=>{const t=(0,import_react_router_dom.useHref)("/");return(0,import_jsx_runtime.jsx)(RouterBasenameContext.Provider,{value:t,children:e})},SearchParamsProvider=({children:e})=>{const[t]=(0,import_react_router_dom.useSearchParams)();return(0,import_jsx_runtime.jsx)(SearchParamsContext.Provider,{value:t,children:e})},IsInSettingsPageProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)().pathname.includes("/settings");return(0,import_jsx_runtime.jsx)(IsInSettingsPageContext.Provider,{value:t,children:e})},MatchAdminProvider=({children:e})=>{const t=!!(0,import_react_router_dom.useMatch)("/admin");return(0,import_jsx_runtime.jsx)(MatchAdminContext.Provider,{value:t,children:e})},MatchAdminNameProvider=({children:e})=>{const t=!!(0,import_react_router_dom.useMatch)("/admin/:name");return(0,import_jsx_runtime.jsx)(MatchAdminNameContext.Provider,{value:t,children:e})},IsAdminPageProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)().pathname.startsWith("/admin");return(0,import_jsx_runtime.jsx)(IsAdminPageContext.Provider,{value:t,children:e})},CurrentPageUidProvider=({children:e})=>{const t=(0,import_react_router_dom.useParams)();return(0,import_jsx_runtime.jsx)(CurrentPageUidContext.Provider,{value:t.name,children:e})},CurrentTabUidProvider=({children:e})=>{const t=(0,import_react_router_dom.useParams)();return(0,import_jsx_runtime.jsx)(CurrentTabUidContext.Provider,{value:t.tabUid,children:e})},NavigateNoUpdateProvider=({children:e})=>{const t=(0,import_react_router_dom.useNavigate)(),o=import_react2.default.useRef(t);o.current=t;const r=import_react2.default.useCallback((i,n)=>{o.current(i,n)},[]);return(0,import_jsx_runtime.jsx)(NavigateNoUpdateContext.Provider,{value:r,children:e})},LocationNoUpdateProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)(),o=import_react2.default.useRef({});return(0,import_react2.useEffect)(()=>{Object.assign(o.current,t)},[t]),(0,import_jsx_runtime.jsx)(LocationNoUpdateContext.Provider,{value:o.current,children:e})},LocationSearchProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)();return(0,import_jsx_runtime.jsx)(LocationSearchContext.Provider,{value:t.search,children:e})},useNavigateNoUpdate=()=>import_react2.default.useContext(NavigateNoUpdateContext),useLocationNoUpdate=()=>import_react2.default.useContext(LocationNoUpdateContext),useLocationSearch=()=>import_react2.default.useContext(LocationSearchContext),useIsAdminPage=()=>import_react2.default.useContext(IsAdminPageContext),useCurrentPageUid=()=>import_react2.default.useContext(CurrentPageUidContext),useMatchAdmin=()=>import_react2.default.useContext(MatchAdminContext),useMatchAdminName=()=>import_react2.default.useContext(MatchAdminNameContext),useIsInSettingsPage=()=>import_react2.default.useContext(IsInSettingsPageContext),useCurrentTabUid=()=>import_react2.default.useContext(CurrentTabUidContext),useCurrentSearchParams=()=>import_react2.default.useContext(SearchParamsContext),useRouterBasename=()=>import_react2.default.useContext(RouterBasenameContext),useIsSubPageClosedByPageMenu=e=>{const{isSubPageClosedByPageMenu:t,setFieldSchema:o}=import_react2.default.useContext(IsSubPageClosedByPageMenuContext);return(0,import_react2.useEffect)(()=>{o(e)},[e,o]),t},CustomRouterContextProvider=({children:e})=>(0,import_jsx_runtime.jsx)(NavigateNoUpdateProvider,{children:(0,import_jsx_runtime.jsx)(LocationNoUpdateProvider,{children:(0,import_jsx_runtime.jsx)(IsAdminPageProvider,{children:(0,import_jsx_runtime.jsx)(LocationSearchProvider,{children:(0,import_jsx_runtime.jsx)(MatchAdminProvider,{children:(0,import_jsx_runtime.jsx)(MatchAdminNameProvider,{children:(0,import_jsx_runtime.jsx)(SearchParamsProvider,{children:(0,import_jsx_runtime.jsx)(RouterBasenameProvider,{children:(0,import_jsx_runtime.jsx)(IsInSettingsPageProvider,{children:e})})})})})})})})}),useDefaultDynamicComponentProps=()=>{},getHook=(e,t,o)=>{let r;return import_lodash.default.isFunction(e)?r=e:(r=t[e],r||console.error(`${o} is not registered`)),r||useDefaultDynamicComponentProps},getUseDynamicProps=(e,t)=>{if(!e)return useDefaultDynamicComponentProps;if(import_lodash.default.isFunction(e))return e;const o=e.split(".");let r;for(const i of o)r=getHook(i,r||t,e);return r};function useDynamicComponentProps(e,t){const o=(0,import_react.useExpressionScope)();return getUseDynamicProps(e,o)(t)}function withDynamicSchemaProps(e,t={}){const o=t.displayName||e.displayName||e.name,r=i=>{const{dn:n,findComponent:a}=useDesignable(),l=(0,import_react2.useMemo)(()=>{const m=n.getSchemaAttribute("x-component"),d=n.getSchemaAttribute("x-decorator"),p=n.getSchemaAttribute("x-use-component-props"),g=n.getSchemaAttribute("x-use-decorator-props");if(m&&p&&a(m)===r)return p;if(d&&g&&a(d)===r)return g},[n]),c=useDynamicComponentProps(l,i),u=(0,import_react2.useMemo)(()=>x(x({},i),c),[c,i]);return(0,import_jsx_runtime.jsx)(import_react2.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(e,P(x({},u),{children:i.children}))})};return e.displayName=o,r.displayName=`withSchemaProps(${o})`,r}const TreeRecordContext=(0,import_react2.createContext)(null),TreeRecordProvider=({children:e,parent:t})=>(0,import_jsx_runtime.jsx)(TreeRecordContext.Provider,{value:{parent:t},children:e}),useTreeParentRecord=()=>{const e=import_react2.default.useContext(TreeRecordContext);return e==null?void 0:e.parent},TemplateBlockContext=(0,import_react2.createContext)({});TemplateBlockContext.displayName="TemplateBlockContext";const useTemplateBlockContext=()=>(0,import_react2.useContext)(TemplateBlockContext),TemplateBlockProvider=({onTemplateLoaded:e,children:t})=>{const[o,r]=(0,import_react2.useState)(!1),i=(0,import_react2.useCallback)(()=>{r(!0),setTimeout(()=>{e==null||e()})},[e]),n=(0,import_react2.useMemo)(()=>({templateFinished:o,onTemplateSuccess:i}),[i,o]);return(0,import_jsx_runtime.jsx)(TemplateBlockContext.Provider,{value:n,children:t})},FormActiveFieldsContext=(0,import_react2.createContext)(null),FormActiveFieldsProvider=({children:e,name:t,getActiveFieldsName:o,addActiveFieldName:r,removeActiveFieldName:i})=>{const n=(0,import_react2.useRef)(new Set),a=(0,import_react2.useContext)(FormActiveFieldsContext),l=(0,import_react2.useMemo)(()=>({getActiveFieldsName:o||(c=>!c||c===t?Array.from(n.current):a==null?void 0:a.getActiveFieldsName(c)),addActiveFieldName:r||(c=>{n.current.add(c)}),removeActiveFieldName:i||(c=>{n.current.delete(c)}),name:t,parent:a}),[r,o,t,i,a]);return(0,import_jsx_runtime.jsx)(FormActiveFieldsContext.Provider,{value:l,children:e})},useFormActiveFields=()=>(0,import_react2.useContext)(FormActiveFieldsContext),FormBlockContext$1=(0,import_react2.createContext)({});FormBlockContext$1.displayName="FormBlockContext";const InternalFormBlockProvider=e=>{var t;const o=useCollectionManager(),r=useFormBlockContext(),{action:i,readPretty:n,params:a,collection:l,association:c}=e,u=(0,import_react.useField)(),m=(0,import_react2.useMemo)(()=>(0,import_core2.createForm)({readPretty:n}),[n]),{resource:d,service:p,updateAssociationValues:g}=useBlockRequestContext(),h=(0,import_react2.useRef)(),f=useCollectionRecord(),_=(0,import_react2.useMemo)(()=>{var v;return P(x({},r),{params:a,action:i,form:m,type:i==="get"?"update":"create",field:u,service:p,resource:d,updateAssociationValues:g,formBlockRef:h,collectionName:l||((v=o.getCollectionField(c))==null?void 0:v.target),formRecord:f})},[i,c,o,l,r,u,m,a,f,d,p,g]);return(0,import_jsx_runtime.jsx)(FormBlockContext$1.Provider,{value:_,children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:f==null?void 0:f.isNew,parent:(t=f==null?void 0:f.parentRecord)==null?void 0:t.data,record:f==null?void 0:f.data,children:(0,import_jsx_runtime.jsx)("div",{ref:h,children:e.children})})})},useFormBlockType=()=>{const e=useFormBlockContext()||{};return(0,import_react2.useMemo)(()=>({type:e.type}),[e.type])},useIsDetailBlock=()=>{const e=useFormBlockContext(),{fieldSchema:t}=useActionContext();return e.type!=="create"&&(t==null?void 0:t["x-acl-action"])!=="create"&&(t==null?void 0:t["x-action"])!=="create"},FormBlockProvider=withDynamicSchemaProps(e=>{const t=useCollectionParentRecordData(),{parentRecord:o}=e,r=useCollectionRecordData(),{association:i}=e,n=useCollectionManager(),{__collection:a}=r||{},{designable:l}=useDesignable(),c=e.collection||n.getCollection(i).name,u=(0,import_ahooks.useUpdate)();return!l&&a&&a!==c?null:(0,import_jsx_runtime.jsx)(TemplateBlockProvider,{onTemplateLoaded:u,children:(0,import_jsx_runtime.jsx)(BlockProvider,P(x({name:e.name||"form"},e),{block:"form",parentRecord:o||t,children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"form",children:(0,import_jsx_runtime.jsx)(InternalFormBlockProvider,x({},e))})}))})}),useFormBlockContext=()=>(0,import_react2.useContext)(FormBlockContext$1),useFormBlockProps$1=()=>{var e,t,o;const r=useFormBlockContext(),i=useTreeParentRecord();return(0,import_react2.useEffect)(()=>{var n;i&&((n=r.form)==null||n.query("parent").take(a=>{a.disabled=!0,a.value=i}))}),(0,import_react2.useEffect)(()=>{var n,a,l;const c=r.form;!c||(n=r.service)!=null&&n.loading||c.setInitialValues((l=(a=r.service)==null?void 0:a.data)==null?void 0:l.data)},[r.form,(t=(e=r.service)==null?void 0:e.data)==null?void 0:t.data,(o=r.service)==null?void 0:o.loading]),{form:r.form}},findFormBlock=e=>{for(;e;){if(e["x-decorator"]==="FormBlockProvider")return e;if(e["x-component"]==="AssociationField.Selector")return null;e=e.parent}return null},setDataLoadingModeSettingsItem={name:"setDataLoadingMode",Component:SetDataLoadingMode};function useDataLoadingMode(){const{dataLoadingMode:e}=useDataBlockProps()||{};return e||"auto"}function SetDataLoadingMode(){var e;const{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),n=useCollection(),{getEnableFieldTree:a,getOnLoadData:l}=useCollectionState(n==null?void 0:n.name),{getDataBlockRequest:c}=useDataBlockRequestGetter();return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:o("Set data loading mode"),scope:{getEnableFieldTree:a,name:n==null?void 0:n.name,getOnLoadData:l},schema:{type:"object",title:o("Data loading mode"),properties:{dataLoadingMode:{"x-decorator":"FormItem","x-component":"Radio.Group",default:((e=i["x-decorator-props"])==null?void 0:e.dataLoadingMode)||"auto",enum:[{value:"auto",label:o("Load all data when filter is empty")},{value:"manual",label:o("Do not load data when filter is empty")}]}}},onSubmit:({dataLoadingMode:u})=>{const m=c();import_lodash.default.set(i,"x-decorator-props.dataLoadingMode",u),r.decoratorProps.dataLoadingMode=u,t.emit("patch",{schema:{"x-uid":i["x-uid"],"x-decorator-props":x({},i["x-decorator-props"])}}),t.refresh(),u==="auto"?m.run():m.mutate(void 0)}})}const useSourceKey=e=>useCollectionManager().getSourceKeyByAssociation(e),KeepAliveContext=(0,import_react2.createContext)(!0),DesignableInterceptor=({children:e,active:t})=>{const o=(0,import_react2.useContext)(SchemaComponentContext),r=(0,import_react2.useContext)(import_react.SchemaOptionsContext),i=(0,import_react2.useContext)(import_react.SchemaComponentsContext),n=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),a=(0,import_react2.useContext)(ACLContext),l=(0,import_react2.useRef)(o),c=(0,import_react2.useRef)(r),u=(0,import_react2.useRef)(i),m=(0,import_react2.useRef)(n),d=(0,import_react2.useRef)(a);return t&&(l.current=o,c.current=r,u.current=i,m.current=n,d.current=a),(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:l.current,children:(0,import_jsx_runtime.jsx)(import_react.SchemaOptionsContext.Provider,{value:c.current,children:(0,import_jsx_runtime.jsx)(import_react.SchemaComponentsContext.Provider,{value:u.current,children:(0,import_jsx_runtime.jsx)(import_react.SchemaExpressionScopeContext.Provider,{value:m.current,children:(0,import_jsx_runtime.jsx)(ACLContext.Provider,{value:d.current,children:e})})})})})},KeepAliveProvider=({children:e,active:t})=>{const o=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_LocationContext),r=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_RouteContext),i=(0,import_react2.useRef)(o),n=(0,import_react2.useRef)(r);return t&&!import_lodash.default.isEqual(import_lodash.default.omit(i.current.location,"key"),import_lodash.default.omit(o.location,"key"))&&(i.current=o),t&&!import_lodash.default.isEqual(n.current,r)&&(n.current=r),(0,import_jsx_runtime.jsx)(KeepAliveContext.Provider,{value:t,children:(0,import_jsx_runtime.jsx)(DesignableInterceptor,{active:t,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_LocationContext.Provider,{value:i.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_RouteContext.Provider,{value:n.current,children:e})})})})},useKeepAlive=()=>({active:(0,import_react2.useContext)(KeepAliveContext)}),getMaxPageCount=()=>{let e=5;try{const t=navigator.deviceMemory;if(t)return Math.min(Math.max(5,t*3),20);const o=performance.memory;if(o!=null&&o.jsHeapSizeLimit){const n=o.jsHeapSizeLimit/1073741824;return Math.min(Math.max(5,Math.floor(n*3)),20)}const r=performance.now();for(let n=0;n<1e6;n++);const i=performance.now()-r;return i<3?e=20:i<5?e=10:i<10&&(e=5),e}catch{return 5}},MAX_RENDERED_PAGE_COUNT=getMaxPageCount(),KeepAlive=import_react2.default.memo(({children:e,uid:t})=>{const o=(0,import_react2.useRef)([]);return o.current.includes(t)||(o.current.push(t),o.current.length>MAX_RENDERED_PAGE_COUNT&&(o.current=o.current.slice(-MAX_RENDERED_PAGE_COUNT))),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o.current.map(r=>(0,import_jsx_runtime.jsx)(CurrentPageUidContext.Provider,{value:r,children:(0,import_jsx_runtime.jsx)(KeepAliveProvider,{active:r===t,children:e(r)})},r))})});KeepAlive.displayName="KeepAlive";const DEBOUNCE_WAIT=100,LOADING_DELAY=void 0,EMPTY_OBJECT=Object.freeze({});class CollectionRecord{constructor(t){A(this,"data"),A(this,"parentRecord"),A(this,"isNew");const{data:o,parentRecord:r,isNew:i}=t;this.isNew=i,this.data=o,this.parentRecord=r}setData(t){this.data=t}setParentRecord(t){this.parentRecord=t}}const CollectionRecordContext=(0,import_react2.createContext)(null);CollectionRecordContext.displayName="CollectionRecordContext";const CollectionRecordProvider=import_react2.default.memo(({isNew:e,record:t,parentRecord:o,children:r})=>{const i=(0,import_react2.useMemo)(()=>{if(o)return o instanceof CollectionRecord?o:new CollectionRecord({data:o});if(t instanceof CollectionRecord)return t.parentRecord},[o,t]),n=(0,import_react2.useMemo)(()=>{let a;return t?t instanceof CollectionRecord?(a=t,a.isNew=t.isNew||e):a=new CollectionRecord({data:t,isNew:e}):a=new CollectionRecord({isNew:e}),a.setParentRecord(i),a},[t,i,e]);return(0,import_jsx_runtime.jsx)(CollectionRecordContext.Provider,{value:n,children:r})});CollectionRecordProvider.displayName="CollectionRecordProvider";function useCollectionRecord(){return(0,import_react2.useContext)(CollectionRecordContext)}function useCollectionRecordData(){const e=useCollectionRecord();return e==null?void 0:e.data}function useCollectionParentRecord(){const e=useCollectionRecord();return e==null?void 0:e.parentRecord}function useCollectionParentRecordData(){var e;const t=useCollectionRecord();return(e=t==null?void 0:t.parentRecord)==null?void 0:e.data}const DataBlockResourceContext$1=(0,import_react2.createContext)(null);DataBlockResourceContext$1.displayName="DataBlockResourceContext";const DataBlockResourceProvider=({children:e})=>{const t=useDataBlockProps(),o=useCollectionManager(),{association:r,collection:i,dataSource:n,sourceId:a,parentRecord:l}=t,c=useAPIClient(),u=useDataSourceHeaders(n),m=(0,import_react2.useMemo)(()=>typeof i=="string"?i:i==null?void 0:i.name,[i]),d=(0,import_react2.useMemo)(()=>{if(a)return a;if(r&&l){const g=o.getSourceKeyByAssociation(r),h=l instanceof CollectionRecord?l.data:l;if((0,import_lodash.isArray)(g)){const f={};for(const _ of g)f[_]=h==null?void 0:h[_];return encodeURIComponent(JSON.stringify(f))}else return h[g]}},[r,a,l]),p=(0,import_react2.useMemo)(()=>r?c.resource(r,d,u,!d):c.resource(m,void 0,u),[c,r,i,d,u]);return(0,import_jsx_runtime.jsx)(DataBlockResourceContext$1.Provider,{value:p,children:e})};function useDataBlockResource(){const e=(0,import_react2.useContext)(DataBlockResourceContext$1);if(!e)throw new Error("useDataBlockResource() must be used within a DataBlockResourceProvider");return e}const DataBlockContext=(0,import_react2.createContext)({});DataBlockContext.displayName="DataBlockContext";const DataBlockResourceContext=(0,import_react2.createContext)(null),RerenderDataBlockProvider=({children:e})=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_react2.useMemo)(()=>({rerenderDataBlock:()=>{o(!0),setTimeout(()=>{o(!1)})}}),[]);return t?null:(0,import_jsx_runtime.jsx)(DataBlockResourceContext.Provider,{value:r,children:e})},AssociationOrCollectionProvider=e=>{const{collection:t,association:o,allowNull:r=!1}=e,i=(0,import_react2.useMemo)(()=>o?{Component:AssociationProvider,name:o}:{Component:SanitizedCollectionProvider,name:t},[t,o]);return(0,import_jsx_runtime.jsx)(i.Component,{name:i.name,allowNull:r,children:e.children})},DataBlockProvider=withDynamicSchemaProps(import_react2.default.memo(e=>{const t=e,{collection:o,association:r,dataSource:i,children:n,hidden:a}=t,l=K(t,["collection","association","dataSource","children","hidden"]),{dn:c}=useDesignable();return a?null:(0,import_jsx_runtime.jsx)(DataBlockContext.Provider,{value:{dn:c,props:P(x({},l),{collection:o,association:r,dataSource:i})},children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:i,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{collection:o,association:r,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockResourceProvider,{children:(0,import_jsx_runtime.jsx)(BlockRequestProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockCollector,{params:e.params,children:(0,import_jsx_runtime.jsx)(RerenderDataBlockProvider,{children:n})})})})})})})})}),{displayName:"DataBlockProvider"}),useDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockContext);if(!e)throw new Error("useDataBlock() must be used within a DataBlockProvider");return e},useDataBlockProps=()=>useDataBlock().props,useRerenderDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockResourceContext);if(!e)throw new Error("useRerenderDataBlock() must be used within a DataBlockProvider");return e},BlockRequestRefContext=(0,import_react2.createContext)(null);BlockRequestRefContext.displayName="BlockRequestRefContext";const BlockRequestLoadingContext=(0,import_react2.createContext)(!1);BlockRequestLoadingContext.displayName="BlockRequestLoadingContext";const BlockRequestDataContext=(0,import_react2.createContext)(null);BlockRequestDataContext.displayName="BlockRequestDataContext";function useRecordRequest(e){const t=useDataLoadingMode(),o=useDataBlockResource(),{action:r,params:i={},record:n,requestService:a,requestOptions:l,sourceId:c,association:u,parentRecord:m}=e,d=useAPIClient(),p=useDataBlockProps(),g=useDataSourceHeaders(p.dataSource),h=useSourceKey(u),[f,_]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),v=S=>{var C;if(n)return Promise.resolve({data:n});if(!r)throw new Error("[nocobase]: The 'action' parameter is missing in the 'DataBlockRequestProvider' component");if(r==="get"&&import_lodash.default.isNil(i.filterByTk))return console.warn('[nocobase]: The "filterByTk" parameter is missing in the "DataBlockRequestProvider" component');const b=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i;return(C=o[r])==null?void 0:C.call(o,x(x({},b),S)).then(y=>y.data)};return useRequest((...S)=>q(this,null,function*(){const[C,b]=yield Promise.all([(a||v)(...S),requestParentRecordData({sourceId:c,association:u,parentRecord:m,api:d,headers:g,sourceKey:h})]);return C&&(C.parentRecord=b==null?void 0:b.data),C}),P(x({},l),{manual:t==="manual",ready:!!r,refreshDeps:[r,f,_,o,u,m,c]}))}function requestParentRecordData(e){return q(this,arguments,function*({sourceId:t,association:o,parentRecord:r,api:i,headers:n,sourceKey:a}){if(r)return Promise.resolve({data:r});if(!o||!a||!t)return Promise.resolve({data:void 0});const l=`${o.split(".")[0]}:get?filter[${a}]=${t}`;return(yield i.request({url:l,headers:n})).data})}const BlockRequestContextProvider=e=>{var t,o,r,i,n,a;const l=(0,import_react2.useRef)(e.recordRequest),c=(0,import_react2.useRef)((t=e.recordRequest)==null?void 0:t.data),{active:u}=useKeepAlive(),m=(0,import_react2.useRef)(u),d=(0,import_react2.useDeferredValue)(u),p=useDataBlockProps();return d&&!m.current&&p.dataLoadingMode==="auto"&&((o=e.recordRequest)==null||o.refresh()),d&&m.current&&!((r=e.recordRequest)!=null&&r.loading)&&!import_lodash.default.isEqual(c.current,(i=e.recordRequest)==null?void 0:i.data)&&(c.current=(n=e.recordRequest)==null?void 0:n.data),d!==m.current&&(m.current=d),l.current=e.recordRequest,(0,import_jsx_runtime.jsx)(BlockRequestRefContext.Provider,{value:l,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:(a=e.recordRequest)==null?void 0:a.loading,children:(0,import_jsx_runtime.jsx)(BlockRequestDataContext.Provider,{value:c.current,children:e.children})})})},BlockRequestProvider=import_react2.default.memo(({children:e})=>{var t,o;const r=useDataBlockProps(),{action:i,filterByTk:n,sourceId:a,params:l=EMPTY_OBJECT,association:c,collection:u,record:m,parentRecord:d,requestOptions:p,requestService:g}=r,h=(0,import_react2.useMemo)(()=>P(x({},l),{filterByTk:n||l.filterByTk}),[n,l]),f=useRecordRequest({action:i,sourceId:a,record:m,association:c,collection:u,requestOptions:p,requestService:g,params:h,parentRecord:d}),_=(t=f.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>_&&new CollectionRecord({isNew:!1,data:_ instanceof CollectionRecord?_.data:_}),[_]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:f,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=f.data)==null?void 0:o.data)||m,parentRecord:v||d,children:e}):(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:!1,record:null,parentRecord:v||d,children:e})})});BlockRequestProvider.displayName="DataBlockRequestProvider";const useDataBlockRequest=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext),t=(0,import_react2.useContext)(BlockRequestLoadingContext),o=(0,import_react2.useContext)(BlockRequestDataContext);return(0,import_react2.useMemo)(()=>e?P(x({},e.current),{loading:t,data:o}):null,[e,o,t])},useDataBlockRequestGetter=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext);return(0,import_react2.useMemo)(()=>({getDataBlockRequest:()=>e?e.current:null}),[e])},useDataBlockRequestData=()=>(0,import_react2.useContext)(BlockRequestDataContext);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))},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(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(m=>m.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(m=>m.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,m="id",d="$eq")=>{i.forEach(p=>{var g,h,f;const _=o.find(b=>b.uid===p.uid);if(!_)return;import_lodash.default.isFunction(m)&&(m=m(_)),import_lodash.default.isFunction(d)&&(d=d(_));const v=((g=p.service.params)==null?void 0:g[0])||{},S=((f=(h=p.service.params)==null?void 0:h[1])==null?void 0:f.filters)||{};u!==void 0?S[r]={$and:[{[m]:{[d]:u}}]}:delete S[r];const C=mergeFilter([...Object.values(S).map(b=>removeNullCondition(b)),p.defaultFilter]);p.doFilter(P(x({},v),{page:1,filter:C}),{filters:S})})},[i,o,r]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1},FilterContext$2=(0,import_react2.createContext)(null);FilterContext$2.displayName="FilterContext";const FilterBlockProvider=import_react2.default.memo(({children:e})=>{const t=import_react2.default.useRef([]),o=(0,import_react2.useCallback)(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=(0,import_react2.useCallback)(()=>t.current,[]),i=(0,import_react2.useMemo)(()=>({getDataBlocks:r,setDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(FilterContext$2.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{var o;const r=useCollection(),{recordDataBlocks:i}=useFilterBlock(),{getDataBlockRequest:n}=useDataBlockRequestGetter(),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useAssociatedFields(),u=(0,import_react2.useRef)(null),m=useDataLoadingMode(),d=a&&a.decoratorType!=="FilterFormBlockProvider"&&a.decoratorType!=="FormBlockProvider"&&a.decoratorProps.blockType!=="filter",p=(0,import_react2.useCallback)(()=>{const g=n();i({uid:l["x-uid"],title:a.componentProps.title,doFilter:g.runAsync,collection:r,associatedFields:c,foreignKeyFields:r==null?void 0:r.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:g,dom:u.current,dataLoadingMode:m,clearFilter(h){var f,_,v;const S=((f=this.service.params)==null?void 0:f[0])||{},C=((v=(_=this.service.params)==null?void 0:_[1])==null?void 0:v.filters)||{};delete C[h];const b=mergeFilter([...Object.values(C).map(y=>removeNullCondition(y)),(t==null?void 0:t.filter)||{}]);this.service.run(P(x({},S),{page:1,filter:b}),{filters:C})},clearData(){this.service.mutate(void 0)}})},[c,r,m,(o=a==null?void 0:a.componentProps)==null?void 0:o.title,l,t==null?void 0:t.filter,i,n]);return(0,import_react2.useEffect)(()=>{d&&p()},[p,d]),(0,import_jsx_runtime.jsx)("div",{ref:u,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$2),t=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),o=(0,import_react2.useCallback)(i=>{const n=e==null?void 0:e.getDataBlocks().find(a=>a.uid===i.uid);if(n){Object.assign(n,i);return}e==null||e.setDataBlocks(a=>[...a,i])},[e]),r=(0,import_react2.useCallback)(i=>{e!=null&&e.getDataBlocks().every(n=>n.uid!==i)||e==null||e.setDataBlocks(n=>n.filter(a=>a.uid!==i))},[e]);return e?{recordDataBlocks:o,getDataBlocks:t,removeDataBlock:r,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:t,removeDataBlock:import_lodash.default.noop}},useLabelUiSchemaV2=()=>{const e=useCollectionManager();return(t,o)=>{if(!t)return;const r=e==null?void 0:e.getCollectionField(`${t}.${o}`);return r==null?void 0:r.uiSchema}},useLabelUiSchema$1=(e,t)=>{const o=useCollectionManager();if(!e)return;const r=o==null?void 0:o.getCollectionField(`${e}.${t}`);return r==null?void 0:r.uiSchema},getDatePickerLabels$1=e=>{const t=(0,import_client.getDefaultFormat)(e),o=(0,import_client.str2moment)(e.value,e),r=o&&o.isValid()?o.format(t):e.value;return(0,import_shared.isArr)(r)?r.join("~"):r},toArr$2=e=>e?Array.isArray(e)?e:[e]:[],getLabelFormatValue$1=(e,t,o=!1)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t){const i=toArr$2(t).map(n=>{const a=r.find(l=>l.value===n);return o?import_react2.default.createElement(import_antd.Tag,{color:a==null?void 0:a.color},a==null?void 0:a.label):a==null?void 0:a.label});return o?i:i.join(", ")}switch(e==null?void 0:e["x-component"]){case"DatePicker":return getDatePickerLabels$1(P(x({},e==null?void 0:e["x-component-props"]),{value:t}));default:return t}},getTabFormatValue=(e,t,o)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t)return toArr$2(t).map(i=>{const n=r.find(a=>a.value===i);return import_react2.default.createElement(import_antd.Tag,{color:o||(n==null?void 0:n.color)},n==null?void 0:n.label)});switch(e==null?void 0:e["x-component"]){case"DatePicker":return import_react2.default.createElement(import_antd.Tag,{color:o},getDatePickerLabels$1(P(x({},e==null?void 0:e["x-component-props"]),{value:t})));default:return import_react2.default.createElement(import_antd.Tag,{color:o},t)}};function flatData$2(e){const t=[];for(let o=0;o<e.length;o++){const r=e[o].children;Array.isArray(r)&&t.push(...flatData$2(r)),t.push(x({},e[o]))}return t}function isSubMode(e){var t,o;const r=((t=e["x-component-props"])==null?void 0:t.mode)||((o=e.componentProps)==null?void 0:o.mode);return["Nester","SubTable","PopoverNester"].includes(r)}const REGEX_OF_VARIABLE=/^\s*\{\{\s*([a-zA-Z0-9_$-.]+?)\s*\}\}\s*$/g,REGEX_OF_VARIABLE_IN_EXPRESSION=/\{\{\s*([a-zA-Z0-9_$-.]+?)\s*\}\}/g,isVariable=e=>!(typeof e!="string"||!e.match(REGEX_OF_VARIABLE)),getVariablesFromExpression=e=>e.match(REGEX_OF_VARIABLE_IN_EXPRESSION)||[],transformVariableValue=(e,t)=>{const{targetCollectionField:o}=t;return e==null||!o?e:o.interface==="chinaRegion"&&Array.isArray(e)?e.map(r=>(import_lodash.default.isObject(r),r=x({},r),Object.keys(r).forEach(i=>{import_lodash.default.isObjectLike(r[i])&&delete r[i]}),r)):["hasMany","belongsToMany"].includes(o.type)?Array.isArray(e)?e:[e]:(o.interface,e)},toStringByPicker=(e,t="date",o)=>{if(!import_dayjs.default.isDayjs(e))return e;if(o==="local"){const r=new Date().getTimezoneOffset();return(0,import_dayjs.default)(toStringByPicker(e,t,"gmt")).add(r,"minutes").toISOString()}return t==="year"?e.format("YYYY")+"-01-01T00:00:00.000Z":t==="month"?e.format("YYYY-MM")+"-01T00:00:00.000Z":t==="quarter"?e.startOf("quarter").format("YYYY-MM")+"-01T00:00:00.000Z":t==="week"?e.startOf("week").add(1,"day").format("YYYY-MM-DD")+"T00:00:00.000Z":e.format("YYYY-MM-DDTHH:mm:ss.SSS")+"Z"},toGmtByPicker=(e,t)=>!e||!import_dayjs.default.isDayjs(e)?e:toStringByPicker(e,t,"gmt"),toLocalByPicker=(e,t)=>!e||!import_dayjs.default.isDayjs(e)?e:toStringByPicker(e,t,"local"),moment2str=(e,t={})=>{const{showTime:o,gmt:r,picker:i="date",utc:n=!0}=t;if(!e)return e;if(!n){const a=o?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD";return e.format(a)}return o?r?(0,import_client.toGmt)(e):(0,import_client.toLocal)(e):typeof r=="boolean"&&r?toGmtByPicker(e,i):toLocalByPicker(e,i)},handleChangeOnFilter=(e,t,o)=>{const r=o?"YYYY-MM-DD HH:mm:ss":(0,import_client.getPickerFormat)(t);return e&&(0,import_dayjs.default)(e).format(r)},handleDateChangeOnForm=(e,t,o,r,i,n)=>{const a=i?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD";if(!e)return e;if(t)return(0,import_dayjs.default)(e).startOf(r).format("YYYY-MM-DD");if(o){if(n)return(0,import_client.toGmt)(e);if(r!=="date")return(0,import_dayjs.default)(e).startOf(r).toISOString();const l=(0,import_dayjs.default)(e).format(a);return(0,import_dayjs.default)(l).toISOString()}return i?(0,import_dayjs.default)(e).format(a):(0,import_dayjs.default)(e).startOf(r).format(a)},mapDatePicker=function(){const e=isMobile();return t=>{const{dateOnly:o,showTime:r,picker:i="date",utc:n,gmt:a,underFilter:l}=t,c=(0,import_client.getDefaultFormat)(t),u=t.onChange;return P(x({},t),{inputReadOnly:e,format:c,value:(0,import_client.str2moment)(t.value,t),onChange:(m,d)=>{u&&u(l?handleChangeOnFilter(m,i,r):handleDateChangeOnForm(m,o,n,i,r,a))}})}};function isMobile(){return window.matchMedia("(max-width: 768px)").matches}const mapRangePicker=function(){const e=isMobile();return t=>{const o=(0,import_client.getDefaultFormat)(t),r=t.onChange,{dateOnly:i,showTime:n,picker:a="date",utc:l,gmt:c,underFilter:u}=t;return P(x({},t),{format:o,value:(0,import_client.str2moment)(t.value,t),inputReadOnly:e,onChange:m=>{r&&r(u?m?[handleChangeOnFilter(m[0],a,n),handleChangeOnFilter(m[1],a,n)]:[]:m?[moment2str(getRangeStart(m[0],t),t),moment2str(getRangeEnd(m[1],t),t)]:[])}})}};function getRangeStart(e,t){const{showTime:o}=t;return o?e:e.startOf("day")}function getRangeEnd(e,t){const{showTime:o}=t;return o?e:e.endOf("day")}const getStart=(e,t)=>(0,import_dayjs.default)().add(e,t==="isoWeek"?"week":t).startOf(t),getEnd=(e,t)=>(0,import_dayjs.default)().add(e,t==="isoWeek"?"week":t).endOf(t),getDateRanges=e=>{if(e!=null&&e.shouldBeString){const t=o=>Array.isArray(o)?o.map(r=>moment2str(r,{utc:e==null?void 0:e.utc})):moment2str(o,{utc:e==null?void 0:e.utc});return{now:()=>t((0,import_dayjs.default)()),today:o=>withParams(t([getStart(0,"day"),getEnd(0,"day")]),o),yesterday:o=>withParams(t([getStart(-1,"day"),getEnd(-1,"day")]),o),tomorrow:o=>withParams(t([getStart(1,"day"),getEnd(1,"day")]),o),thisWeek:o=>withParams(t([getStart(0,"isoWeek"),getEnd(0,"isoWeek")]),o),lastWeek:o=>withParams(t([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")]),o),nextWeek:o=>withParams(t([getStart(1,"isoWeek"),getEnd(1,"isoWeek")]),o),thisIsoWeek:o=>withParams(t([getStart(0,"isoWeek"),getEnd(0,"isoWeek")]),o),lastIsoWeek:o=>withParams(t([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")]),o),nextIsoWeek:o=>withParams(t([getStart(1,"isoWeek"),getEnd(1,"isoWeek")]),o),thisMonth:o=>withParams(t([getStart(0,"month"),getEnd(0,"month")]),o),lastMonth:o=>withParams(t([getStart(-1,"month"),getEnd(-1,"month")]),o),nextMonth:o=>withParams(t([getStart(1,"month"),getEnd(1,"month")]),o),thisQuarter:o=>withParams(t([getStart(0,"quarter"),getEnd(0,"quarter")]),o),lastQuarter:o=>withParams(t([getStart(-1,"quarter"),getEnd(-1,"quarter")]),o),nextQuarter:o=>withParams(t([getStart(1,"quarter"),getEnd(1,"quarter")]),o),thisYear:o=>withParams(t([getStart(0,"year"),getEnd(0,"year")]),o),lastYear:o=>withParams(t([getStart(-1,"year"),getEnd(-1,"year")]),o),nextYear:o=>withParams(t([getStart(1,"year"),getEnd(1,"year")]),o),last7Days:o=>withParams(t([getStart(-6,"days"),getEnd(0,"days")]),o),next7Days:o=>withParams(t([getStart(1,"day"),getEnd(7,"days")]),o),last30Days:o=>withParams(t([getStart(-29,"days"),getEnd(0,"days")]),o),next30Days:o=>withParams(t([getStart(1,"day"),getEnd(30,"days")]),o),last90Days:o=>withParams(t([getStart(-89,"days"),getEnd(0,"days")]),o),next90Days:o=>withParams(t([getStart(1,"day"),getEnd(90,"days")]),o)}}return{now:()=>(0,import_dayjs.default)().toISOString(),today:t=>withParams([getStart(0,"day"),getEnd(0,"day")],t),yesterday:t=>withParams([getStart(-1,"day"),getEnd(-1,"day")],t),tomorrow:t=>withParams([getStart(1,"day"),getEnd(1,"day")],t),thisWeek:t=>withParams([getStart(0,"isoWeek"),getEnd(0,"isoWeek")],t),lastWeek:t=>withParams([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")],t),nextWeek:t=>withParams([getStart(1,"isoWeek"),getEnd(1,"isoWeek")],t),thisIsoWeek:t=>withParams([getStart(0,"isoWeek"),getEnd(0,"isoWeek")],t),lastIsoWeek:t=>withParams([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")],t),nextIsoWeek:t=>withParams([getStart(1,"isoWeek"),getEnd(1,"isoWeek")],t),thisMonth:t=>withParams([getStart(0,"month"),getEnd(0,"month")],t),lastMonth:t=>withParams([getStart(-1,"month"),getEnd(-1,"month")],t),nextMonth:t=>withParams([getStart(1,"month"),getEnd(1,"month")],t),thisQuarter:t=>withParams([getStart(0,"quarter"),getEnd(0,"quarter")],t),lastQuarter:t=>withParams([getStart(-1,"quarter"),getEnd(-1,"quarter")],t),nextQuarter:t=>withParams([getStart(1,"quarter"),getEnd(1,"quarter")],t),thisYear:t=>withParams([getStart(0,"year"),getEnd(0,"year")],t),lastYear:t=>withParams([getStart(-1,"year"),getEnd(-1,"year")],t),nextYear:t=>withParams([getStart(1,"year"),getEnd(1,"year")],t),last7Days:t=>withParams([getStart(-6,"days"),getEnd(0,"days")],t),next7Days:t=>withParams([getStart(1,"day"),getEnd(7,"days")],t),last30Days:t=>withParams([getStart(-29,"days"),getEnd(0,"days")],t),next30Days:t=>withParams([getStart(1,"day"),getEnd(30,"days")],t),last90Days:t=>withParams([getStart(-89,"days"),getEnd(0,"days")],t),next90Days:t=>withParams([getStart(1,"day"),getEnd(90,"days")],t)}};function withParams(e,t){return t!=null&&t.isParsingVariable&&t!=null&&t.fieldOperator&&t.fieldOperator!=="$dateBetween"?e[0]:e}function inferPickerType(e){return/^\d{4}$/.test(e)?"year":/^\d{4}-\d{2}$/.test(e)?"month":/^\d{4}Q[1-4]$/.test(e)?"quarter":"date"}function getJsonLogic(){Array.isArray||(Array.isArray=function(i){return Object.prototype.toString.call(i)==="[object Array]"});function e(i){for(var n=[],a=0,l=i.length;a<l;a++)n.indexOf(i[a])===-1&&n.push(i[a]);return n}function t(i,n){return JSON.stringify(i)===JSON.stringify(n)}var o={},r={$is:function(i,n){return i===n},$match:function(i,n){return Array.isArray(i)&&Array.isArray(n)&&i.some(a=>Array.isArray(a))?i.some(a=>(a==null?void 0:a.length)===n.length&&(a==null?void 0:a.every((l,c)=>l===n[c]))):JSON.stringify(i)===JSON.stringify(n)},$eq:function(i,n){return Array.isArray(i)&&Array.isArray(n)?t(i,n):Array.isArray(i)?i.includes(n):i==n},$ne:function(i,n){return i!=n},"!==":function(i,n){return i!==n},$gt:function(i,n){return Array.isArray(i)?i.some(a=>a>n):i>n},$gte:function(i,n){return i>=n},$lt:function(i,n,a){return Array.isArray(i)?i.some(l=>l<n):a===void 0?i<n:i<n&&n<a},$lte:function(i,n,a){return a===void 0?i<=n:i<=n&&n<=a},$exists:function(i){return o.truthy(i)},$notEmpty:function(i){return o.truthy(i)},$empty:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},$notExists:function(i){return!o.truthy(i)},"%":function(i,n){return i%n},log:function(i){return i},$in:function(i,n){return!n||typeof n.indexOf>"u"?!1:Array.isArray(i)&&Array.isArray(n)?n.some(a=>i.includes(a)):n.indexOf(i)!==-1},$notIn:function(i,n){return!n||typeof n.indexOf>"u"?!1:n.indexOf(i)===-1},$includes:function(i,n){return!i||typeof i.indexOf>"u"?!1:Array.isArray(i)?i.some(a=>a==null?void 0:a.includes(n)):i.indexOf(n)!==-1},$notIncludes:function(i,n){return Array.isArray(i)?!i.some(a=>(a||"").includes(n)):(i=i||"",!i.includes(n))},$anyOf:function(i,n){return i.length===0?!1:Array.isArray(i)&&Array.isArray(n)&&i.some(a=>Array.isArray(a))?i.some(a=>a.some(l=>n.includes(l))):i.some(a=>n.includes(a))},$noneOf:function(i,n){return!i||(i==null?void 0:i.length)===0?!0:Array.isArray(i)&&Array.isArray(n)&&i.some(a=>Array.isArray(a))?i.some(a=>a.every(l=>!n.some(c=>l.includes(c)))):n.some(a=>!i.includes(a))},$notMatch:function(i,n){if(i.length!==n.length)return!0;for(let a=0;a<i.length;a++)if(i[a]!==n[a])return!0;return!1},$dateOn:function(i,n){return!i||!n?!1:i===n},$dateBefore:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a<l},$dateNotBefore:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a>=l},$dateAfter:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);return a>l},$dateNotAfter:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a<=l},$dateBetween:function(i,n){if(!i||!n)return!1;const a=parseFullDate(i),l=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!a||!l||!c)throw new Error("Invalid date format");return a>=l&&a<=c},$dateNotOn:function(i,n){return!i||!n?!1:i!==n},$isTruly:function(i){return Array.isArray(i)?i.some(n=>n===!0||n===1):i===!0||i===1},$isFalsy:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(i,n,a){if(a<0){var l=String(i).substr(n);return l.substr(0,l.length+a)}return String(i).substr(n,a)},"+":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)+parseFloat(n,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)*parseFloat(n,10)})},"-":function(i,n){return n===void 0?-i:i-n},"/":function(i,n){return i/n},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(i,n){return i.concat(n)},[])},var:function(i,n){var a=n===void 0?null:n,l=this;if(typeof i>"u"||i===""||i===null)return l;for(var c=String(i).split("."),u=0;u<c.length;u++)if(l==null||(l=l[c[u]],l===void 0))return a;return l},missing:function(){for(var i=[],n=Array.isArray(arguments[0])?arguments[0]:arguments,a=0;a<n.length;a++){var l=n[a],c=o.apply({var:l},this);(c===null||c==="")&&i.push(l)}return i},missing_some:function(i,n){var a=o.apply({missing:n},this);return n.length-a.length>=i?[]:a}};return o.is_logic=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length===1},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.get_operator=function(i){return Object.keys(i)[0]},o.get_values=function(i){return i[o.get_operator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(f){return o.apply(f,n)});if(!o.is_logic(i))return i;var a=o.get_operator(i),l=i[a],c,u,m,d,p;if(Array.isArray(l)||(l=[l]),a==="if"||a=="?:"){for(c=0;c<l.length-1;c+=2)if(o.truthy(o.apply(l[c],n)))return o.apply(l[c+1],n);return l.length===c+1?o.apply(l[c],n):null}else if(a==="$and"){for(c=0;c<l.length;c+=1)if(u=o.apply(l[c],n),!o.truthy(u))return u;return u}else if(a==="or"){for(c=0;c<l.length;c+=1)if(u=o.apply(l[c],n),o.truthy(u))return u;return u}else{if(a==="filter")return d=o.apply(l[0],n),m=l[1],Array.isArray(d)?d.filter(function(f){return o.truthy(o.apply(m,f))}):[];if(a==="map")return d=o.apply(l[0],n),m=l[1],Array.isArray(d)?d.map(function(f){return o.apply(m,f)}):[];if(a==="reduce")return d=o.apply(l[0],n),m=l[1],p=typeof l[2]<"u"?l[2]:null,Array.isArray(d)?d.reduce(function(f,_){return o.apply(m,{current:_,accumulator:f})},p):p;if(a==="all"){if(d=o.apply(l[0],n),m=l[1],!Array.isArray(d)||!d.length)return!1;for(c=0;c<d.length;c+=1)if(!o.truthy(o.apply(m,d[c])))return!1;return!0}else if(a==="none"){if(d=o.apply(l[0],n),m=l[1],!Array.isArray(d)||!d.length)return!0;for(c=0;c<d.length;c+=1)if(o.truthy(o.apply(m,d[c])))return!1;return!0}else if(a==="some"){if(d=o.apply(l[0],n),m=l[1],!Array.isArray(d)||!d.length)return!1;for(c=0;c<d.length;c+=1)if(o.truthy(o.apply(m,d[c])))return!0;return!1}}if(l=l.map(function(f){return o.apply(f,n)}),r.hasOwnProperty(a)&&typeof r[a]=="function")return r[a].apply(n,l);if(a.indexOf(".")>0){var g=String(a).split("."),h=r;for(c=0;c<g.length;c++){if(!h.hasOwnProperty(g[c]))throw new Error("Unrecognized operation "+a+" (failed at "+g.slice(0,c+1).join(".")+")");h=h[g[c]]}return h.apply(n,l)}throw new Error("Unrecognized operation "+a)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var a=o.get_operator(i),l=i[a];Array.isArray(l)||(l=[l]),a==="var"?n.push(l[0]):l.forEach(function(c){n.push.apply(n,o.uses_data(c))})}return e(n)},o.add_operation=function(i,n){r[i]=n},o.rm_operation=function(i){delete r[i]},o.rule_like=function(i,n){if(n===i||n==="@")return!0;if(n==="number")return typeof i=="number";if(n==="string")return typeof i=="string";if(n==="array")return Array.isArray(i)&&!o.is_logic(i);if(o.is_logic(n)){if(o.is_logic(i)){var a=o.get_operator(n),l=o.get_operator(i);if(a==="@"||a===l)return o.rule_like(o.get_values(i,!1),o.get_values(n,!1))}return!1}if(Array.isArray(n))if(Array.isArray(i)){if(n.length!==i.length)return!1;for(var c=0;c<n.length;c+=1)if(!o.rule_like(i[c],n[c]))return!1;return!0}else return!1;return!1},o}function parseFullDate(e){return new Date(e)}function parseMonth(e){const[t,o]=e.split("-").map(Number);return new Date(t,o-1)}function parseQuarter(e){const t=parseInt(e.slice(0,4)),o=(parseInt(e.slice(5,6))-1)*3;return new Date(t,o)}function parseYear(e){const t=parseInt(e);return new Date(t,0)}function parseDate(e){let t=Array.isArray(e)?e[1]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/.test(t)?new Date(t):/^\d{4}-\d{2}-\d{2}$/.test(t)?parseFullDate(t):/^\d{4}-\d{2}$/.test(t)?parseMonth(t):/^\d{4}Q[1-4]$/.test(t)?parseQuarter(t):/^\d{4}$/.test(t)?parseYear(t):null}const parseVariables=(e,t)=>{var o;const r=/{{(.*?)}}/,i=(o=e==null?void 0:e.match)==null?void 0:o.call(e,r);if(i){const n=import_lodash.default.get(t,i[1]);return import_lodash.default.isFunction(n)?n():n}else return e};function getInnermostKeyAndValue(e){if(typeof e!="object"||e===null)return null;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return Object.prototype.toString.call(e[t])==="[object Object]"&&e[t]!==null?getInnermostKeyAndValue(e[t]):{key:t,value:e[t]};return null}const getTargetField$1=e=>{const t=getAllKeys(e),o=(0,import_lodash.findIndex)(t,(r,i,n)=>{if(r.includes("$")&&i>0)return!0});return t.slice(0,o)};function getAllKeys(e){const t=[];function o(r){Object.keys(r).sort().forEach(function(i){t.push(i),r[i]&&typeof r[i]=="object"&&o(r[i])})}return o(e),t}const conditionAnalyses=e=>q(void 0,[e],function*({ruleGroup:t,variables:o,localVariables:r,variableNameOfLeftCondition:i}){const n=Object.keys(t)[0]||"$and";let a=t[n].map(l=>q(void 0,null,function*(){if("$and"in l||"$or"in l)return yield conditionAnalyses({ruleGroup:l,variables:o,localVariables:r});const c=getInnermostKeyAndValue(l),u=c==null?void 0:c.key;if(!u)return!0;const m=targetFieldToVariableString(getTargetField$1(l),i),d=o.parseVariable(m,r,{doNotRequest:!0}).then(({value:g})=>g),p=isVariable(c==null?void 0:c.value)?[o.parseVariable(c==null?void 0:c.value,r).then(({value:g})=>g),d]:[c==null?void 0:c.value,d];try{const g=getJsonLogic(),[h,f]=yield Promise.all(p),_=yield o.getCollectionField(m,r);let v=transformVariableValue(f,{targetCollectionField:_});const S=transformVariableValue(h,{targetCollectionField:_});if(_!=null&&_.type&&["datetime","date","datetimeNoTz","dateOnly","unixTimestamp"].includes(_.type)&&v){const C=inferPickerType(S),b=(0,import_client.getPickerFormat)(C);v=(0,import_client.dayjs)(v).format(b)}return g.apply({[u]:[v,S]})}catch(g){throw g}}));return a=yield Promise.all(a),n==="$and"?(0,import_lodash.every)(a,l=>l):(0,import_lodash.some)(a,l=>l)});function targetFieldToVariableString(e,t="$nForm"){return`{{ ${t}.${e.join(".")} }}`}const getVariablesData=e=>{const t={};return e.map(o=>{t[o.name]=o.ctx}),t};function getRenderContent(e,t,o,r,i){return q(this,null,function*(){var n,a;if(t&&e==="handlebars")try{const l=import_client.Handlebars.compile(t),c=getVariablesData(r),{$nDate:u}=((n=o==null?void 0:o.ctxRef)==null?void 0:n.current)||{},m={};Object.keys(u||{}).map(p=>{m[p]=u[p]()});const d=l(P(x(x({},(a=o==null?void 0:o.ctxRef)==null?void 0:a.current),c),{$nDate:m}));return yield i(d)}catch(l){return console.log(l),t}else try{const l=yield replaceVariableValue(t,o,r);return yield i(l)}catch(l){return console.log(l),t}})}const getPath=e=>e&&e.match(REGEX_OF_VARIABLE)[0].replace(REGEX_OF_VARIABLE,"$1"),getVariableName=e=>import_lodash.default.isString(e)?getPath(e).split(".")[0]:e;var ActionType=(e=>(e.Visible="visible",e.Editable="editable",e.ReadOnly="disabled",e.ReadPretty="readPretty",e.None="none",e.Hidden="hidden",e.Required="required",e.InRequired="notRequired",e.Disabled="disabled",e.Value="value",e.Active="enabled",e.Color="color",e.BackgroundColor="backgroundColor",e.TextAlign="textAlign",e))(ActionType||{}),LinkageRuleCategory=(e=>(e.default="default",e.style="style",e))(LinkageRuleCategory||{});const LinkageRuleDataKeyMap={style:"x-linkage-style-rules",default:"x-linkage-rules"};function bindLinkageRulesToFiled({field:e,linkageRules:t,formValues:o,localVariables:r,action:i,rule:n,variables:a,variableNameOfLeftCondition:l}){var c,u,m,d;return e.initStateOfLinkageRules={display:((c=e.initStateOfLinkageRules)==null?void 0:c.display)||getTempFieldState(!0,e.display),required:((u=e.initStateOfLinkageRules)==null?void 0:u.required)||getTempFieldState(!0,e.required||!1),pattern:((m=e.initStateOfLinkageRules)==null?void 0:m.pattern)||getTempFieldState(!0,e.pattern),value:((d=e.initStateOfLinkageRules)==null?void 0:d.value)||getTempFieldState(!0,e.value||e.initialValue)},(0,import_reactive.reaction)(()=>{const p=getFieldValuesInCondition({linkageRules:t,formValues:o}),g=getVariableValuesInCondition({linkageRules:t,localVariables:r}),h=getVariableValuesInExpression({action:i,localVariables:r});return[p,g,h].map(f=>JSON.stringify(f)).join(",")},getSubscriber({action:i,field:e,rule:n,variables:a,localVariables:r,variableNameOfLeftCondition:l}),{fireImmediately:!0,equals:import_lodash.default.isEqual})}function getFieldValuesInCondition({linkageRules:e,formValues:t}){return e.map(o=>{const r=i=>{const n=Object.keys(i)[0]||"$and";return i[n].map(a=>{if("$and"in a||"$or"in a)return r(a);const l=getTargetField$1(a).join(".");return(0,import_client.getValuesByPath)(t,l)}).filter(Boolean)};return r(o.condition)})}function getVariableValuesInCondition({linkageRules:e,localVariables:t}){return e.map(o=>{const r=Object.keys(o.condition)[0]||"$and";return o.condition[r].map(i=>{const n=getInnermostKeyAndValue(i);return n?isVariable(n.value)?getVariableValue(n.value,t):n.value:null}).filter(Boolean)})}function getVariableValuesInExpression({action:e,localVariables:t}){var o;const r=e.value,i=r==null?void 0:r.mode,n=(r==null?void 0:r.value)||(r==null?void 0:r.result);if(i==="express"&&n!=null)return(o=getVariablesFromExpression(n))==null?void 0:o.map(a=>getVariableValue(a,t)).filter(Boolean)}function getVariableValue(e,t){var o;if(!isVariable(e))return;const r=getVariableName(e),i={[r]:(o=t.find(n=>n.name===r))==null?void 0:o.ctx};return(0,import_client.getValuesByPath)(i,getPath(e))}function getSubscriber({action:e,field:t,rule:o,variables:r,localVariables:i,variableNameOfLeftCondition:n}){return()=>{collectFieldStateOfLinkageRules({operator:e.operator,value:e.value,field:t,condition:o.condition,variables:r,localVariables:i,variableNameOfLeftCondition:n}),setTimeout(()=>q(this,null,function*(){var a;const l=getFieldNameByOperator(e.operator);if(!((a=t.stateOfLinkageRules)!=null&&a[l]))return;let c=t.stateOfLinkageRules[l];c=yield Promise.all(c),c=c.filter(m=>m.condition);const u=c[c.length-1];l==="value"?c.length>1&&(t.value=u.value):(t[l]=u==null?void 0:u.value,requestAnimationFrame(()=>{t.setState(m=>{m[l]=u==null?void 0:u.value})}),l==="display"&&(u==null?void 0:u.value)==="none"&&(t.value=null)),t.stateOfLinkageRules[l]=null}))}}function getFieldNameByOperator(e){switch(e){case ActionType.Required:case ActionType.InRequired:return"required";case ActionType.Visible:case ActionType.None:case ActionType.Hidden:return"display";case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:return"pattern";case ActionType.Value:return"value";default:return null}}const collectFieldStateOfLinkageRules=({operator:e,value:t,field:o,condition:r,variables:i,localVariables:n,variableNameOfLeftCondition:a})=>{var l,c,u,m,d,p,g,h;const f=((l=o==null?void 0:o.stateOfLinkageRules)==null?void 0:l.required)||[(c=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:c.required],_=((u=o==null?void 0:o.stateOfLinkageRules)==null?void 0:u.display)||[(m=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:m.display],v=((d=o==null?void 0:o.stateOfLinkageRules)==null?void 0:d.pattern)||[(p=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:p.pattern],S=((g=o==null?void 0:o.stateOfLinkageRules)==null?void 0:g.value)||[(h=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:h.value],{evaluate:C}=import_client2.evaluators.get("formula.js"),b={ruleGroup:r,variables:i,localVariables:n,variableNameOfLeftCondition:a};switch(e){case ActionType.Required:f.push(getTempFieldState(conditionAnalyses(b),!0)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:f});break;case ActionType.InRequired:f.push(getTempFieldState(conditionAnalyses(b),!1)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:f});break;case ActionType.Visible:case ActionType.None:case ActionType.Hidden:_.push(getTempFieldState(conditionAnalyses(b),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{display:_});break;case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:v.push(getTempFieldState(conditionAnalyses(b),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{pattern:v});break;case ActionType.Value:{const y=()=>q(void 0,null,function*(){var F;if((t==null?void 0:t.mode)==="express"){if((t.value||t.result)==null)return;const{exp:j,scope:k}=yield replaceVariables(t.value||t.result,{variables:i,localVariables:n});try{return C(j,x({now:()=>new Date().toString()},k))}catch(T){console.error(T)}}else return(t==null?void 0:t.mode)==="constant"?(F=t==null?void 0:t.value)!=null?F:t:null});isConditionEmpty(r)?S.push(getTempFieldState(!0,y())):S.push(getTempFieldState(conditionAnalyses(b),y())),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{value:S})}break;default:return null}};function getTempFieldState(e,t){return q(this,null,function*(){return[e,t]=yield Promise.all([e,t]),{condition:e,value:t}})}function isConditionEmpty(e){const t=Object.keys(e)[0]||"$and",o=e[t];return import_lodash.default.isEmpty(o)}function replaceVariables(e,t){return q(this,arguments,function*(o,{variables:r,localVariables:i}){var n;const a={},l={};if(o==null)return;const c=(n=o.match(REGEX_OF_VARIABLE_IN_EXPRESSION))==null?void 0:n.map(u=>q(this,null,function*(){const{value:m}=yield r.parseVariable(u,i),d=`_${(0,import_client.uid)()}`;return l[d]=m,a[u]=d,m}));return c&&(yield Promise.all(c)),{exp:o.replace(REGEX_OF_VARIABLE_IN_EXPRESSION,u=>`{{${a[u]||u}}}`),scope:l}})}const useCloseAction$3=()=>{const{setVisible:e}=useActionContext(),t=(0,import_react.useForm)();return{run(){return q(this,null,function*(){e(!1),t.submit(o=>{console.log(o)})})}}},useSaveCurrentUserValues$1=()=>{const e=(0,import_react_router_dom.useNavigate)(),{setVisible:t}=useActionContext(),o=(0,import_react.useForm)(),r=useAPIClient();return{run(){return q(this,null,function*(){yield o.submit(),yield r.resource("auth").changePassword({values:o.values}),yield o.reset(),t(!1),e("/signin")})}}},schema$4={type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-component":"Action.Drawer","x-component-props":{zIndex:1e4},type:"void",title:'{{t("Change password")}}',properties:{oldPassword:{type:"string",title:'{{t("Old password")}}',required:!0,"x-component":"Password","x-decorator":"FormItem"},newPassword:{type:"string",title:'{{t("New password")}}',required:!0,"x-component":"Password","x-decorator":"FormItem","x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".confirmPassword"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},confirmPassword:{type:"string",required:!0,title:'{{t("Confirm password")}}',"x-component":"Password","x-decorator":"FormItem","x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".newPassword"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},footer:{"x-component":"Action.Drawer.Footer",type:"void",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ useCloseAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useSaveCurrentUserValues }}"}}}}}}}},useChangePassword=()=>{const e=(0,import_react2.useContext)(DropdownVisibleContext),[t,o]=(0,import_react2.useState)(!1),{t:r}=(0,import_react_i18next.useTranslation)(),{data:i}=useSystemSettings()||{},{enableChangePassword:n}=(i==null?void 0:i.data)||{},a=(0,import_react2.useMemo)(()=>({key:"password",eventKey:"ChangePassword",onClick:()=>{o(!0),e==null||e.setVisible(!1)},label:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[r("Change password"),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{visible:t,setVisible:o},children:(0,import_jsx_runtime.jsx)("div",{onClick:l=>l.stopPropagation(),children:(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCloseAction:useCloseAction$3,useSaveCurrentUserValues:useSaveCurrentUserValues$1},schema:schema$4})})})]})}),[t]);return n===!1?null:a},CurrentUserSettingsMenuContext=(0,import_react2.createContext)(null);CurrentUserSettingsMenuContext.displayName="CurrentUserSettingsMenuContext";const useCurrentUserSettingsMenu=()=>{const{menuItems:e}=(0,import_react2.useContext)(CurrentUserSettingsMenuContext)||{},t=(0,import_react2.useCallback)(()=>e.current,[e]),o=(0,import_react2.useCallback)((r,i)=>{let n;if(i&&(r._options=i),(n=e.current.findIndex(l=>l.key===r.key))!==-1){e.current[n]=r,e.current=[...e.current];return}if(i){if(i.before){const l=e.current.findIndex(c=>c.key===i.before);e.current.splice(l,0,r);return}if(i.after){const l=e.current.findIndex(c=>c.key===i.after);e.current.splice(l+1,0,r);return}}const a=e.current;e.current=a.filter(l=>{var c,u;return r.key!==((c=l._options)==null?void 0:c.before)&&r.key!==((u=l._options)==null?void 0:u.after)}),e.current.push(...a.filter(l=>{var c;return((c=l._options)==null?void 0:c.before)===r.key})),e.current.push(r),e.current.push(...a.filter(l=>{var c;return((c=l._options)==null?void 0:c.after)===r.key}))},[e]);if(!e)throw(0,import_client.error)("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app."),new Error("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app.");return{getMenuItems:t,addMenuItem:o}},CurrentUserSettingsMenuProvider=({children:e})=>{const t=(0,import_react2.useRef)([]),o=(0,import_react2.useMemo)(()=>({menuItems:t}),[t]);return(0,import_jsx_runtime.jsx)(CurrentUserSettingsMenuContext.Provider,{value:o,children:e})},useCloseAction$2=()=>{const{setVisible:e}=useActionContext(),t=(0,import_react.useForm)();return{run(){return q(this,null,function*(){e(!1),t.submit(o=>{console.log(o)})})}}},useCurrentUserValues=e=>{const t=useCurrentUserContext();return useRequest(()=>Promise.resolve(t.data),e)},useSaveCurrentUserValues=()=>{const e=useCurrentUserContext(),{setVisible:t}=useActionContext(),o=(0,import_react.useForm)(),r=useAPIClient();return{run(){return q(this,null,function*(){var i;const n=yield o.submit();t(!1),yield r.resource("users").updateProfile({values:n}),e.mutate({data:x(x({},(i=e==null?void 0:e.data)==null?void 0:i.data),n)})})}}},schema$3={type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-decorator-props":{useValues:"{{ useCurrentUserValues }}"},"x-component":"Action.Drawer","x-component-props":{zIndex:1e4},type:"void",title:'{{t("Edit profile")}}',properties:{nickname:{type:"string",title:"{{t('Nickname')}}","x-decorator":"FormItem","x-component":"Input","x-disabled":"{{ enableEditProfile === false }}"},username:{type:"string",title:'{{t("Username")}}',"x-decorator":"FormItem","x-component":"Input","x-validator":{username:!0},required:!0,"x-disabled":"{{ enableEditProfile === false }}"},email:{type:"string",title:'{{t("Email")}}',"x-decorator":"FormItem","x-component":"Input","x-validator":"email","x-disabled":"{{ enableEditProfile === false }}"},phone:{type:"string",title:'{{t("Phone")}}',"x-decorator":"FormItem","x-component":"Input","x-disabled":"{{ enableEditProfile === false }}"},footer:{"x-component":"Action.Drawer.Footer",type:"void",properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCloseAction }}"}},submit:{title:"Submit","x-component":"Action","x-disabled":"{{ enableEditProfile === false }}","x-component-props":{type:"primary",useAction:"{{ useSaveCurrentUserValues }}"}}}}}}}},useEditProfile=()=>{const e=(0,import_react2.useContext)(DropdownVisibleContext),[t,o]=(0,import_react2.useState)(!1),{t:r}=(0,import_react_i18next.useTranslation)(),{data:i}=useSystemSettings()||{},{enableEditProfile:n}=(i==null?void 0:i.data)||{},a=(0,import_react2.useMemo)(()=>({key:"profile",eventKey:"EditProfile",onClick:()=>{o(!0),e==null||e.setVisible(!1)},label:(0,import_jsx_runtime.jsxs)("div",{children:[r("Edit profile"),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{visible:t,setVisible:o},children:(0,import_jsx_runtime.jsx)("div",{onClick:l=>l.stopPropagation(),children:(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCurrentUserValues,useCloseAction:useCloseAction$2,useSaveCurrentUserValues,enableEditProfile:n},schema:schema$3})})})]})}),[t]);return n===!1?null:a},dayjsLocale={"ar-EG":"ar","az-AZ":"az","bg-BG":"bg","bn-BD":"bn-bd","by-BY":"en","ca-ES":"ca","cs-CZ":"cs","da-DK":"da","de-DE":"de","el-GR":"el","en-GB":"en-gb","en-US":"en","es-ES":"es","et-EE":"et","fa-IR":"fa","fi-FI":"fi","fr-BE":"fr","fr-CA":"fr","fr-FR":"fr","ga-IE":"ga","gl-ES":"gl","he-IL":"he","hi-IN":"hi","hr-HR":"hr","hu-HU":"hu","hy-AM":"hy-am","id-ID":"id","is-IS":"is","it-IT":"it","ja-JP":"ja","ka-GE":"ka","kk-KZ":"kk","km-KH":"km","kn-IN":"kn","ko-KR":"ko","ku-IQ":"ku","lt-LT":"lt","lv-LV":"lv","mk-MK":"mk","ml-IN":"ml","mn-MN":"mn","ms-MY":"ms","nb-NO":"nb","ne-NP":"ne","nl-BE":"nl-be","nl-NL":"nl","pl-PL":"pl","pt-BR":"pt-br","pt-PT":"pt","ro-RO":"ro","ru-RU":"ru","si-LK":"si","sk-SK":"sk","sl-SI":"sl","sr-RS":"sr","sv-SE":"sv","ta-IN":"ta","th-TH":"th","tk-TK":"tk","tr-TR":"tr","uk-UA":"uk","ur-PK":"ur","vi-VN":"vi","zh-CN":"zh-cn","zh-HK":"zh-hk","zh-TW":"zh-tw"},languageCodes={"ar-EG":{label:"العربية"},"az-AZ":{label:"Azərbaycan dili"},"bg-BG":{label:"Български"},"bn-BD":{label:"Bengali"},"by-BY":{label:"Беларускі"},"ca-ES":{label:"Сatalà/Espanya"},"cs-CZ":{label:"Česky"},"da-DK":{label:"Dansk"},"de-DE":{label:"Deutsch"},"el-GR":{label:"Ελληνικά"},"en-GB":{label:"English(GB)"},"en-US":{label:"English"},"es-ES":{label:"Español"},"et-EE":{label:"Estonian (Eesti)"},"fa-IR":{label:"فارسی"},"fi-FI":{label:"Suomi"},"fr-BE":{label:"Français(BE)"},"fr-CA":{label:"Français(CA)"},"fr-FR":{label:"Français"},"ga-IE":{label:"Gaeilge"},"gl-ES":{label:"Galego"},"he-IL":{label:"עברית"},"hi-IN":{label:"हिन्दी"},"hr-HR":{label:"Hrvatski jezik"},"hu-HU":{label:"Magyar"},"hy-AM":{label:"Հայերեն"},"id-ID":{label:"Bahasa Indonesia"},"is-IS":{label:"Íslenska"},"it-IT":{label:"Italiano"},"ja-JP":{label:"日本語"},"ka-GE":{label:"ქართული"},"kk-KZ":{label:"Қазақ тілі"},"km-KH":{label:"ភាសាខ្មែរ"},"kn-IN":{label:"ಕನ್ನಡ"},"ko-KR":{label:"한국어"},"ku-IQ":{label:"کوردی"},"lt-LT":{label:"lietuvių"},"lv-LV":{label:"Latviešu valoda"},"mk-MK":{label:"македонски јазик"},"ml-IN":{label:"മലയാളം"},"mn-MN":{label:"Монгол хэл"},"ms-MY":{label:"بهاس ملايو"},"nb-NO":{label:"Norsk bokmål"},"ne-NP":{label:"नेपाली"},"nl-BE":{label:"Vlaams"},"nl-NL":{label:"Nederlands"},"pl-PL":{label:"Polski"},"pt-BR":{label:"Português brasileiro"},"pt-PT":{label:"Português"},"ro-RO":{label:"România"},"ru-RU":{label:"Русский"},"si-LK":{label:"සිංහල"},"sk-SK":{label:"Slovenčina"},"sl-SI":{label:"Slovenščina"},"sr-RS":{label:"српски језик"},"sv-SE":{label:"Svenska"},"ta-IN":{label:"Tamil"},"th-TH":{label:"ภาษาไทย"},"tk-TK":{label:"Turkmen"},"tr-TR":{label:"Türkçe"},"uk-UA":{label:"Українська"},"ur-PK":{label:"Oʻzbekcha"},"vi-VN":{label:"Tiếng Việt"},"zh-CN":{label:"简体中文"},"zh-HK":{label:"繁體中文(香港)"},"zh-TW":{label:"繁體中文(台湾)"}},useLanguageSettings=()=>{var e;const{t,i18n:o}=(0,import_react_i18next.useTranslation)(),r=useAPIClient(),{data:i}=useSystemSettings()||{},n=(0,import_react2.useMemo)(()=>{var l;return((l=i==null?void 0:i.data)==null?void 0:l.enabledLanguages)||[]},[(e=i==null?void 0:i.data)==null?void 0:e.enabledLanguages]),a=(0,import_react2.useMemo)(()=>({key:"language",eventKey:"LanguageSettings",label:(0,import_jsx_runtime.jsx)(SelectWithTitle,{title:t("Language"),options:Object.keys(languageCodes).filter(l=>n.includes(l)).map(l=>({label:languageCodes[l].label,value:l})),defaultValue:o.language,onChange:l=>q(void 0,null,function*(){yield r.resource("users").updateLang({values:{appLang:l}}),r.auth.setLocale(l),window.location.reload()})})}),[r,n,o,t]);return n.length<2?null:a};function SelectWithTitle({title:e,defaultValue:t,onChange:o,options:r,fieldNames:i}){const[n,a]=(0,import_react2.useState)(!1),l=(0,import_react2.useRef)(null);return(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},onClick:c=>{c.stopPropagation(),a(u=>!u)},onMouseLeave:()=>{l.current=setTimeout(()=>{a(!1)},200)},children:[e,(0,import_jsx_runtime.jsx)(import_antd.Select,{open:n,"data-testid":`select-${e}`,popupMatchSelectWidth:!1,bordered:!1,defaultValue:t,onChange:o,popupClassName:`select-popup-${e.replaceAll(" ","-")}`,fieldNames:i,options:r,style:{textAlign:"right",minWidth:100},onMouseEnter:()=>{clearTimeout(l.current)}})]})}class SchemaSettings{constructor(t){A(this,"options"),A(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=P(x({},o),{name:r[r.length-1]});if(r.length===1){const l=this.items.findIndex(c=>c.name===t);l===-1?this.items.push(i):this.items[l]=i;return}const n=r.slice(0,-1).join("."),a=this.get(n);if(a){a.children||(a.children=[]);const l=t.replace(`${a.name}.`,""),c=a.children.findIndex(u=>u.name===l);c===-1?a.children.push(i):a.children[c]=i}}get(t){if(!t)return;const o=t.split(".");let r=this.items;for(let i=0;i<o.length;i++){const n=o[i];if(r=r.find(a=>a.name===n),!r||i===o.length-1)return r;if(r.children)r=r.children;else return}}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)}}}class SchemaSettingsManager{constructor(t=[],o){A(this,"schemaSettings",{}),A(this,"actionList",{}),this._schemaSettings=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaSettings[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaSettings[t]}getAll(){return this.schemaSettings}has(t){return!!this.get(t)}remove(t){delete this.schemaSettings[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}const defaultTheme={name:"",token:{colorPrimaryHeader:"#001529",colorBgHeader:"#001529",colorBgHeaderMenuHover:"#ffffff1a",colorBgHeaderMenuActive:"#ffffff1a",colorTextHeaderMenu:"#ffffffa6",colorTextHeaderMenuHover:"#ffffff",colorTextHeaderMenuActive:"#ffffff",colorSettings:"#F18B62",colorBgSettingsHover:"rgba(241, 139, 98, 0.06)",colorBorderSettingsHover:"rgba(241, 139, 98, 0.3)",motionUnit:.03,motion:!0}};function compatOldTheme(e){var t;return(t=e.token)!=null&&t.colorSettings||(e.token=x(x({},e.token),defaultTheme.token)),e}const customAlgorithm=(e,t)=>{const o=t||import_antd.theme.defaultAlgorithm(e);return o.paddingPageHorizontal===void 0&&(o.paddingPageHorizontal=o.sizeLG),o.paddingPageVertical===void 0&&(o.paddingPageVertical=o.sizeLG),o.paddingPopupHorizontal===void 0&&(o.paddingPopupHorizontal=o.sizeLG),o.paddingPopupVertical===void 0&&(o.paddingPopupVertical=o.size),o.marginBlock===void 0&&(o.marginBlock=o.sizeLG),o.borderRadiusBlock===void 0&&(o.borderRadiusBlock=o.borderRadiusLG),o},addCustomAlgorithmToTheme=e=>(Array.isArray(e.algorithm)?e.algorithm.includes(customAlgorithm)||e.algorithm.push(customAlgorithm):e.algorithm=[e.algorithm,customAlgorithm].filter(Boolean),e.algorithm=e.algorithm.filter(Boolean),e),AppInner=(0,import_react2.memo)(({children:e})=>{const t=useApp(),{notification:o}=import_antd.App.useApp(),r=useAPIClient();return(0,import_react2.useEffect)(()=>{r.notification=o,t.notification=o},[o]),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e})});AppInner.displayName="AppInner";const AntdAppProvider=({children:e,className:t,style:o})=>(0,import_jsx_runtime.jsx)(import_antd.App,{className:t,style:x({height:"100%"},o),children:(0,import_jsx_runtime.jsx)(AppInner,{children:e})});AntdAppProvider.displayName="AntdAppProvider";const GlobalThemeContext=(0,import_react2.createContext)(null);GlobalThemeContext.displayName="GlobalThemeContext";const useGlobalTheme=()=>import_react2.default.useContext(GlobalThemeContext)||{theme:{},isDarkTheme:!1},GlobalThemeProvider=({children:e,theme:t})=>{const[o,r]=import_react2.default.useState(t||defaultTheme),i=(0,import_react2.useRef)(null),n=(0,import_react2.useRef)(null),a=(0,import_react2.useMemo)(()=>{const p=o==null?void 0:o.algorithm;return Array.isArray(p)?p.includes(import_antd.theme.darkAlgorithm):p===import_antd.theme.darkAlgorithm},[o==null?void 0:o.algorithm]),l=(0,import_react2.useCallback)(p=>{n.current=p&&import_lodash.default.cloneDeep(p)},[]),c=(0,import_react2.useCallback)(()=>n.current,[]),u=(0,import_react2.useCallback)(p=>{i.current=p&&import_lodash.default.cloneDeep(p)},[]),m=(0,import_react2.useCallback)(()=>i.current,[]),d=(0,import_react2.useMemo)(()=>({theme:addCustomAlgorithmToTheme(o),setTheme:r,setCurrentSettingTheme:u,getCurrentSettingTheme:m,setCurrentEditingTheme:l,getCurrentEditingTheme:c,isDarkTheme:a}),[c,m,a,l,u,o]);return(0,import_jsx_runtime.jsx)(GlobalThemeContext.Provider,{value:d,children:(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{theme:compatOldTheme(d.theme),children:e})})},useToken$1=()=>import_antd.theme.useToken(),CSSVariableProvider=({children:e})=>{const{token:t}=useToken$1(),o=t.colorFillTertiary,r=new import_tinycolor.TinyColor(t.colorFill).onBackground(t.colorFillSecondary).toHexShortString(),i=new import_tinycolor.TinyColor(t.colorFill).onBackground(t.colorFill).toHexShortString(),n=new import_tinycolor.TinyColor(t.colorFill).onBackground(t.colorFill).onBackground(t.colorFill).toHexShortString();return(0,import_react2.useEffect)(()=>{document.body.style.setProperty("--nb-spacing",`${t.marginLG}px`),document.body.style.setProperty("--nb-designer-offset",`${t.marginXS}px`),document.body.style.setProperty("--nb-header-height",`${t.sizeXXL-2}px`),document.body.style.setProperty("--nb-box-bg",t.colorBgLayout),document.body.style.setProperty("--nb-box-bg",t.colorBgLayout),document.body.style.setProperty("--controlHeightLG",`${t.controlHeightLG}px`),document.body.style.setProperty("--paddingContentVerticalSM",`${t.paddingContentVerticalSM}px`),document.body.style.setProperty("--marginSM",`${t.marginSM}px`),document.body.style.setProperty("--colorInfoBg",t.colorInfoBg),document.body.style.setProperty("--colorInfoBorder",t.colorInfoBorder),document.body.style.setProperty("--colorWarningBg",t.colorWarningBg),document.body.style.setProperty("--colorWarningBorder",t.colorWarningBorder),document.body.style.setProperty("--colorText",t.colorText),document.body.style.setProperty("--colorPrimaryText",t.colorPrimaryText),document.body.style.setProperty("--colorPrimaryTextActive",t.colorPrimaryTextActive),document.body.style.setProperty("--colorPrimaryTextHover",t.colorPrimaryTextHover),document.body.style.setProperty("--colorBgScrollTrack",o),document.body.style.setProperty("--colorBgScrollBar",r),document.body.style.setProperty("--colorBgScrollBarHover",i),document.body.style.setProperty("--colorBgScrollBarActive",n),document.body.style.setProperty("--colorSettings",t.colorSettings||defaultTheme.token.colorSettings),document.body.style.setProperty("--colorBgSettingsHover",t.colorBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",t.colorBorderSettingsHover),document.body.style.setProperty("background-color",t.colorBgContainer)},[r,n,i,o,t.colorBgContainer,t.colorBgLayout,t.colorBgSettingsHover,t.colorBorderSettingsHover,t.colorInfoBg,t.colorInfoBorder,t.colorPrimaryText,t.colorPrimaryTextActive,t.colorPrimaryTextHover,t.colorSettings,t.colorText,t.colorWarningBg,t.colorWarningBorder,t.controlHeightLG,t.marginLG,t.marginSM,t.marginXS,t.paddingContentVerticalSM,t.sizeXXL]),e};CSSVariableProvider.displayName="CSSVariableProvider";function tval(e,t){return t?`{{t(${JSON.stringify(e)}, ${JSON.stringify(t)})}}`:`{{t(${JSON.stringify(e)})}}`}const i18n=import_i18next.default.createInstance();Object.keys(languageCodes).forEach(e=>{languageCodes[e].resources});i18n.use(import_react_i18next.initReactI18next).init({lng:"en-US",defaultNS:"client",resources:{},keySeparator:!1,nsSeparator:!1});function defineDevPlugins(e){Object.entries(e).forEach(([t,o])=>{window.define(`${t}/client`,()=>o)})}function definePluginClient(e){window.define(`${e}/client`,["exports",e],function(t,o){Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(o).forEach(function(r){r!=="__esModule"&&(r in t&&t[r]===o[r]||Object.defineProperty(t,r,{enumerable:!0,get:function(){return o[r]}}))})})}function configRequirejs(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((o,r)=>(o[r.packageName]=r.url,o),{})})}function processRemotePlugins(e,t){return(...o)=>{const r=o.map((n,a)=>[e[a].name,(n==null?void 0:n.default)||n]).filter(n=>n[1]);t(r);const i=o.map((n,a)=>n?null:a).filter(n=>n!==null).map(n=>e[n].packageName);i.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",i.join(`, \r
|
|
16
|
+
}}}`,{dependencies:["uiSchema.x-component-props.picker"],when:'{{$deps[0]==="date"}}',fulfill:{state:{hidden:!1}},otherwise:{state:{hidden:!0,value:!1}}}]},"uiSchema.x-component-props.timeFormat":{type:"string",title:'{{t("Time format")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:"HH:mm:ss",enum:[{label:'{{t("12 hour")}}',value:"hh:mm:ss a"},{label:'{{t("24 hour")}}',value:"HH:mm:ss"}],"x-reactions":{dependencies:["uiSchema.x-component-props.showTime"],fulfill:{state:{hidden:"{{ !$deps[0] }}"}}}}},dataSource={type:"array",title:'{{t("Options")}}',"x-decorator":"FormItem","x-component":"ArrayTable","x-component-props":{pagination:{pageSize:1e3}},items:{type:"object",properties:{column1:{type:"void","x-component":"ArrayTable.Column","x-component-props":{width:50,title:"",align:"center"},properties:{sort:{type:"void","x-component":"ArrayTable.SortHandle"}}},column2:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Option value")}}'},properties:{value:{type:"string",required:!0,"x-decorator":"FormItem","x-component":"Input","x-reactions":e=>{!e.initialValue&&!e.initialized&&(e.initialValue=(0,import_shared.uid)(),e.setValue((0,import_shared.uid)()))}}}},column3:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Option label")}}'},properties:{label:{type:"string",required:!0,"x-decorator":"FormItem","x-component":"Input"}}},column4:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:'{{t("Color")}}'},properties:{color:{type:"string","x-decorator":"FormItem","x-component":"ColorSelect"}}},column5:{type:"void","x-component":"ArrayTable.Column","x-component-props":{title:"",dataIndex:"operations",fixed:"right"},properties:{item:{type:"void","x-component":"FormItem",properties:{remove:{type:"void","x-component":"ArrayTable.Remove"}}}}}}},properties:{add:{type:"void","x-component":"ArrayTable.Addition","x-component-props":{randomValue:!0},title:"{{t('Add option')}}"}}},defaultProps={"uiSchema.title":{type:"string",title:'{{t("Field display name")}}',required:!0,"x-decorator":"FormItem","x-component":"Input"},name:{type:"string",title:'{{t("Field name")}}',required:!0,"x-disabled":"{{ !createOnly }}","x-decorator":"FormItem","x-component":"Input","x-validator":"uid",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"}},recordPickerViewer={type:"void",title:'{{ t("View record") }}',"x-component":"RecordPicker.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:{}}}}}}}},collectionDataSource={type:"string",title:'{{t("Options")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},enum:"{{collections}}"},index=Object.freeze(Object.defineProperty({__proto__:null,autoFill,autoIncrement,collectionDataSource,constraintsProps,dataSource,dateTimeProps,defaultProps,operators,primaryKey,recordPickerViewer,relationshipType,reverseFieldProperties,type,unique},Symbol.toStringTag,{value:"Module"}));class CollectionFieldInterface{constructor(t){A(this,"name"),A(this,"group"),A(this,"title"),A(this,"description"),A(this,"order"),A(this,"default"),A(this,"sortable"),A(this,"availableTypes"),A(this,"supportDataSourceType"),A(this,"notSupportDataSourceType"),A(this,"hasDefaultValue"),A(this,"componentOptions"),A(this,"isAssociation"),A(this,"operators"),A(this,"properties"),A(this,"filterable"),A(this,"titleUsable"),A(this,"hidden"),this.collectionFieldInterfaceManager=t}addComponentOption(t){var o,r,i,n,a,l;if(!this.componentOptions){this.componentOptions=[];const c=(r=(o=this.default)==null?void 0:o.uiSchema)==null?void 0:r["x-component"],u=(n=(i=this.default)==null?void 0:i.uiSchema)==null?void 0:n["x-component-props"];if(c){const m=((l=(a=this.default)==null?void 0:a.uiSchema)==null?void 0:l.type)||"string",d=(0,import_client.tval)(c.startsWith("Input")?(0,import_lodash.capitalize)(m):c.split(".").pop());this.componentOptions=[{label:d,value:c,useProps(){return u||{}}}]}}this.componentOptions.push(t)}getConfigureFormProperties(){const t=this.hasDefaultValue?this.getDefaultValueProperty():{};return x(x({},(0,import_lodash.cloneDeep)(x(x({},defaultProps),this==null?void 0:this.properties))),t)}getDefaultValueProperty(){var t,o;return{defaultValue:P(x(x({},(0,import_lodash.cloneDeep)((t=this==null?void 0:this.default)==null?void 0:t.uiSchema)),(o=this==null?void 0:this.properties)==null?void 0:o.uiSchema),{required:!1,title:'{{ t("Default value") }}',"x-decorator":"FormItem","x-reactions":[{dependencies:["uiSchema.x-component-props.gmt","uiSchema.x-component-props.showTime","uiSchema.x-component-props.dateFormat","uiSchema.x-component-props.timeFormat","uiSchema.x-component-props.picker"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}",picker:"{{$deps[4]}}"}}}},{dependencies:["uiSchema.x-component-props.picker"],fulfill:{state:{value:null}}},{dependencies:["primaryKey","unique","autoIncrement","defaultToCurrentTime"],when:"{{$deps[0]||$deps[1]||$deps[2]||$deps[3]}}",fulfill:{state:{hidden:!0,value:null}},otherwise:{state:{hidden:!1}}},{dependencies:["uiSchema.enum"],fulfill:{state:{dataSource:"{{$deps[0]}}"}}}]})}}}class CollectionFieldInterfaceManager{constructor(t,o,r){A(this,"collectionFieldInterfaceInstances",{}),A(this,"collectionFieldGroups",{}),A(this,"actionList",{}),this.dataSourceManager=r,this.addFieldInterfaces(t),this.addFieldInterfaceGroups(o)}addFieldInterfaces(t=[]){const o=t.reduce((r,i)=>{const n=new i(this);return r[n.name]=n,Array.isArray(this.actionList[n.name])&&(this.actionList[n.name].forEach(a=>{n[a.type](a.data)}),this.actionList[n.name]=void 0),r},{});Object.assign(this.collectionFieldInterfaceInstances,o)}addFieldInterfaceComponentOption(t,o){const r=this.getFieldInterface(t);if(!r){this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"addComponentOption",data:o});return}r.addComponentOption(o)}getFieldInterface(t){return this.collectionFieldInterfaceInstances[t]}getFieldInterfaces(t){return Object.values(this.collectionFieldInterfaceInstances).filter(o=>{var r,i;if(!t||!o.supportDataSourceType&&!o.notSupportDataSourceType)return!0;if(o.supportDataSourceType)return(r=o.supportDataSourceType)==null?void 0:r.includes(t);if(o.notSupportDataSourceType)return!((i=o.notSupportDataSourceType)!=null&&i.includes(t))})}addFieldInterfaceGroups(t){Object.assign(this.collectionFieldGroups,t)}getFieldInterfaceGroups(){return this.collectionFieldGroups}getFieldInterfaceGroup(t){return this.collectionFieldGroups[t]}}const DEFAULT_DATA_SOURCE_KEY="main",DEFAULT_DATA_SOURCE_TITLE='{{t("Main")}}';class DataSourceManager{constructor(t={},o){A(this,"dataSourceInstancesMap",{}),A(this,"multiDataSources",[]),A(this,"collectionMixins",[]),A(this,"collectionTemplateManager"),A(this,"collectionFieldInterfaceManager"),this.options=t,this.app=o,this.collectionTemplateManager=new CollectionTemplateManager(t.collectionTemplates,this),this.collectionFieldInterfaceManager=new CollectionFieldInterfaceManager(t.fieldInterfaces,t.fieldInterfaceGroups,this),this.collectionMixins.push(...t.collectionMixins||[]),this.addDataSource(LocalDataSource,{key:DEFAULT_DATA_SOURCE_KEY,displayName:DEFAULT_DATA_SOURCE_TITLE,collections:t.collections||[]}),(t.dataSources||[]).forEach(r=>{this.addDataSource(LocalDataSource,r)})}addCollectionMixins(t=[]){const o=t.filter(r=>!this.collectionMixins.includes(r));o.length&&(this.collectionMixins.push(...o),this.getDataSources().forEach(r=>r.collectionManager.reAddCollections()))}getDataSources(t){const o=Object.values(this.dataSourceInstancesMap);return t?import_lodash.default.filter(o,t):o}getDataSource(t){return t?this.dataSourceInstancesMap[t]:this.dataSourceInstancesMap[DEFAULT_DATA_SOURCE_KEY]}removeDataSources(t){t.forEach(o=>{delete this.dataSourceInstancesMap[o]})}addDataSource(t,o){const r=new t(o,this);return this.dataSourceInstancesMap[r.key]=r,r}addDataSources(t,o){return q(this,null,function*(){this.multiDataSources.some(([r,i])=>r===t&&i===o)||this.multiDataSources.push([t,o])})}getAllCollections(t={}){const{filterCollection:o,filterDataSource:r}=t;return this.getDataSources(r).reduce((i,n)=>(i.push(P(x({},n.getOptions()),{collections:n.collectionManager.getCollections(o)})),i),[])}addFieldInterfaceGroups(t){this.collectionFieldInterfaceManager.addFieldInterfaceGroups(t)}addCollectionTemplates(t=[]){this.collectionTemplateManager.addCollectionTemplates(t)}addFieldInterfaces(t=[]){this.collectionFieldInterfaceManager.addFieldInterfaces(t)}reload(){return q(this,null,function*(){return yield Promise.all(this.multiDataSources.map(t=>q(this,[t],function*([o,r]){(yield o()).map(i=>this.addDataSource(r,i))}))),Promise.all(this.getDataSources().map(t=>t.reload()))})}}const HEADERS_DATA_SOURCE_KEY="x-data-source",isTitleField=(e,t)=>{var o;return(o=e.collectionFieldInterfaceManager.getFieldInterface(t.interface))==null?void 0:o.titleUsable},useDataSourceHeaders=e=>(0,import_react2.useMemo)(()=>{if(e&&e!==DEFAULT_DATA_SOURCE_KEY)return{[HEADERS_DATA_SOURCE_KEY]:e}},[e]),getDataSourceHeaders=e=>e&&e!==DEFAULT_DATA_SOURCE_KEY?{[HEADERS_DATA_SOURCE_KEY]:e}:{},TreeNode=e=>{const{tag:t,type:o,displayType:r=!0}=e,i={reference:"Reference",duplicate:"Duplicate",preloading:"Preloading"};return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Tag,{color:{reference:"blue",duplicate:"green",preloading:"cyan"}[o],children:[(0,import_jsx_runtime.jsx)("span",{children:t})," ",r?`(${i[o]})`:""]})})},systemKeys=["sort","createdById","createdBy","createdAt","updatedById","updatedBy","updatedAt","password","sequence"],useCollectionState=(e,t=!0,o)=>{const{getCollectionFields:r,getAllCollectionsInheritChain:i,getCollection:n,getInterface:a}=useCollectionManager_deprecated(),[l]=(0,import_react2.useState)(m),c=useCompile(),u=(0,import_react.useField)();function m(){return(i(e)||[]).map(v=>{var S;return{label:(S=n(v))==null?void 0:S.title,value:v}})}const d=(v,{exclude:S=[],depth:C=0,maxDepth:b,prefix:y=""})=>C>b?[]:r(v).map(F=>{var j;if(S.includes(F.name)||!F.interface||["sort","password","sequence"].includes(F.type)||o&&o(F))return;const k={type:"duplicate",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},T=P(x({},k),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},k),{displayType:t})),key:y?`${y}.${F.name}`:F.name,isLeaf:!0,field:F});return["belongsTo","belongsToMany"].includes(F.type)?(k.type="reference",T.type="reference",T.title=import_react2.default.createElement(TreeNode,P(x({},k),{type:"reference",displayType:t})),T.isLeaf=!1,T.children=p(F.target,{depth:C+1,maxDepth:b,prefix:T.key,exclude:systemKeys})):["hasOne","hasMany"].includes(F.type)&&(T.isLeaf=!1,T.children=d(F.target,{depth:C+1,maxDepth:b,prefix:T.key,exclude:["id",...systemKeys]})),T}).filter(Boolean),p=(v,{prefix:S,maxDepth:C,depth:b=0,exclude:y=[]})=>b>C?[]:r(v).map(F=>{var j;if(!F.target||!F.interface||y.includes(F.name))return;const k={type:"preloading",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},T=S?`${S}.${F.name}`:F.name;return{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},k),{displayType:t})),key:T,isLeaf:!1,field:F,children:p(F.target,{prefix:T,depth:b+1,maxDepth:C,exclude:y})}}).filter(Boolean),g=v=>v.map(S=>P(x({},S),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},S),{type:S.type,displayType:t})),children:S.children?g(S.children):null})),h=(0,import_react2.useCallback)((v,S,C)=>{var b,y;const F=S.index,j=(y=(b=u.initialValue)==null?void 0:b.items)==null?void 0:y[F];if(!v)return[];if(j!=null&&j.treeData||C)return g(C||j.treeData);try{return d(v,{exclude:["id",...systemKeys],maxDepth:1})}catch(k){return console.error(k),[]}},[]),f=(0,import_react2.useCallback)(v=>S=>new Promise(C=>{if(S.children.length)return S.children.forEach(b=>{loadChildren$1({node:b,traverseAssociations:p,traverseFields:d,systemKeys,fields:v})}),C(void 0);loadChildren$1({node:S,traverseAssociations:p,traverseFields:d,systemKeys,fields:v}),C(void 0)}),[]),_=(0,import_react2.useCallback)(v=>S=>{v.value=S},[]);return{collectionList:l,getEnableFieldTree:h,getOnLoadData:f,getOnCheck:_,getScopeDataSource:v=>{const S=r(v),C=(y,F)=>{var j,k;if(!y.interface)return;const T=a(y.interface);if(!(T!=null&&T.filterable))return;const{nested:O,children:N,operators:L}=T.filterable,D={name:y.name,title:((j=y==null?void 0:y.uiSchema)==null?void 0:j.title)||y.name,schema:y==null?void 0:y.uiSchema,operators:((k=L==null?void 0:L.filter)==null?void 0:k.call(L,R=>!(R!=null&&R.visible)||R.visible(y)))||[],interface:y.interface};if(!(y.target&&F>2)){if(F>2)return D;if(N!=null&&N.length&&(D.children=N),O){const R=r(y.target),$=b(R,F+1).filter(Boolean);D.children=D.children||[],D.children.push(...$)}return D}},b=(y,F)=>{const j=[];return y.forEach(k=>{const T=C(k,F);T&&j.push(T)}),j};return b(S,1)},useTitleFieldDataSource:v=>{const S=v.path.entire.replace("titleField","collection"),C=v.query(S).get("value"),b=r(C).filter(y=>{var F;return(F=a(y.interface))==null?void 0:F.titleUsable}).map(y=>{var F;return{value:y==null?void 0:y.name,label:c((F=y==null?void 0:y.uiSchema)==null?void 0:F.title)||(y==null?void 0:y.name)}});v.dataSource=b}}};function findNode(e,t){const o=[...e];for(;o.length;){const r=o.shift();if(r.key===t.key)return r;r.children&&o.push(...r.children)}}function loadChildren$1({node:e,traverseAssociations:t,traverseFields:o,systemKeys:r,fields:i}){const n=findNode(i.dataSource||i.componentProps.treeData,e);let a=[];return["belongsTo","belongsToMany"].includes(e.field.type)&&(e==null?void 0:e.type)==="reference"?a=t(e.field.target,{exclude:r,prefix:e.key,maxDepth:1}):(["hasOne","hasMany"].includes(e.field.type)||(e==null?void 0:e.type)==="duplicate")&&(a=o(e.field.target,{exclude:["id",...r],prefix:e.key,maxDepth:1})),a.length?n.children=a:n.isLeaf=!0,a}const NavigateNoUpdateContext=import_react2.default.createContext(null);NavigateNoUpdateContext.displayName="NavigateNoUpdateContext";const LocationNoUpdateContext=import_react2.default.createContext(null);LocationNoUpdateContext.displayName="LocationNoUpdateContext";const LocationSearchContext=import_react2.default.createContext("");LocationSearchContext.displayName="LocationSearchContext";const IsAdminPageContext=import_react2.default.createContext(!1);IsAdminPageContext.displayName="IsAdminPageContext";const CurrentPageUidContext=import_react2.default.createContext("");CurrentPageUidContext.displayName="CurrentPageUidContext";const MatchAdminContext=import_react2.default.createContext(!1);MatchAdminContext.displayName="MatchAdminContext";const MatchAdminNameContext=import_react2.default.createContext(!1);MatchAdminNameContext.displayName="MatchAdminNameContext";const IsInSettingsPageContext=import_react2.default.createContext(!1);IsInSettingsPageContext.displayName="IsInSettingsPageContext";const CurrentTabUidContext=import_react2.default.createContext("");CurrentTabUidContext.displayName="CurrentTabUidContext";const SearchParamsContext=import_react2.default.createContext(new URLSearchParams);SearchParamsContext.displayName="SearchParamsContext";const RouterBasenameContext=import_react2.default.createContext("");RouterBasenameContext.displayName="RouterBasenameContext";const IsSubPageClosedByPageMenuContext=import_react2.default.createContext({isSubPageClosedByPageMenu:!1,setFieldSchema:()=>{}});IsSubPageClosedByPageMenuContext.displayName="IsSubPageClosedByPageMenuContext";const IsSubPageClosedByPageMenuProvider=({children:e})=>{const t=(0,import_react_router_dom.useParams)(),o=(0,import_react2.useRef)({}),[r,i]=(0,import_react2.useState)(null),n=(0,import_react2.useMemo)(()=>{var l,c;const u=import_lodash.default.isEmpty(t["*"])&&((l=r==null?void 0:r["x-component-props"])==null?void 0:l.openMode)==="page"&&!!((c=o.current["*"])!=null&&c.includes(r["x-uid"]));return o.current=t,u},[r,t]),a=(0,import_react2.useMemo)(()=>({isSubPageClosedByPageMenu:n,setFieldSchema:i}),[n]);return(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuContext.Provider,{value:a,children:e})},RouterBasenameProvider=({children:e})=>{const t=(0,import_react_router_dom.useHref)("/");return(0,import_jsx_runtime.jsx)(RouterBasenameContext.Provider,{value:t,children:e})},SearchParamsProvider=({children:e})=>{const[t]=(0,import_react_router_dom.useSearchParams)();return(0,import_jsx_runtime.jsx)(SearchParamsContext.Provider,{value:t,children:e})},IsInSettingsPageProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)().pathname.includes("/settings");return(0,import_jsx_runtime.jsx)(IsInSettingsPageContext.Provider,{value:t,children:e})},MatchAdminProvider=({children:e})=>{const t=!!(0,import_react_router_dom.useMatch)("/admin");return(0,import_jsx_runtime.jsx)(MatchAdminContext.Provider,{value:t,children:e})},MatchAdminNameProvider=({children:e})=>{const t=!!(0,import_react_router_dom.useMatch)("/admin/:name");return(0,import_jsx_runtime.jsx)(MatchAdminNameContext.Provider,{value:t,children:e})},IsAdminPageProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)().pathname.startsWith("/admin");return(0,import_jsx_runtime.jsx)(IsAdminPageContext.Provider,{value:t,children:e})},CurrentPageUidProvider=({children:e})=>{const t=(0,import_react_router_dom.useParams)();return(0,import_jsx_runtime.jsx)(CurrentPageUidContext.Provider,{value:t.name,children:e})},CurrentTabUidProvider=({children:e})=>{const t=(0,import_react_router_dom.useParams)();return(0,import_jsx_runtime.jsx)(CurrentTabUidContext.Provider,{value:t.tabUid,children:e})},NavigateNoUpdateProvider=({children:e})=>{const t=(0,import_react_router_dom.useNavigate)(),o=import_react2.default.useRef(t);o.current=t;const r=import_react2.default.useCallback((i,n)=>{o.current(i,n)},[]);return(0,import_jsx_runtime.jsx)(NavigateNoUpdateContext.Provider,{value:r,children:e})},LocationNoUpdateProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)(),o=import_react2.default.useRef({});return(0,import_react2.useEffect)(()=>{Object.assign(o.current,t)},[t]),(0,import_jsx_runtime.jsx)(LocationNoUpdateContext.Provider,{value:o.current,children:e})},LocationSearchProvider=({children:e})=>{const t=(0,import_react_router_dom.useLocation)();return(0,import_jsx_runtime.jsx)(LocationSearchContext.Provider,{value:t.search,children:e})},useNavigateNoUpdate=()=>import_react2.default.useContext(NavigateNoUpdateContext),useLocationNoUpdate=()=>import_react2.default.useContext(LocationNoUpdateContext),useLocationSearch=()=>import_react2.default.useContext(LocationSearchContext),useIsAdminPage=()=>import_react2.default.useContext(IsAdminPageContext),useCurrentPageUid=()=>import_react2.default.useContext(CurrentPageUidContext),useMatchAdmin=()=>import_react2.default.useContext(MatchAdminContext),useMatchAdminName=()=>import_react2.default.useContext(MatchAdminNameContext),useIsInSettingsPage=()=>import_react2.default.useContext(IsInSettingsPageContext),useCurrentTabUid=()=>import_react2.default.useContext(CurrentTabUidContext),useCurrentSearchParams=()=>import_react2.default.useContext(SearchParamsContext),useRouterBasename=()=>import_react2.default.useContext(RouterBasenameContext),useIsSubPageClosedByPageMenu=e=>{const{isSubPageClosedByPageMenu:t,setFieldSchema:o}=import_react2.default.useContext(IsSubPageClosedByPageMenuContext);return(0,import_react2.useEffect)(()=>{o(e)},[e,o]),t},CustomRouterContextProvider=({children:e})=>(0,import_jsx_runtime.jsx)(NavigateNoUpdateProvider,{children:(0,import_jsx_runtime.jsx)(LocationNoUpdateProvider,{children:(0,import_jsx_runtime.jsx)(IsAdminPageProvider,{children:(0,import_jsx_runtime.jsx)(LocationSearchProvider,{children:(0,import_jsx_runtime.jsx)(MatchAdminProvider,{children:(0,import_jsx_runtime.jsx)(MatchAdminNameProvider,{children:(0,import_jsx_runtime.jsx)(SearchParamsProvider,{children:(0,import_jsx_runtime.jsx)(RouterBasenameProvider,{children:(0,import_jsx_runtime.jsx)(IsInSettingsPageProvider,{children:e})})})})})})})})}),useDefaultDynamicComponentProps=()=>{},getHook=(e,t,o)=>{let r;return import_lodash.default.isFunction(e)?r=e:(r=t[e],r||console.error(`${o} is not registered`)),r||useDefaultDynamicComponentProps},getUseDynamicProps=(e,t)=>{if(!e)return useDefaultDynamicComponentProps;if(import_lodash.default.isFunction(e))return e;const o=e.split(".");let r;for(const i of o)r=getHook(i,r||t,e);return r};function useDynamicComponentProps(e,t){const o=(0,import_react.useExpressionScope)();return getUseDynamicProps(e,o)(t)}function withDynamicSchemaProps(e,t={}){const o=t.displayName||e.displayName||e.name,r=i=>{const{dn:n,findComponent:a}=useDesignable(),l=(0,import_react2.useMemo)(()=>{const m=n.getSchemaAttribute("x-component"),d=n.getSchemaAttribute("x-decorator"),p=n.getSchemaAttribute("x-use-component-props"),g=n.getSchemaAttribute("x-use-decorator-props");if(m&&p&&a(m)===r)return p;if(d&&g&&a(d)===r)return g},[n]),c=useDynamicComponentProps(l,i),u=(0,import_react2.useMemo)(()=>x(x({},i),c),[c,i]);return(0,import_jsx_runtime.jsx)(import_react2.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(e,P(x({},u),{children:i.children}))})};return e.displayName=o,r.displayName=`withSchemaProps(${o})`,r}const TreeRecordContext=(0,import_react2.createContext)(null),TreeRecordProvider=({children:e,parent:t})=>(0,import_jsx_runtime.jsx)(TreeRecordContext.Provider,{value:{parent:t},children:e}),useTreeParentRecord=()=>{const e=import_react2.default.useContext(TreeRecordContext);return e==null?void 0:e.parent},TemplateBlockContext=(0,import_react2.createContext)({});TemplateBlockContext.displayName="TemplateBlockContext";const useTemplateBlockContext=()=>(0,import_react2.useContext)(TemplateBlockContext),TemplateBlockProvider=({onTemplateLoaded:e,children:t})=>{const[o,r]=(0,import_react2.useState)(!1),i=(0,import_react2.useCallback)(()=>{r(!0),setTimeout(()=>{e==null||e()})},[e]),n=(0,import_react2.useMemo)(()=>({templateFinished:o,onTemplateSuccess:i}),[i,o]);return(0,import_jsx_runtime.jsx)(TemplateBlockContext.Provider,{value:n,children:t})},FormActiveFieldsContext=(0,import_react2.createContext)(null),FormActiveFieldsProvider=({children:e,name:t,getActiveFieldsName:o,addActiveFieldName:r,removeActiveFieldName:i})=>{const n=(0,import_react2.useRef)(new Set),a=(0,import_react2.useContext)(FormActiveFieldsContext),l=(0,import_react2.useMemo)(()=>({getActiveFieldsName:o||(c=>!c||c===t?Array.from(n.current):a==null?void 0:a.getActiveFieldsName(c)),addActiveFieldName:r||(c=>{n.current.add(c)}),removeActiveFieldName:i||(c=>{n.current.delete(c)}),name:t,parent:a}),[r,o,t,i,a]);return(0,import_jsx_runtime.jsx)(FormActiveFieldsContext.Provider,{value:l,children:e})},useFormActiveFields=()=>(0,import_react2.useContext)(FormActiveFieldsContext),FormBlockContext$1=(0,import_react2.createContext)({});FormBlockContext$1.displayName="FormBlockContext";const InternalFormBlockProvider=e=>{var t;const o=useCollectionManager(),r=useFormBlockContext(),{action:i,readPretty:n,params:a,collection:l,association:c}=e,u=(0,import_react.useField)(),m=(0,import_react2.useMemo)(()=>(0,import_core2.createForm)({readPretty:n}),[n]),{resource:d,service:p,updateAssociationValues:g}=useBlockRequestContext(),h=(0,import_react2.useRef)(),f=useCollectionRecord(),_=(0,import_react2.useMemo)(()=>{var v;return P(x({},r),{params:a,action:i,form:m,type:i==="get"?"update":"create",field:u,service:p,resource:d,updateAssociationValues:g,formBlockRef:h,collectionName:l||((v=o.getCollectionField(c))==null?void 0:v.target),formRecord:f})},[i,c,o,l,r,u,m,a,f,d,p,g]);return(0,import_jsx_runtime.jsx)(FormBlockContext$1.Provider,{value:_,children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:f==null?void 0:f.isNew,parent:(t=f==null?void 0:f.parentRecord)==null?void 0:t.data,record:f==null?void 0:f.data,children:(0,import_jsx_runtime.jsx)("div",{ref:h,children:e.children})})})},useFormBlockType=()=>{const e=useFormBlockContext()||{};return(0,import_react2.useMemo)(()=>({type:e.type}),[e.type])},useIsDetailBlock=()=>{const e=useFormBlockContext(),{fieldSchema:t}=useActionContext();return e.type!=="create"&&(t==null?void 0:t["x-acl-action"])!=="create"&&(t==null?void 0:t["x-action"])!=="create"},FormBlockProvider=withDynamicSchemaProps(e=>{const t=useCollectionParentRecordData(),{parentRecord:o}=e,r=useCollectionRecordData(),{association:i}=e,n=useCollectionManager(),{__collection:a}=r||{},{designable:l}=useDesignable(),c=e.collection||n.getCollection(i).name,u=(0,import_ahooks.useUpdate)();return!l&&a&&a!==c?null:(0,import_jsx_runtime.jsx)(TemplateBlockProvider,{onTemplateLoaded:u,children:(0,import_jsx_runtime.jsx)(BlockProvider,P(x({name:e.name||"form"},e),{block:"form",parentRecord:o||t,children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"form",children:(0,import_jsx_runtime.jsx)(InternalFormBlockProvider,x({},e))})}))})}),useFormBlockContext=()=>(0,import_react2.useContext)(FormBlockContext$1),useFormBlockProps$1=()=>{var e,t,o;const r=useFormBlockContext(),i=useTreeParentRecord();return(0,import_react2.useEffect)(()=>{var n;i&&((n=r.form)==null||n.query("parent").take(a=>{a.disabled=!0,a.value=i}))}),(0,import_react2.useEffect)(()=>{var n,a,l;const c=r.form;!c||(n=r.service)!=null&&n.loading||c.setInitialValues((l=(a=r.service)==null?void 0:a.data)==null?void 0:l.data)},[r.form,(t=(e=r.service)==null?void 0:e.data)==null?void 0:t.data,(o=r.service)==null?void 0:o.loading]),{form:r.form}},findFormBlock=e=>{for(;e;){if(e["x-decorator"]==="FormBlockProvider")return e;if(e["x-component"]==="AssociationField.Selector")return null;e=e.parent}return null},setDataLoadingModeSettingsItem={name:"setDataLoadingMode",Component:SetDataLoadingMode};function useDataLoadingMode(){const{dataLoadingMode:e}=useDataBlockProps()||{};return e||"auto"}function SetDataLoadingMode(){var e;const{dn:t}=useDesignable(),{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),n=useCollection(),{getEnableFieldTree:a,getOnLoadData:l}=useCollectionState(n==null?void 0:n.name),{getDataBlockRequest:c}=useDataBlockRequestGetter();return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:o("Set data loading mode"),scope:{getEnableFieldTree:a,name:n==null?void 0:n.name,getOnLoadData:l},schema:{type:"object",title:o("Data loading mode"),properties:{dataLoadingMode:{"x-decorator":"FormItem","x-component":"Radio.Group",default:((e=i["x-decorator-props"])==null?void 0:e.dataLoadingMode)||"auto",enum:[{value:"auto",label:o("Load all data when filter is empty")},{value:"manual",label:o("Do not load data when filter is empty")}]}}},onSubmit:({dataLoadingMode:u})=>{const m=c();import_lodash.default.set(i,"x-decorator-props.dataLoadingMode",u),r.decoratorProps.dataLoadingMode=u,t.emit("patch",{schema:{"x-uid":i["x-uid"],"x-decorator-props":x({},i["x-decorator-props"])}}),t.refresh(),u==="auto"?m.run():m.mutate(void 0)}})}const useSourceKey=e=>useCollectionManager().getSourceKeyByAssociation(e),KeepAliveContext=(0,import_react2.createContext)(!0),DesignableInterceptor=({children:e,active:t})=>{const o=(0,import_react2.useContext)(SchemaComponentContext),r=(0,import_react2.useContext)(import_react.SchemaOptionsContext),i=(0,import_react2.useContext)(import_react.SchemaComponentsContext),n=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),a=(0,import_react2.useContext)(ACLContext),l=(0,import_react2.useRef)(o),c=(0,import_react2.useRef)(r),u=(0,import_react2.useRef)(i),m=(0,import_react2.useRef)(n),d=(0,import_react2.useRef)(a);return t&&(l.current=o,c.current=r,u.current=i,m.current=n,d.current=a),(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:l.current,children:(0,import_jsx_runtime.jsx)(import_react.SchemaOptionsContext.Provider,{value:c.current,children:(0,import_jsx_runtime.jsx)(import_react.SchemaComponentsContext.Provider,{value:u.current,children:(0,import_jsx_runtime.jsx)(import_react.SchemaExpressionScopeContext.Provider,{value:m.current,children:(0,import_jsx_runtime.jsx)(ACLContext.Provider,{value:d.current,children:e})})})})})},KeepAliveProvider=({children:e,active:t})=>{const o=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_LocationContext),r=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_RouteContext),i=(0,import_react2.useRef)(o),n=(0,import_react2.useRef)(r);return t&&!import_lodash.default.isEqual(import_lodash.default.omit(i.current.location,"key"),import_lodash.default.omit(o.location,"key"))&&(i.current=o),t&&!import_lodash.default.isEqual(n.current,r)&&(n.current=r),(0,import_jsx_runtime.jsx)(KeepAliveContext.Provider,{value:t,children:(0,import_jsx_runtime.jsx)(DesignableInterceptor,{active:t,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_LocationContext.Provider,{value:i.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_RouteContext.Provider,{value:n.current,children:e})})})})},useKeepAlive=()=>({active:(0,import_react2.useContext)(KeepAliveContext)}),getMaxPageCount=()=>{let e=5;try{const t=navigator.deviceMemory;if(t)return Math.min(Math.max(5,t*3),20);const o=performance.memory;if(o!=null&&o.jsHeapSizeLimit){const n=o.jsHeapSizeLimit/1073741824;return Math.min(Math.max(5,Math.floor(n*3)),20)}const r=performance.now();for(let n=0;n<1e6;n++);const i=performance.now()-r;return i<3?e=20:i<5?e=10:i<10&&(e=5),e}catch{return 5}},MAX_RENDERED_PAGE_COUNT=getMaxPageCount(),KeepAlive=import_react2.default.memo(({children:e,uid:t})=>{const o=(0,import_react2.useRef)([]);return o.current.includes(t)||(o.current.push(t),o.current.length>MAX_RENDERED_PAGE_COUNT&&(o.current=o.current.slice(-MAX_RENDERED_PAGE_COUNT))),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o.current.map(r=>(0,import_jsx_runtime.jsx)(CurrentPageUidContext.Provider,{value:r,children:(0,import_jsx_runtime.jsx)(KeepAliveProvider,{active:r===t,children:e(r)})},r))})});KeepAlive.displayName="KeepAlive";const DEBOUNCE_WAIT=100,LOADING_DELAY=void 0,EMPTY_OBJECT=Object.freeze({});class CollectionRecord{constructor(t){A(this,"data"),A(this,"parentRecord"),A(this,"isNew");const{data:o,parentRecord:r,isNew:i}=t;this.isNew=i,this.data=o,this.parentRecord=r}setData(t){this.data=t}setParentRecord(t){this.parentRecord=t}}const CollectionRecordContext=(0,import_react2.createContext)(null);CollectionRecordContext.displayName="CollectionRecordContext";const CollectionRecordProvider=import_react2.default.memo(({isNew:e,record:t,parentRecord:o,children:r})=>{const i=(0,import_react2.useMemo)(()=>{if(o)return o instanceof CollectionRecord?o:new CollectionRecord({data:o});if(t instanceof CollectionRecord)return t.parentRecord},[o,t]),n=(0,import_react2.useMemo)(()=>{let a;return t?t instanceof CollectionRecord?(a=t,a.isNew=t.isNew||e):a=new CollectionRecord({data:t,isNew:e}):a=new CollectionRecord({isNew:e}),a.setParentRecord(i),a},[t,i,e]);return(0,import_jsx_runtime.jsx)(CollectionRecordContext.Provider,{value:n,children:r})});CollectionRecordProvider.displayName="CollectionRecordProvider";function useCollectionRecord(){return(0,import_react2.useContext)(CollectionRecordContext)}function useCollectionRecordData(){const e=useCollectionRecord();return e==null?void 0:e.data}function useCollectionParentRecord(){const e=useCollectionRecord();return e==null?void 0:e.parentRecord}function useCollectionParentRecordData(){var e;const t=useCollectionRecord();return(e=t==null?void 0:t.parentRecord)==null?void 0:e.data}const DataBlockResourceContext$1=(0,import_react2.createContext)(null);DataBlockResourceContext$1.displayName="DataBlockResourceContext";const DataBlockResourceProvider=({children:e})=>{const t=useDataBlockProps(),o=useCollectionManager(),{association:r,collection:i,dataSource:n,sourceId:a,parentRecord:l}=t,c=useAPIClient(),u=useDataSourceHeaders(n),m=(0,import_react2.useMemo)(()=>typeof i=="string"?i:i==null?void 0:i.name,[i]),d=(0,import_react2.useMemo)(()=>{if(a)return a;if(r&&l){const g=o.getSourceKeyByAssociation(r),h=l instanceof CollectionRecord?l.data:l;if((0,import_lodash.isArray)(g)){const f={};for(const _ of g)f[_]=h==null?void 0:h[_];return encodeURIComponent(JSON.stringify(f))}else return h[g]}},[r,a,l]),p=(0,import_react2.useMemo)(()=>r?c.resource(r,d,u,!d):c.resource(m,void 0,u),[c,r,i,d,u]);return(0,import_jsx_runtime.jsx)(DataBlockResourceContext$1.Provider,{value:p,children:e})};function useDataBlockResource(){const e=(0,import_react2.useContext)(DataBlockResourceContext$1);if(!e)throw new Error("useDataBlockResource() must be used within a DataBlockResourceProvider");return e}const DataBlockContext=(0,import_react2.createContext)({});DataBlockContext.displayName="DataBlockContext";const DataBlockResourceContext=(0,import_react2.createContext)(null),RerenderDataBlockProvider=({children:e})=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_react2.useMemo)(()=>({rerenderDataBlock:()=>{o(!0),setTimeout(()=>{o(!1)})}}),[]);return t?null:(0,import_jsx_runtime.jsx)(DataBlockResourceContext.Provider,{value:r,children:e})},AssociationOrCollectionProvider=e=>{const{collection:t,association:o,allowNull:r=!1}=e,i=(0,import_react2.useMemo)(()=>o?{Component:AssociationProvider,name:o}:{Component:SanitizedCollectionProvider,name:t},[t,o]);return(0,import_jsx_runtime.jsx)(i.Component,{name:i.name,allowNull:r,children:e.children})},DataBlockProvider=withDynamicSchemaProps(import_react2.default.memo(e=>{const t=e,{collection:o,association:r,dataSource:i,children:n,hidden:a}=t,l=K(t,["collection","association","dataSource","children","hidden"]),{dn:c}=useDesignable();return a?null:(0,import_jsx_runtime.jsx)(DataBlockContext.Provider,{value:{dn:c,props:P(x({},l),{collection:o,association:r,dataSource:i})},children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{dataSource:i,children:(0,import_jsx_runtime.jsx)(AssociationOrCollectionProvider,{collection:o,association:r,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockResourceProvider,{children:(0,import_jsx_runtime.jsx)(BlockRequestProvider,{children:(0,import_jsx_runtime.jsx)(DataBlockCollector,{params:e.params,children:(0,import_jsx_runtime.jsx)(RerenderDataBlockProvider,{children:n})})})})})})})})}),{displayName:"DataBlockProvider"}),useDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockContext);if(!e)throw new Error("useDataBlock() must be used within a DataBlockProvider");return e},useDataBlockProps=()=>useDataBlock().props,useRerenderDataBlock=()=>{const e=(0,import_react2.useContext)(DataBlockResourceContext);if(!e)throw new Error("useRerenderDataBlock() must be used within a DataBlockProvider");return e},BlockRequestRefContext=(0,import_react2.createContext)(null);BlockRequestRefContext.displayName="BlockRequestRefContext";const BlockRequestLoadingContext=(0,import_react2.createContext)(!1);BlockRequestLoadingContext.displayName="BlockRequestLoadingContext";const BlockRequestDataContext=(0,import_react2.createContext)(null);BlockRequestDataContext.displayName="BlockRequestDataContext";function useRecordRequest(e){const t=useDataLoadingMode(),o=useDataBlockResource(),{action:r,params:i={},record:n,requestService:a,requestOptions:l,sourceId:c,association:u,parentRecord:m}=e,d=useAPIClient(),p=useDataBlockProps(),g=useDataSourceHeaders(p.dataSource),h=useSourceKey(u),[f,_]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),v=S=>{var C;if(n)return Promise.resolve({data:n});if(!r)throw new Error("[nocobase]: The 'action' parameter is missing in the 'DataBlockRequestProvider' component");if(r==="get"&&import_lodash.default.isNil(i.filterByTk))return console.warn('[nocobase]: The "filterByTk" parameter is missing in the "DataBlockRequestProvider" component');const b=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i;return(C=o[r])==null?void 0:C.call(o,x(x({},b),S)).then(y=>y.data)};return useRequest((...S)=>q(this,null,function*(){const[C,b]=yield Promise.all([(a||v)(...S),requestParentRecordData({sourceId:c,association:u,parentRecord:m,api:d,headers:g,sourceKey:h})]);return C&&(C.parentRecord=b==null?void 0:b.data),C}),P(x({},l),{manual:t==="manual",ready:!!r,refreshDeps:[r,f,_,o,u,m,c]}))}function requestParentRecordData(e){return q(this,arguments,function*({sourceId:t,association:o,parentRecord:r,api:i,headers:n,sourceKey:a}){if(r)return Promise.resolve({data:r});if(!o||!a||!t)return Promise.resolve({data:void 0});const l=`${o.split(".")[0]}:get?filter[${a}]=${t}`;return(yield i.request({url:l,headers:n})).data})}const BlockRequestContextProvider=e=>{var t,o,r,i,n,a;const l=(0,import_react2.useRef)(e.recordRequest),c=(0,import_react2.useRef)((t=e.recordRequest)==null?void 0:t.data),{active:u}=useKeepAlive(),m=(0,import_react2.useRef)(u),d=(0,import_react2.useDeferredValue)(u),p=useDataBlockProps();return d&&!m.current&&p.dataLoadingMode==="auto"&&((o=e.recordRequest)==null||o.refresh()),d&&m.current&&!((r=e.recordRequest)!=null&&r.loading)&&!import_lodash.default.isEqual(c.current,(i=e.recordRequest)==null?void 0:i.data)&&(c.current=(n=e.recordRequest)==null?void 0:n.data),d!==m.current&&(m.current=d),l.current=e.recordRequest,(0,import_jsx_runtime.jsx)(BlockRequestRefContext.Provider,{value:l,children:(0,import_jsx_runtime.jsx)(BlockRequestLoadingContext.Provider,{value:(a=e.recordRequest)==null?void 0:a.loading,children:(0,import_jsx_runtime.jsx)(BlockRequestDataContext.Provider,{value:c.current,children:e.children})})})},BlockRequestProvider=import_react2.default.memo(({children:e})=>{var t,o;const r=useDataBlockProps(),{action:i,filterByTk:n,sourceId:a,params:l=EMPTY_OBJECT,association:c,collection:u,record:m,parentRecord:d,requestOptions:p,requestService:g}=r,h=(0,import_react2.useMemo)(()=>P(x({},l),{filterByTk:n||l.filterByTk}),[n,l]),f=useRecordRequest({action:i,sourceId:a,record:m,association:c,collection:u,requestOptions:p,requestService:g,params:h,parentRecord:d}),_=(t=f.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>_&&new CollectionRecord({isNew:!1,data:_ instanceof CollectionRecord?_.data:_}),[_]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:f,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=f.data)==null?void 0:o.data)||m,parentRecord:v||d,children:e}):(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:!1,record:null,parentRecord:v||d,children:e})})});BlockRequestProvider.displayName="DataBlockRequestProvider";const useDataBlockRequest=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext),t=(0,import_react2.useContext)(BlockRequestLoadingContext),o=(0,import_react2.useContext)(BlockRequestDataContext);return(0,import_react2.useMemo)(()=>e?P(x({},e.current),{loading:t,data:o}):null,[e,o,t])},useDataBlockRequestGetter=()=>{const e=(0,import_react2.useContext)(BlockRequestRefContext);return(0,import_react2.useMemo)(()=>({getDataBlockRequest:()=>e?e.current:null}),[e])},useDataBlockRequestData=()=>(0,import_react2.useContext)(BlockRequestDataContext);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))},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(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(m=>m.uid===u.uid))),l=Object.keys(o||{});(0,import_react2.useEffect)(()=>{a(o&&o.some(u=>i.some(m=>m.uid===u.uid)))},[l.length,o,i]);const c=(0,import_react2.useCallback)((u,m="id",d="$eq")=>{i.forEach(p=>{var g,h,f;const _=o.find(b=>b.uid===p.uid);if(!_)return;import_lodash.default.isFunction(m)&&(m=m(_)),import_lodash.default.isFunction(d)&&(d=d(_));const v=((g=p.service.params)==null?void 0:g[0])||{},S=((f=(h=p.service.params)==null?void 0:h[1])==null?void 0:f.filters)||{};u!==void 0?S[r]={$and:[{[m]:{[d]:u}}]}:delete S[r];const C=mergeFilter([...Object.values(S).map(b=>removeNullCondition(b)),p.defaultFilter]);p.doFilter(P(x({},v),{page:1,filter:C}),{filters:S})})},[i,o,r]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1},FilterContext$2=(0,import_react2.createContext)(null);FilterContext$2.displayName="FilterContext";const FilterBlockProvider=import_react2.default.memo(({children:e})=>{const t=import_react2.default.useRef([]),o=(0,import_react2.useCallback)(n=>{typeof n=="function"?t.current=n(t.current):t.current=n},[]),r=(0,import_react2.useCallback)(()=>t.current,[]),i=(0,import_react2.useMemo)(()=>({getDataBlocks:r,setDataBlocks:o}),[r,o]);return(0,import_jsx_runtime.jsx)(FilterContext$2.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{var o;const r=useCollection(),{recordDataBlocks:i}=useFilterBlock(),{getDataBlockRequest:n}=useDataBlockRequestGetter(),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useAssociatedFields(),u=(0,import_react2.useRef)(null),m=useDataLoadingMode(),d=a&&a.decoratorType!=="FilterFormBlockProvider"&&a.decoratorType!=="FormBlockProvider"&&a.decoratorProps.blockType!=="filter",p=(0,import_react2.useCallback)(()=>{const g=n();i({uid:l["x-uid"],title:a.componentProps.title,doFilter:g.runAsync,collection:r,associatedFields:c,foreignKeyFields:r==null?void 0:r.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:g,dom:u.current,dataLoadingMode:m,clearFilter(h){var f,_,v;const S=((f=this.service.params)==null?void 0:f[0])||{},C=((v=(_=this.service.params)==null?void 0:_[1])==null?void 0:v.filters)||{};delete C[h];const b=mergeFilter([...Object.values(C).map(y=>removeNullCondition(y)),(t==null?void 0:t.filter)||{}]);this.service.run(P(x({},S),{page:1,filter:b}),{filters:C})},clearData(){this.service.mutate(void 0)}})},[c,r,m,(o=a==null?void 0:a.componentProps)==null?void 0:o.title,l,t==null?void 0:t.filter,i,n]);return(0,import_react2.useEffect)(()=>{d&&p()},[p,d]),(0,import_jsx_runtime.jsx)("div",{ref:u,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$2),t=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),o=(0,import_react2.useCallback)(i=>{const n=e==null?void 0:e.getDataBlocks().find(a=>a.uid===i.uid);if(n){Object.assign(n,i);return}e==null||e.setDataBlocks(a=>[...a,i])},[e]),r=(0,import_react2.useCallback)(i=>{e!=null&&e.getDataBlocks().every(n=>n.uid!==i)||e==null||e.setDataBlocks(n=>n.filter(a=>a.uid!==i))},[e]);return e?{recordDataBlocks:o,getDataBlocks:t,removeDataBlock:r,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:t,removeDataBlock:import_lodash.default.noop}},useLabelUiSchemaV2=()=>{const e=useCollectionManager();return(t,o)=>{if(!t)return;const r=e==null?void 0:e.getCollectionField(`${t}.${o}`);return r==null?void 0:r.uiSchema}},useLabelUiSchema$1=(e,t)=>{const o=useCollectionManager();if(!e)return;const r=o==null?void 0:o.getCollectionField(`${e}.${t}`);return r==null?void 0:r.uiSchema},getDatePickerLabels$1=e=>{const t=(0,import_client.getDefaultFormat)(e),o=(0,import_client.str2moment)(e.value,e),r=o&&o.isValid()?o.format(t):e.value;return(0,import_shared.isArr)(r)?r.join("~"):r},toArr$2=e=>e?Array.isArray(e)?e:[e]:[],getLabelFormatValue$1=(e,t,o=!1)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t){const i=toArr$2(t).map(n=>{const a=r.find(l=>l.value===n);return o?import_react2.default.createElement(import_antd.Tag,{color:a==null?void 0:a.color},a==null?void 0:a.label):a==null?void 0:a.label});return o?i:i.join(", ")}switch(e==null?void 0:e["x-component"]){case"DatePicker":return getDatePickerLabels$1(P(x({},e==null?void 0:e["x-component-props"]),{value:t}));default:return t}},getTabFormatValue=(e,t,o)=>{const r=e==null?void 0:e.enum;if(Array.isArray(r)&&t)return toArr$2(t).map(i=>{const n=r.find(a=>a.value===i);return import_react2.default.createElement(import_antd.Tag,{color:o||(n==null?void 0:n.color)},n==null?void 0:n.label)});switch(e==null?void 0:e["x-component"]){case"DatePicker":return import_react2.default.createElement(import_antd.Tag,{color:o},getDatePickerLabels$1(P(x({},e==null?void 0:e["x-component-props"]),{value:t})));default:return import_react2.default.createElement(import_antd.Tag,{color:o},t)}};function flatData$2(e){const t=[];for(let o=0;o<e.length;o++){const r=e[o].children;Array.isArray(r)&&t.push(...flatData$2(r)),t.push(x({},e[o]))}return t}function isSubMode(e){var t,o;const r=((t=e["x-component-props"])==null?void 0:t.mode)||((o=e.componentProps)==null?void 0:o.mode);return["Nester","SubTable","PopoverNester"].includes(r)}const REGEX_OF_VARIABLE=/^\s*\{\{\s*([a-zA-Z0-9_$-.]+?)\s*\}\}\s*$/g,REGEX_OF_VARIABLE_IN_EXPRESSION=/\{\{\s*([a-zA-Z0-9_$-.]+?)\s*\}\}/g,isVariable=e=>!(typeof e!="string"||!e.match(REGEX_OF_VARIABLE)),getVariablesFromExpression=e=>e.match(REGEX_OF_VARIABLE_IN_EXPRESSION)||[],transformVariableValue=(e,t)=>{const{targetCollectionField:o}=t;return e==null||!o?e:o.interface==="chinaRegion"&&Array.isArray(e)?e.map(r=>(import_lodash.default.isObject(r),r=x({},r),Object.keys(r).forEach(i=>{import_lodash.default.isObjectLike(r[i])&&delete r[i]}),r)):["hasMany","belongsToMany"].includes(o.type)?Array.isArray(e)?e:[e]:(o.interface,e)},toStringByPicker=(e,t="date",o)=>{if(!import_dayjs.default.isDayjs(e))return e;if(o==="local"){const r=new Date().getTimezoneOffset();return(0,import_dayjs.default)(toStringByPicker(e,t,"gmt")).add(r,"minutes").toISOString()}return t==="year"?e.format("YYYY")+"-01-01T00:00:00.000Z":t==="month"?e.format("YYYY-MM")+"-01T00:00:00.000Z":t==="quarter"?e.startOf("quarter").format("YYYY-MM")+"-01T00:00:00.000Z":t==="week"?e.startOf("week").add(1,"day").format("YYYY-MM-DD")+"T00:00:00.000Z":e.format("YYYY-MM-DDTHH:mm:ss.SSS")+"Z"},toGmtByPicker=(e,t)=>!e||!import_dayjs.default.isDayjs(e)?e:toStringByPicker(e,t,"gmt"),toLocalByPicker=(e,t)=>!e||!import_dayjs.default.isDayjs(e)?e:toStringByPicker(e,t,"local"),moment2str=(e,t={})=>{const{showTime:o,gmt:r,picker:i="date",utc:n=!0}=t;if(!e)return e;if(!n){const a=o?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD";return e.format(a)}return o?r?(0,import_client.toGmt)(e):(0,import_client.toLocal)(e):typeof r=="boolean"&&r?toGmtByPicker(e,i):toLocalByPicker(e,i)},handleChangeOnFilter=(e,t,o)=>{const r=o?"YYYY-MM-DD HH:mm:ss":(0,import_client.getPickerFormat)(t);return e&&(0,import_dayjs.default)(e).format(r)},handleDateChangeOnForm=(e,t,o,r,i,n)=>{const a=i?"YYYY-MM-DD HH:mm:ss":"YYYY-MM-DD";if(!e)return e;if(t)return(0,import_dayjs.default)(e).startOf(r).format("YYYY-MM-DD");if(o){if(n)return(0,import_client.toGmt)(e);if(r!=="date")return(0,import_dayjs.default)(e).startOf(r).toISOString();const l=(0,import_dayjs.default)(e).format(a);return(0,import_dayjs.default)(l).toISOString()}return i?(0,import_dayjs.default)(e).format(a):(0,import_dayjs.default)(e).startOf(r).format(a)},mapDatePicker=function(){const e=isMobile();return t=>{const{dateOnly:o,showTime:r,picker:i="date",utc:n,gmt:a,underFilter:l}=t,c=(0,import_client.getDefaultFormat)(t),u=t.onChange;return P(x({},t),{inputReadOnly:e,format:c,value:(0,import_client.str2moment)(t.value,t),onChange:(m,d)=>{u&&u(l?handleChangeOnFilter(m,i,r):handleDateChangeOnForm(m,o,n,i,r,a))}})}};function isMobile(){return window.matchMedia("(max-width: 768px)").matches}const mapRangePicker=function(){const e=isMobile();return t=>{const o=(0,import_client.getDefaultFormat)(t),r=t.onChange,{dateOnly:i,showTime:n,picker:a="date",utc:l,gmt:c,underFilter:u}=t;return P(x({},t),{format:o,value:(0,import_client.str2moment)(t.value,t),inputReadOnly:e,onChange:m=>{r&&r(u?m?[handleChangeOnFilter(m[0],a,n),handleChangeOnFilter(m[1],a,n)]:[]:m?[moment2str(getRangeStart(m[0],t),t),moment2str(getRangeEnd(m[1],t),t)]:[])}})}};function getRangeStart(e,t){const{showTime:o}=t;return o?e:e.startOf("day")}function getRangeEnd(e,t){const{showTime:o}=t;return o?e:e.endOf("day")}const getStart=(e,t)=>(0,import_dayjs.default)().add(e,t==="isoWeek"?"week":t).startOf(t),getEnd=(e,t)=>(0,import_dayjs.default)().add(e,t==="isoWeek"?"week":t).endOf(t),getDateRanges=e=>{if(e!=null&&e.shouldBeString){const t=o=>Array.isArray(o)?o.map(r=>moment2str(r,{utc:e==null?void 0:e.utc})):moment2str(o,{utc:e==null?void 0:e.utc});return{now:()=>t((0,import_dayjs.default)()),today:o=>withParams(t([getStart(0,"day"),getEnd(0,"day")]),o),yesterday:o=>withParams(t([getStart(-1,"day"),getEnd(-1,"day")]),o),tomorrow:o=>withParams(t([getStart(1,"day"),getEnd(1,"day")]),o),thisWeek:o=>withParams(t([getStart(0,"isoWeek"),getEnd(0,"isoWeek")]),o),lastWeek:o=>withParams(t([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")]),o),nextWeek:o=>withParams(t([getStart(1,"isoWeek"),getEnd(1,"isoWeek")]),o),thisIsoWeek:o=>withParams(t([getStart(0,"isoWeek"),getEnd(0,"isoWeek")]),o),lastIsoWeek:o=>withParams(t([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")]),o),nextIsoWeek:o=>withParams(t([getStart(1,"isoWeek"),getEnd(1,"isoWeek")]),o),thisMonth:o=>withParams(t([getStart(0,"month"),getEnd(0,"month")]),o),lastMonth:o=>withParams(t([getStart(-1,"month"),getEnd(-1,"month")]),o),nextMonth:o=>withParams(t([getStart(1,"month"),getEnd(1,"month")]),o),thisQuarter:o=>withParams(t([getStart(0,"quarter"),getEnd(0,"quarter")]),o),lastQuarter:o=>withParams(t([getStart(-1,"quarter"),getEnd(-1,"quarter")]),o),nextQuarter:o=>withParams(t([getStart(1,"quarter"),getEnd(1,"quarter")]),o),thisYear:o=>withParams(t([getStart(0,"year"),getEnd(0,"year")]),o),lastYear:o=>withParams(t([getStart(-1,"year"),getEnd(-1,"year")]),o),nextYear:o=>withParams(t([getStart(1,"year"),getEnd(1,"year")]),o),last7Days:o=>withParams(t([getStart(-6,"days"),getEnd(0,"days")]),o),next7Days:o=>withParams(t([getStart(1,"day"),getEnd(7,"days")]),o),last30Days:o=>withParams(t([getStart(-29,"days"),getEnd(0,"days")]),o),next30Days:o=>withParams(t([getStart(1,"day"),getEnd(30,"days")]),o),last90Days:o=>withParams(t([getStart(-89,"days"),getEnd(0,"days")]),o),next90Days:o=>withParams(t([getStart(1,"day"),getEnd(90,"days")]),o)}}return{now:()=>(0,import_dayjs.default)().toISOString(),today:t=>withParams([getStart(0,"day"),getEnd(0,"day")],t),yesterday:t=>withParams([getStart(-1,"day"),getEnd(-1,"day")],t),tomorrow:t=>withParams([getStart(1,"day"),getEnd(1,"day")],t),thisWeek:t=>withParams([getStart(0,"isoWeek"),getEnd(0,"isoWeek")],t),lastWeek:t=>withParams([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")],t),nextWeek:t=>withParams([getStart(1,"isoWeek"),getEnd(1,"isoWeek")],t),thisIsoWeek:t=>withParams([getStart(0,"isoWeek"),getEnd(0,"isoWeek")],t),lastIsoWeek:t=>withParams([getStart(-1,"isoWeek"),getEnd(-1,"isoWeek")],t),nextIsoWeek:t=>withParams([getStart(1,"isoWeek"),getEnd(1,"isoWeek")],t),thisMonth:t=>withParams([getStart(0,"month"),getEnd(0,"month")],t),lastMonth:t=>withParams([getStart(-1,"month"),getEnd(-1,"month")],t),nextMonth:t=>withParams([getStart(1,"month"),getEnd(1,"month")],t),thisQuarter:t=>withParams([getStart(0,"quarter"),getEnd(0,"quarter")],t),lastQuarter:t=>withParams([getStart(-1,"quarter"),getEnd(-1,"quarter")],t),nextQuarter:t=>withParams([getStart(1,"quarter"),getEnd(1,"quarter")],t),thisYear:t=>withParams([getStart(0,"year"),getEnd(0,"year")],t),lastYear:t=>withParams([getStart(-1,"year"),getEnd(-1,"year")],t),nextYear:t=>withParams([getStart(1,"year"),getEnd(1,"year")],t),last7Days:t=>withParams([getStart(-6,"days"),getEnd(0,"days")],t),next7Days:t=>withParams([getStart(1,"day"),getEnd(7,"days")],t),last30Days:t=>withParams([getStart(-29,"days"),getEnd(0,"days")],t),next30Days:t=>withParams([getStart(1,"day"),getEnd(30,"days")],t),last90Days:t=>withParams([getStart(-89,"days"),getEnd(0,"days")],t),next90Days:t=>withParams([getStart(1,"day"),getEnd(90,"days")],t)}};function withParams(e,t){return t!=null&&t.isParsingVariable&&t!=null&&t.fieldOperator&&t.fieldOperator!=="$dateBetween"?e[0]:e}function inferPickerType(e){return/^\d{4}$/.test(e)?"year":/^\d{4}-\d{2}$/.test(e)?"month":/^\d{4}Q[1-4]$/.test(e)?"quarter":"date"}function getJsonLogic(){Array.isArray||(Array.isArray=function(i){return Object.prototype.toString.call(i)==="[object Array]"});function e(i){for(var n=[],a=0,l=i.length;a<l;a++)n.indexOf(i[a])===-1&&n.push(i[a]);return n}function t(i,n){return JSON.stringify(i)===JSON.stringify(n)}var o={},r={$is:function(i,n){return i===n},$match:function(i,n){return Array.isArray(i)&&Array.isArray(n)&&i.some(a=>Array.isArray(a))?i.some(a=>(a==null?void 0:a.length)===n.length&&(a==null?void 0:a.every((l,c)=>l===n[c]))):JSON.stringify(i)===JSON.stringify(n)},$eq:function(i,n){return Array.isArray(i)&&Array.isArray(n)?t(i,n):Array.isArray(i)?i.includes(n):i==n},$ne:function(i,n){return i!=n},"!==":function(i,n){return i!==n},$gt:function(i,n){return Array.isArray(i)?i.some(a=>a>n):i>n},$gte:function(i,n){return i>=n},$lt:function(i,n,a){return Array.isArray(i)?i.some(l=>l<n):a===void 0?i<n:i<n&&n<a},$lte:function(i,n,a){return a===void 0?i<=n:i<=n&&n<=a},$exists:function(i){return o.truthy(i)},$notEmpty:function(i){return o.truthy(i)},$empty:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},$notExists:function(i){return!o.truthy(i)},"%":function(i,n){return i%n},log:function(i){return i},$in:function(i,n){return!n||typeof n.indexOf>"u"?!1:Array.isArray(i)&&Array.isArray(n)?n.some(a=>i.includes(a)):n.indexOf(i)!==-1},$notIn:function(i,n){return!n||typeof n.indexOf>"u"?!1:n.indexOf(i)===-1},$includes:function(i,n){return!i||typeof i.indexOf>"u"?!1:Array.isArray(i)?i.some(a=>a==null?void 0:a.includes(n)):i.indexOf(n)!==-1},$notIncludes:function(i,n){return Array.isArray(i)?!i.some(a=>(a||"").includes(n)):(i=i||"",!i.includes(n))},$anyOf:function(i,n){return i.length===0?!1:Array.isArray(i)&&Array.isArray(n)&&i.some(a=>Array.isArray(a))?i.some(a=>a.some(l=>n.includes(l))):i.some(a=>n.includes(a))},$noneOf:function(i,n){return!i||(i==null?void 0:i.length)===0?!0:Array.isArray(i)&&Array.isArray(n)&&i.some(a=>Array.isArray(a))?i.some(a=>a.every(l=>!n.some(c=>l.includes(c)))):n.some(a=>!i.includes(a))},$notMatch:function(i,n){if(i.length!==n.length)return!0;for(let a=0;a<i.length;a++)if(i[a]!==n[a])return!0;return!1},$dateOn:function(i,n){return!i||!n?!1:i===n},$dateBefore:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a<l},$dateNotBefore:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a>=l},$dateAfter:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);return a>l},$dateNotAfter:function(i,n){if(!i||!n)return!1;const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a<=l},$dateBetween:function(i,n){if(!i||!n)return!1;const a=parseFullDate(i),l=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!a||!l||!c)throw new Error("Invalid date format");return a>=l&&a<=c},$dateNotOn:function(i,n){return!i||!n?!1:i!==n},$isTruly:function(i){return Array.isArray(i)?i.some(n=>n===!0||n===1):i===!0||i===1},$isFalsy:function(i){return Array.isArray(i)?i.some(n=>!o.truthy(n)):!o.truthy(i)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(i,n,a){if(a<0){var l=String(i).substr(n);return l.substr(0,l.length+a)}return String(i).substr(n,a)},"+":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)+parseFloat(n,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(i,n){return parseFloat(i,10)*parseFloat(n,10)})},"-":function(i,n){return n===void 0?-i:i-n},"/":function(i,n){return i/n},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(i,n){return i.concat(n)},[])},var:function(i,n){var a=n===void 0?null:n,l=this;if(typeof i>"u"||i===""||i===null)return l;for(var c=String(i).split("."),u=0;u<c.length;u++)if(l==null||(l=l[c[u]],l===void 0))return a;return l},missing:function(){for(var i=[],n=Array.isArray(arguments[0])?arguments[0]:arguments,a=0;a<n.length;a++){var l=n[a],c=o.apply({var:l},this);(c===null||c==="")&&i.push(l)}return i},missing_some:function(i,n){var a=o.apply({missing:n},this);return n.length-a.length>=i?[]:a}};return o.is_logic=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)&&Object.keys(i).length===1},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.get_operator=function(i){return Object.keys(i)[0]},o.get_values=function(i){return i[o.get_operator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(f){return o.apply(f,n)});if(!o.is_logic(i))return i;var a=o.get_operator(i),l=i[a],c,u,m,d,p;if(Array.isArray(l)||(l=[l]),a==="if"||a=="?:"){for(c=0;c<l.length-1;c+=2)if(o.truthy(o.apply(l[c],n)))return o.apply(l[c+1],n);return l.length===c+1?o.apply(l[c],n):null}else if(a==="$and"){for(c=0;c<l.length;c+=1)if(u=o.apply(l[c],n),!o.truthy(u))return u;return u}else if(a==="or"){for(c=0;c<l.length;c+=1)if(u=o.apply(l[c],n),o.truthy(u))return u;return u}else{if(a==="filter")return d=o.apply(l[0],n),m=l[1],Array.isArray(d)?d.filter(function(f){return o.truthy(o.apply(m,f))}):[];if(a==="map")return d=o.apply(l[0],n),m=l[1],Array.isArray(d)?d.map(function(f){return o.apply(m,f)}):[];if(a==="reduce")return d=o.apply(l[0],n),m=l[1],p=typeof l[2]<"u"?l[2]:null,Array.isArray(d)?d.reduce(function(f,_){return o.apply(m,{current:_,accumulator:f})},p):p;if(a==="all"){if(d=o.apply(l[0],n),m=l[1],!Array.isArray(d)||!d.length)return!1;for(c=0;c<d.length;c+=1)if(!o.truthy(o.apply(m,d[c])))return!1;return!0}else if(a==="none"){if(d=o.apply(l[0],n),m=l[1],!Array.isArray(d)||!d.length)return!0;for(c=0;c<d.length;c+=1)if(o.truthy(o.apply(m,d[c])))return!1;return!0}else if(a==="some"){if(d=o.apply(l[0],n),m=l[1],!Array.isArray(d)||!d.length)return!1;for(c=0;c<d.length;c+=1)if(o.truthy(o.apply(m,d[c])))return!0;return!1}}if(l=l.map(function(f){return o.apply(f,n)}),r.hasOwnProperty(a)&&typeof r[a]=="function")return r[a].apply(n,l);if(a.indexOf(".")>0){var g=String(a).split("."),h=r;for(c=0;c<g.length;c++){if(!h.hasOwnProperty(g[c]))throw new Error("Unrecognized operation "+a+" (failed at "+g.slice(0,c+1).join(".")+")");h=h[g[c]]}return h.apply(n,l)}throw new Error("Unrecognized operation "+a)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var a=o.get_operator(i),l=i[a];Array.isArray(l)||(l=[l]),a==="var"?n.push(l[0]):l.forEach(function(c){n.push.apply(n,o.uses_data(c))})}return e(n)},o.add_operation=function(i,n){r[i]=n},o.rm_operation=function(i){delete r[i]},o.rule_like=function(i,n){if(n===i||n==="@")return!0;if(n==="number")return typeof i=="number";if(n==="string")return typeof i=="string";if(n==="array")return Array.isArray(i)&&!o.is_logic(i);if(o.is_logic(n)){if(o.is_logic(i)){var a=o.get_operator(n),l=o.get_operator(i);if(a==="@"||a===l)return o.rule_like(o.get_values(i,!1),o.get_values(n,!1))}return!1}if(Array.isArray(n))if(Array.isArray(i)){if(n.length!==i.length)return!1;for(var c=0;c<n.length;c+=1)if(!o.rule_like(i[c],n[c]))return!1;return!0}else return!1;return!1},o}function parseFullDate(e){return new Date(e)}function parseMonth(e){const[t,o]=e.split("-").map(Number);return new Date(t,o-1)}function parseQuarter(e){const t=parseInt(e.slice(0,4)),o=(parseInt(e.slice(5,6))-1)*3;return new Date(t,o)}function parseYear(e){const t=parseInt(e);return new Date(t,0)}function parseDate(e){let t=Array.isArray(e)?e[1]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/.test(t)?new Date(t):/^\d{4}-\d{2}-\d{2}$/.test(t)?parseFullDate(t):/^\d{4}-\d{2}$/.test(t)?parseMonth(t):/^\d{4}Q[1-4]$/.test(t)?parseQuarter(t):/^\d{4}$/.test(t)?parseYear(t):null}const parseVariables=(e,t)=>{var o;const r=/{{(.*?)}}/,i=(o=e==null?void 0:e.match)==null?void 0:o.call(e,r);if(i){const n=import_lodash.default.get(t,i[1]);return import_lodash.default.isFunction(n)?n():n}else return e};function getInnermostKeyAndValue(e){if(typeof e!="object"||e===null)return null;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return Object.prototype.toString.call(e[t])==="[object Object]"&&e[t]!==null?getInnermostKeyAndValue(e[t]):{key:t,value:e[t]};return null}const getTargetField$1=e=>{const t=getAllKeys(e),o=(0,import_lodash.findIndex)(t,(r,i,n)=>{if(r.includes("$")&&i>0)return!0});return t.slice(0,o)};function getAllKeys(e){const t=[];function o(r){Object.keys(r).sort().forEach(function(i){t.push(i),r[i]&&typeof r[i]=="object"&&o(r[i])})}return o(e),t}const conditionAnalyses=e=>q(void 0,[e],function*({ruleGroup:t,variables:o,localVariables:r,variableNameOfLeftCondition:i}){const n=Object.keys(t)[0]||"$and";let a=t[n].map(l=>q(void 0,null,function*(){if("$and"in l||"$or"in l)return yield conditionAnalyses({ruleGroup:l,variables:o,localVariables:r});const c=getInnermostKeyAndValue(l),u=c==null?void 0:c.key;if(!u)return!0;const m=targetFieldToVariableString(getTargetField$1(l),i),d=o.parseVariable(m,r,{doNotRequest:!0}).then(({value:g})=>g),p=isVariable(c==null?void 0:c.value)?[o.parseVariable(c==null?void 0:c.value,r).then(({value:g})=>g),d]:[c==null?void 0:c.value,d];try{const g=getJsonLogic(),[h,f]=yield Promise.all(p),_=yield o.getCollectionField(m,r);let v=transformVariableValue(f,{targetCollectionField:_});const S=transformVariableValue(h,{targetCollectionField:_});if(_!=null&&_.type&&["datetime","date","datetimeNoTz","dateOnly","unixTimestamp"].includes(_.type)&&v){const C=inferPickerType(S),b=(0,import_client.getPickerFormat)(C);v=(0,import_client.dayjs)(v).format(b)}return g.apply({[u]:[v,S]})}catch(g){throw g}}));return a=yield Promise.all(a),n==="$and"?(0,import_lodash.every)(a,l=>l):(0,import_lodash.some)(a,l=>l)});function targetFieldToVariableString(e,t="$nForm"){return`{{ ${t}.${e.join(".")} }}`}const getVariablesData=e=>{const t={};return e.map(o=>{t[o.name]=o.ctx}),t};function getRenderContent(e,t,o,r,i){return q(this,null,function*(){var n,a;if(t&&e==="handlebars")try{const l=import_client.Handlebars.compile(t),c=getVariablesData(r),{$nDate:u}=((n=o==null?void 0:o.ctxRef)==null?void 0:n.current)||{},m={};Object.keys(u||{}).map(p=>{m[p]=u[p]()});const d=l(P(x(x({},(a=o==null?void 0:o.ctxRef)==null?void 0:a.current),c),{$nDate:m}));return yield i(d)}catch(l){return console.log(l),t}else try{const l=yield replaceVariableValue(t,o,r);return yield i(l)}catch(l){return console.log(l),t}})}const getPath=e=>e&&e.match(REGEX_OF_VARIABLE)[0].replace(REGEX_OF_VARIABLE,"$1"),getVariableName=e=>import_lodash.default.isString(e)?getPath(e).split(".")[0]:e;var ActionType=(e=>(e.Visible="visible",e.Editable="editable",e.ReadOnly="disabled",e.ReadPretty="readPretty",e.None="none",e.Hidden="hidden",e.Required="required",e.InRequired="notRequired",e.Disabled="disabled",e.Value="value",e.Active="enabled",e.Color="color",e.BackgroundColor="backgroundColor",e.TextAlign="textAlign",e))(ActionType||{}),LinkageRuleCategory=(e=>(e.default="default",e.style="style",e))(LinkageRuleCategory||{});const LinkageRuleDataKeyMap={style:"x-linkage-style-rules",default:"x-linkage-rules"};function bindLinkageRulesToFiled({field:e,linkageRules:t,formValues:o,localVariables:r,action:i,rule:n,variables:a,variableNameOfLeftCondition:l}){var c,u,m,d;return e.initStateOfLinkageRules={display:((c=e.initStateOfLinkageRules)==null?void 0:c.display)||getTempFieldState(!0,e.display),required:((u=e.initStateOfLinkageRules)==null?void 0:u.required)||getTempFieldState(!0,e.required||!1),pattern:((m=e.initStateOfLinkageRules)==null?void 0:m.pattern)||getTempFieldState(!0,e.pattern),value:((d=e.initStateOfLinkageRules)==null?void 0:d.value)||getTempFieldState(!0,e.value||e.initialValue)},(0,import_reactive.reaction)(()=>{const p=getFieldValuesInCondition({linkageRules:t,formValues:o}),g=getVariableValuesInCondition({linkageRules:t,localVariables:r}),h=getVariableValuesInExpression({action:i,localVariables:r});return[p,g,h].map(f=>JSON.stringify(f)).join(",")},getSubscriber({action:i,field:e,rule:n,variables:a,localVariables:r,variableNameOfLeftCondition:l}),{fireImmediately:!0,equals:import_lodash.default.isEqual})}function getFieldValuesInCondition({linkageRules:e,formValues:t}){return e.map(o=>{const r=i=>{const n=Object.keys(i)[0]||"$and";return i[n].map(a=>{if("$and"in a||"$or"in a)return r(a);const l=getTargetField$1(a).join(".");return(0,import_client.getValuesByPath)(t,l)}).filter(Boolean)};return r(o.condition)})}function getVariableValuesInCondition({linkageRules:e,localVariables:t}){return e.map(o=>{const r=Object.keys(o.condition)[0]||"$and";return o.condition[r].map(i=>{const n=getInnermostKeyAndValue(i);return n?isVariable(n.value)?getVariableValue(n.value,t):n.value:null}).filter(Boolean)})}function getVariableValuesInExpression({action:e,localVariables:t}){var o;const r=e.value,i=r==null?void 0:r.mode,n=(r==null?void 0:r.value)||(r==null?void 0:r.result);if(i==="express"&&n!=null)return(o=getVariablesFromExpression(n))==null?void 0:o.map(a=>getVariableValue(a,t)).filter(Boolean)}function getVariableValue(e,t){var o;if(!isVariable(e))return;const r=getVariableName(e),i={[r]:(o=t.find(n=>n.name===r))==null?void 0:o.ctx};return(0,import_client.getValuesByPath)(i,getPath(e))}function getSubscriber({action:e,field:t,rule:o,variables:r,localVariables:i,variableNameOfLeftCondition:n}){return()=>{collectFieldStateOfLinkageRules({operator:e.operator,value:e.value,field:t,condition:o.condition,variables:r,localVariables:i,variableNameOfLeftCondition:n}),setTimeout(()=>q(this,null,function*(){var a;const l=getFieldNameByOperator(e.operator);if(!((a=t.stateOfLinkageRules)!=null&&a[l]))return;let c=t.stateOfLinkageRules[l];c=yield Promise.all(c),c=c.filter(m=>m.condition);const u=c[c.length-1];l==="value"?c.length>1&&(t.value=u.value):(l==="display"&&(u==null?void 0:u.value)==="hidden"?(t.display="visible",t.data=t.data||{},t.data.hidden=!0,requestAnimationFrame(()=>{t.setState(m=>{m.display="visible"})})):(t[l]=u==null?void 0:u.value,requestAnimationFrame(()=>{t.setState(m=>{m[l]=u==null?void 0:u.value})})),l==="display"&&(u==null?void 0:u.value)==="none"&&(t.value=null)),t.stateOfLinkageRules[l]=null}))}}function getFieldNameByOperator(e){switch(e){case ActionType.Required:case ActionType.InRequired:return"required";case ActionType.Visible:case ActionType.None:case ActionType.Hidden:return"display";case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:return"pattern";case ActionType.Value:return"value";default:return null}}const collectFieldStateOfLinkageRules=({operator:e,value:t,field:o,condition:r,variables:i,localVariables:n,variableNameOfLeftCondition:a})=>{var l,c,u,m,d,p,g,h;const f=((l=o==null?void 0:o.stateOfLinkageRules)==null?void 0:l.required)||[(c=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:c.required],_=((u=o==null?void 0:o.stateOfLinkageRules)==null?void 0:u.display)||[(m=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:m.display],v=((d=o==null?void 0:o.stateOfLinkageRules)==null?void 0:d.pattern)||[(p=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:p.pattern],S=((g=o==null?void 0:o.stateOfLinkageRules)==null?void 0:g.value)||[(h=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:h.value],{evaluate:C}=import_client2.evaluators.get("formula.js"),b={ruleGroup:r,variables:i,localVariables:n,variableNameOfLeftCondition:a};switch(e){case ActionType.Required:f.push(getTempFieldState(conditionAnalyses(b),!0)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:f});break;case ActionType.InRequired:f.push(getTempFieldState(conditionAnalyses(b),!1)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:f});break;case ActionType.Visible:case ActionType.None:case ActionType.Hidden:_.push(getTempFieldState(conditionAnalyses(b),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{display:_});break;case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:v.push(getTempFieldState(conditionAnalyses(b),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{pattern:v});break;case ActionType.Value:{const y=()=>q(void 0,null,function*(){var F;if((t==null?void 0:t.mode)==="express"){if((t.value||t.result)==null)return;const{exp:j,scope:k}=yield replaceVariables(t.value||t.result,{variables:i,localVariables:n});try{return C(j,x({now:()=>new Date().toString()},k))}catch(T){console.error(T)}}else return(t==null?void 0:t.mode)==="constant"?(F=t==null?void 0:t.value)!=null?F:t:null});isConditionEmpty(r)?S.push(getTempFieldState(!0,y())):S.push(getTempFieldState(conditionAnalyses(b),y())),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{value:S})}break;default:return null}};function getTempFieldState(e,t){return q(this,null,function*(){return[e,t]=yield Promise.all([e,t]),{condition:e,value:t}})}function isConditionEmpty(e){const t=Object.keys(e)[0]||"$and",o=e[t];return import_lodash.default.isEmpty(o)}function replaceVariables(e,t){return q(this,arguments,function*(o,{variables:r,localVariables:i}){var n;const a={},l={};if(o==null)return;const c=(n=o.match(REGEX_OF_VARIABLE_IN_EXPRESSION))==null?void 0:n.map(u=>q(this,null,function*(){const{value:m}=yield r.parseVariable(u,i),d=`_${(0,import_client.uid)()}`;return l[d]=m,a[u]=d,m}));return c&&(yield Promise.all(c)),{exp:o.replace(REGEX_OF_VARIABLE_IN_EXPRESSION,u=>`{{${a[u]||u}}}`),scope:l}})}const useCloseAction$3=()=>{const{setVisible:e}=useActionContext(),t=(0,import_react.useForm)();return{run(){return q(this,null,function*(){e(!1),t.submit(o=>{console.log(o)})})}}},useSaveCurrentUserValues$1=()=>{const e=(0,import_react_router_dom.useNavigate)(),{setVisible:t}=useActionContext(),o=(0,import_react.useForm)(),r=useAPIClient();return{run(){return q(this,null,function*(){yield o.submit(),yield r.resource("auth").changePassword({values:o.values}),yield o.reset(),t(!1),e("/signin")})}}},schema$4={type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-component":"Action.Drawer","x-component-props":{zIndex:1e4},type:"void",title:'{{t("Change password")}}',properties:{oldPassword:{type:"string",title:'{{t("Old password")}}',required:!0,"x-component":"Password","x-decorator":"FormItem"},newPassword:{type:"string",title:'{{t("New password")}}',required:!0,"x-component":"Password","x-decorator":"FormItem","x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".confirmPassword"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},confirmPassword:{type:"string",required:!0,title:'{{t("Confirm password")}}',"x-component":"Password","x-decorator":"FormItem","x-component-props":{checkStrength:!0,style:{}},"x-reactions":[{dependencies:[".newPassword"],fulfill:{state:{selfErrors:'{{$deps[0] && $self.value && $self.value !== $deps[0] ? t("Password mismatch") : ""}}'}}}]},footer:{"x-component":"Action.Drawer.Footer",type:"void",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ useCloseAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ useSaveCurrentUserValues }}"}}}}}}}},useChangePassword=()=>{const e=(0,import_react2.useContext)(DropdownVisibleContext),[t,o]=(0,import_react2.useState)(!1),{t:r}=(0,import_react_i18next.useTranslation)(),{data:i}=useSystemSettings()||{},{enableChangePassword:n}=(i==null?void 0:i.data)||{},a=(0,import_react2.useMemo)(()=>({key:"password",eventKey:"ChangePassword",onClick:()=>{o(!0),e==null||e.setVisible(!1)},label:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[r("Change password"),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{visible:t,setVisible:o},children:(0,import_jsx_runtime.jsx)("div",{onClick:l=>l.stopPropagation(),children:(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCloseAction:useCloseAction$3,useSaveCurrentUserValues:useSaveCurrentUserValues$1},schema:schema$4})})})]})}),[t]);return n===!1?null:a},CurrentUserSettingsMenuContext=(0,import_react2.createContext)(null);CurrentUserSettingsMenuContext.displayName="CurrentUserSettingsMenuContext";const useCurrentUserSettingsMenu=()=>{const{menuItems:e}=(0,import_react2.useContext)(CurrentUserSettingsMenuContext)||{},t=(0,import_react2.useCallback)(()=>e.current,[e]),o=(0,import_react2.useCallback)((r,i)=>{let n;if(i&&(r._options=i),(n=e.current.findIndex(l=>l.key===r.key))!==-1){e.current[n]=r,e.current=[...e.current];return}if(i){if(i.before){const l=e.current.findIndex(c=>c.key===i.before);e.current.splice(l,0,r);return}if(i.after){const l=e.current.findIndex(c=>c.key===i.after);e.current.splice(l+1,0,r);return}}const a=e.current;e.current=a.filter(l=>{var c,u;return r.key!==((c=l._options)==null?void 0:c.before)&&r.key!==((u=l._options)==null?void 0:u.after)}),e.current.push(...a.filter(l=>{var c;return((c=l._options)==null?void 0:c.before)===r.key})),e.current.push(r),e.current.push(...a.filter(l=>{var c;return((c=l._options)==null?void 0:c.after)===r.key}))},[e]);if(!e)throw(0,import_client.error)("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app."),new Error("CurrentUser: You should use `CurrentUserSettingsMenuProvider` in the root of your app.");return{getMenuItems:t,addMenuItem:o}},CurrentUserSettingsMenuProvider=({children:e})=>{const t=(0,import_react2.useRef)([]),o=(0,import_react2.useMemo)(()=>({menuItems:t}),[t]);return(0,import_jsx_runtime.jsx)(CurrentUserSettingsMenuContext.Provider,{value:o,children:e})},useCloseAction$2=()=>{const{setVisible:e}=useActionContext(),t=(0,import_react.useForm)();return{run(){return q(this,null,function*(){e(!1),t.submit(o=>{console.log(o)})})}}},useCurrentUserValues=e=>{const t=useCurrentUserContext();return useRequest(()=>Promise.resolve(t.data),e)},useSaveCurrentUserValues=()=>{const e=useCurrentUserContext(),{setVisible:t}=useActionContext(),o=(0,import_react.useForm)(),r=useAPIClient();return{run(){return q(this,null,function*(){var i;const n=yield o.submit();t(!1),yield r.resource("users").updateProfile({values:n}),e.mutate({data:x(x({},(i=e==null?void 0:e.data)==null?void 0:i.data),n)})})}}},schema$3={type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-decorator-props":{useValues:"{{ useCurrentUserValues }}"},"x-component":"Action.Drawer","x-component-props":{zIndex:1e4},type:"void",title:'{{t("Edit profile")}}',properties:{nickname:{type:"string",title:"{{t('Nickname')}}","x-decorator":"FormItem","x-component":"Input","x-disabled":"{{ enableEditProfile === false }}"},username:{type:"string",title:'{{t("Username")}}',"x-decorator":"FormItem","x-component":"Input","x-validator":{username:!0},required:!0,"x-disabled":"{{ enableEditProfile === false }}"},email:{type:"string",title:'{{t("Email")}}',"x-decorator":"FormItem","x-component":"Input","x-validator":"email","x-disabled":"{{ enableEditProfile === false }}"},phone:{type:"string",title:'{{t("Phone")}}',"x-decorator":"FormItem","x-component":"Input","x-disabled":"{{ enableEditProfile === false }}"},footer:{"x-component":"Action.Drawer.Footer",type:"void",properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCloseAction }}"}},submit:{title:"Submit","x-component":"Action","x-disabled":"{{ enableEditProfile === false }}","x-component-props":{type:"primary",useAction:"{{ useSaveCurrentUserValues }}"}}}}}}}},useEditProfile=()=>{const e=(0,import_react2.useContext)(DropdownVisibleContext),[t,o]=(0,import_react2.useState)(!1),{t:r}=(0,import_react_i18next.useTranslation)(),{data:i}=useSystemSettings()||{},{enableEditProfile:n}=(i==null?void 0:i.data)||{},a=(0,import_react2.useMemo)(()=>({key:"profile",eventKey:"EditProfile",onClick:()=>{o(!0),e==null||e.setVisible(!1)},label:(0,import_jsx_runtime.jsxs)("div",{children:[r("Edit profile"),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{visible:t,setVisible:o},children:(0,import_jsx_runtime.jsx)("div",{onClick:l=>l.stopPropagation(),children:(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCurrentUserValues,useCloseAction:useCloseAction$2,useSaveCurrentUserValues,enableEditProfile:n},schema:schema$3})})})]})}),[t]);return n===!1?null:a},dayjsLocale={"ar-EG":"ar","az-AZ":"az","bg-BG":"bg","bn-BD":"bn-bd","by-BY":"en","ca-ES":"ca","cs-CZ":"cs","da-DK":"da","de-DE":"de","el-GR":"el","en-GB":"en-gb","en-US":"en","es-ES":"es","et-EE":"et","fa-IR":"fa","fi-FI":"fi","fr-BE":"fr","fr-CA":"fr","fr-FR":"fr","ga-IE":"ga","gl-ES":"gl","he-IL":"he","hi-IN":"hi","hr-HR":"hr","hu-HU":"hu","hy-AM":"hy-am","id-ID":"id","is-IS":"is","it-IT":"it","ja-JP":"ja","ka-GE":"ka","kk-KZ":"kk","km-KH":"km","kn-IN":"kn","ko-KR":"ko","ku-IQ":"ku","lt-LT":"lt","lv-LV":"lv","mk-MK":"mk","ml-IN":"ml","mn-MN":"mn","ms-MY":"ms","nb-NO":"nb","ne-NP":"ne","nl-BE":"nl-be","nl-NL":"nl","pl-PL":"pl","pt-BR":"pt-br","pt-PT":"pt","ro-RO":"ro","ru-RU":"ru","si-LK":"si","sk-SK":"sk","sl-SI":"sl","sr-RS":"sr","sv-SE":"sv","ta-IN":"ta","th-TH":"th","tk-TK":"tk","tr-TR":"tr","uk-UA":"uk","ur-PK":"ur","vi-VN":"vi","zh-CN":"zh-cn","zh-HK":"zh-hk","zh-TW":"zh-tw"},languageCodes={"ar-EG":{label:"العربية"},"az-AZ":{label:"Azərbaycan dili"},"bg-BG":{label:"Български"},"bn-BD":{label:"Bengali"},"by-BY":{label:"Беларускі"},"ca-ES":{label:"Сatalà/Espanya"},"cs-CZ":{label:"Česky"},"da-DK":{label:"Dansk"},"de-DE":{label:"Deutsch"},"el-GR":{label:"Ελληνικά"},"en-GB":{label:"English(GB)"},"en-US":{label:"English"},"es-ES":{label:"Español"},"et-EE":{label:"Estonian (Eesti)"},"fa-IR":{label:"فارسی"},"fi-FI":{label:"Suomi"},"fr-BE":{label:"Français(BE)"},"fr-CA":{label:"Français(CA)"},"fr-FR":{label:"Français"},"ga-IE":{label:"Gaeilge"},"gl-ES":{label:"Galego"},"he-IL":{label:"עברית"},"hi-IN":{label:"हिन्दी"},"hr-HR":{label:"Hrvatski jezik"},"hu-HU":{label:"Magyar"},"hy-AM":{label:"Հայերեն"},"id-ID":{label:"Bahasa Indonesia"},"is-IS":{label:"Íslenska"},"it-IT":{label:"Italiano"},"ja-JP":{label:"日本語"},"ka-GE":{label:"ქართული"},"kk-KZ":{label:"Қазақ тілі"},"km-KH":{label:"ភាសាខ្មែរ"},"kn-IN":{label:"ಕನ್ನಡ"},"ko-KR":{label:"한국어"},"ku-IQ":{label:"کوردی"},"lt-LT":{label:"lietuvių"},"lv-LV":{label:"Latviešu valoda"},"mk-MK":{label:"македонски јазик"},"ml-IN":{label:"മലയാളം"},"mn-MN":{label:"Монгол хэл"},"ms-MY":{label:"بهاس ملايو"},"nb-NO":{label:"Norsk bokmål"},"ne-NP":{label:"नेपाली"},"nl-BE":{label:"Vlaams"},"nl-NL":{label:"Nederlands"},"pl-PL":{label:"Polski"},"pt-BR":{label:"Português brasileiro"},"pt-PT":{label:"Português"},"ro-RO":{label:"România"},"ru-RU":{label:"Русский"},"si-LK":{label:"සිංහල"},"sk-SK":{label:"Slovenčina"},"sl-SI":{label:"Slovenščina"},"sr-RS":{label:"српски језик"},"sv-SE":{label:"Svenska"},"ta-IN":{label:"Tamil"},"th-TH":{label:"ภาษาไทย"},"tk-TK":{label:"Turkmen"},"tr-TR":{label:"Türkçe"},"uk-UA":{label:"Українська"},"ur-PK":{label:"Oʻzbekcha"},"vi-VN":{label:"Tiếng Việt"},"zh-CN":{label:"简体中文"},"zh-HK":{label:"繁體中文(香港)"},"zh-TW":{label:"繁體中文(台湾)"}},useLanguageSettings=()=>{var e;const{t,i18n:o}=(0,import_react_i18next.useTranslation)(),r=useAPIClient(),{data:i}=useSystemSettings()||{},n=(0,import_react2.useMemo)(()=>{var l;return((l=i==null?void 0:i.data)==null?void 0:l.enabledLanguages)||[]},[(e=i==null?void 0:i.data)==null?void 0:e.enabledLanguages]),a=(0,import_react2.useMemo)(()=>({key:"language",eventKey:"LanguageSettings",label:(0,import_jsx_runtime.jsx)(SelectWithTitle,{title:t("Language"),options:Object.keys(languageCodes).filter(l=>n.includes(l)).map(l=>({label:languageCodes[l].label,value:l})),defaultValue:o.language,onChange:l=>q(void 0,null,function*(){yield r.resource("users").updateLang({values:{appLang:l}}),r.auth.setLocale(l),window.location.reload()})})}),[r,n,o,t]);return n.length<2?null:a};function SelectWithTitle({title:e,defaultValue:t,onChange:o,options:r,fieldNames:i}){const[n,a]=(0,import_react2.useState)(!1),l=(0,import_react2.useRef)(null);return(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},onClick:c=>{c.stopPropagation(),a(u=>!u)},onMouseLeave:()=>{l.current=setTimeout(()=>{a(!1)},200)},children:[e,(0,import_jsx_runtime.jsx)(import_antd.Select,{open:n,"data-testid":`select-${e}`,popupMatchSelectWidth:!1,bordered:!1,defaultValue:t,onChange:o,popupClassName:`select-popup-${e.replaceAll(" ","-")}`,fieldNames:i,options:r,style:{textAlign:"right",minWidth:100},onMouseEnter:()=>{clearTimeout(l.current)}})]})}class SchemaSettings{constructor(t){A(this,"options"),A(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=P(x({},o),{name:r[r.length-1]});if(r.length===1){const l=this.items.findIndex(c=>c.name===t);l===-1?this.items.push(i):this.items[l]=i;return}const n=r.slice(0,-1).join("."),a=this.get(n);if(a){a.children||(a.children=[]);const l=t.replace(`${a.name}.`,""),c=a.children.findIndex(u=>u.name===l);c===-1?a.children.push(i):a.children[c]=i}}get(t){if(!t)return;const o=t.split(".");let r=this.items;for(let i=0;i<o.length;i++){const n=o[i];if(r=r.find(a=>a.name===n),!r||i===o.length-1)return r;if(r.children)r=r.children;else return}}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)}}}class SchemaSettingsManager{constructor(t=[],o){A(this,"schemaSettings",{}),A(this,"actionList",{}),this._schemaSettings=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaSettings[o.name]=o,Array.isArray(this.actionList[o.name])&&(this.actionList[o.name].forEach(r=>{o[r.type](r.itemName,r.data)}),this.actionList[o.name]=void 0)})}addItem(t,o,r){const i=this.get(t);i?i.add(o,r):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"add",itemName:o,data:r}))}get(t){return this.schemaSettings[t]}getAll(){return this.schemaSettings}has(t){return!!this.get(t)}remove(t){delete this.schemaSettings[t]}removeItem(t,o){const r=this.get(t);r?r.remove(o):(this.actionList[t]||(this.actionList[t]=[]),this.actionList[t].push({type:"remove",itemName:o}))}}const defaultTheme={name:"",token:{colorPrimaryHeader:"#001529",colorBgHeader:"#001529",colorBgHeaderMenuHover:"#ffffff1a",colorBgHeaderMenuActive:"#ffffff1a",colorTextHeaderMenu:"#ffffffa6",colorTextHeaderMenuHover:"#ffffff",colorTextHeaderMenuActive:"#ffffff",colorSettings:"#F18B62",colorBgSettingsHover:"rgba(241, 139, 98, 0.06)",colorBorderSettingsHover:"rgba(241, 139, 98, 0.3)",motionUnit:.03,motion:!0}};function compatOldTheme(e){var t;return(t=e.token)!=null&&t.colorSettings||(e.token=x(x({},e.token),defaultTheme.token)),e}const customAlgorithm=(e,t)=>{const o=t||import_antd.theme.defaultAlgorithm(e);return o.paddingPageHorizontal===void 0&&(o.paddingPageHorizontal=o.sizeLG),o.paddingPageVertical===void 0&&(o.paddingPageVertical=o.sizeLG),o.paddingPopupHorizontal===void 0&&(o.paddingPopupHorizontal=o.sizeLG),o.paddingPopupVertical===void 0&&(o.paddingPopupVertical=o.size),o.marginBlock===void 0&&(o.marginBlock=o.sizeLG),o.borderRadiusBlock===void 0&&(o.borderRadiusBlock=o.borderRadiusLG),o},addCustomAlgorithmToTheme=e=>(Array.isArray(e.algorithm)?e.algorithm.includes(customAlgorithm)||e.algorithm.push(customAlgorithm):e.algorithm=[e.algorithm,customAlgorithm].filter(Boolean),e.algorithm=e.algorithm.filter(Boolean),e),AppInner=(0,import_react2.memo)(({children:e})=>{const t=useApp(),{notification:o}=import_antd.App.useApp(),r=useAPIClient();return(0,import_react2.useEffect)(()=>{r.notification=o,t.notification=o},[o]),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e})});AppInner.displayName="AppInner";const AntdAppProvider=({children:e,className:t,style:o})=>(0,import_jsx_runtime.jsx)(import_antd.App,{className:t,style:x({height:"100%"},o),children:(0,import_jsx_runtime.jsx)(AppInner,{children:e})});AntdAppProvider.displayName="AntdAppProvider";const GlobalThemeContext=(0,import_react2.createContext)(null);GlobalThemeContext.displayName="GlobalThemeContext";const useGlobalTheme=()=>import_react2.default.useContext(GlobalThemeContext)||{theme:{},isDarkTheme:!1},GlobalThemeProvider=({children:e,theme:t})=>{const[o,r]=import_react2.default.useState(t||defaultTheme),i=(0,import_react2.useRef)(null),n=(0,import_react2.useRef)(null),a=(0,import_react2.useMemo)(()=>{const p=o==null?void 0:o.algorithm;return Array.isArray(p)?p.includes(import_antd.theme.darkAlgorithm):p===import_antd.theme.darkAlgorithm},[o==null?void 0:o.algorithm]),l=(0,import_react2.useCallback)(p=>{n.current=p&&import_lodash.default.cloneDeep(p)},[]),c=(0,import_react2.useCallback)(()=>n.current,[]),u=(0,import_react2.useCallback)(p=>{i.current=p&&import_lodash.default.cloneDeep(p)},[]),m=(0,import_react2.useCallback)(()=>i.current,[]),d=(0,import_react2.useMemo)(()=>({theme:addCustomAlgorithmToTheme(o),setTheme:r,setCurrentSettingTheme:u,getCurrentSettingTheme:m,setCurrentEditingTheme:l,getCurrentEditingTheme:c,isDarkTheme:a}),[c,m,a,l,u,o]);return(0,import_jsx_runtime.jsx)(GlobalThemeContext.Provider,{value:d,children:(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{theme:compatOldTheme(d.theme),children:e})})},useToken$1=()=>import_antd.theme.useToken(),CSSVariableProvider=({children:e})=>{const{token:t}=useToken$1(),o=t.colorFillTertiary,r=new import_tinycolor.TinyColor(t.colorFill).onBackground(t.colorFillSecondary).toHexShortString(),i=new import_tinycolor.TinyColor(t.colorFill).onBackground(t.colorFill).toHexShortString(),n=new import_tinycolor.TinyColor(t.colorFill).onBackground(t.colorFill).onBackground(t.colorFill).toHexShortString();return(0,import_react2.useEffect)(()=>{document.body.style.setProperty("--nb-spacing",`${t.marginLG}px`),document.body.style.setProperty("--nb-designer-offset",`${t.marginXS}px`),document.body.style.setProperty("--nb-header-height",`${t.sizeXXL-2}px`),document.body.style.setProperty("--nb-box-bg",t.colorBgLayout),document.body.style.setProperty("--nb-box-bg",t.colorBgLayout),document.body.style.setProperty("--controlHeightLG",`${t.controlHeightLG}px`),document.body.style.setProperty("--paddingContentVerticalSM",`${t.paddingContentVerticalSM}px`),document.body.style.setProperty("--marginSM",`${t.marginSM}px`),document.body.style.setProperty("--colorInfoBg",t.colorInfoBg),document.body.style.setProperty("--colorInfoBorder",t.colorInfoBorder),document.body.style.setProperty("--colorWarningBg",t.colorWarningBg),document.body.style.setProperty("--colorWarningBorder",t.colorWarningBorder),document.body.style.setProperty("--colorText",t.colorText),document.body.style.setProperty("--colorPrimaryText",t.colorPrimaryText),document.body.style.setProperty("--colorPrimaryTextActive",t.colorPrimaryTextActive),document.body.style.setProperty("--colorPrimaryTextHover",t.colorPrimaryTextHover),document.body.style.setProperty("--colorBgScrollTrack",o),document.body.style.setProperty("--colorBgScrollBar",r),document.body.style.setProperty("--colorBgScrollBarHover",i),document.body.style.setProperty("--colorBgScrollBarActive",n),document.body.style.setProperty("--colorSettings",t.colorSettings||defaultTheme.token.colorSettings),document.body.style.setProperty("--colorBgSettingsHover",t.colorBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",t.colorBorderSettingsHover),document.body.style.setProperty("background-color",t.colorBgContainer)},[r,n,i,o,t.colorBgContainer,t.colorBgLayout,t.colorBgSettingsHover,t.colorBorderSettingsHover,t.colorInfoBg,t.colorInfoBorder,t.colorPrimaryText,t.colorPrimaryTextActive,t.colorPrimaryTextHover,t.colorSettings,t.colorText,t.colorWarningBg,t.colorWarningBorder,t.controlHeightLG,t.marginLG,t.marginSM,t.marginXS,t.paddingContentVerticalSM,t.sizeXXL]),e};CSSVariableProvider.displayName="CSSVariableProvider";function tval(e,t){return t?`{{t(${JSON.stringify(e)}, ${JSON.stringify(t)})}}`:`{{t(${JSON.stringify(e)})}}`}const i18n=import_i18next.default.createInstance();Object.keys(languageCodes).forEach(e=>{languageCodes[e].resources});i18n.use(import_react_i18next.initReactI18next).init({lng:"en-US",defaultNS:"client",resources:{},keySeparator:!1,nsSeparator:!1});function defineDevPlugins(e){Object.entries(e).forEach(([t,o])=>{window.define(`${t}/client`,()=>o)})}function definePluginClient(e){window.define(`${e}/client`,["exports",e],function(t,o){Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(o).forEach(function(r){r!=="__esModule"&&(r in t&&t[r]===o[r]||Object.defineProperty(t,r,{enumerable:!0,get:function(){return o[r]}}))})})}function configRequirejs(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((o,r)=>(o[r.packageName]=r.url,o),{})})}function processRemotePlugins(e,t){return(...o)=>{const r=o.map((n,a)=>[e[a].name,(n==null?void 0:n.default)||n]).filter(n=>n[1]);t(r);const i=o.map((n,a)=>n?null:a).filter(n=>n!==null).map(n=>e[n].packageName);i.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",i.join(`, \r
|
|
17
17
|
`))}}function getRemotePlugins(e,t=[]){configRequirejs(e,t);const o=t.map(r=>r.packageName);return o.forEach(r=>{definePluginClient(r)}),new Promise((r,i)=>{e.requirejs(o,processRemotePlugins(t,r),i)})}function getPlugins(e){return q(this,null,function*(){const{requirejs:t,pluginData:o,devDynamicImport:r}=e;if(o.length===0)return[];const i=[],n={};if(r){try{for(var a=ke(o),l,c,u;l=!(c=yield a.next()).done;l=!1){const d=c.value,p=yield r(d.packageName);p&&(i.push([d.name,p.default]),n[d.packageName]=p.default)}}catch(d){u=[d]}finally{try{l&&(c=a.return)&&(yield c.call(a))}finally{if(u)throw u[0]}}defineDevPlugins(n)}const m=o.filter(d=>!n[d.packageName]);if(m.length===0)return i;if(i.length===0){const d=yield getRemotePlugins(t,m);i.push(...d)}return i})}let PluginManager$1=class{constructor(e,t,o){A(this,"pluginInstances",new Map),A(this,"pluginsAliases",{}),A(this,"initPlugins"),this._plugins=e,this.loadRemotePlugins=t,this.app=o,this.app=o,this.initPlugins=this.init(e)}init(e){return q(this,null,function*(){yield this.initStaticPlugins(e),this.loadRemotePlugins&&(yield this.initRemotePlugins())})}initStaticPlugins(){return q(this,arguments,function*(e=[]){try{for(var t=ke(e),o,r,i;o=!(r=yield t.next()).done;o=!1){const n=r.value,a=Array.isArray(n)?n[0]:n,l=Array.isArray(n)?n[1]:void 0;yield this.add(a,l)}}catch(n){i=[n]}finally{try{o&&(r=t.return)&&(yield r.call(t))}finally{if(i)throw i[0]}}})}initRemotePlugins(){return q(this,null,function*(){var e;const t=yield this.app.apiClient.request({url:"pm:listEnabled"}),o=((e=t==null?void 0:t.data)==null?void 0:e.data)||[],r=yield getPlugins({requirejs:this.app.requirejs,pluginData:o,devDynamicImport:this.app.devDynamicImport});try{for(var i=ke(r),n,a,l;n=!(a=yield i.next()).done;n=!1){const[c,u]=a.value,m=o.find(d=>d.name===c);yield this.add(u,m)}}catch(c){l=[c]}finally{try{n&&(a=i.return)&&(yield a.call(i))}finally{if(l)throw l[0]}}})}add(e){return q(this,arguments,function*(t,o={}){const r=this.getInstance(t,o);this.pluginInstances.set(t,r),o.name&&(this.pluginsAliases[o.name]=r),o.packageName&&(this.pluginsAliases[o.packageName]=r),yield r.afterAdd()})}get(e){return typeof e=="string"?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e,t){return new e(t,this.app)}load(){return q(this,null,function*(){yield this.initPlugins;for(const e of this.pluginInstances.values())yield e.beforeLoad();for(const e of this.pluginInstances.values())yield e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))})}},IconFont;const icons=new Map;function registerIcon(e,t=IconFont){icons.set(e.toLowerCase(),t)}function hasIcon(e){return e?icons.has(e.toLowerCase()):!1}function registerIcons(e){Object.keys(e).forEach(t=>{registerIcon(t,e[t])})}Object.keys(antIcons).forEach(e=>{e.endsWith("Outlined")&®isterIcon(e,antIcons[e])});const Icon=e=>{const t=e,{type:o="",component:r}=t,i=K(t,["type","component"]);if(r)return(0,import_jsx_runtime.jsx)(import_icons.default,x({component:r},i));if(o&&icons.has(o.toLowerCase())){const n=icons.get(o.toLowerCase());return(0,import_jsx_runtime.jsx)(n,x({},i))}return o&&IconFont?(0,import_jsx_runtime.jsx)(IconFont,{type:o}):null};Icon.createFromIconfontCN=e=>{IconFont=(0,import_icons.createFromIconfontCN)(e)};Icon.register=e=>{registerIcons(e)};const ADMIN_SETTINGS_KEY="admin.settings.",ADMIN_SETTINGS_PATH="/admin/settings/",SNIPPET_PREFIX="pm.";class PluginSettingsManager{constructor(t,o){A(this,"settings",{}),A(this,"aclSnippets",[]),A(this,"app"),A(this,"cachedList",{}),this.app=o,Object.entries(t||{}).forEach(([r,i])=>{this.add(r,i)})}clearCache(){this.cachedList={}}setAclSnippets(t){this.aclSnippets=t}getAclSnippet(t){const o=this.settings[t];return o!=null&&o.skipAclConfigure?null:o!=null&&o.aclSnippet?o.aclSnippet:`${SNIPPET_PREFIX}${t}`}getRouteName(t){return`${ADMIN_SETTINGS_KEY}${t}`}getRoutePath(t){return`${ADMIN_SETTINGS_PATH}${t.replaceAll(".","/")}`}add(t,o){const r=t.split("."),i=r[0];this.settings[t]=P(x(P(x({},this.settings[t]),{Component:import_react_router_dom.Outlet}),o),{name:t,topLevelName:o.topLevelName||i}),r.length>1&&(0,import_lodash.set)(this.settings,r.join(".children."),this.settings[t]),this.app.router.add(this.getRouteName(t),{path:this.getRoutePath(t),Component:this.settings[t].Component})}remove(t){Object.keys(this.settings).forEach(o=>{o.startsWith(t)&&(delete this.settings[o],this.app.router.remove(`${ADMIN_SETTINGS_KEY}${o}`))})}hasAuth(t){return this.aclSnippets.includes(`!${this.getAclSnippet("*")}`)?!1:this.aclSnippets.includes(`!${this.getAclSnippet(t)}`)===!1}getSetting(t){return this.settings[t]}has(t){return this.hasAuth(t)?!!this.getSetting(t):!1}get(t,o=!0){const r=this.hasAuth(t),i=this.getSetting(t);if(o&&!r||!i)return null;const n=Object.keys(i.children||{}).sort((d,p)=>d.localeCompare(p)).map(d=>this.get(i.children[d].name,o)).filter(Boolean).sort((d,p)=>(d.sort||0)-(p.sort||0)),a=i,{title:l,icon:c,aclSnippet:u}=a,m=K(a,["title","icon","aclSnippet"]);return P(x({isTopLevel:t===i.topLevelName},m),{aclSnippet:this.getAclSnippet(t),title:l,isAllow:r,label:l,icon:typeof c=="string"?(0,import_react2.createElement)(Icon,{type:c}):c,path:this.getRoutePath(t),key:t,children:n.length?n:void 0})}getList(t=!0){const o=JSON.stringify(t);return this.cachedList[o]?this.cachedList[o]:this.cachedList[o]=Array.from(new Set(Object.values(this.settings).map(r=>r.topLevelName))).sort((r,i)=>r.localeCompare(i)).map(r=>this.get(r,t)).filter(Boolean).sort((r,i)=>(r.sort||0)-(i.sort||0))}getAclSnippets(){return Object.keys(this.settings).map(t=>this.getAclSnippet(t)).filter(Boolean)}}const ApplicationContext=(0,import_react2.createContext)(null);ApplicationContext.displayName="ApplicationContext";const AppComponent=(0,import_reactive_react.observer)(e=>{var t=e,{children:o}=t,r=K(t,["children"]),i;const{app:n}=r,a=(0,import_react2.useCallback)((c,u)=>{console.error(c);const m=new Error;m.stack=u.componentStack.trim(),console.error(m)},[]);(0,import_react2.useEffect)(()=>{n.load()},[n]);const l=n.getComponent("AppError");return n.loading?n.renderComponent("AppSpin",{app:n}):!n.maintained&&n.maintaining?n.renderComponent("AppMaintaining",{app:n}):(i=n.error)!=null&&i.code&&!(n.maintained&&n.maintaining)?(0,import_jsx_runtime.jsx)(l,{app:n,error:n.error}):(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:c=>(0,import_jsx_runtime.jsx)(l,x({app:n,error:n.error},c)),onError:a,children:(0,import_jsx_runtime.jsxs)(ApplicationContext.Provider,{value:n,children:[n.maintained&&n.maintaining&&n.renderComponent("AppMaintainingDialog",{app:n}),n.renderComponent("AppMain",void 0,o)]})})},{displayName:"AppComponent"}),BlankComponent=({children:e})=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e}),useApp=()=>(0,import_react2.useContext)(ApplicationContext)||{},useAppSpin=()=>{const e=useApp();return{render:(0,import_react2.useCallback)(()=>{var t;return e!=null&&e.renderComponent?(t=e==null?void 0:e.renderComponent)==null?void 0:t.call(e,"AppSpin"):import_react2.default.createElement(import_antd.Spin)},[e])}};function usePlugin(e){return useApp().pm.get(e)}const useRouter=()=>useApp().router,MainComponent=import_react2.default.memo(({children:e})=>{const t=useApp(),o=(0,import_react2.useMemo)(()=>t.router.getRouterComponent(e),[t]),r=(0,import_react2.useMemo)(()=>t.getComposeProviders(),[t]);return(0,import_jsx_runtime.jsx)(o,{BaseLayout:r})});MainComponent.displayName="MainComponent";const Loading=()=>(0,import_jsx_runtime.jsx)("div",{children:"Loading..."}),AppError$1=({error:e})=>(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)("div",{children:"App Error"}),e==null?void 0:e.message,!1]}),AppNotFound$1=()=>(0,import_jsx_runtime.jsx)("div",{}),defaultAppComponents={AppMain:MainComponent,AppSpin:Loading,AppError:AppError$1,AppNotFound:AppNotFound$1},RouterContextCleaner=import_react2.default.memo(e=>(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_RouteContext.Provider,{value:{outlet:null,matches:[],isDataRoute:!1},children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_LocationContext.Provider,{value:null,children:e.children})}));RouterContextCleaner.displayName="RouterContextCleaner";class RouterManager{constructor(t={},o){A(this,"routes",{}),A(this,"options"),A(this,"app"),this.options=t,this.app=o,this.routes=t.routes||{}}getRoutesTree(){const t={};for(const[r,i]of Object.entries(this.routes))(0,import_lodash.set)(t,r.split(".").join(".children."),x(x({},(0,import_lodash.get)(t,r.split(".").join(".children."))),i));const o=r=>Object.values(r).reduce((i,n)=>{if(Object.keys(n).length===1&&n.children)i.push(...o(n.children));else{const a=n,{Component:l,element:c,children:u}=a,m=K(a,["Component","element","children"]);let d=c;l&&(typeof l=="string"?d=this.app.renderComponent(l):d=import_react2.default.createElement(l));const p=P(x({},m),{element:d,children:u?o(u):void 0});i.push(p)}return i},[]);return o(t)}getRoutes(){return this.routes}setType(t){this.options.type=t}getBasename(){return this.options.basename}setBasename(t){this.options.basename=t}getRouterComponent(t){const o=this.options,{type:r="browser"}=o,i=K(o,["type"]),n={hash:import_react_router_dom.HashRouter,browser:import_react_router_dom.BrowserRouter,memory:import_react_router_dom.MemoryRouter}[r],a=this.getRoutesTree(),l=()=>(0,import_react_router_dom.useRoutes)(a);return({BaseLayout:c=BlankComponent})=>(0,import_jsx_runtime.jsx)(RouterContextCleaner,{children:(0,import_jsx_runtime.jsx)(n,P(x({},i),{children:(0,import_jsx_runtime.jsx)(CustomRouterContextProvider,{children:(0,import_jsx_runtime.jsx)(c,{children:(0,import_jsx_runtime.jsxs)(VariablesProvider$1,{children:[(0,import_jsx_runtime.jsx)(l,{}),t]})})})}))})}add(t,o){this.routes[t]=o}get(t){return this.routes[t]}has(t){return!!this.get(t)}remove(t){delete this.routes[t]}}function createRouterManager(e,t){return new RouterManager(e,t)}class WebSocketClient{constructor(t){if(A(this,"_ws"),A(this,"_reconnectTimes",0),A(this,"events",[]),A(this,"options"),A(this,"app"),A(this,"enabled"),A(this,"connected",!1),A(this,"serverDown",!1),A(this,"lastMessage",{}),!t){this.enabled=!1;return}this.options=t===!0?{}:t,this.enabled=!0,(0,import_reactive.define)(this,{serverDown:import_reactive.observable.ref,connected:import_reactive.observable.ref,lastMessage:import_reactive.observable.ref})}getURL(){if(!this.app)return;const t=this.app.getApiUrl();if(!t)return;const o=(0,import_sdk.getSubAppName)(this.app.getPublicPath()),r=o?`?__appName=${o}`:"",i=this.options.basename||"/ws";if(this.options.url){const n=new URL(this.options.url);return n.hostname==="localhost"?`${location.protocol==="https:"?"wss":"ws"}://${location.hostname}:${n.port}${i}${r}`:`${this.options.url}${r}`}try{const n=new URL(t);return`${n.protocol==="https:"?"wss":"ws"}://${n.host}${i}${r}`}catch{return`${location.protocol==="https:"?"wss":"ws"}://${location.host}${i}${r}`}}get reconnectAttempts(){var t;return((t=this.options)==null?void 0:t.reconnectAttempts)||30}get reconnectInterval(){var t;return((t=this.options)==null?void 0:t.reconnectInterval)||1e3}get pingInterval(){var t;return((t=this.options)==null?void 0:t.pingInterval)||3e4}get readyState(){return this._ws?this._ws.readyState:-1}connect(){if(!this.enabled||(this._reconnectTimes===0&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts)||this.readyState===WebSocket.OPEN)return;this._reconnectTimes++;const t=new WebSocket(this.getURL(),this.options.protocols);let o;t.onopen=()=>{console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t;for(const{type:r,listener:i,options:n}of this.events)this._ws.addEventListener(r,i,n);o=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=()=>q(this,null,function*(){console.log("onerror",this.readyState,this._reconnectTimes)}),t.onclose=r=>q(this,null,function*(){setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(o)})}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(t){if(this._ws)return this._ws.send(t)}on(t,o,r){this.events.push({type:t,listener:o,options:r}),this._ws&&this._ws.addEventListener(t,o,r)}emit(t,o){for(const r of this.events)r.type===t&&r.listener(o)}off(t,o,r){let i=0;for(const n of this.events){if(n.type===t&&n.listener===o){this.events.splice(i,1);break}i++}this._ws&&this._ws.removeEventListener(t,o,r)}removeAllListeners(){if(this._ws)for(const{type:t,listener:o,options:r}of this.events)this._ws.removeEventListener(t,o,r)}}const useNiceDropdownMaxHeight=(e=[])=>{const t=(0,import_react2.useRef)(0);return(0,import_react2.useEffect)(()=>{const o=r=>{const{clientY:i}=r,n=Math.max(i,window.innerHeight-i);t.current=n};return window.addEventListener("mousemove",o),()=>{window.removeEventListener("mousemove",o)}},[]),(0,import_react2.useMemo)(()=>t.current-40,e)},FlagContext=import_react2.default.createContext(null),FlagProvider=e=>(0,import_jsx_runtime.jsx)(FlagContext.Provider,{value:e,children:e.children}),useFlag=()=>(0,import_react2.useContext)(FlagContext)||{},{ConfigContext}=import_antd.ConfigProvider,useConfig=()=>(0,import_react2.useContext)(ConfigContext),usePrefixCls=(e,t)=>{const{getPrefixCls:o}=(0,import_react2.useContext)(import_antd.ConfigProvider.ConfigContext)||{};return"ConfigContext"in import_antd.ConfigProvider?(o==null?void 0:o(e,void 0))||"":`ant-${e??""}`},useToken=()=>import_antd.theme.useToken(),loading$1=(e="Loading...",t)=>q(void 0,null,function*(){let o=null;const r=setTimeout(()=>{o=import_antd.message.loading(e)},100);try{return yield t()}finally{o==null||o(),clearTimeout(r)}}),fullClone=x({},ReactDOM),{version:version$1,render:reactRender,unmountComponentAtNode}=fullClone;let createRoot;try{Number((version$1||"").split(".")[0])>=18&&fullClone.createRoot&&(createRoot=fullClone.createRoot)}catch{}function toggleWarning(e){const{__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:t}=fullClone;t&&typeof t=="object"&&(t.usingClientEntryPoint=e)}const MARK="__antd_mobile_root__";function legacyRender(e,t){reactRender(e,t)}function concurrentRender(e,t){toggleWarning(!0);const o=t[MARK]||createRoot(t);toggleWarning(!1),o.render(e),t[MARK]=o}function render(e,t){if(createRoot){concurrentRender(e,t);return}legacyRender(e,t)}function legacyUnmount(e){return unmountComponentAtNode(e)}function concurrentUnmount(e){return q(this,null,function*(){return Promise.resolve().then(()=>{var t;(t=e[MARK])==null||t.unmount(),delete e[MARK]})})}function unmount(e){return createRoot?concurrentUnmount(e):legacyUnmount(e)}const PortalMap=(0,import_reactive.observable)(new Map),createPortalProvider=e=>{const t=o=>(o.id&&!PortalMap.has(o.id)&&PortalMap.set(o.id,null),(0,import_jsx_runtime.jsxs)(import_react2.Fragment,{children:[o.children,(0,import_jsx_runtime.jsx)(import_react.Observer,{children:()=>{if(!o.id)return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{});const r=PortalMap.get(o.id);return r?(0,import_react_dom.createPortal)(r,document.body):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{})}})]}));return t.defaultProps={id:e},t};function createPortalRoot(e,t){function o(i){PortalMap.has(t)?PortalMap.set(t,i==null?void 0:i()):e&&render((0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:i==null?void 0:i()}),e)}function r(){var i;PortalMap.has(t)&&PortalMap.set(t,null),e&&unmount(e)&&e.parentNode&&((i=e.parentNode)==null||i.removeChild(e))}return{render:o,unmount:r}}const genCommonStyle=(e,t)=>{const{fontFamily:o,fontSize:r}=e,i=`[class^="${t}"], [class*=" ${t}"]`;return{[i]:{fontFamily:o,fontSize:r,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[i]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},genStyleHook=(e,t)=>o=>{const{theme:r,token:i,hashId:n}=useToken(),{getPrefixCls:a,iconPrefixCls:l}=useConfig(),c=usePrefixCls(e),u=a(),m=(0,import_cssinjs.useStyleRegister)({theme:r,token:i,hashId:n,path:["formily-antd",e,c,l]},()=>{const d=`.${c}`,p=(0,import_shared.merge)(i,{componentCls:d,prefixCls:c,iconCls:`.${l}`,antCls:`.${u}`}),g=t(p,o,{hashId:n,prefixCls:c,rootPrefixCls:u,iconPrefixCls:l});return[genCommonStyle(i,c),g]});return{wrapSSR:(0,import_react2.useMemo)(()=>m,[r,i,n,c,l,u,o]),hashId:n,componentCls:c,rootPrefixCls:u}},useSchemaInitializerStyles=genStyleHook("nb-schema-initializer",e=>{const{componentCls:t}=e;return{[t]:{".ant-menu":{background:"transparent",borderInlineEnd:"none !important"},":not(.ant-menu)":{[`${t}-group-title`]:{color:e.colorTextDescription,lineHeight:`${e.controlHeight}px`,paddingLeft:e.padding,paddingRight:e.paddingSM},[`${t}-menu-item`]:{marginInline:e.marginXXS,paddingLeft:e.padding,paddingRight:e.paddingSM,lineHeight:`${e.controlHeight}px`,color:e.colorText,[`&:not(${t}-menu-item-disabled)`]:{cursor:"pointer","&:hover":{borderRadius:e.borderRadiusSM,backgroundColor:e.colorBgTextHover}},[`&${t}-menu-item-disabled`]:{cursor:"not-allowed",color:e.colorTextDisabled}}}},[`${t}-item-content`]:{marginLeft:e.marginXS}}}),SchemaInitializerContext=(0,import_react2.createContext)({});SchemaInitializerContext.displayName="SchemaInitializerContext";const useSchemaInitializer=()=>import_react2.default.useContext(SchemaInitializerContext),SchemaInitializerItemContext=(0,import_react2.createContext)({});SchemaInitializerItemContext.displayName="SchemaInitializerItemContext";const useSchemaInitializerItem=()=>import_react2.default.useContext(SchemaInitializerItemContext),defaultWrap$1=e=>e,useWrapDefault=(e=defaultWrap$1)=>e;function withInitializer(e){return(0,import_react.observer)(t=>{const{designable:o,insertAdjacent:r}=useDesignable(),{isInSubTable:i}=useFlag()||{},{insert:n,useInsert:a,useWrap:l=useWrapDefault,wrap:c=defaultWrap$1,insertPosition:u="beforeEnd",onSuccess:m,designable:d,popoverProps:p,children:g,popover:h=!0,style:f,componentProps:_}=t,v=a?a():n,S=l(c),C=(0,import_react2.useCallback)(R=>{v?v(S(R,{isInSubTable:i})):r(u,S(R,{isInSubTable:i}),{onSuccess:m})},[v,S,i,r,u,m]),{wrapSSR:b,hashId:y,componentCls:F}=useSchemaInitializerStyles(),[j,k]=(0,import_react2.useState)(!1),{token:T}=import_antd.theme.useToken(),O=useNiceDropdownMaxHeight([j]),N=(0,import_react2.useMemo)(()=>x({options:t,style:f},_),[_,t,f]),L=(0,import_react2.useMemo)(()=>import_css.css`
|
|
18
18
|
.ant-popover-inner {
|
|
19
19
|
padding: ${`${T.paddingXXS}px 0`};
|
|
@@ -443,12 +443,12 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
443
443
|
> .ant-formily-item-label {
|
|
444
444
|
display: none;
|
|
445
445
|
}
|
|
446
|
-
`,FormItem=withDynamicSchemaProps((0,import_react.observer)(e=>{var t,o;useEnsureOperatorsValid();const
|
|
447
|
-
`).join("<br/>")}}):
|
|
446
|
+
`,FormItem=withDynamicSchemaProps((0,import_react.observer)(e=>{var t,o,r;useEnsureOperatorsValid();const i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{addActiveFieldName:a}=useFormActiveFields()||{},{wrapperStyle:l}=useDataFormItemProps();useParseDefaultValue(),useLazyLoadDisplayAssociationFieldsOfForm(),useLinkageRulesForSubTableOrSubForm(),(0,import_react2.useEffect)(()=>{a==null||a(n.name)},[a,n.name]);const c=(o=(t=n["x-decorator-props"])==null?void 0:t.showTitle)!=null?o:!0,u=(0,import_react2.useMemo)(()=>{if(i.description&&i.description!=="")return typeof i.description=="string"?(0,import_jsx_runtime.jsx)("div",{dangerouslySetInnerHTML:{__html:HTMLEncode(i.description).split(`
|
|
447
|
+
`).join("<br/>")}}):i.description},[i.description]),m=(0,import_react2.useMemo)(()=>(0,import_css.cx)(formItemWrapCss,{[formItemLabelCss]:c===!1}),[c]);return(r=i.data)!=null&&r.hidden?null:(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{allowNull:!0,children:(0,import_jsx_runtime.jsx)(BlockItem,{className:(0,import_css.cx)("nb-form-item",import_css.css`
|
|
448
448
|
.ant-formily-item-layout-horizontal .ant-formily-item-control {
|
|
449
|
-
max-width: ${
|
|
449
|
+
max-width: ${c===!1||n["x-component"]!=="CollectionField"?"100% !important":null};
|
|
450
450
|
}
|
|
451
|
-
`),children:(0,import_jsx_runtime.jsx)(ACLCollectionFieldProvider,{children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,P(x({className:
|
|
451
|
+
`),children:(0,import_jsx_runtime.jsx)(ACLCollectionFieldProvider,{children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,P(x({className:m},e),{extra:u,wrapperStyle:x(x({},l.backgroundColor?{paddingLeft:"5px",paddingRight:"5px"}:{}),l)}))})})})}),{displayName:"FormItem"});FormItem.Designer=function e(){const t=useApp(),o=`FormItemSettings:${(0,import_react.useFieldSchema)()["x-interface"]}`,r="FormItemSettings",i=t.schemaSettingsManager.has(o);return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:i?o:r})};function isFileCollection(e){return(e==null?void 0:e.template)==="file"}FormItem.FilterFormDesigner=FilterFormDesigner;const jsonCss=import_css.css`
|
|
452
452
|
font-size: 80%;
|
|
453
453
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
454
454
|
`,Json=import_react2.default.forwardRef((e,t)=>{var o=e,{value:r,onChange:i,space:n=2,json5:a=!1}=o,l=K(o,["value","onChange","space","json5"]);const c=a?import_json5.default:JSON,u=(0,import_react.useField)(),[m,d]=(0,import_react2.useState)("");return(0,import_react2.useEffect)(()=>{try{r!=null?d(c.stringify(r,null,n)):d(void 0)}catch{}},[n,r]),(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,P(x({},l),{className:(0,import_css.cx)(jsonCss,l.className),ref:t,value:m,onChange:p=>{d(p.target.value);try{const g=p.target.value.trim()!==""?c.parse(p.target.value):null;p.target.value.trim()!==""&&c.parse(p.target.value),u.setFeedback({})}catch(g){u.setFeedback({type:"error",code:"JSONSyntaxError",messages:[g.message]})}},onBlur:p=>{try{const g=p.target.value.trim()!==""?c.parse(p.target.value):null;u.setFeedback({}),i==null||i(g)}catch(g){u.setFeedback({type:"error",code:"JSONSyntaxError",messages:[g.message]})}}}))});Json.displayName="Json";const getContentWidth=e=>{if(e){const t=document.createRange();return t.selectNodeContents(e),t.getBoundingClientRect().width}},ellipsisDefaultStyle={overflow:"hidden",overflowWrap:"break-word",textOverflow:"ellipsis",whiteSpace:"nowrap",wordBreak:"break-all"},isOverflowTooltip=e=>{if(!e)return!1;const t=getContentWidth(e),o=e.offsetWidth;return t>o},popoverStyle={width:300,overflow:"auto",maxHeight:400},EllipsisWithTooltip=(0,import_react2.forwardRef)((e,t)=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),a=(0,import_react2.useRef)();(0,import_react2.useImperativeHandle)(t,()=>({setPopoverVisible:n}),[]);const l=(0,import_react2.useCallback)(u=>{const m=u.target;isOverflowTooltip(a.current)&&r(m.scrollWidth>=m.clientWidth)},[]),c=(0,import_react2.useMemo)(()=>e.ellipsis?(0,import_jsx_runtime.jsx)("div",{ref:a,role:e.role,style:ellipsisDefaultStyle,onMouseEnter:l,children:e.children}):e.children,[l,e.children,e.ellipsis,e.role]);return!e.ellipsis||!o?c:(0,import_jsx_runtime.jsx)(import_antd.Popover,{open:o&&i,onOpenChange:u=>{n(o&&u)},content:(0,import_jsx_runtime.jsx)("div",{style:popoverStyle,children:e.popoverContent||e.children}),children:c})});EllipsisWithTooltip.displayName="EllipsisWithTooltip";const ReadPretty$c=()=>null;ReadPretty$c.Input=e=>{const t=(0,import_builtins.usePrefixCls)("description-input",e),o=useCompile(),r=(0,import_react2.useMemo)(()=>e.value&&typeof e.value=="object"?JSON.stringify(e.value):o(e.value),[e.value]);return(0,import_jsx_runtime.jsxs)("div",{className:(0,import_classnames.default)(t,e.className),style:x({overflowWrap:"break-word",whiteSpace:"normal"},e.style),children:[e.addonBefore,e.prefix,e.ellipsis?(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:r}):r,e.suffix,e.addonAfter]})};const toHTML=import_lodash.default.memoize(e=>({__html:HTMLEncode(e).split(`
|
|
@@ -591,7 +591,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
591
591
|
}
|
|
592
592
|
}
|
|
593
593
|
}
|
|
594
|
-
`,TableColumnActionBar=(0,import_react.observer)(e=>{const t=useDesigner();return(0,import_jsx_runtime.jsxs)(SortableItem,{className:designerCss$3,children:[(0,import_jsx_runtime.jsx)(t,{}),e.children]})},{displayName:"TableColumnActionBar"}),useColumnSchema=()=>{const{getField:e}=useCollection_deprecated(),t=useCompile(),o=(0,import_react.useFieldSchema)(),r=o.reduceProperties((n,a)=>a["x-component"]==="CollectionField"?a:n,null);if(!r)return{};const i=e(r.name);return{columnSchema:o,fieldSchema:r,collectionField:i,uiSchema:t(i==null?void 0:i.uiSchema)}},TableColumnDecorator=e=>{const t=useDesigner(),o=(0,import_react.useField)(),{fieldSchema:r,uiSchema:i,collectionField:n}=useColumnSchema(),a=useCompile();return(0,import_react2.useEffect)(()=>{o.title||r&&i!=null&&i.title&&(o.title=i==null?void 0:i.title)},[i==null?void 0:i.title]),(0,import_jsx_runtime.jsxs)(SortableItem,{className:designerCss$3,children:[(0,import_jsx_runtime.jsx)(t,{fieldSchema:r,uiSchema:i,collectionField:n}),o.title||a(i==null?void 0:i.title)]})},previewComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Preview",items:[{name:"size",type:"select",useVisible(){var e;const{fieldSchema:t}=useColumnSchema();return((e=t==null?void 0:t.parent)==null?void 0:e["x-component"])!=="TableV2.Column"},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Size"),options:[{label:t("Large"),value:"large"},{label:t("Default"),value:"default"},{label:t("Small"),value:"small"}],value:((e=o==null?void 0:o.componentProps)==null?void 0:e.size)||"default",onChange(n){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].size=n,a["x-component-props"]=r["x-component-props"],o.componentProps=o.componentProps||{},o.componentProps.size=n,i.emit("patch",{schema:a}),i.refresh()}}}}]}),uploadAttachmentComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Upload.Attachment",items:[{name:"size",type:"select",useVisible(){var e;const{fieldSchema:t}=useColumnSchema$1(),o=((e=t==null?void 0:t.parent)==null?void 0:e["x-component"])==="TableV2.Column";return useIsFieldReadPretty()&&!o},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Size"),options:[{label:t("Large"),value:"large"},{label:t("Default"),value:"default"},{label:t("Small"),value:"small"}],value:((e=o==null?void 0:o.componentProps)==null?void 0:e.size)||"default",onChange(n){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].size=n,a["x-component-props"]=r["x-component-props"],o.componentProps=o.componentProps||{},o.componentProps.size=n,i.emit("patch",{schema:a}),i.refresh()}}}}]}),inputJSONSettings=new SchemaSettings({name:"fieldSettings:component:Input.JSON",items:[ellipsisSettingsItem]}),createSettingsItem=e=>({name:e.name,type:"select",useComponentProps(){var t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{fieldSchema:n}=useColumnSchema$1(),a=n||i,{dn:l}=useDesignable();return{title:o(e.title),options:e.options(o),value:((t=a["x-component-props"])==null?void 0:t[e.name])||e.defaultValue,onChange(c){const u={"x-uid":a["x-uid"]};a["x-component-props"]=a["x-component-props"]||{},a["x-component-props"][e.name]=c,u["x-component-props"]=a["x-component-props"],r.componentProps=r.componentProps||{},r.componentProps[e.name]=c,l.emit("patch",{schema:u})}}}}),getSizeOptions=e=>[{value:"small",label:e("Small")},{value:"middle",label:e("Middle")},{value:"large",label:e("Large")},{value:"oversized",label:e("Oversized")},{value:"auto",label:e("Auto")}],getObjectFitOptions=e=>[{value:"cover",label:e("Cover")},{value:"fill",label:e("Fill")},{value:"contain",label:e("Contain")},{value:"scale-down",label:e("Scale Down")},{value:"none",label:e("None")}],size=createSettingsItem({name:"size",title:"Size",options:getSizeOptions,defaultValue:"small"}),objectFit=createSettingsItem({name:"objectFit",title:"Object Fit",options:getObjectFitOptions,defaultValue:"cover"}),inputPreviewComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Input.Preview",items:[size,objectFit]}),inputTextAreaSettings=new SchemaSettings({name:"fieldSettings:component:Input.TextArea",items:[ellipsisSettingsItem]}),inputURLSettings=new SchemaSettings({name:"fieldSettings:component:Input.URL",items:[ellipsisSettingsItem]}),markdownSettings=new SchemaSettings({name:"fieldSettings:component:Markdown",items:[ellipsisSettingsItem]}),markdownVditorSettings=new SchemaSettings({name:"fieldSettings:component:MarkdownVditor",items:[ellipsisSettingsItem]}),richTextSettings=new SchemaSettings({name:"fieldSettings:component:RichText",items:[ellipsisSettingsItem]}),inputNumberComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:InputNumber",items:[{name:"displayFormat",Component:SchemaSettingsNumberFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}},useVisible(){return useIsFieldReadPretty()}},enableLinkSettingsItem,openModeSettingsItem]}),filterFormItemSettings=new SchemaSettings({name:"FilterFormItemSettings",items:[{name:"editFieldTitle",Component:EditTitle},{name:"editDescription",Component:EditDescription},{name:"editTooltip",Component:EditTooltip},{name:"validationRules",Component:EditValidationRules},{name:"setDataScope",Component:SchemaSettingsDataScope,useVisible(){const e=useIsSelectFieldMode(),t=useIsFormReadPretty();return e&&!t},useComponentProps(){var e,t,o;const{getCollectionJoinField:r,getAllCollectionsInheritChain:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),{form:a}=useFormBlockContext(),l=useRecord(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),m=n(u.name)||r(u["x-collection-field"]),d=useVariables$1(),p=useLocalVariables$1(),{dn:g}=useDesignable();return{collectionName:m==null?void 0:m.target,defaultFilter:((o=(t=(e=u==null?void 0:u["x-component-props"])==null?void 0:e.service)==null?void 0:t.params)==null?void 0:o.filter)||{},form:a,dynamicComponent:h=>(0,import_jsx_runtime.jsx)(VariableInput,P(x({},h),{form:a,collectionField:h.collectionField,record:l,shouldChange:getShouldChange({collectionField:h.collectionField,variables:d,localVariables:p,getAllCollectionsInheritChain:i})})),onSubmit:({filter:h})=>{h=removeNullCondition(h),import_lodash.default.set(c.componentProps,"service.params.filter",h),u["x-component-props"]=c.componentProps,g.emit("patch",{schema:{"x-uid":u["x-uid"],"x-component-props":c.componentProps}})}}}},{name:"fieldMode",Component:EditComponent},{name:"operator",Component:EditOperator},{name:"titleField",Component:EditTitleField},{name:"divider",type:"divider",useVisible(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),o=(0,import_react.useFieldSchema)();return!!(t(o.name)||e(o["x-collection-field"]))}},{name:"remove",type:"remove",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)();return{removeParentsIfNoChildren:!0,confirm:{title:e("Delete field")},breakRemoveOn:{"x-component":"Grid"}}}}]}),fieldComponent$4={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useFieldModeOptions(),i=useIsAddNewForm(),n=useFieldComponentName(),{dn:a}=useDesignable();return{title:e("Field component"),options:r,value:n,onChange(l){const c={"x-uid":o["x-uid"]};o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].mode=l,c["x-component-props"]=o["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=l,isSubMode(o)&&i&&(c.default=null,o.default=null,t.setInitialValue(null),t.setValue(null)),a.emit("patch",{schema:c}),a.refresh()}}}},allowSelectExistingRecord={name:"allowSelectExistingRecord",type:"switch",useVisible(){return!useIsFieldReadPretty()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow selection of existing records"),checked:(e=r["x-component-props"])==null?void 0:e.allowSelectExistingRecord,onChange(a){const l={"x-uid":r["x-uid"]};o.componentProps.allowSelectExistingRecord=a,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowSelectExistingRecord=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},allowDisassociation={name:"allowDisassociation",type:"switch",useVisible(){return!useIsFieldReadPretty()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow disassociation"),checked:((e=r["x-component-props"])==null?void 0:e.allowDisassociation)!==!1,onChange(a){const l={"x-uid":r["x-uid"]};o.componentProps.allowDisassociation=a,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowDisassociation=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},setDefaultSortingRules={name:"SetDefaultSortingRules",type:"modal",useComponentProps(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=o["x-collection-field"],{target:i}=e(r)||{},n=useSortFields(i),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l}=useDesignable(),c=t.componentProps.sortArr||[],u=c==null?void 0:c.map(m=>m!=null&&m.startsWith("-")?{field:m.substring(1),direction:"desc"}:{field:m,direction:"asc"});return{title:a("Set default sorting rules"),components:{ArrayItems:import_antd_v5.ArrayItems},schema:{type:"object",title:a("Set default sorting rules"),properties:{sort:{type:"array",default:u,"x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},field:{type:"string",enum:n,required:!0,"x-decorator":"FormItem","x-component":"Select","x-component-props":{style:{width:260}}},direction:{type:"string","x-decorator":"FormItem","x-component":"Radio.Group","x-component-props":{optionType:"button"},enum:[{label:a("ASC"),value:"asc"},{label:a("DESC"),value:"desc"}]},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:a("Add sort field"),"x-component":"ArrayItems.Addition"}}}}},onSubmit:({sort:m})=>{const d=m.map(p=>p.direction==="desc"?`-${p.field}`:p.field);t.componentProps.sortArr=d,o["x-component-props"].sortArr=d,l.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":o["x-component-props"]}})}}},useVisible(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),t=(0,import_react.useFieldSchema)()["x-collection-field"],{interface:o}=e(t)||{};return useIsFieldReadPretty()&&["m2m","o2m"].includes(o)}},allowAddNewData={name:"allowAddNewData",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField();return!e&&t},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow add new"),checked:((e=r["x-component-props"])==null?void 0:e.allowAddnew)!==!1,onChange(a){const l={"x-uid":r["x-uid"]};o.componentProps.allowAddnew=a,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowAddnew=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},LinkageRulesComponent=withDynamicSchemaProps(e=>(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:!0,children:(0,import_jsx_runtime.jsx)(FormLinkageRules,x({},e))}),{displayName:"LinkageRulesComponent"}),linkageRules={name:"linkageRules",Component:SchemaSettingsLinkageRules,useComponentProps(){const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useCollectionManager().getCollectionField(t["x-collection-field"]),{rerenderDataBlock:r}=useRerenderDataBlock();return{collectionName:o==null?void 0:o.target,Component:LinkageRulesComponent,readPretty:e.readPretty,afterSubmit:r}}},recordPerPage={name:"recordsPerPage",type:"select",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useFieldSchema)(),r=(0,import_react.useField)(),{dn:i}=useDesignable(),n=[10,20,50,100];return{title:t("Records per page"),value:((e=r.componentProps)==null?void 0:e.pageSize)||10,options:n.map(a=>({value:a})),onChange:a=>{const l={"x-uid":o["x-uid"]};r.componentProps=r.componentProps||{},r.componentProps.pageSize=a,o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].pageSize=a,l["x-component-props"]=o["x-component-props"],i.emit("patch",{schema:l})}}}},subTablePopoverComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:SubTable",items:[fieldComponent$4,allowAddNewData,allowSelectExistingRecord,allowDisassociation,setDefaultSortingRules,linkageRules,recordPerPage]}),allowMultiple$2={name:"allowMultiple",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useCollectionField();return!e&&["hasMany","belongsToMany"].includes(t==null?void 0:t.type)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=a,o.componentProps.multiple=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},fieldComponent$3={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useFieldModeOptions(),i=useIsAddNewForm(),n=useFieldComponentName(),{dn:a}=useDesignable();return{title:e("Field component"),options:r,value:n,onChange(l){const c={"x-uid":o["x-uid"]};o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].mode=l,c["x-component-props"]=o["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=l,isSubMode(o)&&i&&(c.default=null,o.default=null,t.setInitialValue(null),t.setValue(null)),a.emit("patch",{schema:c}),a.refresh()}}}},subformComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Nester",items:[fieldComponent$3,allowMultiple$2,{name:"allowDissociate",type:"switch",useVisible(){const{type:e}=useFormBlockType();return!useIsFormReadPretty()&&e==="update"},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow dissociate"),checked:((e=r["x-component-props"])==null?void 0:e.allowDissociate)!==!1,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].allowDissociate=a,o.componentProps.allowDissociate=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},setDefaultSortingRules,linkageRules,{name:"setBlockLayout",Component:SchemaSettingsLayoutItem}]}),allowMultiple$1={name:"allowMultiple",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useCollectionField();return!e&&["hasMany","belongsToMany","belongsToArray"].includes(t==null?void 0:t.type)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=a,o.componentProps.multiple=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},fieldComponent$2={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=useIsAddNewForm(),r=useFieldComponentName(),{fieldSchema:i,collectionField:n}=useColumnSchema$1(),a=(0,import_react.useFieldSchema)(),l=i||a,c=useFieldModeOptions({fieldSchema:i,collectionField:n}),{dn:u}=useDesignable();return{title:e("Field component"),options:c,value:r,onChange(m){var d,p;const g={"x-uid":l["x-uid"]};l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].mode=m,g["x-component-props"]=l["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=m,isSubMode(l)&&o&&(g.default=null,l.default=null,(d=t==null?void 0:t.setInitialValue)==null||d.call(t,null),(p=t==null?void 0:t.setValue)==null||p.call(t,null)),u.emit("patch",{schema:g}),u.refresh()}}}},recordPickerComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Picker",items:[fieldComponent$2,{name:"popupSize",type:"select",useVisible(){return!useIsFieldReadPretty()},useComponentProps(){var e,t,o;const{t:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_react.useField)(),{fieldSchema:n}=useColumnSchema$1(),a=(0,import_react.useFieldSchema)(),l=n||a,{dn:c}=useDesignable();return{title:r("Popup size"),options:[{label:r("Small"),value:"small"},{label:r("Middle"),value:"middle"},{label:r("Large"),value:"large"}],value:(o=(e=l==null?void 0:l["x-component-props"])==null?void 0:e.openSize)!=null?o:((t=l==null?void 0:l["x-component-props"])==null?void 0:t.openMode)=="modal"?"large":"middle",onChange:u=>{i.componentProps.openSize=u,l["x-component-props"]=P(x({},l["x-component-props"]),{openSize:u}),c.emit("patch",{schema:{"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]}}),c.refresh()}}}},allowAddNew,allowMultiple$1,titleField$1]}),allowMultiple={name:"allowMultiple",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useCollectionField();return!e&&["hasMany","belongsToMany"].includes(t==null?void 0:t.type)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=a,o.componentProps.multiple=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},fieldComponent$1={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),{fieldSchema:o,collectionField:r}=useColumnSchema$1(),i=(0,import_react.useFieldSchema)(),n=o||i,a=useFieldModeOptions({fieldSchema:o,collectionField:r}),{dn:l}=useDesignable(),c=useIsAddNewForm(),u=useFieldComponentName();return{title:e("Field component"),options:a,value:u,onChange(m){const d={"x-uid":n["x-uid"]};n["x-component-props"]=n["x-component-props"]||{},n["x-component-props"].mode=m,d["x-component-props"]=n["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=m,isSubMode(n)&&c&&(d.default=null,n.default=null,t.setInitialValue(null),t.setValue(null)),l.emit("patch",{schema:d}),l.refresh()}}}},subformPopoverComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:PopoverNester",items:[fieldComponent$1,allowMultiple,titleField$1,linkageRules,{name:"setBlockLayout",Component:SchemaSettingsLayoutItem}]}),enableLink={name:"enableLink",type:"switch",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),{fieldSchema:r}=useColumnSchema$1(),i=(0,import_react.useFieldSchema)(),n=r||i,{dn:a}=useDesignable();return{title:t("Enable link"),checked:((e=n["x-component-props"])==null?void 0:e.enableLink)!==!1,onChange(l){n["x-component-props"]=P(x({},n==null?void 0:n["x-component-props"]),{enableLink:l}),o.componentProps.enableLink=l,a.emit("patch",{schema:{"x-uid":n["x-uid"],"x-component-props":x({},n==null?void 0:n["x-component-props"])}})}}}},titleField={name:"titleField",type:"select",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),{fieldSchema:i,collectionField:n}=useColumnSchema$1(),a=(0,import_react.useFieldSchema)(),l=i||a,c=useTitleFieldOptions(),u=useCollectionField(),m=n||u,{dn:d}=useDesignable();return{title:o("Title field"),options:c,value:(t=(e=l==null?void 0:l["x-component-props"])==null?void 0:e.fieldNames)==null?void 0:t.label,onChange(p){var g,h;const f={"x-uid":l["x-uid"]},_=P(x(x({},(h=(g=m==null?void 0:m.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:h.fieldNames),r.componentProps.fieldNames),{label:p});l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].fieldNames=_,f["x-component-props"]=l["x-component-props"],r.componentProps.fieldNames=l["x-component-props"].fieldNames,d.emit("patch",{schema:f}),d.refresh()}}}},fieldComponent={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=useIsAddNewForm(),{fieldSchema:r,collectionField:i}=useColumnSchema$1(),n=useFieldModeOptions({fieldSchema:r,collectionField:i}),a=(0,import_react.useFieldSchema)(),l=r||a,c=useFieldComponentName(),{dn:u}=useDesignable();return{title:e("Field component"),options:n,value:c,onChange(m){const d={"x-uid":l["x-uid"]};l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].mode=m,d["x-component-props"]=l["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=m,isSubMode(l)&&o&&(d.default=null,l.default=null,t.setInitialValue(null),t.setValue(null)),u.emit("patch",{schema:d}),u.refresh()}}}},tagComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Tag",items:[fieldComponent,{name:"tagColorField",type:"select",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),n=useCollectionField(),{fieldSchema:a,collectionField:l}=useColumnSchema$1(),c=a||i,u=l||n,{dn:m}=useDesignable(),d=useColorFields((e=u==null?void 0:u.target)!=null?e:u==null?void 0:u.targetCollection);return{title:o("Tag color field"),options:d,value:(t=c==null?void 0:c["x-component-props"])==null?void 0:t.tagColorField,onChange(p){const g={"x-uid":c["x-uid"]};c["x-component-props"]=c["x-component-props"]||{},c["x-component-props"].tagColorField=p,g["x-component-props"]=c["x-component-props"],r.componentProps.tagColorField=p,m.emit("patch",{schema:g}),m.refresh()}}}},titleField,enableLink,ellipsisSettingsItem]}),unixTimestampComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:UnixTimestamp",items:[{name:"dateDisplayFormat",Component:SchemaSettingsDateFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}},enableLinkSettingsItem,openModeSettingsItem]});function GroupTitleEditor(e){const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r}=useDesignable(),{t:i}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:i("Edit group title"),schema:{type:"object",title:i("Edit group title"),properties:{children:{"x-decorator":"FormItem","x-component":"Input",title:i("Group title"),default:t.componentProps.children,"x-component-props":{}}}},onSubmit:({children:n})=>{t.componentProps.children=n,o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].children=n,r.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":x({},o["x-component-props"])}}),r.refresh()}})}const dividerSettings=new SchemaSettings({name:"blockSettings:divider",items:[{name:"editTitle",type:"item",Component:GroupTitleEditor},{name:"orientation",type:"select",useComponentProps(){var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable();return{title:r("Title position"),value:((e=t.componentProps)==null?void 0:e.orientation)||"left",options:[{label:r("Left"),value:"left"},{label:r("Center"),value:"center"},{label:r("Right"),value:"right"}],onChange:n=>{t.componentProps=t.componentProps||{},t.componentProps.orientation=n,o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].orientation=n,i.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":o["x-component-props"]}})}}}},{name:"dashed",type:"switch",useComponentProps:()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable();return{title:o("Dashed"),defaultChecked:!0,checked:e.componentProps.dashed,onChange:i=>{e.componentProps.dashed=i,t["x-component-props"].dashed=i,i===!1&&(t["x-component-props"].dashed=!1),r.emit("patch",{schema:t}),r.refresh()}}}},{name:"color",type:"item",useComponentProps:()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[e("Color"),(0,import_jsx_runtime.jsx)("div",{style:{float:"right"},children:(0,import_jsx_runtime.jsx)(ColorPicker,{defaultValue:o.componentProps.color||"rgba(0, 0, 0, 0.88)",onChange:i=>{o.componentProps=o.componentProps||{},o.componentProps.color=i,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].color=i,t.emit("patch",{schema:r}),t.refresh()}})})]})}}},{name:"borderColor",type:"item",useComponentProps:()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[e("Divider line color"),(0,import_jsx_runtime.jsx)("div",{style:{float:"right"},children:(0,import_jsx_runtime.jsx)(ColorPicker,{defaultValue:o.componentProps.borderColor||"rgba(5, 5, 5, 0.06)",onChange:i=>{o.componentProps=o.componentProps||{},o.componentProps.borderColor=i,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].borderColor=i,t.emit("patch",{schema:r}),t.refresh()}})})]})}}},{name:"delete",type:"remove",useComponentProps(){return{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}}]});class SchemaSettingsPlugin extends Plugin{load(){return q(this,null,function*(){this.schemaSettingsManager.add(tableBlockSettings),this.schemaSettingsManager.add(createFormBlockSettings),this.schemaSettingsManager.add(editFormBlockSettings),this.schemaSettingsManager.add(filterFormBlockSettings),this.schemaSettingsManager.add(filterFormItemFieldSettings),this.schemaSettingsManager.add(multiDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsWithPaginationSettings),this.schemaSettingsManager.add(singleDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsBlockSettings),this.schemaSettingsManager.add(tableSelectorBlockSettings),this.schemaSettingsManager.add(listBlockSettings),this.schemaSettingsManager.add(gridCardBlockSettings),this.schemaSettingsManager.add(filterCollapseBlockSettings),this.schemaSettingsManager.add(markdownBlockSettings),this.schemaSettingsManager.add(addNewActionSettings),this.schemaSettingsManager.add(filterActionSettings),this.schemaSettingsManager.add(refreshActionSettings),this.schemaSettingsManager.add(viewActionSettings),this.schemaSettingsManager.add(editActionSettings),this.schemaSettingsManager.add(deleteActionSettings),this.schemaSettingsManager.add(disassociateActionSettings),this.schemaSettingsManager.add(associateActionSettings),this.schemaSettingsManager.add(bulkDeleteActionSettings),this.schemaSettingsManager.add(customizeAddRecordActionSettings),this.schemaSettingsManager.add(customizePopupActionSettings),this.schemaSettingsManager.add(customizeLinkActionSettings),this.schemaSettingsManager.add(customizeUpdateRecordActionSettings),this.schemaSettingsManager.add(createSubmitActionSettings),this.schemaSettingsManager.add(updateSubmitActionSettings),this.schemaSettingsManager.add(submitActionSettings),this.schemaSettingsManager.add(customizeSaveRecordActionSettings),this.schemaSettingsManager.add(addChildActionSettings),this.schemaSettingsManager.add(expendableActionSettings),this.schemaSettingsManager.add(fieldSettingsFormItem),this.schemaSettingsManager.add(tableColumnSettings),this.schemaSettingsManager.add(filterCollapseItemFieldSettings),this.schemaSettingsManager.add(selectComponentFieldSettings),this.schemaSettingsManager.add(filterSelectComponentFieldSettings),this.schemaSettingsManager.add(recordPickerComponentFieldSettings),this.schemaSettingsManager.add(subformComponentFieldSettings),this.schemaSettingsManager.add(subformPopoverComponentFieldSettings),this.schemaSettingsManager.add(subTablePopoverComponentFieldSettings),this.schemaSettingsManager.add(datePickerComponentFieldSettings),this.schemaSettingsManager.add(rangePickerPickerComponentFieldSettings),this.schemaSettingsManager.add(unixTimestampComponentFieldSettings),this.schemaSettingsManager.add(inputNumberComponentFieldSettings),this.schemaSettingsManager.add(inputComponentSettings),this.schemaSettingsManager.add(inputURLSettings),this.schemaSettingsManager.add(inputTextAreaSettings),this.schemaSettingsManager.add(inputJSONSettings),this.schemaSettingsManager.add(markdownSettings),this.schemaSettingsManager.add(markdownVditorSettings),this.schemaSettingsManager.add(richTextSettings),this.schemaSettingsManager.add(fileManagerComponentFieldSettings),this.schemaSettingsManager.add(tagComponentFieldSettings),this.schemaSettingsManager.add(cascadeSelectComponentFieldSettings),this.schemaSettingsManager.add(inputPreviewComponentFieldSettings),this.schemaSettingsManager.add(uploadAttachmentComponentFieldSettings),this.schemaSettingsManager.add(previewComponentFieldSettings),this.schemaSettingsManager.add(dividerSettings)})}}const useBuiltInVariables=()=>{const{currentUserCtx:e}=useCurrentUserVariable(),{currentRoleCtx:t}=useCurrentRoleVariable(),{apiTokenCtx:o}=useAPITokenVariable(),{datetimeCtx:r}=useDatetimeVariable(),{urlSearchParamsCtx:i,name:n,defaultValue:a}=useURLSearchParamsVariable();return{builtinVariables:(0,import_react2.useMemo)(()=>[{name:"$user",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nRole",ctx:t,collectionName:"roles"},{name:"$nToken",ctx:o},{name:"currentUser",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nDate",ctx:r},{name:"$date",ctx:r},{name:"$system",ctx:{now:()=>(0,import_client.dayjs)().toISOString()}},{name:"currentTime",ctx:()=>(0,import_client.dayjs)().toISOString()},{name:n,ctx:i,defaultValue:a}],[t,e,r,a,i,n])}},filterEmptyValues=e=>Array.isArray(e)?e.filter(t=>t===0||t===!1||t):e,TYPE_TO_ACTION={hasMany:"list?pageSize=9999",belongsTo:"get",hasOne:"get",belongsToMany:"list?pageSize=9999",belongsToArray:"get"},getAction=e=>TYPE_TO_ACTION[e],requested={},hasRequested=e=>!!requested[e],getRequested=e=>requested[e],stashRequested=(e,t)=>{requested[e]=t},clearRequested=e=>{delete requested[e]},uniq=e=>!Array.isArray(e)||!import_lodash.default.isObject(e[0])?e:import_lodash.default.uniqBy(e,t=>"id"in t?t.id:JSON.stringify(t)),VariablesContext=(0,import_react2.createContext)(null);VariablesContext.displayName="VariablesContext";const variablesStore={},getFieldPath=(e,t)=>{let o,r;return{fieldPath:e.split(".").map(i=>t[i]?(o=t[i].dataSource,r=t[i],t[i].collectionName):i).join("."),dataSource:o,variableOption:r}},VariablesProvider=({children:e,filterVariables:t})=>{const o=(0,import_react2.useRef)({}),r=useAPIClient(),{getCollectionJoinField:i,getCollection:n}=useCollectionManager_deprecated(),a=useCompile(),{builtinVariables:l}=useBuiltInVariables(),c=(0,import_react2.useCallback)(_=>{import_lodash.default.isFunction(_)?o.current=_(o.current):o.current=_},[]),u=(0,import_react2.useCallback)((_,v,S)=>q(void 0,null,function*(){var C,b;const y=_.split("."),F=y[0],j=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v);let k=mergeCtxWithLocalVariables(o.current,v);const{fieldPath:T,dataSource:O,variableOption:N}=getFieldPath(F,j);let L=T;const{fieldPath:D}=getFieldPath(_,j),R=y.length===1?N==null?void 0:N.collectionName:(C=i(D,O))==null?void 0:C.target;if(!(F in k))throw new Error(`VariablesProvider: ${F} is not found`);for(let w=0;w<y.length;w++){if(k==null)return{value:k===void 0?N==null?void 0:N.defaultValue:k,dataSource:O,collectionName:R};const I=y[w],{fieldPath:M}=getFieldPath(y.slice(0,w+1).join("."),j),B=i(M,O),z=(b=n(L,O))==null?void 0:b.getPrimaryKey();if(Array.isArray(k)){const E=k.map(V=>{if(!(S!=null&&S.doNotRequest)&&shouldToRequest(V==null?void 0:V[I])&&(V==null?void 0:V[z])!=null&&B!=null&&B.target){const U=`/${L}/${V[B.sourceKey||z]}/${I}:${getAction(B.type)}`;if(hasRequested(U))return getRequested(U);const G=r.request({headers:getDataSourceHeaders(O),url:U,params:{appends:S==null?void 0:S.appends}}).then(W=>(clearRequested(U),V[I]=W.data.data,V[I]));return stashRequested(U,G),G}return V==null?void 0:V[I]});k=removeThroughCollectionFields(import_lodash.default.flatten(yield Promise.all(E)),B)}else if(!(S!=null&&S.doNotRequest)&&shouldToRequest(k[I])&&k[z]!=null&&B!=null&&B.target){const E=`/${L}/${k[B.sourceKey||z]}/${I}:${getAction(B.type)}`;let V=null;if(hasRequested(E))V=yield getRequested(E);else{const U=r.request({headers:getDataSourceHeaders(O),url:E,params:{appends:S==null?void 0:S.appends}});stashRequested(E,U),V=yield U,clearRequested(E)}(0,import_reactive.raw)(k)[I]||((0,import_reactive.raw)(k)[I]=V.data.data),k=removeThroughCollectionFields((0,import_client.getValuesByPath)(k,I),B)}else k=removeThroughCollectionFields((0,import_client.getValuesByPath)(k,I),B);B!=null&&B.target&&(L=B.target)}const $=a(import_lodash.default.isFunction(k)?k({fieldOperator:S==null?void 0:S.fieldOperator,isParsingVariable:!0}):k);return{value:$===void 0?N.defaultValue:$,dataSource:O,collectionName:R}}),[i]),m=(0,import_react2.useCallback)(_=>{if(!isVariable(`{{${_.name}}}`))throw new Error(`VariablesProvider: ${_.name} is not a valid name`);c(v=>P(x({},v),{[_.name]:_.ctx})),variablesStore[_.name]=P(x({},_),{defaultValue:import_lodash.default.has(_,"defaultValue")?_.defaultValue:null})},[c]),d=(0,import_react2.useCallback)(_=>o.current[_]?x({},variablesStore[_]):null,[]),p=(0,import_react2.useCallback)(_=>{c(v=>{const S=x({},v);return delete S[_],S}),delete variablesStore[_]},[c]),g=(0,import_react2.useCallback)((_,v,S)=>q(void 0,null,function*(){if(!isVariable(_))return _;v&&(v=import_lodash.default.isArray(v)?v:[v]);const C=getPath(_),b=yield u(C,v,S);return P(x({},b),{value:uniq(filterEmptyValues(b.value))})}),[u]),h=(0,import_react2.useCallback)((_,v)=>q(void 0,null,function*(){var S;if(!isVariable(_))throw new Error(`VariablesProvider: ${_} is not a variable string`);v&&(v=import_lodash.default.isArray(v)?v:[v]);const C=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v),b=getPath(_),{fieldPath:y,dataSource:F}=getFieldPath(b,C);let j=i(y,F);return!j&&!b.includes(".")&&(j={target:(S=C[b])==null?void 0:S.collectionName}),j}),[i]);(0,import_react2.useEffect)(()=>{l.forEach(_=>{m(P(x({},_),{defaultValue:import_lodash.default.has(_,"defaultValue")?_.defaultValue:null}))})},[l,m]);const f=(0,import_react2.useMemo)(()=>({ctxRef:o,setCtx:c,parseVariable:g,registerVariable:m,getVariable:d,getCollectionField:h,removeVariable:p,filterVariables:t}),[h,d,g,m,p,c]);return(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:f,children:e})};VariablesProvider.displayName="VariablesProvider";const VariablesProvider$1=VariablesProvider;function shouldToRequest(e){let t=!1;return(0,import_reactive.untracked)(()=>{if(JSON.stringify(e)==="[{}]"||JSON.stringify(e)==="{}"){t=!0;return}t=import_lodash.default.isEmpty(e)}),t}function mergeCtxWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=o.ctx}),e}function mergeVariableToCollectionNameWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=P(x({},o),{defaultValue:import_lodash.default.has(o,"defaultValue")?o.defaultValue:null})}),e}function removeThroughCollectionFields(e,t){return!(t!=null&&t.through)||!e?e:Array.isArray(e)?e.map(o=>import_lodash.default.omit(o,t.through)):import_lodash.default.omit(e,t.through)}const mergeChildren=(e,t)=>{if(!(!e&&!t)&&!(0,import_shared.isFn)(e))return(0,import_jsx_runtime.jsxs)(import_react2.Fragment,{children:[e,t]})},isValidComponent=e=>e&&(typeof e=="object"||typeof e=="function"),renderChildren=(e,t,o)=>(0,import_shared.isFn)(e)?e(t,o):e,NocoBaseReactiveInternal=e=>{var t;const o=(0,import_react2.useContext)(import_react.SchemaComponentsContext),r=e.field,i=mergeChildren(renderChildren(e.children,r,r.form),(t=r.content)!=null?t:r.componentProps.children);if(r.display!=="visible")return null;const n=a=>{var l;return isValidComponent(a)?a:(l=import_shared.FormPath.getIn(o,a))!=null?l:a};return(a=>r.decoratorType?import_react2.default.createElement(n(r.decoratorType),r.decoratorProps,a):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:a}))(r.componentType?import_react2.default.createElement(n(r.componentType),P(x({},r.componentProps),{value:r.value}),i):i)};NocoBaseReactiveInternal.displayName="NocoBaseReactiveInternal";const NocoBaseReactiveField=NocoBaseReactiveInternal;NocoBaseReactiveField.displayName="NocoBaseReactiveField";function createNocoBaseField(e){return new NocoBaseField$1(e)}let NocoBaseField$1=class{constructor(e){A(this,"props"),A(this,"initialized"),A(this,"loading"),A(this,"validating"),A(this,"submitting"),A(this,"selfModified"),A(this,"active"),A(this,"visited"),A(this,"mounted"),A(this,"unmounted"),A(this,"inputValues"),A(this,"inputValue"),A(this,"feedbacks"),A(this,"title"),A(this,"description"),A(this,"display"),A(this,"pattern"),A(this,"editable"),A(this,"disabled"),A(this,"readOnly"),A(this,"readPretty"),A(this,"visible"),A(this,"hidden"),A(this,"dataSource"),A(this,"validator"),A(this,"required"),A(this,"content"),A(this,"initialValue"),A(this,"value"),A(this,"data"),A(this,"decorator"),A(this,"component"),A(this,"decoratorProps"),A(this,"componentProps"),A(this,"decoratorType"),A(this,"componentType"),A(this,"path"),A(this,"form"),A(this,"address"),this.props=e,this.initialize()}initialize(){var e,t,o,r,i,n,a,l,c,u,m,d,p,g,h,f,_,v,S,C;const b=this.props.compile;this.pattern="readPretty",this.readPretty=!0,this.initialized=!0,this.loading=!1,this.validating=!1,this.submitting=!1,this.selfModified=!1,this.active=!1,this.visited=!0,this.mounted=!0,this.unmounted=!1,this.inputValues=[],this.inputValue=null,this.feedbacks=[],this.title=b(this.props.title||((e=this.props.schema)==null?void 0:e.title)),this.description=b(this.props.description||((t=this.props.schema)==null?void 0:t.description)),this.display="visible",this.editable=this.props.editable||((o=this.props.schema)==null?void 0:o["x-editable"]),this.disabled=this.props.disabled||((r=this.props.schema)==null?void 0:r["x-disabled"]),this.readOnly=this.props.readOnly||((i=this.props.schema)==null?void 0:i["x-read-only"]),this.visible=this.props.visible||((n=this.props.schema)==null?void 0:n["x-visible"]),this.hidden=this.props.hidden||((a=this.props.schema)==null?void 0:a["x-hidden"]),this.dataSource=b(this.props.dataSource||((l=this.props.schema)==null?void 0:l.enum)),this.validator=this.props.validator,this.required=this.props.required||!!((c=this.props.schema)!=null&&c.required),this.content=b(this.props.content||((u=this.props.schema)==null?void 0:u["x-content"])),this.initialValue=b(this.props.initialValue||((m=this.props.schema)==null?void 0:m.default)),this.value=b(this.props.value),this.data=this.props.data||((d=this.props.schema)==null?void 0:d["x-data"]),this.decorator=this.props.decorator?(0,import_shared.toArr)(this.props.decorator):[(p=this.props.schema)==null?void 0:p["x-decorator"],(g=this.props.schema)==null?void 0:g["x-decorator-props"]],this.component=this.props.component?(0,import_shared.toArr)(this.props.component):[(h=this.props.schema)==null?void 0:h["x-component"],(f=this.props.schema)==null?void 0:f["x-component-props"]],this.decoratorProps=((_=this.props.schema)==null?void 0:_["x-decorator-props"])||{},this.componentProps=((v=this.props.schema)==null?void 0:v["x-component-props"])||{},this.decoratorType=(S=this.props.schema)==null?void 0:S["x-decorator"],this.componentType=(C=this.props.schema)==null?void 0:C["x-component"],this.path={},this.form={},this.address={concat:import_lodash.default.noop}}};const NocoBaseField=e=>{const t=useCompile(),o=(0,import_react.useFieldSchema)(),r=(0,import_react2.useMemo)(()=>createNocoBaseField(P(x({},e),{compile:t})),[]);return Object.assign(r.componentProps,o["x-component-props"]),r.value=e.value,(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:r,children:(0,import_jsx_runtime.jsx)(NocoBaseReactiveField,{field:r,children:e.children})})},CollectionFieldUISchemaContext=import_react2.default.createContext({}),RefreshFieldSchemaContext=import_react2.default.createContext(import_lodash.default.noop),RefreshFieldSchemaProvider=({children:e,refresh:t})=>{const o=useRefreshFieldSchema(),r=(0,import_react2.useCallback)(i=>{t(),i!=null&&i.refreshParentSchema&&(o==null||o())},[o,t]);return(0,import_jsx_runtime.jsx)(RefreshFieldSchemaContext.Provider,{value:r,children:e})},RefreshComponentContext=import_react2.default.createContext(import_lodash.default.noop),RefreshComponentProvider=({children:e,refresh:t})=>(0,import_jsx_runtime.jsx)(RefreshComponentContext.Provider,{value:t,children:e}),useRefreshComponent=()=>import_react2.default.useContext(RefreshComponentContext),useRefreshFieldSchema=()=>import_react2.default.useContext(RefreshFieldSchemaContext),useCollectionFieldUISchema=()=>import_react2.default.useContext(CollectionFieldUISchemaContext)||{},CollectionFieldUISchemaProvider=e=>{const{children:t,fieldSchema:o}=e,r=useCollection(),i=useCollectionManager(),n=o==null?void 0:o.name,a=(0,import_react2.useMemo)(()=>{var l;if(!r)return null;const c=(l=o==null?void 0:o["x-component-props"])==null?void 0:l.field;return i.getCollectionField(o==null?void 0:o["x-collection-field"])||c||r.getField((c==null?void 0:c.name)||n)},[r,i,o,n]);return(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:a,children:t})},toFieldProps=import_lodash.default.memoize((e,t)=>e.toFieldProps({scope:t})),useFieldProps$1=e=>{const t=(0,import_react.useExpressionScope)();return toFieldProps(e,t)},useBasePath=e=>{var t;const o=(0,import_react.useField)();return e.onlyRenderProperties?e.basePath||((t=o==null?void 0:o.address)==null?void 0:t.concat(e.name)):e.basePath||(o==null?void 0:o.address)},createMergedSchemaInstance=(e,t,o)=>{const r=e.toJSON();if(o){if(!r.properties)return e;const i=Object.keys(r.properties)[0],n=Object.values(r.properties)[0];return r.properties[i]=(0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),n),new import_react.Schema(r)}return new import_react.Schema((0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),r))},propertiesToReactElement=({schema:e,field:t,basePath:o,mapProperties:r,filterProperties:i,propsRecursion:n,values:a,isUseFormilyField:l})=>{const c=import_react.Schema.getOrderProperties(e);return c.length?(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:c.map(({schema:u,key:m},d)=>{const p=(t==null?void 0:t.address)||o;let g=u;if((0,import_shared.isFn)(r)){const f=r(u,m);f&&(g=f)}if((0,import_shared.isFn)(i)&&i(g,m)===!1)return null;const h=(0,import_shared.isBool)(n)&&n?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{propsRecursion:!0,filterProperties:i,mapProperties:r,schema:g,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l}):(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:g,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l});return g["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaProvider,{fieldSchema:g,children:h})},`${d}-${m}`):(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:EMPTY_OBJECT,children:h})},`${d}-${m}`)})}):null},IsInNocoBaseRecursionFieldContext=import_react2.default.createContext(!1),useIsInNocoBaseRecursionFieldContext=()=>import_react2.default.useContext(IsInNocoBaseRecursionFieldContext),NocoBaseRecursionField=import_react2.default.memo(e=>{const{schema:t,name:o,onlyRenderProperties:r,onlyRenderSelf:i,mapProperties:n,filterProperties:a,propsRecursion:l,values:c,isUseFormilyField:u=!0,uiSchema:m}=e,d=useBasePath(e),p=(0,import_react2.useRef)(null),g=(0,import_react2.useMemo)(()=>(p.current=null,new import_react.Schema(t)),[t]),{uiSchema:h,defaultValue:f}=useCollectionFieldUISchema(),_=(0,import_ahooks.useUpdate)(),{onChange:v}=(0,import_react2.useContext)(SchemaComponentOnChangeContext),S=p.current||g,C=(0,import_react2.useCallback)(()=>{const k=S.parent;p.current=new import_react.Schema(S.toJSON(),k),k!=null&&k.properties&&Object.keys(k.properties).forEach(T=>{T===S.name&&(k.properties[T]=p.current)}),_(),v==null||v()},[S,v,_]),b=(0,import_react2.useMemo)(()=>m?createMergedSchemaInstance(S,m,r):h?(h.default=f,createMergedSchemaInstance(S,h,r)):S,[h,f,S,r,m]),y=useFieldProps$1(b),F=k=>{if(!i)return propertiesToReactElement({schema:S,field:k,basePath:d,mapProperties:n,filterProperties:a,propsRecursion:l,values:c,isUseFormilyField:u})},j=()=>(0,import_shared.isValid)(o)?b.type==="object"?r?F():(0,import_jsx_runtime.jsx)(import_react.ObjectField,P(x({},y),{name:o,basePath:d,children:F})):b.type==="array"?(0,import_jsx_runtime.jsx)(import_react.ArrayField,P(x({},y),{name:o,basePath:d})):b.type==="void"?r?F():(0,import_jsx_runtime.jsx)(import_react.VoidField,P(x({},y),{name:o,basePath:d,children:F})):u?(0,import_jsx_runtime.jsx)(import_react.Field,P(x({},y),{name:o,basePath:d})):(0,import_jsx_runtime.jsx)(NocoBaseField,{name:o,value:c,initialValue:c,basePath:d,schema:b}):F();return S?(0,import_jsx_runtime.jsx)(import_react.SchemaContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(RefreshFieldSchemaProvider,{refresh:C,children:j()})}):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{})});NocoBaseRecursionField.displayName="NocoBaseRecursionField";const 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.5.0",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.1.4","@ant-design/pro-layout":"^7.16.11","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"^0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^5.0.1","@dnd-kit/modifiers":"^6.0.0","@dnd-kit/sortable":"^6.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.1.9","@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.5.0","@nocobase/sdk":"1.5.0","@nocobase/utils":"1.5.0",ahooks:"^3.7.2",antd:"5.12.8","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",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",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:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","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){A(this,"current"),A(this,"options"),A(this,"appVersion"),A(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:m,removed:d}){var p;let g=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(g=g.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(g=g.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const h=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});g.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:g})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["x-uid"]}`,method:"post"})),n==null||n((p=h==null?void 0:h.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,m=0;this.current.parent.mapProperties((f,_)=>{_===this.current.name&&(m=u,c=!0,++u),f["x-index"]=u,++u,c&&(l[_]=f,this.current.parent.removeProperty(_))}),this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p["x-index"]=m,p.parent=this.current.parent,this.current.parent.setProperties(l);const[g,h]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:h,wrapped:d,wrap:g},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((g,h)=>{g["x-index"]=c,++c,l[h]=g}),this.current.properties={},this.prepareProperty(t);const u=i(t),m=this.current.addProperty(u.name||(0,import_shared.uid)(),u);m["x-index"]=0,m.parent=this.current,this.current.setProperties(l);const[d,p]=splitWrapSchema(m,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:d,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,m]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:m,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 m={};if(this.current.parent.mapProperties((f,_)=>{f["x-index"]=l,_===this.current.name&&(++l,c=l,u=!0),++l,u&&_!==this.current.name&&(m[_]=f,this.current.parent.removeProperty(_))}),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 d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(m);const[g,h]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:h,wrap:g,wrapped:d},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(),m=(0,import_react2.useCallback)(_=>{o==null||o(),l(),c==null||c(_),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),g=useAPIClient(),{t:h}=(0,import_react_i18next.useTranslation)(),f=(0,import_react2.useMemo)(()=>createDesignable({t:h,api:g,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[h,g,m,p,d]);return(0,import_react2.useEffect)(()=>{f.loadAPIClientEvents()},[f]),{dn:f,designable:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(_=>{var v;if(!_)return null;if(typeof _!="string")return _;const S=(0,import_get.default)(n,_);return(v=S[LAZY_COMPONENT_KEY])!=null?v:S},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((_,v)=>{const S=C=>{Object.keys(C).forEach(b=>{const y=C[b];b==="title"&&(d.title=y,p.title=y),b==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(y).forEach(F=>{d.decoratorProps[F]=y[F],p["x-decorator-props"][F]=y[F]})),b==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(y).forEach(F=>{d.componentProps[F]=y[F],p["x-component-props"][F]=y[F]}))})};if(typeof _=="string"){const C={};return(0,import_set.default)(C,_,v),S(C)}S(_),m()},[f]),shallowMerge:(0,import_react2.useCallback)(_=>{f.shallowMerge(_)},[f]),deepMerge:(0,import_react2.useCallback)(_=>{f.deepMerge(_)},[f]),remove:(0,import_react2.useCallback)((_,v)=>{f.remove(_,v)},[f]),insertAdjacent:(0,import_react2.useCallback)((_,v,S)=>{f.insertAdjacent(_,v,S)},[f]),insertBeforeBegin:(0,import_react2.useCallback)(_=>{f.insertBeforeBegin(_)},[f]),insertAfterBegin:(0,import_react2.useCallback)(_=>{f.insertAfterBegin(_)},[f]),insertBeforeEnd:(0,import_react2.useCallback)(_=>{f.insertBeforeEnd(_)},[f]),insertAfterEnd:(0,import_react2.useCallback)(_=>{f.insertAfterEnd(_)},[f])}}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=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])},getPageHeaderHeight=(e,t,o,r,i)=>i.includes("/popups/")?2*r.paddingContentVertical+22+r.paddingPageVertical:e?r.paddingContentHorizontalLG:o?t?r.controlPaddingHorizontal+3*r.controlPaddingHorizontalSM+22+r.paddingContentHorizontalLG:r.paddingContentHorizontalLG+12:t?r.paddingSM+r.controlHeight+r.marginXS+2*r.controlPaddingHorizontalSM+22+r.paddingContentHorizontalLG:r.controlHeight+r.marginXS+(r.paddingXXS+2)*2+r.paddingContentHorizontalLG,usePageFullScreenHeight=e=>{const{token:t}=import_antd.theme.useToken(),{designable:o}=useDesignable(),{heightProps:r}=useBlockHeightProps(),i=(0,import_react_router_dom.useLocation)(),{disablePageHeader:n,enablePageTabs:a,hidePageTitle:l}=e||r||{},c=t.sizeXXL-2,u=o?t.controlHeight+2*t.paddingContentHorizontalLG:1*t.paddingContentHorizontalLG,m=getPageHeaderHeight(n,a,l,t,i.pathname);return c+m+u},useDrawerFullScreenHeight=()=>{const{token:e}=import_antd.theme.useToken(),{designable:t}=useDesignable(),o=e.paddingContentVerticalLG+e.margin+2*e.paddingContentVertical+24,r=t?e.controlHeight+2*e.paddingContentHorizontalLG:1*e.paddingContentHorizontalLG;return o+r},useFullScreenHeight=e=>{const t=(0,import_react.useFieldSchema)(),o=hasActionContainerInParentChain(t),r=usePageFullScreenHeight(e),i=useDrawerFullScreenHeight();return o?i:r},InternalWorkflowCollection=["users_jobs","approvals","approvalRecords"],useTableHeight=()=>{var e;const{token:t}=import_antd.theme.useToken(),{heightProps:o}=useBlockHeightProps(),{heightProps:r}=useTableBlockContext(),{designable:i}=useDesignable(),n=(0,import_react.useFieldSchema)(),a=r||o,l=useFullScreenHeight(a),{name:c}=useCollection(),{heightMode:u,height:m,title:d}=a;if(!(a!=null&&a.heightMode)||u===HeightMode.DEFAULT)return;const p=Object.keys(((e=n.parent.properties.actions)==null?void 0:e.properties)||{}).length>0,g=t.controlHeight+t.padding+t.marginLG,h=p||i?t.controlHeight+2*t.marginLG:t.marginLG,f=(i&&!InternalWorkflowCollection.includes(c)?t.controlHeight:22)+2*t.padding+1,_=d?t.fontSizeLG*t.lineHeightLG+t.padding*2-1:0;return u===HeightMode.FULL_HEIGHT?window.innerHeight-l-_-f-h-g:m-_-h-f-g},useDataBlockHeight=e=>{const{heightProps:t}=useBlockHeightProps(),o=useFullScreenHeight(),{token:r}=import_antd.theme.useToken(),{heightMode:i,height:n,title:a}=t||{},l=a?r.fontSizeLG*r.lineHeightLG+r.padding*2-1:0;if(!(!(t!=null&&t.heightMode)||i===HeightMode.DEFAULT)){if(i===HeightMode.FULL_HEIGHT){let c=window.innerHeight-o;return e!=null&&e.removeBlockHeaderHeight&&(c=c-l),e!=null&&e.innerExtraHeight&&(c=c-e.innerExtraHeight),c}return n}},useBlockHeight=()=>{const e=(0,import_react.useFieldSchema)(),t=(0,import_react2.useMemo)(()=>getPageSchema(e),[]),{disablePageHeader:o,enablePageTabs:r,hidePageTitle:i}=(t==null?void 0:t["x-component-props"])||{},n=P(x({},e==null?void 0:e["x-component-props"]),{disablePageHeader:o,enablePageTabs:r,hidePageTitle:i}),a=useFullScreenHeight(n),{heightMode:l,height:c}=n||{};if(!(!(n!=null&&n.heightMode)||l===HeightMode.DEFAULT))return l===HeightMode.FULL_HEIGHT?window.innerHeight-a:c},useTableSize=()=>{const[e,t]=(0,import_react2.useState)(),o=(0,import_react2.useRef)(null),r=useTableHeight(),i=(0,import_react2.useCallback)((0,import_lodash.debounce)(()=>{var a;if(!o.current)return;const l=o.current.getBoundingClientRect();(a=o.current.querySelector(".ant-table"))!=null&&a.getBoundingClientRect()&&t(l.width)},100),[r]),n=(0,import_react2.useCallback)(a=>{o.current=a&&a.children?a.children[0]:null,i()},[i]);return(0,import_ahooks.useEventListener)("resize",i),{height:r,width:e,tableSizeRefCallback:n}},hasActionContainerInParentChain=e=>{var t;return e?e["x-component"]==="Action.Container"?((t=e==null?void 0:e.parent["x-component-props"])==null?void 0:t.openMode)!=="page":hasActionContainerInParentChain(e.parent):null},useFieldModeOptions=e=>{var t;const{t:o}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:r,getCollection:i}=useCollectionManager_deprecated(),n=(0,import_react.useFieldSchema)(),a=(e==null?void 0:e.fieldSchema)||n,l=(0,import_react.useField)(),c=(0,import_react.useForm)(),u=(a==null?void 0:a["x-read-pretty"])||l.readPretty||c.readPretty,m=e==null?void 0:e.fieldSchema,{getField:d}=useCollection_deprecated(),p=(e==null?void 0:e.collectionField)||d(a.name)||r(a["x-collection-field"]),{label:g}=((t=a["x-component-props"])==null?void 0:t.fieldNames)||{};return((0,import_react2.useMemo)(()=>{if(!p||!(p!=null&&p.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m","updatedBy","createdBy","mbm","attachmentURL"].includes(p.interface))return;const h=i(p.target);if((h==null?void 0:h.template)==="file")return u?[{label:o("Title"),value:"Select"},{label:o("File manager"),value:"FileManager"},{label:o("Tag"),value:"Tag"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},{label:o("File manager"),value:"FileManager"}];if((h==null?void 0:h.template)==="tree"&&["m2m","o2m","m2o"].includes(p.interface))return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"},!m&&{label:o("Sub-table"),value:"SubTable"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&["m2m","o2m"].includes(p.interface)&&{label:o("Sub-table"),value:"SubTable"},!m&&{label:o("Cascade Select"),value:"CascadeSelect"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}];switch(p.interface){case"o2m":return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-table"),value:"SubTable"},!m&&{label:o("Sub-details"),value:"Nester"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"},!m&&{label:o("Sub-table"),value:"SubTable"}];case"m2m":case"mbm":return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"},!m&&{label:o("Sub-table"),value:"SubTable"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-table"),value:"SubTable"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}];case"m2o":case"linkTo":return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}];default:return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}]}},[o,p==null?void 0:p.interface,g])||[]).filter(Boolean)},useDragEnd=e=>{const{refresh:t}=useDesignable(),o=useAPIClient(),{t:r}=(0,import_react_i18next.useTranslation)();return(0,import_react2.useCallback)(i=>{var n,a,l,c,u,m,d,p,g,h,f,_,v,S,C;const{active:b,over:y}=i,F=(a=(n=b==null?void 0:b.data)==null?void 0:n.current)==null?void 0:a.schema,j=(c=(l=y==null?void 0:y.data)==null?void 0:l.current)==null?void 0:c.schema,k=(m=(u=y==null?void 0:y.data)==null?void 0:u.current)==null?void 0:m.insertAdjacent,T=(p=(d=y==null?void 0:y.data)==null?void 0:d.current)==null?void 0:p.breakRemoveOn,O=(h=(g=y==null?void 0:y.data)==null?void 0:g.current)==null?void 0:h.wrapSchema,N=(_=(f=y==null?void 0:y.data)==null?void 0:f.current)==null?void 0:_.onSuccess,L=(C=(S=(v=y==null?void 0:y.data)==null?void 0:v.current)==null?void 0:S.removeParentsIfNoChildren)!=null?C:!0;if(!F||!j){e==null||e(i);return}if(F===j){e==null||e(i);return}if(F.parent===j&&k==="beforeEnd"){e==null||e(i);return}const D=createDesignable({t:r,api:o,refresh:({refreshParentSchema:R=!0}={})=>t({refreshParentSchema:R}),current:j});if(D.loadAPIClientEvents(),F.parent===j.parent){D.insertBeforeBeginOrAfterEnd(F),e==null||e(i);return}if(k){D.insertAdjacent(k,F,{wrap:O,breakRemoveOn:T,removeParentsIfNoChildren:L,onSuccess:N}),e==null||e(i);return}},[o,e,t,r])},InternalDndContext=import_react2.default.memo(e=>{const{t}=(0,import_react_i18next.useTranslation)(),[o,r]=(0,import_react2.useState)(!0),i=(0,import_react2.useCallback)(a=>{var l,c,u;const{active:m}=a,d=(c=(l=m==null?void 0:m.data)==null?void 0:l.current)==null?void 0:c.schema;r(!!d),e!=null&&e.onDragStart&&((u=e==null?void 0:e.onDragStart)==null||u.call(e,a))},[e==null?void 0:e.onDragStart]),n=useDragEnd(e==null?void 0:e.onDragEnd);return(0,import_jsx_runtime.jsxs)(import_core.DndContext,P(x({collisionDetection:import_core.rectIntersection},e),{onDragStart:i,onDragEnd:n,children:[(0,import_jsx_runtime.jsx)(import_core.DragOverlay,{dropAnimation:{duration:10,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:o&&(0,import_jsx_runtime.jsx)("span",{style:{whiteSpace:"nowrap"},children:t("Dragging")})}),e.children]}))});InternalDndContext.displayName="InternalDndContext";const DndContext=e=>(0,import_jsx_runtime.jsx)(InternalDndContext,x({},e)),DraggableContext=(0,import_react2.createContext)(null);DraggableContext.displayName="DraggableContext";const SortableContext=(0,import_react2.createContext)(null);SortableContext.displayName="SortableContext";const SortableProvider=e=>{const{id:t,data:o,children:r}=e,i=(0,import_core.useDraggable)({id:t,data:o}),n=(0,import_core.useDroppable)({id:t,data:o}),a=(0,import_react2.useMemo)(()=>({draggable:i,droppable:n}),[i,n]);return(0,import_jsx_runtime.jsx)(SortableContext.Provider,{value:a,children:r})},getComputedColor=e=>new import_tinycolor.TinyColor(e).setAlpha(.15).toHex8String(),Sortable=e=>{var t,o;const r=e,{component:i,overStyle:n,style:a,children:l,openMode:c}=r,u=K(r,["component","overStyle","style","children","openMode"]),{token:m}=useToken(),{draggable:d,droppable:p}=(0,import_react2.useContext)(SortableContext),{isOver:g,setNodeRef:h}=p,f=x({},a);return g&&((t=d==null?void 0:d.active)==null?void 0:t.id)!==((o=p==null?void 0:p.over)==null?void 0:o.id)&&(f[i==="a"?"color":"background"]=getComputedColor(m.colorSettings),Object.assign(f,n)),import_react2.default.createElement(i||"div",P(x({role:"none"},u),{className:(0,import_css.cx)("nb-sortable-designer",e.className),ref:h,style:f}),l)},useSortableItemProps=e=>{const t=useSortableItemId(e),o=(0,import_react.useFieldSchema)();return e.schema?P(x({},e),{id:t}):P(x({},e),{id:t,schema:o})},useSortableItemId=e=>{var t;const o=(0,import_react.useField)();return e.id?e.id:(t=o.address)==null?void 0:t.toString()},InternalSortableItem=(0,import_react.observer)(e=>{const t=useSortableItemProps(e),{schema:o,id:r,eid:i,removeParentsIfNoChildren:n}=t,a=K(t,["schema","id","eid","removeParentsIfNoChildren"]),l=(0,import_react2.useMemo)(()=>({insertAdjacent:"afterEnd",schema:o,removeParentsIfNoChildren:n??!0}),[o,n]);return(0,import_jsx_runtime.jsx)(SortableProvider,{id:r,data:l,children:(0,import_jsx_runtime.jsx)(Sortable,P(x({id:i},a),{children:e.children}))})},{displayName:"InternalSortableItem"}),SortableItem=import_react2.default.memo(e=>{const t=e,{component:o}=t,r=K(t,["component"]),{designable:i}=useDesignable();return i?(0,import_jsx_runtime.jsx)(InternalSortableItem,x({},e)):import_react2.default.createElement(o||"div",import_lodash.default.omit(r,["children","schema","overStyle","openMode","id","eid","removeParentsIfNoChildren"]),e.children)});SortableItem.displayName="SortableItem";const DragHandler=e=>{const{draggable:t}=(0,import_react2.useContext)(SortableContext)||{};if(!t)return null;const{attributes:o,listeners:r,setNodeRef:i}=t;return(0,import_jsx_runtime.jsx)("div",{style:{display:"inline-block",width:14,height:14,lineHeight:"14px",textAlign:"left"},children:(0,import_jsx_runtime.jsx)("div",P(x(x({ref:i,style:{position:"relative",zIndex:1,lineHeight:0,fontSize:0,display:"inline-block"}},r),o),{role:"none",children:(0,import_jsx_runtime.jsx)("span",{style:{cursor:"move",fontSize:14},children:e.children})}))})},ShowFormData=(0,import_react.observer)(({children:e})=>{const t=(0,import_react.useForm)();return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("pre",{style:{marginBottom:20},"data-testid":"form-data",children:JSON.stringify(t.values,null,2)}),e]})}),common=Object.freeze(Object.defineProperty({__proto__:null,DndContext,DragHandler,DraggableContext,ShowFormData,Sortable,SortableContext,SortableItem,SortableProvider,getRenderContent},Symbol.toStringTag,{value:"Module"})),requestChartData=e=>function(){return q(this,null,function*(){var t;try{const o=yield this.api.request(e);return(t=o==null?void 0:o.data)==null?void 0:t.data}catch{return[]}})},FormComponent$1=e=>{const t=e,{form:o,children:r}=t,i=K(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=useAttach(o.createVoidField(P(x({},n.props),{basePath:""})));return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},i),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:l.address,schema:a,onlyRenderProperties:!0})}))})})},Def$1=e=>e.children,FormDecorator$1=e=>{const t=e,{form:o,children:r,disabled:i}=t,n=K(t,["form","children","disabled"]),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useAttach(o.createVoidField(P(x({},a.props),{basePath:""}))),u=useComponent(l["x-component"],Def$1);return(0,import_react2.useEffect)(()=>{o.disabled=i||a.disabled},[i,a.disabled]),(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{componentDisabled:i,children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},n),{children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:c,children:(0,import_jsx_runtime.jsx)(u,P(x({},a.componentProps),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:c.address,schema:l,onlyRenderProperties:!0})}))})}))})})})},getRequestParams=e=>{const{request:t,initialValue:o}=e;return t||(()=>Promise.resolve({data:o}))},useDefaultValues=(e={},t={})=>useRequest(getRequestParams(t),e),FormBlockContext=(0,import_react2.createContext)(null);FormBlockContext.displayName="FormBlockContext";const Form$1=(0,import_react.observer)(e=>{const t=e,{request:o,effects:r,initialValue:i,useValues:n=useDefaultValues}=t,a=K(t,["request","effects","initialValue","useValues"]),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=(0,import_react2.useMemo)(()=>(0,import_core2.createForm)({effects:r}),[]),m=n({uid:l["x-uid"],onSuccess(p){return q(this,null,function*(){yield u.reset(),u.setValues(p==null?void 0:p.data),u.setInitialValues(p==null?void 0:p.data)})}},e),d=(0,import_react2.useContext)(FormBlockContext);return(0,import_jsx_runtime.jsx)(FormBlockContext.Provider,{value:{parent:d,form:u,result:m,field:c,fieldSchema:l},children:(0,import_jsx_runtime.jsx)(import_antd.Spin,{spinning:(m==null?void 0:m.loading)||!1,children:l["x-decorator"]==="Form"?(0,import_jsx_runtime.jsx)(FormDecorator$1,x({form:u},a)):(0,import_jsx_runtime.jsx)(FormComponent$1,x({form:u},a))})})},{displayName:"Form"});Form$1.Designer=function e(){const{name:t,title:o}=useCollection_deprecated(),r=useSchemaTemplate(),{componentNamePrefix:i}=useBlockTemplateContext();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{template:r,title:o||t,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsTemplate,{componentName:`${i}Form`,collectionName:t}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};const formV1Settings=new SchemaSettings({name:"FormV1Settings",items:[{name:"template",Component:SchemaSettingsTemplate,useComponentProps(){const{name:e}=useCollection_deprecated(),{componentNamePrefix:t}=useBlockTemplateContext();return{componentName:`${t}Form`,collectionName:e}}},{name:"divider",type:"divider"},{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]}),FormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormSettings",template:o,title:t||e})},ReadPrettyFormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"ReadPrettyFormSettings",template:o,title:t||e})},DetailsDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormDetailsSettings",template:o,title:t||e})},FilterDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"blockSettings:filterForm",template:o,title:t||e})},defaultFieldNames$1={label:"label",value:"value",color:"color",options:"children"};function flatData$1(e,t){const o=[];if(!Array.isArray(e))return o;for(let r=0;r<e.length;r++){const i=e[r][t.options];Array.isArray(i)&&o.push(...flatData$1(i,t)),o.push(x({},e[r]))}return o}function findOptions(e,t,o){if(!e)return[];const r=[];for(const i of o){const n=e.find(a=>a[t.value]==i)||{value:i,label:i&&i.toString()};r.push(n)}return r}function getCurrentOptions(e,t,o){const r=flatData$1(t,o),i=(0,import_lodash.castArray)(e).map(n=>(0,import_client.isPlainObject)(n)?n[o.value]:n);return findOptions(r,o,i)}const ReadPrettyInternal=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)(!0),[r,i]=(0,import_react2.useState)([]),n=(0,import_react.useField)(),a=useCollectionField();return(0,import_react2.useEffect)(()=>{var l;const c=x(x({},defaultFieldNames$1),e.fieldNames),u=n.dataSource||e.options||(a==null?void 0:a.uiSchema.enum)||[],m=getCurrentOptions(n.value,u,c);if(!(0,import_shared.isValid)(e.value)&&!m.length||(0,import_core2.isArrayField)(n)&&((l=n==null?void 0:n.value)==null?void 0:l.length)===0)return;const d=n.value!==null&&m.map((p,g)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:p[c.color],icon:p.icon,children:p[c.label]},g));i(d),o(!1)},[a==null?void 0:a.uiSchema.enum,n,n.dataSource,n.value,e.fieldNames,e.options,e.value]),t?null:(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:r})},{displayName:"SelectReadPretty"}),ReadPretty$b=withPopupWrapper(ReadPrettyInternal),isEmptyObject=e=>!(0,import_shared.isValid)(e)||typeof e=="object"&&Object.keys(e).length===0,ObjectSelect=e=>{const t=e,{value:o,options:r,onChange:i,fieldNames:n,mode:a,loading:l,rawOptions:c,defaultValue:u}=t,m=K(t,["value","options","onChange","fieldNames","mode","loading","rawOptions","defaultValue"]),d=p=>{var g;if(isEmptyObject(p))return;const h=(0,import_shared.toArr)(p).filter(_=>_).map(_=>(0,import_client.isPlainObject)(_)?_[n.value]:_),f=(g=getCurrentOptions(h,r,n))==null?void 0:g.map(_=>({label:_[n.label],value:_[n.value]}));return["tags","multiple"].includes(a)||e.multiple?f:f.shift()};return(0,import_jsx_runtime.jsx)(import_antd.Select,x({role:"button","data-testid":`select-object-${a||"single"}`,value:d(o),defaultValue:d(u),allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},labelInValue:!0,notFoundContent:l?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),options:r,fieldNames:n,showSearch:!0,popupMatchSelectWidth:!1,filterOption:(p,g)=>{var h;return((h=g==null?void 0:g[n.label||"label"])!=null?h:"").includes(p)},filterSort:(p,g)=>{var h,f;return((h=p==null?void 0:p[n.label||"label"])!=null?h:"").toLowerCase().localeCompare(((f=g==null?void 0:g[n.label||"label"])!=null?f:"").toLowerCase())},onChange:p=>{const g=getCurrentOptions((0,import_shared.toArr)(p).map(h=>h.value),c||r,n);["tags","multiple"].includes(a)||e.multiple?i==null||i(g):i==null||i(g.shift()||null)},mode:a,tagRender:p=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":p.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},p),{children:p.label})),maxTagCount:"responsive"},m))},filterOption=(e,t)=>{var o;return((o=t==null?void 0:t.label)!=null?o:"").toLowerCase().includes((e||"").toLowerCase())},InternalSelect=(0,import_react.connect)(e=>{const t=e,{objectValue:o,loading:r,value:i,rawOptions:n,defaultValue:a}=t,l=K(t,["objectValue","loading","value","rawOptions","defaultValue"]),c=useCompile();let u=e.multiple?"multiple":e.mode;if(u&&!["multiple","tags"].includes(u)&&(u=void 0),o)return(0,import_jsx_runtime.jsx)(ObjectSelect,P(x({rawOptions:n},l),{defaultValue:a,value:i,mode:u,loading:r}));const m=d=>["tags","multiple"].includes(e.mode)||e.multiple?d?(0,import_shared.toArr)(d):void 0:d;return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":`select-${u||"single"}`,showSearch:!0,filterOption,allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},popupMatchSelectWidth:!1,notFoundContent:r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),value:m(i),defaultValue:m(a),tagRender:d=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":d.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},d),{children:d.label}))},c(l)),{onChange:d=>{var p;(p=e.onChange)==null||p.call(e,d===void 0?null:d)},mode:u,maxTagCount:"responsive"}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>P(x({},e),{fieldNames:x(x({},defaultFieldNames$1),e.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})),(0,import_react.mapReadPretty)(ReadPretty$b)),Select=InternalSelect;Select.ReadPretty=ReadPretty$b;const getValues=(e,t)=>(0,import_lodash.castArray)(e).filter(o=>o!=null).map(o=>typeof o=="object"?o[t.value]:o),ReadPretty$a=(0,import_react.observer)(e=>{const t=x(x({},defaultFieldNames$1),e.fieldNames),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),i=useRecord(),{snapshot:n}=useActionContext(),{data:a}=useRequest(n?()=>q(void 0,null,function*(){return{data:i[r.name]}}):P(x({action:"list"},e.service),{params:{paginate:!1,filter:{[t.value]:{$in:getValues(o.value,t)}}}}),{refreshDeps:[e.service,o.value]});return(0,import_jsx_runtime.jsx)(Select.ReadPretty,P(x({},e),{options:a==null?void 0:a.data}))},{displayName:"ReadPretty"}),EMPTY$1="N/A",InternalRemoteSelect=withDynamicSchemaProps((0,import_react.connect)(e=>{var t,o;const r=e,{fieldNames:i={},service:n={},wait:a=300,value:l,defaultValue:c,objectValue:u,manual:m=!0,mapOptions:d,targetField:p,CustomDropdownRender:g,optionFilter:h,dataSource:f,toOptionsItem:_=H=>H,popupMatchSelectWidth:v=!1}=r,S=K(r,["fieldNames","service","wait","value","defaultValue","objectValue","manual","mapOptions","targetField","CustomDropdownRender","optionFilter","dataSource","toOptionsItem","popupMatchSelectWidth"]),C=useDataSourceKey(),b=useDataSourceHeaders(f||C),[y,F]=(0,import_react2.useState)(!1),j=(0,import_react2.useRef)(!1),k=(0,import_react.useFieldSchema)(),T=((t=k["x-component-props"])==null?void 0:t.addMode)==="quickAdd",{getField:O}=useCollection_deprecated(),N=(0,import_react2.useRef)(null),{getCollectionJoinField:L,getInterface:D}=useCollectionManager_deprecated(),R=k["x-collection-field"]||k.name,$=O(R)||L(R),w=p||($==null?void 0:$.target)&&(i==null?void 0:i.label)&&L(`${$.target}.${i.label}`),I=(0,import_react2.useMemo)(()=>{var H;if(w!=null&&w.interface){const J=D(w.interface),X=((H=J==null?void 0:J.filterable)==null?void 0:H.operators[0].value)||"$includes";return w.type==="string"?"$includes":X}return"$includes"},[w]),M=useCompile(),B=(0,import_react2.useCallback)(H=>{try{return H.filter(J=>["number","string"].includes(typeof J[i.value])||!J[i.value]).map(J=>{var X;let Q=M(J[i.label]);if((X=w==null?void 0:w.uiSchema)!=null&&X.enum)if(Array.isArray(Q))Q=Q.map((ee,te)=>{const ne=w.uiSchema.enum.find(ae=>ae.value===ee);return ne?(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ne.color,style:{marginRight:3},children:(ne==null?void 0:ne.label)||ee},te):(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",children:ee},ee)}).reverse();else{const ee=w.uiSchema.enum.find(te=>te.value===Q);ee&&(Q=(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ee.color,children:ee.label}))}return(w==null?void 0:w.type)==="date"&&(Q=(0,import_dayjs.default)(Q).format("YYYY-MM-DD")),d?d({[i.label]:Q||EMPTY$1,[i.value]:J[i.value]}):P(x({},J),{[i.label]:Q||EMPTY$1,[i.value]:J[i.value]})}).filter(Boolean)}catch(J){return console.error(J),H}},[w==null?void 0:w.uiSchema,i]),{data:z,run:E,loading:V}=useRequest(P(x({action:"list"},n),{headers:b,params:P(x({pageSize:200},n==null?void 0:n.params),{filter:(o=n==null?void 0:n.params)==null?void 0:o.filter})}),x({manual:m,debounceWait:a},n.defaultParams?{defaultParams:[n.defaultParams]}:{})),U=(0,import_react2.useMemo)(()=>JSON.stringify({service:n,fieldNames:i}),[n,i]),G=(0,import_react2.useCallback)(()=>N.current&&g?(0,import_jsx_runtime.jsx)(g,{search:N.current,callBack:()=>{N.current=null,F(!1)}}):null,[N.current]);(0,import_react2.useEffect)(()=>{j.current&&E()},[U]);const W=H=>q(void 0,null,function*(){var J;E({filter:mergeFilter([H?{[i.label]:{[I]:H}}:{},(J=n==null?void 0:n.params)==null?void 0:J.filter])}),N.current=H}),Y=(0,import_react2.useMemo)(()=>{var H;const J=l||c;if(!((H=z==null?void 0:z.data)!=null&&H.length))return J!=null?Array.isArray(J)?J:[J]:[];const X=J!=null&&(Array.isArray(J)?J.map(ee=>P(x({},ee),{[i.value]:ee[i.value]||ee})):[P(x({},J),{[i.value]:J[i.value]||J})])||[],Q=typeof h=="function"?z.data.filter(h):z.data;return(0,import_lodash.uniqBy)(Q.concat(X??[]),i.value)},[l,c,z==null?void 0:z.data,i.value,h]);return(0,import_jsx_runtime.jsx)(Select,P(x({open:y,popupMatchSelectWidth:v,autoClearSearchValue:!0,filterOption:!1,filterSort:null,fieldNames:i,onSearch:W,onDropdownVisibleChange:H=>{F(H),N.current=null,H&&E(),j.current=!0},objectValue:u,value:l,defaultValue:c},S),{loading:z?V:!0,options:_(B(Y)),rawOptions:Y,dropdownRender:H=>{const J=Y.some(X=>X[i.label]===N.current);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:T?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!((z==null?void 0:z.data.length)===0&&N!=null&&N.current)&&H,(z==null?void 0:z.data.length)>0&&(N==null?void 0:N.current)&&!J&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!J&&(0,import_jsx_runtime.jsx)(G,{})]}):H})}}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>{var o;const r=(0,import_react.useFieldSchema)();return P(x({},e),{fieldNames:x(x(x(x({},defaultFieldNames$1),e.fieldNames),t.componentProps.fieldNames),(o=r["x-component-props"])==null?void 0:o.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})}),(0,import_react.mapReadPretty)(ReadPretty$a))),RemoteSelect=InternalRemoteSelect;RemoteSelect.ReadPretty=ReadPretty$a;const useFormDataTemplates=()=>{const e=(0,import_react.useFieldSchema)(),{t}=(0,import_react_i18next.useTranslation)(),{duplicateData:o}=useFormBlockContext(),{getCollectionJoinField:r}=useCollectionManager_deprecated();if(o)return o;const{items:i=[],display:n=!0}=findDataTemplates(e);i.forEach(c=>{var u;try{c.fields=(u=c.fields)==null?void 0:u.map(m=>r(`${c.collection}.${m}`)?m:"").filter(Boolean)}catch(m){(0,import_client.error)(m),c.fields=[]}});const a=[{key:"none",title:t("None")}].concat(i.map((c,u)=>P(x({key:u},c),{isLeaf:c.dataId!==null&&c.dataId!==void 0,titleCollectionField:(c==null?void 0:c.titleField)&&r(`${c.collection}.${c.titleField}`)}))),l=i.find(c=>c.default);return{templates:a,display:n,defaultTemplate:l,enabled:i.length>0&&i.every(c=>c.dataId||c.dataScope)}},Templates=import_react2.default.memo(({style:e={},form:t})=>{const{token:o}=useToken(),{templates:r,display:i,enabled:n,defaultTemplate:a}=useFormDataTemplates(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=compatibleDataId(r),[u,m]=(0,import_react2.useState)((a==null?void 0:a.key)||"none"),[d,p]=(0,import_react2.useState)(null),g=useAPIClient(),{t:h}=(0,import_react_i18next.useTranslation)(),f=useDataSourceKey(),_=useDataSourceHeaders(f);(0,import_react2.useEffect)(()=>{n&&a&&t&&(t.__template=!0,a.key==="duplicate"&&b(a.dataId,a,_))},[]),(0,import_react2.useEffect)(()=>{c!=null&&c.some(F=>F.key===u)||C("none")},[c]);const v=(0,import_react2.useMemo)(()=>x({display:"flex",alignItems:"center",backgroundColor:o.colorFillAlter,padding:o.padding},e),[e,o.colorFillAlter]),S=(0,import_react2.useMemo)(()=>({fontSize:o.fontSize,fontWeight:"bold",whiteSpace:"nowrap",marginRight:o.marginXS}),[o.fontSize,o.marginXS]),C=(0,import_react2.useCallback)(F=>q(void 0,null,function*(){m(F),p(null),t==null||t.reset()}),[]),b=(0,import_react2.useCallback)((F,j,k)=>q(void 0,null,function*(){const T=P(x({},j),{dataId:F});p(j),fetchTemplateData(g,T,k).then(O=>(t&&O&&(t.reset(),t.__template=!0,(0,import_client.forEach)(O,(N,L)=>{var D;N&&(t.values[L]=N,(D=t==null?void 0:t.setInitialValuesIn)==null||D.call(t,L,N))})),O)).catch(O=>{console.error(O)})}),[]);if(!n||!i)return null;const y=c==null?void 0:c.find(F=>F.key===u);return(0,import_jsx_runtime.jsx)("div",{style:v,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[(0,import_jsx_runtime.jsxs)("label",{style:S,children:[h("Data template"),": "]}),(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-form-data-template",popupMatchSelectWidth:!1,options:c,fieldNames:{label:"title",value:"key"},value:u,onChange:C}),u!=="none"&&y&&(0,import_jsx_runtime.jsx)(RemoteSelect,{style:{width:220},fieldNames:{label:y==null?void 0:y.titleField,value:"id"},target:y==null?void 0:y.collection,value:d,objectValue:!0,service:{resource:y==null?void 0:y.collection,params:{filter:y==null?void 0:y.dataScope}},onChange:F=>b(F==null?void 0:F.id,x(x({},F),y),_),targetField:l(`${y==null?void 0:y.collection}.${y.titleField}`)})]})})});Templates.displayName="NocoBaseFormDataTemplates";function findDataTemplates(e){const t=findFormBlock(e);return t?import_lodash.default.cloneDeep(t["x-data-templates"])||{}:{}}function fetchTemplateData(e,t,o){return q(this,null,function*(){if(!(t.fields.length===0||!t.dataId))return e.resource(t.collection,void 0,o).get({filterByTk:t.dataId,fields:t.fields,isTemplate:!0}).then(r=>{var i;return(i=r.data)==null?void 0:i.data})})}const useFormBlockHeight=()=>{var e,t,o;const r=useDataBlockHeight(),i=(0,import_react.useFieldSchema)(),{token:n}=import_antd.theme.useToken(),{designable:a}=useDesignable(),{heightProps:l}=useBlockHeightProps()||{},{title:c}=l||{},{display:u,enabled:m}=useFormDataTemplates(),d=i.reduceProperties((y,F)=>F["x-component"]==="ActionBar"?F:y),p=Object.keys((d==null?void 0:d.properties)||{}).length>0,g=(o=(t=(e=i==null?void 0:i.parent)==null?void 0:e["x-decorator"])==null?void 0:t.includes)==null?void 0:o.call(t,"FormBlockProvider"),h=p||a?n.controlHeight+(g?1:2)*n.marginLG:n.marginLG,f=c?n.fontSizeLG*n.lineHeightLG+n.padding*2-1:0,_=useDataBlockRequestData(),{count:v,pageSize:S}=(_==null?void 0:_.meta)||{},C=v>S?n.controlHeightSM+1*n.paddingLG:0,b=u&&m?n.controlHeight+2*n.padding+n.margin:0;return r-h-n.paddingLG-f-C-b},FormComponent=e=>{const t=e,{form:o,children:r}=t,i=K(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=getCardItemSchema==null?void 0:getCardItemSchema(a),c=useAttach(o.createVoidField(P(x({},n.props),{basePath:""}))),u=useFormBlockHeight(),{token:m}=import_antd.theme.useToken(),{layout:d="vertical",labelAlign:p="left",labelWidth:g=120,labelWrap:h=!0}=(l==null?void 0:l["x-component-props"])||{};return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:d},i),{labelAlign:p,labelWidth:d==="horizontal"?g:null,labelWrap:h,children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
594
|
+
`,TableColumnActionBar=(0,import_react.observer)(e=>{const t=useDesigner();return(0,import_jsx_runtime.jsxs)(SortableItem,{className:designerCss$3,children:[(0,import_jsx_runtime.jsx)(t,{}),e.children]})},{displayName:"TableColumnActionBar"}),useColumnSchema=()=>{const{getField:e}=useCollection_deprecated(),t=useCompile(),o=(0,import_react.useFieldSchema)(),r=o.reduceProperties((n,a)=>a["x-component"]==="CollectionField"?a:n,null);if(!r)return{};const i=e(r.name);return{columnSchema:o,fieldSchema:r,collectionField:i,uiSchema:t(i==null?void 0:i.uiSchema)}},TableColumnDecorator=e=>{const t=useDesigner(),o=(0,import_react.useField)(),{fieldSchema:r,uiSchema:i,collectionField:n}=useColumnSchema(),a=useCompile();return(0,import_react2.useEffect)(()=>{o.title||r&&i!=null&&i.title&&(o.title=i==null?void 0:i.title)},[i==null?void 0:i.title]),(0,import_jsx_runtime.jsxs)(SortableItem,{className:designerCss$3,children:[(0,import_jsx_runtime.jsx)(t,{fieldSchema:r,uiSchema:i,collectionField:n}),o.title||a(i==null?void 0:i.title)]})},previewComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Preview",items:[{name:"size",type:"select",useVisible(){var e;const{fieldSchema:t}=useColumnSchema();return((e=t==null?void 0:t.parent)==null?void 0:e["x-component"])!=="TableV2.Column"},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Size"),options:[{label:t("Large"),value:"large"},{label:t("Default"),value:"default"},{label:t("Small"),value:"small"}],value:((e=o==null?void 0:o.componentProps)==null?void 0:e.size)||"default",onChange(n){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].size=n,a["x-component-props"]=r["x-component-props"],o.componentProps=o.componentProps||{},o.componentProps.size=n,i.emit("patch",{schema:a}),i.refresh()}}}}]}),uploadAttachmentComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Upload.Attachment",items:[{name:"size",type:"select",useVisible(){var e;const{fieldSchema:t}=useColumnSchema$1(),o=((e=t==null?void 0:t.parent)==null?void 0:e["x-component"])==="TableV2.Column";return useIsFieldReadPretty()&&!o},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable();return{title:t("Size"),options:[{label:t("Large"),value:"large"},{label:t("Default"),value:"default"},{label:t("Small"),value:"small"}],value:((e=o==null?void 0:o.componentProps)==null?void 0:e.size)||"default",onChange(n){const a={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].size=n,a["x-component-props"]=r["x-component-props"],o.componentProps=o.componentProps||{},o.componentProps.size=n,i.emit("patch",{schema:a}),i.refresh()}}}}]}),inputJSONSettings=new SchemaSettings({name:"fieldSettings:component:Input.JSON",items:[ellipsisSettingsItem]}),createSettingsItem=e=>({name:e.name,type:"select",useComponentProps(){var t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{fieldSchema:n}=useColumnSchema$1(),a=n||i,{dn:l}=useDesignable();return{title:o(e.title),options:e.options(o),value:((t=a["x-component-props"])==null?void 0:t[e.name])||e.defaultValue,onChange(c){const u={"x-uid":a["x-uid"]};a["x-component-props"]=a["x-component-props"]||{},a["x-component-props"][e.name]=c,u["x-component-props"]=a["x-component-props"],r.componentProps=r.componentProps||{},r.componentProps[e.name]=c,l.emit("patch",{schema:u})}}}}),getSizeOptions=e=>[{value:"small",label:e("Small")},{value:"middle",label:e("Middle")},{value:"large",label:e("Large")},{value:"oversized",label:e("Oversized")},{value:"auto",label:e("Auto")}],getObjectFitOptions=e=>[{value:"cover",label:e("Cover")},{value:"fill",label:e("Fill")},{value:"contain",label:e("Contain")},{value:"scale-down",label:e("Scale Down")},{value:"none",label:e("None")}],size=createSettingsItem({name:"size",title:"Size",options:getSizeOptions,defaultValue:"small"}),objectFit=createSettingsItem({name:"objectFit",title:"Object Fit",options:getObjectFitOptions,defaultValue:"cover"}),inputPreviewComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Input.Preview",items:[size,objectFit]}),inputTextAreaSettings=new SchemaSettings({name:"fieldSettings:component:Input.TextArea",items:[ellipsisSettingsItem]}),inputURLSettings=new SchemaSettings({name:"fieldSettings:component:Input.URL",items:[ellipsisSettingsItem]}),markdownSettings=new SchemaSettings({name:"fieldSettings:component:Markdown",items:[ellipsisSettingsItem]}),markdownVditorSettings=new SchemaSettings({name:"fieldSettings:component:MarkdownVditor",items:[ellipsisSettingsItem]}),richTextSettings=new SchemaSettings({name:"fieldSettings:component:RichText",items:[ellipsisSettingsItem]}),inputNumberComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:InputNumber",items:[{name:"displayFormat",Component:SchemaSettingsNumberFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}},useVisible(){return useIsFieldReadPretty()}},enableLinkSettingsItem,openModeSettingsItem]}),filterFormItemSettings=new SchemaSettings({name:"FilterFormItemSettings",items:[{name:"editFieldTitle",Component:EditTitle},{name:"editDescription",Component:EditDescription},{name:"editTooltip",Component:EditTooltip},{name:"validationRules",Component:EditValidationRules},{name:"setDataScope",Component:SchemaSettingsDataScope,useVisible(){const e=useIsSelectFieldMode(),t=useIsFormReadPretty();return e&&!t},useComponentProps(){var e,t,o;const{getCollectionJoinField:r,getAllCollectionsInheritChain:i}=useCollectionManager_deprecated(),{getField:n}=useCollection_deprecated(),{form:a}=useFormBlockContext(),l=useRecord(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),m=n(u.name)||r(u["x-collection-field"]),d=useVariables$1(),p=useLocalVariables$1(),{dn:g}=useDesignable();return{collectionName:m==null?void 0:m.target,defaultFilter:((o=(t=(e=u==null?void 0:u["x-component-props"])==null?void 0:e.service)==null?void 0:t.params)==null?void 0:o.filter)||{},form:a,dynamicComponent:h=>(0,import_jsx_runtime.jsx)(VariableInput,P(x({},h),{form:a,collectionField:h.collectionField,record:l,shouldChange:getShouldChange({collectionField:h.collectionField,variables:d,localVariables:p,getAllCollectionsInheritChain:i})})),onSubmit:({filter:h})=>{h=removeNullCondition(h),import_lodash.default.set(c.componentProps,"service.params.filter",h),u["x-component-props"]=c.componentProps,g.emit("patch",{schema:{"x-uid":u["x-uid"],"x-component-props":c.componentProps}})}}}},{name:"fieldMode",Component:EditComponent},{name:"operator",Component:EditOperator},{name:"titleField",Component:EditTitleField},{name:"divider",type:"divider",useVisible(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),{getField:t}=useCollection_deprecated(),o=(0,import_react.useFieldSchema)();return!!(t(o.name)||e(o["x-collection-field"]))}},{name:"remove",type:"remove",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)();return{removeParentsIfNoChildren:!0,confirm:{title:e("Delete field")},breakRemoveOn:{"x-component":"Grid"}}}}]}),fieldComponent$4={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useFieldModeOptions(),i=useIsAddNewForm(),n=useFieldComponentName(),{dn:a}=useDesignable();return{title:e("Field component"),options:r,value:n,onChange(l){const c={"x-uid":o["x-uid"]};o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].mode=l,c["x-component-props"]=o["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=l,isSubMode(o)&&i&&(c.default=null,o.default=null,t.setInitialValue(null),t.setValue(null)),a.emit("patch",{schema:c}),a.refresh()}}}},allowSelectExistingRecord={name:"allowSelectExistingRecord",type:"switch",useVisible(){return!useIsFieldReadPretty()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow selection of existing records"),checked:(e=r["x-component-props"])==null?void 0:e.allowSelectExistingRecord,onChange(a){const l={"x-uid":r["x-uid"]};o.componentProps.allowSelectExistingRecord=a,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowSelectExistingRecord=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},allowDisassociation={name:"allowDisassociation",type:"switch",useVisible(){return!useIsFieldReadPretty()},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow disassociation"),checked:((e=r["x-component-props"])==null?void 0:e.allowDisassociation)!==!1,onChange(a){const l={"x-uid":r["x-uid"]};o.componentProps.allowDisassociation=a,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowDisassociation=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},setDefaultSortingRules={name:"SetDefaultSortingRules",type:"modal",useComponentProps(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=o["x-collection-field"],{target:i}=e(r)||{},n=useSortFields(i),{t:a}=(0,import_react_i18next.useTranslation)(),{dn:l}=useDesignable(),c=t.componentProps.sortArr||[],u=c==null?void 0:c.map(m=>m!=null&&m.startsWith("-")?{field:m.substring(1),direction:"desc"}:{field:m,direction:"asc"});return{title:a("Set default sorting rules"),components:{ArrayItems:import_antd_v5.ArrayItems},schema:{type:"object",title:a("Set default sorting rules"),properties:{sort:{type:"array",default:u,"x-component":"ArrayItems","x-decorator":"FormItem",items:{type:"object",properties:{space:{type:"void","x-component":"Space",properties:{sort:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.SortHandle"},field:{type:"string",enum:n,required:!0,"x-decorator":"FormItem","x-component":"Select","x-component-props":{style:{width:260}}},direction:{type:"string","x-decorator":"FormItem","x-component":"Radio.Group","x-component-props":{optionType:"button"},enum:[{label:a("ASC"),value:"asc"},{label:a("DESC"),value:"desc"}]},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:a("Add sort field"),"x-component":"ArrayItems.Addition"}}}}},onSubmit:({sort:m})=>{const d=m.map(p=>p.direction==="desc"?`-${p.field}`:p.field);t.componentProps.sortArr=d,o["x-component-props"].sortArr=d,l.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":o["x-component-props"]}})}}},useVisible(){const{getCollectionJoinField:e}=useCollectionManager_deprecated(),t=(0,import_react.useFieldSchema)()["x-collection-field"],{interface:o}=e(t)||{};return useIsFieldReadPretty()&&["m2m","o2m"].includes(o)}},allowAddNewData={name:"allowAddNewData",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useIsAssociationField();return!e&&t},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow add new"),checked:((e=r["x-component-props"])==null?void 0:e.allowAddnew)!==!1,onChange(a){const l={"x-uid":r["x-uid"]};o.componentProps.allowAddnew=a,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].allowAddnew=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},LinkageRulesComponent=withDynamicSchemaProps(e=>(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:!0,children:(0,import_jsx_runtime.jsx)(FormLinkageRules,x({},e))}),{displayName:"LinkageRulesComponent"}),linkageRules={name:"linkageRules",Component:SchemaSettingsLinkageRules,useComponentProps(){const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),o=useCollectionManager().getCollectionField(t["x-collection-field"]),{rerenderDataBlock:r}=useRerenderDataBlock();return{collectionName:o==null?void 0:o.target,Component:LinkageRulesComponent,readPretty:e.readPretty,afterSubmit:r}}},recordPerPage={name:"recordsPerPage",type:"select",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useFieldSchema)(),r=(0,import_react.useField)(),{dn:i}=useDesignable(),n=[10,20,50,100];return{title:t("Records per page"),value:((e=r.componentProps)==null?void 0:e.pageSize)||10,options:n.map(a=>({value:a})),onChange:a=>{const l={"x-uid":o["x-uid"]};r.componentProps=r.componentProps||{},r.componentProps.pageSize=a,o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].pageSize=a,l["x-component-props"]=o["x-component-props"],i.emit("patch",{schema:l})}}}},subTablePopoverComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:SubTable",items:[fieldComponent$4,allowAddNewData,allowSelectExistingRecord,allowDisassociation,setDefaultSortingRules,linkageRules,recordPerPage]}),allowMultiple$2={name:"allowMultiple",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useCollectionField();return!e&&["hasMany","belongsToMany"].includes(t==null?void 0:t.type)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=a,o.componentProps.multiple=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},fieldComponent$3={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useFieldModeOptions(),i=useIsAddNewForm(),n=useFieldComponentName(),{dn:a}=useDesignable();return{title:e("Field component"),options:r,value:n,onChange(l){const c={"x-uid":o["x-uid"]};o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].mode=l,c["x-component-props"]=o["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=l,isSubMode(o)&&i&&(c.default=null,o.default=null,t.setInitialValue(null),t.setValue(null)),a.emit("patch",{schema:c}),a.refresh()}}}},subformComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Nester",items:[fieldComponent$3,allowMultiple$2,{name:"allowDissociate",type:"switch",useVisible(){const{type:e}=useFormBlockType();return!useIsFormReadPretty()&&e==="update"},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow dissociate"),checked:((e=r["x-component-props"])==null?void 0:e.allowDissociate)!==!1,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].allowDissociate=a,o.componentProps.allowDissociate=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},setDefaultSortingRules,linkageRules,{name:"setBlockLayout",Component:SchemaSettingsLayoutItem}]}),allowMultiple$1={name:"allowMultiple",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useCollectionField();return!e&&["hasMany","belongsToMany","belongsToArray"].includes(t==null?void 0:t.type)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=a,o.componentProps.multiple=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},fieldComponent$2={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=useIsAddNewForm(),r=useFieldComponentName(),{fieldSchema:i,collectionField:n}=useColumnSchema$1(),a=(0,import_react.useFieldSchema)(),l=i||a,c=useFieldModeOptions({fieldSchema:i,collectionField:n}),{dn:u}=useDesignable();return{title:e("Field component"),options:c,value:r,onChange(m){var d,p;const g={"x-uid":l["x-uid"]};l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].mode=m,g["x-component-props"]=l["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=m,isSubMode(l)&&o&&(g.default=null,l.default=null,(d=t==null?void 0:t.setInitialValue)==null||d.call(t,null),(p=t==null?void 0:t.setValue)==null||p.call(t,null)),u.emit("patch",{schema:g}),u.refresh()}}}},recordPickerComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Picker",items:[fieldComponent$2,{name:"popupSize",type:"select",useVisible(){return!useIsFieldReadPretty()},useComponentProps(){var e,t,o;const{t:r}=(0,import_react_i18next.useTranslation)(),i=(0,import_react.useField)(),{fieldSchema:n}=useColumnSchema$1(),a=(0,import_react.useFieldSchema)(),l=n||a,{dn:c}=useDesignable();return{title:r("Popup size"),options:[{label:r("Small"),value:"small"},{label:r("Middle"),value:"middle"},{label:r("Large"),value:"large"}],value:(o=(e=l==null?void 0:l["x-component-props"])==null?void 0:e.openSize)!=null?o:((t=l==null?void 0:l["x-component-props"])==null?void 0:t.openMode)=="modal"?"large":"middle",onChange:u=>{i.componentProps.openSize=u,l["x-component-props"]=P(x({},l["x-component-props"]),{openSize:u}),c.emit("patch",{schema:{"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]}}),c.refresh()}}}},allowAddNew,allowMultiple$1,titleField$1]}),allowMultiple={name:"allowMultiple",type:"switch",useVisible(){const e=useIsFieldReadPretty(),t=useCollectionField();return!e&&["hasMany","belongsToMany"].includes(t==null?void 0:t.type)},useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i,refresh:n}=useDesignable();return{title:t("Allow multiple"),checked:((e=r["x-component-props"])==null?void 0:e.multiple)===void 0?!0:r["x-component-props"].multiple,onChange(a){const l={"x-uid":r["x-uid"]};r["x-component-props"]=r["x-component-props"]||{},o.componentProps=o.componentProps||{},r["x-component-props"].multiple=a,o.componentProps.multiple=a,l["x-component-props"]=r["x-component-props"],i.emit("patch",{schema:l}),n()}}}},fieldComponent$1={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),{fieldSchema:o,collectionField:r}=useColumnSchema$1(),i=(0,import_react.useFieldSchema)(),n=o||i,a=useFieldModeOptions({fieldSchema:o,collectionField:r}),{dn:l}=useDesignable(),c=useIsAddNewForm(),u=useFieldComponentName();return{title:e("Field component"),options:a,value:u,onChange(m){const d={"x-uid":n["x-uid"]};n["x-component-props"]=n["x-component-props"]||{},n["x-component-props"].mode=m,d["x-component-props"]=n["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=m,isSubMode(n)&&c&&(d.default=null,n.default=null,t.setInitialValue(null),t.setValue(null)),l.emit("patch",{schema:d}),l.refresh()}}}},subformPopoverComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:PopoverNester",items:[fieldComponent$1,allowMultiple,titleField$1,linkageRules,{name:"setBlockLayout",Component:SchemaSettingsLayoutItem}]}),enableLink={name:"enableLink",type:"switch",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),o=(0,import_react.useField)(),{fieldSchema:r}=useColumnSchema$1(),i=(0,import_react.useFieldSchema)(),n=r||i,{dn:a}=useDesignable();return{title:t("Enable link"),checked:((e=n["x-component-props"])==null?void 0:e.enableLink)!==!1,onChange(l){n["x-component-props"]=P(x({},n==null?void 0:n["x-component-props"]),{enableLink:l}),o.componentProps.enableLink=l,a.emit("patch",{schema:{"x-uid":n["x-uid"],"x-component-props":x({},n==null?void 0:n["x-component-props"])}})}}}},titleField={name:"titleField",type:"select",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),{fieldSchema:i,collectionField:n}=useColumnSchema$1(),a=(0,import_react.useFieldSchema)(),l=i||a,c=useTitleFieldOptions(),u=useCollectionField(),m=n||u,{dn:d}=useDesignable();return{title:o("Title field"),options:c,value:(t=(e=l==null?void 0:l["x-component-props"])==null?void 0:e.fieldNames)==null?void 0:t.label,onChange(p){var g,h;const f={"x-uid":l["x-uid"]},_=P(x(x({},(h=(g=m==null?void 0:m.uiSchema)==null?void 0:g["x-component-props"])==null?void 0:h.fieldNames),r.componentProps.fieldNames),{label:p});l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].fieldNames=_,f["x-component-props"]=l["x-component-props"],r.componentProps.fieldNames=l["x-component-props"].fieldNames,d.emit("patch",{schema:f}),d.refresh()}}}},fieldComponent={name:"fieldComponent",type:"select",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=useIsAddNewForm(),{fieldSchema:r,collectionField:i}=useColumnSchema$1(),n=useFieldModeOptions({fieldSchema:r,collectionField:i}),a=(0,import_react.useFieldSchema)(),l=r||a,c=useFieldComponentName(),{dn:u}=useDesignable();return{title:e("Field component"),options:n,value:c,onChange(m){const d={"x-uid":l["x-uid"]};l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].mode=m,d["x-component-props"]=l["x-component-props"],t.componentProps=t.componentProps||{},t.componentProps.mode=m,isSubMode(l)&&o&&(d.default=null,l.default=null,t.setInitialValue(null),t.setValue(null)),u.emit("patch",{schema:d}),u.refresh()}}}},tagComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:Tag",items:[fieldComponent,{name:"tagColorField",type:"select",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),n=useCollectionField(),{fieldSchema:a,collectionField:l}=useColumnSchema$1(),c=a||i,u=l||n,{dn:m}=useDesignable(),d=useColorFields((e=u==null?void 0:u.target)!=null?e:u==null?void 0:u.targetCollection);return{title:o("Tag color field"),options:d,value:(t=c==null?void 0:c["x-component-props"])==null?void 0:t.tagColorField,onChange(p){const g={"x-uid":c["x-uid"]};c["x-component-props"]=c["x-component-props"]||{},c["x-component-props"].tagColorField=p,g["x-component-props"]=c["x-component-props"],r.componentProps.tagColorField=p,m.emit("patch",{schema:g}),m.refresh()}}}},titleField,enableLink,ellipsisSettingsItem]}),unixTimestampComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:UnixTimestamp",items:[{name:"dateDisplayFormat",Component:SchemaSettingsDateFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}},enableLinkSettingsItem,openModeSettingsItem]});function GroupTitleEditor(e){const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r}=useDesignable(),{t:i}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:i("Edit group title"),schema:{type:"object",title:i("Edit group title"),properties:{children:{"x-decorator":"FormItem","x-component":"Input",title:i("Group title"),default:t.componentProps.children,"x-component-props":{}}}},onSubmit:({children:n})=>{t.componentProps.children=n,o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].children=n,r.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":x({},o["x-component-props"])}}),r.refresh()}})}const dividerSettings=new SchemaSettings({name:"blockSettings:divider",items:[{name:"editTitle",type:"item",Component:GroupTitleEditor},{name:"orientation",type:"select",useComponentProps(){var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{t:r}=(0,import_react_i18next.useTranslation)(),{dn:i}=useDesignable();return{title:r("Title position"),value:((e=t.componentProps)==null?void 0:e.orientation)||"left",options:[{label:r("Left"),value:"left"},{label:r("Center"),value:"center"},{label:r("Right"),value:"right"}],onChange:n=>{t.componentProps=t.componentProps||{},t.componentProps.orientation=n,o["x-component-props"]=o["x-component-props"]||{},o["x-component-props"].orientation=n,i.emit("patch",{schema:{"x-uid":o["x-uid"],"x-component-props":o["x-component-props"]}})}}}},{name:"dashed",type:"switch",useComponentProps:()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable();return{title:o("Dashed"),defaultChecked:!0,checked:e.componentProps.dashed,onChange:i=>{e.componentProps.dashed=i,t["x-component-props"].dashed=i,i===!1&&(t["x-component-props"].dashed=!1),r.emit("patch",{schema:t}),r.refresh()}}}},{name:"color",type:"item",useComponentProps:()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[e("Color"),(0,import_jsx_runtime.jsx)("div",{style:{float:"right"},children:(0,import_jsx_runtime.jsx)(ColorPicker,{defaultValue:o.componentProps.color||"rgba(0, 0, 0, 0.88)",onChange:i=>{o.componentProps=o.componentProps||{},o.componentProps.color=i,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].color=i,t.emit("patch",{schema:r}),t.refresh()}})})]})}}},{name:"borderColor",type:"item",useComponentProps:()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[e("Divider line color"),(0,import_jsx_runtime.jsx)("div",{style:{float:"right"},children:(0,import_jsx_runtime.jsx)(ColorPicker,{defaultValue:o.componentProps.borderColor||"rgba(5, 5, 5, 0.06)",onChange:i=>{o.componentProps=o.componentProps||{},o.componentProps.borderColor=i,r["x-component-props"]=r["x-component-props"]||{},r["x-component-props"].borderColor=i,t.emit("patch",{schema:r}),t.refresh()}})})]})}}},{name:"delete",type:"remove",useComponentProps(){return{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}}]});class SchemaSettingsPlugin extends Plugin{load(){return q(this,null,function*(){this.schemaSettingsManager.add(tableBlockSettings),this.schemaSettingsManager.add(createFormBlockSettings),this.schemaSettingsManager.add(editFormBlockSettings),this.schemaSettingsManager.add(filterFormBlockSettings),this.schemaSettingsManager.add(filterFormItemFieldSettings),this.schemaSettingsManager.add(multiDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsWithPaginationSettings),this.schemaSettingsManager.add(singleDataDetailsBlockSettings),this.schemaSettingsManager.add(detailsBlockSettings),this.schemaSettingsManager.add(tableSelectorBlockSettings),this.schemaSettingsManager.add(listBlockSettings),this.schemaSettingsManager.add(gridCardBlockSettings),this.schemaSettingsManager.add(filterCollapseBlockSettings),this.schemaSettingsManager.add(markdownBlockSettings),this.schemaSettingsManager.add(addNewActionSettings),this.schemaSettingsManager.add(filterActionSettings),this.schemaSettingsManager.add(refreshActionSettings),this.schemaSettingsManager.add(viewActionSettings),this.schemaSettingsManager.add(editActionSettings),this.schemaSettingsManager.add(deleteActionSettings),this.schemaSettingsManager.add(disassociateActionSettings),this.schemaSettingsManager.add(associateActionSettings),this.schemaSettingsManager.add(bulkDeleteActionSettings),this.schemaSettingsManager.add(customizeAddRecordActionSettings),this.schemaSettingsManager.add(customizePopupActionSettings),this.schemaSettingsManager.add(customizeLinkActionSettings),this.schemaSettingsManager.add(customizeUpdateRecordActionSettings),this.schemaSettingsManager.add(createSubmitActionSettings),this.schemaSettingsManager.add(updateSubmitActionSettings),this.schemaSettingsManager.add(submitActionSettings),this.schemaSettingsManager.add(customizeSaveRecordActionSettings),this.schemaSettingsManager.add(addChildActionSettings),this.schemaSettingsManager.add(expendableActionSettings),this.schemaSettingsManager.add(fieldSettingsFormItem),this.schemaSettingsManager.add(tableColumnSettings),this.schemaSettingsManager.add(filterCollapseItemFieldSettings),this.schemaSettingsManager.add(selectComponentFieldSettings),this.schemaSettingsManager.add(filterSelectComponentFieldSettings),this.schemaSettingsManager.add(recordPickerComponentFieldSettings),this.schemaSettingsManager.add(subformComponentFieldSettings),this.schemaSettingsManager.add(subformPopoverComponentFieldSettings),this.schemaSettingsManager.add(subTablePopoverComponentFieldSettings),this.schemaSettingsManager.add(datePickerComponentFieldSettings),this.schemaSettingsManager.add(rangePickerPickerComponentFieldSettings),this.schemaSettingsManager.add(unixTimestampComponentFieldSettings),this.schemaSettingsManager.add(inputNumberComponentFieldSettings),this.schemaSettingsManager.add(inputComponentSettings),this.schemaSettingsManager.add(inputURLSettings),this.schemaSettingsManager.add(inputTextAreaSettings),this.schemaSettingsManager.add(inputJSONSettings),this.schemaSettingsManager.add(markdownSettings),this.schemaSettingsManager.add(markdownVditorSettings),this.schemaSettingsManager.add(richTextSettings),this.schemaSettingsManager.add(fileManagerComponentFieldSettings),this.schemaSettingsManager.add(tagComponentFieldSettings),this.schemaSettingsManager.add(cascadeSelectComponentFieldSettings),this.schemaSettingsManager.add(inputPreviewComponentFieldSettings),this.schemaSettingsManager.add(uploadAttachmentComponentFieldSettings),this.schemaSettingsManager.add(previewComponentFieldSettings),this.schemaSettingsManager.add(dividerSettings)})}}const useBuiltInVariables=()=>{const{currentUserCtx:e}=useCurrentUserVariable(),{currentRoleCtx:t}=useCurrentRoleVariable(),{apiTokenCtx:o}=useAPITokenVariable(),{datetimeCtx:r}=useDatetimeVariable(),{urlSearchParamsCtx:i,name:n,defaultValue:a}=useURLSearchParamsVariable();return{builtinVariables:(0,import_react2.useMemo)(()=>[{name:"$user",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nRole",ctx:t,collectionName:"roles"},{name:"$nToken",ctx:o},{name:"currentUser",ctx:e,collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY},{name:"$nDate",ctx:r},{name:"$date",ctx:r},{name:"$system",ctx:{now:()=>(0,import_client.dayjs)().toISOString()}},{name:"currentTime",ctx:()=>(0,import_client.dayjs)().toISOString()},{name:n,ctx:i,defaultValue:a}],[t,e,r,a,i,n])}},filterEmptyValues=e=>Array.isArray(e)?e.filter(t=>t===0||t===!1||t):e,TYPE_TO_ACTION={hasMany:"list?pageSize=9999",belongsTo:"get",hasOne:"get",belongsToMany:"list?pageSize=9999",belongsToArray:"get"},getAction=e=>TYPE_TO_ACTION[e],requested={},hasRequested=e=>!!requested[e],getRequested=e=>requested[e],stashRequested=(e,t)=>{requested[e]=t},clearRequested=e=>{delete requested[e]},uniq=e=>!Array.isArray(e)||!import_lodash.default.isObject(e[0])?e:import_lodash.default.uniqBy(e,t=>"id"in t?t.id:JSON.stringify(t)),VariablesContext=(0,import_react2.createContext)(null);VariablesContext.displayName="VariablesContext";const variablesStore={},getFieldPath=(e,t)=>{let o,r;return{fieldPath:e.split(".").map(i=>t[i]?(o=t[i].dataSource,r=t[i],t[i].collectionName):i).join("."),dataSource:o,variableOption:r}},VariablesProvider=({children:e,filterVariables:t})=>{const o=(0,import_react2.useRef)({}),r=useAPIClient(),{getCollectionJoinField:i,getCollection:n}=useCollectionManager_deprecated(),a=useCompile(),{builtinVariables:l}=useBuiltInVariables(),c=(0,import_react2.useCallback)(_=>{import_lodash.default.isFunction(_)?o.current=_(o.current):o.current=_},[]),u=(0,import_react2.useCallback)((_,v,S)=>q(void 0,null,function*(){var C,b;const y=_.split("."),F=y[0],j=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v);let k=mergeCtxWithLocalVariables(o.current,v);const{fieldPath:T,dataSource:O,variableOption:N}=getFieldPath(F,j);let L=T;const{fieldPath:D}=getFieldPath(_,j),R=y.length===1?N==null?void 0:N.collectionName:(C=i(D,O))==null?void 0:C.target;if(!(F in k))throw new Error(`VariablesProvider: ${F} is not found`);for(let w=0;w<y.length;w++){if(k==null)return{value:k===void 0?N==null?void 0:N.defaultValue:k,dataSource:O,collectionName:R};const I=y[w],{fieldPath:M}=getFieldPath(y.slice(0,w+1).join("."),j),B=i(M,O),z=(b=n(L,O))==null?void 0:b.getPrimaryKey();if(Array.isArray(k)){const E=k.map(V=>{if(!(S!=null&&S.doNotRequest)&&shouldToRequest(V==null?void 0:V[I])&&(V==null?void 0:V[z])!=null&&B!=null&&B.target){const U=`/${L}/${V[B.sourceKey||z]}/${I}:${getAction(B.type)}`;if(hasRequested(U))return getRequested(U);const G=r.request({headers:getDataSourceHeaders(O),url:U,params:{appends:S==null?void 0:S.appends}}).then(W=>(clearRequested(U),V[I]=W.data.data,V[I]));return stashRequested(U,G),G}return V==null?void 0:V[I]});k=removeThroughCollectionFields(import_lodash.default.flatten(yield Promise.all(E)),B)}else if(!(S!=null&&S.doNotRequest)&&shouldToRequest(k[I])&&k[z]!=null&&B!=null&&B.target){const E=`/${L}/${k[B.sourceKey||z]}/${I}:${getAction(B.type)}`;let V=null;if(hasRequested(E))V=yield getRequested(E);else{const U=r.request({headers:getDataSourceHeaders(O),url:E,params:{appends:S==null?void 0:S.appends}});stashRequested(E,U),V=yield U,clearRequested(E)}(0,import_reactive.raw)(k)[I]||((0,import_reactive.raw)(k)[I]=V.data.data),k=removeThroughCollectionFields((0,import_client.getValuesByPath)(k,I),B)}else k=removeThroughCollectionFields((0,import_client.getValuesByPath)(k,I),B);B!=null&&B.target&&(L=B.target)}const $=a(import_lodash.default.isFunction(k)?k({fieldOperator:S==null?void 0:S.fieldOperator,isParsingVariable:!0}):k);return{value:$===void 0?N.defaultValue:$,dataSource:O,collectionName:R}}),[i]),m=(0,import_react2.useCallback)(_=>{if(!isVariable(`{{${_.name}}}`))throw new Error(`VariablesProvider: ${_.name} is not a valid name`);c(v=>P(x({},v),{[_.name]:_.ctx})),variablesStore[_.name]=P(x({},_),{defaultValue:import_lodash.default.has(_,"defaultValue")?_.defaultValue:null})},[c]),d=(0,import_react2.useCallback)(_=>o.current[_]?x({},variablesStore[_]):null,[]),p=(0,import_react2.useCallback)(_=>{c(v=>{const S=x({},v);return delete S[_],S}),delete variablesStore[_]},[c]),g=(0,import_react2.useCallback)((_,v,S)=>q(void 0,null,function*(){if(!isVariable(_))return _;v&&(v=import_lodash.default.isArray(v)?v:[v]);const C=getPath(_),b=yield u(C,v,S);return P(x({},b),{value:uniq(filterEmptyValues(b.value))})}),[u]),h=(0,import_react2.useCallback)((_,v)=>q(void 0,null,function*(){var S;if(!isVariable(_))throw new Error(`VariablesProvider: ${_} is not a variable string`);v&&(v=import_lodash.default.isArray(v)?v:[v]);const C=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v),b=getPath(_),{fieldPath:y,dataSource:F}=getFieldPath(b,C);let j=i(y,F);return!j&&!b.includes(".")&&(j={target:(S=C[b])==null?void 0:S.collectionName}),j}),[i]);(0,import_react2.useEffect)(()=>{l.forEach(_=>{m(P(x({},_),{defaultValue:import_lodash.default.has(_,"defaultValue")?_.defaultValue:null}))})},[l,m]);const f=(0,import_react2.useMemo)(()=>({ctxRef:o,setCtx:c,parseVariable:g,registerVariable:m,getVariable:d,getCollectionField:h,removeVariable:p,filterVariables:t}),[h,d,g,m,p,c]);return(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:f,children:e})};VariablesProvider.displayName="VariablesProvider";const VariablesProvider$1=VariablesProvider;function shouldToRequest(e){let t=!1;return(0,import_reactive.untracked)(()=>{if(JSON.stringify(e)==="[{}]"||JSON.stringify(e)==="{}"){t=!0;return}t=import_lodash.default.isEmpty(e)}),t}function mergeCtxWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=o.ctx}),e}function mergeVariableToCollectionNameWithLocalVariables(e,t){return e=x({},e),t==null||t.forEach(o=>{e[o.name]=P(x({},o),{defaultValue:import_lodash.default.has(o,"defaultValue")?o.defaultValue:null})}),e}function removeThroughCollectionFields(e,t){return!(t!=null&&t.through)||!e?e:Array.isArray(e)?e.map(o=>import_lodash.default.omit(o,t.through)):import_lodash.default.omit(e,t.through)}const mergeChildren=(e,t)=>{if(!(!e&&!t)&&!(0,import_shared.isFn)(e))return(0,import_jsx_runtime.jsxs)(import_react2.Fragment,{children:[e,t]})},isValidComponent=e=>e&&(typeof e=="object"||typeof e=="function"),renderChildren=(e,t,o)=>(0,import_shared.isFn)(e)?e(t,o):e,NocoBaseReactiveInternal=e=>{var t;const o=(0,import_react2.useContext)(import_react.SchemaComponentsContext),r=e.field,i=mergeChildren(renderChildren(e.children,r,r.form),(t=r.content)!=null?t:r.componentProps.children);if(r.display!=="visible")return null;const n=a=>{var l;return isValidComponent(a)?a:(l=import_shared.FormPath.getIn(o,a))!=null?l:a};return(a=>r.decoratorType?import_react2.default.createElement(n(r.decoratorType),r.decoratorProps,a):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:a}))(r.componentType?import_react2.default.createElement(n(r.componentType),P(x({},r.componentProps),{value:r.value}),i):i)};NocoBaseReactiveInternal.displayName="NocoBaseReactiveInternal";const NocoBaseReactiveField=NocoBaseReactiveInternal;NocoBaseReactiveField.displayName="NocoBaseReactiveField";function createNocoBaseField(e){return new NocoBaseField$1(e)}let NocoBaseField$1=class{constructor(e){A(this,"props"),A(this,"initialized"),A(this,"loading"),A(this,"validating"),A(this,"submitting"),A(this,"selfModified"),A(this,"active"),A(this,"visited"),A(this,"mounted"),A(this,"unmounted"),A(this,"inputValues"),A(this,"inputValue"),A(this,"feedbacks"),A(this,"title"),A(this,"description"),A(this,"display"),A(this,"pattern"),A(this,"editable"),A(this,"disabled"),A(this,"readOnly"),A(this,"readPretty"),A(this,"visible"),A(this,"hidden"),A(this,"dataSource"),A(this,"validator"),A(this,"required"),A(this,"content"),A(this,"initialValue"),A(this,"value"),A(this,"data"),A(this,"decorator"),A(this,"component"),A(this,"decoratorProps"),A(this,"componentProps"),A(this,"decoratorType"),A(this,"componentType"),A(this,"path"),A(this,"form"),A(this,"address"),this.props=e,this.initialize()}initialize(){var e,t,o,r,i,n,a,l,c,u,m,d,p,g,h,f,_,v,S,C;const b=this.props.compile;this.pattern="readPretty",this.readPretty=!0,this.initialized=!0,this.loading=!1,this.validating=!1,this.submitting=!1,this.selfModified=!1,this.active=!1,this.visited=!0,this.mounted=!0,this.unmounted=!1,this.inputValues=[],this.inputValue=null,this.feedbacks=[],this.title=b(this.props.title||((e=this.props.schema)==null?void 0:e.title)),this.description=b(this.props.description||((t=this.props.schema)==null?void 0:t.description)),this.display="visible",this.editable=this.props.editable||((o=this.props.schema)==null?void 0:o["x-editable"]),this.disabled=this.props.disabled||((r=this.props.schema)==null?void 0:r["x-disabled"]),this.readOnly=this.props.readOnly||((i=this.props.schema)==null?void 0:i["x-read-only"]),this.visible=this.props.visible||((n=this.props.schema)==null?void 0:n["x-visible"]),this.hidden=this.props.hidden||((a=this.props.schema)==null?void 0:a["x-hidden"]),this.dataSource=b(this.props.dataSource||((l=this.props.schema)==null?void 0:l.enum)),this.validator=this.props.validator,this.required=this.props.required||!!((c=this.props.schema)!=null&&c.required),this.content=b(this.props.content||((u=this.props.schema)==null?void 0:u["x-content"])),this.initialValue=b(this.props.initialValue||((m=this.props.schema)==null?void 0:m.default)),this.value=b(this.props.value),this.data=this.props.data||((d=this.props.schema)==null?void 0:d["x-data"]),this.decorator=this.props.decorator?(0,import_shared.toArr)(this.props.decorator):[(p=this.props.schema)==null?void 0:p["x-decorator"],(g=this.props.schema)==null?void 0:g["x-decorator-props"]],this.component=this.props.component?(0,import_shared.toArr)(this.props.component):[(h=this.props.schema)==null?void 0:h["x-component"],(f=this.props.schema)==null?void 0:f["x-component-props"]],this.decoratorProps=((_=this.props.schema)==null?void 0:_["x-decorator-props"])||{},this.componentProps=((v=this.props.schema)==null?void 0:v["x-component-props"])||{},this.decoratorType=(S=this.props.schema)==null?void 0:S["x-decorator"],this.componentType=(C=this.props.schema)==null?void 0:C["x-component"],this.path={},this.form={},this.address={concat:import_lodash.default.noop}}};const NocoBaseField=e=>{const t=useCompile(),o=(0,import_react.useFieldSchema)(),r=(0,import_react2.useMemo)(()=>createNocoBaseField(P(x({},e),{compile:t})),[]);return Object.assign(r.componentProps,o["x-component-props"]),r.value=e.value,(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:r,children:(0,import_jsx_runtime.jsx)(NocoBaseReactiveField,{field:r,children:e.children})})},CollectionFieldUISchemaContext=import_react2.default.createContext({}),RefreshFieldSchemaContext=import_react2.default.createContext(import_lodash.default.noop),RefreshFieldSchemaProvider=({children:e,refresh:t})=>{const o=useRefreshFieldSchema(),r=(0,import_react2.useCallback)(i=>{t(),i!=null&&i.refreshParentSchema&&(o==null||o())},[o,t]);return(0,import_jsx_runtime.jsx)(RefreshFieldSchemaContext.Provider,{value:r,children:e})},RefreshComponentContext=import_react2.default.createContext(import_lodash.default.noop),RefreshComponentProvider=({children:e,refresh:t})=>(0,import_jsx_runtime.jsx)(RefreshComponentContext.Provider,{value:t,children:e}),useRefreshComponent=()=>import_react2.default.useContext(RefreshComponentContext),useRefreshFieldSchema=()=>import_react2.default.useContext(RefreshFieldSchemaContext),useCollectionFieldUISchema=()=>import_react2.default.useContext(CollectionFieldUISchemaContext)||{},CollectionFieldUISchemaProvider=e=>{const{children:t,fieldSchema:o}=e,r=useCollection(),i=useCollectionManager(),n=o==null?void 0:o.name,a=(0,import_react2.useMemo)(()=>{var l;if(!r)return null;const c=(l=o==null?void 0:o["x-component-props"])==null?void 0:l.field;return i.getCollectionField(o==null?void 0:o["x-collection-field"])||c||r.getField((c==null?void 0:c.name)||n)},[r,i,o,n]);return(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:a,children:t})},toFieldProps=import_lodash.default.memoize((e,t)=>e.toFieldProps({scope:t})),useFieldProps$1=e=>{const t=(0,import_react.useExpressionScope)();return toFieldProps(e,t)},useBasePath=e=>{var t;const o=(0,import_react.useField)();return e.onlyRenderProperties?e.basePath||((t=o==null?void 0:o.address)==null?void 0:t.concat(e.name)):e.basePath||(o==null?void 0:o.address)},createMergedSchemaInstance=(e,t,o)=>{const r=e.toJSON();if(o){if(!r.properties)return e;const i=Object.keys(r.properties)[0],n=Object.values(r.properties)[0];return r.properties[i]=(0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),n),new import_react.Schema(r)}return new import_react.Schema((0,import_shared.merge)(import_lodash.default.omit(t,"type","x-read-pretty"),r))},propertiesToReactElement=({schema:e,field:t,basePath:o,mapProperties:r,filterProperties:i,propsRecursion:n,values:a,isUseFormilyField:l})=>{const c=import_react.Schema.getOrderProperties(e);return c.length?(0,import_jsx_runtime.jsx)(import_react2.Fragment,{children:c.map(({schema:u,key:m},d)=>{const p=(t==null?void 0:t.address)||o;let g=u;if((0,import_shared.isFn)(r)){const f=r(u,m);f&&(g=f)}if((0,import_shared.isFn)(i)&&i(g,m)===!1)return null;const h=(0,import_shared.isBool)(n)&&n?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{propsRecursion:!0,filterProperties:i,mapProperties:r,schema:g,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l}):(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:g,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l});return g["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaProvider,{fieldSchema:g,children:h})},`${d}-${m}`):(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:EMPTY_OBJECT,children:h})},`${d}-${m}`)})}):null},IsInNocoBaseRecursionFieldContext=import_react2.default.createContext(!1),useIsInNocoBaseRecursionFieldContext=()=>import_react2.default.useContext(IsInNocoBaseRecursionFieldContext),NocoBaseRecursionField=import_react2.default.memo(e=>{const{schema:t,name:o,onlyRenderProperties:r,onlyRenderSelf:i,mapProperties:n,filterProperties:a,propsRecursion:l,values:c,isUseFormilyField:u=!0,uiSchema:m}=e,d=useBasePath(e),p=(0,import_react2.useRef)(null),g=(0,import_react2.useMemo)(()=>(p.current=null,new import_react.Schema(t)),[t]),{uiSchema:h,defaultValue:f}=useCollectionFieldUISchema(),_=(0,import_ahooks.useUpdate)(),{onChange:v}=(0,import_react2.useContext)(SchemaComponentOnChangeContext),S=p.current||g,C=(0,import_react2.useCallback)(()=>{const k=S.parent;p.current=new import_react.Schema(S.toJSON(),k),k!=null&&k.properties&&Object.keys(k.properties).forEach(T=>{T===S.name&&(k.properties[T]=p.current)}),_(),v==null||v()},[S,v,_]),b=(0,import_react2.useMemo)(()=>m?createMergedSchemaInstance(S,m,r):h?(h.default=f,createMergedSchemaInstance(S,h,r)):S,[h,f,S,r,m]),y=useFieldProps$1(b),F=k=>{if(!i)return propertiesToReactElement({schema:S,field:k,basePath:d,mapProperties:n,filterProperties:a,propsRecursion:l,values:c,isUseFormilyField:u})},j=()=>(0,import_shared.isValid)(o)?b.type==="object"?r?F():(0,import_jsx_runtime.jsx)(import_react.ObjectField,P(x({},y),{name:o,basePath:d,children:F})):b.type==="array"?(0,import_jsx_runtime.jsx)(import_react.ArrayField,P(x({},y),{name:o,basePath:d})):b.type==="void"?r?F():(0,import_jsx_runtime.jsx)(import_react.VoidField,P(x({},y),{name:o,basePath:d,children:F})):u?(0,import_jsx_runtime.jsx)(import_react.Field,P(x({},y),{name:o,basePath:d})):(0,import_jsx_runtime.jsx)(NocoBaseField,{name:o,value:c,initialValue:c,basePath:d,schema:b}):F();return S?(0,import_jsx_runtime.jsx)(import_react.SchemaContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(RefreshFieldSchemaProvider,{refresh:C,children:j()})}):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{})});NocoBaseRecursionField.displayName="NocoBaseRecursionField";const 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.5.2",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.1.4","@ant-design/pro-layout":"^7.16.11","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"^0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^5.0.1","@dnd-kit/modifiers":"^6.0.0","@dnd-kit/sortable":"^6.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.1.9","@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.5.2","@nocobase/sdk":"1.5.2","@nocobase/utils":"1.5.2",ahooks:"^3.7.2",antd:"5.12.8","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",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",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:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","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){A(this,"current"),A(this,"options"),A(this,"appVersion"),A(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:m,removed:d}){var p;let g=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(g=g.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(g=g.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const h=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});g.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:g})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["x-uid"]}`,method:"post"})),n==null||n((p=h==null?void 0:h.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,m=0;this.current.parent.mapProperties((f,_)=>{_===this.current.name&&(m=u,c=!0,++u),f["x-index"]=u,++u,c&&(l[_]=f,this.current.parent.removeProperty(_))}),this.prepareProperty(t);const d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p["x-index"]=m,p.parent=this.current.parent,this.current.parent.setProperties(l);const[g,h]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:h,wrapped:d,wrap:g},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((g,h)=>{g["x-index"]=c,++c,l[h]=g}),this.current.properties={},this.prepareProperty(t);const u=i(t),m=this.current.addProperty(u.name||(0,import_shared.uid)(),u);m["x-index"]=0,m.parent=this.current,this.current.setProperties(l);const[d,p]=splitWrapSchema(m,t);this.emit("insertAdjacent",x({position:"afterBegin",schema:p,wrap:d,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,m]=splitWrapSchema(c,t);return this.emit("insertAdjacent",x({position:"beforeEnd",schema:m,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 m={};if(this.current.parent.mapProperties((f,_)=>{f["x-index"]=l,_===this.current.name&&(++l,c=l,u=!0),++l,u&&_!==this.current.name&&(m[_]=f,this.current.parent.removeProperty(_))}),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 d=i(t),p=this.current.parent.addProperty(d.name||(0,import_shared.uid)(),d);p.parent=this.current.parent,p["x-index"]=c,this.current.parent.setProperties(m);const[g,h]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:h,wrap:g,wrapped:d},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(),m=(0,import_react2.useCallback)(_=>{o==null||o(),l(),c==null||c(_),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),g=useAPIClient(),{t:h}=(0,import_react_i18next.useTranslation)(),f=(0,import_react2.useMemo)(()=>createDesignable({t:h,api:g,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[h,g,m,p,d]);return(0,import_react2.useEffect)(()=>{f.loadAPIClientEvents()},[f]),{dn:f,designable:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(_=>{var v;if(!_)return null;if(typeof _!="string")return _;const S=(0,import_get.default)(n,_);return(v=S[LAZY_COMPONENT_KEY])!=null?v:S},[import_get.default]),on:f.on.bind(f),patch:(0,import_react2.useCallback)((_,v)=>{const S=C=>{Object.keys(C).forEach(b=>{const y=C[b];b==="title"&&(d.title=y,p.title=y),b==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(y).forEach(F=>{d.decoratorProps[F]=y[F],p["x-decorator-props"][F]=y[F]})),b==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(y).forEach(F=>{d.componentProps[F]=y[F],p["x-component-props"][F]=y[F]}))})};if(typeof _=="string"){const C={};return(0,import_set.default)(C,_,v),S(C)}S(_),m()},[f]),shallowMerge:(0,import_react2.useCallback)(_=>{f.shallowMerge(_)},[f]),deepMerge:(0,import_react2.useCallback)(_=>{f.deepMerge(_)},[f]),remove:(0,import_react2.useCallback)((_,v)=>{f.remove(_,v)},[f]),insertAdjacent:(0,import_react2.useCallback)((_,v,S)=>{f.insertAdjacent(_,v,S)},[f]),insertBeforeBegin:(0,import_react2.useCallback)(_=>{f.insertBeforeBegin(_)},[f]),insertAfterBegin:(0,import_react2.useCallback)(_=>{f.insertAfterBegin(_)},[f]),insertBeforeEnd:(0,import_react2.useCallback)(_=>{f.insertBeforeEnd(_)},[f]),insertAfterEnd:(0,import_react2.useCallback)(_=>{f.insertAfterEnd(_)},[f])}}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=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])},getPageHeaderHeight=(e,t,o,r,i)=>i.includes("/popups/")?2*r.paddingContentVertical+22+r.paddingPageVertical:e?r.paddingContentHorizontalLG:o?t?r.controlPaddingHorizontal+3*r.controlPaddingHorizontalSM+22+r.paddingContentHorizontalLG:r.paddingContentHorizontalLG+12:t?r.paddingSM+r.controlHeight+r.marginXS+2*r.controlPaddingHorizontalSM+22+r.paddingContentHorizontalLG:r.controlHeight+r.marginXS+(r.paddingXXS+2)*2+r.paddingContentHorizontalLG,usePageFullScreenHeight=e=>{const{token:t}=import_antd.theme.useToken(),{designable:o}=useDesignable(),{heightProps:r}=useBlockHeightProps(),i=(0,import_react_router_dom.useLocation)(),{disablePageHeader:n,enablePageTabs:a,hidePageTitle:l}=e||r||{},c=t.sizeXXL-2,u=o?t.controlHeight+2*t.paddingContentHorizontalLG:1*t.paddingContentHorizontalLG,m=getPageHeaderHeight(n,a,l,t,i.pathname);return c+m+u},useDrawerFullScreenHeight=()=>{const{token:e}=import_antd.theme.useToken(),{designable:t}=useDesignable(),o=e.paddingContentVerticalLG+e.margin+2*e.paddingContentVertical+24,r=t?e.controlHeight+2*e.paddingContentHorizontalLG:1*e.paddingContentHorizontalLG;return o+r},useFullScreenHeight=e=>{const t=(0,import_react.useFieldSchema)(),o=hasActionContainerInParentChain(t),r=usePageFullScreenHeight(e),i=useDrawerFullScreenHeight();return o?i:r},InternalWorkflowCollection=["users_jobs","approvals","approvalRecords"],useTableHeight=()=>{var e;const{token:t}=import_antd.theme.useToken(),{heightProps:o}=useBlockHeightProps(),{heightProps:r}=useTableBlockContext(),{designable:i}=useDesignable(),n=(0,import_react.useFieldSchema)(),a=r||o,l=useFullScreenHeight(a),{name:c}=useCollection(),{heightMode:u,height:m,title:d}=a;if(!(a!=null&&a.heightMode)||u===HeightMode.DEFAULT)return;const p=Object.keys(((e=n.parent.properties.actions)==null?void 0:e.properties)||{}).length>0,g=t.controlHeight+t.padding+t.marginLG,h=p||i?t.controlHeight+2*t.marginLG:t.marginLG,f=(i&&!InternalWorkflowCollection.includes(c)?t.controlHeight:22)+2*t.padding+1,_=d?t.fontSizeLG*t.lineHeightLG+t.padding*2-1:0;return u===HeightMode.FULL_HEIGHT?window.innerHeight-l-_-f-h-g:m-_-h-f-g},useDataBlockHeight=e=>{const{heightProps:t}=useBlockHeightProps(),o=useFullScreenHeight(),{token:r}=import_antd.theme.useToken(),{heightMode:i,height:n,title:a}=t||{},l=a?r.fontSizeLG*r.lineHeightLG+r.padding*2-1:0;if(!(!(t!=null&&t.heightMode)||i===HeightMode.DEFAULT)){if(i===HeightMode.FULL_HEIGHT){let c=window.innerHeight-o;return e!=null&&e.removeBlockHeaderHeight&&(c=c-l),e!=null&&e.innerExtraHeight&&(c=c-e.innerExtraHeight),c}return n}},useBlockHeight=()=>{const e=(0,import_react.useFieldSchema)(),t=(0,import_react2.useMemo)(()=>getPageSchema(e),[]),{disablePageHeader:o,enablePageTabs:r,hidePageTitle:i}=(t==null?void 0:t["x-component-props"])||{},n=P(x({},e==null?void 0:e["x-component-props"]),{disablePageHeader:o,enablePageTabs:r,hidePageTitle:i}),a=useFullScreenHeight(n),{heightMode:l,height:c}=n||{};if(!(!(n!=null&&n.heightMode)||l===HeightMode.DEFAULT))return l===HeightMode.FULL_HEIGHT?window.innerHeight-a:c},useTableSize=()=>{const[e,t]=(0,import_react2.useState)(),o=(0,import_react2.useRef)(null),r=useTableHeight(),i=(0,import_react2.useCallback)((0,import_lodash.debounce)(()=>{var a;if(!o.current)return;const l=o.current.getBoundingClientRect();(a=o.current.querySelector(".ant-table"))!=null&&a.getBoundingClientRect()&&t(l.width)},100),[r]),n=(0,import_react2.useCallback)(a=>{o.current=a&&a.children?a.children[0]:null,i()},[i]);return(0,import_ahooks.useEventListener)("resize",i),{height:r,width:e,tableSizeRefCallback:n}},hasActionContainerInParentChain=e=>{var t;return e?e["x-component"]==="Action.Container"?((t=e==null?void 0:e.parent["x-component-props"])==null?void 0:t.openMode)!=="page":hasActionContainerInParentChain(e.parent):null},useFieldModeOptions=e=>{var t;const{t:o}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:r,getCollection:i}=useCollectionManager_deprecated(),n=(0,import_react.useFieldSchema)(),a=(e==null?void 0:e.fieldSchema)||n,l=(0,import_react.useField)(),c=(0,import_react.useForm)(),u=(a==null?void 0:a["x-read-pretty"])||l.readPretty||c.readPretty,m=e==null?void 0:e.fieldSchema,{getField:d}=useCollection_deprecated(),p=(e==null?void 0:e.collectionField)||d(a.name)||r(a["x-collection-field"]),{label:g}=((t=a["x-component-props"])==null?void 0:t.fieldNames)||{};return((0,import_react2.useMemo)(()=>{if(!p||!(p!=null&&p.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m","updatedBy","createdBy","mbm","attachmentURL"].includes(p.interface))return;const h=i(p.target);if((h==null?void 0:h.template)==="file")return u?[{label:o("Title"),value:"Select"},{label:o("File manager"),value:"FileManager"},{label:o("Tag"),value:"Tag"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},{label:o("File manager"),value:"FileManager"}];if((h==null?void 0:h.template)==="tree"&&["m2m","o2m","m2o"].includes(p.interface))return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"},!m&&{label:o("Sub-table"),value:"SubTable"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&["m2m","o2m"].includes(p.interface)&&{label:o("Sub-table"),value:"SubTable"},!m&&{label:o("Cascade Select"),value:"CascadeSelect"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}];switch(p.interface){case"o2m":return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-table"),value:"SubTable"},!m&&{label:o("Sub-details"),value:"Nester"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"},!m&&{label:o("Sub-table"),value:"SubTable"}];case"m2m":case"mbm":return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"},!m&&{label:o("Sub-table"),value:"SubTable"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-table"),value:"SubTable"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}];case"m2o":case"linkTo":return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}];default:return u?[{label:o("Title"),value:"Select"},{label:o("Tag"),value:"Tag"},!m&&{label:o("Sub-details"),value:"Nester"}]:[{label:o("Select"),value:"Select"},{label:o("Record picker"),value:"Picker"},!m&&{label:o("Sub-form"),value:"Nester"},{label:o("Sub-form(Popover)"),value:"PopoverNester"}]}},[o,p==null?void 0:p.interface,g])||[]).filter(Boolean)},useDragEnd=e=>{const{refresh:t}=useDesignable(),o=useAPIClient(),{t:r}=(0,import_react_i18next.useTranslation)();return(0,import_react2.useCallback)(i=>{var n,a,l,c,u,m,d,p,g,h,f,_,v,S,C;const{active:b,over:y}=i,F=(a=(n=b==null?void 0:b.data)==null?void 0:n.current)==null?void 0:a.schema,j=(c=(l=y==null?void 0:y.data)==null?void 0:l.current)==null?void 0:c.schema,k=(m=(u=y==null?void 0:y.data)==null?void 0:u.current)==null?void 0:m.insertAdjacent,T=(p=(d=y==null?void 0:y.data)==null?void 0:d.current)==null?void 0:p.breakRemoveOn,O=(h=(g=y==null?void 0:y.data)==null?void 0:g.current)==null?void 0:h.wrapSchema,N=(_=(f=y==null?void 0:y.data)==null?void 0:f.current)==null?void 0:_.onSuccess,L=(C=(S=(v=y==null?void 0:y.data)==null?void 0:v.current)==null?void 0:S.removeParentsIfNoChildren)!=null?C:!0;if(!F||!j){e==null||e(i);return}if(F===j){e==null||e(i);return}if(F.parent===j&&k==="beforeEnd"){e==null||e(i);return}const D=createDesignable({t:r,api:o,refresh:({refreshParentSchema:R=!0}={})=>t({refreshParentSchema:R}),current:j});if(D.loadAPIClientEvents(),F.parent===j.parent){D.insertBeforeBeginOrAfterEnd(F),e==null||e(i);return}if(k){D.insertAdjacent(k,F,{wrap:O,breakRemoveOn:T,removeParentsIfNoChildren:L,onSuccess:N}),e==null||e(i);return}},[o,e,t,r])},InternalDndContext=import_react2.default.memo(e=>{const{t}=(0,import_react_i18next.useTranslation)(),[o,r]=(0,import_react2.useState)(!0),i=(0,import_react2.useCallback)(a=>{var l,c,u;const{active:m}=a,d=(c=(l=m==null?void 0:m.data)==null?void 0:l.current)==null?void 0:c.schema;r(!!d),e!=null&&e.onDragStart&&((u=e==null?void 0:e.onDragStart)==null||u.call(e,a))},[e==null?void 0:e.onDragStart]),n=useDragEnd(e==null?void 0:e.onDragEnd);return(0,import_jsx_runtime.jsxs)(import_core.DndContext,P(x({collisionDetection:import_core.rectIntersection},e),{onDragStart:i,onDragEnd:n,children:[(0,import_jsx_runtime.jsx)(import_core.DragOverlay,{dropAnimation:{duration:10,easing:"cubic-bezier(0.18, 0.67, 0.6, 1.22)"},children:o&&(0,import_jsx_runtime.jsx)("span",{style:{whiteSpace:"nowrap"},children:t("Dragging")})}),e.children]}))});InternalDndContext.displayName="InternalDndContext";const DndContext=e=>(0,import_jsx_runtime.jsx)(InternalDndContext,x({},e)),DraggableContext=(0,import_react2.createContext)(null);DraggableContext.displayName="DraggableContext";const SortableContext=(0,import_react2.createContext)(null);SortableContext.displayName="SortableContext";const SortableProvider=e=>{const{id:t,data:o,children:r}=e,i=(0,import_core.useDraggable)({id:t,data:o}),n=(0,import_core.useDroppable)({id:t,data:o}),a=(0,import_react2.useMemo)(()=>({draggable:i,droppable:n}),[i,n]);return(0,import_jsx_runtime.jsx)(SortableContext.Provider,{value:a,children:r})},getComputedColor=e=>new import_tinycolor.TinyColor(e).setAlpha(.15).toHex8String(),Sortable=e=>{var t,o;const r=e,{component:i,overStyle:n,style:a,children:l,openMode:c}=r,u=K(r,["component","overStyle","style","children","openMode"]),{token:m}=useToken(),{draggable:d,droppable:p}=(0,import_react2.useContext)(SortableContext),{isOver:g,setNodeRef:h}=p,f=x({},a);return g&&((t=d==null?void 0:d.active)==null?void 0:t.id)!==((o=p==null?void 0:p.over)==null?void 0:o.id)&&(f[i==="a"?"color":"background"]=getComputedColor(m.colorSettings),Object.assign(f,n)),import_react2.default.createElement(i||"div",P(x({role:"none"},u),{className:(0,import_css.cx)("nb-sortable-designer",e.className),ref:h,style:f}),l)},useSortableItemProps=e=>{const t=useSortableItemId(e),o=(0,import_react.useFieldSchema)();return e.schema?P(x({},e),{id:t}):P(x({},e),{id:t,schema:o})},useSortableItemId=e=>{var t;const o=(0,import_react.useField)();return e.id?e.id:(t=o.address)==null?void 0:t.toString()},InternalSortableItem=(0,import_react.observer)(e=>{const t=useSortableItemProps(e),{schema:o,id:r,eid:i,removeParentsIfNoChildren:n}=t,a=K(t,["schema","id","eid","removeParentsIfNoChildren"]),l=(0,import_react2.useMemo)(()=>({insertAdjacent:"afterEnd",schema:o,removeParentsIfNoChildren:n??!0}),[o,n]);return(0,import_jsx_runtime.jsx)(SortableProvider,{id:r,data:l,children:(0,import_jsx_runtime.jsx)(Sortable,P(x({id:i},a),{children:e.children}))})},{displayName:"InternalSortableItem"}),SortableItem=import_react2.default.memo(e=>{const t=e,{component:o}=t,r=K(t,["component"]),{designable:i}=useDesignable();return i?(0,import_jsx_runtime.jsx)(InternalSortableItem,x({},e)):import_react2.default.createElement(o||"div",import_lodash.default.omit(r,["children","schema","overStyle","openMode","id","eid","removeParentsIfNoChildren"]),e.children)});SortableItem.displayName="SortableItem";const DragHandler=e=>{const{draggable:t}=(0,import_react2.useContext)(SortableContext)||{};if(!t)return null;const{attributes:o,listeners:r,setNodeRef:i}=t;return(0,import_jsx_runtime.jsx)("div",{style:{display:"inline-block",width:14,height:14,lineHeight:"14px",textAlign:"left"},children:(0,import_jsx_runtime.jsx)("div",P(x(x({ref:i,style:{position:"relative",zIndex:1,lineHeight:0,fontSize:0,display:"inline-block"}},r),o),{role:"none",children:(0,import_jsx_runtime.jsx)("span",{style:{cursor:"move",fontSize:14},children:e.children})}))})},ShowFormData=(0,import_react.observer)(({children:e})=>{const t=(0,import_react.useForm)();return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("pre",{style:{marginBottom:20},"data-testid":"form-data",children:JSON.stringify(t.values,null,2)}),e]})}),common=Object.freeze(Object.defineProperty({__proto__:null,DndContext,DragHandler,DraggableContext,ShowFormData,Sortable,SortableContext,SortableItem,SortableProvider,getRenderContent},Symbol.toStringTag,{value:"Module"})),requestChartData=e=>function(){return q(this,null,function*(){var t;try{const o=yield this.api.request(e);return(t=o==null?void 0:o.data)==null?void 0:t.data}catch{return[]}})},FormComponent$1=e=>{const t=e,{form:o,children:r}=t,i=K(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=useAttach(o.createVoidField(P(x({},n.props),{basePath:""})));return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},i),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:l.address,schema:a,onlyRenderProperties:!0})}))})})},Def$1=e=>e.children,FormDecorator$1=e=>{const t=e,{form:o,children:r,disabled:i}=t,n=K(t,["form","children","disabled"]),a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),c=useAttach(o.createVoidField(P(x({},a.props),{basePath:""}))),u=useComponent(l["x-component"],Def$1);return(0,import_react2.useEffect)(()=>{o.disabled=i||a.disabled},[i,a.disabled]),(0,import_jsx_runtime.jsx)(import_antd.ConfigProvider,{componentDisabled:i,children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:"vertical"},n),{children:(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:c,children:(0,import_jsx_runtime.jsx)(u,P(x({},a.componentProps),{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:c.address,schema:l,onlyRenderProperties:!0})}))})}))})})})},getRequestParams=e=>{const{request:t,initialValue:o}=e;return t||(()=>Promise.resolve({data:o}))},useDefaultValues=(e={},t={})=>useRequest(getRequestParams(t),e),FormBlockContext=(0,import_react2.createContext)(null);FormBlockContext.displayName="FormBlockContext";const Form$1=(0,import_react.observer)(e=>{const t=e,{request:o,effects:r,initialValue:i,useValues:n=useDefaultValues}=t,a=K(t,["request","effects","initialValue","useValues"]),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=(0,import_react2.useMemo)(()=>(0,import_core2.createForm)({effects:r}),[]),m=n({uid:l["x-uid"],onSuccess(p){return q(this,null,function*(){yield u.reset(),u.setValues(p==null?void 0:p.data),u.setInitialValues(p==null?void 0:p.data)})}},e),d=(0,import_react2.useContext)(FormBlockContext);return(0,import_jsx_runtime.jsx)(FormBlockContext.Provider,{value:{parent:d,form:u,result:m,field:c,fieldSchema:l},children:(0,import_jsx_runtime.jsx)(import_antd.Spin,{spinning:(m==null?void 0:m.loading)||!1,children:l["x-decorator"]==="Form"?(0,import_jsx_runtime.jsx)(FormDecorator$1,x({form:u},a)):(0,import_jsx_runtime.jsx)(FormComponent$1,x({form:u},a))})})},{displayName:"Form"});Form$1.Designer=function e(){const{name:t,title:o}=useCollection_deprecated(),r=useSchemaTemplate(),{componentNamePrefix:i}=useBlockTemplateContext();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{template:r,title:o||t,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsTemplate,{componentName:`${i}Form`,collectionName:t}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};const formV1Settings=new SchemaSettings({name:"FormV1Settings",items:[{name:"template",Component:SchemaSettingsTemplate,useComponentProps(){const{name:e}=useCollection_deprecated(),{componentNamePrefix:t}=useBlockTemplateContext();return{componentName:`${t}Form`,collectionName:e}}},{name:"divider",type:"divider"},{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}}}]}),FormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormSettings",template:o,title:t||e})},ReadPrettyFormDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"ReadPrettyFormSettings",template:o,title:t||e})},DetailsDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"FormDetailsSettings",template:o,title:t||e})},FilterDesigner=()=>{const{name:e,title:t}=useCollection_deprecated(),o=useSchemaTemplate();return(0,import_jsx_runtime.jsx)(GeneralSchemaDesigner,{schemaSettings:"blockSettings:filterForm",template:o,title:t||e})},defaultFieldNames$1={label:"label",value:"value",color:"color",options:"children"};function flatData$1(e,t){const o=[];if(!Array.isArray(e))return o;for(let r=0;r<e.length;r++){const i=e[r][t.options];Array.isArray(i)&&o.push(...flatData$1(i,t)),o.push(x({},e[r]))}return o}function findOptions(e,t,o){if(!e)return[];const r=[];for(const i of o){const n=e.find(a=>a[t.value]==i)||{value:i,label:i&&i.toString()};r.push(n)}return r}function getCurrentOptions(e,t,o){const r=flatData$1(t,o),i=(0,import_lodash.castArray)(e).map(n=>(0,import_client.isPlainObject)(n)?n[o.value]:n);return findOptions(r,o,i)}const ReadPrettyInternal=(0,import_react.observer)(e=>{const[t,o]=(0,import_react2.useState)(!0),[r,i]=(0,import_react2.useState)([]),n=(0,import_react.useField)(),a=useCollectionField();return(0,import_react2.useEffect)(()=>{var l;const c=x(x({},defaultFieldNames$1),e.fieldNames),u=n.dataSource||e.options||(a==null?void 0:a.uiSchema.enum)||[],m=getCurrentOptions(n.value,u,c);if(!(0,import_shared.isValid)(e.value)&&!m.length||(0,import_core2.isArrayField)(n)&&((l=n==null?void 0:n.value)==null?void 0:l.length)===0)return;const d=n.value!==null&&m.map((p,g)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:p[c.color],icon:p.icon,children:p[c.label]},g));i(d),o(!1)},[a==null?void 0:a.uiSchema.enum,n,n.dataSource,n.value,e.fieldNames,e.options,e.value]),t?null:(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:r})},{displayName:"SelectReadPretty"}),ReadPretty$b=withPopupWrapper(ReadPrettyInternal),isEmptyObject=e=>!(0,import_shared.isValid)(e)||typeof e=="object"&&Object.keys(e).length===0,ObjectSelect=e=>{const t=e,{value:o,options:r,onChange:i,fieldNames:n,mode:a,loading:l,rawOptions:c,defaultValue:u}=t,m=K(t,["value","options","onChange","fieldNames","mode","loading","rawOptions","defaultValue"]),d=p=>{var g;if(isEmptyObject(p))return;const h=(0,import_shared.toArr)(p).filter(_=>_).map(_=>(0,import_client.isPlainObject)(_)?_[n.value]:_),f=(g=getCurrentOptions(h,r,n))==null?void 0:g.map(_=>({label:_[n.label],value:_[n.value]}));return["tags","multiple"].includes(a)||e.multiple?f:f.shift()};return(0,import_jsx_runtime.jsx)(import_antd.Select,x({role:"button","data-testid":`select-object-${a||"single"}`,value:d(o),defaultValue:d(u),allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},labelInValue:!0,notFoundContent:l?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),options:r,fieldNames:n,showSearch:!0,popupMatchSelectWidth:!1,filterOption:(p,g)=>{var h;return((h=g==null?void 0:g[n.label||"label"])!=null?h:"").includes(p)},filterSort:(p,g)=>{var h,f;return((h=p==null?void 0:p[n.label||"label"])!=null?h:"").toLowerCase().localeCompare(((f=g==null?void 0:g[n.label||"label"])!=null?f:"").toLowerCase())},onChange:p=>{const g=getCurrentOptions((0,import_shared.toArr)(p).map(h=>h.value),c||r,n);["tags","multiple"].includes(a)||e.multiple?i==null||i(g):i==null||i(g.shift()||null)},mode:a,tagRender:p=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":p.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},p),{children:p.label})),maxTagCount:"responsive"},m))},filterOption=(e,t)=>{var o;return((o=t==null?void 0:t.label)!=null?o:"").toLowerCase().includes((e||"").toLowerCase())},InternalSelect=(0,import_react.connect)(e=>{const t=e,{objectValue:o,loading:r,value:i,rawOptions:n,defaultValue:a}=t,l=K(t,["objectValue","loading","value","rawOptions","defaultValue"]),c=useCompile();let u=e.multiple?"multiple":e.mode;if(u&&!["multiple","tags"].includes(u)&&(u=void 0),o)return(0,import_jsx_runtime.jsx)(ObjectSelect,P(x({rawOptions:n},l),{defaultValue:a,value:i,mode:u,loading:r}));const m=d=>["tags","multiple"].includes(e.mode)||e.multiple?d?(0,import_shared.toArr)(d):void 0:d;return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":`select-${u||"single"}`,showSearch:!0,filterOption,allowClear:{clearIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseCircleFilled,{role:"button","aria-label":"icon-close-select"})},popupMatchSelectWidth:!1,notFoundContent:r?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE}),value:m(i),defaultValue:m(a),tagRender:d=>(0,import_jsx_runtime.jsx)(import_antd.Tag,P(x({role:"button","aria-label":d.label,closeIcon:(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{role:"button","aria-label":"icon-close-tag"})},d),{children:d.label}))},c(l)),{onChange:d=>{var p;(p=e.onChange)==null||p.call(e,d===void 0?null:d)},mode:u,maxTagCount:"responsive"}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>P(x({},e),{fieldNames:x(x({},defaultFieldNames$1),e.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})),(0,import_react.mapReadPretty)(ReadPretty$b)),Select=InternalSelect;Select.ReadPretty=ReadPretty$b;const getValues=(e,t)=>(0,import_lodash.castArray)(e).filter(o=>o!=null).map(o=>typeof o=="object"?o[t.value]:o),ReadPretty$a=(0,import_react.observer)(e=>{const t=x(x({},defaultFieldNames$1),e.fieldNames),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),i=useRecord(),{snapshot:n}=useActionContext(),{data:a}=useRequest(n?()=>q(void 0,null,function*(){return{data:i[r.name]}}):P(x({action:"list"},e.service),{params:{paginate:!1,filter:{[t.value]:{$in:getValues(o.value,t)}}}}),{refreshDeps:[e.service,o.value]});return(0,import_jsx_runtime.jsx)(Select.ReadPretty,P(x({},e),{options:a==null?void 0:a.data}))},{displayName:"ReadPretty"}),EMPTY$1="N/A",InternalRemoteSelect=withDynamicSchemaProps((0,import_react.connect)(e=>{var t,o;const r=e,{fieldNames:i={},service:n={},wait:a=300,value:l,defaultValue:c,objectValue:u,manual:m=!0,mapOptions:d,targetField:p,CustomDropdownRender:g,optionFilter:h,dataSource:f,toOptionsItem:_=H=>H,popupMatchSelectWidth:v=!1}=r,S=K(r,["fieldNames","service","wait","value","defaultValue","objectValue","manual","mapOptions","targetField","CustomDropdownRender","optionFilter","dataSource","toOptionsItem","popupMatchSelectWidth"]),C=useDataSourceKey(),b=useDataSourceHeaders(f||C),[y,F]=(0,import_react2.useState)(!1),j=(0,import_react2.useRef)(!1),k=(0,import_react.useFieldSchema)(),T=((t=k["x-component-props"])==null?void 0:t.addMode)==="quickAdd",{getField:O}=useCollection_deprecated(),N=(0,import_react2.useRef)(null),{getCollectionJoinField:L,getInterface:D}=useCollectionManager_deprecated(),R=k["x-collection-field"]||k.name,$=O(R)||L(R),w=p||($==null?void 0:$.target)&&(i==null?void 0:i.label)&&L(`${$.target}.${i.label}`),I=(0,import_react2.useMemo)(()=>{var H;if(w!=null&&w.interface){const J=D(w.interface),X=((H=J==null?void 0:J.filterable)==null?void 0:H.operators[0].value)||"$includes";return w.type==="string"?"$includes":X}return"$includes"},[w]),M=useCompile(),B=(0,import_react2.useCallback)(H=>{try{return H.filter(J=>["number","string"].includes(typeof J[i.value])||!J[i.value]).map(J=>{var X;let Q=M(J[i.label]);if((X=w==null?void 0:w.uiSchema)!=null&&X.enum)if(Array.isArray(Q))Q=Q.map((ee,te)=>{const ne=w.uiSchema.enum.find(ae=>ae.value===ee);return ne?(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ne.color,style:{marginRight:3},children:(ne==null?void 0:ne.label)||ee},te):(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",children:ee},ee)}).reverse();else{const ee=w.uiSchema.enum.find(te=>te.value===Q);ee&&(Q=(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ee.color,children:ee.label}))}return(w==null?void 0:w.type)==="date"&&(Q=(0,import_dayjs.default)(Q).format("YYYY-MM-DD")),d?d({[i.label]:Q||EMPTY$1,[i.value]:J[i.value]}):P(x({},J),{[i.label]:Q||EMPTY$1,[i.value]:J[i.value]})}).filter(Boolean)}catch(J){return console.error(J),H}},[w==null?void 0:w.uiSchema,i]),{data:z,run:E,loading:V}=useRequest(P(x({action:"list"},n),{headers:b,params:P(x({pageSize:200},n==null?void 0:n.params),{filter:(o=n==null?void 0:n.params)==null?void 0:o.filter})}),x({manual:m,debounceWait:a},n.defaultParams?{defaultParams:[n.defaultParams]}:{})),U=(0,import_react2.useMemo)(()=>JSON.stringify({service:n,fieldNames:i}),[n,i]),G=(0,import_react2.useCallback)(()=>N.current&&g?(0,import_jsx_runtime.jsx)(g,{search:N.current,callBack:()=>{N.current=null,F(!1)}}):null,[N.current]);(0,import_react2.useEffect)(()=>{j.current&&E()},[U]);const W=H=>q(void 0,null,function*(){var J;E({filter:mergeFilter([H?{[i.label]:{[I]:H}}:{},(J=n==null?void 0:n.params)==null?void 0:J.filter])}),N.current=H}),Y=(0,import_react2.useMemo)(()=>{var H;const J=l||c;if(!((H=z==null?void 0:z.data)!=null&&H.length))return J!=null?Array.isArray(J)?J:[J]:[];const X=J!=null&&(Array.isArray(J)?J.map(ee=>P(x({},ee),{[i.value]:ee[i.value]||ee})):[P(x({},J),{[i.value]:J[i.value]||J})])||[],Q=typeof h=="function"?z.data.filter(h):z.data;return(0,import_lodash.uniqBy)(Q.concat(X??[]),i.value)},[l,c,z==null?void 0:z.data,i.value,h]);return(0,import_jsx_runtime.jsx)(Select,P(x({open:y,popupMatchSelectWidth:v,autoClearSearchValue:!0,filterOption:!1,filterSort:null,fieldNames:i,onSearch:W,onDropdownVisibleChange:H=>{F(H),N.current=null,H&&E(),j.current=!0},objectValue:u,value:l,defaultValue:c},S),{loading:z?V:!0,options:_(B(Y)),rawOptions:Y,dropdownRender:H=>{const J=Y.some(X=>X[i.label]===N.current);return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:T?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!((z==null?void 0:z.data.length)===0&&N!=null&&N.current)&&H,(z==null?void 0:z.data.length)>0&&(N==null?void 0:N.current)&&!J&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!J&&(0,import_jsx_runtime.jsx)(G,{})]}):H})}}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>{var o;const r=(0,import_react.useFieldSchema)();return P(x({},e),{fieldNames:x(x(x(x({},defaultFieldNames$1),e.fieldNames),t.componentProps.fieldNames),(o=r["x-component-props"])==null?void 0:o.fieldNames),suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})}),(0,import_react.mapReadPretty)(ReadPretty$a))),RemoteSelect=InternalRemoteSelect;RemoteSelect.ReadPretty=ReadPretty$a;const useFormDataTemplates=()=>{const e=(0,import_react.useFieldSchema)(),{t}=(0,import_react_i18next.useTranslation)(),{duplicateData:o}=useFormBlockContext(),{getCollectionJoinField:r}=useCollectionManager_deprecated();if(o)return o;const{items:i=[],display:n=!0}=findDataTemplates(e);i.forEach(c=>{var u;try{c.fields=(u=c.fields)==null?void 0:u.map(m=>r(`${c.collection}.${m}`)?m:"").filter(Boolean)}catch(m){(0,import_client.error)(m),c.fields=[]}});const a=[{key:"none",title:t("None")}].concat(i.map((c,u)=>P(x({key:u},c),{isLeaf:c.dataId!==null&&c.dataId!==void 0,titleCollectionField:(c==null?void 0:c.titleField)&&r(`${c.collection}.${c.titleField}`)}))),l=i.find(c=>c.default);return{templates:a,display:n,defaultTemplate:l,enabled:i.length>0&&i.every(c=>c.dataId||c.dataScope)}},Templates=import_react2.default.memo(({style:e={},form:t})=>{const{token:o}=useToken(),{templates:r,display:i,enabled:n,defaultTemplate:a}=useFormDataTemplates(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=compatibleDataId(r),[u,m]=(0,import_react2.useState)((a==null?void 0:a.key)||"none"),[d,p]=(0,import_react2.useState)(null),g=useAPIClient(),{t:h}=(0,import_react_i18next.useTranslation)(),f=useDataSourceKey(),_=useDataSourceHeaders(f);(0,import_react2.useEffect)(()=>{n&&a&&t&&(t.__template=!0,a.key==="duplicate"&&b(a.dataId,a,_))},[]),(0,import_react2.useEffect)(()=>{c!=null&&c.some(F=>F.key===u)||C("none")},[c]);const v=(0,import_react2.useMemo)(()=>x({display:"flex",alignItems:"center",backgroundColor:o.colorFillAlter,padding:o.padding},e),[e,o.colorFillAlter]),S=(0,import_react2.useMemo)(()=>({fontSize:o.fontSize,fontWeight:"bold",whiteSpace:"nowrap",marginRight:o.marginXS}),[o.fontSize,o.marginXS]),C=(0,import_react2.useCallback)(F=>q(void 0,null,function*(){m(F),p(null),t==null||t.reset()}),[]),b=(0,import_react2.useCallback)((F,j,k)=>q(void 0,null,function*(){const T=P(x({},j),{dataId:F});p(j),fetchTemplateData(g,T,k).then(O=>(t&&O&&(t.reset(),t.__template=!0,(0,import_client.forEach)(O,(N,L)=>{var D;N&&(t.values[L]=N,(D=t==null?void 0:t.setInitialValuesIn)==null||D.call(t,L,N))})),O)).catch(O=>{console.error(O)})}),[]);if(!n||!i)return null;const y=c==null?void 0:c.find(F=>F.key===u);return(0,import_jsx_runtime.jsx)("div",{style:v,children:(0,import_jsx_runtime.jsxs)(import_antd.Space,{wrap:!0,children:[(0,import_jsx_runtime.jsxs)("label",{style:S,children:[h("Data template"),": "]}),(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-form-data-template",popupMatchSelectWidth:!1,options:c,fieldNames:{label:"title",value:"key"},value:u,onChange:C}),u!=="none"&&y&&(0,import_jsx_runtime.jsx)(RemoteSelect,{style:{width:220},fieldNames:{label:y==null?void 0:y.titleField,value:"id"},target:y==null?void 0:y.collection,value:d,objectValue:!0,service:{resource:y==null?void 0:y.collection,params:{filter:y==null?void 0:y.dataScope}},onChange:F=>b(F==null?void 0:F.id,x(x({},F),y),_),targetField:l(`${y==null?void 0:y.collection}.${y.titleField}`)})]})})});Templates.displayName="NocoBaseFormDataTemplates";function findDataTemplates(e){const t=findFormBlock(e);return t?import_lodash.default.cloneDeep(t["x-data-templates"])||{}:{}}function fetchTemplateData(e,t,o){return q(this,null,function*(){if(!(t.fields.length===0||!t.dataId))return e.resource(t.collection,void 0,o).get({filterByTk:t.dataId,fields:t.fields,isTemplate:!0}).then(r=>{var i;return(i=r.data)==null?void 0:i.data})})}const useFormBlockHeight=()=>{var e,t,o;const r=useDataBlockHeight(),i=(0,import_react.useFieldSchema)(),{token:n}=import_antd.theme.useToken(),{designable:a}=useDesignable(),{heightProps:l}=useBlockHeightProps()||{},{title:c}=l||{},{display:u,enabled:m}=useFormDataTemplates(),d=i.reduceProperties((y,F)=>F["x-component"]==="ActionBar"?F:y),p=Object.keys((d==null?void 0:d.properties)||{}).length>0,g=(o=(t=(e=i==null?void 0:i.parent)==null?void 0:e["x-decorator"])==null?void 0:t.includes)==null?void 0:o.call(t,"FormBlockProvider"),h=p||a?n.controlHeight+(g?1:2)*n.marginLG:n.marginLG,f=c?n.fontSizeLG*n.lineHeightLG+n.padding*2-1:0,_=useDataBlockRequestData(),{count:v,pageSize:S}=(_==null?void 0:_.meta)||{},C=v>S?n.controlHeightSM+1*n.paddingLG:0,b=u&&m?n.controlHeight+2*n.padding+n.margin:0;return r-h-n.paddingLG-f-C-b},FormComponent=e=>{const t=e,{form:o,children:r}=t,i=K(t,["form","children"]),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=getCardItemSchema==null?void 0:getCardItemSchema(a),c=useAttach(o.createVoidField(P(x({},n.props),{basePath:""}))),u=useFormBlockHeight(),{token:m}=import_antd.theme.useToken(),{layout:d="vertical",labelAlign:p="left",labelWidth:g=120,labelWrap:h=!0}=(l==null?void 0:l["x-component-props"])||{};return(0,import_jsx_runtime.jsx)(import_react.FieldContext.Provider,{value:void 0,children:(0,import_jsx_runtime.jsx)(import_react.FormContext.Provider,{value:o,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,P(x({layout:d},i),{labelAlign:p,labelWidth:d==="horizontal"?g:null,labelWrap:h,children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
595
595
|
.nb-grid-container {
|
|
596
596
|
height: ${u?u+"px":"100%"};
|
|
597
597
|
overflow-y: auto;
|
|
@@ -658,7 +658,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
658
658
|
.ant-card {
|
|
659
659
|
border: 0px;
|
|
660
660
|
}
|
|
661
|
-
`,InternalPopoverNester=(0,import_react.observer)(e=>{
|
|
661
|
+
`,InternalPopoverNester=(0,import_react.observer)(e=>{const{field:t}=useAssociationFieldContext(),[o,r]=(0,import_react2.useState)(!1),i=(0,import_react.useFieldSchema)();i["x-component-props"].enableLink=!1;const n=(0,import_react2.useRef)(),a=P(x({},e),{shouldMountElement:!0}),l=(0,import_jsx_runtime.jsx)("div",{ref:n,className:`${InternalPopoverNesterContentCss} popover-subform-container`,children:(0,import_jsx_runtime.jsx)(InternalNester,x({},a))}),c=()=>n.current,u=(0,import_react2.useContext)(ActionContext),m={getContainer:c},{getAriaLabel:d}=useGetAriaLabelOfPopover(),p=e.Container||StablePopover,g=(0,import_react2.useCallback)(f=>{r(f)},[]),h=(0,import_react2.useMemo)(()=>({padding:"0px"}),[]);return(0,import_jsx_runtime.jsxs)(ActionContextProvider,{value:P(x({},u),{modalProps:m}),children:[(0,import_jsx_runtime.jsx)(p,{overlayStyle:h,content:l,trigger:"click",placement:"topLeft",open:o,onOpenChange:g,title:(t==null?void 0:t.title)||"",children:(0,import_jsx_runtime.jsxs)("span",{style:{cursor:"pointer",display:"flex"},children:[(0,import_jsx_runtime.jsx)("div",{style:{maxWidth:"95%"},children:(0,import_jsx_runtime.jsx)(ReadPrettyInternalViewer,x({},e))}),(0,import_jsx_runtime.jsx)(import_icons.EditOutlined,{style:{display:"inline-flex",margin:"5px"}})]})}),o&&(0,import_jsx_runtime.jsx)("div",{role:"button","aria-label":d("mask"),onClick:()=>r(!1),style:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"transparent",zIndex:9999}})]})},{displayName:"InternalPopoverNester"}),InternalSubTable=(0,import_react.observer)(()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useInsertSchema$1("SubTable"),i=useInsertSchema$1("Selector"),{options:n}=useAssociationFieldContext(),{actionName:a}=useACLActionParamsContext();(0,import_react2.useEffect)(()=>{r(schema$1.SubTable),t.required=o.required},[]),(0,import_react2.useEffect)(()=>{var u;(u=t.componentProps)!=null&&u.allowSelectExistingRecord&&i(schema$1.Selector)},[(e=t.componentProps)==null?void 0:e.allowSelectExistingRecord]);const l=useSchemaOptionsContext(),c=P(x({},l.components),{FormItem,"Radio.Group":Select,"Checkbox.Group":u=>(0,import_jsx_runtime.jsx)(Select,x({multiple:!0,mode:"multiple"},u))});return(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:n.target,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{actionPath:`${n.target}:${a||"view"}`,children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{className:import_css.css`
|
|
662
662
|
.ant-formily-item-bordered-none {
|
|
663
663
|
.ant-input-number-group-addon {
|
|
664
664
|
border: none !important;
|