@nocobase/client 1.7.4 → 1.7.6
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 +1041 -1035
- package/lib/index.js +9 -9
- package/package.json +5 -5
package/lib/index.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
display: flex;
|
|
20
20
|
margin: 5px 0px;
|
|
21
21
|
}
|
|
22
|
-
`,defaultValue:"h:mm a",formats:["hh:mm:ss a","HH:mm:ss"],timeFormat:!0},default:"HH:mm:ss",enum:[{label:DateFormatCom({format:"hh:mm:ss a"}),value:"hh:mm:ss a"},{label:DateFormatCom({format:"HH:mm:ss"}),value:"HH:mm:ss"},{label:"custom",value:"custom"}]}},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:operators$1,primaryKey,recordPickerViewer,relationshipType,reverseFieldProperties,timeProps,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","uiSchema.x-component-props.format"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}",picker:"{{$deps[4]}}",format:"{{$deps[5]}}"}}}},{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]}}"}}}]})}}addOperator(t){(0,import_lodash.set)(this,"filterable.operators",[...this.filterable.operators||[]]),!this.filterable.operators.find(o=>o.value===t.value)&&this.filterable.operators.push(t)}}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)}addFieldInterfaceOperator(t,o){const r=this.getFieldInterface(t);r==null||r.addOperator(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 z(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 z(this,null,function*(){return yield Promise.all(this.multiDataSources.map(t=>z(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 b;return{label:(b=n(v))==null?void 0:b.title,value:v}})}const d=(v,{exclude:b=[],depth:S=0,maxDepth:C,prefix:y=""})=>S>C?[]:r(v).map(F=>{var I;if(b.includes(F.name)||!F.interface||["sort","password","sequence"].includes(F.type)||o&&o(F))return;const T={type:"duplicate",tag:c((I=F.uiSchema)==null?void 0:I.title)||F.name},k=P(x({},T),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},T),{displayType:t})),key:y?`${y}.${F.name}`:F.name,isLeaf:!0,field:F});return["belongsTo","belongsToMany"].includes(F.type)?(T.type="reference",k.type="reference",k.title=import_react2.default.createElement(TreeNode,P(x({},T),{type:"reference",displayType:t})),k.isLeaf=!1,k.children=p(F.target,{depth:S+1,maxDepth:C,prefix:k.key,exclude:systemKeys})):["hasOne","hasMany"].includes(F.type)&&(k.isLeaf=!1,k.children=d(F.target,{depth:S+1,maxDepth:C,prefix:k.key,exclude:["id",...systemKeys]})),k}).filter(Boolean),p=(v,{prefix:b,maxDepth:S,depth:C=0,exclude:y=[]})=>C>S?[]:r(v).map(F=>{var I;if(!F.target||!F.interface||y.includes(F.name))return;const T={type:"preloading",tag:c((I=F.uiSchema)==null?void 0:I.title)||F.name},k=b?`${b}.${F.name}`:F.name;return{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},T),{displayType:t})),key:k,isLeaf:!1,field:F,children:p(F.target,{prefix:k,depth:C+1,maxDepth:S,exclude:y})}}).filter(Boolean),h=v=>v.map(b=>P(x({},b),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},b),{type:b.type,displayType:t})),children:b.children?h(b.children):null})),g=(0,import_react2.useCallback)((v,b,S)=>{var C,y;const F=b.index,I=(y=(C=u.initialValue)==null?void 0:C.items)==null?void 0:y[F];if(!v)return[];if(I!=null&&I.treeData||S)return h(S||I.treeData);try{return d(v,{exclude:["id",...systemKeys],maxDepth:1})}catch(T){return console.error(T),[]}},[]),_=(0,import_react2.useCallback)(v=>b=>new Promise(S=>{if(b.children.length)return b.children.forEach(C=>{loadChildren$1({node:C,traverseAssociations:p,traverseFields:d,systemKeys,fields:v})}),S(void 0);loadChildren$1({node:b,traverseAssociations:p,traverseFields:d,systemKeys,fields:v}),S(void 0)}),[]),f=(0,import_react2.useCallback)(v=>b=>{v.value=b},[]);return{collectionList:l,getEnableFieldTree:g,getOnLoadData:_,getOnCheck:f,getScopeDataSource:v=>{const b=r(v),S=(y,F)=>{var I,T;if(!y.interface)return;const k=a(y.interface);if(!(k!=null&&k.filterable))return;const{nested:N,children:M,operators:L}=k.filterable,D={name:y.name,title:((I=y==null?void 0:y.uiSchema)==null?void 0:I.title)||y.name,schema:y==null?void 0:y.uiSchema,operators:((T=L==null?void 0:L.filter)==null?void 0:T.call(L,R=>!(R!=null&&R.visible)||R.visible(y)))||[],interface:y.interface};if(!(y.target&&F>2)){if(F>2)return D;if(M!=null&&M.length&&(D.children=M),N){const R=r(y.target),$=C(R,F+1).filter(Boolean);D.children=D.children||[],D.children.push(...$)}return D}},C=(y,F)=>{const I=[];return y.forEach(T=>{const k=S(T,F);k&&I.push(k)}),I};return C(b,1)},useTitleFieldDataSource:v=>{const b=v.path.entire.replace("titleField","collection"),S=v.query(b).get("value"),C=r(S).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=C}}};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 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:()=>{},reset:()=>{}});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.useCallback)(()=>{var c,u;const m=import_lodash.default.isEmpty(t["*"])&&((c=r==null?void 0:r["x-component-props"])==null?void 0:c.openMode)==="page"&&!!((u=o.current["*"])!=null&&u.includes(r["x-uid"]));return o.current=t,m},[r,t]),a=(0,import_react2.useCallback)(()=>{o.current={}},[]),l=(0,import_react2.useMemo)(()=>({isSubPageClosedByPageMenu:n,setFieldSchema:i,reset:a}),[n,a]);return(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuContext.Provider,{value:l,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})},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),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,reset:r}=import_react2.default.useContext(IsSubPageClosedByPageMenuContext);return(0,import_react2.useEffect)(()=>{o(e)},[e,o]),{isSubPageClosedByPageMenu:t,reset:r}},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)(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"),h=n.getSchemaAttribute("x-use-decorator-props");if(m&&p&&a(m)===r)return p;if(d&&h&&a(d)===r)return h},[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_core.createForm)({validateFirst:!0,readPretty:n}),[n]),{resource:d,service:p,updateAssociationValues:h}=useBlockRequestContext(),g=(0,import_react2.useRef)(),_=useCollectionRecord(),f=(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:h,formBlockRef:g,collectionName:l||((v=o.getCollectionField(c))==null?void 0:v.target),formRecord:_})},[i,c,o,l,r,u,m,a,_,d,p,h]);return(0,import_jsx_runtime.jsx)(FormBlockContext$1.Provider,{value:f,children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:_==null?void 0:_.isNew,parent:(t=_==null?void 0:_.parentRecord)==null?void 0:t.data,record:_==null?void 0:_.data,children:(0,import_jsx_runtime.jsx)("div",{ref:g,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,action:r}=e,i=useCollectionRecordData(),{association:n}=e,a=useCollectionManager(),{__collection:l}=i||{},{designable:c}=useDesignable(),u=e.collection||a.getCollection(n).name,m=(0,import_ahooks.useUpdate)();return!c&&l&&r&&l!==u?null:(0,import_jsx_runtime.jsx)(TemplateBlockProvider,{onTemplateLoaded:m,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})})})})})},hidden={display:"none"},KeepAliveProvider=(0,import_react2.memo)(({children:e,active:t,parentActive:o})=>{const r=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_LocationContext),i=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_RouteContext),n=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_DataRouterContext),a=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_DataRouterStateContext),l=(0,import_react2.useContext)(IsSubPageClosedByPageMenuContext),c=(0,import_react2.useContext)(import_context.Context),u=(0,import_react2.useContext)(import_pro_layout.RouteContext),m=(0,import_react2.useRef)(r),d=(0,import_react2.useRef)(i),p=(0,import_react2.useRef)(n),h=(0,import_react2.useRef)(a),g=(0,import_react2.useRef)(l),_=(0,import_react2.useRef)(c),f=(0,import_react2.useRef)(u);t&&(p.current=n,h.current=a,g.current=l,_.current=c,f.current=u),t&&!import_lodash.default.isEqual(import_lodash.default.omit(m.current.location,"key"),import_lodash.default.omit(r.location,"key"))&&(m.current=r),t&&!import_lodash.default.isEqual(d.current,i)&&(d.current=i);const v=(0,import_jsx_runtime.jsx)(import_pro_layout.RouteContext.Provider,{value:f.current,children:(0,import_jsx_runtime.jsx)(import_context.Context.Provider,{value:_.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_DataRouterContext.Provider,{value:p.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_DataRouterStateContext.Provider,{value:h.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_LocationContext.Provider,{value:m.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_RouteContext.Provider,{value:d.current,children:(0,import_jsx_runtime.jsx)(KeepAliveContext.Provider,{value:o===!1?!1:t,children:(0,import_jsx_runtime.jsx)(DesignableInterceptor,{active:t,children:(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuContext.Provider,{value:g.current,children:e})})})})})})})})});return(0,import_jsx_runtime.jsx)("div",{style:t?null:hidden,children:v})}),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{active:o}=useKeepAlive(),r=(0,import_react2.useRef)([]);return r.current.includes(t)||(r.current.push(t),r.current.length>MAX_RENDERED_PAGE_COUNT&&(r.current=r.current.slice(-MAX_RENDERED_PAGE_COUNT))),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:r.current.map(i=>(0,import_jsx_runtime.jsx)(KeepAliveProvider,{active:i===t,parentActive:o,children:e(i)},i))})});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 h=o.getSourceKeyByAssociation(r),g=l instanceof CollectionRecord?l.data:l;if((0,import_lodash.isArray)(h)){const _={};for(const f of h)_[f]=g==null?void 0:g[f];return encodeURIComponent(JSON.stringify(_))}else return g[h]}},[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 REGEX_OF_VARIABLE=/^\s*\{\{\s*([\p{L}0-9_$-.]+?)\s*\}\}\s*$/u,REGEX_OF_VARIABLE_IN_EXPRESSION=/\{\{\s*([a-zA-Z0-9_$-.]+?)\s*\}\}/g,isVariable$1=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&&t==="date"?"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=import_dayjs.default.tz.guess(),l=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 c=(0,import_dayjs.default)(e).format(l);return(0,import_dayjs.default)(c).tz(a,!0).toISOString()}return i?(0,import_dayjs.default)(e).format(l):(0,import_dayjs.default)(e).startOf(r).format(l)},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)}},getDateExact=()=>({nowUtc:()=>(0,import_dayjs.default)().toISOString(),nowLocal:()=>(0,import_dayjs.default)().format("YYYY-MM-DD HH:mm:ss"),todayUtc:()=>(0,import_dayjs.default)().startOf("day").utc().toISOString(),todayLocal:()=>(0,import_dayjs.default)().startOf("day").format("YYYY-MM-DD HH:mm:ss"),todayDate:()=>(0,import_dayjs.default)().format("YYYY-MM-DD"),yesterdayUtc:()=>(0,import_dayjs.default)().subtract(1,"day").startOf("day").utc().toISOString(),yesterdayLocal:()=>(0,import_dayjs.default)().subtract(1,"day").startOf("day").format("YYYY-MM-DD HH:mm:ss"),yesterdayDate:()=>(0,import_dayjs.default)().subtract(1,"day").format("YYYY-MM-DD"),tomorrowUtc:()=>(0,import_dayjs.default)().add(1,"day").startOf("day").utc().toISOString(),tomorrowLocal:()=>(0,import_dayjs.default)().add(1,"day").startOf("day").format("YYYY-MM-DD HH:mm:ss"),tomorrowDate:()=>(0,import_dayjs.default)().add(1,"day").format("YYYY-MM-DD")});function withParams(e,t){return t!=null&&t.isParsingVariable&&t!=null&&t.fieldOperator&&t.fieldOperator!=="$dateBetween"?e[0]:e}function inferPickerType(e,t){return/^\d{4}$/.test(e)?"year":/^\d{4}-\d{2}$/.test(e)?"month":/^\d{4}Q[1-4]$/.test(e)?"quarter":/^\d{4}-\d{2}-\d{2}$/.test(e)?"date":t||"date"}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 parseVariableValue=(e,t,o)=>z(void 0,null,function*(){const r=isVariable$1(e)?[t.parseVariable(e,o).then(({value:i})=>i)]:[e];try{const[i]=yield Promise.all(r);return i}catch(i){throw console.error("Error in parseVariableValue:",i),i}}),conditionAnalyses=(e,t)=>z(void 0,[e,t],function*({ruleGroup:o,variables:r,localVariables:i,variableNameOfLeftCondition:n,conditionType:a},l){const c=Object.keys(o)[0]||"$and",u=o[c],m=yield Promise.all(u.map(d=>processCondition(d,r,i,n,a,l)));return c==="$and"?(0,import_lodash.every)(m,d=>d):m.length?(0,import_lodash.some)(m,d=>d):!0}),processCondition=(e,t,o,r,i,n)=>z(void 0,null,function*(){return"$and"in e||"$or"in e?yield conditionAnalyses({ruleGroup:e,variables:t,localVariables:o,conditionType:i},n):i==="advanced"?processAdvancedCondition(e,t,o,n):processBasicCondition(e,t,o,r,n)}),processAdvancedCondition=(e,t,o,r)=>z(void 0,null,function*(){const i=e.op,n=yield parseVariableValue(e.rightVar,t,o),a=yield parseVariableValue(e.leftVar,t,o);return i?r.apply({[i]:[a,n]}):!0}),processBasicCondition=(e,t,o,r,i)=>z(void 0,null,function*(){const n=getInnermostKeyAndValue(e),a=n==null?void 0:n.key;if(!a)return!0;const l=targetFieldToVariableString(getTargetField$1(e),r),c=t.parseVariable(l,o,{doNotRequest:!0}).then(({value:m})=>m),u=isVariable$1(n==null?void 0:n.value)?[t.parseVariable(n==null?void 0:n.value,o).then(({value:m})=>m),c]:[n==null?void 0:n.value,c];try{const[m,d]=yield Promise.all(u),p=yield t.getCollectionField(l,o);let h=transformVariableValue(d,{targetCollectionField:p});const g=transformVariableValue(m,{targetCollectionField:p});if(p!=null&&p.type&&["datetime","date","datetimeNoTz","dateOnly","unixTimestamp"].includes(p.type)&&h){const _=inferPickerType(g),f=(0,import_client.getPickerFormat)(_);h=(0,import_client.dayjs)(h).format(f)}return i.apply({[a]:[h,g]})}catch(m){throw m}});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 z(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/VariablesProvider: .* is not found/.test(l.message)||console.log(l),t}else try{const l=yield replaceVariableValue(t,o,r);return yield i(l)}catch(l){return/VariablesProvider: .* is not found/.test(l.message)||console.log(l),t}})}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)",colorTemplateBgSettingsHover:"rgba(98, 200, 241, 0.06)",colorBorderSettingsHover:"rgba(241, 139, 98, 0.3)",motionUnit:.03}};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=()=>import_antd.theme.useToken(),CSSVariableProvider=({children:e})=>{const{token:t}=useToken(),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("--colorTextHeaderMenu",t.colorTextHeaderMenu),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("--colorTemplateBgSettingsHover",t.colorTemplateBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",t.colorBorderSettingsHover),document.body.style.setProperty("--colorBgMenuItemSelected",t.colorBgHeaderMenuActive),document.body.style.setProperty("background-color",t.colorBgContainer)},[r,n,i,o,t.colorBgContainer,t.colorBgLayout,t.colorBgSettingsHover,t.colorTemplateBgSettingsHover,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,t.colorTextHeaderMenu]),e};CSSVariableProvider.displayName="CSSVariableProvider";const 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:"繁體中文(台湾)"}};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});const NAMESPACE_UI_SCHEMA="ui-schema-storage";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
|
|
22
|
+
`,defaultValue:"h:mm a",formats:["hh:mm:ss a","HH:mm:ss"],timeFormat:!0},default:"HH:mm:ss",enum:[{label:DateFormatCom({format:"hh:mm:ss a"}),value:"hh:mm:ss a"},{label:DateFormatCom({format:"HH:mm:ss"}),value:"HH:mm:ss"},{label:"custom",value:"custom"}]}},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:operators$1,primaryKey,recordPickerViewer,relationshipType,reverseFieldProperties,timeProps,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","uiSchema.x-component-props.format"],fulfill:{state:{componentProps:{gmt:"{{$deps[0]}}",showTime:"{{$deps[1]}}",dateFormat:"{{$deps[2]}}",timeFormat:"{{$deps[3]}}",picker:"{{$deps[4]}}",format:"{{$deps[5]}}"}}}},{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]}}"}}}]})}}addOperator(t){(0,import_lodash.set)(this,"filterable.operators",[...this.filterable.operators||[]]),!this.filterable.operators.find(o=>o.value===t.value)&&this.filterable.operators.push(t)}}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)}addFieldInterfaceOperator(t,o){const r=this.getFieldInterface(t);r==null||r.addOperator(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 z(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 z(this,null,function*(){return yield Promise.all(this.multiDataSources.map(t=>z(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 b;return{label:(b=n(v))==null?void 0:b.title,value:v}})}const d=(v,{exclude:b=[],depth:S=0,maxDepth:C,prefix:y=""})=>S>C?[]:r(v).map(F=>{var I;if(b.includes(F.name)||!F.interface||["sort","password","sequence"].includes(F.type)||o&&o(F))return;const T={type:"duplicate",tag:c((I=F.uiSchema)==null?void 0:I.title)||F.name},k=P(x({},T),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},T),{displayType:t})),key:y?`${y}.${F.name}`:F.name,isLeaf:!0,field:F});return["belongsTo","belongsToMany"].includes(F.type)?(T.type="reference",k.type="reference",k.title=import_react2.default.createElement(TreeNode,P(x({},T),{type:"reference",displayType:t})),k.isLeaf=!1,k.children=p(F.target,{depth:S+1,maxDepth:C,prefix:k.key,exclude:systemKeys})):["hasOne","hasMany"].includes(F.type)&&(k.isLeaf=!1,k.children=d(F.target,{depth:S+1,maxDepth:C,prefix:k.key,exclude:["id",...systemKeys]})),k}).filter(Boolean),p=(v,{prefix:b,maxDepth:S,depth:C=0,exclude:y=[]})=>C>S?[]:r(v).map(F=>{var I;if(!F.target||!F.interface||y.includes(F.name))return;const T={type:"preloading",tag:c((I=F.uiSchema)==null?void 0:I.title)||F.name},k=b?`${b}.${F.name}`:F.name;return{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},T),{displayType:t})),key:k,isLeaf:!1,field:F,children:p(F.target,{prefix:k,depth:C+1,maxDepth:S,exclude:y})}}).filter(Boolean),h=v=>v.map(b=>P(x({},b),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},b),{type:b.type,displayType:t})),children:b.children?h(b.children):null})),g=(0,import_react2.useCallback)((v,b,S)=>{var C,y;const F=b.index,I=(y=(C=u.initialValue)==null?void 0:C.items)==null?void 0:y[F];if(!v)return[];if(I!=null&&I.treeData||S)return h(S||I.treeData);try{return d(v,{exclude:["id",...systemKeys],maxDepth:1})}catch(T){return console.error(T),[]}},[]),_=(0,import_react2.useCallback)(v=>b=>new Promise(S=>{if(b.children.length)return b.children.forEach(C=>{loadChildren$1({node:C,traverseAssociations:p,traverseFields:d,systemKeys,fields:v})}),S(void 0);loadChildren$1({node:b,traverseAssociations:p,traverseFields:d,systemKeys,fields:v}),S(void 0)}),[]),f=(0,import_react2.useCallback)(v=>b=>{v.value=b},[]);return{collectionList:l,getEnableFieldTree:g,getOnLoadData:_,getOnCheck:f,getScopeDataSource:v=>{const b=r(v),S=(y,F)=>{var I,T;if(!y.interface)return;const k=a(y.interface);if(!(k!=null&&k.filterable))return;const{nested:N,children:M,operators:L}=k.filterable,D={name:y.name,title:((I=y==null?void 0:y.uiSchema)==null?void 0:I.title)||y.name,schema:y==null?void 0:y.uiSchema,operators:((T=L==null?void 0:L.filter)==null?void 0:T.call(L,R=>!(R!=null&&R.visible)||R.visible(y)))||[],interface:y.interface};if(!(y.target&&F>2)){if(F>2)return D;if(M!=null&&M.length&&(D.children=M),N){const R=r(y.target),$=C(R,F+1).filter(Boolean);D.children=D.children||[],D.children.push(...$)}return D}},C=(y,F)=>{const I=[];return y.forEach(T=>{const k=S(T,F);k&&I.push(k)}),I};return C(b,1)},useTitleFieldDataSource:v=>{const b=v.path.entire.replace("titleField","collection"),S=v.query(b).get("value"),C=r(S).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=C}}};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 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:()=>{},reset:()=>{}});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.useCallback)(()=>{var c,u;const m=import_lodash.default.isEmpty(t["*"])&&((c=r==null?void 0:r["x-component-props"])==null?void 0:c.openMode)==="page"&&!!((u=o.current["*"])!=null&&u.includes(r["x-uid"]));return o.current=t,m},[r,t]),a=(0,import_react2.useCallback)(()=>{o.current={}},[]),l=(0,import_react2.useMemo)(()=>({isSubPageClosedByPageMenu:n,setFieldSchema:i,reset:a}),[n,a]);return(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuContext.Provider,{value:l,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})},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),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,reset:r}=import_react2.default.useContext(IsSubPageClosedByPageMenuContext);return(0,import_react2.useEffect)(()=>{o(e)},[e,o]),{isSubPageClosedByPageMenu:t,reset:r}},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)(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"),h=n.getSchemaAttribute("x-use-decorator-props");if(m&&p&&a(m)===r)return p;if(d&&h&&a(d)===r)return h},[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_core.createForm)({validateFirst:!0,readPretty:n}),[n]),{resource:d,service:p,updateAssociationValues:h}=useBlockRequestContext(),g=(0,import_react2.useRef)(),_=useCollectionRecord(),f=(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:h,formBlockRef:g,collectionName:l||((v=o.getCollectionField(c))==null?void 0:v.target),formRecord:_})},[i,c,o,l,r,u,m,a,_,d,p,h]);return(0,import_jsx_runtime.jsx)(FormBlockContext$1.Provider,{value:f,children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:_==null?void 0:_.isNew,parent:(t=_==null?void 0:_.parentRecord)==null?void 0:t.data,record:_==null?void 0:_.data,children:(0,import_jsx_runtime.jsx)("div",{ref:g,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,action:r}=e,i=useCollectionRecordData(),{association:n}=e,a=useCollectionManager(),{__collection:l}=i||{},{designable:c}=useDesignable(),u=e.collection||a.getCollection(n).name,m=(0,import_ahooks.useUpdate)();return!c&&l&&r&&l!==u?null:(0,import_jsx_runtime.jsx)(TemplateBlockProvider,{onTemplateLoaded:m,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},REGEX_OF_VARIABLE=/^\s*\{\{\s*([\p{L}0-9_$-.]+?)\s*\}\}\s*$/u,REGEX_OF_VARIABLE_IN_EXPRESSION=/\{\{\s*([a-zA-Z0-9_$-.]+?)\s*\}\}/g,isVariable$1=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&&t==="date"?"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=import_dayjs.default.tz.guess(),l=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 c=(0,import_dayjs.default)(e).format(l);return(0,import_dayjs.default)(c).tz(a,!0).toISOString()}return i?(0,import_dayjs.default)(e).format(l):(0,import_dayjs.default)(e).startOf(r).format(l)},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)}},getDateExact=()=>({nowUtc:()=>(0,import_dayjs.default)().toISOString(),nowLocal:()=>(0,import_dayjs.default)().format("YYYY-MM-DD HH:mm:ss"),todayUtc:()=>(0,import_dayjs.default)().startOf("day").utc().toISOString(),todayLocal:()=>(0,import_dayjs.default)().startOf("day").format("YYYY-MM-DD HH:mm:ss"),todayDate:()=>(0,import_dayjs.default)().format("YYYY-MM-DD"),yesterdayUtc:()=>(0,import_dayjs.default)().subtract(1,"day").startOf("day").utc().toISOString(),yesterdayLocal:()=>(0,import_dayjs.default)().subtract(1,"day").startOf("day").format("YYYY-MM-DD HH:mm:ss"),yesterdayDate:()=>(0,import_dayjs.default)().subtract(1,"day").format("YYYY-MM-DD"),tomorrowUtc:()=>(0,import_dayjs.default)().add(1,"day").startOf("day").utc().toISOString(),tomorrowLocal:()=>(0,import_dayjs.default)().add(1,"day").startOf("day").format("YYYY-MM-DD HH:mm:ss"),tomorrowDate:()=>(0,import_dayjs.default)().add(1,"day").format("YYYY-MM-DD")});function withParams(e,t){return t!=null&&t.isParsingVariable&&t!=null&&t.fieldOperator&&t.fieldOperator!=="$dateBetween"?e[0]:e}function inferPickerType(e,t){return/^\d{4}$/.test(e)?"year":/^\d{4}-\d{2}$/.test(e)?"month":/^\d{4}Q[1-4]$/.test(e)?"quarter":/^\d{4}-\d{2}-\d{2}$/.test(e)?"date":t||"date"}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 parseVariableValue=(e,t,o)=>z(void 0,null,function*(){const r=isVariable$1(e)?[t.parseVariable(e,o).then(({value:i})=>i)]:[e];try{const[i]=yield Promise.all(r);return i}catch(i){throw console.error("Error in parseVariableValue:",i),i}}),conditionAnalyses=(e,t)=>z(void 0,[e,t],function*({ruleGroup:o,variables:r,localVariables:i,variableNameOfLeftCondition:n,conditionType:a},l){const c=Object.keys(o)[0]||"$and",u=o[c],m=yield Promise.all(u.map(d=>processCondition(d,r,i,n,a,l)));return c==="$and"?(0,import_lodash.every)(m,d=>d):m.length?(0,import_lodash.some)(m,d=>d):!0}),processCondition=(e,t,o,r,i,n)=>z(void 0,null,function*(){return"$and"in e||"$or"in e?yield conditionAnalyses({ruleGroup:e,variables:t,localVariables:o,conditionType:i},n):i==="advanced"?processAdvancedCondition(e,t,o,n):processBasicCondition(e,t,o,r,n)}),processAdvancedCondition=(e,t,o,r)=>z(void 0,null,function*(){const i=e.op,n=yield parseVariableValue(e.rightVar,t,o),a=yield parseVariableValue(e.leftVar,t,o);return i?r.apply({[i]:[a,n]}):!0}),processBasicCondition=(e,t,o,r,i)=>z(void 0,null,function*(){const n=getInnermostKeyAndValue(e),a=n==null?void 0:n.key;if(!a)return!0;const l=targetFieldToVariableString(getTargetField$1(e),r),c=t.parseVariable(l,o,{doNotRequest:!0}).then(({value:m})=>m),u=isVariable$1(n==null?void 0:n.value)?[t.parseVariable(n==null?void 0:n.value,o).then(({value:m})=>m),c]:[n==null?void 0:n.value,c];try{const[m,d]=yield Promise.all(u),p=yield t.getCollectionField(l,o);let h=transformVariableValue(d,{targetCollectionField:p});const g=transformVariableValue(m,{targetCollectionField:p});if(p!=null&&p.type&&["datetime","date","datetimeNoTz","dateOnly","unixTimestamp"].includes(p.type)&&h){const _=inferPickerType(g),f=(0,import_client.getPickerFormat)(_);h=(0,import_client.dayjs)(h).format(f)}return i.apply({[a]:[h,g]})}catch(m){throw m}});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 z(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/VariablesProvider: .* is not found/.test(l.message)||console.log(l),t}else try{const l=yield replaceVariableValue(t,o,r);return yield i(l)}catch(l){return/VariablesProvider: .* is not found/.test(l.message)||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.Options="options",e.DateScope="dateScope",e.FontSize="fontSize",e.FontWeight="fontWeight",e.FontStyle="fontStyle",e))(ActionType||{}),LinkageRuleCategory=(e=>(e.default="default",e.style="style",e.button="button",e.block="block",e))(LinkageRuleCategory||{});const LinkageRuleDataKeyMap={style:"x-linkage-style-rules",default:"x-linkage-rules",button:"x-linkage-rules",block:"x-block-linkage-rules"};function bindLinkageRulesToFiled({field:e,linkageRules:t,formValues:o,localVariables:r,action:i,rule:n,variables:a,variableNameOfLeftCondition:l},c){var u,m,d,p,h,g;return e.initStateOfLinkageRules={display:((u=e.initStateOfLinkageRules)==null?void 0:u.display)||getTempFieldState(!0,e.display),required:((m=e.initStateOfLinkageRules)==null?void 0:m.required)||getTempFieldState(!0,e.required||!1),pattern:((d=e.initStateOfLinkageRules)==null?void 0:d.pattern)||getTempFieldState(!0,e.pattern),value:((p=e.initStateOfLinkageRules)==null?void 0:p.value)||getTempFieldState(!0,e.value||e.initialValue),dataSource:((h=e.initStateOfLinkageRules)==null?void 0:h.dataSource)||getTempFieldState(!0,e.dataSource||e.options),dateScope:((g=e.initStateOfLinkageRules)==null?void 0:g.dateScope)||getTempFieldState(!0,null)},(0,import_reactive.reaction)(()=>(getFieldValuesInCondition({linkageRules:t,formValues:o}),getVariableValuesInCondition({linkageRules:t,localVariables:r}),getVariableValuesInExpression({action:i,localVariables:r}),(0,import_client.uid)()),getSubscriber({action:i,field:e,rule:n,variables:a,localVariables:r,variableNameOfLeftCondition:l},c),{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",i=o.condition[r];return o.conditionType==="advanced"?i.map(n=>{if(!n)return null;if(n.$and||n.$or)return getVariableValuesInCondition({linkageRules:[{conditionType:"advanced",condition:n}],localVariables:t});const a=l=>isVariable$1(l)?getVariableValue$1(l,t):l;return{leftVar:a(n.leftVar),rightVar:a(n.rightVar)}}).filter(Boolean):i.map(n=>{const a=getInnermostKeyAndValue(n);return a?isVariable$1(a.value)?getVariableValue$1(a.value,t):a.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$1(a,t)).filter(Boolean)}function getVariableValue$1(e,t){var o;if(!isVariable$1(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},a){return()=>{collectFieldStateOfLinkageRules({operator:e.operator,value:e.value,field:t,condition:o.condition,variables:r,localVariables:i,variableNameOfLeftCondition:n,action:e,conditionType:o.conditionType},a),setTimeout(()=>z(this,null,function*(){var l,c,u,m,d,p,h,g;const _=getFieldNameByOperator(e.operator);if(!((l=t.stateOfLinkageRules)!=null&&l[_]))return;let f=t.stateOfLinkageRules[_];f=yield Promise.all(f),f=f.filter(b=>b.condition);const v=f[f.length-1];if(_==="value")f.length>1&&(t.value=v.value);else if(_==="dateScope")t.setComponentProps({_maxDate:((u=(c=v.value)==null?void 0:c._maxDate)==null?void 0:u.value)||((m=v.value)==null?void 0:m._maxDate),_minDate:((p=(d=v.value)==null?void 0:d._minDate)==null?void 0:p.value)||((h=v.value)==null?void 0:h._minDate)});else{if(_==="display"&&(v==null?void 0:v.value)==="hidden")t.display="visible",t.data=t.data||{},t.data.hidden=!0,t.required&&(t.required=!1,t.data.prevRequired=!0),requestAnimationFrame(()=>{t.setState(b=>{b.display="visible"})});else if(_==="dataSource"){const b=((g=v==null?void 0:v.value)==null?void 0:g.map(S=>S.value))||[];(!Array.isArray(t.value)&&!b.includes(t.value)||Array.isArray(t.value)&&import_lodash.default.difference(t.value,b).length>0)&&(t.value=t.initialValue),t[_]=v==null?void 0:v.value,t.data=t.data||{},requestAnimationFrame(()=>{t.setState(S=>{S[_]=v==null?void 0:v.value})})}else _==="display"&&(v==null?void 0:v.value)==="visible"?(t[_]=v==null?void 0:v.value,_==="display"&&(v==null?void 0:v.value)==="visible"&&(t.data=t.data||{},t.data.hidden=!1,t.data.prevRequired&&(delete t.data.prevRequired,t.required=!0)),requestAnimationFrame(()=>{t.setState(b=>{b[_]=v==null?void 0:v.value})})):(t[_]=v==null?void 0:v.value,requestAnimationFrame(()=>{t.setState(b=>{b[_]=v==null?void 0:v.value})}));_==="display"&&(v==null?void 0:v.value)==="none"&&(t.value=null)}t.stateOfLinkageRules[_]=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";case ActionType.Options:return"dataSource";case ActionType.DateScope:return"dateScope";default:return null}}const collectFieldStateOfLinkageRules=({operator:e,value:t,field:o,condition:r,variables:i,localVariables:n,variableNameOfLeftCondition:a,action:l,conditionType:c},u)=>{var m,d,p,h,g,_,f,v,b,S,C,y,F,I;const T=((m=o==null?void 0:o.stateOfLinkageRules)==null?void 0:m.required)||[(d=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:d.required],k=((p=o==null?void 0:o.stateOfLinkageRules)==null?void 0:p.display)||[(h=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:h.display],N=((g=o==null?void 0:o.stateOfLinkageRules)==null?void 0:g.pattern)||[(_=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:_.pattern],M=((f=o==null?void 0:o.stateOfLinkageRules)==null?void 0:f.value)||[(v=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:v.value],L=((b=o==null?void 0:o.stateOfLinkageRules)==null?void 0:b.dataSource)||[(S=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:S.dataSource],{evaluate:D}=import_client3.evaluators.get("formula.js"),R={ruleGroup:r,variables:i,localVariables:n,variableNameOfLeftCondition:a,conditionType:c},$=((C=o==null?void 0:o.stateOfLinkageRules)==null?void 0:C.dateScope)||[(y=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:y.dateScope];switch(e){case ActionType.Required:T.push(getTempFieldState(conditionAnalyses(R,u),!0)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:T});break;case ActionType.InRequired:T.push(getTempFieldState(conditionAnalyses(R,u),!1)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:T});break;case ActionType.Visible:case ActionType.None:case ActionType.Hidden:k.push(getTempFieldState(conditionAnalyses(R,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{display:k});break;case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:N.push(getTempFieldState(conditionAnalyses(R,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{pattern:N});break;case ActionType.Value:{const w=()=>z(void 0,null,function*(){var j;if((t==null?void 0:t.mode)==="express"){if((t.value||t.result)==null)return;const{exp:B,scope:O}=yield replaceVariables(t.value||t.result,{variables:i,localVariables:n});try{return D(B,x({now:()=>new Date().toString()},O))}catch(E){console.error(E)}}else return(t==null?void 0:t.mode)==="constant"?(j=t==null?void 0:t.value)!=null?j:t:null});isConditionEmpty(r)?M.push(getTempFieldState(!0,w())):M.push(getTempFieldState(conditionAnalyses(R,u),w())),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{value:M})}break;case ActionType.Options:{const w=(I=(F=o.data)==null?void 0:F.dataSource)==null?void 0:I.filter(j=>t.value.includes(j.value));L.push(getTempFieldState(conditionAnalyses(R,u),w||[])),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dataSource:L})}break;case ActionType.DateScope:{$.push(getTempFieldState(conditionAnalyses(R,u),{_maxDate:l._maxDate,_minDate:l._minDate})),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dateScope:$});break}default:return null}};function getTempFieldState(e,t){return z(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 z(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=>z(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 getVariableValue=(e,t)=>z(void 0,null,function*(){if(!e)return e;const{evaluate:o}=import_client3.evaluators.get("string"),{exp:r,scope:i}=yield replaceVariables(e,t);return o(r,x({now:()=>new Date().toString()},i))}),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})})})})})},hidden={display:"none"},KeepAliveProvider=(0,import_react2.memo)(({children:e,active:t,parentActive:o})=>{const r=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_LocationContext),i=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_RouteContext),n=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_DataRouterContext),a=(0,import_react2.useContext)(import_react_router_dom.UNSAFE_DataRouterStateContext),l=(0,import_react2.useContext)(IsSubPageClosedByPageMenuContext),c=(0,import_react2.useContext)(import_context.Context),u=(0,import_react2.useContext)(import_pro_layout.RouteContext),m=(0,import_react2.useRef)(r),d=(0,import_react2.useRef)(i),p=(0,import_react2.useRef)(n),h=(0,import_react2.useRef)(a),g=(0,import_react2.useRef)(l),_=(0,import_react2.useRef)(c),f=(0,import_react2.useRef)(u);t&&(p.current=n,h.current=a,g.current=l,_.current=c,f.current=u),t&&!import_lodash.default.isEqual(import_lodash.default.omit(m.current.location,"key"),import_lodash.default.omit(r.location,"key"))&&(m.current=r),t&&!import_lodash.default.isEqual(d.current,i)&&(d.current=i);const v=(0,import_jsx_runtime.jsx)(import_pro_layout.RouteContext.Provider,{value:f.current,children:(0,import_jsx_runtime.jsx)(import_context.Context.Provider,{value:_.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_DataRouterContext.Provider,{value:p.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_DataRouterStateContext.Provider,{value:h.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_LocationContext.Provider,{value:m.current,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.UNSAFE_RouteContext.Provider,{value:d.current,children:(0,import_jsx_runtime.jsx)(KeepAliveContext.Provider,{value:o===!1?!1:t,children:(0,import_jsx_runtime.jsx)(DesignableInterceptor,{active:t,children:(0,import_jsx_runtime.jsx)(IsSubPageClosedByPageMenuContext.Provider,{value:g.current,children:e})})})})})})})})});return(0,import_jsx_runtime.jsx)("div",{style:t?null:hidden,children:v})}),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{active:o}=useKeepAlive(),r=(0,import_react2.useRef)([]);return r.current.includes(t)||(r.current.push(t),r.current.length>MAX_RENDERED_PAGE_COUNT&&(r.current=r.current.slice(-MAX_RENDERED_PAGE_COUNT))),(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:r.current.map(i=>(0,import_jsx_runtime.jsx)(KeepAliveProvider,{active:i===t,parentActive:o,children:e(i)},i))})});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 h=o.getSourceKeyByAssociation(r),g=l instanceof CollectionRecord?l.data:l;if((0,import_lodash.isArray)(h)){const _={};for(const f of h)_[f]=g==null?void 0:g[f];return encodeURIComponent(JSON.stringify(_))}else return g[h]}},[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 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)",colorTemplateBgSettingsHover:"rgba(98, 200, 241, 0.06)",colorBorderSettingsHover:"rgba(241, 139, 98, 0.3)",motionUnit:.03}};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=()=>import_antd.theme.useToken(),CSSVariableProvider=({children:e})=>{const{token:t}=useToken(),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("--colorTextHeaderMenu",t.colorTextHeaderMenu),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("--colorTemplateBgSettingsHover",t.colorTemplateBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",t.colorBorderSettingsHover),document.body.style.setProperty("--colorBgMenuItemSelected",t.colorBgHeaderMenuActive),document.body.style.setProperty("background-color",t.colorBgContainer)},[r,n,i,o,t.colorBgContainer,t.colorBgLayout,t.colorBgSettingsHover,t.colorTemplateBgSettingsHover,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,t.colorTextHeaderMenu]),e};CSSVariableProvider.displayName="CSSVariableProvider";const 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:"繁體中文(台湾)"}};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});const NAMESPACE_UI_SCHEMA="ui-schema-storage";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
|
|
23
23
|
`))}}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 z(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=Te(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 z(this,null,function*(){yield this.initStaticPlugins(e),this.loadRemotePlugins&&(yield this.initRemotePlugins())})}initStaticPlugins(){return z(this,arguments,function*(e=[]){try{for(var t=Te(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 z(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=Te(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 z(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 z(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=>{registerIcon(e,antIcons[e])});const Icon=e=>{const t=e,{type:o="",component:r}=t,i=W(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=W(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=W(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,useGlobalVariable=e=>{const t=useApp(),o=(0,import_react2.useMemo)(()=>t.getGlobalVar(e),[t,e]);if((0,import_lodash.isFunction)(o))try{return o()}catch(r){console.error(`Error calling global variable function for key: ${e}`,r);return}return o},useGlobalVariableCtx=e=>{const t=useApp(),o=(0,import_react2.useMemo)(()=>{var r;return(r=t==null?void 0:t.getGlobalVarCtx)==null?void 0:r.call(t,e)},[t,e]);if((0,import_lodash.isFunction)(o))try{return o()}catch(r){console.error(`Error calling global variable function for key: ${e}`,r);return}return o},useAclSnippets=()=>{const{allowAll:e,snippets:t}=useACLRoleContext();return{allow:o=>{if(o){const r=(0,import_ignore.default)().add(t);return e||r.ignores(o)}return!0}}},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})=>{const t=(e==null?void 0:e.title)||"App Error";return(0,import_jsx_runtime.jsxs)("div",{children:[(0,import_jsx_runtime.jsx)("div",{children:t}),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"),A(this,"router"),this.options=t,this.app=o,this.routes=t.routes||{}}get basename(){return this.router.basename}get state(){return this.router.state}get navigate(){return this.router.navigate}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=W(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}matchRoutes(t){const o=Object.values(this.routes);return(0,import_react_router.matchRoutes)(o,t,this.basename)}isSkippedAuthCheckRoute(t){return this.matchRoutes(t).some(o=>{var r;return((r=o==null?void 0:o.route)==null?void 0:r.skipAuthCheck)===!0})}getRouterComponent(t){const o=this.options,{type:r="browser"}=o,i=W(o,["type"]),n={hash:import_react_router_dom.createHashRouter,browser:import_react_router_dom.createBrowserRouter,memory:import_react_router_dom.createMemoryRouter},a=this.getRoutesTree(),l=(0,import_react2.createContext)(null),c=()=>{const m=(0,import_react2.useContext)(l);return(0,import_jsx_runtime.jsx)(CustomRouterContextProvider,{children:(0,import_jsx_runtime.jsx)(m,{children:(0,import_jsx_runtime.jsxs)(VariablesProvider$1,{children:[(0,import_jsx_runtime.jsx)(import_react_router_dom.Outlet,{}),t]})})})},u=()=>{throw(0,import_react_router_dom.useRouteError)()};return this.router=n[r]([{element:(0,import_jsx_runtime.jsx)(c,{}),errorElement:(0,import_jsx_runtime.jsx)(u,{}),children:a}],i),({BaseLayout:m=BlankComponent})=>(0,import_jsx_runtime.jsx)(l.Provider,{value:m,children:(0,import_jsx_runtime.jsx)(RouterContextCleaner,{children:(0,import_jsx_runtime.jsx)(import_react_router_dom.RouterProvider,{router:this.router})})})}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=()=>z(this,null,function*(){console.log("onerror",this.readyState,this._reconnectTimes)}),t.onclose=r=>z(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)||{},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.controlHeightSM-e.fontSize}}}),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:h,popover:g=!0,style:_,componentProps:f}=t,v=a?a():n,b=l(c),S=(0,import_react2.useCallback)(R=>{v?v(b(R,{isInSubTable:i})):r(u,b(R,{isInSubTable:i}),{onSuccess:m})},[v,b,i,r,u,m]),{wrapSSR:C,hashId:y,componentCls:F}=useSchemaInitializerStyles(),[I,T]=(0,import_react2.useState)(!1),{token:k}=import_antd.theme.useToken(),N=useNiceDropdownMaxHeight([I]),M=(0,import_react2.useMemo)(()=>x({options:t,style:_},f),[f,t,_]),L=(0,import_react2.useMemo)(()=>import_css.css`
|
|
24
24
|
.ant-popover-inner {
|
|
25
25
|
padding: ${`${k.paddingXXS}px 0`};
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
width: 100%;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
`,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),m=useCompile(),d=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(d==null?void 0:d.name)||(0,import_shared.uid)(),[a,d]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:m(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,m,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>z(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return z(this,null,function*(){})}beforeLoad(){return z(this,null,function*(){})}load(){return z(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))};class SchemaInitializer{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=r[r.length-1],n=P(x({},o),{name:i}),a=(u,m)=>{const d=this.items.findIndex(p=>p.name===u);d===-1?this.items.push(m):this.items[d]=m};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),m=c.children.findIndex(d=>d.name===u);m===-1?c.children.push(n):c.children[m]=n}else a(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.7.4",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.7.4","@nocobase/sdk":"1.7.4","@nocobase/utils":"1.7.4",ahooks:"^3.7.2",antd:"5.24.2","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",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^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=>z(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:m,removed:d}){var p;let h=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>z(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=>z(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=>z(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=>z(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 z(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)=>{f===this.current.name&&(m=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),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[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:d,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),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)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(m[f]=_,this.current.parent.removeProperty(f))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const 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[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,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)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[g,h,m,p,d]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(b=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?b:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,b)=>{const S=C=>{Object.keys(C).forEach(y=>{const F=C[y];y==="title"&&(d.title=F,p.title=F),y==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(I=>{d.decoratorProps[I]=F[I],p["x-decorator-props"][I]=F[I]})),y==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(I=>{d.componentProps[I]=F[I],p["x-component-props"][I]=F[I]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,b),S(C)}S(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,b)=>{_.remove(v,b)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,b,S)=>{_.insertAdjacent(v,b,S)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)},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;function useParsedFilter({filterOption:e}){const{parseFilter:t,findVariable:o}=useParseDataScopeFilter(),[r,i]=(0,import_react2.useState)({}),[n,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const l=()=>z(this,null,function*(){a(!0);const u=yield t(e);a(!1),i(u)});l();const c=import_lodash.default.debounce(l,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:u}){return u.startsWith("$")&&u!=="$and"&&u!=="$or"},transformValue(u){if(!isVariable$1(u))return u;const m=getVariableName(u),d=o(m);let p=null;const h=getPath(u).split(".");return h.forEach((g,_)=>{const f=h.slice(0,_+1).join("."),v=(0,import_client.getValuesByPath)({[m]:(d==null?void 0:d.ctx)||{}},f);import_lodash.default.isEmpty(v)||(p=v)}),p}}),c,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),t,o]),{filter:r,parseVariableLoading:n}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1);return!c.current&&l?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n};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.Options="options",e.DateScope="dateScope",e.FontSize="fontSize",e.FontWeight="fontWeight",e.FontStyle="fontStyle",e))(ActionType||{}),LinkageRuleCategory=(e=>(e.default="default",e.style="style",e.button="button",e.block="block",e))(LinkageRuleCategory||{});const LinkageRuleDataKeyMap={style:"x-linkage-style-rules",default:"x-linkage-rules",button:"x-linkage-rules",block:"x-block-linkage-rules"},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>z(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??m[LinkageRuleDataKeyMap[t]],p=useApp(),h=(0,import_react2.useCallback)(()=>{d&&e&&getSatisfiedValueMap({rules:d,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,d,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n])||i!=null&&i.type)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")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let b=m;const S=o.find(I=>I.uid===h.uid);if(!S)return;import_lodash.default.isFunction(u)&&(u=u(S,h,getSourceKey$1(p,S.field))),import_lodash.default.isFunction(m)&&(b=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const C=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[b]:{[d]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(I=>removeNullCondition(I)),h.defaultFilter]);h.doFilter(P(x({},C),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,a)=>a["x-component"]==="AssociationField."+e?a:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,a,l,c,u,m;const{action:d="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),S=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((m=p==null?void 0:p.params)==null?void 0:m.filter),{filter:C}=useParsedFilter({filterOption:S}),y=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=b==null?void 0:b[y==null?void 0:y.sourceKey],I=(0,import_react2.useMemo)(()=>{const T=["oho","o2m"].includes(y==null?void 0:y.interface);return mergeFilter([mergeFilter([T&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$is:null}}:null,C]),T&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$eq:F}}:null],"$or")},[y==null?void 0:y.interface,y==null?void 0:y.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:y==null?void 0:y.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:I})}),[y==null?void 0:y.target,d,I,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
65
|
+
`,items:l},n))})},SchemaInitializerSubMenu=e=>{var t;const o=e,{children:r,items:i,title:n,name:a,onOpenChange:l,icon:c}=o,u=W(o,["children","items","title","name","onOpenChange","icon"]),m=useCompile(),d=useSchemaInitializerItem(),p=(0,import_react2.useMemo)(()=>a||(d==null?void 0:d.name)||(0,import_shared.uid)(),[a,d]),h=(t=i||r)==null?void 0:t.filter(f=>f.useVisible?f.useVisible():!0),g=useSchemaInitializerMenuItems(h,a),_=(0,import_react2.useMemo)(()=>[P(x({},u),{key:p,label:m(n),icon:typeof c=="string"?(0,import_jsx_runtime.jsx)(import_icons.default,{type:c}):c,children:g})],[g,m,c,p,u,n]);return(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{onOpenChange:l,items:_})},SchemaInitializerSubMenuInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSubMenu,x({},e))},useAriaAttributeOfMenuItem=()=>{const{isInMenu:e}=useSchemaInitializerSubMenuContext();return{attribute:(0,import_react2.useMemo)(()=>e?{}:{role:"menuitem"},[e])}},{Paragraph:Paragraph$1,Text:Text$2}=import_antd.Typography,ErrorFallbackModal=e=>{const[t,o]=import_react2.default.useState(!1),r=(0,import_jsx_runtime.jsx)(Paragraph$1,{style:{display:"flex",marginBottom:0},copyable:{text:e.error.message},children:(0,import_jsx_runtime.jsxs)(Text$2,{type:"danger",style:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",display:"inline-block",maxWidth:"200px"},children:["Error: ",e.error.message]})});return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("div",{onMouseOver:()=>o(!0),children:e.children||r}),(0,import_jsx_runtime.jsx)(import_antd.Modal,{zIndex:1e4,open:t,footer:null,onCancel:()=>o(!1),width:"60%",children:(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))})]})},{Paragraph,Text:Text$1,Link}=import_antd.Typography,useDownloadLogs=(e,t={})=>{const o=useLocationNoUpdate(),[r,i]=import_react2.default.useState(!1),n=useAPIClient();return{loading:r,download:()=>z(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return z(this,null,function*(){})}beforeLoad(){return z(this,null,function*(){})}load(){return z(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))};class SchemaInitializer{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=r[r.length-1],n=P(x({},o),{name:i}),a=(u,m)=>{const d=this.items.findIndex(p=>p.name===u);d===-1?this.items.push(m):this.items[d]=m};if(r.length===1){a(i,n);return}const l=r.slice(0,-1).join("."),c=this.get(l);if(c){c.children||(c.children=[]);const u=t.replace(`${c.name}.`,""),m=c.children.findIndex(d=>d.name===u);m===-1?c.children.push(n):c.children[m]=n}else a(i,n)}get(t){var o;if(!t)return;const r=t.split(".");let i={children:this.items};for(let n=0;n<r.length;n++){const a=r[n],l=(o=i.children)==null?void 0:o.find(c=>c.name===a);if(l&&(i=l),n===r.length-1)return l}}remove(t){const o=t.split(".");if(o.length===1){const i=this.items.findIndex(n=>n.name===o[0]);i!==-1&&this.items.splice(i,1);return}const r=this.get(o.slice(0,-1).join("."));if(r&&r.children){const i=o[o.length-1],n=r.children.findIndex(a=>a.name===i);n!==-1&&r.children.splice(n,1)}}}var NocoBaseDesktopRouteType=(e=>(e.group="group",e.page="page",e.link="link",e.tabs="tabs",e))(NocoBaseDesktopRouteType||{});const useStyles$h=genStyleHook("nb-menu-item",e=>{const{componentCls:t}=e;return{[t]:{paddingLeft:`${e.padding}px !important`,paddingRight:`${e.padding}px !important`}}}),useAttach=e=>{const t=(0,import_react2.useRef)(null);return(0,import_react2.useEffect)(()=>(t.current&&e!==t.current&&t.current.onUnmount(),t.current=e,e.onMount(),()=>{e.onUnmount()}),[e]),e},compileCache={},hasVariable=e=>/{{.*?}}/g.test(e),useCompile=({noCache:e}={noCache:!1})=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext);return(r,i)=>{let n=!1,a;if(typeof r=="string"&&r.startsWith("{{")&&(n=!0,a=r),r&&typeof r=="object"&&!(0,import_react2.isValidElement)(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(Array.isArray(r)){try{a=JSON.stringify(r)}catch(l){return console.warn("Failed to stringify:",l),r}if(compileCache[a])return compileCache[a];n=hasVariable(a)}if(n){const l=x(x(x({},t.scope),o),i);if(!a)return import_react.Schema.compile(r,l);try{return e?import_react.Schema.compile(r,l):(compileCache[a]=compileCache[a]||import_react.Schema.compile(r,l),compileCache[a])}catch(c){return console.log("useCompile error",r,c),import_react.Schema.compile(r,l)}}return r}},useComponent=(e,t)=>{const{components:o}=(0,import_react2.useContext)(import_react.SchemaOptionsContext);return e?typeof e!="string"?e:(0,import_lodash.get)(o,e)||t:t},LAZY_COMPONENT_KEY=Symbol("LAZY_COMPONENT_KEY");function lazy(e,...t){if(t.length===0){const o=(0,import_react2.lazy)(()=>e().then(i=>{const n=i.default;return r[LAZY_COMPONENT_KEY]=n,{default:n}})),r=i=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(o,x({},i))});return r}return t.reduce((o,r)=>{const i=(0,import_react2.lazy)(()=>e().then(n=>{const a=(0,import_lodash.get)(n,r);return o[r][LAZY_COMPONENT_KEY]=a,{default:a}}));return o[r]=n=>(0,import_jsx_runtime.jsx)(import_react2.default.Suspense,{fallback:(0,import_jsx_runtime.jsx)(import_antd.Spin,{}),children:(0,import_jsx_runtime.jsx)(i,x({},n))}),o},{})}function useLazy(e,t){const o=typeof t=="function"?t:i=>i[t],r=(0,import_react_imported_component.loadableResource)(e);if(!r.payload)throw new Promise((i,n)=>{r.loadIfNeeded(),r.resolution.then(i).catch(n)});return o(r.payload)}function addAppVersion(e,t){if(e)return e["x-app-version"]||(e["x-app-version"]=t),Object.keys(e.properties||{}).forEach(o=>{var r;addAppVersion((r=e.properties)==null?void 0:r[o],t)}),e}const name="@nocobase/client",version="1.7.6",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.7.6","@nocobase/sdk":"1.7.6","@nocobase/utils":"1.7.6",ahooks:"^3.7.2",antd:"5.24.2","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",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^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=>z(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped:m,removed:d}){var p;let h=[];if((m==null?void 0:m["x-component"])==="Grid.Col"&&(h=h.concat(r(m.parent))),(d==null?void 0:d["x-component"])==="Grid.Col"&&(h=h.concat(r(d.parent))),this.refresh(),!a["x-uid"])return;const g=yield t.request({url:`/uiSchemas:insertAdjacent/${a["x-uid"]}?position=${l}`,method:"post",data:{schema:addAppVersion(c,this.appVersion),wrap:u}});h.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:h})),d!=null&&d["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${d["x-uid"]}`,method:"post"})),n==null||n((p=g==null?void 0:g.data)==null?void 0:p.data),import_antd.message.success(o("Saved successfully"),.2)})),this.on("patch",i=>z(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=>z(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=>z(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=>z(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 z(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)=>{f===this.current.name&&(m=u,c=!0,++u),_["x-index"]=u,++u,c&&(l[f]=_,this.current.parent.removeProperty(f))}),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[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"beforeBegin",schema:g,wrapped:d,wrap:h},r))}insertAfterBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=1;this.current.mapProperties((h,g)=>{h["x-index"]=c,++c,l[g]=h}),this.current.properties={},this.prepareProperty(t);const u=i(t),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)=>{_["x-index"]=l,f===this.current.name&&(++l,c=l,u=!0),++l,u&&f!==this.current.name&&(m[f]=_,this.current.parent.removeProperty(f))}),import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n})),t.parent=null}else t&&(t=(0,import_cloneDeep.default)(t));this.prepareProperty(t);const 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[h,g]=splitWrapSchema(p,t);this.emit("insertAdjacent",x({position:"afterEnd",schema:g,wrap:h,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)(v=>{o==null||o(),l(),c==null||c(v),u==null||u()},[o,l,c,u]),d=(0,import_react.useField)(),p=(0,import_react.useFieldSchema)(),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react2.useMemo)(()=>createDesignable({t:g,api:h,refresh:m,current:p,model:d,appVersion:clientPkg.version}),[g,h,m,p,d]);(0,import_react2.useEffect)(()=>{_.loadAPIClientEvents()},[_]);const{isMobileLayout:f}=useMobileLayout();return{dn:_,designable:f?!1:e,reset:r,refresh:m,setDesignable:t,DesignableBar:a,findComponent:(0,import_react2.useCallback)(v=>{var b;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(b=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?b:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,b)=>{const S=C=>{Object.keys(C).forEach(y=>{const F=C[y];y==="title"&&(d.title=F,p.title=F),y==="x-decorator-props"&&(d.decoratorProps||(d.decoratorProps={}),p["x-decorator-props"]||(p["x-decorator-props"]={}),Object.keys(F).forEach(I=>{d.decoratorProps[I]=F[I],p["x-decorator-props"][I]=F[I]})),y==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(I=>{d.componentProps[I]=F[I],p["x-component-props"][I]=F[I]}))})};if(typeof v=="string"){const C={};return(0,import_set.default)(C,v,b),S(C)}S(v),m()},[_]),shallowMerge:(0,import_react2.useCallback)(v=>{_.shallowMerge(v)},[_]),deepMerge:(0,import_react2.useCallback)(v=>{_.deepMerge(v)},[_]),remove:(0,import_react2.useCallback)((v,b)=>{_.remove(v,b)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,b,S)=>{_.insertAdjacent(v,b,S)},[_]),insertBeforeBegin:(0,import_react2.useCallback)(v=>{_.insertBeforeBegin(v)},[_]),insertAfterBegin:(0,import_react2.useCallback)(v=>{_.insertAfterBegin(v)},[_]),insertBeforeEnd:(0,import_react2.useCallback)(v=>{_.insertBeforeEnd(v)},[_]),insertAfterEnd:(0,import_react2.useCallback)(v=>{_.insertAfterEnd(v)},[_])}}const DefaultSchemaToolbar=()=>null;DefaultSchemaToolbar.isNullComponent=!0;const useDesigner=()=>{const{designable:e}=useDesignable(),t=(0,import_react.useFieldSchema)(),o=(0,import_react2.useMemo)(()=>t["x-designer"]||t["x-toolbar"]?t["x-designer"]||t["x-toolbar"]:t["x-settings"]?SchemaToolbar:DefaultSchemaToolbar,[t]),r=useComponent(o);return e&&r||DefaultSchemaToolbar},useFieldProps$1=e=>{const t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),o=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),r=(0,import_react2.useRef)();return r.current=o,e.toFieldProps(P(x({},t),{get scope(){return x(x({},t.scope),r.current)}}))};function useSchemaComponentContext(){return(0,import_react2.useContext)(SchemaComponentContext)}const useFieldComponentOptions=()=>{var e;const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(),r=(0,import_react.useFieldSchema)(),{getField:i}=useCollection_deprecated(),n=i(r.name)||t(r["x-collection-field"]),{t:a}=(0,import_react_i18next.useTranslation)(),{label:l}=((e=r["x-component-props"])==null?void 0:e.fieldNames)||{};return(0,import_react2.useMemo)(()=>{if(!n||!(n!=null&&n.interface)||!["o2o","oho","obo","o2m","linkTo","m2o","m2m"].includes(n.interface))return;const c=o(n.target);if((c==null?void 0:c.template)==="file")return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];switch(n.interface){case"o2m":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subtable"),value:"TableField"},{label:a("Select"),value:"AssociationSelect"}];case"m2o":case"m2m":case"linkTo":return[{label:a("Record picker"),value:"CollectionField"},{label:a("Select"),value:"AssociationSelect"}];default:return[{label:a("Record picker"),value:"CollectionField"},{label:a("Subform"),value:"FormField"},{label:a("Select"),value:"AssociationSelect"}]}},[a,n==null?void 0:n.interface,l])},useFieldTitle=()=>{var e;const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useCollection(),i=useCollectionManager(),n=(r==null?void 0:r.getField(o.name))||(i==null?void 0:i.getCollectionField(o["x-collection-field"])),a=useCompile();(0,import_react2.useEffect)(()=>{var l;t!=null&&t.title||(t.title=a((l=n==null?void 0:n.uiSchema)==null?void 0:l.title))},[(e=n==null?void 0:n.uiSchema)==null?void 0:e.title])},useDef$4=()=>({}),useProps=(e={})=>{const t=e,{useProps:o=useDef$4}=t,r=W(t,["useProps"]);let i=o;typeof o!="function"&&(i=useDef$4);const n=i();return x(x({},r),n)};function useParsedFilter({filterOption:e}){const{parseFilter:t,findVariable:o}=useParseDataScopeFilter(),[r,i]=(0,import_react2.useState)({}),[n,a]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const l=()=>z(this,null,function*(){a(!0);const u=yield t(e);a(!1),i(u)});l();const c=import_lodash.default.debounce(l,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:u}){return u.startsWith("$")&&u!=="$and"&&u!=="$or"},transformValue(u){if(!isVariable$1(u))return u;const m=getVariableName(u),d=o(m);let p=null;const h=getPath(u).split(".");return h.forEach((g,_)=>{const f=h.slice(0,_+1).join("."),v=(0,import_client.getValuesByPath)({[m]:(d==null?void 0:d.ctx)||{}},f);import_lodash.default.isEmpty(v)||(p=v)}),p}}),c,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),t,o]),{filter:r,parseVariableLoading:n}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>z(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>z(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??m[LinkageRuleDataKeyMap[t]],p=useApp(),h=(0,import_react2.useCallback)(()=>{d&&e&&getSatisfiedValueMap({rules:d,variables:c,localVariables:u},p.jsonLogic).then(g=>{(0,import_lodash.isEmpty)(g)?a({}):a(g)}).catch(g=>{throw new Error(g.message)})},[c,u,d,e]);return(0,import_react2.useEffect)(()=>{if(h(),i){const g=(0,import_shared.uid)();return i.addEffects(g,()=>{(0,import_core.onFormValuesChange)(()=>{h()})}),()=>{i.removeEffects(g)}}},[i,h]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n])||i!=null&&i.type)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")=>{const p=i.find(h=>h.uid===e.parent["x-uid"]);i.forEach(h=>{var g,_,f,v;let b=m;const S=o.find(I=>I.uid===h.uid);if(!S)return;import_lodash.default.isFunction(u)&&(u=u(S,h,getSourceKey$1(p,S.field))),import_lodash.default.isFunction(m)&&(b=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const C=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[b]:{[d]:u}}]};else if((v=h.clearSelection)==null||v.call(h),delete y[r],h.dataLoadingMode==="manual")return h.clearData();const F=mergeFilter([...Object.values(y).map(I=>removeNullCondition(I)),h.defaultFilter]);h.doFilter(P(x({},C),{page:1,filter:F}),{filters:y})})},[i,o,r,e]);return{isConnected:n,doFilter:c}},isInFilterFormBlock=e=>{for(;e;){if(e["x-filter-targets"])return e["x-decorator"]==="FilterFormBlockProvider";e=e.parent}return!1};function getSourceKey$1(e,t){var o,r,i;const n=(o=e==null?void 0:e.associatedFields)==null?void 0:o.find(a=>a.foreignKey===t);return(n==null?void 0:n.sourceKey)||((i=(r=t==null?void 0:t.split)==null?void 0:r.call(t,"."))==null?void 0:i[1])}const AssociationFieldContext=(0,import_react2.createContext)({});AssociationFieldContext.displayName="AssociationFieldContext";const useInsertSchema$1=e=>{const t=(0,import_react.useFieldSchema)(),{insertAfterBegin:o}=useDesignable(),{isMobileLayout:r}=useMobileLayout();return(0,import_react2.useCallback)(i=>{r||t.reduceProperties((n,a)=>a["x-component"]==="AssociationField."+e?a:n,null)||o((0,import_cloneDeep.default)(i))},[e,t,o,r])};function useAssociationFieldContext(){return(0,import_react2.useContext)(AssociationFieldContext)}function useServiceOptions$1(e){var t,o,r,i,n,a,l,c,u,m;const{action:d="list",service:p,useOriginalFilter:h}=e,g=(0,import_react.useFieldSchema)(),_=(0,import_react.useField)(),{getField:f}=useCollection_deprecated(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=useRecord(),S=((0,import_lodash.isString)((r=(o=(t=g==null?void 0:g["x-component-props"])==null?void 0:t.service)==null?void 0:o.params)==null?void 0:r.filter)?(a=(n=(i=_.componentProps)==null?void 0:i.service)==null?void 0:n.params)==null?void 0:a.filter:(u=(c=(l=g==null?void 0:g["x-component-props"])==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||((m=p==null?void 0:p.params)==null?void 0:m.filter),{filter:C}=useParsedFilter({filterOption:S}),y=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),F=b==null?void 0:b[y==null?void 0:y.sourceKey],I=(0,import_react2.useMemo)(()=>{const T=["oho","o2m"].includes(y==null?void 0:y.interface);return mergeFilter([mergeFilter([T&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$is:null}}:null,C]),T&&F!==void 0&&F!==null&&!isInFilterFormBlock(g)&&y!=null&&y.foreignKey&&!h?{[y.foreignKey]:{$eq:F}}:null],"$or")},[y==null?void 0:y.interface,y==null?void 0:y.foreignKey,g,C,F,h]);return(0,import_react2.useMemo)(()=>P(x({resource:y==null?void 0:y.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:I})}),[y==null?void 0:y.target,d,I,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},TableSkeleton=({rows:e=5,columns:t=6})=>{const{token:o}=useToken$1(),r=o.controlHeight*2.06,i=o.controlHeight*1.75,n=(0,import_react2.useMemo)(()=>import_css.css`
|
|
66
66
|
&.skeleton-wrapper {
|
|
67
67
|
width: 100%;
|
|
68
68
|
background: ${o.colorBgContainer};
|
|
@@ -271,7 +271,7 @@ ${JSON.stringify(O,null,2)}`)},[u,c,l,i,r,I,t,a,n,g,o,_,S,T,C,y,h]),N=(0,import_
|
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
|
-
`,TableColumnActionBar$1=(0,import_react.observer)(e=>{const t=useDesigner();useFlag();const{designable:o}=useSchemaComponentContext(),{token:r}=useToken$1();return!o||t.isNullComponent?e.children:(0,import_jsx_runtime.jsxs)(SortableItem,{className:designerCss$4({margin:`-${r.margin}px -${r.marginXS}px`,padding:`${r.margin}px ${r.marginXS}px`}),children:[(0,import_jsx_runtime.jsx)(t,{}),e.children]})},{displayName:"TableColumnActionBar"}),useColumnSchema$1=()=>{const{getField:e}=useCollection_deprecated(),t=useCompile(),o=(0,import_react.useFieldSchema)(),{getCollectionJoinField:r}=useCollectionManager_deprecated(),i=o==null?void 0:o.reduceProperties((a,l)=>isCollectionFieldComponent(l)?l:a,null);if(!i)return{};const n=e(i.name)||r(i==null?void 0:i["x-collection-field"]);return{columnSchema:o,fieldSchema:i,collectionField:n,uiSchema:t(n==null?void 0:n.uiSchema)}},useTableFieldInstanceList=()=>{const e=(0,import_react.useField)(),{fieldSchema:t}=useColumnSchema$1(),o=(0,import_react2.useMemo)(()=>{var r,i;if(!t||!e)return[];const n=(i=e.path)==null?void 0:i.splice(((r=e.path)==null?void 0:r.length)-1,1);return e.form.query(`${n.concat("*."+t.name)}`).map()},[e,t]);return t?o:[]},TableColumnDecorator$1=e=>{const t=useDesigner(),o=(0,import_react.useField)(),{fieldSchema:r,uiSchema:i,collectionField:n}=useColumnSchema$1(),{designable:a}=useSchemaComponentContext(),l=useCompile(),{isInSubTable:c}=useFlag()||{},{token:u}=useToken$1(),{name:m}=(useBlockContext==null?void 0:useBlockContext())||{};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]),!a||t.isNullComponent?(0,import_jsx_runtime.jsxs)(CollectionFieldContext.Provider,{value:n,children:[(0,import_jsx_runtime.jsx)(t,{fieldSchema:r,uiSchema:i,collectionField:n}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[(r==null?void 0:r.required)&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(o==null?void 0:o.title)||l(i==null?void 0:i.title)})]})]}):(0,import_jsx_runtime.jsx)(SortableItem,{className:designerCss$4({margin:`-${u.margin}px -${u.marginXS}px`,padding:`${u.margin}px ${u.marginXS}px`}),children:(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:n,children:(0,import_jsx_runtime.jsxs)(BlockContext.Provider,{value:{name:c?m:"taleColumn"},children:[(0,import_jsx_runtime.jsx)(t,{fieldSchema:r,uiSchema:i,collectionField:n}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[(r==null?void 0:r.required)&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(o==null?void 0:o.title)||l(i==null?void 0:i.title)})]})]})})})},SchemaToolbarContext=(0,import_react2.createContext)({});SchemaToolbarContext.displayName="SchemaToolbarContext";const SchemaToolbarProvider=e=>{const t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(SchemaToolbarContext.Provider,{value:r,children:o})};function useSchemaToolbar(){return(0,import_react2.useContext)(SchemaToolbarContext)}const SchemaToolbarErrorFallback=e=>{const{designable:t}=useDesignable();return t?(0,import_jsx_runtime.jsx)(ErrorFallback.Modal,P(x({},e),{children:(0,import_jsx_runtime.jsx)(SchemaToolbar,{title:`render toolbar error: ${e.error.message}`})})):null},useSchemaToolbarRender=e=>{const{designable:t}=useDesignable(),o=(0,import_react2.useMemo)(()=>{if(e["x-designer"]||e["x-toolbar"])return e["x-designer"]||e["x-toolbar"];if(e["x-settings"])return SchemaToolbar},[e]),r=useComponent(o);return{render(i){return!t||!r?null:(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:SchemaToolbarErrorFallback,onError:console.error,children:(0,import_jsx_runtime.jsx)(r,x(x({},e["x-toolbar-props"]),i))})},exists:!!r}},generalSettingsItems=[{name:"editFieldTitle",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=useCompile(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{getCollectionJoinField:a}=useCollectionManager_deprecated(),{getField:l}=useCollection_deprecated(),c=l(n.name)||a(n["x-collection-field"]);return{title:t("Edit field title"),schema:{type:"object",title:t("Edit field title"),properties:{title:{title:t("Field title"),default:i==null?void 0:i.title,description:`${t("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit({title:u}){var m;const d=u.trim()===""?(m=c==null?void 0:c.uiSchema)==null?void 0:m.title:u;i.title=r(d),n.title=u,o.emit("patch",{schema:{"x-uid":n["x-uid"],title:n.title}}),o.refresh()}}},useVisible(){const e=(0,import_react.useFieldSchema)(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated();return!!(o(e.name)||t(e["x-collection-field"]))}},{name:"displayTitle",type:"switch",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)();return{title:o("Display title"),checked:(t=(e=n["x-decorator-props"])==null?void 0:e.showTitle)!=null?t:!0,onChange(a){n["x-decorator-props"]=n["x-decorator-props"]||{},n["x-decorator-props"].showTitle=a,i.decoratorProps.showTitle=a,r.emit("patch",{schema:{"x-uid":n["x-uid"],"x-decorator-props":P(x({},n["x-decorator-props"]),{showTitle:a})}}),r.refresh()}}}},{name:"editDescription",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:e("Edit description"),schema:{type:"object",title:e("Edit description"),properties:{description:{default:o==null?void 0:o.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({description:i}){o.description=i,r.description=i,t.emit("patch",{schema:{"x-uid":r["x-uid"],description:r.description}}),t.refresh()}}},useVisible(){return!(0,import_react.useField)().readPretty}},{name:"editTooltip",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)();return{title:t("Edit tooltip"),schema:{type:"object",title:t("Edit tooltip"),properties:{tooltip:{default:(e=i==null?void 0:i["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({tooltip:n}){r.decoratorProps.tooltip=n,i["x-decorator-props"]=i["x-decorator-props"]||{},i["x-decorator-props"].tooltip=n,o.emit("patch",{schema:{"x-uid":i["x-uid"],"x-decorator-props":i["x-decorator-props"]}}),o.refresh()}}},useVisible(){return(0,import_react.useField)().readPretty}},{name:"required",type:"switch",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r,refresh:i}=useDesignable();return{title:e("Required"),checked:o.required,onChange(n){const a={"x-uid":o["x-uid"]};t.required=n,o.required=n,a.required=n,r.emit("patch",{schema:a}),i()}}},useVisible(){const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{required:o=!0}=useSchemaToolbar();return!e.readPretty&&t["x-component"]!=="FormField"&&o}},{name:"style",Component:e=>{const t=P(x({},e),{category:"style"});return(0,import_jsx_runtime.jsx)(SchemaSettingsLinkageRules,x({},t))},useVisible(){return useIsFieldReadPretty()},useComponentProps(){const{name:e}=useCollection(),{linkageRulesProps:t}=useSchemaToolbar();return P(x({},t),{collectionName:e})}}];function bindLinkageRulesToFiled({field:e,linkageRules:t,formValues:o,localVariables:r,action:i,rule:n,variables:a,variableNameOfLeftCondition:l},c){var u,m,d,p,h,g;return e.initStateOfLinkageRules={display:((u=e.initStateOfLinkageRules)==null?void 0:u.display)||getTempFieldState(!0,e.display),required:((m=e.initStateOfLinkageRules)==null?void 0:m.required)||getTempFieldState(!0,e.required||!1),pattern:((d=e.initStateOfLinkageRules)==null?void 0:d.pattern)||getTempFieldState(!0,e.pattern),value:((p=e.initStateOfLinkageRules)==null?void 0:p.value)||getTempFieldState(!0,e.value||e.initialValue),dataSource:((h=e.initStateOfLinkageRules)==null?void 0:h.dataSource)||getTempFieldState(!0,e.dataSource||e.options),dateScope:((g=e.initStateOfLinkageRules)==null?void 0:g.dateScope)||getTempFieldState(!0,null)},(0,import_reactive.reaction)(()=>{const _=getFieldValuesInCondition({linkageRules:t,formValues:o}),f=getVariableValuesInCondition({linkageRules:t,localVariables:r}),v=getVariableValuesInExpression({action:i,localVariables:r});return[_,f,v].map(b=>JSON.stringify(b)).join(",")},getSubscriber({action:i,field:e,rule:n,variables:a,localVariables:r,variableNameOfLeftCondition:l},c),{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",i=o.condition[r];return o.conditionType==="advanced"?i.map(n=>{if(!n)return null;if(n.$and||n.$or)return getVariableValuesInCondition({linkageRules:[{conditionType:"advanced",condition:n}],localVariables:t});const a=l=>isVariable$1(l)?getVariableValue$1(l,t):l;return{leftVar:a(n.leftVar),rightVar:a(n.rightVar)}}).filter(Boolean):i.map(n=>{const a=getInnermostKeyAndValue(n);return a?isVariable$1(a.value)?getVariableValue$1(a.value,t):a.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$1(a,t)).filter(Boolean)}function getVariableValue$1(e,t){var o;if(!isVariable$1(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},a){return()=>{collectFieldStateOfLinkageRules({operator:e.operator,value:e.value,field:t,condition:o.condition,variables:r,localVariables:i,variableNameOfLeftCondition:n,action:e,conditionType:o.conditionType},a),setTimeout(()=>z(this,null,function*(){var l,c,u,m,d,p,h,g;const _=getFieldNameByOperator(e.operator);if(!((l=t.stateOfLinkageRules)!=null&&l[_]))return;let f=t.stateOfLinkageRules[_];f=yield Promise.all(f),f=f.filter(b=>b.condition);const v=f[f.length-1];if(_==="value")f.length>1&&(t.value=v.value);else if(_==="dateScope")t.setComponentProps({_maxDate:((u=(c=v.value)==null?void 0:c._maxDate)==null?void 0:u.value)||((m=v.value)==null?void 0:m._maxDate),_minDate:((p=(d=v.value)==null?void 0:d._minDate)==null?void 0:p.value)||((h=v.value)==null?void 0:h._minDate)});else{if(_==="display"&&(v==null?void 0:v.value)==="hidden")t.display="visible",t.data=t.data||{},t.data.hidden=!0,t.required&&(t.required=!1,t.data.prevRequired=!0),requestAnimationFrame(()=>{t.setState(b=>{b.display="visible"})});else if(_==="dataSource"){const b=((g=v==null?void 0:v.value)==null?void 0:g.map(S=>S.value))||[];(!Array.isArray(t.value)&&!b.includes(t.value)||Array.isArray(t.value)&&import_lodash.default.difference(t.value,b).length>0)&&(t.value=t.initialValue),t[_]=v==null?void 0:v.value,t.data=t.data||{},requestAnimationFrame(()=>{t.setState(S=>{S[_]=v==null?void 0:v.value})})}else _==="display"&&(v==null?void 0:v.value)==="visible"?(t[_]=v==null?void 0:v.value,_==="display"&&(v==null?void 0:v.value)==="visible"&&(t.data=t.data||{},t.data.hidden=!1,t.data.prevRequired&&(delete t.data.prevRequired,t.required=!0)),requestAnimationFrame(()=>{t.setState(b=>{b[_]=v==null?void 0:v.value})})):(t[_]=v==null?void 0:v.value,requestAnimationFrame(()=>{t.setState(b=>{b[_]=v==null?void 0:v.value})}));_==="display"&&(v==null?void 0:v.value)==="none"&&(t.value=null)}t.stateOfLinkageRules[_]=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";case ActionType.Options:return"dataSource";case ActionType.DateScope:return"dateScope";default:return null}}const collectFieldStateOfLinkageRules=({operator:e,value:t,field:o,condition:r,variables:i,localVariables:n,variableNameOfLeftCondition:a,action:l,conditionType:c},u)=>{var m,d,p,h,g,_,f,v,b,S,C,y,F,I;const T=((m=o==null?void 0:o.stateOfLinkageRules)==null?void 0:m.required)||[(d=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:d.required],k=((p=o==null?void 0:o.stateOfLinkageRules)==null?void 0:p.display)||[(h=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:h.display],N=((g=o==null?void 0:o.stateOfLinkageRules)==null?void 0:g.pattern)||[(_=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:_.pattern],M=((f=o==null?void 0:o.stateOfLinkageRules)==null?void 0:f.value)||[(v=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:v.value],L=((b=o==null?void 0:o.stateOfLinkageRules)==null?void 0:b.dataSource)||[(S=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:S.dataSource],{evaluate:D}=import_client3.evaluators.get("formula.js"),R={ruleGroup:r,variables:i,localVariables:n,variableNameOfLeftCondition:a,conditionType:c},$=((C=o==null?void 0:o.stateOfLinkageRules)==null?void 0:C.dateScope)||[(y=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:y.dateScope];switch(e){case ActionType.Required:T.push(getTempFieldState(conditionAnalyses(R,u),!0)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:T});break;case ActionType.InRequired:T.push(getTempFieldState(conditionAnalyses(R,u),!1)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:T});break;case ActionType.Visible:case ActionType.None:case ActionType.Hidden:k.push(getTempFieldState(conditionAnalyses(R,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{display:k});break;case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:N.push(getTempFieldState(conditionAnalyses(R,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{pattern:N});break;case ActionType.Value:{const w=()=>z(void 0,null,function*(){var j;if((t==null?void 0:t.mode)==="express"){if((t.value||t.result)==null)return;const{exp:B,scope:O}=yield replaceVariables(t.value||t.result,{variables:i,localVariables:n});try{return D(B,x({now:()=>new Date().toString()},O))}catch(E){console.error(E)}}else return(t==null?void 0:t.mode)==="constant"?(j=t==null?void 0:t.value)!=null?j:t:null});isConditionEmpty(r)?M.push(getTempFieldState(!0,w())):M.push(getTempFieldState(conditionAnalyses(R,u),w())),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{value:M})}break;case ActionType.Options:{const w=(I=(F=o.data)==null?void 0:F.dataSource)==null?void 0:I.filter(j=>t.value.includes(j.value));L.push(getTempFieldState(conditionAnalyses(R,u),w||[])),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dataSource:L})}break;case ActionType.DateScope:{$.push(getTempFieldState(conditionAnalyses(R,u),{_maxDate:l._maxDate,_minDate:l._minDate})),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dateScope:$});break}default:return null}};function getTempFieldState(e,t){return z(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 z(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=>z(this,null,function*(){const{value:m}=yield r.parseVariable(u,i,{doNotRequest:u.includes("$nForm")||u.includes("$iteration")}),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 RemoveConditionContext$1=(0,import_react2.createContext)(null);RemoveConditionContext$1.displayName="RemoveConditionContext";const FilterContext$3=(0,import_react2.createContext)(null);FilterContext$3.displayName="FilterContext";const FilterLogicContext$1=(0,import_react2.createContext)(null);FilterLogicContext$1.displayName="FilterLogicContext";const findOption$2=(e=[],t)=>{var o;let r=t,i;return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const a=r.find(l=>l.name===n);a&&(i=a),r=(a==null?void 0:a.children)||[]}),i},useValues$2=()=>{const{name:e}=useCollection_deprecated(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),o=(0,import_react.useField)(),{options:r,collectionName:i,field:n}=(0,import_react2.useContext)(FilterContext$3)||{},a=(0,import_flat.default)(o.value||{}),l=Object.keys(a).shift()||"",c=(0,import_react2.useMemo)(()=>{const[h=""]=l.split(".$");return t(`${i||e}.${h}`)},[e,l]),u=(0,import_react2.useCallback)(()=>{var h,g,_,f;o.value=o.data.dataIndex?import_flat.default.unflatten({[`${(h=o.data.dataIndex)==null?void 0:h.join(".")}.${(_=(g=o.data)==null?void 0:g.operator)==null?void 0:_.value}`]:(f=o.data)==null?void 0:f.value}):{}},[o]);(0,import_react2.useEffect)(()=>{var h;if(o.data=o.data||{},!l||!r)return;const[g="",_=""]=l.split(".$"),[f]=_.split(".",2),v=g.split("."),b=findOption$2(v,r),S=b==null?void 0:b.operators,C=(h=S==null?void 0:S.find)==null?void 0:h.call(S,y=>y.value===`$${f}`);if(o.data.dataIndex=v,(v==null?void 0:v.length)>1){const y=v.concat();y.pop();const F=t(`${e}.${y.join(".")}`);n.collectionName=F==null?void 0:F.target}else n.collectionName=null;o.data.operators=S,o.data.operator=C,o.data.schema=(0,import_shared.merge)(b==null?void 0:b.schema,C==null?void 0:C.schema),o.data.value=(0,import_get.default)((0,import_flat.unflatten)(o.value),`${g}.$${f}`)},[o.path]);const m=(0,import_react2.useCallback)(h=>{var g;const _=findOption$2(h,r),f=(g=_==null?void 0:_.operators)==null?void 0:g[0];o.data=o.data||{},o.data.operators=_==null?void 0:_.operators,o.data.operator=f;const v=(0,import_cloneDeep.default)(_==null?void 0:_.schema),b=(0,import_cloneDeep.default)(f==null?void 0:f.schema);if(o.data.schema=(0,import_shared.merge)(v,b),o.data.dataIndex=h,(h==null?void 0:h.length)>1){const S=h.concat();S.pop();const C=t(`${e}.${S.join(".")}`);n.collectionName=C==null?void 0:C.target}else n.collectionName=null;o.data.value=f!=null&&f.noValue?f.default||!0:void 0,u()},[u,o,r]),d=(0,import_react2.useCallback)(h=>{var g,_,f;const v=(f=(_=(g=o.data)==null?void 0:g.operators)==null?void 0:_.find)==null?void 0:f.call(_,y=>y.value===h);o.data.operator=v;const b=findOption$2(o.data.dataIndex,r),S=(0,import_cloneDeep.default)(b==null?void 0:b.schema),C=(0,import_cloneDeep.default)(v==null?void 0:v.schema);o.data.schema=(0,import_shared.merge)(S,C),o.data.value=v.noValue?v.default||!0:void 0,u()},[u,o.data,r]),p=(0,import_react2.useCallback)(h=>{o.data.value=h,u()},[u,o.data]);return P(x({fields:r},(o==null?void 0:o.data)||{}),{collectionField:c,setDataIndex:m,setOperator:d,setValue:p})},useBlockCollection=()=>{const e=useDataBlockProps();return{name:(e==null?void 0:e.collection)||(e==null?void 0:e.resource)}},useIsSameOrChildCollection=()=>{const{getChildrenCollections:e}=useCollectionManager_deprecated();return(t,o)=>{if(t===o)return!0;const r=e(o);return r==null?void 0:r.some(i=>i.name===t)}},getChildren$2=(e,{schema:t,depth:o,maxDepth:r,loadChildren:i,compile:n},a,l)=>e.map(c=>{const u=!l(c.target,a==null?void 0:a.target);return c.target?o>=r?null:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,field:c,depth:o,loadChildren:i}:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,depth:o}}).filter(Boolean),useContextAssociationFields=({schema:e,maxDepth:t=3,contextCollectionName:o,collectionField:r})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),n=useCompile(),a=useGetFilterOptions(),l=useIsSameOrChildCollection(),c=u=>{var m;if(!((m=u.field)!=null&&m.target))return new Promise(p=>{(0,import_client.error)("Must be set field target"),u.children=[],p(void 0)});const d=u.field.target;return new Promise(p=>{setTimeout(()=>{const h=getChildren$2(a(d).filter(g=>r?["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(g.type):!0),{schema:e,depth:u.depth+1,maxDepth:t,loadChildren:c,compile:n},r,l)||[];if(h.length===0){u.disabled=!0,u.children=[],p();return}u.children=h,p()},5)})};return(0,import_react2.useMemo)(()=>({label:i("Table selected records"),value:"$context",key:"$context",isLeaf:!1,field:{target:o},depth:0,loadChildren:c}),[e==null?void 0:e["x-component"]])},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 useSpecialCase=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getField:o}=useCollection_deprecated(),{getCollectionField:r}=useCollectionManager_deprecated(),i=(0,import_react2.useMemo)(()=>o(t.name),[t.name,o]),n=(0,import_react2.useCallback)(()=>isSpecialCaseField({collectionField:i,fieldSchema:t,getCollectionField:r}),[i,t,r]),a=(0,import_react2.useCallback)(l=>{const c=getParentFieldSchema(t);if(c){const u=e.query(c.name).take();if(u){const m=import_lodash.default.isEmpty(l)?[]:import_lodash.default.map(transformValue(l,{field:u,subFieldSchema:t}),d=>markRecordAsNew(d));isSubset(m,u.initialValue)||u.setInitialValue(m)}}},[t,e]);return{isSpecialCase:n,setDefaultValue:a}};function getParentFieldSchema(e){for(;e!=null&&e.parent;)if(e=e.parent,isSubMode(e))return e;return e}function isSpecialCaseField({collectionField:e,fieldSchema:t,getCollectionField:o}){if(!t.default||!t.default.includes("$context"))return!1;if(e&&["hasOne","belongsTo"].includes(e.type)&&t){const r=getParentFieldSchema(t);if(r&&r["x-collection-field"]){const i=o(r["x-collection-field"]);if(["hasMany","belongsToMany"].includes(i==null?void 0:i.type))return!0}}return!1}function transformValue(e,t){const{field:o,subFieldSchema:r}=t,i=o.value;let n=null;return Array.isArray(e)?n=e.map(a=>({[r.name]:a})):n=[{[r.name]:e}],import_lodash.default.assignWith([...i],n,(a,l)=>(!a&&l&&(l.__notFromDatabase=!0),import_lodash.default.assign(x({},i[0]),l)))}const useSubTableSpecialCase=({rootField:e,rootSchema:t})=>{const{hasUsedVariable:o}=useHasUsedVariable();(0,import_react2.useEffect)(()=>{if(import_lodash.default.isEmpty(e.value)&&o("$context",t)){const r=e.value,i=[markRecordAsNew({})];e.value=i,setTimeout(()=>{JSON.stringify(e.value)===JSON.stringify(i)&&(e.value=r)})}},[e,t,o])};function isSubset(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){const r=e[o],i=t[o];if(!import_lodash.default.isMatch(import_lodash.default.omitBy(i,import_lodash.default.isNil),import_lodash.default.omitBy(r,import_lodash.default.isNil)))return!1}return!0}const checkSchema=(e,t)=>{if(e["x-decorator"]==="FormItem"){const r=e.default;if(r&&typeof r=="string"&&isVariable$1(r)&&r.includes(t))return!0}let o=!1;return e.mapProperties(r=>{checkSchema(r,t)&&(o=!0)}),o};function useHasUsedVariable(){return{hasUsedVariable:(0,import_react2.useCallback)((e,t)=>checkSchema(t,e),[])}}const BaseVariableContext=import_react2.default.createContext(null),BaseVariableProvider=e=>(0,import_jsx_runtime.jsx)(BaseVariableContext.Provider,{value:e,children:e.children}),getChildren$1=(e,{collectionField:t,uiSchema:o,depth:r,maxDepth:i,noDisabled:n,loadChildren:a,compile:l,isDisabled:c,targetFieldSchema:u,getCollectionField:m,deprecated:d})=>e.map(p=>!p.target||p.target==="chinaRegions"?{key:p.name,value:p.name,label:l(p.title),disabled:d||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:m})),isLeaf:!0,depth:r,operators:p==null?void 0:p.operators,schema:p==null?void 0:p.schema}:r>=i?null:{key:p.name,value:p.name,label:l(p.title),isLeaf:!1,field:p,depth:r,disabled:d||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:m})),loadChildren:a}).filter(Boolean),getLabelWithTooltip=(e,t)=>t?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{placement:"left",title:t,zIndex:9999,children:(0,import_jsx_runtime.jsx)("span",{style:{position:"relative",display:"inline-block",marginLeft:-14,paddingLeft:14,marginRight:-80,paddingRight:80,zIndex:1},children:e})}):e,useBaseVariable=({collectionField:e,uiSchema:t,targetFieldSchema:o,maxDepth:r=3,name:i,title:n,collectionName:a,noChildren:l=!1,noDisabled:c=!0,dataSource:u,returnFields:m=g=>g,deprecated:d,tooltip:p,operators:h=[]})=>{const g=useCompile(),_=useGetFilterOptions(),{isDisabled:f}=(0,import_react2.useContext)(BaseVariableContext)||{},v=useCollectionManager(),b=S=>{var C;if(!((C=S.field)!=null&&C.target))return Promise.resolve(void 0);const y=S.field.target;return new Promise(F=>{setTimeout(()=>{const I=(getChildren$1(m(_(y,u,!0),S),{collectionField:e,uiSchema:t,targetFieldSchema:o,depth:S.depth+1,maxDepth:r,noDisabled:c,loadChildren:b,compile:g,isDisabled:f||isDisabledDefault,getCollectionField:v.getCollectionField,deprecated:d})||[]).sort((T,k)=>T.isLeaf&&!k.isLeaf?-1:!T.isLeaf&&k.isLeaf?1:0).sort((T,k)=>T.disabled&&!k.disabled?1:!T.disabled&&k.disabled?-1:0);if(I.length===0){S.disabled=!0,S.isLeaf=!0,F();return}S.children=I,F()},5)})};return(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(n,p),value:i,key:i,isLeaf:l,field:{target:a},depth:0,loadChildren:b,children:[],disabled:!!d,deprecated:d,operators:h}),[t==null?void 0:t["x-component"]])};function isDisabledDefault(e){var t,o;const{option:r,collectionField:i,uiSchema:n,targetFieldSchema:a,getCollectionField:l}=e;return!n||!i?!0:i.interface==="json"?!1:!i.target&&["hasMany","belongsToMany"].includes(r.type)?!0:!i.target&&["hasOne","belongsTo"].includes(r.type)||r.target&&isSpecialCaseField({collectionField:i,fieldSchema:a,getCollectionField:l})?!1:["hasOne","belongsTo"].includes(i.type)&&["hasMany","belongsToMany"].includes(r.type)?!0:["hasOne","belongsTo"].includes(i.type)&&["hasOne","belongsTo"].includes(r.type)||["hasMany","belongsToMany"].includes(i.type)&&r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const CurrentRecordContext=(0,import_react2.createContext)(null),CurrentRecordContextProvider=e=>{const t=(0,import_react2.useMemo)(()=>({recordData:e.recordData,collectionName:e.collectionName}),[e.recordData,e.collectionName]);return(0,import_jsx_runtime.jsxs)(CurrentRecordContext.Provider,{value:t,children:[" ",e.children," "]})},useCurrentRecord=()=>(0,import_react2.useContext)(CurrentRecordContext),useCurrentRecordContext=()=>{const e=useCurrentRecord(),{name:t}=useBlockContext()||{},o=useCollection(),r=useCollectionRecordData(),{formRecord:i,collectionName:n}=useFormBlockContext();let a=i!=null&&i.data?n:o==null?void 0:o.name;return a=(e==null?void 0:e.collectionName)||a,{currentRecordCtx:(e==null?void 0:e.recordData)||(i==null?void 0:i.data)||r,shouldDisplayCurrentRecord:!import_lodash.default.isEmpty(import_lodash.default.omit(r,["__collectionName","__parent"]))||!!(i!=null&&i.data)||t==="taleColumn",collectionName:a,blockType:t,dataSource:o==null?void 0:o.dataSource}},useCurrentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i,blockType:n,dataSource:a}=useCurrentRecordContext();return{currentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nRecord",title:t("Current record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,deprecated:n==="form"&&!r,tooltip:n==="form"?t('This variable has been deprecated and can be replaced with "Current form"'):"",dataSource:a}),currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i}},getVariableValue=(e,t)=>z(void 0,null,function*(){if(!e)return e;const{evaluate:o}=import_client3.evaluators.get("string"),{exp:r,scope:i}=yield replaceVariables(e,t);return o(r,x({now:()=>new Date().toString()},i))}),SettingsMenuProvider=e=>SelectWithTitle,DropdownVisibleContext=(0,import_react2.createContext)(null);DropdownVisibleContext.displayName="DropdownVisibleContext";const CurrentUserContext=(0,import_react2.createContext)(null);CurrentUserContext.displayName="CurrentUserContext";const useCurrentUserContext=()=>(0,import_react2.useContext)(CurrentUserContext),useIsLoggedIn=()=>{var e;const t=(0,import_react2.useContext)(CurrentUserContext);return!!((e=t==null?void 0:t.data)!=null&&e.data)},useCurrentRoles=()=>{var e;const{allowAnonymous:t}=useACLRoleContext(),{data:o}=useCurrentUserContext()||{},r=useCompile();return(0,import_react2.useMemo)(()=>{var i;const n=(((i=o==null?void 0:o.data)==null?void 0:i.roles)||[]).map(({name:a,title:l})=>({name:a,title:r(l)}));return t&&n.push({title:"Anonymous",name:"anonymous"}),n},[t,(e=o==null?void 0:o.data)==null?void 0:e.roles,r])},CurrentUserProvider=e=>{const t=useAPIClient(),o=useRequest(()=>t.request({url:"/auth:check",skipNotify:!0,skipAuth:!0}).then(i=>i==null?void 0:i.data),{manual:!t.auth.token}),{render:r}=useAppSpin();return o.loading?r():(0,import_jsx_runtime.jsx)(CurrentUserContext.Provider,{value:o,children:e.children})},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})},useUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:n("Current user"),collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY,noDisabled:o,targetFieldSchema:r})},useCurrentUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3}={})=>{var n;const{t:a}=(0,import_react_i18next.useTranslation)(),l=useCurrentUserContext();return{currentUserSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:a("Current user"),collectionName:"users",noDisabled:o,targetFieldSchema:r,dataSource:DEFAULT_DATA_SOURCE_KEY}),currentUserCtx:(n=l==null?void 0:l.data)==null?void 0:n.data}},useAPITokenVariable=({noDisabled:e}={})=>{var t;const o=useAPIClient();return{apiTokenSettings:useBaseVariable({name:"$nToken",title:"API token",noDisabled:e,noChildren:!0,operators:string}),apiTokenCtx:(t=o.auth)==null?void 0:t.token}},popupSchema={type:"void","x-component":"Action.Container","x-action":"view",title:'{{ t("View record") }}',"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:{}}}}}}}},useInsertSchema=()=>{const e=(0,import_react.useFieldSchema)(),{insertAfterBegin:t}=useDesignable();return(0,import_react2.useCallback)(o=>{e.reduceProperties((r,i)=>i["x-component"]==="Action.Container"?i:r,null)||t((0,import_lodash.cloneDeep)(o))},[e,t])},filterProperties=e=>e["x-component"]==="Action.Container",FieldLink=e=>{const t=e,{WrappedComponent:o}=t,r=W(t,["WrappedComponent"]),i=(0,import_react.useFieldSchema)(),{openPopup:n}=usePopupUtils(),a=(0,import_react2.useRef)(!1),l=useInsertSchema(),c=(0,import_react2.useRef)(i);c.current=i;const u=(0,import_react2.useCallback)(()=>c.current,[]),m=(0,import_react2.useCallback)(()=>{i.properties||(l(popupSchema),a.current=!0),a.current?(setTimeout(()=>{n({customActionSchema:u()})}),a.current=!1):i.properties&&n()},[i,l,n,u]);return(0,import_jsx_runtime.jsx)("a",{onClick:m,children:(0,import_jsx_runtime.jsx)(o,x({},r))})};function withPopupWrapper(e){return t=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),a=useCollection(),l=useActionContext(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),{enableLink:m,openMode:d,openSize:p}=(u==null?void 0:u["x-component-props"])||{},{visibleWithURL:h,setVisibleWithURL:g}=usePopupUtils(),_=(0,import_react2.useCallback)(b=>{r==null||r(b),g==null||g(b)},[g]),f=(0,import_react2.useRef)(u);f.current=u;const{setSubmitted:v}=l;return m?(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:(0,import_jsx_runtime.jsx)(e,x({},t)),visible:o||h,setVisible:_,formValueChanged:i,setFormValueChanged:n,openMode:d,openSize:p,containerRefKey:"field-popup",fieldSchema:u,setSubmitted:v,children:[(0,import_jsx_runtime.jsx)(CollectionProvider,{name:a.name,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:c==null?void 0:c.address,schema:u,filterProperties})})})}),(0,import_jsx_runtime.jsx)(FieldLink,P(x({},t),{WrappedComponent:e}))]})}):(0,import_jsx_runtime.jsx)(e,x({},t))}}const ReadPretty$d=()=>null;ReadPretty$d.DatePicker=function(e){const{value:t,picker:o="date"}=e,r=(0,import_builtins.usePrefixCls)("description-date-picker",e);if(!t)return(0,import_jsx_runtime.jsx)("div",{});const i=()=>{const n=(0,import_client.getDefaultFormat)(e),a=(0,import_client.str2moment)(t,e),l=import_dayjs.default.isDayjs(a)?a.format(n):"";return(0,import_shared.isArr)(l)?l.join("~"):l};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(r,e.className),children:i()})};ReadPretty$d.DateRangePicker=function(e){const t=(0,import_builtins.usePrefixCls)("description-text",e),o=(0,import_client.getDefaultFormat)(e),r=()=>{const i=(0,import_client.str2moment)(e.value,e);if(!i)return"";const n=i.map(a=>a.format(o));return(0,import_shared.isArr)(n)?n.join("~"):n};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(t,e.className),style:e.style,children:r()})};ReadPretty$d.DatePicker=withPopupWrapper(ReadPretty$d.DatePicker);const DatePickerContext=import_react2.default.createContext({utc:!0}),useDatePickerContext=()=>import_react2.default.useContext(DatePickerContext),DatePickerProvider=DatePickerContext.Provider,InternalDatePicker=(0,import_react.connect)(import_antd.DatePicker,(0,import_react.mapProps)(mapDatePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DatePicker)),InternalRangePicker=(0,import_react.connect)(import_antd.DatePicker.RangePicker,(0,import_react.mapProps)(mapRangePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DateRangePicker)),DatePicker=e=>{const{utc:t=!0}=useDatePickerContext(),o=Array.isArray(e.value)?e.value[0]:e.value,{parseVariable:r}=useVariables$1()||{},i=useLocalVariables$1(),[n,a]=(0,import_react2.useState)(null),[l,c]=(0,import_react2.useState)(null),u=(0,import_react2.useRef)(null);(0,import_react2.useEffect)(()=>(u.current&&u.current(),u.current=(0,import_reactive.autorun)(()=>{m()}),()=>{u.current()}),[e._maxDate,e._minDate,i,r]);const m=()=>z(void 0,null,function*(){let p=e._minDate?Promise.resolve((0,import_dayjs.default)(e._minDate)):Promise.resolve(null),h=e._maxDate?Promise.resolve((0,import_dayjs.default)(e._maxDate)):Promise.resolve(null);isVariable$1(e._maxDate)&&(h=r(e._maxDate,i).then(S=>(0,import_dayjs.default)(Array.isArray(S.value)?(0,import_lodash.last)(S.value):S.value))),isVariable$1(e._minDate)&&(p=r(e._minDate,i).then(S=>(0,import_dayjs.default)(Array.isArray(S.value)?(0,import_lodash.first)(S.value):S.value)));const[g,_]=yield Promise.all([p,h]),f=Array.from({length:60},(S,C)=>C),v=S=>{if(!import_dayjs.default.isDayjs(S))return!1;const C=(0,import_dayjs.default)(S),y=g?(0,import_dayjs.default)(g):null,F=_?(0,import_dayjs.default)(_).endOf("day"):null;return y&&C.isBefore(y,"minute")||F&&C.isAfter(F,"minute")},b=S=>{if(!S||!g&&!_)return{disabledHours:()=>[],disabledMinutes:()=>[],disabledSeconds:()=>[]};const C=(0,import_dayjs.default)(S),y=C.isSame(g,"day"),F=C.isSame(_,"day");return{disabledHours:()=>{const I=[];return y&&I.push(...Array.from({length:g.hour()},(T,k)=>k)),F&&I.push(...Array.from({length:24-_.hour()},(T,k)=>k+_.hour()+1)),I},disabledMinutes:I=>y&&I===g.hour()?f.filter(T=>T<g.minute()):F&&I===_.hour()?f.filter(T=>T>_.minute()):[],disabledSeconds:(I,T)=>y&&I===g.hour()&&T===g.minute()?f.filter(k=>k<g.second()):F&&I===_.hour()&&T===_.minute()?f.filter(k=>k>_.second()):[]}};a(()=>v),c(()=>b)}),d=P(x({utc:t},e),{disabledDate:n,disabledTime:l,showTime:e.showTime?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1});return(0,import_jsx_runtime.jsx)(InternalDatePicker,P(x({},d),{value:o}))};DatePicker.ReadPretty=ReadPretty$d.DatePicker;DatePicker.RangePicker=function(e){const{value:t,picker:o="date",format:r,showTime:i,timeFormat:n}=e,{t:a}=(0,import_react_i18next.useTranslation)(),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),{utc:u=!0}=useDatePickerContext(),m=getDateRanges(),d=useCompile(),p=!l["x-filter-operator"],h=[{label:a("Today"),value:m.today},{label:a("Last week"),value:m.lastWeek},{label:a("This week"),value:m.thisWeek},{label:a("Next week"),value:m.nextWeek},{label:a("Last month"),value:m.lastMonth},{label:a("This month"),value:m.thisMonth},{label:a("Next month"),value:m.nextMonth},{label:a("Last quarter"),value:m.lastQuarter},{label:a("This quarter"),value:m.thisQuarter},{label:a("Next quarter"),value:m.nextQuarter},{label:a("Last year"),value:m.lastYear},{label:a("This year"),value:m.thisYear},{label:a("Next year"),value:m.nextYear},{label:a("Last 7 days"),value:m.last7Days},{label:a("Next 7 days"),value:m.next7Days},{label:a("Last 30 days"),value:m.last30Days},{label:a("Next 30 days"),value:m.next30Days},{label:a("Last 90 days"),value:m.last90Days},{label:a("Next 90 days"),value:m.next90Days}],g=t?inferPickerType(t==null?void 0:t[0],o):o,_=(0,import_client.getPickerFormat)(g)||r,f=P(x({utc:u,presets:h},e),{format:(0,import_client.getDateTimeFormat)(g,_,i,n),picker:g,showTime:i?{defaultValue:[(0,import_dayjs.default)("00:00:00","HH:mm:ss"),(0,import_dayjs.default)("23:59:59","HH:mm:ss")]}:!1}),[v,b]=(0,import_react2.useState)(f);return p?(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,defaultValue:g,options:d([{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]),onChange:S=>{const C=(0,import_client.getPickerFormat)(S),y=(0,import_client.getDateTimeFormat)(S,C,i,n);c.setComponentProps({picker:S,format:C}),f.picker=S,f.format=y,b(f),l["x-component-props"]=P(x({},e),{picker:S,format:y}),c.value=void 0}}),(0,import_jsx_runtime.jsx)(InternalRangePicker,P(x({},v),{value:t}))]}):(0,import_jsx_runtime.jsx)(InternalRangePicker,x({},f))};DatePicker.FilterWithPicker=function(e){const{picker:t="date",format:o,showTime:r,timeFormat:i}=e,n=isMobile(),{utc:a=!0}=useDatePickerContext(),l=Array.isArray(e.value)?e.value[0]:e.value,c=useCompile(),u=(0,import_react.useFieldSchema)(),m=l?inferPickerType(l,t):t,[d,p]=(0,import_react2.useState)(m),h=(0,import_client.getPickerFormat)(m)||o,g=P(x({utc:a,inputReadOnly:n},e),{underFilter:!0,showTime:r?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1,format:(0,import_client.getDateTimeFormat)(d,h,r,i),picker:d,onChange:b=>{e.onChange(void 0),setTimeout(()=>{e.onChange(b)})}}),_=(0,import_react.useField)(),[f,v]=(0,import_react2.useState)(g);return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,value:d,options:c([{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]),onChange:b=>{p(b);const S=(0,import_client.getPickerFormat)(b),C=(0,import_client.getDateTimeFormat)(b,S,r,i);_.setComponentProps({picker:b,format:S}),g.picker=b,g.format=C,v(g),u["x-component-props"]=P(x({},e),{picker:b,format:C}),_.value=null}}),(0,import_jsx_runtime.jsx)(InternalDatePicker,P(x({},f),{value:l}))]})};const useDateVariable=({operator:e,schema:t,noDisabled:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),i=(e==null?void 0:e.value)||"",n=o?!1:!["DatePicker","DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"]),a=[{key:"now",value:"now",label:r("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||i==="$dateBetween",operators:datetime,schema:{}},{key:"yesterday",value:"yesterday",label:r("Yesterday"),disabled:n,operators:datetime},{key:"today",value:"today",label:r("Today"),disabled:n,operators:datetime},{key:"tomorrow",value:"tomorrow",label:r("Tomorrow"),disabled:n,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:r("Last week"),disabled:n,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:r("This week"),disabled:n,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:r("Next week"),disabled:n,operators:datetime},{key:"lastMonth",value:"lastMonth",label:r("Last month"),disabled:n,operators:datetime},{key:"thisMonth",value:"thisMonth",label:r("This month"),disabled:n,operators:datetime},{key:"nextMonth",value:"nextMonth",label:r("Next month"),disabled:n,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:r("Last quarter"),disabled:n,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:r("This quarter"),disabled:n,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:r("Next quarter"),disabled:n,operators:datetime},{key:"lastYear",value:"lastYear",label:r("Last year"),disabled:n,operators:datetime},{key:"thisYear",value:"thisYear",label:r("This year"),disabled:n,operators:datetime},{key:"nextYear",value:"nextYear",label:r("Next year"),disabled:n,operators:datetime},{key:"last7Days",value:"last7Days",label:r("Last 7 days"),disabled:n,operators:datetime},{key:"next7Days",value:"next7Days",label:r("Next 7 days"),disabled:n,operators:datetime},{key:"last30Days",value:"last30Days",label:r("Last 30 days"),disabled:n,operators:datetime},{key:"next30Days",value:"next30Days",label:r("Next 30 days"),disabled:n,operators:datetime},{key:"last90Days",value:"last90Days",label:r("Last 90 days"),disabled:n,operators:datetime},{key:"next90Days",value:"next90Days",label:r("Next 90 days"),disabled:n,operators:datetime}],l=(0,import_react2.useMemo)(()=>({label:r("Date variables"),value:"$nDate",key:"$nDate",disabled:a.every(c=>c.disabled),children:a}),[t==null?void 0:t["x-component"]]);return t?l:null},useDatetimeVariableContext=()=>{const{utc:e=!0}=useDatePickerContext();return{datetimeCtx:(0,import_react2.useMemo)(()=>getDateRanges({shouldBeString:!0,utc:e}),[e])}},useDatetimeVariable=({operator:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{getOperator:n}=useOperators(),a=(0,import_react2.useMemo)(()=>{const c=(e==null?void 0:e.value)||n(r==null?void 0:r.name)||"",u=o?!1:!["DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"])&&!c,m=[{key:"now",value:"now",label:i("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||c==="$dateBetween",operators:datetime},{key:"yesterday",value:"yesterday",label:i("Yesterday"),disabled:u,operators:datetime},{key:"today",value:"today",label:i("Today"),disabled:u,operators:datetime},{key:"tomorrow",value:"tomorrow",label:i("Tomorrow"),disabled:u,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:i("Last week"),disabled:u,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:i("This week"),disabled:u,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:i("Next week"),disabled:u,operators:datetime},{key:"lastMonth",value:"lastMonth",label:i("Last month"),disabled:u,operators:datetime},{key:"thisMonth",value:"thisMonth",label:i("This month"),disabled:u,operators:datetime},{key:"nextMonth",value:"nextMonth",label:i("Next month"),disabled:u,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:i("Last quarter"),disabled:u,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:i("This quarter"),disabled:u,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:i("Next quarter"),disabled:u,operators:datetime},{key:"lastYear",value:"lastYear",label:i("Last year"),disabled:u,operators:datetime},{key:"thisYear",value:"thisYear",label:i("This year"),disabled:u,operators:datetime},{key:"nextYear",value:"nextYear",label:i("Next year"),disabled:u,operators:datetime},{key:"last7Days",value:"last7Days",label:i("Last 7 days"),disabled:u,operators:datetime},{key:"next7Days",value:"next7Days",label:i("Next 7 days"),disabled:u,operators:datetime},{key:"last30Days",value:"last30Days",label:i("Last 30 days"),disabled:u,operators:datetime},{key:"next30Days",value:"next30Days",label:i("Next 30 days"),disabled:u,operators:datetime},{key:"last90Days",value:"last90Days",label:i("Last 90 days"),disabled:u,operators:datetime},{key:"next90Days",value:"next90Days",label:i("Next 90 days"),disabled:u,operators:datetime}];return{label:i("Date variables"),value:"$nDate",key:"$nDate",disabled:m.every(d=>d.disabled),children:m}},[t==null?void 0:t["x-component"],r]),{datetimeCtx:l}=useDatetimeVariableContext();return{datetimeSettings:a,datetimeCtx:l}},useExactDateVariableContext=()=>({exactDateTimeCtx:(0,import_react2.useMemo)(()=>getDateExact(),[])}),useExactDateVariable=({schema:e,targetFieldSchema:t}={})=>{var o;const{collectionField:r}=useFlag(),{dateOnly:i,utc:n,accuracy:a,picker:l}=((o=r==null?void 0:r.uiSchema)==null?void 0:o["x-component-props"])||{},{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react2.useMemo)(()=>{const d=h=>{if(!l){if(h==="now")return"nowLocal";if(h==="today")return"todayDate";if(h==="yesterday")return"yesterdayDate";if(h==="tomorrow")return"tomorrowDate"}return i?h==="now"?null:`${h}Date`:`${h}${n||a?"Utc":"Local"}`},p=[{key:"now",value:d("now"),label:c("Now"),operators:datetime},{key:"today",value:d("today"),label:c("Today"),operators:datetime},{key:"yesterday",value:d("yesterday"),label:c("Yesterday"),operators:datetime},{key:"tomorrow",value:d("tomorrow"),label:c("Tomorrow"),operators:datetime}].filter(h=>h.value);return{label:c("Date variables"),value:"$nExactDate",key:"$nExactDate",children:p}},[e==null?void 0:e["x-component"],t]),{exactDateTimeCtx:m}=useExactDateVariableContext();return{exactDateTimeSettings:u,exactDateTimeCtx:m,shouldDisplayExactDate:!!r}},useCurrentFormContext=({form:e}={})=>{const{form:t}=useFormBlockContext(),{isVariableParsedInOtherContext:o}=useFlag(),{name:r}=(useBlockContext==null?void 0:useBlockContext())||{},i=e||t;return{currentFormCtx:i==null?void 0:i.values,shouldDisplayCurrentForm:["form","filter-form"].includes(r)&&i&&!i.readPretty&&!o}},useCurrentFormVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r,form:i}={})=>{const{currentFormCtx:n,shouldDisplayCurrentForm:a}=useCurrentFormContext({form:i}),{t:l}=(0,import_react_i18next.useTranslation)(),{collectionName:c}=useFormBlockContext(),u=useDataSource();return{currentFormSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nForm",title:l("Current form"),collectionName:c,noDisabled:o,dataSource:u==null?void 0:u.key,returnFields:(m,d)=>m}),currentFormCtx:n,shouldDisplayCurrentForm:a}},useCurrentObjectContext=()=>{const{isInSubForm:e,isInSubTable:t}=useFlag()||{},{formValue:o,collection:r}=useSubFormValue();return{shouldDisplayCurrentObject:e||t,currentObjectCtx:o,collectionOfCurrentObject:r}},useCurrentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const i=useCollection(),{t:n}=(0,import_react_i18next.useTranslation)(),{shouldDisplayCurrentObject:a,currentObjectCtx:l,collectionOfCurrentObject:c}=useCurrentObjectContext(),u=useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$iteration",title:n("Current object"),collectionName:(c==null?void 0:c.name)||(i==null?void 0:i.name),noDisabled:o,dataSource:i==null?void 0:i.dataSource,returnFields:(m,d)=>m});return{shouldDisplayCurrentObject:a,currentObjectCtx:l,currentObjectSettings:u}},useParentObjectContext=()=>{const{parent:e}=useSubFormValue(),{value:t,collection:o}=e||{},{isInSubForm:r,isInSubTable:i}=useFlag()||{};return{shouldDisplayParentObject:(r||i)&&!!o,parentObjectCtx:t,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource}},useParentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{shouldDisplayParentObject:n,parentObjectCtx:a,collectionName:l,dataSource:c}=useParentObjectContext();return{parentObjectSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nParentIteration",title:i("Parent object"),collectionName:l,noDisabled:o,dataSource:c,returnFields:(u,m)=>u}),shouldDisplayParentObject:n,parentObjectCtx:a,collectionName:l}},useParentPopupVariableContext=()=>{const{value:e,title:t,collection:o}=useParentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{parentPopupRecordCtx:e,shouldDisplayParentPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},useParentPopupVariable=(e={})=>{const{parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:a}=useParentPopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentPopupRecord",title:a,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},ParentCollectionContext=(0,import_react2.createContext)(null);ParentCollectionContext.displayName="ParentCollectionContext";const ParentCollectionProvider=e=>{const t=useCollection();return(0,import_jsx_runtime.jsx)(ParentCollectionContext.Provider,{value:t,children:e.children})},useParentCollection=()=>(0,import_react2.useContext)(ParentCollectionContext),AssociationProvider=e=>{const{name:t,children:o}=e,r=useCollectionManager().getCollectionName(t);return r?(0,import_jsx_runtime.jsx)(CollectionProvider,{name:String(t).split(".")[0],children:(0,import_jsx_runtime.jsx)(ParentCollectionProvider,{children:(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{name:r,children:o})})})}):(0,import_jsx_runtime.jsx)(CollectionDeletedPlaceholder,{type:"Collection",name:t})},useAssociationName=()=>{const e=useCollectionField();return e!=null&&e.target?`${e.collectionName}.${e.name}`:null},useCurrentParentRecordContext=()=>{var e,t;const o=useCollectionRecord(),{name:r,dataSource:i}=useParentCollection()||{},n=useCollection(),{isInSubForm:a,isInSubTable:l}=useFlag()||{},c=r?i:n==null?void 0:n.dataSource,u=useCollectionField();return{currentParentRecordCtx:((e=o==null?void 0:o.parentRecord)==null?void 0:e.data)||(o==null?void 0:o.data),shouldDisplayCurrentParentRecord:!!((t=o==null?void 0:o.parentRecord)!=null&&t.data)&&!a&&!l&&u,collectionName:r||(n==null?void 0:n.name),dataSource:c}},useCurrentParentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}=useCurrentParentRecordContext();return{currentParentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentRecord",title:t("Parent record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:n}),currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}},usePopupVariableContext=()=>{const{value:e,title:t,collection:o}=useCurrentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{popupRecordCtx:e,shouldDisplayPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},usePopupVariable=(e={})=>{const{popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:a}=usePopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nPopupRecord",title:a,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},useRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:n("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string})},useCurrentRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0}={})=>{var n,a,l;const{t:c}=(0,import_react_i18next.useTranslation)(),u=useAPIClient(),m=useCompile(),{data:d}=useCurrentUserContext()||{},p=(((n=d==null?void 0:d.data)==null?void 0:n.roles)||[]).map(({name:h,title:g})=>({name:h,title:m(g)}));return{currentRoleSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:c("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string}),currentRoleCtx:((a=u.auth)==null?void 0:a.role)==="__union__"?p.map(h=>h.name):(l=u.auth)==null?void 0:l.role}},getURLSearchParams=e=>(e.startsWith("?")&&(e=e.slice(1)),import_qs.default.parse(e)||{}),getURLSearchParamsChildren=e=>Object.keys(e).map(t=>({label:t,value:t,key:t,isLeaf:!0,operators:string})),useURLSearchParamsCtx=e=>{const[t]=(0,import_react2.useState)(()=>(0,import_reactive.observable)({}));return(0,import_react2.useMemo)(()=>{const o=getURLSearchParams(e);return(0,import_reactive.untracked)(()=>{Object.assign(t,o),Object.keys(t).forEach(r=>{o[r]===void 0&&delete t[r]})}),t},[t,e])},useURLSearchParamsVariable=(e={})=>{const t="$nURLSearchParams",{t:o}=(0,import_react_i18next.useTranslation)(),r=useLocationSearch(),{isVariableParsedInOtherContext:i}=useFlag(),n=useURLSearchParamsCtx(r),a=(0,import_react2.useMemo)(()=>import_lodash.default.isEmpty(n),[n]),l=(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(o("URL search params"),a?o("The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string."):""),value:t,key:t,isLeaf:!1,disabled:a,loadChildren:(c,u)=>z(void 0,null,function*(){const m=u?{[u]:void 0}:{};c.children=getURLSearchParamsChildren(x(x({},m),n))})}),[a,o,n]);return{name:t,urlSearchParamsSettings:l,urlSearchParamsCtx:n,defaultValue:void 0,shouldDisplay:!i}},useVariableOptions=({collectionField:e,form:t,uiSchema:o,operator:r,noDisabled:i,targetFieldSchema:n,record:a})=>{var l;const{filterVariables:c=()=>!0}=useVariables$1()||{},u=(l=a==null?void 0:a.__parent)==null?void 0:l.__collectionName,{currentUserSettings:m}=useCurrentUserVariable({maxDepth:3,uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentRoleSettings:d}=useCurrentRoleVariable({uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{apiTokenSettings:p}=useAPITokenVariable({noDisabled:i}),{datetimeSettings:h}=useDatetimeVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{exactDateTimeSettings:g,shouldDisplayExactDate:_}=useExactDateVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{currentFormSettings:f,shouldDisplayCurrentForm:v}=useCurrentFormVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n,form:t}),{currentObjectSettings:b,shouldDisplayCurrentObject:S}=useCurrentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{parentObjectSettings:C,shouldDisplayParentObject:y}=useParentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{currentRecordSettings:F,shouldDisplayCurrentRecord:I}=useCurrentRecordVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:T,shouldDisplayPopupRecord:k}=usePopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:N,shouldDisplayParentPopupRecord:M}=useParentPopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentParentRecordSettings:L,shouldDisplayCurrentParentRecord:D}=useCurrentParentRecordVariable({schema:o,collectionName:u,collectionField:e,noDisabled:i,targetFieldSchema:n}),{urlSearchParamsSettings:R,shouldDisplay:$}=useURLSearchParamsVariable();return(0,import_react2.useMemo)(()=>[m,d,p,!_&&h,_&&g,v&&f,S&&b,y&&C,I&&F,D&&L,k&&T,M&&N,$&&R].filter(Boolean).filter(c),[m,d,p,h,v,f,S,b,y,C,I,F,D,L,k,T,$,R])},VariableInput=e=>{const{value:t,onChange:o,renderSchemaComponent:r,style:i,schema:n,className:a,contextCollectionName:l,collectionField:c,shouldChange:u,form:m,record:d,returnScope:p=import_lodash.default.identity,targetFieldSchema:h,noDisabled:g,hideVariableButton:_,setScopes:f,nullable:v=!0,constantAbel:b=!0,changeOnSelect:S=!0}=e,{name:C}=useBlockCollection(),y=useVariableScope(),{operator:F,schema:I=c==null?void 0:c.uiSchema}=useValues$2(),T=useVariableOptions({collectionField:c,form:m,record:d,operator:F,uiSchema:I,targetFieldSchema:h,noDisabled:g}),k=useContextAssociationFields({schema:n,maxDepth:2,contextCollectionName:l,collectionField:c}),{compatOldVariables:N}=useCompatOldVariables({collectionField:c,uiSchema:I,targetFieldSchema:h,blockCollectionName:C});l&&T.every(D=>D.value!==k.value)&&T.push(k);const M=(0,import_react2.useCallback)((D,R)=>{if(!u)return o(D,R);setTimeout(()=>z(void 0,null,function*(){(yield u(D,R))&&o(D,R)}))},[o,u]),L=p(N(import_lodash.default.isEmpty(y)?T:y,{value:t}));return(0,import_react2.useEffect)(()=>{f==null||f(L)},[t,y]),(0,import_jsx_runtime.jsx)(Variable.Input,{className:a,value:t,onChange:M,scope:L,style:i,changeOnSelect:S,hideVariableButton:_,nullable:v,constantAbel:b,children:(0,import_jsx_runtime.jsx)(r,{value:t,onChange:o})})},getShouldChange=({collectionField:e,variables:t,localVariables:o,getAllCollectionsInheritChain:r})=>(e&&r(e.target),(i,n)=>z(void 0,null,function*(){return!0}));function useCompatOldVariables(e){const{uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i,blockCollectionName:n}=e,{t:a}=(0,import_react_i18next.useTranslation)(),{currentUserSettings:l}=useCurrentUserVariable({maxDepth:1,uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i}),{currentRecordSettings:c}=useCurrentRecordVariable({schema:t,collectionField:o,noDisabled:r,targetFieldSchema:i});return{compatOldVariables:(0,import_react2.useCallback)((u,{value:m})=>{if(!isVariable$1(m))return u;u=[...u];const d={value:"$system",key:"$system",label:a("System variables"),isLeaf:!1,children:[{value:"now",key:"now",label:a("Current time"),isLeaf:!0,depth:1}],depth:0},p={value:"currentTime",label:a("Current time"),children:null};if(m.includes("$system")&&u.push(d),m.includes(`${n}.`)){const h=u.find(g=>g.value==="$nForm"||g.value==="$nRecord");h&&(h.value=n)}if(m.includes("$form")){const h=u.find(g=>g.value==="$nForm");h&&(h.value="$form")}if(m.includes("currentUser")){const h=u.find(g=>g.value==="$user");h?h.value="currentUser":u.unshift(P(x({},l),{value:"currentUser"}))}if(m.includes("currentRecord")){const h=u.find(g=>g.value==="$nRecord");h?h.value="currentRecord":u.unshift(P(x({},c),{value:"currentRecord"}))}if(m.includes("currentTime")&&u.push(p),m.includes("$date")){const h=u.find(g=>g.value==="$nDate");h&&(h.value="$date")}return u},[n])}}const SchemaSettingsDataScope=function(e){const{t}=(0,import_react_i18next.useTranslation)(),{getFields:o}=useCollectionFilterOptionsV2(e.collectionName),r=useRecord(),{form:i}=useFormBlockContext(),n=useVariables$1(),a=useLocalVariables$1(),{getAllCollectionsInheritChain:l}=useCollectionManager_deprecated(),{isInSubForm:c,isInSubTable:u}=useFlag()||{},m=useBlockContext==null?void 0:useBlockContext(),d=(0,import_react2.useCallback)(h=>(0,import_jsx_runtime.jsx)(DatePickerProvider,{value:{utc:!1},children:(0,import_jsx_runtime.jsx)(VariableInput,P(x({},h),{form:i,record:r,noDisabled:!0,shouldChange:getShouldChange({collectionField:h.collectionField,variables:n,localVariables:a,getAllCollectionsInheritChain:l})}))}),[i,l,a,r,n]),p=()=>({type:"object",title:t("Set the data scope"),properties:{filter:{enum:e.collectionFilterOption||o(),"x-decorator":h=>(0,import_jsx_runtime.jsx)(BaseVariableProvider,P(x({},h),{children:(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:c,isInSubTable:u,children:(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:{name:i?"form":m==null?void 0:m.name},children:h.children})})})),"x-decorator-props":{isDisabled},"x-component":"Filter","x-component-props":{collectionName:e.collectionName,dynamicComponent:e.dynamicComponent||d}}}});return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:t("Set the data scope"),initialValues:{filter:e.defaultFilter},schema:p,onSubmit:e.onSubmit,noRecord:e.noRecord})};function isDisabled(e){var t,o;const{option:r,collectionField:i,uiSchema:n}=e;return!n||!i?!0:i.interface==="json"||r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const SchemaSettingsDateFormat=function(e){var t,o,r,i,n,a,l,c,u,m,d,p;const{fieldSchema:h}=e,g=(0,import_react.useField)(),{dn:_}=useDesignable(),{t:f}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=v(h==null?void 0:h["x-collection-field"])||{},S=(t=h==null?void 0:h["x-component-props"])==null?void 0:t.showTime,C=((o=h==null?void 0:h["x-component-props"])==null?void 0:o.dateFormat)||((i=(r=b==null?void 0:b.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.dateFormat)||"YYYY-MM-DD",y=((n=h==null?void 0:h["x-component-props"])==null?void 0:n.timeFormat)||((l=(a=b==null?void 0:b.uiSchema)==null?void 0:a["x-component-props"])==null?void 0:l.timeFormat)||"HH:mm:ss",F=((c=h==null?void 0:h["x-component-props"])==null?void 0:c.picker)||((m=(u=b==null?void 0:b.uiSchema)==null?void 0:u["x-component-props"])==null?void 0:m.picker)||"date",I=h["x-read-pretty"]||g.readOnly||g.readPretty;return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:f("Date display format"),scope:{getPickerFormat:import_client.getPickerFormat},schema:{type:"object",properties:{picker:{type:"string",title:'{{t("Picker")}}',"x-decorator":"FormItem","x-component":"Radio.Group",default:F,description:!I&&'{{ t("Switching the picker, the value and default value will be cleared") }}',enum:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]},dateFormat:{type:"string",title:'{{t("Date format")}}',"x-component":ExpiresRadio,"x-decorator":"FormItem","x-decorator-props":{},"x-component-props":{className:import_css.css`
|
|
274
|
+
`,TableColumnActionBar$1=(0,import_react.observer)(e=>{const t=useDesigner();useFlag();const{designable:o}=useSchemaComponentContext(),{token:r}=useToken$1();return!o||t.isNullComponent?e.children:(0,import_jsx_runtime.jsxs)(SortableItem,{className:designerCss$4({margin:`-${r.margin}px -${r.marginXS}px`,padding:`${r.margin}px ${r.marginXS}px`}),children:[(0,import_jsx_runtime.jsx)(t,{}),e.children]})},{displayName:"TableColumnActionBar"}),useColumnSchema$1=()=>{const{getField:e}=useCollection_deprecated(),t=useCompile(),o=(0,import_react.useFieldSchema)(),{getCollectionJoinField:r}=useCollectionManager_deprecated(),i=o==null?void 0:o.reduceProperties((a,l)=>isCollectionFieldComponent(l)?l:a,null);if(!i)return{};const n=e(i.name)||r(i==null?void 0:i["x-collection-field"]);return{columnSchema:o,fieldSchema:i,collectionField:n,uiSchema:t(n==null?void 0:n.uiSchema)}},useTableFieldInstanceList=()=>{const e=(0,import_react.useField)(),{fieldSchema:t}=useColumnSchema$1(),o=(0,import_react2.useMemo)(()=>{var r,i;if(!t||!e)return[];const n=(i=e.path)==null?void 0:i.splice(((r=e.path)==null?void 0:r.length)-1,1);return e.form.query(`${n.concat("*."+t.name)}`).map()},[e,t]);return t?o:[]},TableColumnDecorator$1=e=>{var t,o;const r=useDesigner(),i=(0,import_react.useField)(),{fieldSchema:n,uiSchema:a,collectionField:l}=useColumnSchema$1(),{designable:c}=useSchemaComponentContext(),u=useCompile(),{isInSubTable:m}=useFlag()||{},{token:d}=useToken$1(),{name:p}=(useBlockContext==null?void 0:useBlockContext())||{};let h=n==null?void 0:n.required;if(m){const g=(o=i.path)==null?void 0:o.splice(((t=i.path)==null?void 0:t.length)-1,1),_=i.form.query(`${g.concat("*."+n.name)}`).take();h=typeof(_==null?void 0:_.required)=="boolean"?_.required:n==null?void 0:n.required}return(0,import_react2.useEffect)(()=>{i.title||n&&a!=null&&a.title&&(i.title=a==null?void 0:a.title)},[a==null?void 0:a.title]),!c||r.isNullComponent?(0,import_jsx_runtime.jsxs)(CollectionFieldContext.Provider,{value:l,children:[(0,import_jsx_runtime.jsx)(r,{fieldSchema:n,uiSchema:a,collectionField:l}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[h&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(i==null?void 0:i.title)||u(a==null?void 0:a.title)})]})]}):(0,import_jsx_runtime.jsx)(SortableItem,{className:designerCss$4({margin:`-${d.margin}px -${d.marginXS}px`,padding:`${d.margin}px ${d.marginXS}px`}),children:(0,import_jsx_runtime.jsx)(CollectionFieldContext.Provider,{value:l,children:(0,import_jsx_runtime.jsxs)(BlockContext.Provider,{value:{name:m?p:"taleColumn"},children:[(0,import_jsx_runtime.jsx)(r,{fieldSchema:n,uiSchema:a,collectionField:l}),(0,import_jsx_runtime.jsxs)("span",{role:"button",children:[h&&(0,import_jsx_runtime.jsx)("span",{className:"ant-formily-item-asterisk",children:"*"}),(0,import_jsx_runtime.jsx)("span",{children:(i==null?void 0:i.title)||u(a==null?void 0:a.title)})]})]})})})},SchemaToolbarContext=(0,import_react2.createContext)({});SchemaToolbarContext.displayName="SchemaToolbarContext";const SchemaToolbarProvider=e=>{const t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(SchemaToolbarContext.Provider,{value:r,children:o})};function useSchemaToolbar(){return(0,import_react2.useContext)(SchemaToolbarContext)}const SchemaToolbarErrorFallback=e=>{const{designable:t}=useDesignable();return t?(0,import_jsx_runtime.jsx)(ErrorFallback.Modal,P(x({},e),{children:(0,import_jsx_runtime.jsx)(SchemaToolbar,{title:`render toolbar error: ${e.error.message}`})})):null},useSchemaToolbarRender=e=>{const{designable:t}=useDesignable(),o=(0,import_react2.useMemo)(()=>{if(e["x-designer"]||e["x-toolbar"])return e["x-designer"]||e["x-toolbar"];if(e["x-settings"])return SchemaToolbar},[e]),r=useComponent(o);return{render(i){return!t||!r?null:(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:SchemaToolbarErrorFallback,onError:console.error,children:(0,import_jsx_runtime.jsx)(r,x(x({},e["x-toolbar-props"]),i))})},exists:!!r}},generalSettingsItems=[{name:"editFieldTitle",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=useCompile(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)(),{getCollectionJoinField:a}=useCollectionManager_deprecated(),{getField:l}=useCollection_deprecated(),c=l(n.name)||a(n["x-collection-field"]);return{title:t("Edit field title"),schema:{type:"object",title:t("Edit field title"),properties:{title:{title:t("Field title"),default:i==null?void 0:i.title,description:`${t("Original field title: ")}${(e=c==null?void 0:c.uiSchema)==null?void 0:e.title}`,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}}}},onSubmit({title:u}){var m;const d=u.trim()===""?(m=c==null?void 0:c.uiSchema)==null?void 0:m.title:u;i.title=r(d),n.title=u,o.emit("patch",{schema:{"x-uid":n["x-uid"],title:n.title}}),o.refresh()}}},useVisible(){const e=(0,import_react.useFieldSchema)(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),{getField:o}=useCollection_deprecated();return!!(o(e.name)||t(e["x-collection-field"]))}},{name:"displayTitle",type:"switch",useComponentProps(){var e,t;const{t:o}=(0,import_react_i18next.useTranslation)(),{dn:r}=useDesignable(),i=(0,import_react.useField)(),n=(0,import_react.useFieldSchema)();return{title:o("Display title"),checked:(t=(e=n["x-decorator-props"])==null?void 0:e.showTitle)!=null?t:!0,onChange(a){n["x-decorator-props"]=n["x-decorator-props"]||{},n["x-decorator-props"].showTitle=a,i.decoratorProps.showTitle=a,r.emit("patch",{schema:{"x-uid":n["x-uid"],"x-decorator-props":P(x({},n["x-decorator-props"]),{showTitle:a})}}),r.refresh()}}}},{name:"editDescription",type:"modal",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),{dn:t}=useDesignable(),o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)();return{title:e("Edit description"),schema:{type:"object",title:e("Edit description"),properties:{description:{default:o==null?void 0:o.description,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({description:i}){o.description=i,r.description=i,t.emit("patch",{schema:{"x-uid":r["x-uid"],description:r.description}}),t.refresh()}}},useVisible(){return!(0,import_react.useField)().readPretty}},{name:"editTooltip",type:"modal",useComponentProps(){var e;const{t}=(0,import_react_i18next.useTranslation)(),{dn:o}=useDesignable(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)();return{title:t("Edit tooltip"),schema:{type:"object",title:t("Edit tooltip"),properties:{tooltip:{default:(e=i==null?void 0:i["x-decorator-props"])==null?void 0:e.tooltip,"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}},onSubmit({tooltip:n}){r.decoratorProps.tooltip=n,i["x-decorator-props"]=i["x-decorator-props"]||{},i["x-decorator-props"].tooltip=n,o.emit("patch",{schema:{"x-uid":i["x-uid"],"x-decorator-props":i["x-decorator-props"]}}),o.refresh()}}},useVisible(){return(0,import_react.useField)().readPretty}},{name:"required",type:"switch",useComponentProps(){const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{dn:r,refresh:i}=useDesignable();return{title:e("Required"),checked:o.required,onChange(n){const a={"x-uid":o["x-uid"]};t.required=n,o.required=n,a.required=n,r.emit("patch",{schema:a}),i()}}},useVisible(){const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)(),{required:o=!0}=useSchemaToolbar();return!e.readPretty&&t["x-component"]!=="FormField"&&o}},{name:"style",Component:e=>{const t=P(x({},e),{category:"style"});return(0,import_jsx_runtime.jsx)(SchemaSettingsLinkageRules,x({},t))},useVisible(){return useIsFieldReadPretty()},useComponentProps(){const{name:e}=useCollection(),{linkageRulesProps:t}=useSchemaToolbar();return P(x({},t),{collectionName:e})}}],RemoveConditionContext$1=(0,import_react2.createContext)(null);RemoveConditionContext$1.displayName="RemoveConditionContext";const FilterContext$3=(0,import_react2.createContext)(null);FilterContext$3.displayName="FilterContext";const FilterLogicContext$1=(0,import_react2.createContext)(null);FilterLogicContext$1.displayName="FilterLogicContext";const findOption$2=(e=[],t)=>{var o;let r=t,i;return(o=e==null?void 0:e.forEach)==null||o.call(e,n=>{const a=r.find(l=>l.name===n);a&&(i=a),r=(a==null?void 0:a.children)||[]}),i},useValues$2=()=>{const{name:e}=useCollection_deprecated(),{getCollectionJoinField:t}=useCollectionManager_deprecated(),o=(0,import_react.useField)(),{options:r,collectionName:i,field:n}=(0,import_react2.useContext)(FilterContext$3)||{},a=(0,import_flat.default)(o.value||{}),l=Object.keys(a).shift()||"",c=(0,import_react2.useMemo)(()=>{const[h=""]=l.split(".$");return t(`${i||e}.${h}`)},[e,l]),u=(0,import_react2.useCallback)(()=>{var h,g,_,f;o.value=o.data.dataIndex?import_flat.default.unflatten({[`${(h=o.data.dataIndex)==null?void 0:h.join(".")}.${(_=(g=o.data)==null?void 0:g.operator)==null?void 0:_.value}`]:(f=o.data)==null?void 0:f.value}):{}},[o]);(0,import_react2.useEffect)(()=>{var h;if(o.data=o.data||{},!l||!r)return;const[g="",_=""]=l.split(".$"),[f]=_.split(".",2),v=g.split("."),b=findOption$2(v,r),S=b==null?void 0:b.operators,C=(h=S==null?void 0:S.find)==null?void 0:h.call(S,y=>y.value===`$${f}`);if(o.data.dataIndex=v,(v==null?void 0:v.length)>1){const y=v.concat();y.pop();const F=t(`${e}.${y.join(".")}`);n.collectionName=F==null?void 0:F.target}else n.collectionName=null;o.data.operators=S,o.data.operator=C,o.data.schema=(0,import_shared.merge)(b==null?void 0:b.schema,C==null?void 0:C.schema),o.data.value=(0,import_get.default)((0,import_flat.unflatten)(o.value),`${g}.$${f}`)},[o.path]);const m=(0,import_react2.useCallback)(h=>{var g;const _=findOption$2(h,r),f=(g=_==null?void 0:_.operators)==null?void 0:g[0];o.data=o.data||{},o.data.operators=_==null?void 0:_.operators,o.data.operator=f;const v=(0,import_cloneDeep.default)(_==null?void 0:_.schema),b=(0,import_cloneDeep.default)(f==null?void 0:f.schema);if(o.data.schema=(0,import_shared.merge)(v,b),o.data.dataIndex=h,(h==null?void 0:h.length)>1){const S=h.concat();S.pop();const C=t(`${e}.${S.join(".")}`);n.collectionName=C==null?void 0:C.target}else n.collectionName=null;o.data.value=f!=null&&f.noValue?f.default||!0:void 0,u()},[u,o,r]),d=(0,import_react2.useCallback)(h=>{var g,_,f;const v=(f=(_=(g=o.data)==null?void 0:g.operators)==null?void 0:_.find)==null?void 0:f.call(_,y=>y.value===h);o.data.operator=v;const b=findOption$2(o.data.dataIndex,r),S=(0,import_cloneDeep.default)(b==null?void 0:b.schema),C=(0,import_cloneDeep.default)(v==null?void 0:v.schema);o.data.schema=(0,import_shared.merge)(S,C),o.data.value=v.noValue?v.default||!0:void 0,u()},[u,o.data,r]),p=(0,import_react2.useCallback)(h=>{o.data.value=h,u()},[u,o.data]);return P(x({fields:r},(o==null?void 0:o.data)||{}),{collectionField:c,setDataIndex:m,setOperator:d,setValue:p})},useBlockCollection=()=>{const e=useDataBlockProps();return{name:(e==null?void 0:e.collection)||(e==null?void 0:e.resource)}},useIsSameOrChildCollection=()=>{const{getChildrenCollections:e}=useCollectionManager_deprecated();return(t,o)=>{if(t===o)return!0;const r=e(o);return r==null?void 0:r.some(i=>i.name===t)}},getChildren$2=(e,{schema:t,depth:o,maxDepth:r,loadChildren:i,compile:n},a,l)=>e.map(c=>{const u=!l(c.target,a==null?void 0:a.target);return c.target?o>=r?null:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,field:c,depth:o,loadChildren:i}:{key:c.name,value:c.name,name:c.name,label:n(c.title),title:n(c.title),disabled:u,isLeaf:!0,depth:o}}).filter(Boolean),useContextAssociationFields=({schema:e,maxDepth:t=3,contextCollectionName:o,collectionField:r})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),n=useCompile(),a=useGetFilterOptions(),l=useIsSameOrChildCollection(),c=u=>{var m;if(!((m=u.field)!=null&&m.target))return new Promise(p=>{(0,import_client.error)("Must be set field target"),u.children=[],p(void 0)});const d=u.field.target;return new Promise(p=>{setTimeout(()=>{const h=getChildren$2(a(d).filter(g=>r?["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(g.type):!0),{schema:e,depth:u.depth+1,maxDepth:t,loadChildren:c,compile:n},r,l)||[];if(h.length===0){u.disabled=!0,u.children=[],p();return}u.children=h,p()},5)})};return(0,import_react2.useMemo)(()=>({label:i("Table selected records"),value:"$context",key:"$context",isLeaf:!1,field:{target:o},depth:0,loadChildren:c}),[e==null?void 0:e["x-component"]])},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 useSpecialCase=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getField:o}=useCollection_deprecated(),{getCollectionField:r}=useCollectionManager_deprecated(),i=(0,import_react2.useMemo)(()=>o(t.name),[t.name,o]),n=(0,import_react2.useCallback)(()=>isSpecialCaseField({collectionField:i,fieldSchema:t,getCollectionField:r}),[i,t,r]),a=(0,import_react2.useCallback)(l=>{const c=getParentFieldSchema(t);if(c){const u=e.query(c.name).take();if(u){const m=import_lodash.default.isEmpty(l)?[]:import_lodash.default.map(transformValue(l,{field:u,subFieldSchema:t}),d=>markRecordAsNew(d));isSubset(m,u.initialValue)||u.setInitialValue(m)}}},[t,e]);return{isSpecialCase:n,setDefaultValue:a}};function getParentFieldSchema(e){for(;e!=null&&e.parent;)if(e=e.parent,isSubMode(e))return e;return e}function isSpecialCaseField({collectionField:e,fieldSchema:t,getCollectionField:o}){if(!t.default||!t.default.includes("$context"))return!1;if(e&&["hasOne","belongsTo"].includes(e.type)&&t){const r=getParentFieldSchema(t);if(r&&r["x-collection-field"]){const i=o(r["x-collection-field"]);if(["hasMany","belongsToMany"].includes(i==null?void 0:i.type))return!0}}return!1}function transformValue(e,t){const{field:o,subFieldSchema:r}=t,i=o.value;let n=null;return Array.isArray(e)?n=e.map(a=>({[r.name]:a})):n=[{[r.name]:e}],import_lodash.default.assignWith([...i],n,(a,l)=>(!a&&l&&(l.__notFromDatabase=!0),import_lodash.default.assign(x({},i[0]),l)))}const useSubTableSpecialCase=({rootField:e,rootSchema:t})=>{const{hasUsedVariable:o}=useHasUsedVariable();(0,import_react2.useEffect)(()=>{if(import_lodash.default.isEmpty(e.value)&&o("$context",t)){const r=e.value,i=[markRecordAsNew({})];e.value=i,setTimeout(()=>{JSON.stringify(e.value)===JSON.stringify(i)&&(e.value=r)})}},[e,t,o])};function isSubset(e,t){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){const r=e[o],i=t[o];if(!import_lodash.default.isMatch(import_lodash.default.omitBy(i,import_lodash.default.isNil),import_lodash.default.omitBy(r,import_lodash.default.isNil)))return!1}return!0}const checkSchema=(e,t)=>{if(e["x-decorator"]==="FormItem"){const r=e.default;if(r&&typeof r=="string"&&isVariable$1(r)&&r.includes(t))return!0}let o=!1;return e.mapProperties(r=>{checkSchema(r,t)&&(o=!0)}),o};function useHasUsedVariable(){return{hasUsedVariable:(0,import_react2.useCallback)((e,t)=>checkSchema(t,e),[])}}const BaseVariableContext=import_react2.default.createContext(null),BaseVariableProvider=e=>(0,import_jsx_runtime.jsx)(BaseVariableContext.Provider,{value:e,children:e.children}),getChildren$1=(e,{collectionField:t,uiSchema:o,depth:r,maxDepth:i,noDisabled:n,loadChildren:a,compile:l,isDisabled:c,targetFieldSchema:u,getCollectionField:m,deprecated:d})=>e.map(p=>!p.target||p.target==="chinaRegions"?{key:p.name,value:p.name,label:l(p.title),disabled:d||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:m})),isLeaf:!0,depth:r,operators:p==null?void 0:p.operators,schema:p==null?void 0:p.schema}:r>=i?null:{key:p.name,value:p.name,label:l(p.title),isLeaf:!1,field:p,depth:r,disabled:d||(n?!1:c({option:p,collectionField:t,uiSchema:o,targetFieldSchema:u,getCollectionField:m})),loadChildren:a}).filter(Boolean),getLabelWithTooltip=(e,t)=>t?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{placement:"left",title:t,zIndex:9999,children:(0,import_jsx_runtime.jsx)("span",{style:{position:"relative",display:"inline-block",marginLeft:-14,paddingLeft:14,marginRight:-80,paddingRight:80,zIndex:1},children:e})}):e,useBaseVariable=({collectionField:e,uiSchema:t,targetFieldSchema:o,maxDepth:r=3,name:i,title:n,collectionName:a,noChildren:l=!1,noDisabled:c=!0,dataSource:u,returnFields:m=g=>g,deprecated:d,tooltip:p,operators:h=[]})=>{const g=useCompile(),_=useGetFilterOptions(),{isDisabled:f}=(0,import_react2.useContext)(BaseVariableContext)||{},v=useCollectionManager(),b=S=>{var C;if(!((C=S.field)!=null&&C.target))return Promise.resolve(void 0);const y=S.field.target;return new Promise(F=>{setTimeout(()=>{const I=(getChildren$1(m(_(y,u,!0),S),{collectionField:e,uiSchema:t,targetFieldSchema:o,depth:S.depth+1,maxDepth:r,noDisabled:c,loadChildren:b,compile:g,isDisabled:f||isDisabledDefault,getCollectionField:v.getCollectionField,deprecated:d})||[]).sort((T,k)=>T.isLeaf&&!k.isLeaf?-1:!T.isLeaf&&k.isLeaf?1:0).sort((T,k)=>T.disabled&&!k.disabled?1:!T.disabled&&k.disabled?-1:0);if(I.length===0){S.disabled=!0,S.isLeaf=!0,F();return}S.children=I,F()},5)})};return(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(n,p),value:i,key:i,isLeaf:l,field:{target:a},depth:0,loadChildren:b,children:[],disabled:!!d,deprecated:d,operators:h}),[t==null?void 0:t["x-component"]])};function isDisabledDefault(e){var t,o;const{option:r,collectionField:i,uiSchema:n,targetFieldSchema:a,getCollectionField:l}=e;return!n||!i?!0:i.interface==="json"?!1:!i.target&&["hasMany","belongsToMany"].includes(r.type)?!0:!i.target&&["hasOne","belongsTo"].includes(r.type)||r.target&&isSpecialCaseField({collectionField:i,fieldSchema:a,getCollectionField:l})?!1:["hasOne","belongsTo"].includes(i.type)&&["hasMany","belongsToMany"].includes(r.type)?!0:["hasOne","belongsTo"].includes(i.type)&&["hasOne","belongsTo"].includes(r.type)||["hasMany","belongsToMany"].includes(i.type)&&r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const CurrentRecordContext=(0,import_react2.createContext)(null),CurrentRecordContextProvider=e=>{const t=(0,import_react2.useMemo)(()=>({recordData:e.recordData,collectionName:e.collectionName}),[e.recordData,e.collectionName]);return(0,import_jsx_runtime.jsxs)(CurrentRecordContext.Provider,{value:t,children:[" ",e.children," "]})},useCurrentRecord=()=>(0,import_react2.useContext)(CurrentRecordContext),useCurrentRecordContext=()=>{const e=useCurrentRecord(),{name:t}=useBlockContext()||{},o=useCollection(),r=useCollectionRecordData(),{formRecord:i,collectionName:n}=useFormBlockContext();let a=i!=null&&i.data?n:o==null?void 0:o.name;return a=(e==null?void 0:e.collectionName)||a,{currentRecordCtx:(e==null?void 0:e.recordData)||(i==null?void 0:i.data)||r,shouldDisplayCurrentRecord:!import_lodash.default.isEmpty(import_lodash.default.omit(r,["__collectionName","__parent"]))||!!(i!=null&&i.data)||t==="taleColumn",collectionName:a,blockType:t,dataSource:o==null?void 0:o.dataSource}},useCurrentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i,blockType:n,dataSource:a}=useCurrentRecordContext();return{currentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nRecord",title:t("Current record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,deprecated:n==="form"&&!r,tooltip:n==="form"?t('This variable has been deprecated and can be replaced with "Current form"'):"",dataSource:a}),currentRecordCtx:o,shouldDisplayCurrentRecord:r,collectionName:i}},SettingsMenuProvider=e=>SelectWithTitle,DropdownVisibleContext=(0,import_react2.createContext)(null);DropdownVisibleContext.displayName="DropdownVisibleContext";const CurrentUserContext=(0,import_react2.createContext)(null);CurrentUserContext.displayName="CurrentUserContext";const useCurrentUserContext=()=>(0,import_react2.useContext)(CurrentUserContext),useIsLoggedIn=()=>{var e;const t=(0,import_react2.useContext)(CurrentUserContext);return!!((e=t==null?void 0:t.data)!=null&&e.data)},useCurrentRoles=()=>{var e;const{allowAnonymous:t}=useACLRoleContext(),{data:o}=useCurrentUserContext()||{},r=useCompile();return(0,import_react2.useMemo)(()=>{var i;const n=(((i=o==null?void 0:o.data)==null?void 0:i.roles)||[]).map(({name:a,title:l})=>({name:a,title:r(l)}));return t&&n.push({title:"Anonymous",name:"anonymous"}),n},[t,(e=o==null?void 0:o.data)==null?void 0:e.roles,r])},CurrentUserProvider=e=>{const t=useAPIClient(),o=useRequest(()=>t.request({url:"/auth:check",skipNotify:!0,skipAuth:!0}).then(i=>i==null?void 0:i.data),{manual:!t.auth.token}),{render:r}=useAppSpin();return o.loading?r():(0,import_jsx_runtime.jsx)(CurrentUserContext.Provider,{value:o,children:e.children})},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})},useUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:n("Current user"),collectionName:"users",dataSource:DEFAULT_DATA_SOURCE_KEY,noDisabled:o,targetFieldSchema:r})},useCurrentUserVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=3}={})=>{var n;const{t:a}=(0,import_react_i18next.useTranslation)(),l=useCurrentUserContext();return{currentUserSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$user",title:a("Current user"),collectionName:"users",noDisabled:o,targetFieldSchema:r,dataSource:DEFAULT_DATA_SOURCE_KEY}),currentUserCtx:(n=l==null?void 0:l.data)==null?void 0:n.data}},useAPITokenVariable=({noDisabled:e}={})=>{var t;const o=useAPIClient();return{apiTokenSettings:useBaseVariable({name:"$nToken",title:"API token",noDisabled:e,noChildren:!0,operators:string}),apiTokenCtx:(t=o.auth)==null?void 0:t.token}},popupSchema={type:"void","x-component":"Action.Container","x-action":"view",title:'{{ t("View record") }}',"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:{}}}}}}}},useInsertSchema=()=>{const e=(0,import_react.useFieldSchema)(),{insertAfterBegin:t}=useDesignable();return(0,import_react2.useCallback)(o=>{e.reduceProperties((r,i)=>i["x-component"]==="Action.Container"?i:r,null)||t((0,import_lodash.cloneDeep)(o))},[e,t])},filterProperties=e=>e["x-component"]==="Action.Container",FieldLink=e=>{const t=e,{WrappedComponent:o}=t,r=W(t,["WrappedComponent"]),i=(0,import_react.useFieldSchema)(),{openPopup:n}=usePopupUtils(),a=(0,import_react2.useRef)(!1),l=useInsertSchema(),c=(0,import_react2.useRef)(i);c.current=i;const u=(0,import_react2.useCallback)(()=>c.current,[]),m=(0,import_react2.useCallback)(()=>{i.properties||(l(popupSchema),a.current=!0),a.current?(setTimeout(()=>{n({customActionSchema:u()})}),a.current=!1):i.properties&&n()},[i,l,n,u]);return(0,import_jsx_runtime.jsx)("a",{onClick:m,children:(0,import_jsx_runtime.jsx)(o,x({},r))})};function withPopupWrapper(e){return t=>{const[o,r]=(0,import_react2.useState)(!1),[i,n]=(0,import_react2.useState)(!1),a=useCollection(),l=useActionContext(),c=(0,import_react.useField)(),u=(0,import_react.useFieldSchema)(),{enableLink:m,openMode:d,openSize:p}=(u==null?void 0:u["x-component-props"])||{},{visibleWithURL:h,setVisibleWithURL:g}=usePopupUtils(),_=(0,import_react2.useCallback)(b=>{r==null||r(b),g==null||g(b)},[g]),f=(0,import_react2.useRef)(u);f.current=u;const{setSubmitted:v}=l;return m?(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:(0,import_jsx_runtime.jsx)(e,x({},t)),visible:o||h,setVisible:_,formValueChanged:i,setFormValueChanged:n,openMode:d,openSize:p,containerRefKey:"field-popup",fieldSchema:u,setSubmitted:v,children:[(0,import_jsx_runtime.jsx)(CollectionProvider,{name:a.name,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{children:(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:c==null?void 0:c.address,schema:u,filterProperties})})})}),(0,import_jsx_runtime.jsx)(FieldLink,P(x({},t),{WrappedComponent:e}))]})}):(0,import_jsx_runtime.jsx)(e,x({},t))}}const ReadPretty$d=()=>null;ReadPretty$d.DatePicker=function(e){const{value:t,picker:o="date"}=e,r=(0,import_builtins.usePrefixCls)("description-date-picker",e);if(!t)return(0,import_jsx_runtime.jsx)("div",{});const i=()=>{const n=(0,import_client.getDefaultFormat)(e),a=(0,import_client.str2moment)(t,e),l=import_dayjs.default.isDayjs(a)?a.format(n):"";return(0,import_shared.isArr)(l)?l.join("~"):l};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(r,e.className),children:i()})};ReadPretty$d.DateRangePicker=function(e){const t=(0,import_builtins.usePrefixCls)("description-text",e),o=(0,import_client.getDefaultFormat)(e),r=()=>{const i=(0,import_client.str2moment)(e.value,e);if(!i)return"";const n=i.map(a=>a.format(o));return(0,import_shared.isArr)(n)?n.join("~"):n};return(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)(t,e.className),style:e.style,children:r()})};ReadPretty$d.DatePicker=withPopupWrapper(ReadPretty$d.DatePicker);const DatePickerContext=import_react2.default.createContext({utc:!0}),useDatePickerContext=()=>import_react2.default.useContext(DatePickerContext),DatePickerProvider=DatePickerContext.Provider,InternalDatePicker=(0,import_react.connect)(import_antd.DatePicker,(0,import_react.mapProps)(mapDatePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DatePicker)),InternalRangePicker=(0,import_react.connect)(import_antd.DatePicker.RangePicker,(0,import_react.mapProps)(mapRangePicker()),(0,import_react.mapReadPretty)(ReadPretty$d.DateRangePicker)),DatePicker=e=>{const{utc:t=!0}=useDatePickerContext(),o=Array.isArray(e.value)?e.value[0]:e.value,{parseVariable:r}=useVariables$1()||{},i=useLocalVariables$1(),[n,a]=(0,import_react2.useState)(null),[l,c]=(0,import_react2.useState)(null),u=(0,import_react2.useRef)(null);(0,import_react2.useEffect)(()=>(u.current&&u.current(),u.current=(0,import_reactive.autorun)(()=>{m()}),()=>{u.current()}),[e._maxDate,e._minDate,i,r]);const m=()=>z(void 0,null,function*(){let p=e._minDate?Promise.resolve((0,import_dayjs.default)(e._minDate)):Promise.resolve(null),h=e._maxDate?Promise.resolve((0,import_dayjs.default)(e._maxDate)):Promise.resolve(null);isVariable$1(e._maxDate)&&(h=r(e._maxDate,i).then(S=>(0,import_dayjs.default)(Array.isArray(S.value)?(0,import_lodash.last)(S.value):S.value))),isVariable$1(e._minDate)&&(p=r(e._minDate,i).then(S=>(0,import_dayjs.default)(Array.isArray(S.value)?(0,import_lodash.first)(S.value):S.value)));const[g,_]=yield Promise.all([p,h]),f=Array.from({length:60},(S,C)=>C),v=S=>{if(!import_dayjs.default.isDayjs(S))return!1;const C=(0,import_dayjs.default)(S),y=g?(0,import_dayjs.default)(g):null,F=_?(0,import_dayjs.default)(_).endOf("day"):null;return y&&C.isBefore(y,"minute")||F&&C.isAfter(F,"minute")},b=S=>{if(!S||!g&&!_)return{disabledHours:()=>[],disabledMinutes:()=>[],disabledSeconds:()=>[]};const C=(0,import_dayjs.default)(S),y=C.isSame(g,"day"),F=C.isSame(_,"day");return{disabledHours:()=>{const I=[];return y&&I.push(...Array.from({length:g.hour()},(T,k)=>k)),F&&I.push(...Array.from({length:24-_.hour()},(T,k)=>k+_.hour()+1)),I},disabledMinutes:I=>y&&I===g.hour()?f.filter(T=>T<g.minute()):F&&I===_.hour()?f.filter(T=>T>_.minute()):[],disabledSeconds:(I,T)=>y&&I===g.hour()&&T===g.minute()?f.filter(k=>k<g.second()):F&&I===_.hour()&&T===_.minute()?f.filter(k=>k>_.second()):[]}};a(()=>v),c(()=>b)}),d=P(x({utc:t},e),{disabledDate:n,disabledTime:l,showTime:e.showTime?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1});return(0,import_jsx_runtime.jsx)(InternalDatePicker,P(x({},d),{value:o}))};DatePicker.ReadPretty=ReadPretty$d.DatePicker;DatePicker.RangePicker=function(e){const{value:t,picker:o="date",format:r,showTime:i,timeFormat:n}=e,{t:a}=(0,import_react_i18next.useTranslation)(),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),{utc:u=!0}=useDatePickerContext(),m=getDateRanges(),d=useCompile(),p=!l["x-filter-operator"],h=[{label:a("Today"),value:m.today},{label:a("Last week"),value:m.lastWeek},{label:a("This week"),value:m.thisWeek},{label:a("Next week"),value:m.nextWeek},{label:a("Last month"),value:m.lastMonth},{label:a("This month"),value:m.thisMonth},{label:a("Next month"),value:m.nextMonth},{label:a("Last quarter"),value:m.lastQuarter},{label:a("This quarter"),value:m.thisQuarter},{label:a("Next quarter"),value:m.nextQuarter},{label:a("Last year"),value:m.lastYear},{label:a("This year"),value:m.thisYear},{label:a("Next year"),value:m.nextYear},{label:a("Last 7 days"),value:m.last7Days},{label:a("Next 7 days"),value:m.next7Days},{label:a("Last 30 days"),value:m.last30Days},{label:a("Next 30 days"),value:m.next30Days},{label:a("Last 90 days"),value:m.last90Days},{label:a("Next 90 days"),value:m.next90Days}],g=t?inferPickerType(t==null?void 0:t[0],o):o,_=(0,import_client.getPickerFormat)(g)||r,f=P(x({utc:u,presets:h},e),{format:(0,import_client.getDateTimeFormat)(g,_,i,n),picker:g,showTime:i?{defaultValue:[(0,import_dayjs.default)("00:00:00","HH:mm:ss"),(0,import_dayjs.default)("23:59:59","HH:mm:ss")]}:!1}),[v,b]=(0,import_react2.useState)(f);return p?(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,defaultValue:g,options:d([{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]),onChange:S=>{const C=(0,import_client.getPickerFormat)(S),y=(0,import_client.getDateTimeFormat)(S,C,i,n);c.setComponentProps({picker:S,format:C}),f.picker=S,f.format=y,b(f),l["x-component-props"]=P(x({},e),{picker:S,format:y}),c.value=void 0}}),(0,import_jsx_runtime.jsx)(InternalRangePicker,P(x({},v),{value:t}))]}):(0,import_jsx_runtime.jsx)(InternalRangePicker,x({},f))};DatePicker.FilterWithPicker=function(e){const{picker:t="date",format:o,showTime:r,timeFormat:i}=e,n=isMobile(),{utc:a=!0}=useDatePickerContext(),l=Array.isArray(e.value)?e.value[0]:e.value,c=useCompile(),u=(0,import_react.useFieldSchema)(),m=l?inferPickerType(l,t):t,[d,p]=(0,import_react2.useState)(m),h=(0,import_client.getPickerFormat)(m)||o,g=P(x({utc:a,inputReadOnly:n},e),{underFilter:!0,showTime:r?{defaultValue:(0,import_dayjs.default)("00:00:00","HH:mm:ss")}:!1,format:(0,import_client.getDateTimeFormat)(d,h,r,i),picker:d,onChange:b=>{e.onChange(void 0),setTimeout(()=>{e.onChange(b)})}}),_=(0,import_react.useField)(),[f,v]=(0,import_react2.useState)(g);return(0,import_jsx_runtime.jsxs)(import_antd.Space.Compact,{style:{width:"100%"},children:[(0,import_jsx_runtime.jsx)(import_antd.Select,{role:"button","data-testid":"select-picker",style:{width:"100px"},popupMatchSelectWidth:!1,value:d,options:c([{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]),onChange:b=>{p(b);const S=(0,import_client.getPickerFormat)(b),C=(0,import_client.getDateTimeFormat)(b,S,r,i);_.setComponentProps({picker:b,format:S}),g.picker=b,g.format=C,v(g),u["x-component-props"]=P(x({},e),{picker:b,format:C}),_.value=null}}),(0,import_jsx_runtime.jsx)(InternalDatePicker,P(x({},f),{value:l}))]})};const useDateVariable=({operator:e,schema:t,noDisabled:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),i=(e==null?void 0:e.value)||"",n=o?!1:!["DatePicker","DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"]),a=[{key:"now",value:"now",label:r("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||i==="$dateBetween",operators:datetime,schema:{}},{key:"yesterday",value:"yesterday",label:r("Yesterday"),disabled:n,operators:datetime},{key:"today",value:"today",label:r("Today"),disabled:n,operators:datetime},{key:"tomorrow",value:"tomorrow",label:r("Tomorrow"),disabled:n,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:r("Last week"),disabled:n,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:r("This week"),disabled:n,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:r("Next week"),disabled:n,operators:datetime},{key:"lastMonth",value:"lastMonth",label:r("Last month"),disabled:n,operators:datetime},{key:"thisMonth",value:"thisMonth",label:r("This month"),disabled:n,operators:datetime},{key:"nextMonth",value:"nextMonth",label:r("Next month"),disabled:n,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:r("Last quarter"),disabled:n,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:r("This quarter"),disabled:n,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:r("Next quarter"),disabled:n,operators:datetime},{key:"lastYear",value:"lastYear",label:r("Last year"),disabled:n,operators:datetime},{key:"thisYear",value:"thisYear",label:r("This year"),disabled:n,operators:datetime},{key:"nextYear",value:"nextYear",label:r("Next year"),disabled:n,operators:datetime},{key:"last7Days",value:"last7Days",label:r("Last 7 days"),disabled:n,operators:datetime},{key:"next7Days",value:"next7Days",label:r("Next 7 days"),disabled:n,operators:datetime},{key:"last30Days",value:"last30Days",label:r("Last 30 days"),disabled:n,operators:datetime},{key:"next30Days",value:"next30Days",label:r("Next 30 days"),disabled:n,operators:datetime},{key:"last90Days",value:"last90Days",label:r("Last 90 days"),disabled:n,operators:datetime},{key:"next90Days",value:"next90Days",label:r("Next 90 days"),disabled:n,operators:datetime}],l=(0,import_react2.useMemo)(()=>({label:r("Date variables"),value:"$nDate",key:"$nDate",disabled:a.every(c=>c.disabled),children:a}),[t==null?void 0:t["x-component"]]);return t?l:null},useDatetimeVariableContext=()=>{const{utc:e=!0}=useDatePickerContext();return{datetimeCtx:(0,import_react2.useMemo)(()=>getDateRanges({shouldBeString:!0,utc:e}),[e])}},useDatetimeVariable=({operator:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{getOperator:n}=useOperators(),a=(0,import_react2.useMemo)(()=>{const c=(e==null?void 0:e.value)||n(r==null?void 0:r.name)||"",u=o?!1:!["DatePicker.RangePicker"].includes(t==null?void 0:t["x-component"])&&!c,m=[{key:"now",value:"now",label:i("Current time"),disabled:o?!1:(t==null?void 0:t["x-component"])!=="DatePicker"||c==="$dateBetween",operators:datetime},{key:"yesterday",value:"yesterday",label:i("Yesterday"),disabled:u,operators:datetime},{key:"today",value:"today",label:i("Today"),disabled:u,operators:datetime},{key:"tomorrow",value:"tomorrow",label:i("Tomorrow"),disabled:u,operators:datetime},{key:"lastIsoWeek",value:"lastIsoWeek",label:i("Last week"),disabled:u,operators:datetime},{key:"thisIsoWeek",value:"thisIsoWeek",label:i("This week"),disabled:u,operators:datetime},{key:"nextIsoWeek",value:"nextIsoWeek",label:i("Next week"),disabled:u,operators:datetime},{key:"lastMonth",value:"lastMonth",label:i("Last month"),disabled:u,operators:datetime},{key:"thisMonth",value:"thisMonth",label:i("This month"),disabled:u,operators:datetime},{key:"nextMonth",value:"nextMonth",label:i("Next month"),disabled:u,operators:datetime},{key:"lastQuarter",value:"lastQuarter",label:i("Last quarter"),disabled:u,operators:datetime},{key:"thisQuarter",value:"thisQuarter",label:i("This quarter"),disabled:u,operators:datetime},{key:"nextQuarter",value:"nextQuarter",label:i("Next quarter"),disabled:u,operators:datetime},{key:"lastYear",value:"lastYear",label:i("Last year"),disabled:u,operators:datetime},{key:"thisYear",value:"thisYear",label:i("This year"),disabled:u,operators:datetime},{key:"nextYear",value:"nextYear",label:i("Next year"),disabled:u,operators:datetime},{key:"last7Days",value:"last7Days",label:i("Last 7 days"),disabled:u,operators:datetime},{key:"next7Days",value:"next7Days",label:i("Next 7 days"),disabled:u,operators:datetime},{key:"last30Days",value:"last30Days",label:i("Last 30 days"),disabled:u,operators:datetime},{key:"next30Days",value:"next30Days",label:i("Next 30 days"),disabled:u,operators:datetime},{key:"last90Days",value:"last90Days",label:i("Last 90 days"),disabled:u,operators:datetime},{key:"next90Days",value:"next90Days",label:i("Next 90 days"),disabled:u,operators:datetime}];return{label:i("Date variables"),value:"$nDate",key:"$nDate",disabled:m.every(d=>d.disabled),children:m}},[t==null?void 0:t["x-component"],r]),{datetimeCtx:l}=useDatetimeVariableContext();return{datetimeSettings:a,datetimeCtx:l}},useExactDateVariableContext=()=>({exactDateTimeCtx:(0,import_react2.useMemo)(()=>getDateExact(),[])}),useExactDateVariable=({schema:e,targetFieldSchema:t}={})=>{var o;const{collectionField:r}=useFlag(),{dateOnly:i,utc:n,accuracy:a,picker:l}=((o=r==null?void 0:r.uiSchema)==null?void 0:o["x-component-props"])||{},{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react2.useMemo)(()=>{const d=h=>{if(!l){if(h==="now")return"nowLocal";if(h==="today")return"todayDate";if(h==="yesterday")return"yesterdayDate";if(h==="tomorrow")return"tomorrowDate"}return i?h==="now"?null:`${h}Date`:`${h}${n||a?"Utc":"Local"}`},p=[{key:"now",value:d("now"),label:c("Now"),operators:datetime},{key:"today",value:d("today"),label:c("Today"),operators:datetime},{key:"yesterday",value:d("yesterday"),label:c("Yesterday"),operators:datetime},{key:"tomorrow",value:d("tomorrow"),label:c("Tomorrow"),operators:datetime}].filter(h=>h.value);return{label:c("Date variables"),value:"$nExactDate",key:"$nExactDate",children:p}},[e==null?void 0:e["x-component"],t]),{exactDateTimeCtx:m}=useExactDateVariableContext();return{exactDateTimeSettings:u,exactDateTimeCtx:m,shouldDisplayExactDate:!!r}},useCurrentFormContext=({form:e}={})=>{const{form:t}=useFormBlockContext(),{isVariableParsedInOtherContext:o}=useFlag(),{name:r}=(useBlockContext==null?void 0:useBlockContext())||{},i=e||t;return{currentFormCtx:i==null?void 0:i.values,shouldDisplayCurrentForm:["form","filter-form"].includes(r)&&i&&!i.readPretty&&!o}},useCurrentFormVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r,form:i}={})=>{const{currentFormCtx:n,shouldDisplayCurrentForm:a}=useCurrentFormContext({form:i}),{t:l}=(0,import_react_i18next.useTranslation)(),{collectionName:c}=useFormBlockContext(),u=useDataSource();return{currentFormSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nForm",title:l("Current form"),collectionName:c,noDisabled:o,dataSource:u==null?void 0:u.key,returnFields:(m,d)=>m}),currentFormCtx:n,shouldDisplayCurrentForm:a}},useCurrentObjectContext=()=>{const{isInSubForm:e,isInSubTable:t}=useFlag()||{},{formValue:o,collection:r}=useSubFormValue();return{shouldDisplayCurrentObject:e||t,currentObjectCtx:o,collectionOfCurrentObject:r}},useCurrentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const i=useCollection(),{t:n}=(0,import_react_i18next.useTranslation)(),{shouldDisplayCurrentObject:a,currentObjectCtx:l,collectionOfCurrentObject:c}=useCurrentObjectContext(),u=useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$iteration",title:n("Current object"),collectionName:(c==null?void 0:c.name)||(i==null?void 0:i.name),noDisabled:o,dataSource:i==null?void 0:i.dataSource,returnFields:(m,d)=>m});return{shouldDisplayCurrentObject:a,currentObjectCtx:l,currentObjectSettings:u}},useParentObjectContext=()=>{const{parent:e}=useSubFormValue(),{value:t,collection:o}=e||{},{isInSubForm:r,isInSubTable:i}=useFlag()||{};return{shouldDisplayParentObject:(r||i)&&!!o,parentObjectCtx:t,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource}},useParentObjectVariable=({collectionField:e,schema:t,noDisabled:o,targetFieldSchema:r}={})=>{const{t:i}=(0,import_react_i18next.useTranslation)(),{shouldDisplayParentObject:n,parentObjectCtx:a,collectionName:l,dataSource:c}=useParentObjectContext();return{parentObjectSettings:useBaseVariable({collectionField:e,uiSchema:t,targetFieldSchema:r,maxDepth:4,name:"$nParentIteration",title:i("Parent object"),collectionName:l,noDisabled:o,dataSource:c,returnFields:(u,m)=>u}),shouldDisplayParentObject:n,parentObjectCtx:a,collectionName:l}},useParentPopupVariableContext=()=>{const{value:e,title:t,collection:o}=useParentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{parentPopupRecordCtx:e,shouldDisplayParentPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},useParentPopupVariable=(e={})=>{const{parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:a}=useParentPopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentPopupRecord",title:a,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),parentPopupRecordCtx:t,shouldDisplayParentPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},ParentCollectionContext=(0,import_react2.createContext)(null);ParentCollectionContext.displayName="ParentCollectionContext";const ParentCollectionProvider=e=>{const t=useCollection();return(0,import_jsx_runtime.jsx)(ParentCollectionContext.Provider,{value:t,children:e.children})},useParentCollection=()=>(0,import_react2.useContext)(ParentCollectionContext),AssociationProvider=e=>{const{name:t,children:o}=e,r=useCollectionManager().getCollectionName(t);return r?(0,import_jsx_runtime.jsx)(CollectionProvider,{name:String(t).split(".")[0],children:(0,import_jsx_runtime.jsx)(ParentCollectionProvider,{children:(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t,children:(0,import_jsx_runtime.jsx)(CollectionProvider,{name:r,children:o})})})}):(0,import_jsx_runtime.jsx)(CollectionDeletedPlaceholder,{type:"Collection",name:t})},useAssociationName=()=>{const e=useCollectionField();return e!=null&&e.target?`${e.collectionName}.${e.name}`:null},useCurrentParentRecordContext=()=>{var e,t;const o=useCollectionRecord(),{name:r,dataSource:i}=useParentCollection()||{},n=useCollection(),{isInSubForm:a,isInSubTable:l}=useFlag()||{},c=r?i:n==null?void 0:n.dataSource,u=useCollectionField();return{currentParentRecordCtx:((e=o==null?void 0:o.parentRecord)==null?void 0:e.data)||(o==null?void 0:o.data),shouldDisplayCurrentParentRecord:!!((t=o==null?void 0:o.parentRecord)!=null&&t.data)&&!a&&!l&&u,collectionName:r||(n==null?void 0:n.name),dataSource:c}},useCurrentParentRecordVariable=(e={})=>{const{t}=(0,import_react_i18next.useTranslation)(),{currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}=useCurrentParentRecordContext();return{currentParentRecordSettings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nParentRecord",title:t("Parent record"),collectionName:i,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:n}),currentParentRecordCtx:o,shouldDisplayCurrentParentRecord:r,collectionName:i,dataSource:n}},usePopupVariableContext=()=>{const{value:e,title:t,collection:o}=useCurrentPopupRecord()||{},{isVariableParsedInOtherContext:r}=useFlag();return{popupRecordCtx:e,shouldDisplayPopupRecord:!!e&&!r,collectionName:o==null?void 0:o.name,dataSource:o==null?void 0:o.dataSource,defaultValue:void 0,title:t}},usePopupVariable=(e={})=>{const{popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n,title:a}=usePopupVariableContext();return{settings:useBaseVariable({collectionField:e.collectionField,uiSchema:e.schema,name:"$nPopupRecord",title:a,collectionName:r,noDisabled:e.noDisabled,targetFieldSchema:e.targetFieldSchema,dataSource:i}),popupRecordCtx:t,shouldDisplayPopupRecord:o,collectionName:r,dataSource:i,defaultValue:n}},useRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0})=>{const{t:n}=(0,import_react_i18next.useTranslation)();return useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:n("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string})},useCurrentRoleVariable=({collectionField:e,uiSchema:t,noDisabled:o,targetFieldSchema:r,maxDepth:i=0}={})=>{var n,a,l;const{t:c}=(0,import_react_i18next.useTranslation)(),u=useAPIClient(),m=useCompile(),{data:d}=useCurrentUserContext()||{},p=(((n=d==null?void 0:d.data)==null?void 0:n.roles)||[]).map(({name:h,title:g})=>({name:h,title:m(g)}));return{currentRoleSettings:useBaseVariable({collectionField:e,uiSchema:t,maxDepth:i,name:"$nRole",title:c("Current role"),collectionName:"roles",noDisabled:o,targetFieldSchema:r,noChildren:!0,operators:string}),currentRoleCtx:((a=u.auth)==null?void 0:a.role)==="__union__"?p.map(h=>h.name):(l=u.auth)==null?void 0:l.role}},getURLSearchParams=e=>(e.startsWith("?")&&(e=e.slice(1)),import_qs.default.parse(e)||{}),getURLSearchParamsChildren=e=>Object.keys(e).map(t=>({label:t,value:t,key:t,isLeaf:!0,operators:string})),useURLSearchParamsCtx=e=>{const[t]=(0,import_react2.useState)(()=>(0,import_reactive.observable)({}));return(0,import_react2.useMemo)(()=>{const o=getURLSearchParams(e);return(0,import_reactive.untracked)(()=>{Object.assign(t,o),Object.keys(t).forEach(r=>{o[r]===void 0&&delete t[r]})}),t},[t,e])},useURLSearchParamsVariable=(e={})=>{const t="$nURLSearchParams",{t:o}=(0,import_react_i18next.useTranslation)(),r=useLocationSearch(),{isVariableParsedInOtherContext:i}=useFlag(),n=useURLSearchParamsCtx(r),a=(0,import_react2.useMemo)(()=>import_lodash.default.isEmpty(n),[n]),l=(0,import_react2.useMemo)(()=>({label:getLabelWithTooltip(o("URL search params"),a?o("The value of this variable is derived from the query string of the page URL. This variable can only be used normally when the page has a query string."):""),value:t,key:t,isLeaf:!1,disabled:a,loadChildren:(c,u)=>z(void 0,null,function*(){const m=u?{[u]:void 0}:{};c.children=getURLSearchParamsChildren(x(x({},m),n))})}),[a,o,n]);return{name:t,urlSearchParamsSettings:l,urlSearchParamsCtx:n,defaultValue:void 0,shouldDisplay:!i}},useVariableOptions=({collectionField:e,form:t,uiSchema:o,operator:r,noDisabled:i,targetFieldSchema:n,record:a})=>{var l;const{filterVariables:c=()=>!0}=useVariables$1()||{},u=(l=a==null?void 0:a.__parent)==null?void 0:l.__collectionName,{currentUserSettings:m}=useCurrentUserVariable({maxDepth:3,uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentRoleSettings:d}=useCurrentRoleVariable({uiSchema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{apiTokenSettings:p}=useAPITokenVariable({noDisabled:i}),{datetimeSettings:h}=useDatetimeVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{exactDateTimeSettings:g,shouldDisplayExactDate:_}=useExactDateVariable({operator:r,schema:o,noDisabled:!0,targetFieldSchema:n}),{currentFormSettings:f,shouldDisplayCurrentForm:v}=useCurrentFormVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n,form:t}),{currentObjectSettings:b,shouldDisplayCurrentObject:S}=useCurrentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{parentObjectSettings:C,shouldDisplayParentObject:y}=useParentObjectVariable({collectionField:e,schema:o,noDisabled:i,targetFieldSchema:n}),{currentRecordSettings:F,shouldDisplayCurrentRecord:I}=useCurrentRecordVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:T,shouldDisplayPopupRecord:k}=usePopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{settings:N,shouldDisplayParentPopupRecord:M}=useParentPopupVariable({schema:o,collectionField:e,noDisabled:i,targetFieldSchema:n}),{currentParentRecordSettings:L,shouldDisplayCurrentParentRecord:D}=useCurrentParentRecordVariable({schema:o,collectionName:u,collectionField:e,noDisabled:i,targetFieldSchema:n}),{urlSearchParamsSettings:R,shouldDisplay:$}=useURLSearchParamsVariable();return(0,import_react2.useMemo)(()=>[m,d,p,!_&&h,_&&g,v&&f,S&&b,y&&C,I&&F,D&&L,k&&T,M&&N,$&&R].filter(Boolean).filter(c),[m,d,p,h,v,f,S,b,y,C,I,F,D,L,k,T,$,R])},VariableInput=e=>{const{value:t,onChange:o,renderSchemaComponent:r,style:i,schema:n,className:a,contextCollectionName:l,collectionField:c,shouldChange:u,form:m,record:d,returnScope:p=import_lodash.default.identity,targetFieldSchema:h,noDisabled:g,hideVariableButton:_,setScopes:f,nullable:v=!0,constantAbel:b=!0,changeOnSelect:S=!0}=e,{name:C}=useBlockCollection(),y=useVariableScope(),{operator:F,schema:I=c==null?void 0:c.uiSchema}=useValues$2(),T=useVariableOptions({collectionField:c,form:m,record:d,operator:F,uiSchema:I,targetFieldSchema:h,noDisabled:g}),k=useContextAssociationFields({schema:n,maxDepth:2,contextCollectionName:l,collectionField:c}),{compatOldVariables:N}=useCompatOldVariables({collectionField:c,uiSchema:I,targetFieldSchema:h,blockCollectionName:C});l&&T.every(D=>D.value!==k.value)&&T.push(k);const M=(0,import_react2.useCallback)((D,R)=>{if(!u)return o(D,R);setTimeout(()=>z(void 0,null,function*(){(yield u(D,R))&&o(D,R)}))},[o,u]),L=p(N(import_lodash.default.isEmpty(y)?T:y,{value:t}));return(0,import_react2.useEffect)(()=>{f==null||f(L)},[t,y]),(0,import_jsx_runtime.jsx)(Variable.Input,{className:a,value:t,onChange:M,scope:L,style:i,changeOnSelect:S,hideVariableButton:_,nullable:v,constantAbel:b,children:(0,import_jsx_runtime.jsx)(r,{value:t,onChange:o})})},getShouldChange=({collectionField:e,variables:t,localVariables:o,getAllCollectionsInheritChain:r})=>(e&&r(e.target),(i,n)=>z(void 0,null,function*(){return!0}));function useCompatOldVariables(e){const{uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i,blockCollectionName:n}=e,{t:a}=(0,import_react_i18next.useTranslation)(),{currentUserSettings:l}=useCurrentUserVariable({maxDepth:1,uiSchema:t,collectionField:o,noDisabled:r,targetFieldSchema:i}),{currentRecordSettings:c}=useCurrentRecordVariable({schema:t,collectionField:o,noDisabled:r,targetFieldSchema:i});return{compatOldVariables:(0,import_react2.useCallback)((u,{value:m})=>{if(!isVariable$1(m))return u;u=[...u];const d={value:"$system",key:"$system",label:a("System variables"),isLeaf:!1,children:[{value:"now",key:"now",label:a("Current time"),isLeaf:!0,depth:1}],depth:0},p={value:"currentTime",label:a("Current time"),children:null};if(m.includes("$system")&&u.push(d),m.includes(`${n}.`)){const h=u.find(g=>g.value==="$nForm"||g.value==="$nRecord");h&&(h.value=n)}if(m.includes("$form")){const h=u.find(g=>g.value==="$nForm");h&&(h.value="$form")}if(m.includes("currentUser")){const h=u.find(g=>g.value==="$user");h?h.value="currentUser":u.unshift(P(x({},l),{value:"currentUser"}))}if(m.includes("currentRecord")){const h=u.find(g=>g.value==="$nRecord");h?h.value="currentRecord":u.unshift(P(x({},c),{value:"currentRecord"}))}if(m.includes("currentTime")&&u.push(p),m.includes("$date")){const h=u.find(g=>g.value==="$nDate");h&&(h.value="$date")}return u},[n])}}const SchemaSettingsDataScope=function(e){const{t}=(0,import_react_i18next.useTranslation)(),{getFields:o}=useCollectionFilterOptionsV2(e.collectionName),r=useRecord(),{form:i}=useFormBlockContext(),n=useVariables$1(),a=useLocalVariables$1(),{getAllCollectionsInheritChain:l}=useCollectionManager_deprecated(),{isInSubForm:c,isInSubTable:u}=useFlag()||{},m=useBlockContext==null?void 0:useBlockContext(),d=(0,import_react2.useCallback)(h=>(0,import_jsx_runtime.jsx)(DatePickerProvider,{value:{utc:!1},children:(0,import_jsx_runtime.jsx)(VariableInput,P(x({},h),{form:i,record:r,noDisabled:!0,shouldChange:getShouldChange({collectionField:h.collectionField,variables:n,localVariables:a,getAllCollectionsInheritChain:l})}))}),[i,l,a,r,n]),p=()=>({type:"object",title:t("Set the data scope"),properties:{filter:{enum:e.collectionFilterOption||o(),"x-decorator":h=>(0,import_jsx_runtime.jsx)(BaseVariableProvider,P(x({},h),{children:(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:c,isInSubTable:u,children:(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:{name:i?"form":m==null?void 0:m.name},children:h.children})})})),"x-decorator-props":{isDisabled},"x-component":"Filter","x-component-props":{collectionName:e.collectionName,dynamicComponent:e.dynamicComponent||d}}}});return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:t("Set the data scope"),initialValues:{filter:e.defaultFilter},schema:p,onSubmit:e.onSubmit,noRecord:e.noRecord})};function isDisabled(e){var t,o;const{option:r,collectionField:i,uiSchema:n}=e;return!n||!i?!0:i.interface==="json"||r.target?!1:["input","markdown","richText","textarea","username"].includes(i.interface)?!["string","number"].includes((t=r.schema)==null?void 0:t.type):i.interface&&r.interface?i.interface!==r.interface:(n==null?void 0:n["x-component"])!==((o=r.schema)==null?void 0:o["x-component"])}const SchemaSettingsDateFormat=function(e){var t,o,r,i,n,a,l,c,u,m,d,p;const{fieldSchema:h}=e,g=(0,import_react.useField)(),{dn:_}=useDesignable(),{t:f}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:v}=useCollectionManager_deprecated(),b=v(h==null?void 0:h["x-collection-field"])||{},S=(t=h==null?void 0:h["x-component-props"])==null?void 0:t.showTime,C=((o=h==null?void 0:h["x-component-props"])==null?void 0:o.dateFormat)||((i=(r=b==null?void 0:b.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.dateFormat)||"YYYY-MM-DD",y=((n=h==null?void 0:h["x-component-props"])==null?void 0:n.timeFormat)||((l=(a=b==null?void 0:b.uiSchema)==null?void 0:a["x-component-props"])==null?void 0:l.timeFormat)||"HH:mm:ss",F=((c=h==null?void 0:h["x-component-props"])==null?void 0:c.picker)||((m=(u=b==null?void 0:b.uiSchema)==null?void 0:u["x-component-props"])==null?void 0:m.picker)||"date",I=h["x-read-pretty"]||g.readOnly||g.readPretty;return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:f("Date display format"),scope:{getPickerFormat:import_client.getPickerFormat},schema:{type:"object",properties:{picker:{type:"string",title:'{{t("Picker")}}',"x-decorator":"FormItem","x-component":"Radio.Group",default:F,description:!I&&'{{ t("Switching the picker, the value and default value will be cleared") }}',enum:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}]},dateFormat:{type:"string",title:'{{t("Date format")}}',"x-component":ExpiresRadio,"x-decorator":"FormItem","x-decorator-props":{},"x-component-props":{className:import_css.css`
|
|
275
275
|
.ant-radio-wrapper {
|
|
276
276
|
display: flex;
|
|
277
277
|
margin: 5px 0px;
|
|
@@ -517,7 +517,7 @@ ${JSON.stringify(O,null,2)}`)},[u,c,l,i,r,I,t,a,n,g,o,_,S,T,C,y,h]),N=(0,import_
|
|
|
517
517
|
& > .ant-space-item:last-child {
|
|
518
518
|
flex-shrink: 0;
|
|
519
519
|
}
|
|
520
|
-
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":o,"x-component-props":{placeholder:'{{t("Value")}}',useTypedConstant:!0,changeOnSelect:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},"x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}}),[o]),l=(0,import_react2.useMemo)(()=>({type:"boolean","x-content":e("Open in new window"),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}}}),[e]);return{urlSchema:r,paramsSchema:a,openInNewWindowSchema:l,modeSchema:i,htmlSchema:n}},LinkMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),{urlSchema:n,paramsSchema:a,openInNewWindowSchema:l}=useURLAndHTMLSchema(),c=useParentRoute(),{createRoute:u}=useNocoBaseRoutes(),m=useDataSourceManager(),d=useCollectionManager(),p=(0,import_react2.useCallback)(()=>z(void 0,null,function*(){const h=yield FormDialog(e("Add link"),()=>{var S;const C=(0,import_history.createMemoryHistory)();return(0,import_jsx_runtime.jsx)(DataSourceManagerProvider,{dataSourceManager:m,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{instance:d,dataSource:(S=d==null?void 0:d.dataSource)==null?void 0:S.key,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.Router,{location:C.location,navigator:C,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"},href:n,params:a,openInNewWindow:l}}})})})})})})},o).open({initialValues:{openInNewWindow:!0}}),{title:g,href:_,params:f,icon:v,openInNewWindow:b}=h;yield u({type:NocoBaseDesktopRouteType.link,title:g,icon:v,parentId:c==null?void 0:c.id,options:{href:_,params:f,openInNewWindow:b}})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Link"),onClick:p,className:`${r} ${i}`})},useInsertPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>z(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},PageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:a}=useNocoBaseRoutes(),l=useInsertPageSchema(),c=(0,import_react2.useCallback)(()=>z(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})}),o).open({initialValues:{}}),m=(0,import_shared.uid)(),d=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield a({type:NocoBaseDesktopRouteType.page,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:d,menuSchemaUid:m,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),l(getPageMenuSchema({pageSchemaUid:d,tabSchemaUid:p,tabSchemaName:h}))}),[a,l,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Page"),onClick:c,className:`${r} ${i}`})};function getPageMenuSchema({pageSchemaUid:e,tabSchemaUid:t,tabSchemaName:o}){return{type:"void","x-component":"Page",properties:{[o]:{type:"void","x-component":"Grid","x-initializer":"page:addBlock",properties:{},"x-uid":t,"x-async":!0}},"x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:a}=useNocoBaseRoutes(),l=(0,import_react2.useCallback)(()=>z(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})}),o).open({initialValues:{}}),{title:u,icon:m}=c,d=(0,import_shared.uid)();yield a({type:NocoBaseDesktopRouteType.group,title:u,icon:m,parentId:n==null?void 0:n.id,schemaUid:d})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:l,className:`${r} ${i}`})},menuItemInitializer_deprecated=new SchemaInitializer({name:"MenuItemInitializers",insertPosition:"beforeEnd",icon:"PlusOutlined",title:'{{t("Add menu item")}}',style:{width:"100%"},items:[{name:"group",Component:GroupItem$1},{name:"page",Component:PageMenuItem},{name:"link",Component:LinkMenuItem}]}),menuItemInitializer=new SchemaInitializer({name:"menuInitializers:menuItem",insertPosition:"beforeEnd",icon:"PlusOutlined",title:'{{t("Add menu item")}}',items:[{name:"group",Component:GroupItem$1},{name:"page",Component:PageMenuItem},{name:"link",Component:LinkMenuItem}]}),useMenuTranslation=()=>(0,import_react_i18next.useTranslation)("lm-desktop-routes"),components$5={TreeSelect:import_antd_v5.TreeSelect},toItems$2=(e,{t,compile:o})=>{var r;const i=[];for(const n of e){if(n.type===NocoBaseDesktopRouteType.tabs)continue;const a={label:isVariable$1(n.title)?o(n.title):t(n.title),value:`${n.id}||${n.type}`};((r=n.children)==null?void 0:r.length)>0&&(a.children=toItems$2(n.children,{t,compile:o})),i.push(a)}return i},insertPositionToMethod$1={beforeBegin:"insertBefore",afterEnd:"insertAfter"},findPrevSibling=(e,t)=>{if(t)for(let o=0;o<e.length;o++){const r=e[o];if(r.id===t.id)return e[o-1];if(r.children){const i=findPrevSibling(r.children,t);if(i)return i}}},findNextSibling=(e,t)=>{if(t)for(let o=0;o<e.length;o++){const r=e[o];if(r.id===t.id)return e[o+1];if(r.children){const i=findNextSibling(r.children,t);if(i)return i}}},RemoveRoute=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),{modal:t}=import_antd.App.useApp(),{deleteRoute:o}=useNocoBaseRoutes(),r=useCurrentRoute(),{allAccessRoutes:i}=useAllAccessDesktopRoutes(),n=useNavigateNoUpdate(),a=useCurrentPageUid();return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:"Delete",eventKey:"remove",onClick:()=>{t.confirm({title:e("Delete menu item"),content:e("Are you sure you want to delete it?"),onOk:()=>z(void 0,null,function*(){if((r==null?void 0:r.id)!=null&&(yield o(r.id)),a!==(r==null?void 0:r.schemaUid)&&!findRouteBySchemaUid(a,r==null?void 0:r.children))return;const l=findPrevSibling(i,r),c=findNextSibling(i,r);n(l||c?`/admin/${(l==null?void 0:l.schemaUid)||(c==null?void 0:c.schemaUid)}`:"/")})})},children:e("Delete")})},InsertMenuItems$1=e=>{const{eventKey:t,title:o,insertPosition:r}=e,{t:i}=(0,import_react_i18next.useTranslation)(),{urlSchema:n,paramsSchema:a,openInNewWindowSchema:l}=useURLAndHTMLSchema(),c=useCurrentRoute(),u=(c==null?void 0:c.type)===NocoBaseDesktopRouteType.group,{createRoute:m,moveRoute:d}=useNocoBaseRoutes(),p=useInsertPageSchema();return!u&&r==="beforeEnd"?null:(0,import_jsx_runtime.jsxs)(SchemaSettingsSubMenu,{eventKey:t,title:o,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{eventKey:`${r}group`,title:i("Group"),schema:{type:"object",title:i("Add group"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:i("Menu item title"),required:!0,"x-component-props":{}},icon:{title:i("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}},onSubmit:h=>z(void 0,[h],function*({title:g,icon:_}){var f;const v=(0,import_shared.uid)(),b=r==="beforeEnd"?c==null?void 0:c.id:c==null?void 0:c.parentId,{data:S}=yield m({type:NocoBaseDesktopRouteType.group,title:g,icon:_,parentId:b||void 0,schemaUid:v});insertPositionToMethod$1[r]&&(yield d({sourceId:(f=S==null?void 0:S.data)==null?void 0:f.id,targetId:c==null?void 0:c.id,sortField:"sort",method:insertPositionToMethod$1[r]}))})}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{eventKey:`${r}page`,title:i("Page"),schema:{type:"object",title:i("Add page"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:i("Menu item title"),required:!0,"x-component-props":{}},icon:{title:i("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}},onSubmit:h=>z(void 0,[h],function*({title:g,icon:_}){var f;const v=(0,import_shared.uid)(),b=(0,import_shared.uid)(),S=(0,import_shared.uid)(),C=(0,import_shared.uid)(),y=r==="beforeEnd"?c==null?void 0:c.id:c==null?void 0:c.parentId,{data:F}=yield m({type:NocoBaseDesktopRouteType.page,title:g,icon:_,parentId:y||void 0,schemaUid:b,menuSchemaUid:v,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:S,tabSchemaName:C,hidden:!0}]});insertPositionToMethod$1[r]&&(yield d({sourceId:(f=F==null?void 0:F.data)==null?void 0:f.id,targetId:c==null?void 0:c.id,sortField:"sort",method:insertPositionToMethod$1[r]})),p(getPageMenuSchema({pageSchemaUid:b,tabSchemaUid:S,tabSchemaName:C}))})}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{eventKey:`${r}link`,title:i("Link"),schema:{type:"object",title:i("Add link"),properties:{title:{title:i("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:i("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"},href:n,params:a,openInNewWindow:l}},onSubmit:h=>z(void 0,[h],function*({title:g,icon:_,href:f,params:v,openInNewWindow:b}){var S;const C=(0,import_shared.uid)(),y=r==="beforeEnd"?c==null?void 0:c.id:c==null?void 0:c.parentId,{data:F}=yield m({type:NocoBaseDesktopRouteType.link,title:g,icon:_,parentId:y||void 0,schemaUid:C,options:{href:f,params:v,openInNewWindow:b}});insertPositionToMethod$1[r]&&(yield d({sourceId:(S=F==null?void 0:F.data)==null?void 0:S.id,targetId:c==null?void 0:c.id,sortField:"sort",method:insertPositionToMethod$1[r]}))})})]})},EditMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useMemo)(()=>({type:"object",title:e("Edit menu item"),properties:{title:{title:e("Menu item title"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}},icon:{title:e("Menu item icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}),[e]),o=useCurrentRoute(),{urlSchema:r,paramsSchema:i,openInNewWindowSchema:n}=useURLAndHTMLSchema(),a=(0,import_react2.useMemo)(()=>({title:o.title,icon:o.icon}),[o.title,o.icon]);o.type===NocoBaseDesktopRouteType.link&&(t.properties.href=r,t.properties.params=i,t.properties.openInNewWindow=n,a.href=o.options.href,a.params=o.options.params,a.openInNewWindow=o.options.openInNewWindow!==!1);const{updateRoute:l}=useNocoBaseRoutes(),c=(0,import_react2.useCallback)(({title:u,icon:m,href:d,params:p,openInNewWindow:h})=>{o.id!==void 0&&l(o.id,{title:u,icon:m,options:d||p?{href:d,params:p,openInNewWindow:h}:void 0})},[]);return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:e("Edit"),eventKey:"edit",schema:t,initialValues:a,onSubmit:c})},HiddenMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useCurrentRoute(),{updateRoute:o}=useNocoBaseRoutes(),{modal:r}=import_antd.App.useApp();return(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:e("Hidden"),checked:t.hideInMenu,onChange:i=>{r.confirm({title:e("Are you sure you want to hide this menu?"),icon:(0,import_jsx_runtime.jsx)(import_icons.ExclamationCircleFilled,{}),content:e("After hiding, this menu will no longer appear in the menu bar. To show it again, you need to go to the route management page to configure it."),onOk(){return z(this,null,function*(){t.id!==void 0&&(yield o(t.id,{hideInMenu:!!i}))})}})}})},MoveToMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useCallback)(u=>{(0,import_core.onFieldChange)("target",m=>{var d,p;const[,h]=((p=(d=m==null?void 0:m.value)==null?void 0:d.split)==null?void 0:p.call(d,"||"))||[];m.query("position").take(g=>{g.dataSource=h===NocoBaseDesktopRouteType.group?[{label:e("Before"),value:"beforeBegin"},{label:e("After"),value:"afterEnd"},{label:e("Inner"),value:"beforeEnd"}]:[{label:e("Before"),value:"beforeBegin"},{label:e("After"),value:"afterEnd"}]})})},[e]),o=useCompile(),{allAccessRoutes:r}=useAllAccessDesktopRoutes(),i=(0,import_react2.useMemo)(()=>[...toItems$2(r,{t:e,compile:o}),{label:"",value:"",disabled:!0},{label:"",value:"",disabled:!0}],[]),n=(0,import_react2.useMemo)(()=>({type:"object",title:e("Move to"),properties:{target:{title:e("Target"),enum:i,required:!0,"x-decorator":"FormItem","x-component":"TreeSelect","x-component-props":{}},position:{title:e("Position"),required:!0,enum:[{label:e("Before"),value:"beforeBegin"},{label:e("After"),value:"afterEnd"}],default:"afterEnd","x-component":"Radio.Group","x-decorator":"FormItem"}}}),[i,e]),{moveRoute:a}=useNocoBaseRoutes(),l=useCurrentRoute(),c=(0,import_react2.useCallback)(u=>z(void 0,[u],function*({target:m,position:d}){var p;const[h]=((p=m==null?void 0:m.split)==null?void 0:p.call(m,"||"))||[];if(!h||h===void 0||!l)return;const g={beforeBegin:"insertBefore",afterEnd:"insertAfter"},_=d==="beforeEnd"?{targetScope:{parentId:h}}:{targetId:h};yield a(x({sourceId:l.id,sortField:"sort",method:g[d]},_))}),[l,a]);return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:e("Move to"),eventKey:"move-to",components:components$5,effects:t,schema:n,onSubmit:c})},EditTooltip$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useCurrentRoute(),{updateRoute:o}=useNocoBaseRoutes(),r=(0,import_react2.useMemo)(()=>({type:"object",title:e("Edit tooltip"),properties:{tooltip:{"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}}),[e]),i=(0,import_react2.useMemo)(()=>({tooltip:t.tooltip}),[t.tooltip]),n=(0,import_react2.useCallback)(({tooltip:a})=>{t.id!==void 0&&o(t.id,{tooltip:a})},[t.id,o]);return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:e("Edit tooltip"),eventKey:"edit-tooltip",schema:r,initialValues:i,onSubmit:n})},menuItemSettings=new SchemaSettings({name:"menuSettings:menuItem",items:[{name:"edit",Component:EditMenuItem},{name:"editTooltip",Component:EditTooltip$1},{name:"hidden",Component:HiddenMenuItem},{name:"moveTo",Component:MoveToMenuItem},{name:"divider",type:"divider"},{name:"insertbeforeBegin",Component:()=>{const{t:e}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(InsertMenuItems$1,{eventKey:"insertbeforeBegin",title:e("Insert before"),insertPosition:"beforeBegin"})}},{name:"insertafterEnd",Component:()=>{const{t:e}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(InsertMenuItems$1,{eventKey:"insertafterEnd",title:e("Insert after"),insertPosition:"afterEnd"})}},{name:"insertbeforeEnd",Component:()=>{const{t:e}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(InsertMenuItems$1,{eventKey:"insertbeforeEnd",title:e("Insert inner"),insertPosition:"beforeEnd"})}},{name:"divider",type:"divider"},{name:"delete",sort:100,Component:RemoveRoute}]}),iconStyle=import_css.css`
|
|
520
|
+
`},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":o,"x-component-props":{placeholder:'{{t("Value")}}',useTypedConstant:!0,changeOnSelect:!0}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},"x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}}),[o]),l=(0,import_react2.useMemo)(()=>({type:"boolean","x-content":e("Open in new window"),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}}}),[e]);return{urlSchema:r,paramsSchema:a,openInNewWindowSchema:l,modeSchema:i,htmlSchema:n}},LinkMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),{urlSchema:n,paramsSchema:a,openInNewWindowSchema:l}=useURLAndHTMLSchema(),c=useParentRoute(),{createRoute:u}=useNocoBaseRoutes(),m=useDataSourceManager(),d=useCollectionManager(),p=(0,import_react2.useCallback)(()=>z(void 0,null,function*(){const h=yield FormDialog(e("Add link"),()=>{var S;const C=(0,import_history.createMemoryHistory)();return(0,import_jsx_runtime.jsx)(DataSourceManagerProvider,{dataSourceManager:m,children:(0,import_jsx_runtime.jsx)(CollectionManagerProvider,{instance:d,dataSource:(S=d==null?void 0:d.dataSource)==null?void 0:S.key,children:(0,import_jsx_runtime.jsx)(import_react_router_dom.Router,{location:C.location,navigator:C,children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"},href:n,params:a,openInNewWindow:l}}})})})})})})},o).open({initialValues:{openInNewWindow:!0}}),{title:g,href:_,params:f,icon:v,openInNewWindow:b}=h;yield u({type:NocoBaseDesktopRouteType.link,title:g,icon:v,parentId:c==null?void 0:c.id,options:{href:_,params:f,openInNewWindow:b}})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Link"),onClick:p,className:`${r} ${i}`})},useInsertPageSchema=()=>{const e=useAPIClient();return(0,import_react2.useCallback)(t=>z(void 0,null,function*(){yield e.request({method:"POST",url:"/uiSchemas:insert",data:t})}),[e])},PageMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:a}=useNocoBaseRoutes(),l=useInsertPageSchema(),c=(0,import_react2.useCallback)(()=>z(void 0,null,function*(){const u=yield FormDialog(e("Add page"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})}),o).open({initialValues:{}}),m=(0,import_shared.uid)(),d=(0,import_shared.uid)(),p=(0,import_shared.uid)(),h=(0,import_shared.uid)();yield a({type:NocoBaseDesktopRouteType.page,title:u.title,icon:u.icon,parentId:n==null?void 0:n.id,schemaUid:d,menuSchemaUid:m,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:p,tabSchemaName:h,hidden:!0}]}),l(getPageMenuSchema({pageSchemaUid:d,tabSchemaUid:p,tabSchemaName:h}))}),[a,l,t==null?void 0:t.components,t==null?void 0:t.scope,n==null?void 0:n.id,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Page"),onClick:c,className:`${r} ${i}`})};function getPageMenuSchema({pageSchemaUid:e,tabSchemaUid:t,tabSchemaName:o}){return{type:"void","x-component":"Page",properties:{[o]:{type:"void","x-component":"Grid","x-initializer":"page:addBlock",properties:{},"x-uid":t,"x-async":!0}},"x-uid":e}}const GroupItem$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useContext)(import_react.SchemaOptionsContext),{theme:o}=useGlobalTheme(),{componentCls:r,hashId:i}=useStyles$h(),n=useParentRoute(),{createRoute:a}=useNocoBaseRoutes(),l=(0,import_react2.useCallback)(()=>z(void 0,null,function*(){const c=yield FormDialog(e("Add group"),()=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:t.scope,components:x({},t.components),children:(0,import_jsx_runtime.jsx)(import_antd_v5.FormLayout,{layout:"vertical",children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:{properties:{title:{title:e("Menu item title"),"x-component":"Input","x-decorator":"FormItem",required:!0},icon:{title:e("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}})})}),o).open({initialValues:{}}),{title:u,icon:m}=c,d=(0,import_shared.uid)();yield a({type:NocoBaseDesktopRouteType.group,title:u,icon:m,parentId:n==null?void 0:n.id,schemaUid:d})}),[t.components,t.scope,e,o]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,{title:e("Group"),onClick:l,className:`${r} ${i}`})},menuItemInitializer_deprecated=new SchemaInitializer({name:"MenuItemInitializers",insertPosition:"beforeEnd",icon:"PlusOutlined",title:'{{t("Add menu item")}}',style:{width:"100%"},items:[{name:"group",Component:GroupItem$1},{name:"page",Component:PageMenuItem},{name:"link",Component:LinkMenuItem}]}),menuItemInitializer=new SchemaInitializer({name:"menuInitializers:menuItem",insertPosition:"beforeEnd",icon:"PlusOutlined",title:'{{t("Add menu item")}}',items:[{name:"group",Component:GroupItem$1},{name:"page",Component:PageMenuItem},{name:"link",Component:LinkMenuItem}]}),useMenuTranslation=()=>(0,import_react_i18next.useTranslation)("lm-desktop-routes"),components$5={TreeSelect:import_antd_v5.TreeSelect},toItems$2=(e,{t,compile:o})=>{var r;const i=[];for(const n of e){if(n.type===NocoBaseDesktopRouteType.tabs)continue;const a={label:isVariable$1(n.title)?o(n.title):t(n.title),value:`${n.id}||${n.type}`};((r=n.children)==null?void 0:r.length)>0&&(a.children=toItems$2(n.children,{t,compile:o})),i.push(a)}return i},insertPositionToMethod$1={beforeBegin:"insertBefore",afterEnd:"insertAfter"},findPrevSibling=(e,t)=>{if(t)for(let o=0;o<e.length;o++){const r=e[o];if(r.id===t.id)return e[o-1];if(r.children){const i=findPrevSibling(r.children,t);if(i)return i}}},findNextSibling=(e,t)=>{if(t)for(let o=0;o<e.length;o++){const r=e[o];if(r.id===t.id)return e[o+1];if(r.children){const i=findNextSibling(r.children,t);if(i)return i}}},RemoveRoute=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),{modal:t}=import_antd.App.useApp(),{deleteRoute:o}=useNocoBaseRoutes(),r=useCurrentRoute(),{allAccessRoutes:i}=useAllAccessDesktopRoutes(),n=useNavigateNoUpdate(),a=useCurrentPageUid();return(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:"Delete",eventKey:"remove",onClick:()=>{t.confirm({title:e("Delete menu item"),content:e("Are you sure you want to delete it?"),onOk:()=>z(void 0,null,function*(){if((r==null?void 0:r.id)!=null&&(yield o(r.id)),a!==(r==null?void 0:r.schemaUid)&&!findRouteBySchemaUid(a,r==null?void 0:r.children))return;const l=findPrevSibling(i,r),c=findNextSibling(i,r);n(l||c?`/admin/${(l==null?void 0:l.schemaUid)||(c==null?void 0:c.schemaUid)}`:"/")})})},children:e("Delete")})},InsertMenuItems$1=e=>{const{eventKey:t,title:o,insertPosition:r}=e,{t:i}=(0,import_react_i18next.useTranslation)(),{urlSchema:n,paramsSchema:a,openInNewWindowSchema:l}=useURLAndHTMLSchema(),c=useCurrentRoute(),u=(c==null?void 0:c.type)===NocoBaseDesktopRouteType.group,{createRoute:m,moveRoute:d}=useNocoBaseRoutes(),p=useInsertPageSchema();return!u&&r==="beforeEnd"?null:(0,import_jsx_runtime.jsxs)(SchemaSettingsSubMenu,{eventKey:t,title:o,children:[(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{eventKey:`${r}group`,title:i("Group"),schema:{type:"object",title:i("Add group"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:i("Menu item title"),required:!0,"x-component-props":{}},icon:{title:i("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}},onSubmit:h=>z(void 0,[h],function*({title:g,icon:_}){var f;const v=(0,import_shared.uid)(),b=r==="beforeEnd"?c==null?void 0:c.id:c==null?void 0:c.parentId,{data:S}=yield m({type:NocoBaseDesktopRouteType.group,title:g,icon:_,parentId:b||void 0,schemaUid:v});insertPositionToMethod$1[r]&&(yield d({sourceId:(f=S==null?void 0:S.data)==null?void 0:f.id,targetId:c==null?void 0:c.id,sortField:"sort",method:insertPositionToMethod$1[r]}))})}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{eventKey:`${r}page`,title:i("Page"),schema:{type:"object",title:i("Add page"),properties:{title:{"x-decorator":"FormItem","x-component":"Input",title:i("Menu item title"),required:!0,"x-component-props":{}},icon:{title:i("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}},onSubmit:h=>z(void 0,[h],function*({title:g,icon:_}){var f;const v=(0,import_shared.uid)(),b=(0,import_shared.uid)(),S=(0,import_shared.uid)(),C=(0,import_shared.uid)(),y=r==="beforeEnd"?c==null?void 0:c.id:c==null?void 0:c.parentId,{data:F}=yield m({type:NocoBaseDesktopRouteType.page,title:g,icon:_,parentId:y||void 0,schemaUid:b,menuSchemaUid:v,enableTabs:!1,children:[{type:NocoBaseDesktopRouteType.tabs,schemaUid:S,tabSchemaName:C,hidden:!0}]});insertPositionToMethod$1[r]&&(yield d({sourceId:(f=F==null?void 0:F.data)==null?void 0:f.id,targetId:c==null?void 0:c.id,sortField:"sort",method:insertPositionToMethod$1[r]})),p(getPageMenuSchema({pageSchemaUid:b,tabSchemaUid:S,tabSchemaName:C}))})}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{eventKey:`${r}link`,title:i("Link"),schema:{type:"object",title:i("Add link"),properties:{title:{title:i("Menu item title"),required:!0,"x-component":"Input","x-decorator":"FormItem"},icon:{title:i("Icon"),"x-component":"IconPicker","x-decorator":"FormItem"},href:n,params:a,openInNewWindow:l}},onSubmit:h=>z(void 0,[h],function*({title:g,icon:_,href:f,params:v,openInNewWindow:b}){var S;const C=(0,import_shared.uid)(),y=r==="beforeEnd"?c==null?void 0:c.id:c==null?void 0:c.parentId,{data:F}=yield m({type:NocoBaseDesktopRouteType.link,title:g,icon:_,parentId:y||void 0,schemaUid:C,options:{href:f,params:v,openInNewWindow:b}});insertPositionToMethod$1[r]&&(yield d({sourceId:(S=F==null?void 0:F.data)==null?void 0:S.id,targetId:c==null?void 0:c.id,sortField:"sort",method:insertPositionToMethod$1[r]}))})})]})},EditMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=(0,import_react2.useMemo)(()=>({type:"object",title:e("Edit menu item"),properties:{title:{title:e("Menu item title"),required:!0,"x-decorator":"FormItem","x-component":"Input","x-component-props":{}},icon:{title:e("Menu item icon"),"x-component":"IconPicker","x-decorator":"FormItem"}}}),[e]),o=useCurrentRoute(),{urlSchema:r,paramsSchema:i,openInNewWindowSchema:n}=useURLAndHTMLSchema(),a=(0,import_react2.useMemo)(()=>({title:o.title,icon:o.icon}),[o.title,o.icon]);o.type===NocoBaseDesktopRouteType.link&&(t.properties.href=r,t.properties.params=i,t.properties.openInNewWindow=n,a.href=o.options.href,a.params=o.options.params,a.openInNewWindow=o.options.openInNewWindow!==!1);const{updateRoute:l}=useNocoBaseRoutes(),c=(0,import_react2.useCallback)(({title:u,icon:m,href:d,params:p,openInNewWindow:h})=>{o.id!==void 0&&l(o.id,{title:u,icon:m,options:d||p?{href:d,params:p,openInNewWindow:h}:void 0})},[]);return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:e("Edit"),eventKey:"edit",schema:t,initialValues:a,onSubmit:c})},HiddenMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useCurrentRoute(),{updateRoute:o}=useNocoBaseRoutes(),{modal:r}=import_antd.App.useApp();return(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:e("Hidden"),checked:t.hideInMenu,onChange:i=>{r.confirm({title:e("Are you sure you want to hide this menu?"),icon:(0,import_jsx_runtime.jsx)(import_icons.ExclamationCircleFilled,{}),content:e("After hiding, this menu will no longer appear in the menu bar. To show it again, you need to go to the route management page to configure it."),onOk(){return z(this,null,function*(){t.id!==void 0&&(yield o(t.id,{hideInMenu:!!i}))})}})}})},MoveToMenuItem=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useCurrentRoute(),o=(0,import_react2.useCallback)(u=>{(0,import_core.onFieldChange)("target",m=>{var d,p;const[h,g]=((p=(d=m==null?void 0:m.value)==null?void 0:d.split)==null?void 0:p.call(d,"||"))||[];m.query("position").take(_=>{_.dataSource=g===NocoBaseDesktopRouteType.group?[{label:e("Before"),value:"beforeBegin"},{label:e("After"),value:"afterEnd"},{label:e("Inner"),value:"beforeEnd",disabled:(t==null?void 0:t.id)==h}]:[{label:e("Before"),value:"beforeBegin"},{label:e("After"),value:"afterEnd"}]})})},[e]),r=useCompile(),{allAccessRoutes:i}=useAllAccessDesktopRoutes(),n=(0,import_react2.useMemo)(()=>[...toItems$2(i,{t:e,compile:r}),{label:"",value:"",disabled:!0},{label:"",value:"",disabled:!0}],[]),a=(0,import_react2.useMemo)(()=>({type:"object",title:e("Move to"),properties:{target:{title:e("Target"),enum:n,required:!0,"x-decorator":"FormItem","x-component":"TreeSelect","x-component-props":{}},position:{title:e("Position"),required:!0,enum:[{label:e("Before"),value:"beforeBegin"},{label:e("After"),value:"afterEnd"}],default:"afterEnd","x-component":"Radio.Group","x-decorator":"FormItem"}}}),[n,e]),{moveRoute:l}=useNocoBaseRoutes(),c=(0,import_react2.useCallback)(u=>z(void 0,[u],function*({target:m,position:d}){var p;const[h]=((p=m==null?void 0:m.split)==null?void 0:p.call(m,"||"))||[];if(!h||h===void 0||!t)return;const g={beforeBegin:"insertBefore",afterEnd:"insertAfter"},_=d==="beforeEnd"?{targetScope:{parentId:h}}:{targetId:h};yield l(x({sourceId:t.id,sortField:"sort",method:g[d]},_))}),[t,l]);return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:e("Move to"),eventKey:"move-to",components:components$5,effects:o,schema:a,onSubmit:c})},EditTooltip$1=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useCurrentRoute(),{updateRoute:o}=useNocoBaseRoutes(),r=(0,import_react2.useMemo)(()=>({type:"object",title:e("Edit tooltip"),properties:{tooltip:{"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{}}}}),[e]),i=(0,import_react2.useMemo)(()=>({tooltip:t.tooltip}),[t.tooltip]),n=(0,import_react2.useCallback)(({tooltip:a})=>{t.id!==void 0&&o(t.id,{tooltip:a})},[t.id,o]);return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:e("Edit tooltip"),eventKey:"edit-tooltip",schema:r,initialValues:i,onSubmit:n})},menuItemSettings=new SchemaSettings({name:"menuSettings:menuItem",items:[{name:"edit",Component:EditMenuItem},{name:"editTooltip",Component:EditTooltip$1},{name:"hidden",Component:HiddenMenuItem},{name:"moveTo",Component:MoveToMenuItem},{name:"divider",type:"divider"},{name:"insertbeforeBegin",Component:()=>{const{t:e}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(InsertMenuItems$1,{eventKey:"insertbeforeBegin",title:e("Insert before"),insertPosition:"beforeBegin"})}},{name:"insertafterEnd",Component:()=>{const{t:e}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(InsertMenuItems$1,{eventKey:"insertafterEnd",title:e("Insert after"),insertPosition:"afterEnd"})}},{name:"insertbeforeEnd",Component:()=>{const{t:e}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(InsertMenuItems$1,{eventKey:"insertbeforeEnd",title:e("Insert inner"),insertPosition:"beforeEnd"})}},{name:"divider",type:"divider"},{name:"delete",sort:100,Component:RemoveRoute}]}),iconStyle=import_css.css`
|
|
521
521
|
.anticon {
|
|
522
522
|
line-height: 16px !important;
|
|
523
523
|
}
|
|
@@ -622,7 +622,7 @@ ${JSON.stringify(O,null,2)}`)},[u,c,l,i,r,I,t,a,n,g,o,_,S,T,C,y,h]),N=(0,import_
|
|
|
622
622
|
}
|
|
623
623
|
}
|
|
624
624
|
`),footer:S?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:h.address,schema:p,onlyRenderProperties:!0,filterProperties:F=>F["x-component"]===o}):!1,children:y?(0,import_jsx_runtime.jsx)(ActionModalContent,{footerNodeName:o,field:h,schema:p}):(0,import_jsx_runtime.jsx)(import_antd.Skeleton,{active:!0,paragraph:{rows:6}})}))}))})})},{displayName:"ActionModal"}),ActionModal=e=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ModalErrorFallback,onError:console.log,children:(0,import_jsx_runtime.jsx)(InternalActionModal,x({},e))});ActionModal.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionModal.Footer"});ActionModal.FootBar=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)("div",{className:"ant-modal-footer",children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})})},{displayName:"ActionModal.FootBar"});const useBackButton=()=>{const{setVisible:e}=useActionContext();return{goBack:(0,import_react2.useCallback)(()=>{e==null||e(!1)},[e])}},BackButtonUsedInSubPage=()=>{const{token:e}=useToken(),{goBack:t}=useBackButton(),o=32,r=(0,import_react2.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:e.paddingXS,marginRight:o-e.paddingXS}),[e.paddingXS]);return(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":"back-button",type:"text",icon:(0,import_jsx_runtime.jsx)(import_icons.ArrowLeftOutlined,{}),style:r,onClick:t})},useActionPageStyle=genStyleHook("nb-action-page",e=>{const{componentCls:t}=e;return{[t]:{position:"absolute !important",top:0,left:0,right:0,bottom:0,backgroundColor:e.colorBgLayout,overflowX:"hidden",overflowY:"auto",".ant-tabs-nav":{background:e.colorBgContainer,padding:`0 ${e.paddingPageVertical}px`,marginBottom:0},".ant-tabs-content-holder":{padding:`${e.paddingPageVertical}px`,paddingBottom:"0px"}}}}),usePopupOrSubpagesContainerDOM=()=>{const e=(0,import_react2.useMemo)(()=>document.querySelector(".nb-subpages-slot-without-header-and-side"),[]);return{getContainerDOM:(0,import_react2.useCallback)(()=>e,[e])}},ActionPageContent=import_react2.default.memo(({schema:e})=>{const[t,o]=(0,import_react2.useState)(!1);return(0,import_react2.useEffect)(()=>{(0,import_react2.startTransition)(()=>{o(!0)})},[]),t?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:e,onlyRenderProperties:!0}):null});function ActionPage({level:e}){const t=(0,import_react.useFieldSchema)(),o=useActionContext(),{getContainerDOM:r}=usePopupOrSubpagesContainerDOM(),{componentCls:i,hashId:n}=useActionPageStyle(),a=useTabsContext(),l=useZIndexContext(),c=(0,import_react2.useMemo)(()=>({zIndex:getZIndex("page",l,e||0)}),[l,e]);if(!o.visible)return null;const u=(0,import_jsx_runtime.jsx)("div",{className:`${i} ${n}`,style:c,children:(0,import_jsx_runtime.jsx)(ActionContextNoRerender,{children:(0,import_jsx_runtime.jsx)(TabsContextProvider,P(x({},a),{tabBarExtraContent:(0,import_jsx_runtime.jsx)(BackButtonUsedInSubPage,{}),children:(0,import_jsx_runtime.jsx)(zIndexContext.Provider,{value:c.zIndex,children:(0,import_jsx_runtime.jsx)(ActionPageContent,{schema:t})})}))})}),m=r();return(0,import_react_dom.createPortal)(u,m||document.body)}ActionPage.Footer=(0,import_react.observer)(()=>null,{displayName:"ActionPage.Footer"});const defaultContext={defaultOpenMode:"drawer",openModeToComponent:{drawer:ActionDrawer,page:ActionPage,modal:ActionModal},hideOpenMode:!1},OpenModeContext=import_react2.default.createContext(null),OpenModeProvider=e=>{const t=(0,import_react2.useMemo)(()=>{const i=x({},defaultContext);return e.defaultOpenMode!==void 0&&(i.defaultOpenMode=e.defaultOpenMode),e.openModeToComponent!==void 0&&(i.openModeToComponent=e.openModeToComponent),e.hideOpenMode!==void 0&&(i.hideOpenMode=e.hideOpenMode),e.isMobile&&(i.isMobile=e.isMobile),i},[e.defaultOpenMode,e.openModeToComponent,e.hideOpenMode]),o=(0,import_react2.useCallback)(i=>{const n=t.openModeToComponent[i];return n||console.error(`OpenModeProvider: openModeToComponent[${i}] is not defined`),n},[t]),r=(0,import_react2.useMemo)(()=>({defaultOpenMode:t.defaultOpenMode,hideOpenMode:t.hideOpenMode,getComponentByOpenMode:o,isMobile:t.isMobile}),[t.defaultOpenMode,t.hideOpenMode,o,t.isMobile]);return(0,import_jsx_runtime.jsx)(OpenModeContext.Provider,{value:r,children:e.children})},useOpenModeContext=()=>import_react2.default.useContext(OpenModeContext),SchemaInitializerItem=(0,import_react2.memo)(import_react2.default.forwardRef((e,t)=>{const{style:o,closeInitializerMenuWhenClick:r=!0,name:i=(0,import_shared.uid)(),applyMenuStyle:n=!0,className:a,disabled:l,items:c,icon:u,title:m,onClick:d,children:p}=e,h=useCompile(),g=useSchemaInitializerMenuItems(c,i,d),{componentCls:_,hashId:f}=useSchemaInitializerStyles(),{attribute:v}=useAriaAttributeOfMenuItem(),{setVisible:b}=useSchemaInitializer(),S=(0,import_react2.useMemo)(()=>{if(c&&c.length>0)return[{key:i,style:o,className:a,label:p||h(m),onClick:C=>{l||C.key!==i||(r&&(b==null||b(!1)),d==null||d(P(x({},C),{item:e})))},icon:typeof u=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:u}):u,children:g}]},[i,l,o,a,p,m,d,u,g]);return c&&c.length>0?(0,import_jsx_runtime.jsx)(SchemaInitializerMenu,{disabled:l,items:S}):(0,import_jsx_runtime.jsx)("div",{ref:t,onClick:C=>{C.stopPropagation(),r&&(b==null||b(!1)),d==null||d({event:C,item:e})},children:(0,import_jsx_runtime.jsx)("div",P(x({},v),{className:(0,import_classnames.default)({[`${_}-menu-item`]:n,[`${_}-menu-item-disabled`]:l},a),style:o,children:p||(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[typeof u=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:u}):u,(0,import_jsx_runtime.jsx)("span",{className:(0,import_classnames.default)({[`${f} ${_}-item-content`]:!!u}),children:h(m)})]})}))})}));SchemaInitializerItem.displayName="SchemaInitializerItem";const SchemaInitializerItemInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,x({},e))},switchStyle={marginLeft:20},itemStyle={display:"flex",alignItems:"center",justifyContent:"space-between"},SchemaInitializerSwitch=e=>{const t=e,{title:o,checked:r}=t,i=W(t,["title","checked"]),n=useCompile();return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,P(x({},i),{closeInitializerMenuWhenClick:!1,children:(0,import_jsx_runtime.jsxs)("div",{style:itemStyle,children:[n(o),(0,import_jsx_runtime.jsx)(import_antd.Switch,{disabled:e.disabled,style:switchStyle,size:"small",checked:r})]})}))},SchemaInitializerSwitchInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSwitch,x({},e))},SchemaInitializerChildren=e=>{const{children:t}=e;return t?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:t.sort((o,r)=>(o.sort||0)-(r.sort||0)).map((o,r)=>(0,import_jsx_runtime.jsx)(SchemaInitializerChild,x({},o),o.name||o.key||r))}):null},typeComponentMap={item:"SchemaInitializerItemInternal",itemGroup:"SchemaInitializerItemGroupInternal",divider:"SchemaInitializerDivider",switch:"SchemaInitializerSwitchInternal",subMenu:"SchemaInitializerSubMenuInternal",actionModal:"SchemaInitializerActionModalInternal"},useChildrenDefault=()=>{},useVisibleDefault=()=>!0,useComponentPropsDefault=()=>{},SchemaInitializerChild=(0,import_react2.memo)(e=>{const t=e,{type:o,Component:r,component:i,children:n,useVisible:a=useVisibleDefault,useChildren:l=useChildrenDefault,useComponentProps:c=useComponentPropsDefault,hideIfNoChildren:u,componentProps:m,sort:d}=t,p=W(t,["type","Component","component","children","useVisible","useChildren","useComponentProps","hideIfNoChildren","componentProps","sort"]),h=l(),g=c(),_=useFindComponent(),f=r||i,v=!f&&o&&typeComponentMap[o],b=(0,import_react2.useMemo)(()=>{const y=[...h||[],...n||[]];return y.length===0?void 0:y},[h,n]),S=(0,import_react2.useMemo)(()=>P(x(x(x({},p),v?g:{}),v?m:{}),{children:b}),[p,v,g,m,b]);if(!a()||!o&&!f)return null;const C=_(v?typeComponentMap[o]:f);return!C||u&&!b?null:(0,import_jsx_runtime.jsx)(SchemaInitializerItemContext.Provider,{value:S,children:(0,import_jsx_runtime.jsx)(C,P(x(x({},m),g),{children:b}))})});SchemaInitializerChild.displayName="SchemaInitializerChild";const SchemaInitializerDivider=()=>{const{token:e}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{marginTop:e.marginXXS,marginBottom:e.marginXXS}})};function getPrefixAndCompare(e,t){const o=e.replace(/-displayCollectionFields$/,""),r=t.replace(/-displayCollectionFields$/,"");return!o.includes(r)}const SearchFields=({value:e,onChange:t,name:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e),a=(0,import_react2.useRef)(""),l=(0,import_react2.useRef)(`${o||Math.random().toString(10).substr(2,9)}`);(0,import_react2.useEffect)(()=>{n(e)},[e]),(0,import_react2.useEffect)(()=>{var d;const p=()=>{var g,_;a.current&&((g=document.activeElement)==null?void 0:g.id)!==a.current.input.id&&getPrefixAndCompare((_=document.activeElement)==null?void 0:_.id,a.current.input.id)&&a.current.focus()},h=new IntersectionObserver(g=>{g.some(_=>_.isIntersecting)&&p()});return(d=a.current)!=null&&d.input&&(a.current.input.id=l.current,h.observe(a.current.input)),()=>{h.disconnect()}},[]);const c=(0,import_react2.useRef)(!1),u=d=>{c.current||(t(d.target.value),n(d.target.value))},m=d=>{d.type==="compositionend"?(c.current=!1,u(d)):c.current=!0};return(0,import_jsx_runtime.jsxs)("div",{onClick:d=>d.stopPropagation(),children:[(0,import_jsx_runtime.jsx)(import_antd.Input,{ref:a,allowClear:!0,style:{padding:"0 4px 6px 16px",boxShadow:"none"},bordered:!1,placeholder:r("Search"),defaultValue:i,onClick:d=>{d.stopPropagation()},onChange:u,onCompositionStart:m,onCompositionEnd:m,onCompositionUpdate:m}),(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}})]})};let currentName=null;const useMenuSearch$1=e=>{const{children:t,showType:o,hideSearch:r,name:i}=e,n=useCompile(),[a,l]=(0,import_react2.useState)(null),c=(d,p)=>{if(!a||a===""||currentName&¤tName!==p)return d;const h=a.toLocaleLowerCase();return d.filter(g=>(g.title||g.label)&&String(n(g.title||g.label)).toLocaleLowerCase().includes(h))},u=(d,p,h=new Set)=>{var g;const _=[];return!r&&(d.length>10||a)&&!["subMenu","itemGroup"].includes((g=d[0])==null?void 0:g.type)&&_.push(x({key:`search-${(0,import_shared.uid)()}`,Component:()=>(0,import_jsx_runtime.jsx)(SearchFields,{name:p,value:!currentName||currentName===p?a:"",onChange:f=>{currentName=p,l(f)}}),onClick({domEvent:f}){f.stopPropagation()}},o?{isMenuType:!0}:{})),d.forEach(f=>{if(!h.has(f))if(h.add(f),["subMenu","itemGroup"].includes(f.type)){const v=!currentName||currentName===f.name?c(f.children.concat(),f.name):f.children,b=u(v,f.name,h);_.push(P(x({},f),{children:b}))}else _.push(f)}),d.length===0&&_.push(x({key:"empty",style:{height:150},Component:()=>(0,import_jsx_runtime.jsx)("div",{onClick:f=>f.stopPropagation(),children:(0,import_jsx_runtime.jsx)(import_antd.Empty,{image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE})})},o?{isMenuType:!0}:{})),_},m=u(c((t==null?void 0:t.concat())||[],i),i);return t?m:void 0},SchemaInitializerItemGroup=({children:e,items:t,title:o,divider:r})=>{const i=useCompile(),{componentCls:n}=useSchemaInitializerStyles(),{token:a}=import_antd.theme.useToken();return(0,import_jsx_runtime.jsxs)("div",{style:{marginInline:a.marginXXS},children:[r&&(0,import_jsx_runtime.jsx)(SchemaInitializerDivider,{}),(0,import_jsx_runtime.jsx)("div",{className:`${n}-group-title`,children:i(o)}),(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:t||e})]})},SchemaInitializerItemGroupInternal=()=>{const e=useSchemaInitializerItem(),t=useMenuSearch$1(e);return e.name&&e.name!=="displayFields"?(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,x({},e)):(0,import_jsx_runtime.jsx)(SchemaInitializerItemGroup,P(x({},e),{children:t}))},SchemaInitializerItems=e=>{const{items:t}=e;return t.length===0?null:(0,import_jsx_runtime.jsx)(SchemaInitializerChildren,{children:t})},SchemaInitializerActionModalItemComponent=import_react2.default.forwardRef((e,t)=>{const o=e,{onClick:r}=o,i=W(o,["onClick"]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,P(x({ref:t},i),{onClick:n=>r==null?void 0:r(n.event,!1)}))}),SchemaInitializerActionModal=e=>{const{title:t,icon:o,width:r,schema:i,buttonText:n,btnStyles:a,isItem:l,component:c,onCancel:u,onSubmit:m}=e,{setVisible:d}=useSchemaInitializer(),p=(0,import_react2.useCallback)(()=>{const v=(0,import_react.useForm)(),b=useActionContext();return{run(){return z(this,null,function*(){yield u==null?void 0:u(),b.setVisible(!1),v.reset()})}}},[u]),h=(0,import_react2.useCallback)(()=>{const v=(0,import_react.useForm)(),b=useActionContext();return{run(){return z(this,null,function*(){yield v.validate();try{yield m==null?void 0:m(v.values),b.setVisible(!1),v.reset()}catch(S){console.error(S)}})}}},[m]),g=(0,import_react2.useMemo)(()=>import_react2.default.forwardRef(({onClick:v},b)=>(0,import_jsx_runtime.jsx)(SchemaInitializerActionModalItemComponent,{onClick:v,ref:b,title:n,icon:o})),[n,o]),_=(0,import_react2.useMemo)(()=>(0,import_shared.uid)(),[]),f=(0,import_react2.useMemo)(()=>({type:"void",properties:{[_]:{type:"void","x-component":"Action","x-component-props":c?{component:c,icon:o}:l?{component:g}:{icon:o||"PlusOutlined",style:x({borderColor:"var(--colorSettings)",color:"var(--colorSettings)"},a||{}),title:n,type:"dashed"},properties:{drawer1:{"x-decorator":"Form","x-component":"Action.Modal","x-component-props":{width:r,style:{maxWidth:r||"520px",width:"100%"},afterOpenChange:()=>{d(!1)}},type:"void",title:t,properties:P(x({},(i==null?void 0:i.properties)||i),{footer:{"x-component":"Action.Modal.Footer",type:"void",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:p}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:h}}}}})}}}}}),[n,c,_,i,t,p,h]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:f})},SchemaInitializerActionModalInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerActionModal,x({},e))},SchemaInitializerSelect=e=>{const t=e,{title:o,options:r,value:i,onChange:n,openOnHover:a,onClick:l}=t,c=W(t,["title","options","value","onChange","openOnHover","onClick"]),[u,m]=(0,import_react2.useState)(!1),d=(0,import_react2.useCallback)((...g)=>{m(!1),l==null||l(...g)},[m,l]),p=(0,import_react2.useCallback)(()=>m(!0),[]),h=(0,import_react2.useMemo)(()=>a?{onMouseEnter:p,open:u}:{},[p,u,a]);return(0,import_jsx_runtime.jsx)(SchemaInitializerItem,P(x({closeInitializerMenuWhenClick:!1},c),{children:(0,import_jsx_runtime.jsxs)("div",{style:{alignItems:"center",display:"flex",justifyContent:"space-between"},children:[o,(0,import_jsx_runtime.jsx)(import_antd.Select,x({"data-testid":"antd-select",popupMatchSelectWidth:!1,bordered:!1,defaultValue:i,onChange:(...g)=>(m(!1),n(...g)),options:r,style:{textAlign:"right",minWidth:100},onClick:d},h))]})}))},SchemaInitializerSelectInternal=()=>{const e=useSchemaInitializerItem();return(0,import_jsx_runtime.jsx)(SchemaInitializerSelect,x({},e))},schemaInitializerComponents=Object.freeze(Object.defineProperty({__proto__:null,SchemaInitializerActionModal,SchemaInitializerActionModalInternal,SchemaInitializerChild,SchemaInitializerChildren,SchemaInitializerDivider,SchemaInitializerItem,SchemaInitializerItemGroup,SchemaInitializerItemGroupInternal,SchemaInitializerItemInternal,SchemaInitializerItems,SchemaInitializerMenu,SchemaInitializerMenuProvider,SchemaInitializerSelect,SchemaInitializerSelectInternal,SchemaInitializerSubMenu,SchemaInitializerSubMenuInternal,SchemaInitializerSwitch,SchemaInitializerSwitchInternal,useSchemaInitializerStyles,useSchemaInitializerSubMenuContext},Symbol.toStringTag,{value:"Module"})),useGetAriaLabelOfSchemaInitializer=()=>{const e=(0,import_react.useFieldSchema)(),{name:t}=useCollection()||{};return{getAriaLabel:(0,import_react2.useCallback)(o=>{if(!e)return"";const r=e["x-component"],i=typeof r=="string"?r:(r==null?void 0:r.displayName)||r.name,n=e["x-initializer"]?`-${e["x-initializer"]}`:"",a=t?`-${t}`:"";return o=o?`-${o}`:"",`schema-initializer-${i}${n}${a}${o}`},[e,t])}},SchemaInitializerButton=import_react2.default.memo(e=>{const t=e,{style:o,options:r}=t,i=W(t,["style","options"]),n=useCompile(),{getAriaLabel:a}=useGetAriaLabelOfSchemaInitializer();return(0,import_jsx_runtime.jsx)(import_antd.Button,P(x({"data-testid":r["data-testid"],"aria-label":a(),"aria-disabled":"false",type:"dashed",style:x({borderColor:"var(--colorSettings)",color:"var(--colorSettings)",flex:"none"},o),icon:typeof r.icon=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:r.icon}):r.icon},i),{children:r.title&&(0,import_jsx_runtime.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"inline-block",width:r.icon?"calc(100% - 14px)":"100%",verticalAlign:"bottom"},children:n(r.title)})}))});SchemaInitializerButton.displayName="SchemaInitializerButton(memo)";const InitializerComponent=e=>{const t=e.Component||SchemaInitializerButton,o=e.ItemsComponent||SchemaInitializerItems,r=P(x({},e.itemsComponentProps),{options:e,items:e.items,style:e.itemsComponentStyle}),i=(0,import_react2.useMemo)(()=>withInitializer(t),[t]);return import_react2.default.createElement(i,e,import_react2.default.createElement(o,r))};InitializerComponent.displayName="InitializerComponent";function useSchemaInitializerRender(e,t){const o=useApp(),{isMobile:r}=useOpenModeContext()||{};e==="popup:common:addBlock"&&o.schemaInitializerManager.has("mobile:popup:common:addBlock")&&r&&(e="mobile:popup:common:addBlock");const i=(0,import_react2.useMemo)(()=>typeof e=="object"?e:o.schemaInitializerManager.get(e),[o.schemaInitializerManager,e]);return(0,import_react2.useMemo)(()=>e?i?{exists:!0,render:n=>import_react2.default.createElement(InitializerComponent,x(x(x({},i.options),t),n))}:(console.error(`[nocobase]: SchemaInitializer "${e}" not found`),{exists:!1,render:()=>null}):{exists:!1,render:()=>null},[i,e,t])}function useSchemaInitializerMenuItems(e,t,o){const r=useGetSchemaInitializerMenuItems(o);return(0,import_react2.useMemo)(()=>r(e,t),[r,e,t])}function useGetSchemaInitializerMenuItems(e){const t=useCompile(),o=(0,import_react2.useCallback)((r,i)=>r!=null&&r.length?r.map((n,a)=>{var l,c;const u=n.component||n.Component;let m;const d=n.title||n.label?t(n.title||n.label):void 0;if(u&&(m=import_react2.default.createElement(SchemaInitializerChild,P(x({},n),{title:d}))),n.type==="divider")return{type:"divider",key:n.key||`divider-${a}`};if(n.type==="item"&&u)return n.key||(n.key=`${d}-${a}`),n.associationField?{key:n.key,label:m,associationField:n.associationField}:{key:n.key,label:m};if(n.type==="itemGroup"){const _=typeof d=="string"?d:n.title,f=n.key||`${i}-item-group-${a}`;return{type:"group",key:f,label:_,children:(l=n==null?void 0:n.children)!=null&&l.length?o(n.children,f):[]}}if(n.type==="subMenu"){const _=d,f=n.key||n.name||`${i}-sub-menu-${a}`;return{key:f,label:_,children:(c=n==null?void 0:n.children)!=null&&c.length?o(n.children,f):[]}}if(n.isMenuType)return W(n,["isMenuType"]);const p=m||d,h=n.key||`${i}-${d}-${a}`,g=_=>{_.domEvent.stopPropagation(),_.key===h&&(n.onClick?n.onClick(P(x({},_),{item:n})):e==null||e(P(x({},_),{item:n})))};return n.associationField?{key:h,label:p,associationField:n.associationField,onClick:g}:{style:n.style,key:h,label:p,onClick:g}}):[],[t,e]);return o}class CompatibleSchemaInitializer extends SchemaInitializer{constructor(t,o){super(t),A(this,"otherInstance",null),o&&(this.otherInstance=o,o.otherInstance=this)}add(t,o){super.get(t)||(super.add(t,o),this.otherInstance&&this.otherInstance.add(t,o))}remove(t){super.get(t)&&(super.remove(t),this.otherInstance&&this.otherInstance.remove(t))}}const oldToNewNameMap={BlockInitializers:"page:addBlock",MBlockInitializers:"mobilePage:addBlock",CreateFormBlockInitializers:"popup:addNew:addBlock",CusomeizeCreateFormBlockInitializers:"popup:addRecord:addBlock",RecordBlockInitializers:"popup:common:addBlock",BulkEditBlockInitializers:"popup:bulkEdit:addBlock",TableColumnInitializers:"table:configureColumns",TableActionColumnInitializers:"table:configureItemActions",TableActionInitializers:"table:configureActions",SubTableActionInitializers:"subTable:configureActions",FormItemInitializers:"form:configureFields",CreateFormActionInitializers:"createForm:configureActions",UpdateFormActionInitializers:"editForm:configureActions",ReadPrettyFormItemInitializers:"details:configureFields",DetailsActionInitializers:"detailsWithPaging:configureActions",ReadPrettyFormActionInitializers:"details:configureActions",KanbanCardInitializers:"kanban:configureItemFields",KanbanActionInitializers:"kanban:configureActions",GridCardActionInitializers:"gridCard:configureActions",GridCardItemActionInitializers:"gridCard:configureItemActions",ListActionInitializers:"list:configureActions",ListItemActionInitializers:"list:configureItemActions",CalendarActionInitializers:"calendar:configureActions",GanttActionInitializers:"gantt:configureActions",MapActionInitializers:"map:configureActions",TableSelectorInitializers:"popup:tableSelector:addBlock",ChartInitializers:"charts:addBlock",ChartFilterItemInitializers:"chartFilterForm:configureFields",ChartFilterActionInitializers:"chartFilterForm:configureActions",AssociationFilterInitializers:"filterCollapse:configureFields",FilterFormItemInitializers:"filterForm:configureFields",FilterFormActionInitializers:"filterForm:configureActions",CustomFormItemInitializers:"assignFieldValuesForm:configureFields",BulkEditFormItemInitializers:"bulkEditForm:configureFields",BulkEditFormActionInitializers:"bulkEditForm:configureActions",AuditLogsTableColumnInitializers:"auditLogsTable:configureColumns",AuditLogsTableActionColumnInitializers:"auditLogsTable:configureItemActions",AuditLogsTableActionInitializers:"auditLogsTable:configureActions",SnapshotBlockInitializers:"popup:snapshot:addBlock",AddBlockButton:"workflowManual:popup:configureUserInterface:addBlock",AddCustomFormField:"workflowManual:customForm:configureFields",AddActionButton:"workflowManual:form:configureActions"};function isInitializersSame(e,t){return e===t||oldToNewNameMap[e]===t}class SchemaInitializerManager{constructor(t=[],o){A(this,"schemaInitializers",{}),A(this,"actionList",{}),this._schemaInitializers=t,this.app=o,this.app=o,this.add(...t)}add(...t){t.forEach(o=>{this.schemaInitializers[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.schemaInitializers[t]}getAll(){return this.schemaInitializers}has(t){return!!this.get(t)}remove(t){delete this.schemaInitializers[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}))}}function normalizeContainer(e){if(!e)return console.warn("Failed to mount app: mount target should not be null or undefined."),null;if(typeof e=="string"){const t=document.querySelector(e);return t||console.warn(`Failed to mount app: mount target selector "${e}" returned null.`),t}return window.ShadowRoot&&e instanceof window.ShadowRoot&&e.mode==="closed"&&console.warn('mounting on a ShadowRoot with `{mode: "closed"}` may lead to unpredictable bugs'),e}const compose=(...e)=>{const t=e.reduce((o,r)=>{const[i,n]=r,a=({children:l})=>(0,import_jsx_runtime.jsx)(o,{children:(0,import_jsx_runtime.jsx)(i,P(x({},n),{children:l}))});return a.displayName=`compose(${i.displayName||i.name})`,a},BlankComponent);return o=>r=>(0,import_jsx_runtime.jsx)(t,{children:o&&(0,import_jsx_runtime.jsx)(o,x({},r))})};function defineGlobalDeps(e){e.define("react",()=>import_react2.default),e.define("react-dom",()=>import_react_dom.default),e.define("react/jsx-runtime",()=>import_jsx_runtime.default),e.define("react-router",()=>ReactRouter),e.define("react-router-dom",()=>ReactRouterDom),e.define("antd",()=>antd),e.define("antd-style",()=>antdStyle),e.define("@ant-design/icons",()=>antIcons),e.define("@ant-design/cssinjs",()=>antdCssinjs),e.define("i18next",()=>i18next),e.define("react-i18next",()=>reactI18next),e.define("@formily/antd-v5",()=>formilyAntdV5),e.define("@formily/core",()=>formilyCore),e.define("@formily/react",()=>formilyReact),e.define("@formily/shared",()=>formilyShared),e.define("@formily/json-schema",()=>formilyJsonSchema),e.define("@formily/reactive",()=>formilyJsonReactive),e.define("@formily/path",()=>formilyPath),e.define("@formily/validator",()=>formilyValidator),e.define("@formily/reactive-react",()=>formilyReactiveReact),e.define("@nocobase/utils",()=>nocobaseClientUtils),e.define("@nocobase/utils/client",()=>nocobaseClientUtils),e.define("@nocobase/client",()=>nocobaseClient),e.define("@nocobase/client/client",()=>nocobaseClient),e.define("@nocobase/evaluators",()=>nocobaseEvaluators),e.define("@nocobase/evaluators/client",()=>nocobaseEvaluators),e.define("@nocobase/sdk",()=>nocobaseSDK),e.define("@dnd-kit/core",()=>dndKitCore),e.define("@dnd-kit/sortable",()=>dndKitSortable),e.define("axios",()=>import_axios.default),e.define("dayjs",()=>import_client.dayjs),e.define("lodash",()=>import_lodash.default),e.define("ahooks",()=>ahooks),e.define("@emotion/css",()=>emotionCss),e.define("file-saver",()=>FileSaver)}/* istanbul ignore file -- @preserve */function getRequireJs(){var requirejs,require,define,req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.6",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!!(typeof window<"u"&&typeof navigator<"u"&&window.document),isWebWorker=!isBrowser&&typeof importScripts<"u",readyRegExp=isBrowser&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera=typeof opera<"u"&&opera.toString()==="[object Opera]",contexts={},cfg={},globalDefQueue=[],useInteractive=!1;function commentReplace(e,t){return t||""}function isFunction(e){return ostring.call(e)==="[object Function]"}function isArray(e){return ostring.call(e)==="[object Array]"}function each(e,t){if(e){var o;for(o=0;o<e.length&&!(e[o]&&t(e[o],o,e));o+=1);}}function eachReverse(e,t){if(e){var o;for(o=e.length-1;o>-1&&!(e[o]&&t(e[o],o,e));o-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var o;for(o in e)if(hasProp(e,o)&&t(e[o],o))break}function mixin(e,t,o,r){return t&&eachProp(t,function(i,n){(o||!hasProp(e,n))&&(r&&typeof i=="object"&&i&&!isArray(i)&&!isFunction(i)&&!(i instanceof RegExp)?(e[n]||(e[n]={}),mixin(e[n],i,o,r)):e[n]=i)}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(o){t=t[o]}),t}function makeError(e,t,o,r){var i=new Error(t+`
|
|
625
|
-
https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModules=r,o&&(i.originalError=o),i}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(e){var t,o,r,i,n,a={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},l={},c={},u={},m=[],d={},p={},h={},g=1,_=1;function f(j){var B,O;for(B=0;B<j.length;B++)if(O=j[B],O===".")j.splice(B,1),B-=1;else if(O===".."){if(B===0||B===1&&j[2]===".."||j[B-1]==="..")continue;B>0&&(j.splice(B-1,2),B-=2)}}function v(j,B,O){var E,V,U,q,G,Y,K,H,J,X,Q,oe,ee=B&&B.split("/"),ie=a.map,ae=ie&&ie["*"];if(j&&(j=j.split("/"),K=j.length-1,a.nodeIdCompat&&jsSuffixRegExp.test(j[K])&&(j[K]=j[K].replace(jsSuffixRegExp,"")),j[0].charAt(0)==="."&&ee&&(oe=ee.slice(0,ee.length-1),j=oe.concat(j)),f(j),j=j.join("/")),O&&ie&&(ee||ae)){U=j.split("/");e:for(q=U.length;q>0;q-=1){if(Y=U.slice(0,q).join("/"),ee){for(G=ee.length;G>0;G-=1)if(V=getOwn(ie,ee.slice(0,G).join("/")),V&&(V=getOwn(V,Y),V)){H=V,J=q;break e}}!X&&ae&&getOwn(ae,Y)&&(X=getOwn(ae,Y),Q=q)}!H&&X&&(H=X,J=Q),H&&(U.splice(0,J,H),j=U.join("/"))}return E=getOwn(a.pkgs,j),E||j}function b(j){isBrowser&&each(scripts(),function(B){if(B.getAttribute("data-requiremodule")===j&&B.getAttribute("data-requirecontext")===r.contextName)return B.parentNode.removeChild(B),!0})}function S(j){var B=getOwn(a.paths,j);if(B&&isArray(B)&&B.length>1)return B.shift(),r.require.undef(j),r.makeRequire(null,{skipMap:!0})([j]),!0}function C(j){var B,O=j?j.indexOf("!"):-1;return O>-1&&(B=j.substring(0,O),j=j.substring(O+1,j.length)),[B,j]}function y(j,B,O,E){var V,U,q,G,Y=null,K=B?B.name:null,H=j,J=!0,X="";return j||(J=!1,j="_@r"+(g+=1)),G=C(j),Y=G[0],j=G[1],Y&&(Y=v(Y,K,E),U=getOwn(d,Y)),j&&(Y?O?X=j:U&&U.normalize?X=U.normalize(j,function(Q){return v(Q,K,E)}):X=j.indexOf("!")===-1?v(j,K,E):j:(X=v(j,K,E),G=C(X),Y=G[0],X=G[1],O=!0,V=r.nameToUrl(X))),q=Y&&!U&&!O?"_unnormalized"+(_+=1):"",{prefix:Y,name:X,parentMap:B,unnormalized:!!q,url:V,originalName:H,isDefine:J,id:(Y?Y+"!"+X:X)+q}}function F(j){var B=j.id,O=getOwn(l,B);return O||(O=l[B]=new r.Module(j)),O}function I(j,B,O){var E=j.id,V=getOwn(l,E);hasProp(d,E)&&(!V||V.defineEmitComplete)?B==="defined"&&O(d[E]):(V=F(j),V.error&&B==="error"?O(V.error):V.on(B,O))}function T(j,B){var O=j.requireModules,E=!1;B?B(j):(each(O,function(V){var U=getOwn(l,V);U&&(U.error=j,U.events.error&&(E=!0,U.emit("error",j)))}),E||req.onError(j))}function k(){globalDefQueue.length&&(each(globalDefQueue,function(j){var B=j[0];typeof B=="string"&&(r.defQueueMap[B]=!0),m.push(j)}),globalDefQueue=[])}i={require:function(j){return j.require?j.require:j.require=r.makeRequire(j.map)},exports:function(j){if(j.usingExports=!0,j.map.isDefine)return j.exports?d[j.map.id]=j.exports:j.exports=d[j.map.id]={}},module:function(j){return j.module?j.module:j.module={id:j.map.id,uri:j.map.url,config:function(){return getOwn(a.config,j.map.id)||{}},exports:j.exports||(j.exports={})}}};function N(j){delete l[j],delete c[j]}function M(j,B,O){var E=j.map.id;j.error?j.emit("error",j.error):(B[E]=!0,each(j.depMaps,function(V,U){var q=V.id,G=getOwn(l,q);G&&!j.depMatched[U]&&!O[q]&&(getOwn(B,q)?(j.defineDep(U,d[q]),j.check()):M(G,B,O))}),O[E]=!0)}function L(){var j,B,O=a.waitSeconds*1e3,E=O&&r.startTime+O<new Date().getTime(),V=[],U=[],q=!1,G=!0;if(!t){if(t=!0,eachProp(c,function(Y){var K=Y.map,H=K.id;if(Y.enabled&&(K.isDefine||U.push(Y),!Y.error)){if(!Y.inited&&E)S(H)?(B=!0,q=!0):(V.push(H),b(H));else if(!Y.inited&&Y.fetched&&K.isDefine&&(q=!0,!K.prefix))return G=!1}}),E&&V.length)return j=makeError("timeout","Load timeout for modules: "+V,null,V),j.contextName=r.contextName,T(j);G&&each(U,function(Y){M(Y,{},{})}),(!E||B)&&q&&(isBrowser||isWebWorker)&&!n&&(n=setTimeout(function(){n=0,L()},50)),t=!1}}o=function(j){this.events=getOwn(u,j.id)||{},this.map=j,this.shim=getOwn(a.shim,j.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},o.prototype={init:function(j,B,O,E){E=E||{},!this.inited&&(this.factory=B,O?this.on("error",O):this.events.error&&(O=bind(this,function(V){this.emit("error",V)})),this.depMaps=j&&j.slice(0),this.errback=O,this.inited=!0,this.ignore=E.ignore,E.enabled||this.enabled?this.enable():this.check())},defineDep:function(j,B){this.depMatched[j]||(this.depMatched[j]=!0,this.depCount-=1,this.depExports[j]=B)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=new Date().getTime();var j=this.map;if(this.shim)r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return j.prefix?this.callPlugin():this.load()}));else return j.prefix?this.callPlugin():this.load()}},load:function(){var j=this.map.url;p[j]||(p[j]=!0,r.load(this.map.id,j))},check:function(){if(!(!this.enabled||this.enabling)){var j,B,O=this.map.id,E=this.depExports,V=this.exports,U=this.factory;if(!this.inited)hasProp(r.defQueueMap,O)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(U)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{V=r.execCb(O,U,E,V)}catch(G){j=G}else V=r.execCb(O,U,E,V);if(this.map.isDefine&&V===void 0&&(B=this.module,B?V=B.exports:this.usingExports&&(V=this.exports)),j)return j.requireMap=this.map,j.requireModules=this.map.isDefine?[this.map.id]:null,j.requireType=this.map.isDefine?"define":"require",T(this.error=j)}else V=U;if(this.exports=V,this.map.isDefine&&!this.ignore&&(d[O]=V,req.onResourceLoad)){var q=[];each(this.depMaps,function(G){q.push(G.normalizedMap||G)}),req.onResourceLoad(r,this.map,q)}N(O),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var j=this.map,B=j.id,O=y(j.prefix);this.depMaps.push(O),I(O,"defined",bind(this,function(E){var V,U,q,G=getOwn(h,this.map.id),Y=this.map.name,K=this.map.parentMap?this.map.parentMap.name:null,H=r.makeRequire(j.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){E.normalize&&(Y=E.normalize(Y,function(J){return v(J,K,!0)})||""),U=y(j.prefix+"!"+Y,this.map.parentMap,!0),I(U,"defined",bind(this,function(J){this.map.normalizedMap=U,this.init([],function(){return J},null,{enabled:!0,ignore:!0})})),q=getOwn(l,U.id),q&&(this.depMaps.push(U),this.events.error&&q.on("error",bind(this,function(J){this.emit("error",J)})),q.enable());return}if(G){this.map.url=r.nameToUrl(G),this.load();return}V=bind(this,function(J){this.init([],function(){return J},null,{enabled:!0})}),V.error=bind(this,function(J){this.inited=!0,this.error=J,J.requireModules=[B],eachProp(l,function(X){X.map.id.indexOf(B+"_unnormalized")===0&&N(X.map.id)}),T(J)}),V.fromText=bind(this,function(J,X){var Q=j.name,oe=y(Q),ee=useInteractive;X&&(J=X),ee&&(useInteractive=!1),F(oe),hasProp(a.config,B)&&(a.config[Q]=a.config[B]);try{req.exec(J)}catch(ie){return T(makeError("fromtexteval","fromText eval for "+B+" failed: "+ie,ie,[B]))}ee&&(useInteractive=!0),this.depMaps.push(oe),r.completeLoad(Q),H([Q],V)}),E.load(j.name,H,V,a)})),r.enable(O,this),this.pluginMaps[O.id]=O},enable:function(){c[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(j,B){var O,E,V;if(typeof j=="string"){if(j=y(j,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[B]=j,V=getOwn(i,j.id),V){this.depExports[B]=V(this);return}this.depCount+=1,I(j,"defined",bind(this,function(U){this.undefed||(this.defineDep(B,U),this.check())})),this.errback?I(j,"error",bind(this,this.errback)):this.events.error&&I(j,"error",bind(this,function(U){this.emit("error",U)}))}O=j.id,E=l[O],!hasProp(i,O)&&E&&!E.enabled&&r.enable(j,this)})),eachProp(this.pluginMaps,bind(this,function(j){var B=getOwn(l,j.id);B&&!B.enabled&&r.enable(j,this)})),this.enabling=!1,this.check()},on:function(j,B){var O=this.events[j];O||(O=this.events[j]=[]),O.push(B)},emit:function(j,B){each(this.events[j],function(O){O(B)}),j==="error"&&delete this.events[j]}};function D(j){hasProp(d,j[0])||F(y(j[0],null,!0)).init(j[1],j[2])}function R(j,B,O,E){j.detachEvent&&!isOpera?E&&j.detachEvent(E,B):j.removeEventListener(O,B,!1)}function $(j){var B=j.currentTarget||j.srcElement;return R(B,r.onScriptLoad,"load","onreadystatechange"),R(B,r.onScriptError,"error"),{node:B,id:B&&B.getAttribute("data-requiremodule")}}function w(){var j;for(k();m.length;){if(j=m.shift(),j[0]===null)return T(makeError("mismatch","Mismatched anonymous define() module: "+j[j.length-1]));D(j)}r.defQueueMap={}}return r={config:a,contextName:e,registry:l,defined:d,urlFetched:p,defQueue:m,defQueueMap:{},Module:o,makeModuleMap:y,nextTick:req.nextTick,onError:T,configure:function(j){if(j.baseUrl&&j.baseUrl.charAt(j.baseUrl.length-1)!=="/"&&(j.baseUrl+="/"),typeof j.urlArgs=="string"){var B=j.urlArgs;j.urlArgs=function(V,U){return(U.indexOf("?")===-1?"?":"&")+B}}var O=a.shim,E={paths:!0,bundles:!0,config:!0,map:!0};eachProp(j,function(V,U){E[U]?(a[U]||(a[U]={}),mixin(a[U],V,!0,!0)):a[U]=V}),j.bundles&&eachProp(j.bundles,function(V,U){each(V,function(q){q!==U&&(h[q]=U)})}),j.shim&&(eachProp(j.shim,function(V,U){isArray(V)&&(V={deps:V}),(V.exports||V.init)&&!V.exportsFn&&(V.exportsFn=r.makeShimExports(V)),O[U]=V}),a.shim=O),j.packages&&each(j.packages,function(V){var U,q;V=typeof V=="string"?{name:V}:V,q=V.name,U=V.location,U&&(a.paths[q]=V.location),a.pkgs[q]=V.name+"/"+(V.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(l,function(V,U){!V.inited&&!V.map.unnormalized&&(V.map=y(U,null,!0))}),(j.deps||j.callback)&&r.require(j.deps||[],j.callback)},makeShimExports:function(j){function B(){var O;return j.init&&(O=j.init.apply(global,arguments)),O||j.exports&&getGlobal(j.exports)}return B},makeRequire:function(j,B){B=B||{};function O(E,V,U){var q,G,Y;return B.enableBuildCallback&&V&&isFunction(V)&&(V.__requireJsBuild=!0),typeof E=="string"?isFunction(V)?T(makeError("requireargs","Invalid require call"),U):j&&hasProp(i,E)?i[E](l[j.id]):req.get?req.get(r,E,j,O):(G=y(E,j,!1,!0),q=G.id,hasProp(d,q)?d[q]:T(makeError("notloaded",'Module name "'+q+'" has not been loaded yet for context: '+e+(j?"":". Use require([])")))):(w(),r.nextTick(function(){w(),Y=F(y(null,j)),Y.skipMap=B.skipMap,Y.init(E,V,U,{enabled:!0}),L()}),O)}return mixin(O,{isBrowser,toUrl:function(E){var V,U=E.lastIndexOf("."),q=E.split("/")[0],G=q==="."||q==="..";return U!==-1&&(!G||U>1)&&(V=E.substring(U,E.length),E=E.substring(0,U)),r.nameToUrl(v(E,j&&j.id,!0),V,!0)},defined:function(E){return hasProp(d,y(E,j,!1,!0).id)},specified:function(E){return E=y(E,j,!1,!0).id,hasProp(d,E)||hasProp(l,E)}}),j||(O.undef=function(E){k();var V=y(E,j,!0),U=getOwn(l,E);U.undefed=!0,b(E),delete d[E],delete p[V.url],delete u[E],eachReverse(m,function(q,G){q[0]===E&&m.splice(G,1)}),delete r.defQueueMap[E],U&&(U.events.defined&&(u[E]=U.events),N(E))}),O},enable:function(j){var B=getOwn(l,j.id);B&&F(j).enable()},completeLoad:function(j){var B,O,E,V=getOwn(a.shim,j)||{},U=V.exports;for(k();m.length;){if(O=m.shift(),O[0]===null){if(O[0]=j,B)break;B=!0}else O[0]===j&&(B=!0);D(O)}if(r.defQueueMap={},E=getOwn(l,j),!B&&!hasProp(d,j)&&E&&!E.inited){if(a.enforceDefine&&(!U||!getGlobal(U)))return S(j)?void 0:T(makeError("nodefine","No define call for "+j,null,[j]));D([j,V.deps||[],V.exportsFn])}L()},nameToUrl:function(j,B,O){var E,V,U,q,G,Y,K,H=getOwn(a.pkgs,j);if(H&&(j=H),K=getOwn(h,j),K)return r.nameToUrl(K,B,O);if(req.jsExtRegExp.test(j))G=j+(B||"");else{for(E=a.paths,V=j.split("/"),U=V.length;U>0;U-=1)if(q=V.slice(0,U).join("/"),Y=getOwn(E,q),Y){isArray(Y)&&(Y=Y[0]),V.splice(0,U,Y);break}G=V.join("/"),G+=B||(/^data\:|^blob\:|\?/.test(G)||O?"":".js"),G=(G.charAt(0)==="/"||G.match(/^[\w\+\.\-]+:/)?"":a.baseUrl)+G}return a.urlArgs&&!/^blob\:/.test(G)?G+a.urlArgs(j,G):G},load:function(j,B){req.load(r,j,B)},execCb:function(j,B,O,E){return B.apply(E,O)},onScriptLoad:function(j){if(j.type==="load"||readyRegExp.test((j.currentTarget||j.srcElement).readyState)){interactiveScript=null;var B=$(j);r.completeLoad(B.id)}},onScriptError:function(j){var B=$(j);if(!S(B.id)){var O=[];return eachProp(l,function(E,V){V.indexOf("_@r")!==0&&each(E.depMaps,function(U){if(U.id===B.id)return O.push(V),!0})}),T(makeError("scripterror",'Script error for "'+B.id+(O.length?'", needed by: '+O.join(", "):'"'),j,[B.id]))}}},r.require=r.makeRequire(),r}req=requirejs=function(e,t,o,r){var i,n,a=defContextName;return!isArray(e)&&typeof e!="string"&&(n=e,isArray(t)?(e=t,t=o,o=r):e=[]),n&&n.context&&(a=n.context),i=getOwn(contexts,a),i||(i=contexts[a]=req.s.newContext(a)),n&&i.configure(n),i.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick=typeof setTimeout<"u"?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r=e&&e.config||{},i;if(isBrowser)return i=req.createNode(r,t,o),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),i.attachEvent&&!(i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)):(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)),i.src=o,r.onNodeCreated&&r.onNodeCreated(i,r,t,o),currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{setTimeout(function(){},0),importScripts(o),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,n,[t]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(e){if(e.readyState==="interactive")return interactiveScript=e}),interactiveScript}return isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain)return mainScript=dataMain,!cfg.baseUrl&&mainScript.indexOf("!")===-1&&(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,o){var r,i;typeof e!="string"&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(n,a){t.push(a)}),t=(o.length===1?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,o]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}const setFieldProps=(e,t,o)=>{(0,import_reactive.untracked)(()=>{e[t]===void 0&&(e[t]=o)})},setRequired=(e,t,o)=>{typeof t.required>"u"&&(e.required=!!o.required)},CollectionFieldInternalField_deprecated=e=>{var t;const o=useCompile(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{uiSchema:n,defaultValue:a}=useCollectionField(),{isAllowToSetDefaultValue:l}=useIsAllowToSetDefaultValue(),c=useComponent(((t=i["x-component-props"])==null?void 0:t.component)||(n==null?void 0:n["x-component"])||"Input"),u=useFormBlockContext(),m=useDynamicComponentProps(n==null?void 0:n["x-use-component-props"],e);return(0,import_react2.useEffect)(()=>{if(!n)return;const d=o(n);if(setFieldProps(r,"content",d["x-content"]),setFieldProps(r,"title",d.title),setFieldProps(r,"description",d.description),u!=null&&u.form){const h=l()?i.default||a:void 0;h!=null&&setFieldProps(r,"initialValue",h)}if(!r.validator&&(d["x-validator"]||i["x-validator"])){const h=(0,import_lodash.concat)([],d["x-validator"]||[],i["x-validator"]||[]);r.validator=h}i["x-disabled"]===!0&&(r.disabled=!0),i["x-read-pretty"]===!0&&(r.readPretty=!0),setRequired(r,i,d),r.dataSource=d.enum,r.data=r.data||{},r.data.dataSource=d==null?void 0:d.enum;const p=o(d["x-component-props"])||{};r.componentProps=(0,import_shared.merge)(p,r.componentProps||{},m||{})},[n]),n?(0,import_jsx_runtime.jsx)(c,x(x({},e),m)):null},CollectionFieldInternalField=e=>{var t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{uiSchema:i}=useCollectionFieldUISchema(),n=useComponent(((t=r["x-component-props"])==null?void 0:t.component)||(i==null?void 0:i["x-component"])||"Input"),a=useDynamicComponentProps(i==null?void 0:i["x-use-component-props"],e);if((0,import_react2.useEffect)(()=>{r["x-read-pretty"]===!0&&!o.readPretty&&(o.readPretty=!0),r["x-disabled"]===!0&&(o.disabled=!0),o.data=o.data||{},o.data.dataSource=i==null?void 0:i.enum},[o,r]),!i)return null;const l=x(x({},e),a);return isVariable$1(l.value)&&l.value===r.default&&(l.value=void 0),(0,import_jsx_runtime.jsx)(n,x({},l))},CollectionField$1=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),o=useIsInNocoBaseRecursionFieldContext();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:o?(0,import_jsx_runtime.jsx)(CollectionFieldInternalField,x({},e)):(0,import_jsx_runtime.jsx)(CollectionFieldInternalField_deprecated,x({},e))})});CollectionField$1.displayName="CollectionField";const getKeyByName=e=>e?`nocobase_${e}_designable`.toUpperCase():"nocobase_designable".toUpperCase(),SchemaComponentProviderWithLocalStorageState=e=>{const[t,o]=(0,import_ahooks.useLocalStorageState)(getKeyByName(e.appName),{defaultValue:!!e.designable});return(0,import_jsx_runtime.jsx)(SchemaComponentProvider,P(x({},e),{designable:t,onDesignableChange:r=>{o(r)}}))},AppSchemaComponentProvider=e=>typeof e.designable=="boolean"?(0,import_jsx_runtime.jsx)(SchemaComponentProvider,x({},e)):(0,import_jsx_runtime.jsx)(SchemaComponentProviderWithLocalStorageState,x({},e));function getOperators(){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.length===0:!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==null||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.length===0||!n||n.length===0?!0:(Array.isArray(i)||(i=[i]),Array.isArray(n)||(n=[n]),!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){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return r.$dateBetween(i,n);const a=parseDate(i),l=parseDate(n);return!a||!l?!1:a.getTime()===l.getTime()},$dateBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const a=parseDate(i),l=parseDate(n);return!a||!l?!1:a.getTime()<l.getTime()},$dateNotBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a.getTime()>=l.getTime()},$dateAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const a=parseDate(i),l=parseDate(n);return a.getTime()>l.getTime()},$dateNotAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a.getTime()<=l.getTime()},$dateBetween:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n));const a=parseDate(i),l=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!a||!l||!c)throw new Error("Invalid date format");return a.getTime()>=l.getTime()&&a.getTime()<=c.getTime()},$dateNotOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return!r.$dateBetween(i,n);const a=parseDate(i),l=parseDate(n);return a.getTime()!==l.getTime()},$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&&!i.type},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.getOperator=function(i){return Object.keys(i)[0]},o.getValues=function(i){return i[o.getOperator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(_){return o.apply(_,n)});if(!o.is_logic(i))return i;var a=o.getOperator(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(_){return o.truthy(o.apply(m,_))}):[];if(a==="map")return d=o.apply(l[0],n),m=l[1],Array.isArray(d)?d.map(function(_){return o.apply(m,_)}):[];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:f,accumulator:_})},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(_){return o.apply(_,n)}),r.hasOwnProperty(a)&&typeof r[a]=="function")return r[a].apply(n,l);if(a.indexOf(".")>0){var h=String(a).split("."),g=r;for(c=0;c<h.length;c++){if(!g.hasOwnProperty(h[c]))throw new Error("Unrecognized operation "+a+" (failed at "+h.slice(0,c+1).join(".")+")");g=g[h[c]]}return g.apply(n,l)}throw new Error("Unrecognized operation "+a)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var a=o.getOperator(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.addOperation=function(i,n){r[i]=n},o.rmOperation=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.getOperator(n),l=o.getOperator(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 e.includes("T")&&e.endsWith("Z")?new Date(e):e.includes(" ")?new Date(e.replace(" ","T")):new Date(`${e}T00:00:00`)}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){var t;let o=Array.isArray(e)?(t=e[1])!=null?t:e[0]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o)?new Date(o):/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(o)?new Date(o.replace(" ","T")):/^\d{4}-\d{2}-\d{2}$/.test(o)?parseFullDate(o):/^\d{4}-\d{2}$/.test(o)?parseMonth(o):/^\d{4}Q[1-4]$/.test(o)?parseQuarter(o):/^\d{4}$/.test(o)?parseYear(o):null}class Application{constructor(t={}){A(this,"eventBus",new EventTarget),A(this,"providers",[]),A(this,"router"),A(this,"scopes",{}),A(this,"i18n"),A(this,"ws"),A(this,"apiClient"),A(this,"components",P(x(x({DataBlockProvider},defaultAppComponents),schemaInitializerComponents),{CollectionField:CollectionField$1})),A(this,"pluginManager"),A(this,"pluginSettingsManager"),A(this,"devDynamicImport"),A(this,"requirejs"),A(this,"notification"),A(this,"schemaInitializerManager"),A(this,"schemaSettingsManager"),A(this,"dataSourceManager"),A(this,"name"),A(this,"favicon"),A(this,"globalVars",{}),A(this,"globalVarCtxs",{}),A(this,"jsonLogic"),A(this,"loading",!0),A(this,"maintained",!1),A(this,"maintaining",!1),A(this,"error",null),A(this,"hasLoadError",!1),A(this,"wsAuthorized",!1),this.options=t,this.initRequireJs(),(0,import_reactive.define)(this,{maintained:import_reactive.observable.ref,loading:import_reactive.observable.ref,maintaining:import_reactive.observable.ref,error:import_reactive.observable.ref}),this.devDynamicImport=t.devDynamicImport,this.scopes=(0,import_merge.default)(this.scopes,t.scopes),this.components=(0,import_merge.default)(this.components,t.components),this.apiClient=t.apiClient instanceof APIClient?t.apiClient:new APIClient(t.apiClient),this.apiClient.app=this,this.i18n=t.i18n||i18n,this.router=new RouterManager(t.router,this),this.schemaSettingsManager=new SchemaSettingsManager(t.schemaSettings,this),this.pluginManager=new PluginManager$1(t.plugins,t.loadRemotePlugins,this),this.schemaInitializerManager=new SchemaInitializerManager(t.schemaInitializers,this),this.dataSourceManager=new DataSourceManager(t.dataSourceManager,this),this.addDefaultProviders(),this.addReactRouterComponents(),this.addProviders(t.providers||[]),this.ws=new WebSocketClient(t.ws),this.ws.app=this,this.pluginSettingsManager=new PluginSettingsManager(t.pluginSettings,this),this.addRoutes(),this.name=this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)||"main",this.i18n.on("languageChanged",o=>{this.apiClient.auth.locale=o}),this.initListeners(),this.jsonLogic=getOperators()}get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(t){let o=document.querySelector('link[rel="shortcut icon"]');t&&(this.favicon=t),o?o.href=this.favicon||"/favicon/favicon.ico":(o=document.createElement("link"),o.rel="shortcut icon",o.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(o))}setWsAuthorized(t){this.wsAuthorized=t}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",t=>{this.setTokenInWebSocket(t.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(t){const{token:o,authenticator:r}=t;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:o,authenticator:r}}))}setMaintaining(t){this.maintaining!==t&&(this.maintaining=t,t||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){this.requirejs=getRequireJs(),defineGlobalDeps(this.requirejs),window.define=this.requirejs.define}addDefaultProviders(){this.use(APIClientProvider,{apiClient:this.apiClient}),this.use(import_react_i18next.I18nextProvider,{i18n:this.i18n}),this.use(GlobalThemeProvider),this.use(CSSVariableProvider),this.use(AppSchemaComponentProvider,{designable:this.options.designable,appName:this.name,components:this.components,scope:this.scopes}),this.use(AntdAppProvider),this.use(DataSourceApplicationProvider,{dataSourceManager:this.dataSourceManager}),this.use(OpenModeProvider)}addReactRouterComponents(){this.addComponents({Link:import_react_router_dom.Link,Navigate:import_react_router_dom.Navigate,NavLink:import_react_router_dom.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return(0,import_sdk.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let t=this.options.publicPath||"/";return t.endsWith("/")||(t+="/"),t}getApiUrl(t=""){let o=this.apiClient.axios.defaults.baseURL;if(!o.startsWith("http://")&&!o.startsWith("https://")){const{protocol:r,host:i}=window.location;o=`${r}//${i}${o}`}return o.replace(/\/$/g,"")+"/"+t.replace(/^\//g,"")}getRouteUrl(t){return this.getPublicPath()+t.replace(/^\//g,"")}getHref(t){const o=this.name;return o&&o!=="main"?this.getPublicPath()+"apps/"+o+"/"+t.replace(/^\//g,""):this.getPublicPath()+t.replace(/^\//g,"")}getCollectionManager(t){var o;return(o=this.dataSourceManager.getDataSource(t))==null?void 0:o.collectionManager}getComposeProviders(){const t=compose(...this.providers)(BlankComponent);return t.displayName="Providers",t}use(t,o){return this.addProvider(t,o)}addProvider(t,o){return this.providers.push([t,o])}addProviders(t){t.forEach(o=>{Array.isArray(o)?this.addProvider(o[0],o[1]):this.addProvider(o)})}load(){return z(this,null,function*(){var t,o,r,i,n;try{this.loading=!0,yield this.loadWebSocket(),yield this.pm.load()}catch(a){this.hasLoadError=!0,((i=(r=(o=(t=a==null?void 0:a.response)==null?void 0:t.data)==null?void 0:o.errors)==null?void 0:r[0])==null?void 0:i.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&(yield new Promise(l=>{setTimeout(()=>l(null),1e3)})),this.error=x({code:"LOAD_ERROR"},(n=this.apiClient.toErrMessages(a))==null?void 0:n[0]),console.error(a,this.error)}this.loading=!1,this.updateFavicon()})}loadWebSocket(){return z(this,null,function*(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",t=>{var o,r,i;const n=JSON.parse(t.data);if((o=n==null?void 0:n.payload)!=null&&o.refresh){window.location.reload();return}if(n.type==="notification"){this.notification[((r=n.payload)==null?void 0:r.type)||"info"]({message:(i=n.payload)==null?void 0:i.message});return}if(n.type==="maintaining"&&n.payload.code!=="APP_RUNNING")this.setMaintaining(!0),this.error=n.payload;else{this.hasLoadError&&window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;const a=n.type;if(!a)return;const l=`ws:message:${a}`;this.eventBus.dispatchEvent(new CustomEvent(l,{detail:n.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{const t=this.apiClient.auth.token;t&&this.setTokenInWebSocket({token:t,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()})}getComponent(t,o=!0){const r=i=>o&&console.error(i);if(!t){r(`getComponent called with ${t}`);return}if(typeof t=="function")return t;if(typeof t=="string"){const i=(0,import_get.default)(this.components,t);if(!i){r(`Component ${t} not found`);return}return i}r(`Component ${t} should be a string or a React component`)}renderComponent(t,o,r){return import_react2.default.createElement(this.getComponent(t),o,r)}addComponent(t,o){const r=o||t.displayName||t.name;if(!r){console.error("Component must have a displayName or pass name as second argument");return}(0,import_set.default)(this.components,r,t)}addComponents(t){Object.keys(t).forEach(o=>{this.addComponent(t[o],o)})}addScopes(t){this.scopes=(0,import_merge.default)(this.scopes,t)}getRootComponent(){return({children:t})=>(0,import_jsx_runtime.jsx)(AppComponent,{app:this,children:t})}mount(t){const o=normalizeContainer(t);if(!o)return;const r=this.getRootComponent(),i=(0,import_client2.createRoot)(o);return i.render((0,import_jsx_runtime.jsx)(r,{})),i}addFieldInterfaces(t=[]){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaces(t)}addFieldInterfaceComponentOption(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceComponentOption(t,o)}addFieldInterfaceOperator(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceOperator(t,o)}addGlobalVar(t,o,r){(0,import_set.default)(this.globalVars,t,o),r&&(0,import_set.default)(this.globalVarCtxs,t,r)}getGlobalVar(t){return(0,import_get.default)(this.globalVars,t)}getGlobalVarCtx(t){return(0,import_get.default)(this.globalVarCtxs,t)}addUserCenterSettingsItem(t){const o=t.useVisible||(()=>!0),r=()=>{const{allow:i}=useAclSnippets();return o()?t.aclSnippet?i(t.aclSnippet):!0:!1};this.schemaSettingsManager.addItem("userCenterSettings",t.name,P(x({},t),{useVisible:r}))}}function getNewSchema(e){const{fieldSchema:t,schemaKey:o,parentSchemaKey:r,value:i,valueKeys:n}=e;if(o)import_lodash.default.set(t,o,i);else if(r){if(i==null)return t;typeof i=="object"?Object.keys(i).forEach(a=>{n&&!n.includes(a)||import_lodash.default.set(t,`${r}.${a}`,i[a])}):console.error("value must be object")}return t}const useHookDefault=e=>e,useSchemaByType=(e="common")=>{const t=(0,import_react.useFieldSchema)(),{fieldSchema:o}=useColumnSchema$1()||{};return e==="field"&&o||t};function createModalSettingsItem(e){const{name:t,parentSchemaKey:o,valueKeys:r,schema:i,title:n,useSubmit:a=useHookDefault,useVisible:l,defaultValue:c,useDefaultValue:u=useHookDefault,width:m,type:d="common"}=e;return{name:t,type:"actionModal",useVisible:l,useComponentProps(){const p=useSchemaByType(d),{dn:h}=useDesignable(),g=u(c),_=o?import_lodash.default.get(p,o):void 0,f=useCompile(),{t:v}=(0,import_react_i18next.useTranslation)(),b=a(),{fieldSchema:S}=useColumnSchema$1()||{};return{title:typeof n=="function"?n(v):f(n),width:m,schema:i(x(x({},g),_)),onSubmit(C){const y=getNewSchema({fieldSchema:p,parentSchemaKey:o,value:C,valueKeys:r});return S?(h.emit("patch",{schema:y}),h.refresh()):h.deepMerge(y),b==null?void 0:b(C)}}}}}const createSelectSchemaSettingsItem=e=>{const{name:t,title:o,options:r,useOptions:i=useHookDefault,schemaKey:n,useVisible:a,type:l="common",defaultValue:c,useDefaultValue:u=useHookDefault}=e;return{name:t,type:"select",useVisible:a,useComponentProps(){const m=useSchemaByType(l),{fieldSchema:d}=useColumnSchema$1()||{},{dn:p}=useDesignable(),h=i(r),g=u(c),_=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)();return{title:typeof o=="function"?o(f):_(o),options:h,value:import_lodash.default.get(m,n,g),onChange(v){const b=getNewSchema({fieldSchema:m,schemaKey:n,value:v});d?(p.emit("patch",{schema:b}),p.refresh()):p.deepMerge(b)}}}}};function createSwitchSettingsItem(e){const{name:t,useVisible:o,schemaKey:r,title:i,type:n="common",defaultValue:a,useDefaultValue:l=useHookDefault,useComponentProps:c}=e;return{name:t,useVisible:o,type:"switch",useComponentProps(){const u=useSchemaByType(n),{dn:m}=useDesignable(),d=l(a),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),{fieldSchema:g}=useColumnSchema$1()||{},_=c==null?void 0:c();return{title:typeof i=="function"?i(h):p(i),checked:(_==null?void 0:_.checked)===void 0?!!import_lodash.default.get(u,r,d):_==null?void 0:_.checked,onChange(f){var v;(v=_==null?void 0:_.onChange)==null||v.call(_,f);const b=getNewSchema({fieldSchema:u,schemaKey:r,value:f});g?(m.emit("patch",{schema:b}),m.refresh()):m.deepMerge(b)}}}}}function createTextSettingsItem(e){const{name:t,useVisible:o,title:r,useTextClick:i=useHookDefault}=e;return{name:t,type:"item",useVisible:o,useComponentProps(){const n=useCompile(),{t:a}=(0,import_react_i18next.useTranslation)(),l=i();return{title:typeof r=="function"?r(a):n(r),onClick:l}}}}const linkageAction$1=(e,t)=>z(void 0,[e,t],function*({operator:o,condition:r,variables:i,localVariables:n,conditionType:a,displayResult:l},c){switch(o){case"visible":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:a},c))&&l.push("visible"),l;case"hidden":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:a},c))&&l.push("hidden"),l;default:return null}}),useReactiveLinkageEffect=(e,t,o,r)=>{const i=useApp().jsonLogic,[n,a]=(0,import_react2.useState)(null),l=useCollectionRecord();return(0,import_react2.useEffect)(()=>{z(void 0,null,function*(){const c=[];for(const u of e.filter(m=>!m.disabled))for(const m of u.actions||[])yield linkageAction$1({operator:m.operator,condition:u.condition,variables:t,localVariables:o,conditionType:u.conditionType,displayResult:c},i);a(c)})},[e,r,l]),n};function forEachLinkageRule(e,t){e.forEach(o=>{var r;(r=o.actions)==null||r.forEach(i=>{t(i,o)})})}const getLinkageRules$2=e=>{if(!e)return[];let t=(e==null?void 0:e["x-block-linkage-rules"])||[];return e.mapProperties(o=>{o["x-block-linkage-rules"]&&(t=o["x-block-linkage-rules"])}),t==null?void 0:t.filter(o=>!o.disabled)},BlockLinkageRuleProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),{designable:i}=useDesignable(),n=(0,import_react.useForm)(),a=(0,import_react2.useMemo)(()=>getLinkageRules$2(t),[t]),[l,c]=(0,import_react2.useState)(null),u=useReactiveLinkageEffect(a,o,r,l),m=(t==null?void 0:t["x-decorator"])==="FormItem"&&!n.readPretty&&a.length;return(0,import_react2.useEffect)(()=>{if(m){const d=(0,import_shared.uid)();return setTimeout(()=>{n.addEffects(d,()=>{forEachLinkageRule(a,(p,h)=>(0,import_reactive.reaction)(()=>{const g=getVariableValuesInCondition({linkageRules:a,localVariables:r}),_=getVariableValuesInExpression({action:p,localVariables:r});return[g,_].map(f=>JSON.stringify(f)).join(",")},()=>{c((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))})}),()=>{n.removeEffects(d)}}},[a,m]),a.length?u===null?null:(0,import_lodash.last)(u)==="hidden"?i?(0,import_jsx_runtime.jsx)("div",{style:{opacity:.3},children:e.children}):null:e.children:e.children},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=W(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)(BlockLinkageRuleProvider,{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(),h=useDataSourceHeaders(p.dataSource),g=useSourceKey(u),[_,f]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),v=b=>{var S;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 C=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i,y=x(x({},C),b);return(S=o[r])==null?void 0:S.call(o,y).then(F=>F.data)};return useRequest((...b)=>z(this,null,function*(){const[S,C]=yield Promise.all([(a||v)(...b),requestParentRecordData({sourceId:c,association:u,parentRecord:m,api:d,headers:h,sourceKey:g})]);return S&&(S.parentRecord=C==null?void 0:C.data),S}),P(x({},l),{manual:t==="manual",ready:!!r,refreshDeps:[r,_,f,o,u,m,c]}))}function requestParentRecordData(e){return z(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&&(import_lodash.default.isNil(p.dataLoadingMode)||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:h}=r,g=(0,import_react2.useMemo)(()=>P(x({},l),{filterByTk:n||l.filterByTk}),[n,l]),_=useRecordRequest({action:i,sourceId:a,record:m,association:c,collection:u,requestOptions:p,requestService:h,params:g,parentRecord:d}),f=(t=_.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>f&&new CollectionRecord({isNew:!1,data:f instanceof CollectionRecord?f.data:f}),[f]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:_,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=_.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),FilterContext$1=(0,import_react2.createContext)(null);FilterContext$1.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$1.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{const o=useCollection(),{recordDataBlocks:r}=useFilterBlock(),{getDataBlockRequest:i}=useDataBlockRequestGetter(),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=useAssociatedFields(),c=(0,import_react2.useRef)(null),u=useDataLoadingMode(),m=n&&n.decoratorType!=="FilterFormBlockProvider"&&n.decoratorType!=="FormBlockProvider"&&n.decoratorProps.blockType!=="filter",d=(0,import_react2.useCallback)(()=>{const p=i();r({uid:a["x-uid"],title:n.componentProps.title,doFilter:p.runAsync,collection:o,associatedFields:l,foreignKeyFields:o==null?void 0:o.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:p,dom:c.current,dataLoadingMode:u,clearFilter(h){var g,_,f;const v=((g=this.service.params)==null?void 0:g[0])||{},b=((f=(_=this.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};delete b[h];const S=mergeFilter([...Object.values(b).map(C=>removeNullCondition(C)),(t==null?void 0:t.filter)||{}]);this.service.run(P(x({},v),{page:1,filter:S}),{filters:b})},clearData(){this.service.mutate(void 0)},clearSelection(){var h,g;n&&((g=(h=n.data)==null?void 0:h.clearSelectedRowKeys)==null||g.call(h))},highlightBlock(){var h;const g=c.current;if(!g)return;const _=g.querySelector(".ant-nb-schema-toolbar");_&&_.classList.remove("hidden"),g.style.boxShadow="0 3px 12px rgba(0, 0, 0, 0.15)",g.style.transition="box-shadow 0.3s ease, transform 0.2s ease",(h=g.scrollIntoView)==null||h.call(g,{behavior:"smooth",block:"start"})},unhighlightBlock(){const h=c.current;if(!h)return;const g=h.querySelector(".ant-nb-schema-toolbar");g&&g.classList.add("hidden"),h.style.boxShadow="none",h.style.transition="box-shadow 0.3s ease, transform 0.2s ease"}})},[l,o,u,a,t==null?void 0:t.filter,r,i,n]);return(0,import_react2.useEffect)(()=>{m&&d()},[d,m]),(0,import_jsx_runtime.jsx)("div",{ref:c,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$1),t=useAllDataBlocks(),o=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),r=(0,import_react2.useCallback)(n=>{t.recordDataBlocks(n);const a=e==null?void 0:e.getDataBlocks().find(l=>l.uid===n.uid);if(a){Object.assign(a,n);return}e==null||e.setDataBlocks(l=>[...l,n])},[e]),i=(0,import_react2.useCallback)(n=>{t.removeDataBlock(n),!(e!=null&&e.getDataBlocks().every(a=>a.uid!==n))&&(e==null||e.setDataBlocks(a=>a.filter(l=>l.uid!==n)))},[e]);return e?{recordDataBlocks:r,getDataBlocks:o,removeDataBlock:i,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:o,removeDataBlock:import_lodash.default.noop}},MarkdownVoidDesigner=()=>{const e=(0,import_react.useField)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:t("Edit markdown"),onClick:()=>{e.editable=!0}}),(0,import_jsx_runtime.jsx)(SchemaSettingsRenderEngine,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsBlockHeightItem,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};class QRCodeWebComponent extends HTMLElement{constructor(){super(),A(this,"root"),this.attachShadow({mode:"open"}),this.root=null}getProps(t,o={}){return[...t].filter(r=>r.name!=="style").map(r=>this.convert(o,r.name,r.value)).reduce((r,i)=>P(x({},r),{[i.name]:i.value}),{})}convert(t,o,r){const i=Object.keys(t).find(a=>a.toLowerCase()==o);let n=r;return r==="true"||r==="false"?n=r=="true":!isNaN(r)&&r!==""?n=+r:/^{.*}/.exec(r)&&(n=JSON.parse(r)),{name:i||o,value:n}}connectedCallback(){const t=x({},this.getProps(this.attributes));this.root=(0,import_client2.createRoot)(this.shadowRoot),this.root.render((0,import_jsx_runtime.jsx)(import_antd.QRCode,x({},t)))}disconnectedCallback(){this.root.unmount()}}function registerQrcodeWebComponent(){customElements.get("qr-code")||customElements.define("qr-code",QRCodeWebComponent)}const useStyles$a=genStyleHook("nb-markdown",(e,{isDarkTheme:t})=>{const{componentCls:o}=e,r=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),i={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},n={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return{[o]:x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},t?n:i)}}),parseMarkdown=import_lodash.default.memoize(e=>z(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-oH2RssNY-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const MarkdownEditor=e=>{const{scope:t}=e,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e.defaultValue),a=(0,import_react2.useRef)(null),[l,c]=(0,import_react2.useState)([]),[u,m]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{c(t)},[t]),(0,import_react2.useEffect)(()=>{var p,h;const g=(h=(p=a==null?void 0:a.current)==null?void 0:p.resizableTextArea)==null?void 0:h.textArea;u&&g&&g.setSelectionRange(u,u)},[u]);const d=(0,import_react2.useCallback)(function(p){var h;const g=p.filter(y=>!!y.trim()),{current:_}=a,f=(h=_==null?void 0:_.resizableTextArea)==null?void 0:h.textArea;if(!f||!g)return;_.focus();const v=`{{${p.join(".")}}}`,b=f.selectionStart||0,S=i.substring(0,b)+v+i.substring(b,i.length),C=b+v.length;n(S),m(C)},[i]);return(0,import_jsx_runtime.jsxs)("div",{className:"mb-markdown",style:{position:"relative",paddingTop:"20px"},children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,P(x({ref:a,autoSize:{minRows:3}},e),{value:i,onChange:p=>{n(p.target.value)},style:{paddingBottom:"40px"}})),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginLeft:".25em"},className:"ant-formily-item-extra",children:[o("Syntax references"),":"]}),(0,import_jsx_runtime.jsx)("a",{href:`https://${r.language==="zh-CN"?"docs-cn":"docs"}.nocobase.com/handbook/template-handlebars`,target:"_blank",rel:"noreferrer",children:"Handlebars.js"})]}),(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:21,right:1},children:(0,import_jsx_runtime.jsx)(VariableSelect,{options:l,setOptions:c,onInsert:d})}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{position:"absolute",bottom:30,right:5},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p=>{var h;(h=e.onCancel)==null||h.call(e,p)},children:o("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{var p;(p=e.onSubmit)==null||p.call(e,i)},children:o("Save")})]})]})},useMarkdownHeight=()=>{const{token:e}=import_antd.theme.useToken(),t=useBlockHeight();if(t)return t-2*e.paddingLG},MarkdownVoidInner=withDynamicSchemaProps((0,import_react.observer)(e=>{const{isDarkTheme:t}=useGlobalTheme(),{componentCls:o,hashId:r}=useStyles$a({isDarkTheme:t}),{content:i,className:n}=e,a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),{dn:c}=useDesignable(),{onSave:u,onCancel:m,form:d}=e,p=useCollectionRecord(),[h,g]=(0,import_react2.useState)(""),_=useVariables$1(),f=useLocalVariables$1(),{engine:v}=(l==null?void 0:l["x-decorator-props"])||{},[b,S]=(0,import_react2.useState)(!1);useCompile(),(0,import_react2.useEffect)(()=>{S(!0),z(void 0,null,function*(){setTimeout(()=>z(void 0,null,function*(){const F=yield getRenderContent(v,i,_,f,parseMarkdown);g(F)})),S(!1)})},[i,_,f,v]);const C=useMarkdownHeight(),y=useVariableOptions({collectionField:{uiSchema:l},form:d,record:p,uiSchema:l,noDisabled:!0});return(0,import_react2.useEffect)(()=>{registerQrcodeWebComponent()},[]),b?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):a!=null&&a.editable?(0,import_jsx_runtime.jsx)(MarkdownEditor,P(x({scope:y},e),{className:!0,defaultValue:i,onCancel:()=>{a.editable=!1,m==null||m()},onSubmit:F=>z(void 0,null,function*(){a.editable=!1,l["x-component-props"]!=null||(l["x-component-props"]={}),l["x-component-props"].content=F,a.componentProps.content=F,u==null||u(l),c.emit("patch",{schema:{"x-uid":l["x-uid"],"x-component-props":{content:F}}})})})):(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)([o,r,"nb-markdown nb-markdown-default nb-markdown-table",n]),style:P(x({},e.style),{height:C||"100%",overflowY:C?"auto":"null"}),dangerouslySetInnerHTML:{__html:h}})}),{displayName:"MarkdownVoid"}),MarkdownVoid=e=>(0,import_jsx_runtime.jsx)(FlagProvider,{collectionField:!0,children:(0,import_jsx_runtime.jsx)(MarkdownVoidInner,x({},e))});MarkdownVoid.Designer=MarkdownVoidDesigner;const Markdown=(0,import_react.connect)(import_antd.Input.TextArea,(0,import_react.mapProps)((e,t)=>P(x({autoSize:{maxRows:10,minRows:3}},e),{suffix:(0,import_jsx_runtime.jsx)("span",{children:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffix})})),(0,import_react.mapReadPretty)(e=>(0,import_jsx_runtime.jsx)(MarkdownReadPretty,x({},e)))),MarkdownReadPretty=e=>{const{isDarkTheme:t}=useGlobalTheme(),{wrapSSR:o,hashId:r,componentCls:i}=useStyles$a({isDarkTheme:t}),{html:n="",loading:a}=useParseMarkdown(e.value),l=(0,import_react2.useMemo)(()=>convertToText(n),[n]);if(a)return o((0,import_jsx_runtime.jsx)(import_antd.Spin,{}));const c=(0,import_jsx_runtime.jsx)("div",{className:`${r} ${i} nb-markdown nb-markdown-default nb-markdown-table`,dangerouslySetInnerHTML:{__html:n}});return o((0,import_jsx_runtime.jsx)(ReadPretty$c.TextArea,P(x({},e),{autop:!1,text:l,value:c})))};Markdown.Void=MarkdownVoid;const BlockItemCardContext=(0,import_react2.createContext)({}),BlockItemCard=import_react2.default.forwardRef((e,t)=>{var o=e,{children:r}=o,i=W(o,["children"]);const{token:n}=useToken(),a=i,{title:l,description:c}=a,u=W(a,["title","description"]),m=(0,import_react2.useMemo)(()=>({marginBottom:n.marginBlock,height:"100%"}),[n.marginBlock]),[d,p]=(0,import_react2.useState)(0),h=(0,import_react2.useRef)(null),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react.useFieldSchema)()["x-block-linkage-rules"];(0,import_react2.useEffect)(()=>{const b=setTimeout(()=>{if(h.current){const S=c?h.current.parentElement.parentElement.parentElement.offsetHeight:n.fontSizeLG*n.lineHeightLG+n.padding*2-1;p(S)}else d&&p(0)},500);return()=>clearTimeout(b)},[l,c]);const f=(l||c)&&(0,import_jsx_runtime.jsxs)("div",{ref:h,style:{padding:"8px 0px 8px"},children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",g(l,{ns:NAMESPACE_UI_SCHEMA})]}),c&&(0,import_jsx_runtime.jsx)(MarkdownReadPretty,{value:g(c,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:n.colorTextDescription,borderRadius:"4px"}})]}),v=(0,import_jsx_runtime.jsx)(BlockItemCardContext.Provider,{value:{titleHeight:d},children:(0,import_jsx_runtime.jsx)(import_antd.Card,P(x({ref:t,bordered:!1,style:m},u),{title:f,children:r}))});return _?(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:v}):v});BlockItemCard.displayName="BlockItemCard";const useBlockHeightProps=()=>{var e,t,o;const r=(0,import_react.useFieldSchema)(),i=getCardItemSchema(r),n=(e=useBlockTemplateContext())==null?void 0:e.fieldSchema,a=(0,import_react2.useMemo)(()=>getPageSchema(n||r),[]),{disablePageHeader:l,enablePageTabs:c,hidePageTitle:u}=(a==null?void 0:a["x-component-props"])||{},{titleHeight:m}=(0,import_react2.useContext)(BlockItemCardContext)||{},{allAccessRoutes:d}=useAllAccessDesktopRoutes(),p=useCurrentPageUid(),h=(0,import_react2.useMemo)(()=>findRouteBySchemaUid(p,d),[p,d]);return{heightProps:P(x({},i==null?void 0:i["x-component-props"]),{title:((t=i==null?void 0:i["x-component-props"])==null?void 0:t.title)||((o=i==null?void 0:i["x-component-props"])==null?void 0:o.description),disablePageHeader:l,enablePageTabs:(h==null?void 0:h.enableTabs)||c,hidePageTitle:u,titleHeight:m})}},getPageSchema=e=>e?e["x-component"]==="Page"?e:getPageSchema(e.parent):null,getCardItemSchema=e=>e?["BlockItem","CardItem"].includes(e["x-component"])?e:getCardItemSchema(e.parent):null,useDataBlockParentRecord=({association:e})=>{var t;const o=useCollectionRecordData(),r=useCollectionParentRecordData(),i=useCollectionManager(),n=useCollection();if(!e)return;const a=i.getCollection(e.split(".")[0]);return n.name===a.name||(t=n.getParentCollectionsName)!=null&&t.call(n).includes(a.name)?o:r},usePickActionProps$1=()=>{const e=(0,import_react.useForm)();return{onClick(){console.log("usePickActionProps",e.values)}}};function renderTemplate(e,t){const o=/\{\{\s*((\w+\.?)+)\s*\}\}/g;return e.replace(o,function(r,i){return(0,import_get.default)(t,i)||""})}function getFilteredFormValues(e){const t=import_lodash.default.cloneDeep(e.values),o=[];return e.query("*").forEach(r=>{r&&o.push(r)}),import_lodash.default.uniq(o.filter(r=>{var i,n;const a=((i=r.path)==null?void 0:i.segments)||[],l=a.length<=1?a.join("."):a.slice(0,-1).join(".");return((n=r==null?void 0:r.componentProps)==null?void 0:n.readOnlySubmit)&&!(0,import_get.default)(t,l)[r==null?void 0:r.componentProps.filterTargetKey]}).map(r=>{var i;const n=((i=r.path)==null?void 0:i.segments)||[];return n.length<=1?n.join("."):n.slice(0,-1).join(".")})).forEach((r,i)=>{(i!==0||r.includes("."))&&!t[r]&&import_lodash.default.unset(t,r)}),t}function getFormValues({filterByTk:e,field:t,form:o,fieldNames:r,getField:i,resource:n,actionFields:a}){if(e&&a){const l=Object.keys(o.values).filter(c=>{const u=i(c);return!a.includes(c)&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(u==null?void 0:u.type)});return(0,import_omit.default)(x({},o.values),l)}return getFilteredFormValues(o)}function useCollectValuesToSubmit(){const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r}=useBlockRequestContext(),{fields:i,getField:n,getTreeParentField:a,name:l}=useCollection_deprecated(),c=i.map(_=>_.name),{fieldSchema:u}=useActionContext(),{getActiveFieldsName:m}=useFormActiveFields()||{},d=useVariables$1(),p=useLocalVariables$1({currentForm:e}),h=(0,import_react.useFieldSchema)(),g=useTreeParentRecord();return(0,import_react2.useCallback)(()=>z(this,null,function*(){var _,f,v,b;const{assignedValues:S={},overwriteValues:C}=(_=h==null?void 0:h["x-action-settings"])!=null?_:{},y=getFormValues({filterByTk:t,field:o,form:e,fieldNames:c,getField:n,resource:r,actionFields:(m==null?void 0:m("form"))||[]}),F={},I=Object.keys(S).map(T=>z(this,null,function*(){const k=S[T],N=n(T);if(isVariable$1(k)){const{value:M}=(yield d==null?void 0:d.parseVariable(k,p))||{};M!=null&&(F[T]=transformVariableValue(M,{targetCollectionField:N}))}else k!==""&&(F[T]=k)}));if(yield Promise.all(I),(f=u==null?void 0:u["x-component-props"])==null?void 0:f.addChild){const T=a();y[(v=T==null?void 0:T.name)!=null?v:"parent"]=g,y[(b=T==null?void 0:T.foreignKey)!=null?b:"parentId"]=g==null?void 0:g.id}return x(x(x({},y),C),F)}),[h,o,c,u,t,e,m,n,a,p,l,r,g,d])}const useCreateActionProps=()=>{var e;const t=useFilterByTk(),o=useCollectionRecord(),r=(0,import_react.useForm)(),{field:i,resource:n}=useBlockRequestContext(),{setVisible:a,setSubmitted:l,setFormValueChanged:c}=useActionContext(),u=useNavigateNoUpdate(),m=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)(),p=useCompile(),{modal:h}=import_antd.App.useApp(),{t:g}=(0,import_react_i18next.useTranslation)(),{updateAssociationValues:_}=useFormBlockContext(),f=useCollectValuesToSubmit(),v=o.isNew?d.componentProps.saveMode||"create":"update",b=((e=d.componentProps.filterKeys)==null?void 0:e.checked)||[],S=useLocalVariables$1(),C=useVariables$1();return{onClick(){return z(this,null,function*(){var y,F;const{onSuccess:I,skipValidator:T,triggerWorkflows:k}=(y=m==null?void 0:m["x-action-settings"])!=null?y:{},{manualClose:N,redirecting:M,redirectTo:L,successMessage:D,actionAfterSuccess:R}=I||{};T||(yield r.submit());const $=yield f();d.data=i.data||{},d.data.loading=!0;try{const w=yield n[v]({values:$,filterKeys:b,filterByTk:t,triggerWorkflows:k!=null&&k.length?k.map(B=>[B.workflowKey,B.context].filter(Boolean).join("!")).join(","):void 0,updateAssociationValues:_});let j=L;if(L&&(j=yield getVariableValue(L,{variables:C,localVariables:[...S,{name:"$record",ctx:new Proxy((F=w==null?void 0:w.data)==null?void 0:F.data,{})}]})),(R==="previous"||!R&&M!==!0)&&(a==null||a(!1)),l==null||l(!0),c==null||c(!1),d.data.loading=!1,d.data.data=w,!D){import_antd.message.success(g("Saved successfully")),yield resetFormCorrectly(r),(M&&!R||R==="redirect")&&j&&((0,import_client.isURL)(j)?window.location.href=j:u(j));return}N?h.success({title:p(D),onOk:()=>z(this,null,function*(){yield resetFormCorrectly(r),(M&&!R||R==="redirect")&&j&&((0,import_client.isURL)(j)?window.location.href=j:u(j))})}):(import_antd.message.success(p(D)),yield resetFormCorrectly(r),(M&&!R||R==="redirect")&&j&&((0,import_client.isURL)(j)?window.location.href=j:u(j)))}catch{d.data.loading=!1}})}}},useAssociationCreateActionProps=()=>{var e;const t=(0,import_react.useForm)(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,fieldSchema:a,setSubmitted:l}=useActionContext(),c=(0,import_react.useFieldSchema)(),u=(0,import_react.useField)(),{fields:m,getField:d,getTreeParentField:p,name:h}=useCollection_deprecated(),g=useCompile(),_=useFilterByTk(),f=useRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:t}),{getActiveFieldsName:S}=useFormActiveFields()||{},C=u.componentProps.saveMode||"create",y=((e=u.componentProps.filterKeys)==null?void 0:e.checked)||[];return{onClick(){return z(this,null,function*(){var F,I,T,k,N,M;const L=m.map(q=>q.name),{assignedValues:D={},onSuccess:R,overwriteValues:$,skipValidator:w,triggerWorkflows:j}=(F=c==null?void 0:c["x-action-settings"])!=null?F:{},B=(I=a==null?void 0:a["x-component-props"])==null?void 0:I.addChild,{successMessage:O}=R||{},E={},V=Object.keys(D).map(q=>z(this,null,function*(){const G=D[q],Y=d(q);if(isVariable$1(G)){const{value:K}=(yield v==null?void 0:v.parseVariable(G,b))||{};K&&(E[q]=transformVariableValue(K,{targetCollectionField:Y}))}else G!==""&&(E[q]=G)}));yield Promise.all(V),w||(yield t.submit());const U=getFormValues({filterByTk:_,field:o,form:t,fieldNames:L,getField:d,resource:r,actionFields:(S==null?void 0:S("form"))||[]});if(B){const q=p();U[(T=q==null?void 0:q.name)!=null?T:"parent"]=f,U[(k=q==null?void 0:q.foreignKey)!=null?k:"parentId"]=f.id}u.data=o.data||{},u.data.loading=!0;try{const q=yield r[C]({values:x(x(x({},U),$),E),filterKeys:y,triggerWorkflows:j!=null&&j.length?j.map(G=>[G.workflowKey,G.context].filter(Boolean).join("!")).join(","):void 0});if(u.data.loading=!1,u.data.data=q,(M=(N=i==null?void 0:i.service)==null?void 0:N.refresh)==null||M.call(N),n==null||n(!1),l==null||l(!0),!O)return;import_antd.message.success(g(O))}catch{u.data.data=null,u.data.loading=!1}})}}},findFilterTargets=e=>{for(;e;){if(e["x-filter-targets"])return{targets:e["x-filter-targets"],uid:e["x-uid"]};e=e.parent}return{}},updateFilterTargets=(e,t)=>{for(;e;){if(e["x-filter-targets"]){e["x-filter-targets"]=t;return}e=e.parent}},useDoFilter=()=>{const e=(0,import_react.useForm)(),{getDataBlocks:t}=useFilterBlock(),o=useCollectionManager(),{getOperators:r}=useOperators(),i=(0,import_react.useFieldSchema)(),{name:n}=useCollection(),{targets:a=[],uid:l}=(0,import_react2.useMemo)(()=>findFilterTargets(i),[i]),c=(0,import_react2.useCallback)(()=>removeNullCondition(transformToFilter(e.values,r(),o.getCollectionField.bind(o),n)),[e.values,o,r,n]),u=(0,import_react2.useCallback)((...m)=>z(void 0,[...m],function*({doNothingWhenFilterIsEmpty:d=!1}={}){try{yield Promise.all(t().map(p=>z(void 0,null,function*(){var h,g,_,f;if(!a.find(C=>C.uid===p.uid))return;const v=((h=p.service.params)==null?void 0:h[0])||{},b=((_=(g=p.service.params)==null?void 0:g[1])==null?void 0:_.filters)||{};b[l]=c();const S=mergeFilter([...Object.values(b).map(C=>removeNullCondition(C)),p.defaultFilter]);if(import_lodash.default.isEmpty(b[l])&&((f=p.clearSelection)==null||f.call(p)),!(d&&import_lodash.default.isEmpty(b[l])))return p.dataLoadingMode==="manual"&&import_lodash.default.isEmpty(b[l])?p.clearData():p.doFilter(P(x({},v),{page:1,filter:S}),{filters:b})})))}catch(p){console.error(p)}}),[t,c,a,l]);return(0,import_react2.useEffect)(()=>{setTimeout(()=>{u({doNothingWhenFilterIsEmpty:!0})},500)},[u]),{doFilter:u,getFilterFromCurrentForm:c}},useFilterBlockActionProps=()=>{const{doFilter:e}=useDoFilter(),t=(0,import_react.useField)();t.data=t.data||{};const o=(0,import_react.useForm)();return{onClick(){return z(this,null,function*(){yield o.submit(),t.data.loading=!0,yield e(),t.data.loading=!1})}}},useDoReset=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getDataBlocks:o}=useFilterBlock(),{targets:r,uid:i}=findFilterTargets(t),{doFilter:n,getFilterFromCurrentForm:a}=useDoFilter();return{doReset:()=>z(void 0,null,function*(){var l;if(yield e.reset(void 0,{forceClear:!!((l=t==null?void 0:t["x-component-props"])!=null&&l.clearDefaultValue)}),import_lodash.default.isEmpty(a()))return doReset({getDataBlocks:o,targets:r,uid:i});yield n()})}},useResetBlockActionProps=()=>{const e=(0,import_react.useField)(),{doReset:t}=useDoReset();return e.data=e.data||{},{onClick(){return z(this,null,function*(){e.data.loading=!0,yield t(),e.data.loading=!1})}}},useCustomizeUpdateActionProps=()=>{const{resource:e,__parent:t,service:o}=useBlockRequestContext(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useNavigateNoUpdate(),a=useCompile(),l=(0,import_react.useForm)(),{modal:c}=import_antd.App.useApp(),u=useVariables$1(),m=useLocalVariables$1({currentForm:l}),{name:d,getField:p}=useCollection_deprecated(),{setVisible:h}=useActionContext();return{onClick(g,_){return z(this,null,function*(){var f,v,b,S;const{assignedValues:C={},onSuccess:y,skipValidator:F,triggerWorkflows:I}=(f=i==null?void 0:i["x-action-settings"])!=null?f:{},{manualClose:T,redirecting:k,redirectTo:N,successMessage:M,actionAfterSuccess:L}=y||{},D={},R=Object.keys(C).map(j=>z(this,null,function*(){const B=C[j],O=p(j);if(isVariable$1(B)){const{value:E}=(yield u==null?void 0:u.parseVariable(B,m))||{};E&&(D[j]=transformVariableValue(E,{targetCollectionField:O}))}else B!==""&&(D[j]=B)}));yield Promise.all(R),F===!1&&(yield l.submit());const $=yield e.update({filterByTk:r,values:x({},D),triggerWorkflows:I!=null&&I.length?I.map(j=>[j.workflowKey,j.context].filter(Boolean).join("!")).join(","):void 0});let w=N;N&&(w=yield getVariableValue(N,{variables:u,localVariables:[...m,{name:"$record",ctx:new Proxy((v=$==null?void 0:$.data)==null?void 0:v.data,{})}]})),(L==="previous"||!L&&k!==!0)&&(h==null||h(!1)),_&&(_==null||_()),e instanceof TableFieldResource||(S=(b=t==null?void 0:t.service)==null?void 0:b.refresh)==null||S.call(b),M&&(T?c.success({title:a(M),onOk:()=>z(this,null,function*(){(k&&!L||L==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:n(w))})}):(import_antd.message.success(a(M)),(k&&!L||L==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:n(w))))})}}},useCustomizeBulkUpdateActionProps=()=>{var e,t,o,r;const{field:i,resource:n,__parent:a,service:l}=useBlockRequestContext(),c=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),u=(0,import_react.useFieldSchema)(),m=useTableBlockContext(),{rowKey:d}=m,p=(r=(o=(t=(e=m.field)==null?void 0:e.data)==null?void 0:t.selectedRowKeys)!=null?o:c==null?void 0:c.selectedRecordKeys)!=null?r:{},h=useNavigateNoUpdate(),g=useCompile(),{t:_}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useField)(),{modal:v}=import_antd.App.useApp(),b=useVariables$1();useRecord();const{name:S,getField:C}=useCollection_deprecated(),y=useLocalVariables$1(),{setVisible:F}=useActionContext();return{onClick(){return z(this,null,function*(){var I;const{assignedValues:T={},onSuccess:k,updateMode:N}=(I=u==null?void 0:u["x-action-settings"])!=null?I:{},{manualClose:M,redirecting:L,redirectTo:D,successMessage:R,actionAfterSuccess:$}=k||{};f.data=i.data||{},f.data.loading=!0;const w={},j=Object.keys(T).map(B=>z(this,null,function*(){const O=T[B],E=C(B);if(isVariable$1(O)){const{value:V}=(yield b==null?void 0:b.parseVariable(O,y))||{};V&&(w[B]=transformVariableValue(V,{targetCollectionField:E}))}else O!==""&&(w[B]=O)}));yield Promise.all(j),($==="previous"||!$&&L!==!0)&&(F==null||F(!1)),v.confirm({title:_("Bulk update"),content:_(N==="selected"?"Update selected data?":"Update all data?"),onOk(){return z(this,null,function*(){var B,O,E,V;const{filter:U}=(O=(B=l.params)==null?void 0:B[0])!=null?O:{},q={values:x({},w),filter:U,forceUpdate:!1};if(N==="selected"){if(!(p!=null&&p.length)){import_antd.message.error(_("Please select the records to be updated")),f.data.loading=!1;return}q.filter={$and:[{[d||"id"]:{$in:p}}]}}q.filter||(q.forceUpdate=!0);try{yield n.update(q)}catch{}finally{f.data.loading=!1}n instanceof TableFieldResource||(V=(E=a==null?void 0:a.service)==null?void 0:E.refresh)==null||V.call(E),R&&(M?v.success({title:g(R),onOk:()=>z(this,null,function*(){(L&&!$||$==="redirect")&&D&&((0,import_client.isURL)(D)?window.location.href=D:h(D))})}):(import_antd.message.success(g(R)),(L&&!$||$==="redirect")&&D&&((0,import_client.isURL)(D)?window.location.href=D:h(D))))})},onCancel(){return z(this,null,function*(){f.data.loading=!1})}})})}}},useCustomizeRequestActionProps=()=>{var e;const t=useAPIClient(),o=useNavigateNoUpdate(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useCompile(),a=(0,import_react.useForm)(),{fields:l,getField:c}=useCollection_deprecated(),{field:u,resource:m,__parent:d,service:p}=useBlockRequestContext(),h=useRecord(),g=useCurrentUserContext(),_=(e=g==null?void 0:g.data)==null?void 0:e.data,f=(0,import_react.useField)(),{t:v}=(0,import_react_i18next.useTranslation)(),{setVisible:b}=useActionContext(),{modal:S}=import_antd.App.useApp(),{getActiveFieldsName:C}=useFormActiveFields()||{};return{onClick(){return z(this,null,function*(){var y,F,I,T;const{skipValidator:k,onSuccess:N,requestSettings:M}=(y=i==null?void 0:i["x-action-settings"])!=null?y:{},{manualClose:L,redirecting:D,redirectTo:R,successMessage:$,actionAfterSuccess:w}=N||{},j=i==null?void 0:i["x-action"];if(!M.url)return;k!==!0&&j==="customize:form:request"&&(yield a.submit());const B=M.headers?JSON.parse(M.headers):{},O=M.params?JSON.parse(M.params):{},E=M.data?JSON.parse(M.data):{};if(j==="customize:form:request"&&["POST","PUT","PATCH"].includes(M.method)){const U=l.map(G=>G.name),q=getFormValues({filterByTk:r,field:u,form:a,fieldNames:U,getField:c,resource:m,actionFields:(C==null?void 0:C("form"))||[]});Object.assign(E,q)}const V={url:renderTemplate(M.url,{currentRecord:h,currentUser:_}),method:M.method,headers:(0,import_client.parse)(B)({currentRecord:h,currentUser:_}),params:(0,import_client.parse)(O)({currentRecord:h,currentUser:_}),data:(0,import_client.parse)(E)({currentRecord:h,currentUser:_})};f.data=u.data||{},f.data.loading=!0;try{yield t.request(x({},V)),f.data.loading=!1,m instanceof TableFieldResource||(I=(F=d==null?void 0:d.service)==null?void 0:F.refresh)==null||I.call(F),(T=p==null?void 0:p.refresh)==null||T.call(p),j==="customize:form:request"&&(w==="previous"||!w&&D!==!0)&&(b==null||b(!1)),$||(import_antd.message.success(v("Saved successfully")),yield resetFormCorrectly(a),(D&&!w||w==="redirect")&&R&&((0,import_client.isURL)(R)?window.location.href=R:o(R))),L?S.success({title:n($),onOk:()=>z(this,null,function*(){(D&&!w||w==="redirect")&&R&&((0,import_client.isURL)(R)?window.location.href=R:o(R))})}):import_antd.message.success(n($))}finally{f.data.loading=!1}})}}},useUpdateActionProps=()=>{const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setFormValueChanged:a}=useActionContext(),l=(0,import_react.useFieldSchema)(),c=useNavigateNoUpdate(),{fields:u,getField:m,name:d}=useCollection_deprecated(),p=useCompile(),h=(0,import_react.useField)(),{updateAssociationValues:g}=useFormBlockContext(),{modal:_}=import_antd.App.useApp(),f=useParamsFromRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:e}),{getActiveFieldsName:S}=useFormActiveFields()||{};return{onClick(C,y){return z(this,null,function*(){var F,I;const{assignedValues:T={},onSuccess:k,overwriteValues:N,skipValidator:M,triggerWorkflows:L}=(F=l==null?void 0:l["x-action-settings"])!=null?F:{},{manualClose:D,redirecting:R,redirectTo:$,successMessage:w,actionAfterSuccess:j}=k||{},B={},O=Object.keys(T).map(U=>z(this,null,function*(){const q=T[U],G=m(U);if(isVariable$1(q)){const{value:Y}=(yield v==null?void 0:v.parseVariable(q,b))||{};Y&&(B[U]=transformVariableValue(Y,{targetCollectionField:G}))}else q!==""&&(B[U]=q)}));yield Promise.all(O),M||(yield e.submit());const E=u.map(U=>U.name),V=getFormValues({filterByTk:t,field:o,form:e,fieldNames:E,getField:m,resource:r,actionFields:(S==null?void 0:S("form"))||[]});h.data=o.data||{},h.data.loading=!0;try{const U=yield r.update(P(x({filterByTk:t,values:x(x(x({},V),N),B)},f),{updateAssociationValues:g,triggerWorkflows:L!=null&&L.length?L.map(G=>[G.workflowKey,G.context].filter(Boolean).join("!")).join(","):void 0}));h.data.loading=!1,y&&(y==null||y());let q=$;if($&&(q=yield getVariableValue($,{variables:v,localVariables:[...b,{name:"$record",ctx:new Proxy((I=U==null?void 0:U.data)==null?void 0:I.data,{})}]})),(j==="previous"||!j&&R!==!0)&&(n==null||n(!1)),a==null||a(!1),!w)return;D?_.success({title:p(w),onOk:()=>z(this,null,function*(){yield e.reset(),(R&&!j||j==="redirect")&&q&&((0,import_client.isURL)(q)?window.location.href=q:c(q))})}):(import_antd.message.success(p(w)),(R&&!j||j==="redirect"||j==="redirect")&&q&&((0,import_client.isURL)(q)?window.location.href=q:c(q)))}catch{h.data.loading=!1}})}}},useDestroyActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:a}=useActionContext(),l=useParamsFromRecord(),c=(0,import_react.useFieldSchema)();return{onClick(u,m){return z(this,null,function*(){var d,p,h,g,_,f,v;const{triggerWorkflows:b}=(d=c==null?void 0:c["x-action-settings"])!=null?d:{};yield t.destroy(x({filterByTk:e,triggerWorkflows:b!=null&&b.length?b.map(F=>[F.workflowKey,F.context].filter(Boolean).join("!")).join(","):void 0},l));const{count:S=0,page:C=0,pageSize:y=0}=((p=o==null?void 0:o.data)==null?void 0:p.meta)||{};if(S%y===1&&C!==1){const F=(h=o.params[0])==null?void 0:h.page,I=(_=(g=o.data)==null?void 0:g.meta)==null?void 0:_.totalPage;F===I&&o.params[0]&&F!==1&&(o.params[0].page=F-1)}m&&(m==null||m()),a==null||a(!0),r&&r!=="TableField"&&((v=(f=i==null?void 0:i.service)==null?void 0:f.refresh)==null||v.call(f),n==null||n(!1),a==null||a(!0))})}}},useRemoveActionProps=e=>{const t=useFilterByTk(),o=useAPIClient().resource(e,t);return{onClick(r){return z(this,null,function*(){yield o.remove({values:[r.id]})})}}},useDisassociateActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:a,setFormValueChanged:l}=useActionContext();return{onClick(c,u){return z(this,null,function*(){var m,d,p,h;yield t.remove({values:[e]});const{count:g=0,page:_=0,pageSize:f=0}=((m=o==null?void 0:o.data)==null?void 0:m.meta)||{};g%f===1&&_!==1?o.run(P(x({},(d=o==null?void 0:o.params)==null?void 0:d[0]),{page:_-1})):u&&(u==null||u()),a==null||a(!0),r&&r!=="TableField"&&((h=(p=i==null?void 0:i.service)==null?void 0:p.refresh)==null||h.call(p),n==null||n(!1),l==null||l(!1))})}}},useBulkDestroyActionProps=()=>{const{field:e}=useBlockRequestContext(),{resource:t,service:o}=useBlockRequestContext(),{setSubmitted:r}=useActionContext(),i=useCollection_deprecated(),{filterTargetKey:n}=i;return{onClick(a,l){return z(this,null,function*(){var c,u,m,d,p,h,g;let _=(c=e.data)==null?void 0:c.selectedRowKeys;if(Array.isArray(n)&&(_=e.data.selectedRowData.map(b=>{const S={};return n.map(C=>{S[C]=b[C]}),S})),!((m=(u=e==null?void 0:e.data)==null?void 0:u.selectedRowKeys)!=null&&m.length))return;yield t.destroy({filterByTk:_}),e.data.selectedRowKeys=[];const f=(d=o.params[0])==null?void 0:d.page,v=(h=(p=o.data)==null?void 0:p.meta)==null?void 0:h.totalPage;f===v&&o.params[0]&&f!==1&&(o.params[0].page=f-1),l&&(l==null||l()),r==null||r(!0),(g=o==null?void 0:o.refresh)==null||g.call(o)})}}},useRefreshActionProps=()=>{const{service:e}=useBlockRequestContext();return{onClick(){return z(this,null,function*(){var t;(t=e==null?void 0:e.refresh)==null||t.call(e)})}}},useDetailsPaginationProps=()=>{var e,t,o,r,i,n,a,l,c,u,m,d,p,h,g;const _=useDetailsBlockContext(),f=((o=(t=(e=_.service)==null?void 0:e.data)==null?void 0:t.meta)==null?void 0:o.count)||0,v=(n=(i=(r=_.service)==null?void 0:r.data)==null?void 0:i.meta)==null?void 0:n.page;return!f&&v?{simple:!0,current:((c=(l=(a=_.service)==null?void 0:a.data)==null?void 0:l.meta)==null?void 0:c.page)||1,pageSize:1,showSizeChanger:!1,align:"center",onChange(b){return z(this,null,function*(){var S,C;const y=(C=(S=_.service)==null?void 0:S.params)==null?void 0:C[0];_.service.run(P(x({},y),{page:b}))})},style:{marginTop:24,textAlign:"center"},showTotal:!1,showTitle:!1,total:(d=(m=(u=_.service)==null?void 0:u.data)==null?void 0:m.data)!=null&&d.length?1*v+1:1*v,className:import_css.css`
|
|
625
|
+
https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModules=r,o&&(i.originalError=o),i}if(typeof define<"u")return;if(typeof requirejs<"u"){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}typeof require<"u"&&!isFunction(require)&&(cfg=require,require=void 0);function newContext(e){var t,o,r,i,n,a={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},l={},c={},u={},m=[],d={},p={},h={},g=1,_=1;function f(j){var B,O;for(B=0;B<j.length;B++)if(O=j[B],O===".")j.splice(B,1),B-=1;else if(O===".."){if(B===0||B===1&&j[2]===".."||j[B-1]==="..")continue;B>0&&(j.splice(B-1,2),B-=2)}}function v(j,B,O){var E,V,U,q,G,Y,K,H,J,X,Q,oe,ee=B&&B.split("/"),ie=a.map,ae=ie&&ie["*"];if(j&&(j=j.split("/"),K=j.length-1,a.nodeIdCompat&&jsSuffixRegExp.test(j[K])&&(j[K]=j[K].replace(jsSuffixRegExp,"")),j[0].charAt(0)==="."&&ee&&(oe=ee.slice(0,ee.length-1),j=oe.concat(j)),f(j),j=j.join("/")),O&&ie&&(ee||ae)){U=j.split("/");e:for(q=U.length;q>0;q-=1){if(Y=U.slice(0,q).join("/"),ee){for(G=ee.length;G>0;G-=1)if(V=getOwn(ie,ee.slice(0,G).join("/")),V&&(V=getOwn(V,Y),V)){H=V,J=q;break e}}!X&&ae&&getOwn(ae,Y)&&(X=getOwn(ae,Y),Q=q)}!H&&X&&(H=X,J=Q),H&&(U.splice(0,J,H),j=U.join("/"))}return E=getOwn(a.pkgs,j),E||j}function b(j){isBrowser&&each(scripts(),function(B){if(B.getAttribute("data-requiremodule")===j&&B.getAttribute("data-requirecontext")===r.contextName)return B.parentNode.removeChild(B),!0})}function S(j){var B=getOwn(a.paths,j);if(B&&isArray(B)&&B.length>1)return B.shift(),r.require.undef(j),r.makeRequire(null,{skipMap:!0})([j]),!0}function C(j){var B,O=j?j.indexOf("!"):-1;return O>-1&&(B=j.substring(0,O),j=j.substring(O+1,j.length)),[B,j]}function y(j,B,O,E){var V,U,q,G,Y=null,K=B?B.name:null,H=j,J=!0,X="";return j||(J=!1,j="_@r"+(g+=1)),G=C(j),Y=G[0],j=G[1],Y&&(Y=v(Y,K,E),U=getOwn(d,Y)),j&&(Y?O?X=j:U&&U.normalize?X=U.normalize(j,function(Q){return v(Q,K,E)}):X=j.indexOf("!")===-1?v(j,K,E):j:(X=v(j,K,E),G=C(X),Y=G[0],X=G[1],O=!0,V=r.nameToUrl(X))),q=Y&&!U&&!O?"_unnormalized"+(_+=1):"",{prefix:Y,name:X,parentMap:B,unnormalized:!!q,url:V,originalName:H,isDefine:J,id:(Y?Y+"!"+X:X)+q}}function F(j){var B=j.id,O=getOwn(l,B);return O||(O=l[B]=new r.Module(j)),O}function I(j,B,O){var E=j.id,V=getOwn(l,E);hasProp(d,E)&&(!V||V.defineEmitComplete)?B==="defined"&&O(d[E]):(V=F(j),V.error&&B==="error"?O(V.error):V.on(B,O))}function T(j,B){var O=j.requireModules,E=!1;B?B(j):(each(O,function(V){var U=getOwn(l,V);U&&(U.error=j,U.events.error&&(E=!0,U.emit("error",j)))}),E||req.onError(j))}function k(){globalDefQueue.length&&(each(globalDefQueue,function(j){var B=j[0];typeof B=="string"&&(r.defQueueMap[B]=!0),m.push(j)}),globalDefQueue=[])}i={require:function(j){return j.require?j.require:j.require=r.makeRequire(j.map)},exports:function(j){if(j.usingExports=!0,j.map.isDefine)return j.exports?d[j.map.id]=j.exports:j.exports=d[j.map.id]={}},module:function(j){return j.module?j.module:j.module={id:j.map.id,uri:j.map.url,config:function(){return getOwn(a.config,j.map.id)||{}},exports:j.exports||(j.exports={})}}};function N(j){delete l[j],delete c[j]}function M(j,B,O){var E=j.map.id;j.error?j.emit("error",j.error):(B[E]=!0,each(j.depMaps,function(V,U){var q=V.id,G=getOwn(l,q);G&&!j.depMatched[U]&&!O[q]&&(getOwn(B,q)?(j.defineDep(U,d[q]),j.check()):M(G,B,O))}),O[E]=!0)}function L(){var j,B,O=a.waitSeconds*1e3,E=O&&r.startTime+O<new Date().getTime(),V=[],U=[],q=!1,G=!0;if(!t){if(t=!0,eachProp(c,function(Y){var K=Y.map,H=K.id;if(Y.enabled&&(K.isDefine||U.push(Y),!Y.error)){if(!Y.inited&&E)S(H)?(B=!0,q=!0):(V.push(H),b(H));else if(!Y.inited&&Y.fetched&&K.isDefine&&(q=!0,!K.prefix))return G=!1}}),E&&V.length)return j=makeError("timeout","Load timeout for modules: "+V,null,V),j.contextName=r.contextName,T(j);G&&each(U,function(Y){M(Y,{},{})}),(!E||B)&&q&&(isBrowser||isWebWorker)&&!n&&(n=setTimeout(function(){n=0,L()},50)),t=!1}}o=function(j){this.events=getOwn(u,j.id)||{},this.map=j,this.shim=getOwn(a.shim,j.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},o.prototype={init:function(j,B,O,E){E=E||{},!this.inited&&(this.factory=B,O?this.on("error",O):this.events.error&&(O=bind(this,function(V){this.emit("error",V)})),this.depMaps=j&&j.slice(0),this.errback=O,this.inited=!0,this.ignore=E.ignore,E.enabled||this.enabled?this.enable():this.check())},defineDep:function(j,B){this.depMatched[j]||(this.depMatched[j]=!0,this.depCount-=1,this.depExports[j]=B)},fetch:function(){if(!this.fetched){this.fetched=!0,r.startTime=new Date().getTime();var j=this.map;if(this.shim)r.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return j.prefix?this.callPlugin():this.load()}));else return j.prefix?this.callPlugin():this.load()}},load:function(){var j=this.map.url;p[j]||(p[j]=!0,r.load(this.map.id,j))},check:function(){if(!(!this.enabled||this.enabling)){var j,B,O=this.map.id,E=this.depExports,V=this.exports,U=this.factory;if(!this.inited)hasProp(r.defQueueMap,O)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(U)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{V=r.execCb(O,U,E,V)}catch(G){j=G}else V=r.execCb(O,U,E,V);if(this.map.isDefine&&V===void 0&&(B=this.module,B?V=B.exports:this.usingExports&&(V=this.exports)),j)return j.requireMap=this.map,j.requireModules=this.map.isDefine?[this.map.id]:null,j.requireType=this.map.isDefine?"define":"require",T(this.error=j)}else V=U;if(this.exports=V,this.map.isDefine&&!this.ignore&&(d[O]=V,req.onResourceLoad)){var q=[];each(this.depMaps,function(G){q.push(G.normalizedMap||G)}),req.onResourceLoad(r,this.map,q)}N(O),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var j=this.map,B=j.id,O=y(j.prefix);this.depMaps.push(O),I(O,"defined",bind(this,function(E){var V,U,q,G=getOwn(h,this.map.id),Y=this.map.name,K=this.map.parentMap?this.map.parentMap.name:null,H=r.makeRequire(j.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){E.normalize&&(Y=E.normalize(Y,function(J){return v(J,K,!0)})||""),U=y(j.prefix+"!"+Y,this.map.parentMap,!0),I(U,"defined",bind(this,function(J){this.map.normalizedMap=U,this.init([],function(){return J},null,{enabled:!0,ignore:!0})})),q=getOwn(l,U.id),q&&(this.depMaps.push(U),this.events.error&&q.on("error",bind(this,function(J){this.emit("error",J)})),q.enable());return}if(G){this.map.url=r.nameToUrl(G),this.load();return}V=bind(this,function(J){this.init([],function(){return J},null,{enabled:!0})}),V.error=bind(this,function(J){this.inited=!0,this.error=J,J.requireModules=[B],eachProp(l,function(X){X.map.id.indexOf(B+"_unnormalized")===0&&N(X.map.id)}),T(J)}),V.fromText=bind(this,function(J,X){var Q=j.name,oe=y(Q),ee=useInteractive;X&&(J=X),ee&&(useInteractive=!1),F(oe),hasProp(a.config,B)&&(a.config[Q]=a.config[B]);try{req.exec(J)}catch(ie){return T(makeError("fromtexteval","fromText eval for "+B+" failed: "+ie,ie,[B]))}ee&&(useInteractive=!0),this.depMaps.push(oe),r.completeLoad(Q),H([Q],V)}),E.load(j.name,H,V,a)})),r.enable(O,this),this.pluginMaps[O.id]=O},enable:function(){c[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(j,B){var O,E,V;if(typeof j=="string"){if(j=y(j,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[B]=j,V=getOwn(i,j.id),V){this.depExports[B]=V(this);return}this.depCount+=1,I(j,"defined",bind(this,function(U){this.undefed||(this.defineDep(B,U),this.check())})),this.errback?I(j,"error",bind(this,this.errback)):this.events.error&&I(j,"error",bind(this,function(U){this.emit("error",U)}))}O=j.id,E=l[O],!hasProp(i,O)&&E&&!E.enabled&&r.enable(j,this)})),eachProp(this.pluginMaps,bind(this,function(j){var B=getOwn(l,j.id);B&&!B.enabled&&r.enable(j,this)})),this.enabling=!1,this.check()},on:function(j,B){var O=this.events[j];O||(O=this.events[j]=[]),O.push(B)},emit:function(j,B){each(this.events[j],function(O){O(B)}),j==="error"&&delete this.events[j]}};function D(j){hasProp(d,j[0])||F(y(j[0],null,!0)).init(j[1],j[2])}function R(j,B,O,E){j.detachEvent&&!isOpera?E&&j.detachEvent(E,B):j.removeEventListener(O,B,!1)}function $(j){var B=j.currentTarget||j.srcElement;return R(B,r.onScriptLoad,"load","onreadystatechange"),R(B,r.onScriptError,"error"),{node:B,id:B&&B.getAttribute("data-requiremodule")}}function w(){var j;for(k();m.length;){if(j=m.shift(),j[0]===null)return T(makeError("mismatch","Mismatched anonymous define() module: "+j[j.length-1]));D(j)}r.defQueueMap={}}return r={config:a,contextName:e,registry:l,defined:d,urlFetched:p,defQueue:m,defQueueMap:{},Module:o,makeModuleMap:y,nextTick:req.nextTick,onError:T,configure:function(j){if(j.baseUrl&&j.baseUrl.charAt(j.baseUrl.length-1)!=="/"&&(j.baseUrl+="/"),typeof j.urlArgs=="string"){var B=j.urlArgs;j.urlArgs=function(V,U){return(U.indexOf("?")===-1?"?":"&")+B}}var O=a.shim,E={paths:!0,bundles:!0,config:!0,map:!0};eachProp(j,function(V,U){E[U]?(a[U]||(a[U]={}),mixin(a[U],V,!0,!0)):a[U]=V}),j.bundles&&eachProp(j.bundles,function(V,U){each(V,function(q){q!==U&&(h[q]=U)})}),j.shim&&(eachProp(j.shim,function(V,U){isArray(V)&&(V={deps:V}),(V.exports||V.init)&&!V.exportsFn&&(V.exportsFn=r.makeShimExports(V)),O[U]=V}),a.shim=O),j.packages&&each(j.packages,function(V){var U,q;V=typeof V=="string"?{name:V}:V,q=V.name,U=V.location,U&&(a.paths[q]=V.location),a.pkgs[q]=V.name+"/"+(V.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(l,function(V,U){!V.inited&&!V.map.unnormalized&&(V.map=y(U,null,!0))}),(j.deps||j.callback)&&r.require(j.deps||[],j.callback)},makeShimExports:function(j){function B(){var O;return j.init&&(O=j.init.apply(global,arguments)),O||j.exports&&getGlobal(j.exports)}return B},makeRequire:function(j,B){B=B||{};function O(E,V,U){var q,G,Y;return B.enableBuildCallback&&V&&isFunction(V)&&(V.__requireJsBuild=!0),typeof E=="string"?isFunction(V)?T(makeError("requireargs","Invalid require call"),U):j&&hasProp(i,E)?i[E](l[j.id]):req.get?req.get(r,E,j,O):(G=y(E,j,!1,!0),q=G.id,hasProp(d,q)?d[q]:T(makeError("notloaded",'Module name "'+q+'" has not been loaded yet for context: '+e+(j?"":". Use require([])")))):(w(),r.nextTick(function(){w(),Y=F(y(null,j)),Y.skipMap=B.skipMap,Y.init(E,V,U,{enabled:!0}),L()}),O)}return mixin(O,{isBrowser,toUrl:function(E){var V,U=E.lastIndexOf("."),q=E.split("/")[0],G=q==="."||q==="..";return U!==-1&&(!G||U>1)&&(V=E.substring(U,E.length),E=E.substring(0,U)),r.nameToUrl(v(E,j&&j.id,!0),V,!0)},defined:function(E){return hasProp(d,y(E,j,!1,!0).id)},specified:function(E){return E=y(E,j,!1,!0).id,hasProp(d,E)||hasProp(l,E)}}),j||(O.undef=function(E){k();var V=y(E,j,!0),U=getOwn(l,E);U.undefed=!0,b(E),delete d[E],delete p[V.url],delete u[E],eachReverse(m,function(q,G){q[0]===E&&m.splice(G,1)}),delete r.defQueueMap[E],U&&(U.events.defined&&(u[E]=U.events),N(E))}),O},enable:function(j){var B=getOwn(l,j.id);B&&F(j).enable()},completeLoad:function(j){var B,O,E,V=getOwn(a.shim,j)||{},U=V.exports;for(k();m.length;){if(O=m.shift(),O[0]===null){if(O[0]=j,B)break;B=!0}else O[0]===j&&(B=!0);D(O)}if(r.defQueueMap={},E=getOwn(l,j),!B&&!hasProp(d,j)&&E&&!E.inited){if(a.enforceDefine&&(!U||!getGlobal(U)))return S(j)?void 0:T(makeError("nodefine","No define call for "+j,null,[j]));D([j,V.deps||[],V.exportsFn])}L()},nameToUrl:function(j,B,O){var E,V,U,q,G,Y,K,H=getOwn(a.pkgs,j);if(H&&(j=H),K=getOwn(h,j),K)return r.nameToUrl(K,B,O);if(req.jsExtRegExp.test(j))G=j+(B||"");else{for(E=a.paths,V=j.split("/"),U=V.length;U>0;U-=1)if(q=V.slice(0,U).join("/"),Y=getOwn(E,q),Y){isArray(Y)&&(Y=Y[0]),V.splice(0,U,Y);break}G=V.join("/"),G+=B||(/^data\:|^blob\:|\?/.test(G)||O?"":".js"),G=(G.charAt(0)==="/"||G.match(/^[\w\+\.\-]+:/)?"":a.baseUrl)+G}return a.urlArgs&&!/^blob\:/.test(G)?G+a.urlArgs(j,G):G},load:function(j,B){req.load(r,j,B)},execCb:function(j,B,O,E){return B.apply(E,O)},onScriptLoad:function(j){if(j.type==="load"||readyRegExp.test((j.currentTarget||j.srcElement).readyState)){interactiveScript=null;var B=$(j);r.completeLoad(B.id)}},onScriptError:function(j){var B=$(j);if(!S(B.id)){var O=[];return eachProp(l,function(E,V){V.indexOf("_@r")!==0&&each(E.depMaps,function(U){if(U.id===B.id)return O.push(V),!0})}),T(makeError("scripterror",'Script error for "'+B.id+(O.length?'", needed by: '+O.join(", "):'"'),j,[B.id]))}}},r.require=r.makeRequire(),r}req=requirejs=function(e,t,o,r){var i,n,a=defContextName;return!isArray(e)&&typeof e!="string"&&(n=e,isArray(t)?(e=t,t=o,o=r):e=[]),n&&n.context&&(a=n.context),i=getOwn(contexts,a),i||(i=contexts[a]=req.s.newContext(a)),n&&i.configure(n),i.require(e,t,o)},req.config=function(e){return req(e)},req.nextTick=typeof setTimeout<"u"?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts,newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,o){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,o){var r=e&&e.config||{},i;if(isBrowser)return i=req.createNode(r,t,o),i.setAttribute("data-requirecontext",e.contextName),i.setAttribute("data-requiremodule",t),i.attachEvent&&!(i.attachEvent.toString&&i.attachEvent.toString().indexOf("[native code")<0)&&!isOpera?(useInteractive=!0,i.attachEvent("onreadystatechange",e.onScriptLoad)):(i.addEventListener("load",e.onScriptLoad,!1),i.addEventListener("error",e.onScriptError,!1)),i.src=o,r.onNodeCreated&&r.onNodeCreated(i,r,t,o),currentlyAddingScript=i,baseElement?head.insertBefore(i,baseElement):head.appendChild(i),currentlyAddingScript=null,i;if(isWebWorker)try{setTimeout(function(){},0),importScripts(o),e.completeLoad(t)}catch(n){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+o,n,[t]))}};function getInteractiveScript(){return interactiveScript&&interactiveScript.readyState==="interactive"||eachReverse(scripts(),function(e){if(e.readyState==="interactive")return interactiveScript=e}),interactiveScript}return isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"),dataMain)return mainScript=dataMain,!cfg.baseUrl&&mainScript.indexOf("!")===-1&&(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,o){var r,i;typeof e!="string"&&(o=t,t=e,e=null),isArray(t)||(o=t,t=null),!t&&isFunction(o)&&(t=[],o.length&&(o.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(n,a){t.push(a)}),t=(o.length===1?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),i=contexts[r.getAttribute("data-requirecontext")])),i?(i.defQueue.push([e,t,o]),i.defQueueMap[e]=!0):globalDefQueue.push([e,t,o])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg),{requirejs,require,define}}const setFieldProps=(e,t,o)=>{(0,import_reactive.untracked)(()=>{e[t]===void 0&&(e[t]=o)})},setRequired=(e,t,o)=>{typeof t.required>"u"&&(e.required=!!o.required)},CollectionFieldInternalField_deprecated=e=>{var t;const o=useCompile(),r=(0,import_react.useField)(),i=(0,import_react.useFieldSchema)(),{uiSchema:n,defaultValue:a}=useCollectionField(),{isAllowToSetDefaultValue:l}=useIsAllowToSetDefaultValue(),c=useComponent(((t=i["x-component-props"])==null?void 0:t.component)||(n==null?void 0:n["x-component"])||"Input"),u=useFormBlockContext(),m=useDynamicComponentProps(n==null?void 0:n["x-use-component-props"],e);return(0,import_react2.useEffect)(()=>{if(!n)return;const d=o(n);if(setFieldProps(r,"content",d["x-content"]),setFieldProps(r,"title",d.title),setFieldProps(r,"description",d.description),u!=null&&u.form){const h=l()?i.default||a:void 0;h!=null&&setFieldProps(r,"initialValue",h)}if(!r.validator&&(d["x-validator"]||i["x-validator"])){const h=(0,import_lodash.concat)([],d["x-validator"]||[],i["x-validator"]||[]);r.validator=h}i["x-disabled"]===!0&&(r.disabled=!0),i["x-read-pretty"]===!0&&(r.readPretty=!0),setRequired(r,i,d),r.dataSource=d.enum,r.data=r.data||{},r.data.dataSource=d==null?void 0:d.enum;const p=o(d["x-component-props"])||{};r.componentProps=(0,import_shared.merge)(p,r.componentProps||{},m||{})},[n]),n?(0,import_jsx_runtime.jsx)(c,x(x({},e),m)):null},CollectionFieldInternalField=e=>{var t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{uiSchema:i}=useCollectionFieldUISchema(),n=useComponent(((t=r["x-component-props"])==null?void 0:t.component)||(i==null?void 0:i["x-component"])||"Input"),a=useDynamicComponentProps(i==null?void 0:i["x-use-component-props"],e);if((0,import_react2.useEffect)(()=>{r["x-read-pretty"]===!0&&!o.readPretty&&(o.readPretty=!0),r["x-disabled"]===!0&&(o.disabled=!0),o.data=o.data||{},o.data.dataSource=i==null?void 0:i.enum},[o,r]),!i)return null;const l=x(x({},e),a);return isVariable$1(l.value)&&l.value===r.default&&(l.value=void 0),(0,import_jsx_runtime.jsx)(n,x({},l))},CollectionField$1=(0,import_react.connect)(e=>{const t=(0,import_react.useFieldSchema)(),o=useIsInNocoBaseRecursionFieldContext();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:o?(0,import_jsx_runtime.jsx)(CollectionFieldInternalField,x({},e)):(0,import_jsx_runtime.jsx)(CollectionFieldInternalField_deprecated,x({},e))})});CollectionField$1.displayName="CollectionField";const getKeyByName=e=>e?`nocobase_${e}_designable`.toUpperCase():"nocobase_designable".toUpperCase(),SchemaComponentProviderWithLocalStorageState=e=>{const[t,o]=(0,import_ahooks.useLocalStorageState)(getKeyByName(e.appName),{defaultValue:!!e.designable});return(0,import_jsx_runtime.jsx)(SchemaComponentProvider,P(x({},e),{designable:t,onDesignableChange:r=>{o(r)}}))},AppSchemaComponentProvider=e=>typeof e.designable=="boolean"?(0,import_jsx_runtime.jsx)(SchemaComponentProvider,x({},e)):(0,import_jsx_runtime.jsx)(SchemaComponentProviderWithLocalStorageState,x({},e));function getOperators(){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.length===0:!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==null||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.length===0||!n||n.length===0?!0:(Array.isArray(i)||(i=[i]),Array.isArray(n)||(n=[n]),!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){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return r.$dateBetween(i,n);const a=parseDate(i),l=parseDate(n);return!a||!l?!1:a.getTime()===l.getTime()},$dateBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const a=parseDate(i),l=parseDate(n);return!a||!l?!1:a.getTime()<l.getTime()},$dateNotBefore:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[0]);const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a.getTime()>=l.getTime()},$dateAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const a=parseDate(i),l=parseDate(n);return a.getTime()>l.getTime()},$dateNotAfter:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n)&&(n=n[1]);const a=parseDate(i),l=parseDate(n);if(!a||!l)throw new Error("Invalid date format");return a.getTime()<=l.getTime()},$dateBetween:function(i,n){if(!i||!n)return!1;n.type&&(n=(0,import_client.getDayRangeByParams)(n));const a=parseDate(i),l=parseFullDate(n[0]),c=parseFullDate(n[1]);if(!a||!l||!c)throw new Error("Invalid date format");return a.getTime()>=l.getTime()&&a.getTime()<=c.getTime()},$dateNotOn:function(i,n){if(!i||!n)return!1;if(n.type&&(n=(0,import_client.getDayRangeByParams)(n)),Array.isArray(n))return!r.$dateBetween(i,n);const a=parseDate(i),l=parseDate(n);return a.getTime()!==l.getTime()},$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&&!i.type},o.truthy=function(i){return Array.isArray(i)&&i.length===0?!1:!!i},o.getOperator=function(i){return Object.keys(i)[0]},o.getValues=function(i){return i[o.getOperator(i)]},o.apply=function(i,n){if(Array.isArray(i))return i.map(function(_){return o.apply(_,n)});if(!o.is_logic(i))return i;var a=o.getOperator(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(_){return o.truthy(o.apply(m,_))}):[];if(a==="map")return d=o.apply(l[0],n),m=l[1],Array.isArray(d)?d.map(function(_){return o.apply(m,_)}):[];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:f,accumulator:_})},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(_){return o.apply(_,n)}),r.hasOwnProperty(a)&&typeof r[a]=="function")return r[a].apply(n,l);if(a.indexOf(".")>0){var h=String(a).split("."),g=r;for(c=0;c<h.length;c++){if(!g.hasOwnProperty(h[c]))throw new Error("Unrecognized operation "+a+" (failed at "+h.slice(0,c+1).join(".")+")");g=g[h[c]]}return g.apply(n,l)}throw new Error("Unrecognized operation "+a)},o.uses_data=function(i){var n=[];if(o.is_logic(i)){var a=o.getOperator(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.addOperation=function(i,n){r[i]=n},o.rmOperation=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.getOperator(n),l=o.getOperator(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 e.includes("T")&&e.endsWith("Z")?new Date(e):e.includes(" ")?new Date(e.replace(" ","T")):new Date(`${e}T00:00:00`)}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){var t;let o=Array.isArray(e)?(t=e[1])!=null?t:e[0]:e;return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(o)?new Date(o):/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(o)?new Date(o.replace(" ","T")):/^\d{4}-\d{2}-\d{2}$/.test(o)?parseFullDate(o):/^\d{4}-\d{2}$/.test(o)?parseMonth(o):/^\d{4}Q[1-4]$/.test(o)?parseQuarter(o):/^\d{4}$/.test(o)?parseYear(o):null}class Application{constructor(t={}){A(this,"eventBus",new EventTarget),A(this,"providers",[]),A(this,"router"),A(this,"scopes",{}),A(this,"i18n"),A(this,"ws"),A(this,"apiClient"),A(this,"components",P(x(x({DataBlockProvider},defaultAppComponents),schemaInitializerComponents),{CollectionField:CollectionField$1})),A(this,"pluginManager"),A(this,"pluginSettingsManager"),A(this,"devDynamicImport"),A(this,"requirejs"),A(this,"notification"),A(this,"schemaInitializerManager"),A(this,"schemaSettingsManager"),A(this,"dataSourceManager"),A(this,"name"),A(this,"favicon"),A(this,"globalVars",{}),A(this,"globalVarCtxs",{}),A(this,"jsonLogic"),A(this,"loading",!0),A(this,"maintained",!1),A(this,"maintaining",!1),A(this,"error",null),A(this,"hasLoadError",!1),A(this,"wsAuthorized",!1),this.options=t,this.initRequireJs(),(0,import_reactive.define)(this,{maintained:import_reactive.observable.ref,loading:import_reactive.observable.ref,maintaining:import_reactive.observable.ref,error:import_reactive.observable.ref}),this.devDynamicImport=t.devDynamicImport,this.scopes=(0,import_merge.default)(this.scopes,t.scopes),this.components=(0,import_merge.default)(this.components,t.components),this.apiClient=t.apiClient instanceof APIClient?t.apiClient:new APIClient(t.apiClient),this.apiClient.app=this,this.i18n=t.i18n||i18n,this.router=new RouterManager(t.router,this),this.schemaSettingsManager=new SchemaSettingsManager(t.schemaSettings,this),this.pluginManager=new PluginManager$1(t.plugins,t.loadRemotePlugins,this),this.schemaInitializerManager=new SchemaInitializerManager(t.schemaInitializers,this),this.dataSourceManager=new DataSourceManager(t.dataSourceManager,this),this.addDefaultProviders(),this.addReactRouterComponents(),this.addProviders(t.providers||[]),this.ws=new WebSocketClient(t.ws),this.ws.app=this,this.pluginSettingsManager=new PluginSettingsManager(t.pluginSettings,this),this.addRoutes(),this.name=this.options.name||(0,import_sdk.getSubAppName)(t.publicPath)||"main",this.i18n.on("languageChanged",o=>{this.apiClient.auth.locale=o}),this.initListeners(),this.jsonLogic=getOperators()}get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}updateFavicon(t){let o=document.querySelector('link[rel="shortcut icon"]');t&&(this.favicon=t),o?o.href=this.favicon||"/favicon/favicon.ico":(o=document.createElement("link"),o.rel="shortcut icon",o.href=this.favicon||"/favicon/favicon.ico",document.head.appendChild(o))}setWsAuthorized(t){this.wsAuthorized=t}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",t=>{this.setTokenInWebSocket(t.detail)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(t){const{token:o,authenticator:r}=t;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:o,authenticator:r}}))}setMaintaining(t){this.maintaining!==t&&(this.maintaining=t,t||this.eventBus.dispatchEvent(new Event("maintaining:end")))}initRequireJs(){this.requirejs=getRequireJs(),defineGlobalDeps(this.requirejs),window.define=this.requirejs.define}addDefaultProviders(){this.use(APIClientProvider,{apiClient:this.apiClient}),this.use(import_react_i18next.I18nextProvider,{i18n:this.i18n}),this.use(GlobalThemeProvider),this.use(CSSVariableProvider),this.use(AppSchemaComponentProvider,{designable:this.options.designable,appName:this.name,components:this.components,scope:this.scopes}),this.use(AntdAppProvider),this.use(DataSourceApplicationProvider,{dataSourceManager:this.dataSourceManager}),this.use(OpenModeProvider)}addReactRouterComponents(){this.addComponents({Link:import_react_router_dom.Link,Navigate:import_react_router_dom.Navigate,NavLink:import_react_router_dom.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:this.components.AppNotFound})}getOptions(){return this.options}getName(){return(0,import_sdk.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let t=this.options.publicPath||"/";return t.endsWith("/")||(t+="/"),t}getApiUrl(t=""){let o=this.apiClient.axios.defaults.baseURL;if(!o.startsWith("http://")&&!o.startsWith("https://")){const{protocol:r,host:i}=window.location;o=`${r}//${i}${o}`}return o.replace(/\/$/g,"")+"/"+t.replace(/^\//g,"")}getRouteUrl(t){return this.getPublicPath()+t.replace(/^\//g,"")}getHref(t){const o=this.name;return o&&o!=="main"?this.getPublicPath()+"apps/"+o+"/"+t.replace(/^\//g,""):this.getPublicPath()+t.replace(/^\//g,"")}getCollectionManager(t){var o;return(o=this.dataSourceManager.getDataSource(t))==null?void 0:o.collectionManager}getComposeProviders(){const t=compose(...this.providers)(BlankComponent);return t.displayName="Providers",t}use(t,o){return this.addProvider(t,o)}addProvider(t,o){return this.providers.push([t,o])}addProviders(t){t.forEach(o=>{Array.isArray(o)?this.addProvider(o[0],o[1]):this.addProvider(o)})}load(){return z(this,null,function*(){var t,o,r,i,n;try{this.loading=!0,yield this.loadWebSocket(),yield this.pm.load()}catch(a){this.hasLoadError=!0,((i=(r=(o=(t=a==null?void 0:a.response)==null?void 0:t.data)==null?void 0:o.errors)==null?void 0:r[0])==null?void 0:i.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&(yield new Promise(l=>{setTimeout(()=>l(null),1e3)})),this.error=x({code:"LOAD_ERROR"},(n=this.apiClient.toErrMessages(a))==null?void 0:n[0]),console.error(a,this.error)}this.loading=!1,this.updateFavicon()})}loadWebSocket(){return z(this,null,function*(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",t=>{var o,r,i;const n=JSON.parse(t.data);if((o=n==null?void 0:n.payload)!=null&&o.refresh){window.location.reload();return}if(n.type==="notification"){this.notification[((r=n.payload)==null?void 0:r.type)||"info"]({message:(i=n.payload)==null?void 0:i.message});return}if(n.type==="maintaining"&&n.payload.code!=="APP_RUNNING")this.setMaintaining(!0),this.error=n.payload;else{this.hasLoadError&&window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;const a=n.type;if(!a)return;const l=`ws:message:${a}`;this.eventBus.dispatchEvent(new CustomEvent(l,{detail:n.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{const t=this.apiClient.auth.token;t&&this.setTokenInWebSocket({token:t,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()})}getComponent(t,o=!0){const r=i=>o&&console.error(i);if(!t){r(`getComponent called with ${t}`);return}if(typeof t=="function")return t;if(typeof t=="string"){const i=(0,import_get.default)(this.components,t);if(!i){r(`Component ${t} not found`);return}return i}r(`Component ${t} should be a string or a React component`)}renderComponent(t,o,r){return import_react2.default.createElement(this.getComponent(t),o,r)}addComponent(t,o){const r=o||t.displayName||t.name;if(!r){console.error("Component must have a displayName or pass name as second argument");return}(0,import_set.default)(this.components,r,t)}addComponents(t){Object.keys(t).forEach(o=>{this.addComponent(t[o],o)})}addScopes(t){this.scopes=(0,import_merge.default)(this.scopes,t)}getRootComponent(){return({children:t})=>(0,import_jsx_runtime.jsx)(AppComponent,{app:this,children:t})}mount(t){const o=normalizeContainer(t);if(!o)return;const r=this.getRootComponent(),i=(0,import_client2.createRoot)(o);return i.render((0,import_jsx_runtime.jsx)(r,{})),i}addFieldInterfaces(t=[]){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaces(t)}addFieldInterfaceComponentOption(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceComponentOption(t,o)}addFieldInterfaceOperator(t,o){return this.dataSourceManager.collectionFieldInterfaceManager.addFieldInterfaceOperator(t,o)}addGlobalVar(t,o,r){(0,import_set.default)(this.globalVars,t,o),r&&(0,import_set.default)(this.globalVarCtxs,t,r)}getGlobalVar(t){return(0,import_get.default)(this.globalVars,t)}getGlobalVarCtx(t){return(0,import_get.default)(this.globalVarCtxs,t)}addUserCenterSettingsItem(t){const o=t.useVisible||(()=>!0),r=()=>{const{allow:i}=useAclSnippets();return o()?t.aclSnippet?i(t.aclSnippet):!0:!1};this.schemaSettingsManager.addItem("userCenterSettings",t.name,P(x({},t),{useVisible:r}))}}function getNewSchema(e){const{fieldSchema:t,schemaKey:o,parentSchemaKey:r,value:i,valueKeys:n}=e;if(o)import_lodash.default.set(t,o,i);else if(r){if(i==null)return t;typeof i=="object"?Object.keys(i).forEach(a=>{n&&!n.includes(a)||import_lodash.default.set(t,`${r}.${a}`,i[a])}):console.error("value must be object")}return t}const useHookDefault=e=>e,useSchemaByType=(e="common")=>{const t=(0,import_react.useFieldSchema)(),{fieldSchema:o}=useColumnSchema$1()||{};return e==="field"&&o||t};function createModalSettingsItem(e){const{name:t,parentSchemaKey:o,valueKeys:r,schema:i,title:n,useSubmit:a=useHookDefault,useVisible:l,defaultValue:c,useDefaultValue:u=useHookDefault,width:m,type:d="common"}=e;return{name:t,type:"actionModal",useVisible:l,useComponentProps(){const p=useSchemaByType(d),{dn:h}=useDesignable(),g=u(c),_=o?import_lodash.default.get(p,o):void 0,f=useCompile(),{t:v}=(0,import_react_i18next.useTranslation)(),b=a(),{fieldSchema:S}=useColumnSchema$1()||{};return{title:typeof n=="function"?n(v):f(n),width:m,schema:i(x(x({},g),_)),onSubmit(C){const y=getNewSchema({fieldSchema:p,parentSchemaKey:o,value:C,valueKeys:r});return S?(h.emit("patch",{schema:y}),h.refresh()):h.deepMerge(y),b==null?void 0:b(C)}}}}}const createSelectSchemaSettingsItem=e=>{const{name:t,title:o,options:r,useOptions:i=useHookDefault,schemaKey:n,useVisible:a,type:l="common",defaultValue:c,useDefaultValue:u=useHookDefault}=e;return{name:t,type:"select",useVisible:a,useComponentProps(){const m=useSchemaByType(l),{fieldSchema:d}=useColumnSchema$1()||{},{dn:p}=useDesignable(),h=i(r),g=u(c),_=useCompile(),{t:f}=(0,import_react_i18next.useTranslation)();return{title:typeof o=="function"?o(f):_(o),options:h,value:import_lodash.default.get(m,n,g),onChange(v){const b=getNewSchema({fieldSchema:m,schemaKey:n,value:v});d?(p.emit("patch",{schema:b}),p.refresh()):p.deepMerge(b)}}}}};function createSwitchSettingsItem(e){const{name:t,useVisible:o,schemaKey:r,title:i,type:n="common",defaultValue:a,useDefaultValue:l=useHookDefault,useComponentProps:c}=e;return{name:t,useVisible:o,type:"switch",useComponentProps(){const u=useSchemaByType(n),{dn:m}=useDesignable(),d=l(a),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),{fieldSchema:g}=useColumnSchema$1()||{},_=c==null?void 0:c();return{title:typeof i=="function"?i(h):p(i),checked:(_==null?void 0:_.checked)===void 0?!!import_lodash.default.get(u,r,d):_==null?void 0:_.checked,onChange(f){var v;(v=_==null?void 0:_.onChange)==null||v.call(_,f);const b=getNewSchema({fieldSchema:u,schemaKey:r,value:f});g?(m.emit("patch",{schema:b}),m.refresh()):m.deepMerge(b)}}}}}function createTextSettingsItem(e){const{name:t,useVisible:o,title:r,useTextClick:i=useHookDefault}=e;return{name:t,type:"item",useVisible:o,useComponentProps(){const n=useCompile(),{t:a}=(0,import_react_i18next.useTranslation)(),l=i();return{title:typeof r=="function"?r(a):n(r),onClick:l}}}}const linkageAction$1=(e,t)=>z(void 0,[e,t],function*({operator:o,condition:r,variables:i,localVariables:n,conditionType:a,displayResult:l},c){switch(o){case"visible":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:a},c))&&l.push("visible"),l;case"hidden":return(yield conditionAnalyses({ruleGroup:r,variables:i,localVariables:n,conditionType:a},c))&&l.push("hidden"),l;default:return null}}),useReactiveLinkageEffect=(e,t,o,r)=>{const i=useApp().jsonLogic,[n,a]=(0,import_react2.useState)(null),l=useCollectionRecord();return(0,import_react2.useEffect)(()=>{z(void 0,null,function*(){const c=[];for(const u of e.filter(m=>!m.disabled))for(const m of u.actions||[])yield linkageAction$1({operator:m.operator,condition:u.condition,variables:t,localVariables:o,conditionType:u.conditionType,displayResult:c},i);a(c)})},[e,r,l]),n};function forEachLinkageRule(e,t){e.forEach(o=>{var r;(r=o.actions)==null||r.forEach(i=>{t(i,o)})})}const getLinkageRules$2=e=>{if(!e)return[];let t=(e==null?void 0:e["x-block-linkage-rules"])||[];return e.mapProperties(o=>{o["x-block-linkage-rules"]&&(t=o["x-block-linkage-rules"])}),t==null?void 0:t.filter(o=>!o.disabled)},BlockLinkageRuleProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=useVariables$1(),r=useLocalVariables$1(),{designable:i}=useDesignable(),n=(0,import_react.useForm)(),a=(0,import_react2.useMemo)(()=>getLinkageRules$2(t),[t]),[l,c]=(0,import_react2.useState)(null),u=useReactiveLinkageEffect(a,o,r,l),m=(t==null?void 0:t["x-decorator"])==="FormItem"&&!n.readPretty&&a.length;return(0,import_react2.useEffect)(()=>{if(m){const d=(0,import_shared.uid)();return setTimeout(()=>{n.addEffects(d,()=>{forEachLinkageRule(a,(p,h)=>(0,import_reactive.reaction)(()=>{const g=getVariableValuesInCondition({linkageRules:a,localVariables:r}),_=getVariableValuesInExpression({action:p,localVariables:r});return[g,_].map(f=>JSON.stringify(f)).join(",")},()=>{c((0,import_shared.uid)())},{fireImmediately:!0,equals:import_lodash.isEqual}))})}),()=>{n.removeEffects(d)}}},[a,m]),a.length?u===null?null:(0,import_lodash.last)(u)==="hidden"?i?(0,import_jsx_runtime.jsx)("div",{style:{opacity:.3},children:e.children}):null:e.children:e.children},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=W(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)(BlockLinkageRuleProvider,{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(),h=useDataSourceHeaders(p.dataSource),g=useSourceKey(u),[_,f]=(0,import_react2.useMemo)(()=>[JSON.stringify(i),JSON.stringify(n)],[i,n]),v=b=>{var S;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 C=i.filterByTk===void 0?import_lodash.default.omit(i,"filterByTk"):i,y=x(x({},C),b);return(S=o[r])==null?void 0:S.call(o,y).then(F=>F.data)};return useRequest((...b)=>z(this,null,function*(){const[S,C]=yield Promise.all([(a||v)(...b),requestParentRecordData({sourceId:c,association:u,parentRecord:m,api:d,headers:h,sourceKey:g})]);return S&&(S.parentRecord=C==null?void 0:C.data),S}),P(x({},l),{manual:t==="manual",ready:!!r,refreshDeps:[r,_,f,o,u,m,c]}))}function requestParentRecordData(e){return z(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&&(import_lodash.default.isNil(p.dataLoadingMode)||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:h}=r,g=(0,import_react2.useMemo)(()=>P(x({},l),{filterByTk:n||l.filterByTk}),[n,l]),_=useRecordRequest({action:i,sourceId:a,record:m,association:c,collection:u,requestOptions:p,requestService:h,params:g,parentRecord:d}),f=(t=_.data)==null?void 0:t.parentRecord,v=(0,import_react2.useMemo)(()=>f&&new CollectionRecord({isNew:!1,data:f instanceof CollectionRecord?f.data:f}),[f]);return(0,import_jsx_runtime.jsx)(BlockRequestContextProvider,{recordRequest:_,children:i!=="list"?(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{isNew:i==null,record:((o=_.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),FilterContext$1=(0,import_react2.createContext)(null);FilterContext$1.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$1.Provider,{value:i,children:e})});FilterBlockProvider.displayName="FilterBlockProvider";const DataBlockCollector=({children:e,params:t})=>{const o=useCollection(),{recordDataBlocks:r}=useFilterBlock(),{getDataBlockRequest:i}=useDataBlockRequestGetter(),n=(0,import_react.useField)(),a=(0,import_react.useFieldSchema)(),l=useAssociatedFields(),c=(0,import_react2.useRef)(null),u=useDataLoadingMode(),m=n&&n.decoratorType!=="FilterFormBlockProvider"&&n.decoratorType!=="FormBlockProvider"&&n.decoratorProps.blockType!=="filter",d=(0,import_react2.useCallback)(()=>{const p=i();r({uid:a["x-uid"],title:n.componentProps.title,doFilter:p.runAsync,collection:o,associatedFields:l,foreignKeyFields:o==null?void 0:o.getFields("isForeignKey"),defaultFilter:(t==null?void 0:t.filter)||{},service:p,dom:c.current,dataLoadingMode:u,clearFilter(h){var g,_,f;const v=((g=this.service.params)==null?void 0:g[0])||{},b=((f=(_=this.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};delete b[h];const S=mergeFilter([...Object.values(b).map(C=>removeNullCondition(C)),(t==null?void 0:t.filter)||{}]);this.service.run(P(x({},v),{page:1,filter:S}),{filters:b})},clearData(){this.service.mutate(void 0)},clearSelection(){var h,g;n&&((g=(h=n.data)==null?void 0:h.clearSelectedRowKeys)==null||g.call(h))},highlightBlock(){var h;const g=c.current;if(!g)return;const _=g.querySelector(".ant-nb-schema-toolbar");_&&_.classList.remove("hidden"),g.style.boxShadow="0 3px 12px rgba(0, 0, 0, 0.15)",g.style.transition="box-shadow 0.3s ease, transform 0.2s ease",(h=g.scrollIntoView)==null||h.call(g,{behavior:"smooth",block:"start"})},unhighlightBlock(){const h=c.current;if(!h)return;const g=h.querySelector(".ant-nb-schema-toolbar");g&&g.classList.add("hidden"),h.style.boxShadow="none",h.style.transition="box-shadow 0.3s ease, transform 0.2s ease"}})},[l,o,u,a,t==null?void 0:t.filter,r,i,n]);return(0,import_react2.useEffect)(()=>{m&&d()},[d,m]),(0,import_jsx_runtime.jsx)("div",{ref:c,children:e})},useFilterBlock=()=>{const e=import_react2.default.useContext(FilterContext$1),t=useAllDataBlocks(),o=(0,import_react2.useCallback)(()=>(e==null?void 0:e.getDataBlocks())||[],[e]),r=(0,import_react2.useCallback)(n=>{t.recordDataBlocks(n);const a=e==null?void 0:e.getDataBlocks().find(l=>l.uid===n.uid);if(a){Object.assign(a,n);return}e==null||e.setDataBlocks(l=>[...l,n])},[e]),i=(0,import_react2.useCallback)(n=>{t.removeDataBlock(n),!(e!=null&&e.getDataBlocks().every(a=>a.uid!==n))&&(e==null||e.setDataBlocks(a=>a.filter(l=>l.uid!==n)))},[e]);return e?{recordDataBlocks:r,getDataBlocks:o,removeDataBlock:i,inProvider:!0}:{inProvider:!1,recordDataBlocks:import_lodash.default.noop,getDataBlocks:o,removeDataBlock:import_lodash.default.noop}},MarkdownVoidDesigner=()=>{const e=(0,import_react.useField)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:t("Edit markdown"),onClick:()=>{e.editable=!0}}),(0,import_jsx_runtime.jsx)(SchemaSettingsRenderEngine,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsBlockHeightItem,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})]})};class QRCodeWebComponent extends HTMLElement{constructor(){super(),A(this,"root"),this.attachShadow({mode:"open"}),this.root=null}getProps(t,o={}){return[...t].filter(r=>r.name!=="style").map(r=>this.convert(o,r.name,r.value)).reduce((r,i)=>P(x({},r),{[i.name]:i.value}),{})}convert(t,o,r){const i=Object.keys(t).find(a=>a.toLowerCase()==o);let n=r;return r==="true"||r==="false"?n=r=="true":!isNaN(r)&&r!==""?n=+r:/^{.*}/.exec(r)&&(n=JSON.parse(r)),{name:i||o,value:n}}connectedCallback(){const t=x({},this.getProps(this.attributes));this.root=(0,import_client2.createRoot)(this.shadowRoot),this.root.render((0,import_jsx_runtime.jsx)(import_antd.QRCode,x({},t)))}disconnectedCallback(){this.root.unmount()}}function registerQrcodeWebComponent(){customElements.get("qr-code")||customElements.define("qr-code",QRCodeWebComponent)}const useStyles$a=genStyleHook("nb-markdown",(e,{isDarkTheme:t})=>{const{componentCls:o}=e,r=new import_tinycolor.TinyColor(e.colorFillAlter).onBackground(e.colorBgContainer).toHexShortString(),i={lineHeight:"inherit","&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},blockquote:{borderLeft:"4px solid #ccc",paddingLeft:"20px",marginLeft:"0",color:"#666",fontStyle:"italic"},img:{maxWidth:"100%"},".hljs":{background:"#f8f8f8",color:"#444"},".hljs-comment":{color:"#697070"},".hljs-punctuation,.hljs-tag":{color:"#444a"},".hljs-tag .hljs-attr,.hljs-tag .hljs-name":{color:"#444"},".hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag":{fontWeight:700},".hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type":{color:"#800"},".hljs-section,.hljs-title":{color:"#800",fontWeight:700},".hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable":{color:"#ab5656"},".hljs-literal":{color:"#695"},".hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code":{color:"#397300"},".hljs-meta":{color:"#1f7199"},".hljs-meta .hljs-string":{color:"#38a"},".hljs-emphasis":{fontStyle:"italic"},".hljs-strong":{fontWeight:700}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}},n={"&.nb-markdown-default":{"pre code.hljs":{display:"block",overflowX:"auto",padding:"1em"},"code.hljs":{padding:"3px 5px"},":not(pre) code":{padding:"2px 5px",color:"#d56161",background:e.colorFillQuaternary,border:`1px solid ${e.colorBorder}`,borderRadius:e.borderRadiusSM},".hljs":{color:"#adbac7",background:"#22272e"},".hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_":{color:"#f47067"},".hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_":{color:"#dcbdfb"},".hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable":{color:"#6cb6ff"},".hljs-meta .hljs-string,.hljs-regexp,.hljs-string":{color:"#96d0ff"},".hljs-built_in,.hljs-symbol":{color:"#f69d50"},".hljs-code,.hljs-comment,.hljs-formula":{color:"#768390"},".hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag":{color:"#8ddb8c"},".hljs-subst":{color:"#adbac7"},".hljs-section":{color:"#316dca",fontWeight:700},".hljs-bullet":{color:"#eac55f"},".hljs-emphasis":{color:"#adbac7",fontStyle:"italic"},".hljs-strong":{color:"#adbac7",fontWeight:700},".hljs-addition":{color:"#b4f1b4",backgroundColor:"#1b4721"},".hljs-deletion":{color:"#ffd8d3",backgroundColor:"#78191b"}},"&.nb-markdown-table":{table:{borderCollapse:"collapse",width:"100%",fontFamily:"Arial, sans-serif",marginBottom:"1.5rem"},"th, td":{borderBottom:`1px solid ${e.colorBorderSecondary}`,padding:`${e.paddingContentVertical}px ${e.paddingContentHorizontal}px`,textAlign:"left"},th:{backgroundColor:r,fontWeight:"bold",color:e.colorText},"tr:hover":{backgroundColor:e.colorFillTertiary},"tr:last-child td":{borderBottom:"none"},"tr:first-child th":{borderTop:"none"}}};return{[o]:x({lineHeight:e.lineHeight,"& > *:last-child":{marginBottom:"0"},".ant-description-textarea, .ant-description-input":{lineHeight:e.lineHeight},".field-interface-datetime":{minWidth:"100px"}},t?n:i)}}),parseMarkdown=import_lodash.default.memoize(e=>z(void 0,null,function*(){return e&&(yield Promise.resolve().then(()=>require("./md-oH2RssNY-IQIU5F3r.js"))).default.render(e)}));function useParseMarkdown(e){const[t,o]=(0,import_react2.useState)(""),[r,i]=(0,import_react2.useState)(!0);return(0,import_react2.useEffect)(()=>{i(!0),parseMarkdown(e).then(n=>{o(n),i(!1)}).catch(n=>console.log(n))},[e]),{html:t,loading:r}}function convertToText(e){const t=e;let o=document.createElement("div");o.innerHTML=t;const r=o.innerText;return o=null,(r==null?void 0:r.replace(/[\n\r]/g,""))||""}const MarkdownEditor=e=>{const{scope:t}=e,{t:o,i18n:r}=(0,import_react_i18next.useTranslation)(),[i,n]=(0,import_react2.useState)(e.defaultValue),a=(0,import_react2.useRef)(null),[l,c]=(0,import_react2.useState)([]),[u,m]=(0,import_react2.useState)(null);(0,import_react2.useEffect)(()=>{c(t)},[t]),(0,import_react2.useEffect)(()=>{var p,h;const g=(h=(p=a==null?void 0:a.current)==null?void 0:p.resizableTextArea)==null?void 0:h.textArea;u&&g&&g.setSelectionRange(u,u)},[u]);const d=(0,import_react2.useCallback)(function(p){var h;const g=p.filter(y=>!!y.trim()),{current:_}=a,f=(h=_==null?void 0:_.resizableTextArea)==null?void 0:h.textArea;if(!f||!g)return;_.focus();const v=`{{${p.join(".")}}}`,b=f.selectionStart||0,S=i.substring(0,b)+v+i.substring(b,i.length),C=b+v.length;n(S),m(C)},[i]);return(0,import_jsx_runtime.jsxs)("div",{className:"mb-markdown",style:{position:"relative",paddingTop:"20px"},children:[(0,import_jsx_runtime.jsx)(import_antd.Input.TextArea,P(x({ref:a,autoSize:{minRows:3}},e),{value:i,onChange:p=>{n(p.target.value)},style:{paddingBottom:"40px"}})),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)("span",{style:{marginLeft:".25em"},className:"ant-formily-item-extra",children:[o("Syntax references"),":"]}),(0,import_jsx_runtime.jsx)("a",{href:`https://${r.language==="zh-CN"?"docs-cn":"docs"}.nocobase.com/handbook/template-handlebars`,target:"_blank",rel:"noreferrer",children:"Handlebars.js"})]}),(0,import_jsx_runtime.jsx)("div",{style:{position:"absolute",top:21,right:1},children:(0,import_jsx_runtime.jsx)(VariableSelect,{options:l,setOptions:c,onInsert:d})}),(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{position:"absolute",bottom:30,right:5},children:[(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:p=>{var h;(h=e.onCancel)==null||h.call(e,p)},children:o("Cancel")}),(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",onClick:()=>{var p;(p=e.onSubmit)==null||p.call(e,i)},children:o("Save")})]})]})},useMarkdownHeight=()=>{const{token:e}=import_antd.theme.useToken(),t=useBlockHeight();if(t)return t-2*e.paddingLG},MarkdownVoidInner=withDynamicSchemaProps((0,import_react.observer)(e=>{const{isDarkTheme:t}=useGlobalTheme(),{componentCls:o,hashId:r}=useStyles$a({isDarkTheme:t}),{content:i,className:n}=e,a=(0,import_react.useField)(),l=(0,import_react.useFieldSchema)(),{dn:c}=useDesignable(),{onSave:u,onCancel:m,form:d}=e,p=useCollectionRecord(),[h,g]=(0,import_react2.useState)(""),_=useVariables$1(),f=useLocalVariables$1(),{engine:v}=(l==null?void 0:l["x-decorator-props"])||{},[b,S]=(0,import_react2.useState)(!1);useCompile(),(0,import_react2.useEffect)(()=>{S(!0),z(void 0,null,function*(){setTimeout(()=>z(void 0,null,function*(){const F=yield getRenderContent(v,i,_,f,parseMarkdown);g(F)})),S(!1)})},[i,_,f,v]);const C=useMarkdownHeight(),y=useVariableOptions({collectionField:{uiSchema:l},form:d,record:p,uiSchema:l,noDisabled:!0});return(0,import_react2.useEffect)(()=>{registerQrcodeWebComponent()},[]),b?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):a!=null&&a.editable?(0,import_jsx_runtime.jsx)(MarkdownEditor,P(x({scope:y},e),{className:!0,defaultValue:i,onCancel:()=>{a.editable=!1,m==null||m()},onSubmit:F=>z(void 0,null,function*(){a.editable=!1,l["x-component-props"]!=null||(l["x-component-props"]={}),l["x-component-props"].content=F,a.componentProps.content=F,u==null||u(l),c.emit("patch",{schema:{"x-uid":l["x-uid"],"x-component-props":{content:F}}})})})):(0,import_jsx_runtime.jsx)("div",{className:(0,import_classnames.default)([o,r,"nb-markdown nb-markdown-default nb-markdown-table",n]),style:P(x({},e.style),{height:C||"100%",overflowY:C?"auto":"null"}),dangerouslySetInnerHTML:{__html:h}})}),{displayName:"MarkdownVoid"}),MarkdownVoid=e=>{const t=useFlag();return(0,import_jsx_runtime.jsx)(FlagProvider,P(x({},t),{collectionField:!0,children:(0,import_jsx_runtime.jsx)(MarkdownVoidInner,x({},e))}))};MarkdownVoid.Designer=MarkdownVoidDesigner;const Markdown=(0,import_react.connect)(import_antd.Input.TextArea,(0,import_react.mapProps)((e,t)=>P(x({autoSize:{maxRows:10,minRows:3}},e),{suffix:(0,import_jsx_runtime.jsx)("span",{children:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffix})})),(0,import_react.mapReadPretty)(e=>(0,import_jsx_runtime.jsx)(MarkdownReadPretty,x({},e)))),MarkdownReadPretty=e=>{const{isDarkTheme:t}=useGlobalTheme(),{wrapSSR:o,hashId:r,componentCls:i}=useStyles$a({isDarkTheme:t}),{html:n="",loading:a}=useParseMarkdown(e.value),l=(0,import_react2.useMemo)(()=>convertToText(n),[n]);if(a)return o((0,import_jsx_runtime.jsx)(import_antd.Spin,{}));const c=(0,import_jsx_runtime.jsx)("div",{className:`${r} ${i} nb-markdown nb-markdown-default nb-markdown-table`,dangerouslySetInnerHTML:{__html:n}});return o((0,import_jsx_runtime.jsx)(ReadPretty$c.TextArea,P(x({},e),{autop:!1,text:l,value:c})))};Markdown.Void=MarkdownVoid;const BlockItemCardContext=(0,import_react2.createContext)({}),BlockItemCard=import_react2.default.forwardRef((e,t)=>{var o=e,{children:r}=o,i=W(o,["children"]);const{token:n}=useToken(),a=i,{title:l,description:c}=a,u=W(a,["title","description"]),m=(0,import_react2.useMemo)(()=>({marginBottom:n.marginBlock,height:"100%"}),[n.marginBlock]),[d,p]=(0,import_react2.useState)(0),h=(0,import_react2.useRef)(null),{t:g}=(0,import_react_i18next.useTranslation)(),_=(0,import_react.useFieldSchema)()["x-block-linkage-rules"];(0,import_react2.useEffect)(()=>{const b=setTimeout(()=>{if(h.current){const S=c?h.current.parentElement.parentElement.parentElement.offsetHeight:n.fontSizeLG*n.lineHeightLG+n.padding*2-1;p(S)}else d&&p(0)},500);return()=>clearTimeout(b)},[l,c]);const f=(l||c)&&(0,import_jsx_runtime.jsxs)("div",{ref:h,style:{padding:"8px 0px 8px"},children:[(0,import_jsx_runtime.jsxs)("span",{children:[" ",g(l,{ns:NAMESPACE_UI_SCHEMA})]}),c&&(0,import_jsx_runtime.jsx)(MarkdownReadPretty,{value:g(c,{ns:NAMESPACE_UI_SCHEMA}),style:{overflowWrap:"break-word",whiteSpace:"normal",fontWeight:400,color:n.colorTextDescription,borderRadius:"4px"}})]}),v=(0,import_jsx_runtime.jsx)(BlockItemCardContext.Provider,{value:{titleHeight:d},children:(0,import_jsx_runtime.jsx)(import_antd.Card,P(x({ref:t,bordered:!1,style:m},u),{title:f,children:r}))});return _?(0,import_jsx_runtime.jsx)(BlockLinkageRuleProvider,{children:v}):v});BlockItemCard.displayName="BlockItemCard";const useBlockHeightProps=()=>{var e,t,o;const r=(0,import_react.useFieldSchema)(),i=getCardItemSchema(r),n=(e=useBlockTemplateContext())==null?void 0:e.fieldSchema,a=(0,import_react2.useMemo)(()=>getPageSchema(n||r),[]),{disablePageHeader:l,enablePageTabs:c,hidePageTitle:u}=(a==null?void 0:a["x-component-props"])||{},{titleHeight:m}=(0,import_react2.useContext)(BlockItemCardContext)||{},{allAccessRoutes:d}=useAllAccessDesktopRoutes(),p=useCurrentPageUid(),h=(0,import_react2.useMemo)(()=>findRouteBySchemaUid(p,d),[p,d]);return{heightProps:P(x({},i==null?void 0:i["x-component-props"]),{title:((t=i==null?void 0:i["x-component-props"])==null?void 0:t.title)||((o=i==null?void 0:i["x-component-props"])==null?void 0:o.description),disablePageHeader:l,enablePageTabs:(h==null?void 0:h.enableTabs)||c,hidePageTitle:u,titleHeight:m})}},getPageSchema=e=>e?e["x-component"]==="Page"?e:getPageSchema(e.parent):null,getCardItemSchema=e=>e?["BlockItem","CardItem"].includes(e["x-component"])?e:getCardItemSchema(e.parent):null,useDataBlockParentRecord=({association:e})=>{var t;const o=useCollectionRecordData(),r=useCollectionParentRecordData(),i=useCollectionManager(),n=useCollection();if(!e)return;const a=i.getCollection(e.split(".")[0]);return n.name===a.name||(t=n.getParentCollectionsName)!=null&&t.call(n).includes(a.name)?o:r},usePickActionProps$1=()=>{const e=(0,import_react.useForm)();return{onClick(){console.log("usePickActionProps",e.values)}}};function renderTemplate(e,t){const o=/\{\{\s*((\w+\.?)+)\s*\}\}/g;return e.replace(o,function(r,i){return(0,import_get.default)(t,i)||""})}function getFilteredFormValues(e){const t=import_lodash.default.cloneDeep(e.values),o=[];return e.query("*").forEach(r=>{r&&o.push(r)}),import_lodash.default.uniq(o.filter(r=>{var i,n;const a=((i=r.path)==null?void 0:i.segments)||[],l=a.length<=1?a.join("."):a.slice(0,-1).join(".");return((n=r==null?void 0:r.componentProps)==null?void 0:n.readOnlySubmit)&&!(0,import_get.default)(t,l)[r==null?void 0:r.componentProps.filterTargetKey]}).map(r=>{var i;const n=((i=r.path)==null?void 0:i.segments)||[];return n.length<=1?n.join("."):n.slice(0,-1).join(".")})).forEach((r,i)=>{(i!==0||r.includes("."))&&!t[r]&&import_lodash.default.unset(t,r)}),t}function getFormValues({filterByTk:e,field:t,form:o,fieldNames:r,getField:i,resource:n,actionFields:a}){if(e&&a){const l=Object.keys(o.values).filter(c=>{const u=i(c);return!a.includes(c)&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(u==null?void 0:u.type)});return(0,import_omit.default)(x({},o.values),l)}return getFilteredFormValues(o)}function useCollectValuesToSubmit(){const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r}=useBlockRequestContext(),{fields:i,getField:n,getTreeParentField:a,name:l}=useCollection_deprecated(),c=i.map(_=>_.name),{fieldSchema:u}=useActionContext(),{getActiveFieldsName:m}=useFormActiveFields()||{},d=useVariables$1(),p=useLocalVariables$1({currentForm:e}),h=(0,import_react.useFieldSchema)(),g=useTreeParentRecord();return(0,import_react2.useCallback)(()=>z(this,null,function*(){var _,f,v,b;const{assignedValues:S={},overwriteValues:C}=(_=h==null?void 0:h["x-action-settings"])!=null?_:{},y=getFormValues({filterByTk:t,field:o,form:e,fieldNames:c,getField:n,resource:r,actionFields:(m==null?void 0:m("form"))||[]}),F={},I=Object.keys(S).map(T=>z(this,null,function*(){const k=S[T],N=n(T);if(isVariable$1(k)){const{value:M}=(yield d==null?void 0:d.parseVariable(k,p))||{};M!=null&&(F[T]=transformVariableValue(M,{targetCollectionField:N}))}else k!==""&&(F[T]=k)}));if(yield Promise.all(I),(f=u==null?void 0:u["x-component-props"])==null?void 0:f.addChild){const T=a();y[(v=T==null?void 0:T.name)!=null?v:"parent"]=g,y[(b=T==null?void 0:T.foreignKey)!=null?b:"parentId"]=g==null?void 0:g.id}return x(x(x({},y),C),F)}),[h,o,c,u,t,e,m,n,a,p,l,r,g,d])}const useCreateActionProps=()=>{var e;const t=useFilterByTk(),o=useCollectionRecord(),r=(0,import_react.useForm)(),{field:i,resource:n}=useBlockRequestContext(),{setVisible:a,setSubmitted:l,setFormValueChanged:c}=useActionContext(),u=useNavigateNoUpdate(),m=(0,import_react.useFieldSchema)(),d=(0,import_react.useField)(),p=useCompile(),{modal:h}=import_antd.App.useApp(),{t:g}=(0,import_react_i18next.useTranslation)(),{updateAssociationValues:_}=useFormBlockContext(),f=useCollectValuesToSubmit(),v=o.isNew?d.componentProps.saveMode||"create":"update",b=((e=d.componentProps.filterKeys)==null?void 0:e.checked)||[],S=useLocalVariables$1(),C=useVariables$1();return{onClick(){return z(this,null,function*(){var y,F;const{onSuccess:I,skipValidator:T,triggerWorkflows:k}=(y=m==null?void 0:m["x-action-settings"])!=null?y:{},{manualClose:N,redirecting:M,redirectTo:L,successMessage:D,actionAfterSuccess:R}=I||{};T||(yield r.submit());const $=yield f();d.data=i.data||{},d.data.loading=!0;try{const w=yield n[v]({values:$,filterKeys:b,filterByTk:t,triggerWorkflows:k!=null&&k.length?k.map(B=>[B.workflowKey,B.context].filter(Boolean).join("!")).join(","):void 0,updateAssociationValues:_});let j=L;if(L&&(j=yield getVariableValue(L,{variables:C,localVariables:[...S,{name:"$record",ctx:new Proxy((F=w==null?void 0:w.data)==null?void 0:F.data,{})}]})),(R==="previous"||!R&&M!==!0)&&(a==null||a(!1)),l==null||l(!0),c==null||c(!1),d.data.loading=!1,d.data.data=w,!D){import_antd.message.success(g("Saved successfully")),yield resetFormCorrectly(r),(M&&!R||R==="redirect")&&j&&((0,import_client.isURL)(j)?window.location.href=j:u(j));return}N?h.success({title:p(D),onOk:()=>z(this,null,function*(){yield resetFormCorrectly(r),(M&&!R||R==="redirect")&&j&&((0,import_client.isURL)(j)?window.location.href=j:u(j))})}):(import_antd.message.success(p(D)),yield resetFormCorrectly(r),(M&&!R||R==="redirect")&&j&&((0,import_client.isURL)(j)?window.location.href=j:u(j)))}catch{d.data.loading=!1}})}}},useAssociationCreateActionProps=()=>{var e;const t=(0,import_react.useForm)(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,fieldSchema:a,setSubmitted:l}=useActionContext(),c=(0,import_react.useFieldSchema)(),u=(0,import_react.useField)(),{fields:m,getField:d,getTreeParentField:p,name:h}=useCollection_deprecated(),g=useCompile(),_=useFilterByTk(),f=useRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:t}),{getActiveFieldsName:S}=useFormActiveFields()||{},C=u.componentProps.saveMode||"create",y=((e=u.componentProps.filterKeys)==null?void 0:e.checked)||[];return{onClick(){return z(this,null,function*(){var F,I,T,k,N,M;const L=m.map(q=>q.name),{assignedValues:D={},onSuccess:R,overwriteValues:$,skipValidator:w,triggerWorkflows:j}=(F=c==null?void 0:c["x-action-settings"])!=null?F:{},B=(I=a==null?void 0:a["x-component-props"])==null?void 0:I.addChild,{successMessage:O}=R||{},E={},V=Object.keys(D).map(q=>z(this,null,function*(){const G=D[q],Y=d(q);if(isVariable$1(G)){const{value:K}=(yield v==null?void 0:v.parseVariable(G,b))||{};K&&(E[q]=transformVariableValue(K,{targetCollectionField:Y}))}else G!==""&&(E[q]=G)}));yield Promise.all(V),w||(yield t.submit());const U=getFormValues({filterByTk:_,field:o,form:t,fieldNames:L,getField:d,resource:r,actionFields:(S==null?void 0:S("form"))||[]});if(B){const q=p();U[(T=q==null?void 0:q.name)!=null?T:"parent"]=f,U[(k=q==null?void 0:q.foreignKey)!=null?k:"parentId"]=f.id}u.data=o.data||{},u.data.loading=!0;try{const q=yield r[C]({values:x(x(x({},U),$),E),filterKeys:y,triggerWorkflows:j!=null&&j.length?j.map(G=>[G.workflowKey,G.context].filter(Boolean).join("!")).join(","):void 0});if(u.data.loading=!1,u.data.data=q,(M=(N=i==null?void 0:i.service)==null?void 0:N.refresh)==null||M.call(N),n==null||n(!1),l==null||l(!0),!O)return;import_antd.message.success(g(O))}catch{u.data.data=null,u.data.loading=!1}})}}},findFilterTargets=e=>{for(;e;){if(e["x-filter-targets"])return{targets:e["x-filter-targets"],uid:e["x-uid"]};e=e.parent}return{}},updateFilterTargets=(e,t)=>{for(;e;){if(e["x-filter-targets"]){e["x-filter-targets"]=t;return}e=e.parent}},useDoFilter=()=>{const e=(0,import_react.useForm)(),{getDataBlocks:t}=useFilterBlock(),o=useCollectionManager(),{getOperators:r}=useOperators(),i=(0,import_react.useFieldSchema)(),{name:n}=useCollection(),{targets:a=[],uid:l}=(0,import_react2.useMemo)(()=>findFilterTargets(i),[i]),c=(0,import_react2.useCallback)(()=>removeNullCondition(transformToFilter(e.values,r(),o.getCollectionField.bind(o),n)),[e.values,o,r,n]),u=(0,import_react2.useCallback)((...m)=>z(void 0,[...m],function*({doNothingWhenFilterIsEmpty:d=!1}={}){try{yield Promise.all(t().map(p=>z(void 0,null,function*(){var h,g,_,f;if(!a.find(C=>C.uid===p.uid))return;const v=((h=p.service.params)==null?void 0:h[0])||{},b=((_=(g=p.service.params)==null?void 0:g[1])==null?void 0:_.filters)||{};b[l]=c();const S=mergeFilter([...Object.values(b).map(C=>removeNullCondition(C)),p.defaultFilter]);if(import_lodash.default.isEmpty(b[l])&&((f=p.clearSelection)==null||f.call(p)),!(d&&import_lodash.default.isEmpty(b[l])))return p.dataLoadingMode==="manual"&&import_lodash.default.isEmpty(b[l])?p.clearData():(import_lodash.default.set(p.service.params,"1.filters",b),p.doFilter(P(x({},v),{page:1,filter:S}),{filters:b}))})))}catch(p){console.error(p)}}),[t,c,a,l]);return(0,import_react2.useEffect)(()=>{setTimeout(()=>{u({doNothingWhenFilterIsEmpty:!0})},500)},[u]),{doFilter:u,getFilterFromCurrentForm:c}},useFilterBlockActionProps=()=>{const{doFilter:e}=useDoFilter(),t=(0,import_react.useField)();t.data=t.data||{};const o=(0,import_react.useForm)();return{onClick(){return z(this,null,function*(){yield o.submit(),t.data.loading=!0,yield e(),t.data.loading=!1})}}},useDoReset=()=>{const e=(0,import_react.useForm)(),t=(0,import_react.useFieldSchema)(),{getDataBlocks:o}=useFilterBlock(),{targets:r,uid:i}=findFilterTargets(t),{doFilter:n,getFilterFromCurrentForm:a}=useDoFilter();return{doReset:()=>z(void 0,null,function*(){var l;if(yield e.reset(void 0,{forceClear:!!((l=t==null?void 0:t["x-component-props"])!=null&&l.clearDefaultValue)}),import_lodash.default.isEmpty(a()))return doReset({getDataBlocks:o,targets:r,uid:i});yield n()})}},useResetBlockActionProps=()=>{const e=(0,import_react.useField)(),{doReset:t}=useDoReset();return e.data=e.data||{},{onClick(){return z(this,null,function*(){e.data.loading=!0,yield t(),e.data.loading=!1})}}},useCustomizeUpdateActionProps=()=>{const{resource:e,__parent:t,service:o}=useBlockRequestContext(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useNavigateNoUpdate(),a=useCompile(),l=(0,import_react.useForm)(),{modal:c}=import_antd.App.useApp(),u=useVariables$1(),m=useLocalVariables$1({currentForm:l}),{name:d,getField:p}=useCollection_deprecated(),{setVisible:h}=useActionContext();return{onClick(g,_){return z(this,null,function*(){var f,v,b,S;const{assignedValues:C={},onSuccess:y,skipValidator:F,triggerWorkflows:I}=(f=i==null?void 0:i["x-action-settings"])!=null?f:{},{manualClose:T,redirecting:k,redirectTo:N,successMessage:M,actionAfterSuccess:L}=y||{},D={},R=Object.keys(C).map(j=>z(this,null,function*(){const B=C[j],O=p(j);if(isVariable$1(B)){const{value:E}=(yield u==null?void 0:u.parseVariable(B,m))||{};E&&(D[j]=transformVariableValue(E,{targetCollectionField:O}))}else B!==""&&(D[j]=B)}));yield Promise.all(R),F===!1&&(yield l.submit());const $=yield e.update({filterByTk:r,values:x({},D),triggerWorkflows:I!=null&&I.length?I.map(j=>[j.workflowKey,j.context].filter(Boolean).join("!")).join(","):void 0});let w=N;N&&(w=yield getVariableValue(N,{variables:u,localVariables:[...m,{name:"$record",ctx:new Proxy((v=$==null?void 0:$.data)==null?void 0:v.data,{})}]})),(L==="previous"||!L&&k!==!0)&&(h==null||h(!1)),_&&(_==null||_()),e instanceof TableFieldResource||(S=(b=t==null?void 0:t.service)==null?void 0:b.refresh)==null||S.call(b),M&&(T?c.success({title:a(M),onOk:()=>z(this,null,function*(){(k&&!L||L==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:n(w))})}):(import_antd.message.success(a(M)),(k&&!L||L==="redirect")&&w&&((0,import_client.isURL)(w)?window.location.href=w:n(w))))})}}},useCustomizeBulkUpdateActionProps=()=>{var e,t,o,r;const{field:i,resource:n,__parent:a,service:l}=useBlockRequestContext(),c=(0,import_react2.useContext)(import_react.SchemaExpressionScopeContext),u=(0,import_react.useFieldSchema)(),m=useTableBlockContext(),{rowKey:d}=m,p=(r=(o=(t=(e=m.field)==null?void 0:e.data)==null?void 0:t.selectedRowKeys)!=null?o:c==null?void 0:c.selectedRecordKeys)!=null?r:{},h=useNavigateNoUpdate(),g=useCompile(),{t:_}=(0,import_react_i18next.useTranslation)(),f=(0,import_react.useField)(),{modal:v}=import_antd.App.useApp(),b=useVariables$1();useRecord();const{name:S,getField:C}=useCollection_deprecated(),y=useLocalVariables$1(),{setVisible:F}=useActionContext();return{onClick(){return z(this,null,function*(){var I;const{assignedValues:T={},onSuccess:k,updateMode:N}=(I=u==null?void 0:u["x-action-settings"])!=null?I:{},{manualClose:M,redirecting:L,redirectTo:D,successMessage:R,actionAfterSuccess:$}=k||{};f.data=i.data||{},f.data.loading=!0;const w={},j=Object.keys(T).map(B=>z(this,null,function*(){const O=T[B],E=C(B);if(isVariable$1(O)){const{value:V}=(yield b==null?void 0:b.parseVariable(O,y))||{};V&&(w[B]=transformVariableValue(V,{targetCollectionField:E}))}else O!==""&&(w[B]=O)}));yield Promise.all(j),($==="previous"||!$&&L!==!0)&&(F==null||F(!1)),v.confirm({title:_("Bulk update"),content:_(N==="selected"?"Update selected data?":"Update all data?"),onOk(){return z(this,null,function*(){var B,O,E,V;const{filter:U}=(O=(B=l.params)==null?void 0:B[0])!=null?O:{},q={values:x({},w),filter:U,forceUpdate:!1};if(N==="selected"){if(!(p!=null&&p.length)){import_antd.message.error(_("Please select the records to be updated")),f.data.loading=!1;return}q.filter={$and:[{[d||"id"]:{$in:p}}]}}q.filter||(q.forceUpdate=!0);try{yield n.update(q)}catch{}finally{f.data.loading=!1}n instanceof TableFieldResource||(V=(E=a==null?void 0:a.service)==null?void 0:E.refresh)==null||V.call(E),R&&(M?v.success({title:g(R),onOk:()=>z(this,null,function*(){(L&&!$||$==="redirect")&&D&&((0,import_client.isURL)(D)?window.location.href=D:h(D))})}):(import_antd.message.success(g(R)),(L&&!$||$==="redirect")&&D&&((0,import_client.isURL)(D)?window.location.href=D:h(D))))})},onCancel(){return z(this,null,function*(){f.data.loading=!1})}})})}}},useCustomizeRequestActionProps=()=>{var e;const t=useAPIClient(),o=useNavigateNoUpdate(),r=useFilterByTk(),i=(0,import_react.useFieldSchema)(),n=useCompile(),a=(0,import_react.useForm)(),{fields:l,getField:c}=useCollection_deprecated(),{field:u,resource:m,__parent:d,service:p}=useBlockRequestContext(),h=useRecord(),g=useCurrentUserContext(),_=(e=g==null?void 0:g.data)==null?void 0:e.data,f=(0,import_react.useField)(),{t:v}=(0,import_react_i18next.useTranslation)(),{setVisible:b}=useActionContext(),{modal:S}=import_antd.App.useApp(),{getActiveFieldsName:C}=useFormActiveFields()||{};return{onClick(){return z(this,null,function*(){var y,F,I,T;const{skipValidator:k,onSuccess:N,requestSettings:M}=(y=i==null?void 0:i["x-action-settings"])!=null?y:{},{manualClose:L,redirecting:D,redirectTo:R,successMessage:$,actionAfterSuccess:w}=N||{},j=i==null?void 0:i["x-action"];if(!M.url)return;k!==!0&&j==="customize:form:request"&&(yield a.submit());const B=M.headers?JSON.parse(M.headers):{},O=M.params?JSON.parse(M.params):{},E=M.data?JSON.parse(M.data):{};if(j==="customize:form:request"&&["POST","PUT","PATCH"].includes(M.method)){const U=l.map(G=>G.name),q=getFormValues({filterByTk:r,field:u,form:a,fieldNames:U,getField:c,resource:m,actionFields:(C==null?void 0:C("form"))||[]});Object.assign(E,q)}const V={url:renderTemplate(M.url,{currentRecord:h,currentUser:_}),method:M.method,headers:(0,import_client.parse)(B)({currentRecord:h,currentUser:_}),params:(0,import_client.parse)(O)({currentRecord:h,currentUser:_}),data:(0,import_client.parse)(E)({currentRecord:h,currentUser:_})};f.data=u.data||{},f.data.loading=!0;try{yield t.request(x({},V)),f.data.loading=!1,m instanceof TableFieldResource||(I=(F=d==null?void 0:d.service)==null?void 0:F.refresh)==null||I.call(F),(T=p==null?void 0:p.refresh)==null||T.call(p),j==="customize:form:request"&&(w==="previous"||!w&&D!==!0)&&(b==null||b(!1)),$||(import_antd.message.success(v("Saved successfully")),yield resetFormCorrectly(a),(D&&!w||w==="redirect")&&R&&((0,import_client.isURL)(R)?window.location.href=R:o(R))),L?S.success({title:n($),onOk:()=>z(this,null,function*(){(D&&!w||w==="redirect")&&R&&((0,import_client.isURL)(R)?window.location.href=R:o(R))})}):import_antd.message.success(n($))}finally{f.data.loading=!1}})}}},useUpdateActionProps=()=>{const e=(0,import_react.useForm)(),t=useFilterByTk(),{field:o,resource:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setFormValueChanged:a}=useActionContext(),l=(0,import_react.useFieldSchema)(),c=useNavigateNoUpdate(),{fields:u,getField:m,name:d}=useCollection_deprecated(),p=useCompile(),h=(0,import_react.useField)(),{updateAssociationValues:g}=useFormBlockContext(),{modal:_}=import_antd.App.useApp(),f=useParamsFromRecord(),v=useVariables$1(),b=useLocalVariables$1({currentForm:e}),{getActiveFieldsName:S}=useFormActiveFields()||{};return{onClick(C,y){return z(this,null,function*(){var F,I;const{assignedValues:T={},onSuccess:k,overwriteValues:N,skipValidator:M,triggerWorkflows:L}=(F=l==null?void 0:l["x-action-settings"])!=null?F:{},{manualClose:D,redirecting:R,redirectTo:$,successMessage:w,actionAfterSuccess:j}=k||{},B={},O=Object.keys(T).map(U=>z(this,null,function*(){const q=T[U],G=m(U);if(isVariable$1(q)){const{value:Y}=(yield v==null?void 0:v.parseVariable(q,b))||{};Y&&(B[U]=transformVariableValue(Y,{targetCollectionField:G}))}else q!==""&&(B[U]=q)}));yield Promise.all(O),M||(yield e.submit());const E=u.map(U=>U.name),V=getFormValues({filterByTk:t,field:o,form:e,fieldNames:E,getField:m,resource:r,actionFields:(S==null?void 0:S("form"))||[]});h.data=o.data||{},h.data.loading=!0;try{const U=yield r.update(P(x({filterByTk:t,values:x(x(x({},V),N),B)},f),{updateAssociationValues:g,triggerWorkflows:L!=null&&L.length?L.map(G=>[G.workflowKey,G.context].filter(Boolean).join("!")).join(","):void 0}));h.data.loading=!1,y&&(y==null||y());let q=$;if($&&(q=yield getVariableValue($,{variables:v,localVariables:[...b,{name:"$record",ctx:new Proxy((I=U==null?void 0:U.data)==null?void 0:I.data,{})}]})),(j==="previous"||!j&&R!==!0)&&(n==null||n(!1)),a==null||a(!1),!w)return;D?_.success({title:p(w),onOk:()=>z(this,null,function*(){yield e.reset(),(R&&!j||j==="redirect")&&q&&((0,import_client.isURL)(q)?window.location.href=q:c(q))})}):(import_antd.message.success(p(w)),(R&&!j||j==="redirect"||j==="redirect")&&q&&((0,import_client.isURL)(q)?window.location.href=q:c(q)))}catch{h.data.loading=!1}})}}},useDestroyActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:a}=useActionContext(),l=useParamsFromRecord(),c=(0,import_react.useFieldSchema)();return{onClick(u,m){return z(this,null,function*(){var d,p,h,g,_,f,v;const{triggerWorkflows:b}=(d=c==null?void 0:c["x-action-settings"])!=null?d:{};yield t.destroy(x({filterByTk:e,triggerWorkflows:b!=null&&b.length?b.map(F=>[F.workflowKey,F.context].filter(Boolean).join("!")).join(","):void 0},l));const{count:S=0,page:C=0,pageSize:y=0}=((p=o==null?void 0:o.data)==null?void 0:p.meta)||{};if(S%y===1&&C!==1){const F=(h=o.params[0])==null?void 0:h.page,I=(_=(g=o.data)==null?void 0:g.meta)==null?void 0:_.totalPage;F===I&&o.params[0]&&F!==1&&(o.params[0].page=F-1)}m&&(m==null||m()),a==null||a(!0),r&&r!=="TableField"&&((v=(f=i==null?void 0:i.service)==null?void 0:f.refresh)==null||v.call(f),n==null||n(!1),a==null||a(!0))})}}},useRemoveActionProps=e=>{const t=useFilterByTk(),o=useAPIClient().resource(e,t);return{onClick(r){return z(this,null,function*(){yield o.remove({values:[r.id]})})}}},useDisassociateActionProps=()=>{const e=useFilterByTk(),{resource:t,service:o,block:r,__parent:i}=useBlockRequestContext(),{setVisible:n,setSubmitted:a,setFormValueChanged:l}=useActionContext();return{onClick(c,u){return z(this,null,function*(){var m,d,p,h;yield t.remove({values:[e]});const{count:g=0,page:_=0,pageSize:f=0}=((m=o==null?void 0:o.data)==null?void 0:m.meta)||{};g%f===1&&_!==1?o.run(P(x({},(d=o==null?void 0:o.params)==null?void 0:d[0]),{page:_-1})):u&&(u==null||u()),a==null||a(!0),r&&r!=="TableField"&&((h=(p=i==null?void 0:i.service)==null?void 0:p.refresh)==null||h.call(p),n==null||n(!1),l==null||l(!1))})}}},useBulkDestroyActionProps=()=>{const{field:e}=useBlockRequestContext(),{resource:t,service:o}=useBlockRequestContext(),{setSubmitted:r}=useActionContext(),i=useCollection_deprecated(),{filterTargetKey:n}=i;return{onClick(a,l){return z(this,null,function*(){var c,u,m,d,p,h,g;let _=(c=e.data)==null?void 0:c.selectedRowKeys;if(Array.isArray(n)&&(_=e.data.selectedRowData.map(b=>{const S={};return n.map(C=>{S[C]=b[C]}),S})),!((m=(u=e==null?void 0:e.data)==null?void 0:u.selectedRowKeys)!=null&&m.length))return;yield t.destroy({filterByTk:_}),e.data.selectedRowKeys=[];const f=(d=o.params[0])==null?void 0:d.page,v=(h=(p=o.data)==null?void 0:p.meta)==null?void 0:h.totalPage;f===v&&o.params[0]&&f!==1&&(o.params[0].page=f-1),l&&(l==null||l()),r==null||r(!0),(g=o==null?void 0:o.refresh)==null||g.call(o)})}}},useRefreshActionProps=()=>{const{service:e}=useBlockRequestContext();return{onClick(){return z(this,null,function*(){var t;(t=e==null?void 0:e.refresh)==null||t.call(e)})}}},useDetailsPaginationProps=()=>{var e,t,o,r,i,n,a,l,c,u,m,d,p,h,g;const _=useDetailsBlockContext(),f=((o=(t=(e=_.service)==null?void 0:e.data)==null?void 0:t.meta)==null?void 0:o.count)||0,v=(n=(i=(r=_.service)==null?void 0:r.data)==null?void 0:i.meta)==null?void 0:n.page;return!f&&v?{simple:!0,current:((c=(l=(a=_.service)==null?void 0:a.data)==null?void 0:l.meta)==null?void 0:c.page)||1,pageSize:1,showSizeChanger:!1,align:"center",onChange(b){return z(this,null,function*(){var S,C;const y=(C=(S=_.service)==null?void 0:S.params)==null?void 0:C[0];_.service.run(P(x({},y),{page:b}))})},style:{marginTop:24,textAlign:"center"},showTotal:!1,showTitle:!1,total:(d=(m=(u=_.service)==null?void 0:u.data)==null?void 0:m.data)!=null&&d.length?1*v+1:1*v,className:import_css.css`
|
|
626
626
|
.ant-pagination-simple-pager {
|
|
627
627
|
display: none !important;
|
|
628
628
|
}
|
|
@@ -723,7 +723,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
723
723
|
display: flex;
|
|
724
724
|
margin: 5px 0px;
|
|
725
725
|
}
|
|
726
|
-
`,defaultValue:"h:mm a",formats:["hh:mm:ss a","HH:mm:ss"],timeFormat:!0},default:d,enum:[{label:DateFormatCom({format:"hh:mm:ss a"}),value:"hh:mm:ss a"},{label:DateFormatCom({format:"HH:mm:ss"}),value:"HH:mm:ss"},{label:"custom",value:"custom"}]}}},onSubmit:p=>{const h={"x-uid":n["x-uid"]};h["x-component-props"]=a.componentProps||{},n["x-component-props"]=x(x({},a.componentProps||{}),p),h["x-component-props"]=n["x-component-props"],a.componentProps=n["x-component-props"];const g=a.path.entire.split(".");g.pop();const _=g.join(".");a.query(`${_}.*[0:].${n.name}`).forEach(f=>{f.props.name===n.name&&f.setComponentProps(x({},p))}),l.emit("patch",{schema:h}),l.refresh()}})},timePickerComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:TimePicker",items:[{name:"timeDisplayFormat",Component:SchemaSettingsTimeFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}}]}),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]});class SchemaSettingsPlugin extends Plugin{load(){return z(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(filterRecordPickerComponentFieldSettings),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),this.schemaSettingsManager.add(timePickerComponentFieldSettings)})}}const useBuiltInVariables=()=>{const{currentUserCtx:e}=useCurrentUserVariable(),{currentRoleCtx:t}=useCurrentRoleVariable(),{apiTokenCtx:o}=useAPITokenVariable(),{datetimeCtx:r}=useDatetimeVariable(),{exactDateTimeCtx:i}=useExactDateVariable(),{urlSearchParamsCtx:n,name:a,defaultValue:l}=useURLSearchParamsVariable(),c=useGlobalVariableCtx("$env");return{builtinVariables:(0,import_react2.useMemo)(()=>[c,{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:"$nExactDate",ctx:i},{name:"$system",ctx:{now:()=>(0,import_client.dayjs)().toISOString()}},{name:"currentTime",ctx:()=>(0,import_client.dayjs)().toISOString()},{name:a,ctx:n,defaultValue:l}].filter(Boolean),[t,e,r,l,n,a,c,i])}},filterEmptyValues=e=>Array.isArray(e)?e.filter(t=>t===0||t===!1||t):e,TYPE_TO_ACTION={hasMany:"list?paginate=false",belongsTo:"get",hasOne:"get",belongsToMany:"list?paginate=false",belongsToArray:"list?paginate=false"},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$1=(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)(f=>{import_lodash.default.isFunction(f)?o.current=f(o.current):o.current=f},[]),u=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){var S,C;const y=f.split("."),F=y[0],I=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v);let T=mergeCtxWithLocalVariables(o.current,v);const{fieldPath:k,dataSource:N,variableOption:M}=getFieldPath$1(F,I);let L=k;const{fieldPath:D}=getFieldPath$1(f,I),R=y.length===1?M==null?void 0:M.collectionName:(S=i(D,N))==null?void 0:S.target;if(!(F in T))throw new Error(`VariablesProvider: ${F} is not found`);for(let w=0;w<y.length;w++){if(T==null)return{value:T===void 0?M==null?void 0:M.defaultValue:T,dataSource:N,collectionName:R};const j=y[w],B=y.slice(0,w+1).join("."),{fieldPath:O}=getFieldPath$1(B,I),E=i(O,N),V=(C=n(L,N))==null?void 0:C.getPrimaryKey();if(Array.isArray(T)){const U=T.map(q=>{if(!(b!=null&&b.doNotRequest)&&shouldToRequest(q==null?void 0:q[j])&&(q==null?void 0:q[V])!=null&&E!=null&&E.target){const G=`/${L}/${q[E.sourceKey||V]}/${j}:${getAction(E.type)}`;if(hasRequested(G))return getRequested(G);const Y=r.request({headers:getDataSourceHeaders(N),url:G,params:{appends:b==null?void 0:b.appends}}).then(K=>(clearRequested(G),K.data.data));return stashRequested(G,Y),Y}return q==null?void 0:q[j]});T=removeThroughCollectionFields(import_lodash.default.flatten(yield Promise.all(U)),E)}else if(!(b!=null&&b.doNotRequest)&&shouldToRequest(T[j])&&T[V]!=null&&E!=null&&E.target){const U=`/${L}/${T[E.sourceKey||V]}/${j}:${getAction(E.type)}`;let q=null;if(hasRequested(U))q=yield getRequested(U);else{const Y=r.request({headers:getDataSourceHeaders(N),url:U,params:{appends:b==null?void 0:b.appends}});stashRequested(U,Y),q=yield Y,clearRequested(U)}const G=q.data.data;T=removeThroughCollectionFields(G,E)}else T=removeThroughCollectionFields((0,import_client.getValuesByPath)(T,j),E);E!=null&&E.target&&(L=E.target)}const $=a(import_lodash.default.isFunction(T)?T({fieldOperator:b==null?void 0:b.fieldOperator,isParsingVariable:!0}):T);return{value:$===void 0?M.defaultValue:$,dataSource:N,collectionName:R}}),[i]),m=(0,import_react2.useCallback)(f=>{if(!isVariable$1(`{{${f.name}}}`))throw new Error(`VariablesProvider: ${f.name} is not a valid name`);c(v=>P(x({},v),{[f.name]:f.ctx})),variablesStore[f.name]=P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null})},[c]),d=(0,import_react2.useCallback)(f=>o.current[f]?x({},variablesStore[f]):null,[]),p=(0,import_react2.useCallback)(f=>{c(v=>{const b=x({},v);return delete b[f],b}),delete variablesStore[f]},[c]),h=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){if(!isVariable$1(f))return f;v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=getPath(f),C=yield u(S,v,b);return P(x({},C),{value:uniq(filterEmptyValues(C.value))})}),[u]),g=(0,import_react2.useCallback)((f,v)=>z(void 0,null,function*(){var b;if(!isVariable$1(f))throw new Error(`VariablesProvider: ${f} is not a variable string`);v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v),C=getPath(f),{fieldPath:y,dataSource:F}=getFieldPath$1(C,S);let I=i(y,F);return!I&&!C.includes(".")&&(I={target:(b=S[C])==null?void 0:b.collectionName}),I}),[i]);(0,import_react2.useEffect)(()=>{l.forEach(f=>{m(P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null}))})},[l,m]);const _=(0,import_react2.useMemo)(()=>({ctxRef:o,setCtx:c,parseVariable:h,registerVariable:m,getVariable:d,getCollectionField:g,removeVariable:p,filterVariables:t}),[g,d,h,m,p,c]);return(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:_,children:e})};VariablesProvider.displayName="VariablesProvider";const VariablesProvider$1=VariablesProvider;function shouldToRequest(e,t,o){let r=!1;return(0,import_reactive.untracked)(()=>{if(JSON.stringify(e)==="[{}]"||JSON.stringify(e)==="{}"){r=!0;return}r=import_lodash.default.isEmpty(e)}),r}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,h,g,_,f,v,b,S;const C=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=C(this.props.title||((e=this.props.schema)==null?void 0:e.title)),this.description=C(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=C(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=C(this.props.content||((u=this.props.schema)==null?void 0:u["x-content"])),this.initialValue=C(this.props.initialValue||((m=this.props.schema)==null?void 0:m.default)),this.value=C(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"],(h=this.props.schema)==null?void 0:h["x-decorator-props"]],this.component=this.props.component?(0,import_shared.toArr)(this.props.component):[(g=this.props.schema)==null?void 0:g["x-component"],(_=this.props.schema)==null?void 0:_["x-component-props"]],this.decoratorProps=((f=this.props.schema)==null?void 0:f["x-decorator-props"])||{},this.componentProps=((v=this.props.schema)==null?void 0:v["x-component-props"])||{},this.decoratorType=(b=this.props.schema)==null?void 0:b["x-decorator"],this.componentType=(S=this.props.schema)==null?void 0:S["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=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 h=u;if((0,import_shared.isFn)(r)){const _=r(u,m);_&&(h=_)}if((0,import_shared.isFn)(i)&&i(h,m)===!1)return null;const g=(0,import_shared.isBool)(n)&&n?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{propsRecursion:!0,filterProperties:i,mapProperties:r,schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l}):(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l});return h["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaProvider,{fieldSchema:h,children:g})},`${d}-${m}`):(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:EMPTY_OBJECT,children:g})},`${d}-${m}`)})}):null},IsInNocoBaseRecursionFieldContext=import_react2.default.createContext(!1),useIsInNocoBaseRecursionFieldContext=()=>import_react2.default.useContext(IsInNocoBaseRecursionFieldContext),NocoBaseRecursionField=import_react2.default.memo(e=>{var t,o;const{schema:r,name:i,onlyRenderProperties:n,onlyRenderSelf:a,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d=!0,uiSchema:p,parentSchema:h}=e,g=useBasePath(e),_=(0,import_react2.useRef)(null),f=(0,import_react2.useMemo)(()=>(_.current=null,new import_react.Schema(r)),[r]),{uiSchema:v,defaultValue:b}=useCollectionFieldUISchema(),S=(0,import_ahooks.useUpdate)(),{onChange:C}=(0,import_react2.useContext)(SchemaComponentOnChangeContext),y=_.current||f;!y.parent&&h&&(y.parent=h,!((o=(t=y.parent)==null?void 0:t.properties)!=null&&o[y.name])&&y.name&&import_lodash.default.set(y.parent,`properties.${y.name}`,y));const F=(0,import_react2.useCallback)(()=>{const M=y.parent;_.current=new import_react.Schema(y.toJSON(),M),M!=null&&M.properties&&Object.keys(M.properties).forEach(L=>{L===y.name&&(M.properties[L]=_.current)}),S(),C==null||C()},[y,C,S]),I=(0,import_react2.useMemo)(()=>p?createMergedSchemaInstance(y,p,n):v?(v.default=b,createMergedSchemaInstance(y,v,n)):y,[v,b,y,n,p]),T=useFieldProps(I),k=M=>{if(!a)return propertiesToReactElement({schema:y,field:M,basePath:g,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d})},N=()=>(0,import_shared.isValid)(i)?I.type==="object"?n?k():(0,import_jsx_runtime.jsx)(import_react.ObjectField,P(x({},T),{name:i,basePath:g,children:k})):I.type==="array"?(0,import_jsx_runtime.jsx)(import_react.ArrayField,P(x({},T),{name:i,basePath:g})):I.type==="void"?n?k():(0,import_jsx_runtime.jsx)(import_react.VoidField,P(x({},T),{name:i,basePath:g,children:k})):d?(0,import_jsx_runtime.jsx)(import_react.Field,P(x({},T),{name:i,basePath:g})):(0,import_jsx_runtime.jsx)(NocoBaseField,{name:i,value:m,initialValue:m,basePath:g,schema:I}):k();return y?(0,import_jsx_runtime.jsx)(import_react.SchemaContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(RefreshFieldSchemaProvider,{refresh:F,children:N()})}):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{})});NocoBaseRecursionField.displayName="NocoBaseRecursionField";const PopupLevelContext=import_react2.default.createContext(0),ActionContainer=(0,import_react.observer)(e=>{const{getComponentByOpenMode:t,defaultOpenMode:o}=useOpenModeContext()||{},{openMode:r=e.openMode||o}=useActionContext(),i=import_react2.default.useContext(PopupLevelContext)+1,n=t(r)||ActionDrawer;return(0,import_jsx_runtime.jsx)(PopupLevelContext.Provider,{value:i,children:(0,import_jsx_runtime.jsx)(n,x({footerNodeName:"Action.Container.Footer",level:i||1},e))})},{displayName:"ActionContainer"});ActionContainer.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionContainer.Footer"});const ActionLink=withDynamicSchemaProps((0,import_react.observer)(e=>(0,import_jsx_runtime.jsx)(Action$1,P(x({},e),{component:e.component||"a",className:(0,import_classnames.default)("nb-action-link",e.className),isLink:!0}))),{displayName:"ActionLink"}),useStyles$8=genStyleHook("nb-action",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-action-link":{margin:"-12px",padding:"12px",".nb-action-title":{marginInlineStart:"0px"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:"0",bottom:"0",left:"0",right:"0",display:"none",background:"var(--colorBgSettingsHover)",border:"0",pointerEvents:"none","&.nb-in-template":{background:"var(--colorTemplateBgSettingsHover)"},"> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:e.colorSettings,color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-btn-icon":{marginInlineEnd:"0px !important"},".nb-action-title":{marginInlineStart:`${e.controlPaddingHorizontalSM}px`}}}}),useGetAriaLabelOfAction=e=>{const t=useRecord(),o=useRecordIndex(),r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:(n==null?void 0:n.displayName)||(n==null?void 0:n.name);let l=(t==null?void 0:t.name)||(t==null?void 0:t.title)||(o!=null?String(o):""),c=r["x-action"],{name:u}=useCollection_deprecated(),{name:m}=useBlockContext()||{};const d=e||i(r.title);return u=u?`-${u}`:"",m=m&&m!=="action"?`-${m}`:"",c=c?`-${c}`:"",l=l?`-${l}`:"",{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",`action-${a}-${d}${c}${u}${m}${l}${p}`),[c,d,m,u,a,l])}},useA=()=>({run(){return z(this,null,function*(){})}}),handleError=console.log,Action=withDynamicSchemaProps(import_react2.default.memo(e=>{var t;const o=useProps(e),{popover:r,containerRefKey:i,component:n,useAction:a=useA,className:l,icon:c,title:u,onClick:m,style:d,loading:p,openSize:h,disabled:g,actionCallback:_,confirm:f,addChild:v,onMouseEnter:b,refreshDataBlockRequest:S,confirmTitle:C}=o,y=W(o,["popover","containerRefKey","component","useAction","className","icon","title","onClick","style","loading","openSize","disabled","actionCallback","confirm","addChild","onMouseEnter","refreshDataBlockRequest","confirmTitle"]),F=useDesigner(),I=(0,import_react.useField)(),T=(0,import_react.useFieldSchema)(),k=useCompile(),N=useCollectionRecordData(),M=k((t=T["x-component-props"])==null?void 0:t.confirm)||f,L=(0,import_react2.useMemo)(()=>{var H;return((H=T==null?void 0:T["x-linkage-rules"])==null?void 0:H.filter(J=>!J.disabled))||[]},[T==null?void 0:T["x-linkage-rules"]]),{designable:D}=useDesignable(),R=useComponent(n)||n,$=useVariables$1(),w=useLocalVariables$1(),{visibleWithURL:j,setVisibleWithURL:B}=usePopupUtils(),{setSubmitted:O}=useActionContext(),{getAriaLabel:E}=useGetAriaLabelOfAction(u),V=useCollectionParentRecordData(),U=useApp(),{getAllDataBlocks:q}=useAllDataBlocks(),G=(0,import_react.useForm)();(0,import_react2.useEffect)(()=>{I.stateOfLinkageRules&&setInitialActionState(I);const H=(0,import_shared.uid)(),J=[];return setTimeout(()=>{G.addEffects(H,()=>{forEachLinkageRule(L,(X,Q)=>{J.push((0,import_reactive.reaction)(()=>[getVariableValuesInCondition({linkageRules:L,localVariables:w})].map(oe=>JSON.stringify(oe)).join(","),()=>{I.stateOfLinkageRules={},linkageAction({operator:X.operator,field:I,condition:Q.condition,variables:$,localVariables:w,conditionType:Q.conditionType,variableNameOfLeftCondition:"$nRecord"},U.jsonLogic)},{fireImmediately:!0,equals:import_lodash.isEqual}))})})}),()=>{G.removeEffects(H),J.forEach(X=>{X()})}},[L,N]);const Y=(0,import_react2.useCallback)(H=>{b==null||b(H)},[b]),K=(0,import_react2.useMemo)(()=>m&&((H,J)=>z(void 0,null,function*(){var X,Q;yield m==null?void 0:m(H,J);const oe=((Q=(X=T["x-action-settings"])==null?void 0:X.onSuccess)==null?void 0:Q.blocksToRefresh)||[];oe.length>0&&q().forEach(ee=>{var ie;if(oe.includes(ee.uid))try{(ie=ee.service)==null||ie.refresh()}catch(ae){console.error("Failed to refresh block:",ee.uid,ae)}})})),[m,T,q]);return(0,import_jsx_runtime.jsx)(InternalAction,x({containerRefKey:i,fieldSchema:T,designable:D,field:I,icon:c,loading:p,handleMouseEnter:Y,tarComponent:R,className:l,type:e.type,Designer:F,onClick:K,confirm:M,confirmTitle:C,popover:r,addChild:v,recordData:N,title:u,style:d,propsDisabled:g,useAction:a,visibleWithURL:j,setVisibleWithURL:B,setSubmitted:O,getAriaLabel:E,parentRecordData:V,actionCallback:_},y))}),{displayName:"Action"}),InternalAction=(0,import_react.observer)(function e(t){var o,r,i,n,a;const l=t,{containerRefKey:c,fieldSchema:u,designable:m,field:d,icon:p,loading:h,handleMouseEnter:g,tarComponent:_,className:f,type:v,Designer:b,onClick:S,confirm:C,confirmTitle:y,popover:F,addChild:I,recordData:T,title:k,style:N,propsDisabled:M,useAction:L,actionCallback:D,visibleWithURL:R,setVisibleWithURL:$,setSubmitted:w,getAriaLabel:j,parentRecordData:B}=l,O=W(l,["containerRefKey","fieldSchema","designable","field","icon","loading","handleMouseEnter","tarComponent","className","type","Designer","onClick","confirm","confirmTitle","popover","addChild","recordData","title","style","propsDisabled","useAction","actionCallback","visibleWithURL","setVisibleWithURL","setSubmitted","getAriaLabel","parentRecordData"]),[E,V]=(0,import_react2.useState)(!1),{wrapSSR:U,componentCls:q,hashId:G}=useStyles$8(),[Y,K]=(0,import_react2.useState)(!1),H=u["x-toolbar-props"]||u["x-designer-props"],J=(o=u==null?void 0:u["x-component-props"])==null?void 0:o.openMode,X=(r=u==null?void 0:u["x-component-props"])==null?void 0:r.openSize,Q=(i=u==null?void 0:u["x-component-props"])==null?void 0:i.refreshDataBlockRequest,{modal:oe}=import_antd.App.useApp(),ee=(0,import_react.useForm)(),ie=useACLActionParamsContext(),{run:ae,element:ue,disabled:me}=(L==null?void 0:L(D))||{},he=ee.disabled||d.disabled||((n=d.data)==null?void 0:n.disabled)||M||me,xe=(0,import_react2.useMemo)(()=>{var se;return P(x({},N),{opacity:m&&(((se=d==null?void 0:d.data)==null?void 0:se.hidden)||!ie)&&.1,color:he?"rgba(0, 0, 0, 0.25)":N==null?void 0:N.color})},[ie,m,(a=d==null?void 0:d.data)==null?void 0:a.hidden,N,he]),de={designable:m,field:d,aclCtx:ie,icon:p,loading:h,disabled:he,buttonStyle:xe,handleMouseEnter:g,tarComponent:_,designerProps:H,componentCls:q,hashId:G,className:f,others:O,getAriaLabel:j,type:v,Designer:b,onClick:S,refreshDataBlockRequest:Q,fieldSchema:u,setVisible:V,run:ae,confirm:C,modal:oe,setSubmitted:w,confirmTitle:y,title:k},ge=(0,import_react2.useCallback)(se=>{V==null||V(se),$==null||$(se)},[$]);let pe=(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:RenderButton(de),visible:E||R,setVisible:ge,formValueChanged:Y,setFormValueChanged:K,openMode:J,openSize:X,containerRefKey:c,fieldSchema:u,setSubmitted:w,children:[F&&(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:d.address,onlyRenderProperties:!0,schema:u}),!F&&(0,import_jsx_runtime.jsx)(RenderButton,x({},de)),(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:!F&&t.children}),ue]})});return isBulkEditAction(u)&&(pe=(0,import_jsx_runtime.jsx)(TabsContextProvider,{children:pe})),U(I?(0,import_jsx_runtime.jsx)(TreeRecordProvider,{parent:T,children:pe}):pe)});InternalAction.displayName="InternalAction";Action.Popover=function e(t){const{button:o,visible:r,setVisible:i}=useActionContext(),n=(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:handleError,children:t.children});return(0,import_jsx_runtime.jsx)(StablePopover,P(x({},t),{destroyTooltipOnHide:!0,open:r,onOpenChange:a=>{i(a)},content:n,children:o}))};Action.Popover.displayName="Action.Popover";Action.Popover.Footer=e=>(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",width:"100%"},children:e.children});Action.Popover.Footer.displayName="Action.Popover.Footer";Action.Link=ActionLink;Action.Designer=ActionDesigner;Action.Drawer=ActionDrawer;Action.Modal=ActionModal;Action.Container=ActionContainer;Action.Page=ActionPage;const Action$1=Action;function isBulkEditAction(e){return e["x-action"]==="customize:bulkEdit"}const RenderButton=({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,tarComponent:c,designerProps:u,componentCls:m,hashId:d,className:p,others:h,getAriaLabel:g,type:_,Designer:f,onClick:v,refreshDataBlockRequest:b,fieldSchema:S,setVisible:C,run:y,confirm:F,modal:I,setSubmitted:T,confirmTitle:k,title:N})=>{const{getDataBlockRequest:M}=useDataBlockRequestGetter(),{t:L}=(0,import_react_i18next.useTranslation)(),{isPopupVisibleControlledByURL:D}=usePopupSettings(),{openPopup:R}=usePopupUtils(),$=useVariables$1(),w=useLocalVariables$1(),j=(0,import_react2.useRef)(null),B=useCompile(),O=(0,import_react.useForm)();j.current=R;const E={variables:$,localVariables:w},V=(0,import_react2.useCallback)((U,q=!0)=>z(void 0,null,function*(){var G;if(q&&(0,import_client.isPortalInBody)(U.target))return;U.preventDefault(),U.stopPropagation();const Y=yield getVariableValue(L(F==null?void 0:F.title,{title:B(S.title)}),E),K=yield getVariableValue(L(F==null?void 0:F.content,{title:B(S.title)}),E);if(!n&&o){const H=()=>{v?v(U,()=>{var J,X;b!==!1&&(T==null||T(!0),(X=(J=M())==null?void 0:J.refresh)==null||X.call(J))}):isBulkEditAction(S)||!D()?(C(!0),y==null||y()):["view","update","create","customize:popup"].includes(S["x-action"])&&S["x-uid"]?j.current():(C(!0),y==null||y())};(F==null?void 0:F.enable)!==!1&&F!=null&&F.content?(yield(G=O==null?void 0:O.submit)==null?void 0:G.call(O),I.confirm({title:L(Y,{title:k||N||(t==null?void 0:t.title)}),content:L(K,{title:k||N||(t==null?void 0:t.title)}),onOk:H})):H()}}),[o,F==null?void 0:F.content,F==null?void 0:F.enable,F==null?void 0:F.title,k,n,t,S,D,I,v,b,y,T,C,L,N,M]);return(0,import_jsx_runtime.jsx)(RenderButtonInner,x({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,getAriaLabel:g,handleButtonClick:V,tarComponent:c,componentCls:m,hashId:d,className:p,type:_,Designer:f,designerProps:u,title:N},h))};RenderButton.displayName="RenderButton";const RenderButtonInner=(0,import_react.observer)(e=>{var t,o;const r=e,{designable:i,field:n,aclCtx:a,icon:l,loading:c,disabled:u,buttonStyle:m,handleMouseEnter:d,getAriaLabel:p,handleButtonClick:h,tarComponent:g,componentCls:_,hashId:f,className:v,type:b,Designer:S,designerProps:C,title:y,isLink:F,onlyIcon:I}=r,T=W(r,["designable","field","aclCtx","icon","loading","disabled","buttonStyle","handleMouseEnter","getAriaLabel","handleButtonClick","tarComponent","componentCls","hashId","className","type","Designer","designerProps","title","isLink","onlyIcon"]),{t:k}=(0,import_react_i18next.useTranslation)(),N=(0,import_react2.useCallback)((0,import_debounce.default)((B,O=!0)=>{h(B,O)},300,{leading:!0,trailing:!1}),[h]);if((0,import_react2.useEffect)(()=>()=>{N.cancel()},[]),!i&&((t=n==null?void 0:n.data)!=null&&t.hidden||!a))return null;const M=y??(n==null?void 0:n.title),L=typeof M=="string"?k(M,{ns:NAMESPACE_UI_SCHEMA}):M,D=m,{opacity:R}=D,$=W(D,["opacity"]),w=F&&R?{opacity:R}:void 0,j=import_react2.default.forwardRef((B,O)=>{var E=B,{component:V=g||import_antd.Button,icon:U,onlyIcon:q,children:G}=E,Y=W(E,["component","icon","onlyIcon","children"]);return(0,import_jsx_runtime.jsxs)(V,P(x({ref:O},Y),{children:[q?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:Y.title,children:(0,import_jsx_runtime.jsx)("span",{children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U})}):(0,import_jsx_runtime.jsx)("span",{children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U}),q?G[1]:G]}))});return(0,import_jsx_runtime.jsxs)(SortableItem,P(x({role:"button","aria-label":p()},T),{onMouseEnter:d,loading:((o=n==null?void 0:n.data)==null?void 0:o.loading)||c,icon:typeof l=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:l,style:w}):l,disabled:u,style:F?$:m,onClick:N,component:I||g?j:g||import_antd.Button,className:(0,import_classnames.default)(_,f,v,"nb-action"),type:b==="danger"?void 0:b,title:L,onlyIcon:I,children:[!I&&L&&(0,import_jsx_runtime.jsx)("span",{className:l?"nb-action-title":null,style:w,children:L}),(0,import_jsx_runtime.jsx)(S,x({},C))]}))});RenderButtonInner.displayName="RenderButtonInner";const ActionBarContext=import_react2.default.createContext({container:null}),ActionBarProvider=e=>{var t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(ActionBarContext.Provider,{value:r,children:o})},useActionBarContext=()=>(0,import_react2.useContext)(ActionBarContext),Portal=e=>{const t=(0,import_react.useFieldSchema)(),{container:o,parentComponents:r=["BlockItem","CardItem"]}=useActionBarContext();return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o&&r.includes(t.parent["x-component"])?(0,import_react_dom.createPortal)(e.children,o):e.children})},InternalActionBar=e=>{var t;const{forceProps:o={}}=useActionBarContext(),r=x(x({},useProps(e)),o),{layout:i="two-columns",style:n,spaceProps:a}=r,l=W(r,["layout","style","spaceProps"]),c=(0,import_react.useFieldSchema)(),{render:u}=useSchemaInitializerRender(c["x-initializer"],c["x-initializer-props"]),{designable:m}=useDesignable();if(i==="one-column")return(0,import_jsx_runtime.jsx)(Portal,{children:(0,import_jsx_runtime.jsx)(DndContext,{children:(0,import_jsx_runtime.jsxs)("div",P(x({style:x({display:"flex",alignItems:"center",gap:8,marginTop:0},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[e.children&&(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))}),u({style:{margin:"0 !important"}})]}))})});const d=Object.keys((t=c.properties)!=null?t:{}).length>0;return(0,import_jsx_runtime.jsxs)("div",P(x({style:!m&&!d?void 0:x({display:"flex",justifyContent:"space-between",alignItems:"center",overflowX:"auto",flexShrink:0,gap:"8px"},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",overflow:"hidden",flexWrap:"wrap",gap:"8px"},children:(0,import_jsx_runtime.jsxs)(DndContext,{children:[(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:{flexWrap:"wrap"},children:c.mapProperties((p,h)=>p["x-align"]!=="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))})),(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>p["x-align"]==="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))]})}),u()]}))},ActionBar=withDynamicSchemaProps(e=>(0,import_jsx_runtime.jsx)(InternalActionBar,x({},e)),{displayName:"ActionBar"}),useGetAriaLabelOfPopover=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`popover-${o}${i}${n}${a}`),[i,o,n])}},requestChartData=e=>function(){return z(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=W(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=W(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=W(t,["request","effects","initialValue","useValues"]),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({effects:r}),[]),m=n({uid:l["x-uid"],onSuccess(p){return z(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_core.isArrayField)(n)&&((l=n==null?void 0:n.value)==null?void 0:l.length)===0)return;const d=n.value!==null&&m.map((p,h)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:p[c.color],icon:p.icon,children:p[c.label]},h));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=W(t,["value","options","onChange","fieldNames","mode","loading","rawOptions","defaultValue"]),d=p=>{var h;if(isEmptyObject(p))return;const g=(0,import_shared.toArr)(p).filter(f=>f).map(f=>(0,import_client.isPlainObject)(f)?f[n.value]:f),_=(h=getCurrentOptions(g,r,n))==null?void 0:h.map(f=>({label:f[n.label],value:f[n.value]}));return["tags","multiple"].includes(a)||e.multiple?_:_.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,h)=>{var g;return((g=h==null?void 0:h[n.label||"label"])!=null?g:"").includes(p)},filterSort:(p,h)=>{var g,_;return((g=p==null?void 0:p[n.label||"label"])!=null?g:"").toLowerCase().localeCompare(((_=h==null?void 0:h[n.label||"label"])!=null?_:"").toLowerCase())},onChange:p=>{const h=getCurrentOptions((0,import_shared.toArr)(p).map(g=>g.value),c||r,n);["tags","multiple"].includes(a)||e.multiple?i==null||i(h):i==null||i(h.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=W(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)=>{var o,r,i,n;const{value:a,options:l}=e,c=(0,import_lodash.every)(l,u=>u.value!==a)&&((n=(i=(r=(o=t==null?void 0:t.data)==null?void 0:o.dataSource)==null?void 0:r.find)==null?void 0:i.call(r,u=>u.value===a))==null?void 0:n.label)||a;return P(x({},e),{value:c,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?()=>z(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:h,optionFilter:g,dataSource:_,toOptionsItem:f=K=>K,popupMatchSelectWidth:v=!1,onSuccess:b}=r,S=W(r,["fieldNames","service","wait","value","defaultValue","objectValue","manual","mapOptions","targetField","CustomDropdownRender","optionFilter","dataSource","toOptionsItem","popupMatchSelectWidth","onSuccess"]),C=useDataSourceKey(),y=useDataSourceHeaders(_||C),F=(0,import_react2.useRef)(!1),I=(0,import_react.useFieldSchema)(),T=((t=I["x-component-props"])==null?void 0:t.addMode)==="quickAdd",{getField:k}=useCollection_deprecated(),N=(0,import_react2.useRef)(null),{getCollectionJoinField:M,getInterface:L}=useCollectionManager_deprecated(),D=I["x-collection-field"]||I.name,R=k(D)||M(D),$=p||(R==null?void 0:R.target)&&(i==null?void 0:i.label)&&M(`${R.target}.${i.label}`),w=(0,import_react2.useMemo)(()=>{var K;if($!=null&&$.interface){const H=L($.interface),J=((K=H==null?void 0:H.filterable)==null?void 0:K.operators[0].value)||"$includes";return $.type==="string"?"$includes":J}return"$includes"},[$]),j=useCompile(),B=(0,import_react2.useCallback)(K=>{try{return K.filter(H=>["number","string"].includes(typeof H[i.value])||!H[i.value]).map(H=>{var J;let X=j(H[i.label]);if((J=$==null?void 0:$.uiSchema)!=null&&J.enum)if(Array.isArray(X))X=X.map((Q,oe)=>{const ee=$.uiSchema.enum.find(ie=>ie.value===Q);return ee?(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ee.color,style:{marginRight:3},children:(ee==null?void 0:ee.label)||Q},oe):(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",children:Q},Q)}).reverse();else{const Q=$.uiSchema.enum.find(oe=>oe.value===X);Q&&(X=(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:Q.color,children:Q.label}))}return($==null?void 0:$.type)==="date"&&(X=(0,import_dayjs.default)(X).format("YYYY-MM-DD")),d?d({[i.label]:X||EMPTY$1,[i.value]:H[i.value]}):P(x({},(0,import_lodash.omit)(H,"style")),{[i.label]:X||EMPTY$1,[i.value]:H[i.value]})}).filter(Boolean)}catch(H){return console.error(H),K}},[$==null?void 0:$.uiSchema,i]),{data:O,run:E,loading:V}=useRequest(P(x({action:"list"},n),{headers:y,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,onSuccess:b},n.defaultParams?{defaultParams:[n.defaultParams]}:{})),U=(0,import_react2.useMemo)(()=>JSON.stringify({service:n,fieldNames:i}),[n,i]),q=(0,import_react2.useCallback)(()=>N.current&&h?(0,import_jsx_runtime.jsx)(h,{search:N.current,callBack:()=>{N.current=null}}):null,[N.current]);(0,import_react2.useEffect)(()=>{F.current&&E()},[U]);const G=K=>z(void 0,null,function*(){var H;E({filter:mergeFilter([K?{[i.label]:{[w]:K}}:{},(H=n==null?void 0:n.params)==null?void 0:H.filter])}),N.current=K}),Y=(0,import_react2.useMemo)(()=>{var K;const H=l||c;if(!((K=O==null?void 0:O.data)!=null&&K.length))return H!=null?Array.isArray(H)?H:[H]:[];const J=H!=null&&(Array.isArray(H)?H.map(Q=>P(x({},Q),{[i.value]:Q[i.value]||Q})):[P(x({},H),{[i.value]:H[i.value]||H})])||[],X=typeof g=="function"?O.data.filter(g):O.data;return(0,import_lodash.uniqBy)(X.concat(J??[]),i.value)},[l,c,O==null?void 0:O.data,i.value,g]);return(0,import_jsx_runtime.jsx)(Select,P(x({popupMatchSelectWidth:v,autoClearSearchValue:!0,filterOption:!1,filterSort:null,fieldNames:i,onSearch:G,onDropdownVisibleChange:K=>{N.current=null,K&&E(),F.current=!0},objectValue:u,value:l,defaultValue:c},S),{loading:O?V:!0,options:f(B(Y)),rawOptions:Y,dropdownRender:K=>{const H=Y.some(J=>J[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:[!((O==null?void 0:O.data.length)===0&&N!=null&&N.current)&&K,(O==null?void 0:O.data.length)>0&&(N==null?void 0:N.current)&&!H&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!H&&(0,import_jsx_runtime.jsx)(q,{})]}):K})}}))},(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$1(),{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),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=useDataSourceKey(),f=useDataSourceHeaders(_);(0,import_react2.useEffect)(()=>{n&&a&&t&&(t.__template=!0,a.key==="duplicate"&&C(a.dataId,a,f))},[]),(0,import_react2.useEffect)(()=>{c!=null&&c.some(F=>F.key===u)||S("none")},[c]);const v=(0,import_react2.useMemo)(()=>x({display:"flex",alignItems:"center",backgroundColor:o.colorFillAlter,padding:o.padding},e),[e,o.colorFillAlter]),b=(0,import_react2.useMemo)(()=>({fontSize:o.fontSize,fontWeight:"bold",whiteSpace:"nowrap",marginRight:o.marginXS}),[o.fontSize,o.marginXS]),S=(0,import_react2.useCallback)(F=>z(void 0,null,function*(){m(F),p(null),t==null||t.reset()}),[]),C=(0,import_react2.useCallback)((F,I,T)=>z(void 0,null,function*(){const k=P(x({},I),{dataId:F});p(I),fetchTemplateData(h,k,T).then(N=>(t&&N&&(t.reset(),t.__template=!0,(0,import_client.forEach)(N,(M,L)=>{var D;M&&(t.values[L]=M,(D=t==null?void 0:t.setInitialValuesIn)==null||D.call(t,L,M))})),N)).catch(N=>{console.error(N)})}),[]);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:b,children:[g("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:S}),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=>C(F==null?void 0:F.id,x(x({},F),y),f),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 z(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,titleHeight:u}=l||{},{display:m,enabled:d}=useFormDataTemplates(),p=i.reduceProperties((F,I)=>I["x-component"]==="ActionBar"?I:F),h=Object.keys((p==null?void 0:p.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||a?n.controlHeight+(g?1*n.marginLG:24+n.paddingLG):n.marginLG,f=c?u:0,v=useDataBlockRequestData(),{count:b,pageSize:S}=(v==null?void 0:v.meta)||{},C=b>S?n.controlHeightSM+24:0,y=m&&d?n.controlHeight+2*n.padding+n.margin:0;return r-_-n.paddingLG-f-C-y},FormComponent=e=>{const t=e,{form:o,children:r}=t,i=W(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:h=120,labelWrap:g=!0,colon:_=!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"?h:null,labelWrap:g,colon:_,children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
726
|
+
`,defaultValue:"h:mm a",formats:["hh:mm:ss a","HH:mm:ss"],timeFormat:!0},default:d,enum:[{label:DateFormatCom({format:"hh:mm:ss a"}),value:"hh:mm:ss a"},{label:DateFormatCom({format:"HH:mm:ss"}),value:"HH:mm:ss"},{label:"custom",value:"custom"}]}}},onSubmit:p=>{const h={"x-uid":n["x-uid"]};h["x-component-props"]=a.componentProps||{},n["x-component-props"]=x(x({},a.componentProps||{}),p),h["x-component-props"]=n["x-component-props"],a.componentProps=n["x-component-props"];const g=a.path.entire.split(".");g.pop();const _=g.join(".");a.query(`${_}.*[0:].${n.name}`).forEach(f=>{f.props.name===n.name&&f.setComponentProps(x({},p))}),l.emit("patch",{schema:h}),l.refresh()}})},timePickerComponentFieldSettings=new SchemaSettings({name:"fieldSettings:component:TimePicker",items:[{name:"timeDisplayFormat",Component:SchemaSettingsTimeFormat,useComponentProps(){const e=(0,import_react.useFieldSchema)(),{fieldSchema:t}=useColumnSchema$1();return{fieldSchema:t||e}}}]}),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]});class SchemaSettingsPlugin extends Plugin{load(){return z(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(filterRecordPickerComponentFieldSettings),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),this.schemaSettingsManager.add(timePickerComponentFieldSettings)})}}const useBuiltInVariables=()=>{const{currentUserCtx:e}=useCurrentUserVariable(),{currentRoleCtx:t}=useCurrentRoleVariable(),{apiTokenCtx:o}=useAPITokenVariable(),{datetimeCtx:r}=useDatetimeVariable(),{exactDateTimeCtx:i}=useExactDateVariable(),{urlSearchParamsCtx:n,name:a,defaultValue:l}=useURLSearchParamsVariable(),c=useGlobalVariableCtx("$env");return{builtinVariables:(0,import_react2.useMemo)(()=>[c,{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:"$nExactDate",ctx:i},{name:"$system",ctx:{now:()=>(0,import_client.dayjs)().toISOString()}},{name:"currentTime",ctx:()=>(0,import_client.dayjs)().toISOString()},{name:a,ctx:n,defaultValue:l}].filter(Boolean),[t,e,r,l,n,a,c,i])}},filterEmptyValues=e=>Array.isArray(e)?e.filter(t=>t===0||t===!1||t):e,TYPE_TO_ACTION={hasMany:"list?paginate=false",belongsTo:"get",hasOne:"get",belongsToMany:"list?paginate=false",belongsToArray:"list?paginate=false"},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$1=(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)(f=>{import_lodash.default.isFunction(f)?o.current=f(o.current):o.current=f},[]),u=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){var S,C;const y=f.split("."),F=y[0],I=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v);let T=mergeCtxWithLocalVariables(o.current,v);const{fieldPath:k,dataSource:N,variableOption:M}=getFieldPath$1(F,I);let L=k;const{fieldPath:D}=getFieldPath$1(f,I),R=y.length===1?M==null?void 0:M.collectionName:(S=i(D,N))==null?void 0:S.target;if(!(F in T))throw new Error(`VariablesProvider: ${F} is not found`);for(let w=0;w<y.length;w++){if(T==null)return{value:T===void 0?M==null?void 0:M.defaultValue:T,dataSource:N,collectionName:R};const j=y[w],B=y.slice(0,w+1).join("."),{fieldPath:O}=getFieldPath$1(B,I),E=i(O,N),V=(C=n(L,N))==null?void 0:C.getPrimaryKey();if(Array.isArray(T)){const U=T.map(q=>{if(!(b!=null&&b.doNotRequest)&&shouldToRequest(q==null?void 0:q[j],q,B)&&(q==null?void 0:q[V])!=null&&E!=null&&E.target){const G=`/${L}/${q[E.sourceKey||V]}/${j}:${getAction(E.type)}`;if(hasRequested(G))return getRequested(G);const Y=r.request({headers:getDataSourceHeaders(N),url:G,params:{appends:b==null?void 0:b.appends}}).then(K=>(clearRequested(G),K.data.data));return stashRequested(G,Y),Y}return q==null?void 0:q[j]});T=removeThroughCollectionFields(import_lodash.default.flatten(yield Promise.all(U)),E)}else if(!(b!=null&&b.doNotRequest)&&shouldToRequest(T[j],T,B)&&T[V]!=null&&E!=null&&E.target){const U=`/${L}/${T[E.sourceKey||V]}/${j}:${getAction(E.type)}`;let q=null;if(hasRequested(U))q=yield getRequested(U);else{const Y=r.request({headers:getDataSourceHeaders(N),url:U,params:{appends:b==null?void 0:b.appends}});stashRequested(U,Y),q=yield Y,clearRequested(U)}const G=q.data.data;T=removeThroughCollectionFields(G,E)}else T=removeThroughCollectionFields((0,import_client.getValuesByPath)(T,j),E);E!=null&&E.target&&(L=E.target)}const $=a(import_lodash.default.isFunction(T)?T({fieldOperator:b==null?void 0:b.fieldOperator,isParsingVariable:!0}):T);return{value:$===void 0?M.defaultValue:$,dataSource:N,collectionName:R}}),[i]),m=(0,import_react2.useCallback)(f=>{if(!isVariable$1(`{{${f.name}}}`))throw new Error(`VariablesProvider: ${f.name} is not a valid name`);c(v=>P(x({},v),{[f.name]:f.ctx})),variablesStore[f.name]=P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null})},[c]),d=(0,import_react2.useCallback)(f=>o.current[f]?x({},variablesStore[f]):null,[]),p=(0,import_react2.useCallback)(f=>{c(v=>{const b=x({},v);return delete b[f],b}),delete variablesStore[f]},[c]),h=(0,import_react2.useCallback)((f,v,b)=>z(void 0,null,function*(){if(!isVariable$1(f))return f;v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=getPath(f),C=yield u(S,v,b);return P(x({},C),{value:uniq(filterEmptyValues(C.value))})}),[u]),g=(0,import_react2.useCallback)((f,v)=>z(void 0,null,function*(){var b;if(!isVariable$1(f))throw new Error(`VariablesProvider: ${f} is not a variable string`);v&&(v=import_lodash.default.isArray(v)?v:[v]);const S=mergeVariableToCollectionNameWithLocalVariables(variablesStore,v),C=getPath(f),{fieldPath:y,dataSource:F}=getFieldPath$1(C,S);let I=i(y,F);return!I&&!C.includes(".")&&(I={target:(b=S[C])==null?void 0:b.collectionName}),I}),[i]);(0,import_react2.useEffect)(()=>{l.forEach(f=>{m(P(x({},f),{defaultValue:import_lodash.default.has(f,"defaultValue")?f.defaultValue:null}))})},[l,m]);const _=(0,import_react2.useMemo)(()=>({ctxRef:o,setCtx:c,parseVariable:h,registerVariable:m,getVariable:d,getCollectionField:g,removeVariable:p,filterVariables:t}),[g,d,h,m,p,c]);return(0,import_jsx_runtime.jsx)(VariablesContext.Provider,{value:_,children:e})};VariablesProvider.displayName="VariablesProvider";const VariablesProvider$1=VariablesProvider;function shouldToRequest(e,t,o){if(o.split(".").length===2&&(o.startsWith("$nForm.")||o.startsWith("$iteration.")))return!1;let r=!1;return(0,import_reactive.untracked)(()=>{if(JSON.stringify(e)==="[{}]"||JSON.stringify(e)==="{}"){r=!0;return}r=import_lodash.default.isEmpty(e)}),r}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,h,g,_,f,v,b,S;const C=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=C(this.props.title||((e=this.props.schema)==null?void 0:e.title)),this.description=C(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=C(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=C(this.props.content||((u=this.props.schema)==null?void 0:u["x-content"])),this.initialValue=C(this.props.initialValue||((m=this.props.schema)==null?void 0:m.default)),this.value=C(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"],(h=this.props.schema)==null?void 0:h["x-decorator-props"]],this.component=this.props.component?(0,import_shared.toArr)(this.props.component):[(g=this.props.schema)==null?void 0:g["x-component"],(_=this.props.schema)==null?void 0:_["x-component-props"]],this.decoratorProps=((f=this.props.schema)==null?void 0:f["x-decorator-props"])||{},this.componentProps=((v=this.props.schema)==null?void 0:v["x-component-props"])||{},this.decoratorType=(b=this.props.schema)==null?void 0:b["x-decorator"],this.componentType=(S=this.props.schema)==null?void 0:S["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=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 h=u;if((0,import_shared.isFn)(r)){const _=r(u,m);_&&(h=_)}if((0,import_shared.isFn)(i)&&i(h,m)===!1)return null;const g=(0,import_shared.isBool)(n)&&n?(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{propsRecursion:!0,filterProperties:i,mapProperties:r,schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l}):(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{schema:h,name:m,basePath:p,values:import_lodash.default.get(a,m),isUseFormilyField:l});return h["x-component"]==="CollectionField"?(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!0,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaProvider,{fieldSchema:h,children:g})},`${d}-${m}`):(0,import_jsx_runtime.jsx)(IsInNocoBaseRecursionFieldContext.Provider,{value:!1,children:(0,import_jsx_runtime.jsx)(CollectionFieldUISchemaContext.Provider,{value:EMPTY_OBJECT,children:g})},`${d}-${m}`)})}):null},IsInNocoBaseRecursionFieldContext=import_react2.default.createContext(!1),useIsInNocoBaseRecursionFieldContext=()=>import_react2.default.useContext(IsInNocoBaseRecursionFieldContext),NocoBaseRecursionField=import_react2.default.memo(e=>{var t,o;const{schema:r,name:i,onlyRenderProperties:n,onlyRenderSelf:a,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d=!0,uiSchema:p,parentSchema:h}=e,g=useBasePath(e),_=(0,import_react2.useRef)(null),f=(0,import_react2.useMemo)(()=>(_.current=null,new import_react.Schema(r)),[r]),{uiSchema:v,defaultValue:b}=useCollectionFieldUISchema(),S=(0,import_ahooks.useUpdate)(),{onChange:C}=(0,import_react2.useContext)(SchemaComponentOnChangeContext),y=_.current||f;!y.parent&&h&&(y.parent=h,!((o=(t=y.parent)==null?void 0:t.properties)!=null&&o[y.name])&&y.name&&import_lodash.default.set(y.parent,`properties.${y.name}`,y));const F=(0,import_react2.useCallback)(()=>{const M=y.parent;_.current=new import_react.Schema(y.toJSON(),M),M!=null&&M.properties&&Object.keys(M.properties).forEach(L=>{L===y.name&&(M.properties[L]=_.current)}),S(),C==null||C()},[y,C,S]),I=(0,import_react2.useMemo)(()=>p?createMergedSchemaInstance(y,p,n):v?(v.default=b,createMergedSchemaInstance(y,v,n)):y,[v,b,y,n,p]),T=useFieldProps(I),k=M=>{if(!a)return propertiesToReactElement({schema:y,field:M,basePath:g,mapProperties:l,filterProperties:c,propsRecursion:u,values:m,isUseFormilyField:d})},N=()=>(0,import_shared.isValid)(i)?I.type==="object"?n?k():(0,import_jsx_runtime.jsx)(import_react.ObjectField,P(x({},T),{name:i,basePath:g,children:k})):I.type==="array"?(0,import_jsx_runtime.jsx)(import_react.ArrayField,P(x({},T),{name:i,basePath:g})):I.type==="void"?n?k():(0,import_jsx_runtime.jsx)(import_react.VoidField,P(x({},T),{name:i,basePath:g,children:k})):d?(0,import_jsx_runtime.jsx)(import_react.Field,P(x({},T),{name:i,basePath:g})):(0,import_jsx_runtime.jsx)(NocoBaseField,{name:i,value:m,initialValue:m,basePath:g,schema:I}):k();return y?(0,import_jsx_runtime.jsx)(import_react.SchemaContext.Provider,{value:y,children:(0,import_jsx_runtime.jsx)(RefreshFieldSchemaProvider,{refresh:F,children:N()})}):(0,import_jsx_runtime.jsx)(import_react2.Fragment,{})});NocoBaseRecursionField.displayName="NocoBaseRecursionField";const PopupLevelContext=import_react2.default.createContext(0),ActionContainer=(0,import_react.observer)(e=>{const{getComponentByOpenMode:t,defaultOpenMode:o}=useOpenModeContext()||{},{openMode:r=e.openMode||o}=useActionContext(),i=import_react2.default.useContext(PopupLevelContext)+1,n=t(r)||ActionDrawer;return(0,import_jsx_runtime.jsx)(PopupLevelContext.Provider,{value:i,children:(0,import_jsx_runtime.jsx)(n,x({footerNodeName:"Action.Container.Footer",level:i||1},e))})},{displayName:"ActionContainer"});ActionContainer.Footer=(0,import_react.observer)(()=>{const e=(0,import_react.useField)(),t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:e.address,schema:t,onlyRenderProperties:!0})},{displayName:"ActionContainer.Footer"});const ActionLink=withDynamicSchemaProps((0,import_react.observer)(e=>(0,import_jsx_runtime.jsx)(Action$1,P(x({},e),{component:e.component||"a",className:(0,import_classnames.default)("nb-action-link",e.className),isLink:!0}))),{displayName:"ActionLink"}),useStyles$8=genStyleHook("nb-action",e=>{const{componentCls:t}=e;return{[t]:{position:"relative","&:hover":{"> .general-schema-designer":{display:"block"}},"&.nb-action-link":{margin:"-12px",padding:"12px",".nb-action-title":{marginInlineStart:"0px"}},"> .general-schema-designer":{position:"absolute",zIndex:999,top:"0",bottom:"0",left:"0",right:"0",display:"none",background:"var(--colorBgSettingsHover)",border:"0",pointerEvents:"none","&.nb-in-template":{background:"var(--colorTemplateBgSettingsHover)"},"> .general-schema-designer-icons":{position:"absolute",right:"2px",top:"2px",lineHeight:"16px",pointerEvents:"all",".ant-space-item":{backgroundColor:e.colorSettings,color:"#fff",lineHeight:"16px",width:"16px",paddingLeft:"1px",alignSelf:"stretch"}}},".ant-btn-icon":{marginInlineEnd:"0px !important"},".nb-action-title":{marginInlineStart:`${e.controlPaddingHorizontalSM}px`}}}}),useGetAriaLabelOfAction=e=>{const t=useRecord(),o=useRecordIndex(),r=(0,import_react.useFieldSchema)(),i=useCompile(),n=r["x-component"],a=typeof n=="string"?n:(n==null?void 0:n.displayName)||(n==null?void 0:n.name);let l=(t==null?void 0:t.name)||(t==null?void 0:t.title)||(o!=null?String(o):""),c=r["x-action"],{name:u}=useCollection_deprecated(),{name:m}=useBlockContext()||{};const d=e||i(r.title);return u=u?`-${u}`:"",m=m&&m!=="action"?`-${m}`:"",c=c?`-${c}`:"",l=l?`-${l}`:"",{getAriaLabel:(0,import_react2.useCallback)(p=>(p=p?`-${p}`:"",`action-${a}-${d}${c}${u}${m}${l}${p}`),[c,d,m,u,a,l])}},useA=()=>({run(){return z(this,null,function*(){})}}),handleError=console.log,Action=withDynamicSchemaProps(import_react2.default.memo(e=>{var t;const o=useProps(e),{popover:r,containerRefKey:i,component:n,useAction:a=useA,className:l,icon:c,title:u,onClick:m,style:d,loading:p,openSize:h,disabled:g,actionCallback:_,confirm:f,addChild:v,onMouseEnter:b,refreshDataBlockRequest:S,confirmTitle:C}=o,y=W(o,["popover","containerRefKey","component","useAction","className","icon","title","onClick","style","loading","openSize","disabled","actionCallback","confirm","addChild","onMouseEnter","refreshDataBlockRequest","confirmTitle"]),F=useDesigner(),I=(0,import_react.useField)(),T=(0,import_react.useFieldSchema)(),k=useCompile(),N=useCollectionRecordData(),M=k((t=T["x-component-props"])==null?void 0:t.confirm)||f,L=(0,import_react2.useMemo)(()=>{var H;return((H=T==null?void 0:T["x-linkage-rules"])==null?void 0:H.filter(J=>!J.disabled))||[]},[T==null?void 0:T["x-linkage-rules"]]),{designable:D}=useDesignable(),R=useComponent(n)||n,$=useVariables$1(),w=useLocalVariables$1(),{visibleWithURL:j,setVisibleWithURL:B}=usePopupUtils(),{setSubmitted:O}=useActionContext(),{getAriaLabel:E}=useGetAriaLabelOfAction(u),V=useCollectionParentRecordData(),U=useApp(),{getAllDataBlocks:q}=useAllDataBlocks(),G=(0,import_react.useForm)();(0,import_react2.useEffect)(()=>{I.stateOfLinkageRules&&setInitialActionState(I);const H=(0,import_shared.uid)(),J=[];return setTimeout(()=>{G.addEffects(H,()=>{forEachLinkageRule(L,(X,Q)=>{J.push((0,import_reactive.reaction)(()=>[getVariableValuesInCondition({linkageRules:L,localVariables:w})].map(oe=>JSON.stringify(oe)).join(","),()=>{I.stateOfLinkageRules={},linkageAction({operator:X.operator,field:I,condition:Q.condition,variables:$,localVariables:w,conditionType:Q.conditionType,variableNameOfLeftCondition:"$nRecord"},U.jsonLogic)},{fireImmediately:!0,equals:import_lodash.isEqual}))})})}),()=>{G.removeEffects(H),J.forEach(X=>{X()})}},[L,N]);const Y=(0,import_react2.useCallback)(H=>{b==null||b(H)},[b]),K=(0,import_react2.useMemo)(()=>m&&((H,J)=>z(void 0,null,function*(){var X,Q;yield m==null?void 0:m(H,J);const oe=((Q=(X=T["x-action-settings"])==null?void 0:X.onSuccess)==null?void 0:Q.blocksToRefresh)||[];oe.length>0&&q().forEach(ee=>{var ie;if(oe.includes(ee.uid))try{(ie=ee.service)==null||ie.refresh()}catch(ae){console.error("Failed to refresh block:",ee.uid,ae)}})})),[m,T,q]);return(0,import_jsx_runtime.jsx)(InternalAction,x({containerRefKey:i,fieldSchema:T,designable:D,field:I,icon:c,loading:p,handleMouseEnter:Y,tarComponent:R,className:l,type:e.type,Designer:F,onClick:K,confirm:M,confirmTitle:C,popover:r,addChild:v,recordData:N,title:u,style:d,propsDisabled:g,useAction:a,visibleWithURL:j,setVisibleWithURL:B,setSubmitted:O,getAriaLabel:E,parentRecordData:V,actionCallback:_},y))}),{displayName:"Action"}),InternalAction=(0,import_react.observer)(function e(t){var o,r,i,n,a;const l=t,{containerRefKey:c,fieldSchema:u,designable:m,field:d,icon:p,loading:h,handleMouseEnter:g,tarComponent:_,className:f,type:v,Designer:b,onClick:S,confirm:C,confirmTitle:y,popover:F,addChild:I,recordData:T,title:k,style:N,propsDisabled:M,useAction:L,actionCallback:D,visibleWithURL:R,setVisibleWithURL:$,setSubmitted:w,getAriaLabel:j,parentRecordData:B}=l,O=W(l,["containerRefKey","fieldSchema","designable","field","icon","loading","handleMouseEnter","tarComponent","className","type","Designer","onClick","confirm","confirmTitle","popover","addChild","recordData","title","style","propsDisabled","useAction","actionCallback","visibleWithURL","setVisibleWithURL","setSubmitted","getAriaLabel","parentRecordData"]),[E,V]=(0,import_react2.useState)(!1),{wrapSSR:U,componentCls:q,hashId:G}=useStyles$8(),[Y,K]=(0,import_react2.useState)(!1),H=u["x-toolbar-props"]||u["x-designer-props"],J=(o=u==null?void 0:u["x-component-props"])==null?void 0:o.openMode,X=(r=u==null?void 0:u["x-component-props"])==null?void 0:r.openSize,Q=(i=u==null?void 0:u["x-component-props"])==null?void 0:i.refreshDataBlockRequest,{modal:oe}=import_antd.App.useApp(),ee=(0,import_react.useForm)(),ie=useACLActionParamsContext(),{run:ae,element:ue,disabled:me}=(L==null?void 0:L(D))||{},he=ee.disabled||d.disabled||((n=d.data)==null?void 0:n.disabled)||M||me,xe=(0,import_react2.useMemo)(()=>{var se;return P(x({},N),{opacity:m&&(((se=d==null?void 0:d.data)==null?void 0:se.hidden)||!ie)&&.1,color:he?"rgba(0, 0, 0, 0.25)":N==null?void 0:N.color})},[ie,m,(a=d==null?void 0:d.data)==null?void 0:a.hidden,N,he]),de={designable:m,field:d,aclCtx:ie,icon:p,loading:h,disabled:he,buttonStyle:xe,handleMouseEnter:g,tarComponent:_,designerProps:H,componentCls:q,hashId:G,className:f,others:O,getAriaLabel:j,type:v,Designer:b,onClick:S,refreshDataBlockRequest:Q,fieldSchema:u,setVisible:V,run:ae,confirm:C,modal:oe,setSubmitted:w,confirmTitle:y,title:k},ge=(0,import_react2.useCallback)(se=>{V==null||V(se),$==null||$(se)},[$]);let pe=(0,import_jsx_runtime.jsx)(PopupVisibleProvider,{visible:!1,children:(0,import_jsx_runtime.jsxs)(ActionContextProvider,{button:RenderButton(de),visible:E||R,setVisible:ge,formValueChanged:Y,setFormValueChanged:K,openMode:J,openSize:X,containerRefKey:c,fieldSchema:u,setSubmitted:w,children:[F&&(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{basePath:d.address,onlyRenderProperties:!0,schema:u}),!F&&(0,import_jsx_runtime.jsx)(RenderButton,x({},de)),(0,import_jsx_runtime.jsx)(VariablePopupRecordProvider,{children:!F&&t.children}),ue]})});return isBulkEditAction(u)&&(pe=(0,import_jsx_runtime.jsx)(TabsContextProvider,{children:pe})),U(I?(0,import_jsx_runtime.jsx)(TreeRecordProvider,{parent:T,children:pe}):pe)});InternalAction.displayName="InternalAction";Action.Popover=function e(t){const{button:o,visible:r,setVisible:i}=useActionContext(),n=(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent:ErrorFallback,onError:handleError,children:t.children});return(0,import_jsx_runtime.jsx)(StablePopover,P(x({},t),{destroyTooltipOnHide:!0,open:r,onOpenChange:a=>{i(a)},content:n,children:o}))};Action.Popover.displayName="Action.Popover";Action.Popover.Footer=e=>(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"flex-end",width:"100%"},children:e.children});Action.Popover.Footer.displayName="Action.Popover.Footer";Action.Link=ActionLink;Action.Designer=ActionDesigner;Action.Drawer=ActionDrawer;Action.Modal=ActionModal;Action.Container=ActionContainer;Action.Page=ActionPage;const Action$1=Action;function isBulkEditAction(e){return e["x-action"]==="customize:bulkEdit"}const RenderButton=({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,tarComponent:c,designerProps:u,componentCls:m,hashId:d,className:p,others:h,getAriaLabel:g,type:_,Designer:f,onClick:v,refreshDataBlockRequest:b,fieldSchema:S,setVisible:C,run:y,confirm:F,modal:I,setSubmitted:T,confirmTitle:k,title:N})=>{const{getDataBlockRequest:M}=useDataBlockRequestGetter(),{t:L}=(0,import_react_i18next.useTranslation)(),{isPopupVisibleControlledByURL:D}=usePopupSettings(),{openPopup:R}=usePopupUtils(),$=useVariables$1(),w=useLocalVariables$1(),j=(0,import_react2.useRef)(null),B=useCompile(),O=(0,import_react.useForm)();j.current=R;const E={variables:$,localVariables:w},V=(0,import_react2.useCallback)((U,q=!0)=>z(void 0,null,function*(){var G;if(q&&(0,import_client.isPortalInBody)(U.target))return;U.preventDefault(),U.stopPropagation();const Y=yield getVariableValue(L(F==null?void 0:F.title,{title:B(S.title)}),E),K=yield getVariableValue(L(F==null?void 0:F.content,{title:B(S.title)}),E);if(!n&&o){const H=()=>{v?v(U,()=>{var J,X;b!==!1&&(T==null||T(!0),(X=(J=M())==null?void 0:J.refresh)==null||X.call(J))}):isBulkEditAction(S)||!D()?(C(!0),y==null||y()):["view","update","create","customize:popup"].includes(S["x-action"])&&S["x-uid"]?j.current():(C(!0),y==null||y())};(F==null?void 0:F.enable)!==!1&&F!=null&&F.content?(yield(G=O==null?void 0:O.submit)==null?void 0:G.call(O),I.confirm({title:L(Y,{title:k||N||(t==null?void 0:t.title)}),content:L(K,{title:k||N||(t==null?void 0:t.title)}),onOk:H})):H()}}),[o,F==null?void 0:F.content,F==null?void 0:F.enable,F==null?void 0:F.title,k,n,t,S,D,I,v,b,y,T,C,L,N,M]);return(0,import_jsx_runtime.jsx)(RenderButtonInner,x({designable:e,field:t,aclCtx:o,icon:r,loading:i,disabled:n,buttonStyle:a,handleMouseEnter:l,getAriaLabel:g,handleButtonClick:V,tarComponent:c,componentCls:m,hashId:d,className:p,type:_,Designer:f,designerProps:u,title:N},h))};RenderButton.displayName="RenderButton";const RenderButtonInner=(0,import_react.observer)(e=>{var t,o;const r=e,{designable:i,field:n,aclCtx:a,icon:l,loading:c,disabled:u,buttonStyle:m,handleMouseEnter:d,getAriaLabel:p,handleButtonClick:h,tarComponent:g,componentCls:_,hashId:f,className:v,type:b,Designer:S,designerProps:C,title:y,isLink:F,onlyIcon:I}=r,T=W(r,["designable","field","aclCtx","icon","loading","disabled","buttonStyle","handleMouseEnter","getAriaLabel","handleButtonClick","tarComponent","componentCls","hashId","className","type","Designer","designerProps","title","isLink","onlyIcon"]),{t:k}=(0,import_react_i18next.useTranslation)(),N=(0,import_react2.useCallback)((0,import_debounce.default)((B,O=!0)=>{h(B,O)},300,{leading:!0,trailing:!1}),[h]);if((0,import_react2.useEffect)(()=>()=>{N.cancel()},[]),!i&&((t=n==null?void 0:n.data)!=null&&t.hidden||!a))return null;const M=y??(n==null?void 0:n.title),L=typeof M=="string"?k(M,{ns:NAMESPACE_UI_SCHEMA}):M,D=m,{opacity:R}=D,$=W(D,["opacity"]),w=F&&R?{opacity:R}:void 0,j=import_react2.default.forwardRef((B,O)=>{var E=B,{component:V=g||import_antd.Button,icon:U,onlyIcon:q,children:G}=E,Y=W(E,["component","icon","onlyIcon","children"]);return(0,import_jsx_runtime.jsxs)(V,P(x({ref:O},Y),{children:[q?(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:Y.title,children:(0,import_jsx_runtime.jsx)("span",{style:{padding:3},children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U})}):(0,import_jsx_runtime.jsx)("span",{style:{paddingRight:3},children:U&&typeof U=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:U}):U}),q?G[1]:G]}))});return(0,import_jsx_runtime.jsxs)(SortableItem,P(x({role:"button","aria-label":p()},T),{onMouseEnter:d,loading:((o=n==null?void 0:n.data)==null?void 0:o.loading)||c,icon:typeof l=="string"?(0,import_jsx_runtime.jsx)(Icon,{type:l,style:w}):l,disabled:u,style:F?$:m,onClick:N,component:I||g?j:g||import_antd.Button,className:(0,import_classnames.default)(_,f,v,"nb-action"),type:b==="danger"?void 0:b,title:L,onlyIcon:I,children:[!I&&L&&(0,import_jsx_runtime.jsx)("span",{className:l?"nb-action-title":null,style:w,children:L}),(0,import_jsx_runtime.jsx)(S,x({},C))]}))});RenderButtonInner.displayName="RenderButtonInner";const ActionBarContext=import_react2.default.createContext({container:null}),ActionBarProvider=e=>{var t=e,{children:o}=t,r=W(t,["children"]);return(0,import_jsx_runtime.jsx)(ActionBarContext.Provider,{value:r,children:o})},useActionBarContext=()=>(0,import_react2.useContext)(ActionBarContext),Portal=e=>{const t=(0,import_react.useFieldSchema)(),{container:o,parentComponents:r=["BlockItem","CardItem"]}=useActionBarContext();return(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:o&&r.includes(t.parent["x-component"])?(0,import_react_dom.createPortal)(e.children,o):e.children})},InternalActionBar=e=>{var t;const{forceProps:o={}}=useActionBarContext(),r=x(x({},useProps(e)),o),{layout:i="two-columns",style:n,spaceProps:a}=r,l=W(r,["layout","style","spaceProps"]),c=(0,import_react.useFieldSchema)(),{render:u}=useSchemaInitializerRender(c["x-initializer"],c["x-initializer-props"]),{designable:m}=useDesignable();if(i==="one-column")return(0,import_jsx_runtime.jsx)(Portal,{children:(0,import_jsx_runtime.jsx)(DndContext,{children:(0,import_jsx_runtime.jsxs)("div",P(x({style:x({display:"flex",alignItems:"center",gap:8,marginTop:0},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[e.children&&(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))}),u({style:{margin:"0 !important"}})]}))})});const d=Object.keys((t=c.properties)!=null?t:{}).length>0;return(0,import_jsx_runtime.jsxs)("div",P(x({style:!m&&!d?void 0:x({display:"flex",justifyContent:"space-between",alignItems:"center",overflowX:"auto",flexShrink:0,gap:"8px"},n)},l),{className:(0,import_css.cx)(l.className,"nb-action-bar"),children:[(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",overflow:"hidden",flexWrap:"wrap",gap:"8px"},children:(0,import_jsx_runtime.jsxs)(DndContext,{children:[(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:{flexWrap:"wrap"},children:c.mapProperties((p,h)=>p["x-align"]!=="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))})),(0,import_jsx_runtime.jsx)(import_antd.Space,P(x({},a),{style:x({flexWrap:"wrap"},(a==null?void 0:a.style)||{}),children:c.mapProperties((p,h)=>p["x-align"]==="left"?null:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{name:h,schema:p},h))}))]})}),u()]}))},ActionBar=withDynamicSchemaProps(e=>(0,import_jsx_runtime.jsx)(InternalActionBar,x({},e)),{displayName:"ActionBar"}),useGetAriaLabelOfPopover=()=>{const e=(0,import_react.useFieldSchema)(),t=e["x-component"],o=typeof t=="string"?t:(t==null?void 0:t.displayName)||(t==null?void 0:t.name),r=useCompile();let{name:i}=useCollection_deprecated(),n=r(e.title);return i=i?`-${i}`:"",n=n?`-${n}`:"",{getAriaLabel:(0,import_react2.useCallback)(a=>(a=a?`-${a}`:"",`popover-${o}${i}${n}${a}`),[i,o,n])}},requestChartData=e=>function(){return z(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=W(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=W(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=W(t,["request","effects","initialValue","useValues"]),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({effects:r}),[]),m=n({uid:l["x-uid"],onSuccess(p){return z(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_core.isArrayField)(n)&&((l=n==null?void 0:n.value)==null?void 0:l.length)===0)return;const d=n.value!==null&&m.map((p,h)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:p[c.color],icon:p.icon,children:p[c.label]},h));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=W(t,["value","options","onChange","fieldNames","mode","loading","rawOptions","defaultValue"]),d=p=>{var h;if(isEmptyObject(p))return;const g=(0,import_shared.toArr)(p).filter(f=>f).map(f=>(0,import_client.isPlainObject)(f)?f[n.value]:f),_=(h=getCurrentOptions(g,r,n))==null?void 0:h.map(f=>({label:f[n.label],value:f[n.value]}));return["tags","multiple"].includes(a)||e.multiple?_:_.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,h)=>{var g;return((g=h==null?void 0:h[n.label||"label"])!=null?g:"").includes(p)},filterSort:(p,h)=>{var g,_;return((g=p==null?void 0:p[n.label||"label"])!=null?g:"").toLowerCase().localeCompare(((_=h==null?void 0:h[n.label||"label"])!=null?_:"").toLowerCase())},onChange:p=>{const h=getCurrentOptions((0,import_shared.toArr)(p).map(g=>g.value),c||r,n);["tags","multiple"].includes(a)||e.multiple?i==null||i(h):i==null||i(h.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=W(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)=>{var o,r,i,n;const{value:a,options:l}=e,c=(0,import_lodash.every)(l,u=>u.value!==a)&&((n=(i=(r=(o=t==null?void 0:t.data)==null?void 0:o.dataSource)==null?void 0:r.find)==null?void 0:i.call(r,u=>u.value===a))==null?void 0:n.label)||a;return P(x({},e),{value:c,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?()=>z(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:h,optionFilter:g,dataSource:_,toOptionsItem:f=K=>K,popupMatchSelectWidth:v=!1,onSuccess:b}=r,S=W(r,["fieldNames","service","wait","value","defaultValue","objectValue","manual","mapOptions","targetField","CustomDropdownRender","optionFilter","dataSource","toOptionsItem","popupMatchSelectWidth","onSuccess"]),C=useDataSourceKey(),y=useDataSourceHeaders(_||C),F=(0,import_react2.useRef)(!1),I=(0,import_react.useFieldSchema)(),T=((t=I["x-component-props"])==null?void 0:t.addMode)==="quickAdd",{getField:k}=useCollection_deprecated(),N=(0,import_react2.useRef)(null),{getCollectionJoinField:M,getInterface:L}=useCollectionManager_deprecated(),D=I["x-collection-field"]||I.name,R=k(D)||M(D),$=p||(R==null?void 0:R.target)&&(i==null?void 0:i.label)&&M(`${R.target}.${i.label}`),w=(0,import_react2.useMemo)(()=>{var K;if($!=null&&$.interface){const H=L($.interface),J=((K=H==null?void 0:H.filterable)==null?void 0:K.operators[0].value)||"$includes";return $.type==="string"?"$includes":J}return"$includes"},[$]),j=useCompile(),B=(0,import_react2.useCallback)(K=>{try{return K.filter(H=>["number","string"].includes(typeof H[i.value])||!H[i.value]).map(H=>{var J;let X=j(H[i.label]);if((J=$==null?void 0:$.uiSchema)!=null&&J.enum)if(Array.isArray(X))X=X.map((Q,oe)=>{const ee=$.uiSchema.enum.find(ie=>ie.value===Q);return ee?(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:ee.color,style:{marginRight:3},children:(ee==null?void 0:ee.label)||Q},oe):(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",children:Q},Q)}).reverse();else{const Q=$.uiSchema.enum.find(oe=>oe.value===X);Q&&(X=(0,import_jsx_runtime.jsx)(import_antd.Tag,{role:"button",color:Q.color,children:Q.label}))}return($==null?void 0:$.type)==="date"&&(X=(0,import_dayjs.default)(X).format("YYYY-MM-DD")),d?d({[i.label]:X||EMPTY$1,[i.value]:H[i.value]}):P(x({},(0,import_lodash.omit)(H,"style")),{[i.label]:X||EMPTY$1,[i.value]:H[i.value]})}).filter(Boolean)}catch(H){return console.error(H),K}},[$==null?void 0:$.uiSchema,i]),{data:O,run:E,loading:V}=useRequest(P(x({action:"list"},n),{headers:y,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,onSuccess:b},n.defaultParams?{defaultParams:[n.defaultParams]}:{})),U=(0,import_react2.useMemo)(()=>JSON.stringify({service:n,fieldNames:i}),[n,i]),q=(0,import_react2.useCallback)(()=>N.current&&h?(0,import_jsx_runtime.jsx)(h,{search:N.current,callBack:()=>{N.current=null}}):null,[N.current]);(0,import_react2.useEffect)(()=>{F.current&&E()},[U]);const G=K=>z(void 0,null,function*(){var H;E({filter:mergeFilter([K?{[i.label]:{[w]:K}}:{},(H=n==null?void 0:n.params)==null?void 0:H.filter])}),N.current=K}),Y=(0,import_react2.useMemo)(()=>{var K;const H=l||c;if(!((K=O==null?void 0:O.data)!=null&&K.length))return H!=null?Array.isArray(H)?H:[H]:[];const J=H!=null&&(Array.isArray(H)?H.map(Q=>P(x({},Q),{[i.value]:Q[i.value]||Q})):[P(x({},H),{[i.value]:H[i.value]||H})])||[],X=typeof g=="function"?O.data.filter(g):O.data;return(0,import_lodash.uniqBy)(X.concat(J??[]),i.value)},[l,c,O==null?void 0:O.data,i.value,g]);return(0,import_jsx_runtime.jsx)(Select,P(x({popupMatchSelectWidth:v,autoClearSearchValue:!0,filterOption:!1,filterSort:null,fieldNames:i,onSearch:G,onDropdownVisibleChange:K=>{N.current=null,K&&E(),F.current=!0},objectValue:u,value:l,defaultValue:c},S),{loading:O?V:!0,options:f(B(Y)),rawOptions:Y,dropdownRender:K=>{const H=Y.some(J=>J[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:[!((O==null?void 0:O.data.length)===0&&N!=null&&N.current)&&K,(O==null?void 0:O.data.length)>0&&(N==null?void 0:N.current)&&!H&&(0,import_jsx_runtime.jsx)(import_antd.Divider,{style:{margin:0}}),!H&&(0,import_jsx_runtime.jsx)(q,{})]}):K})}}))},(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$1(),{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),h=useAPIClient(),{t:g}=(0,import_react_i18next.useTranslation)(),_=useDataSourceKey(),f=useDataSourceHeaders(_);(0,import_react2.useEffect)(()=>{n&&a&&t&&(t.__template=!0,a.key==="duplicate"&&C(a.dataId,a,f))},[]),(0,import_react2.useEffect)(()=>{c!=null&&c.some(F=>F.key===u)||S("none")},[c]);const v=(0,import_react2.useMemo)(()=>x({display:"flex",alignItems:"center",backgroundColor:o.colorFillAlter,padding:o.padding},e),[e,o.colorFillAlter]),b=(0,import_react2.useMemo)(()=>({fontSize:o.fontSize,fontWeight:"bold",whiteSpace:"nowrap",marginRight:o.marginXS}),[o.fontSize,o.marginXS]),S=(0,import_react2.useCallback)(F=>z(void 0,null,function*(){m(F),p(null),t==null||t.reset()}),[]),C=(0,import_react2.useCallback)((F,I,T)=>z(void 0,null,function*(){const k=P(x({},I),{dataId:F});p(I),fetchTemplateData(h,k,T).then(N=>(t&&N&&(t.reset(),t.__template=!0,(0,import_client.forEach)(N,(M,L)=>{var D;M&&(t.values[L]=M,(D=t==null?void 0:t.setInitialValuesIn)==null||D.call(t,L,M))})),N)).catch(N=>{console.error(N)})}),[]);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:b,children:[g("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:S}),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=>C(F==null?void 0:F.id,x(x({},F),y),f),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 z(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,titleHeight:u}=l||{},{display:m,enabled:d}=useFormDataTemplates(),p=i.reduceProperties((F,I)=>I["x-component"]==="ActionBar"?I:F),h=Object.keys((p==null?void 0:p.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||a?n.controlHeight+(g?1*n.marginLG:24+n.paddingLG):n.marginLG,f=c?u:0,v=useDataBlockRequestData(),{count:b,pageSize:S}=(v==null?void 0:v.meta)||{},C=b>S?n.controlHeightSM+24:0,y=m&&d?n.controlHeight+2*n.padding+n.margin:0;return r-_-n.paddingLG-f-C-y},FormComponent=e=>{const t=e,{form:o,children:r}=t,i=W(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:h=120,labelWrap:g=!0,colon:_=!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"?h:null,labelWrap:g,colon:_,children:(0,import_jsx_runtime.jsx)("div",{className:import_css.css`
|
|
727
727
|
.nb-grid-container {
|
|
728
728
|
height: ${u?u+"px":"100%"};
|
|
729
729
|
overflow-y: auto;
|
|
@@ -986,7 +986,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
986
986
|
.ant-table-tbody .nb-column-initializer {
|
|
987
987
|
min-width: 40px !important;
|
|
988
988
|
}
|
|
989
|
-
`,layout:"vertical",bordered:!1,feedbackLayout:"popover",children:(0,import_jsx_runtime.jsx)(import_react.SchemaOptionsContext.Provider,{value:{scope:l.scope,components:c},children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:t.address,schema:o,filterProperties:u=>u["x-component"]==="AssociationField.SubTable"})})})})})},{displayName:"InternalSubTable"});var AssociationFieldMode=(e=>(e.Picker="Picker",e.Nester="Nester",e.PopoverNester="PopoverNester",e.Select="Select",e.SubTable="SubTable",e.FileManager="FileManager",e.CascadeSelect="CascadeSelect",e.Tag="Tag",e))(AssociationFieldMode||{});const defaultModeToComponent={Picker:InternalPicker,Nester:InternalNester,PopoverNester:InternalPopoverNester,Select:AssociationSelect$1,SubTable:InternalSubTable,FileManager:InternalFileManager,CascadeSelect:InternalCascadeSelect},AssociationFieldModeContext=(0,import_react2.createContext)({modeToComponent:defaultModeToComponent,getComponent:e=>defaultModeToComponent[e],getDefaultComponent:e=>defaultModeToComponent[e]}),AssociationFieldModeProvider=e=>{const t=useAssociationFieldModeContext(),o=(0,import_react2.useMemo)(()=>x(x({},t.modeToComponent),e.modeToComponent),[t.modeToComponent,e.modeToComponent]),r=(0,import_react2.useCallback)(a=>o[a]||defaultModeToComponent[a],[o]),i=(0,import_react2.useCallback)(a=>defaultModeToComponent[a],[]),n=(0,import_react2.useMemo)(()=>({modeToComponent:o,getComponent:r,getDefaultComponent:i}),[r,o,i]);return(0,import_jsx_runtime.jsx)(AssociationFieldModeContext.Provider,{value:n,children:e.children})},useAssociationFieldModeContext=()=>import_react2.default.useContext(AssociationFieldModeContext),AssociationFieldProvider=(0,import_react.observer)(e=>{var t,o,r;const i=(0,import_react.useField)(),n=useCollectionManager(),a=(0,import_react.useFieldSchema)(),l=useAPIClient();useSchemaComponentContext();const c=((t=a["x-component-props"])==null?void 0:t.multiple)!==!1,u=((o=a["x-component-props"])==null?void 0:o.allowDissociate)!==!1,m=(0,import_react2.useMemo)(()=>n.getCollectionField(a["x-collection-field"]),[a["x-collection-field"],a.name]),d=(0,import_react2.useMemo)(()=>{var b;return((b=n.getCollection(m==null?void 0:m.target))==null?void 0:b.template)==="file"},[a["x-collection-field"]]),p=(0,import_react2.useMemo)(()=>{var b;return((b=a["x-component-props"])==null?void 0:b.mode)||(d?"FileManager":"Select")},[(r=a["x-component-props"])==null?void 0:r.mode]),[h,g]=(0,import_react2.useState)(!i.readPretty),{loading:_,run:f}=useRequest(()=>{var b;const S=m.targetKey;if(!a.default||!["Picker","Select"].includes(p)||!import_lodash.default.isObject(a.default))return Promise.reject(null);const C=Array.isArray(a.default)?a.default.map(y=>y[S]):a.default[S];return import_lodash.default.isUndefined(C)||import_lodash.default.isNil(C)||import_lodash.default.isNaN(C)?Promise.reject(null):l.request({resource:m.target,action:Array.isArray(C)?"list":"get",headers:getDataSourceHeaders((b=n==null?void 0:n.dataSource)==null?void 0:b.key),params:{filter:{[S]:C}}})},{manual:!0,onSuccess(b){var S;i.initialValue=(S=b==null?void 0:b.data)==null?void 0:S.data}}),{active:v}=useKeepAlive();return(0,import_react2.useEffect)(()=>{var b;if(v){if(g(!0),!m){g(!1);return}if(["Picker","Select"].includes(p)&&a.default&&f(),i.value&&i.form.__template&&["Nester","SubTable","PopoverNester"].includes(p)&&(["belongsTo","hasOne"].includes(m.type)?((b=i.value)!=null&&b[m.targetKey]&&delete i.value[m.targetKey],i.value=x(x({},i.initialValue),i.value)):["belongsToMany","hasMany"].includes(m.type)&&Array.isArray(i.value)&&(i.value=i.value.map(S=>{var C;return delete S[m.targetKey],x(x({},(C=i.initialValue)==null?void 0:C[0]),S)}))),i.value!==null&&i.value!==void 0){["Nester","PopoverNester"].includes(p)&&Array.isArray(i.value)&&i.value.length===0&&["belongsToMany","hasMany","belongsToArray"].includes(m.type)&&(i.value=[markRecordAsNew({})]),g(!1);return}["Nester"].includes(p)&&(["belongsTo","hasOne"].includes(m.type)?i.value={}:["belongsToMany","hasMany","belongsToArray"].includes(m.type)&&(i.value=[markRecordAsNew({})])),p==="SubTable"&&(i.value=[]),g(!1)}},[p,m,i,v]),h||_?null:m?(0,import_jsx_runtime.jsx)(AssociationFieldContext.Provider,{value:{options:m,field:i,fieldSchema:a,allowMultiple:c,allowDissociate:u,currentMode:p},children:e.children}):null},{displayName:"AssociationFieldProvider"}),InternalField=e=>{const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{uiSchema:r}=useCollectionField_deprecated(),i=useComponent(r==null?void 0:r["x-component"]),n=useCompile(),a=(c,u)=>{t[c]=typeof t[c]>"u"?u:t[c]},l=()=>{typeof o.required>"u"&&(t.required=!!r.required)};return(0,import_react2.useEffect)(()=>{if(!r)return;a("content",r["x-content"]),a("title",r.title),a("description",r.description),a("initialValue",r.default),o["x-disabled"]===!0&&(t.disabled=!0),o["x-read-pretty"]===!0&&(t.readPretty=!0),l(),t.dataSource=r.enum;const c=n(r["x-component-props"])||{},u=(0,import_shared.merge)(c,t.componentProps||{});t.componentProps=u},[JSON.stringify(r)]),r?import_react2.default.createElement(i,e,e.children):null},CollectionField=e=>{const t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:(0,import_jsx_runtime.jsx)(InternalField,x({},e))})};var AssignedFieldValueType=(e=>(e.ConstantValue="constantValue",e.DynamicValue="dynamicValue",e))(AssignedFieldValueType||{});const AssignedFieldInner=e=>{const{value:t,onChange:o}=e,{getCollectionFields:r,getAllCollectionsInheritChain:i}=useCollectionManager_deprecated(),n=useCollection_deprecated(),{form:a}=useFormBlockContext(),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=useRecord(),m=useVariables$1(),d=useLocalVariables$1(),p=useCollectionFilterOptions(n),{name:h,getField:g}=n,_=g(l.name),{uiSchema:f}=useCollectionField_deprecated(),v=(0,import_react2.useMemo)(()=>getShouldChange({collectionField:_,variables:m,localVariables:d,getAllCollectionsInheritChain:i}),[_,i,d,m]),b=(0,import_react2.useCallback)(C=>{const y=C.find(I=>I.value==="$nForm"),F=r(h);return!(F!=null&&F.length)&&y&&(y.children=formatVariableScop(p)),C},[p,h]),S=(0,import_react2.useCallback)(({value:C,onChange:y})=>(0,import_jsx_runtime.jsx)(CollectionField,P(x({},e),{value:C,onChange:y})),[JSON.stringify(import_lodash.default.omit(e,"value"))]);return(0,import_react2.useEffect)(()=>{f&&(c.title=typeof c.title>"u"?(f==null?void 0:f.title)||c.name:c.title)},[JSON.stringify(f)]),(0,import_jsx_runtime.jsx)(FlagProvider,{collectionField:_,children:(0,import_jsx_runtime.jsx)(VariableInput,{form:a,record:u,value:t,onChange:o,renderSchemaComponent:S,collectionField:_,shouldChange:v,returnScope:b,targetFieldSchema:l})})},AssignedField=e=>(useFormBlockContext(),useBlockContext(),(0,import_jsx_runtime.jsx)(AssignedFieldInner,x({},e)));function useAclCheck(e){return useAclCheckFn()(e)}function useAclCheckFn(){const{data:e,inResources:t,getResourceActionParams:o,getStrategyActionParams:r}=useACLRolesCheck(),i=useRecordPkValue(),n=useCollection_deprecated();function a(l){const c=n.resource,u=(m,d={})=>{const[p]=m.split(":");return e!=null&&e.allowAll?{}:t(p)?o(m):r(m)};return!l&&c&&(l=`${c}:create}`),l!=null&&l.includes(":")||(l=`${c}:${l}`),l?!!u(l,{recordPkValue:i}):!0}return a}const InternalCreateRecordAction=(e,t)=>{const o=(0,import_react.useFieldSchema)(),r=(0,import_react.useField)(),i=(o==null?void 0:o["x-linkage-rules"])||[],n=useRecord(),a=useVariables$1(),l=useLocalVariables$1({currentForm:{values:n}}),{openPopup:c}=usePopupUtils(),u=useTreeParentRecord(),m=useCollectionManager(),d=useApp();(0,import_react2.useEffect)(()=>{r.stateOfLinkageRules={},i.filter(g=>!g.disabled).forEach(g=>{var _;(_=g.actions)==null||_.forEach(f=>{linkageAction({operator:f.operator,field:r,condition:g.condition,variables:a,localVariables:l,conditionType:g.conditionType},d.jsonLogic)})})},[r,i,l,a]);const p=(0,import_react2.createRef)(),h=(0,import_ref.composeRef)(t,p);return(0,import_jsx_runtime.jsx)("div",{ref:h,children:(0,import_jsx_runtime.jsx)(CreateAction,P(x({},e),{onClick:g=>{var _;g=m.getCollection(g.name)||g,u?c({recordData:u}):(_=g.isInherited)!=null&&_.call(g)?c({collectionNameUsedInURL:g.name}):c()}}))})};function getLinkageCollection(e,t,o){const r={$form:t.values,$iteration:t.values};if(e.includes("$iteration")){const i=o.path.segments.concat([]);return i.splice(-2),e=e.replace("$iteration.",`$iteration.${i.join(".")}.`),parseVariables(e,r)}else return parseVariables(e,{$form:t.values})}const CreateAction=(0,import_react.observer)(e=>{var t;const{onClick:o}=e,r=useCollection_deprecated(),i=(0,import_react.useFieldSchema)(),n=(0,import_react.useField)(),a=(0,import_react.useForm)(),l=useVariables$1(),c=useAclCheckFn(),u=i["x-enable-children"]||[],m=i==null?void 0:i["x-allow-add-to-current"],d=(t=i==null?void 0:i["x-component-props"])==null?void 0:t.linkageFromForm,p=n.componentProps.type==="danger"?void 0:n.componentProps.type||"primary",{getChildrenCollections:h}=useCollectionManager_deprecated(),g=h(r.name),_=(0,import_react2.useMemo)(()=>u.map(k=>{if(!k)return;const N=g.find(M=>M.name===k.collection);if(N)return P(x({},N.getOptions()),{title:k.title||N.title})}).filter(k=>k&&c(`${k.name}:create`)),[u,g]),f=(i==null?void 0:i["x-linkage-rules"])||[],v=useRecord(),b=useLocalVariables$1({currentForm:{values:v}}),S=useCompile(),{designable:C}=useDesignable(),y=e.icon||null,F=useApp(),I=(0,import_react2.useMemo)(()=>_.map(k=>({key:k.name,label:S(k.title),onClick:()=>o==null?void 0:o(k)})),[_,o]),T=(0,import_react2.useMemo)(()=>({items:I}),[I]);return(0,import_react2.useEffect)(()=>{n.stateOfLinkageRules={},f.filter(k=>!k.disabled).forEach(k=>{var N;(N=k.actions)==null||N.forEach(M=>{linkageAction({operator:M.operator,field:n,condition:k.condition,variables:l,localVariables:b,conditionType:k.conditionType},F.jsonLogic)})})},[n,f,b,l]),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(FinallyButton,{inheritsCollections:_,linkageFromForm:d,allowAddToCurrent:m,props:e,componentType:p,menu:T,onClick:o,collection:r,icon:y,field:n,form:a,designable:C})})},{displayName:"CreateAction"});function FinallyButton({inheritsCollections:e,linkageFromForm:t,allowAddToCurrent:o,props:r,componentType:i,menu:n,onClick:a,collection:l,icon:c,field:u,form:m,designable:d}){var p,h,g,_,f,v;const{getCollection:b}=useCollectionManager_deprecated(),S=useACLActionParamsContext(),C=(0,import_react2.useMemo)(()=>{var y;const F=d&&(((y=u==null?void 0:u.data)==null?void 0:y.hidden)||!S);return{opacity:i!=="link"&&F?.1:1}},[d,(p=u==null?void 0:u.data)==null?void 0:p.hidden,S,i]);return(e==null?void 0:e.length)>0?t?(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":r["aria-label"],type:i,disabled:u.disabled,danger:r.danger,icon:c,onClick:y=>{const F=getLinkageCollection(t,m,u),I=e.find(k=>k.name===F)?F:l.name,T=b(I);a==null||a(T)},style:x({display:!d&&((h=u==null?void 0:u.data)==null?void 0:h.hidden)&&"none",opacity:d&&((g=u==null?void 0:u.data)==null?void 0:g.hidden)&&.1},C),children:r.children}):o===void 0||o?(0,import_jsx_runtime.jsxs)(import_antd.Dropdown.Button,{"aria-label":r["aria-label"],danger:r.danger,type:i,icon:(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{}),style:x(x({},r==null?void 0:r.style),C),buttonsRender:([y,F])=>[import_react2.default.cloneElement(y,{style:r==null?void 0:r.style}),import_react2.default.cloneElement(F,{loading:!1,style:P(x({},r==null?void 0:r.style),{justifyContent:"center"})})],menu:n,onClick:y=>{a==null||a(l)},children:[c,r.children]}):(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:n,children:(0,import_jsx_runtime.jsxs)(import_antd.Button,{"aria-label":r["aria-label"],icon:c,type:i,danger:r.danger,style:x(x({},r==null?void 0:r.style),C),children:[r.children," ",(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{})]})}):(0,import_jsx_runtime.jsx)(import_antd.Button,P(x({},r),{"aria-label":r["aria-label"],type:i,disabled:u.disabled,danger:r.danger,icon:c,onClick:y=>{a==null||a(l)},style:x(P(x({},r==null?void 0:r.style),{display:!d&&(_=u==null?void 0:u.data)!=null&&_.hidden?"none":"inline-block",opacity:d&&((f=u==null?void 0:u.data)==null?void 0:f.hidden)&&.1}),C),children:r.onlyIcon?(v=r==null?void 0:r.children)==null?void 0:v[1]:r==null?void 0:r.children}))}const CreateRecordAction$1=(0,import_react2.forwardRef)(InternalCreateRecordAction),initializerComponents=Object.freeze(Object.defineProperty({__proto__:null,AssignedField,AssignedFieldInner,AssignedFieldValueType,CreateAction,CreateRecordAction:CreateRecordAction$1,useAclCheck},Symbol.toStringTag,{value:"Module"})),CreateRecordAction=(0,import_react.observer)(e=>{const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useActionContext(),{getCollection:i}=useCollectionManager_deprecated(),n=useInsertSchema$1("AddNewer"),{options:a}=useAssociationFieldContext(),[l,c]=(0,import_react2.useState)(!1),u=i(a==null?void 0:a.target),[m,d]=(0,import_react2.useState)(u==null?void 0:u.name),[p,h]=(0,import_react2.useState)(u==null?void 0:u.dataSource),[g,_]=(0,import_react2.useState)(!1),f=v=>{n(schema$1.AddNewer),c(!0),d(v.name),h(v.dataSource)};return(0,import_jsx_runtime.jsxs)(CollectionProvider_deprecated,{name:a==null?void 0:a.target,children:[(0,import_jsx_runtime.jsx)(CreateAction,P(x({},e),{onClick:v=>f(v)})),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:P(x({},r),{visible:l,setVisible:c,formValueChanged:g,setFormValueChanged:_}),children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:m,dataSource:p,children:(0,import_jsx_runtime.jsx)(TabsContextProvider,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:t.address,schema:o,filterProperties:v=>v["x-component"]==="AssociationField.AddNewer"})})})})]})},{displayName:"CreateRecordAction"}),EditableAssociationField=e=>{const{multiple:t}=e,o=(0,import_react.useField)(),r=(0,import_react.useForm)(),{options:i,currentMode:n}=useAssociationFieldContext(),{getComponent:a}=useAssociationFieldModeContext(),l=()=>{const{onClick:u}=useAssociationCreateActionProps(),m=(0,import_react.useField)(),{getPrimaryKey:d}=useCollection_deprecated(),p=d();return{onClick(){return z(this,null,function*(){var h,g;yield u();const{data:_}=((g=(h=m.data)==null?void 0:h.data)==null?void 0:g.data)||{};if(_)if(["m2m","o2m"].includes(i==null?void 0:i.interface)&&t!==!1){const f=r.getValuesIn(o.path)||[];f.find(v=>v[p]===_[p])||(f.push(_),r.setValuesIn(o.path,f),o.onInput(f))}else r.setValuesIn(o.path,_),o.onInput(_)})}}},c=a(n);return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{useCreateActionProps:l},components:{CreateRecordAction},children:(0,import_jsx_runtime.jsx)(c,x({},e))})},Editable$1=(0,import_react.observer)(e=>(0,import_jsx_runtime.jsx)(AssociationFieldProvider,{children:(0,import_jsx_runtime.jsx)(EditableAssociationField,x({},e))}),{displayName:"Editable"}),Nester=e=>{const{options:t}=(0,import_react2.useContext)(AssociationFieldContext);return["hasOne","belongsTo"].includes(t.type)?(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:!0,children:(0,import_jsx_runtime.jsx)(ToOneNester,x({},e))}):["hasMany","belongsToMany","belongsToArray"].includes(t.type)?(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:!0,children:(0,import_jsx_runtime.jsx)(ToManyNester,x({},e))}):null},ToOneNester=e=>{const{field:t}=useAssociationFieldContext(),o=useCollectionRecord(),r=useCollection(),i=(0,import_react.useFieldSchema)(),n=(0,import_react2.useCallback)(({form:a,fieldSchema:l,collectionField:c,getInterface:u,formBlockType:m})=>{var d;return!c||c.target&&(d=l["x-component-props"])!=null&&d.mode&&!["Picker","Select"].includes(l["x-component-props"].mode)||m==="update"?!1:!(a!=null&&a.readPretty)&&!isPatternDisabled(l)&&!interfacesOfUnsupportedDefaultValue.includes(c==null?void 0:c.interface)&&!isSystemField(c,u)},[]);return(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"nester",children:(0,import_jsx_runtime.jsx)(SubFormProvider,{value:{value:t.value,collection:r,fieldSchema:i.parent},children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:o==null?void 0:o.isNew,record:t.value,parent:o==null?void 0:o.data,children:(0,import_jsx_runtime.jsx)(DefaultValueProvider,{isAllowToSetDefaultValue:n,children:(0,import_jsx_runtime.jsx)(import_antd.Card,{bordered:!0,children:e.children})})})})})},ToManyNester=(0,import_react.observer)(e=>{const t=(0,import_react.useFieldSchema)(),{options:o,field:r,allowMultiple:i,allowDissociate:n,currentMode:a}=useAssociationFieldContext(),{allowSelectExistingRecord:l}=r.componentProps,{t:c}=(0,import_react_i18next.useTranslation)(),u=useCollectionRecordData(),m=useCollection(),d=(0,import_ahooks.useUpdate)(),{isMobileLayout:p}=useMobileLayout(),h=(0,import_react2.useMemo)(()=>p?(0,import_client.transformMultiColumnToSingleColumn)(t):t,[p,t]),g=(0,import_react2.useMemo)(()=>p?(0,import_client.transformMultiColumnToSingleColumn)(t.parent):t.parent,[p,t.parent]),_=useRefreshComponent(),f=(0,import_react2.useCallback)(()=>{d(),_==null||_()},[d,_]),[v,b]=(0,import_react2.useState)(!1),[S,C]=(0,import_react2.useState)([]),y=useFieldNames$1(e),F=useCompile(),I=useLabelUiSchema$1(o,(y==null?void 0:y.label)||"label"),T=()=>({run(){b(!0)}});Array.isArray(r.value)||(r.value=[]);const k=(0,import_react2.useCallback)(({form:R,fieldSchema:$,collectionField:w,getInterface:j})=>{var B;return!w||w.target&&(B=$["x-component-props"])!=null&&B.mode&&!["Picker","Select"].includes($["x-component-props"].mode)?!1:!(R!=null&&R.readPretty)&&!isPatternDisabled($)&&!interfacesOfUnsupportedDefaultValue.includes(w==null?void 0:w.interface)&&!isSystemField(w,j)},[]),N=()=>{const{setVisible:R}=useActionContext(),{selectedRows:$,setSelectedRows:w}=(0,import_react2.useContext)(RecordPickerContext);return{onClick(){$.map(j=>r.value.push(markRecordAsNew(j))),r.onInput(r.value),r.initialValue=r.value,w([]),R(!1)}}},M=(0,import_react2.useMemo)(()=>r.value&&Object.keys(r.value).length>0?(Array.isArray(r.value)?r.value:r.value?[r.value]:[]).filter(Boolean).map(R=>{const $=R==null?void 0:R[y.label];return P(x({},R),{[y.label]:getLabelFormatValue$1(F(I),F($))})}):[],[r.value,y==null?void 0:y.label]),L={size:"small",fieldNames:r.componentProps.fieldNames,multiple:!0,association:{target:o==null?void 0:o.target},options:M,onChange:e==null?void 0:e.onChange,selectedRows:S,setSelectedRows:C,collectionField:o},D=()=>{const R=(o==null?void 0:o.targetKey)||"id",$=(r.value||[]).map(w=>w==null?void 0:w[R]).filter(Boolean);return $.length?{$and:[{[`${R}.$ne`]:$}]}:{}};return r.value.length>0?(0,import_jsx_runtime.jsxs)(import_antd.Card,{bordered:!0,style:{position:"relative"},className:import_css.css`
|
|
989
|
+
`,layout:"vertical",bordered:!1,feedbackLayout:"popover",children:(0,import_jsx_runtime.jsx)(import_react.SchemaOptionsContext.Provider,{value:{scope:l.scope,components:c},children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:t.address,schema:o,filterProperties:u=>u["x-component"]==="AssociationField.SubTable"})})})})})},{displayName:"InternalSubTable"});var AssociationFieldMode=(e=>(e.Picker="Picker",e.Nester="Nester",e.PopoverNester="PopoverNester",e.Select="Select",e.SubTable="SubTable",e.FileManager="FileManager",e.CascadeSelect="CascadeSelect",e.Tag="Tag",e))(AssociationFieldMode||{});const defaultModeToComponent={Picker:InternalPicker,Nester:InternalNester,PopoverNester:InternalPopoverNester,Select:AssociationSelect$1,SubTable:InternalSubTable,FileManager:InternalFileManager,CascadeSelect:InternalCascadeSelect},AssociationFieldModeContext=(0,import_react2.createContext)({modeToComponent:defaultModeToComponent,getComponent:e=>defaultModeToComponent[e],getDefaultComponent:e=>defaultModeToComponent[e]}),AssociationFieldModeProvider=e=>{const t=useAssociationFieldModeContext(),o=(0,import_react2.useMemo)(()=>x(x({},t.modeToComponent),e.modeToComponent),[t.modeToComponent,e.modeToComponent]),r=(0,import_react2.useCallback)(a=>o[a]||defaultModeToComponent[a],[o]),i=(0,import_react2.useCallback)(a=>defaultModeToComponent[a],[]),n=(0,import_react2.useMemo)(()=>({modeToComponent:o,getComponent:r,getDefaultComponent:i}),[r,o,i]);return(0,import_jsx_runtime.jsx)(AssociationFieldModeContext.Provider,{value:n,children:e.children})},useAssociationFieldModeContext=()=>import_react2.default.useContext(AssociationFieldModeContext),AssociationFieldProvider=(0,import_react.observer)(e=>{var t,o,r;const i=(0,import_react.useField)(),n=useCollectionManager(),a=(0,import_react.useFieldSchema)(),l=useAPIClient();useSchemaComponentContext();const c=((t=a["x-component-props"])==null?void 0:t.multiple)!==!1,u=((o=a["x-component-props"])==null?void 0:o.allowDissociate)!==!1,m=(0,import_react2.useMemo)(()=>n.getCollectionField(a["x-collection-field"]),[a["x-collection-field"],a.name]),d=(0,import_react2.useMemo)(()=>{var b;return((b=n.getCollection(m==null?void 0:m.target))==null?void 0:b.template)==="file"},[a["x-collection-field"]]),p=(0,import_react2.useMemo)(()=>{var b;return((b=a["x-component-props"])==null?void 0:b.mode)||(d?"FileManager":"Select")},[(r=a["x-component-props"])==null?void 0:r.mode]),[h,g]=(0,import_react2.useState)(!i.readPretty),{loading:_,run:f}=useRequest(()=>{var b;const S=m.targetKey;if(!a.default||!["Picker","Select"].includes(p)||!import_lodash.default.isObject(a.default))return Promise.reject(null);const C=Array.isArray(a.default)?a.default.map(y=>y[S]):a.default[S];return import_lodash.default.isUndefined(C)||import_lodash.default.isNil(C)||import_lodash.default.isNaN(C)?Promise.reject(null):l.request({resource:m.target,action:Array.isArray(C)?"list":"get",headers:getDataSourceHeaders((b=n==null?void 0:n.dataSource)==null?void 0:b.key),params:{filter:{[S]:C}}})},{manual:!0,onSuccess(b){var S;i.initialValue=(S=b==null?void 0:b.data)==null?void 0:S.data}}),{active:v}=useKeepAlive();return(0,import_react2.useEffect)(()=>{var b;if(v){if(g(!0),!m){g(!1);return}if(["Picker","Select"].includes(p)&&a.default&&f(),i.value&&i.form.__template&&["Nester","SubTable","PopoverNester"].includes(p)&&(["belongsTo","hasOne"].includes(m.type)?((b=i.value)!=null&&b[m.targetKey]&&delete i.value[m.targetKey],i.value=x(x({},i.initialValue),i.value)):["belongsToMany","hasMany"].includes(m.type)&&Array.isArray(i.value)&&(i.value=i.value.map(S=>{var C;return delete S[m.targetKey],x(x({},(C=i.initialValue)==null?void 0:C[0]),S)}))),i.value!==null&&i.value!==void 0){["Nester","PopoverNester"].includes(p)&&Array.isArray(i.value)&&i.value.length===0&&["belongsToMany","hasMany","belongsToArray"].includes(m.type)&&(i.value=[markRecordAsNew({})]),g(!1);return}["Nester"].includes(p)&&(["belongsTo","hasOne"].includes(m.type)?i.value={}:["belongsToMany","hasMany","belongsToArray"].includes(m.type)&&(i.value=[markRecordAsNew({})])),p==="SubTable"&&(i.value=[]),g(!1)}},[p,m,i,v]),h||_?null:m?(0,import_jsx_runtime.jsx)(AssociationFieldContext.Provider,{value:{options:m,field:i,fieldSchema:a,allowMultiple:c,allowDissociate:u,currentMode:p},children:e.children}):null},{displayName:"AssociationFieldProvider"}),InternalField=e=>{const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),{uiSchema:r}=useCollectionField_deprecated(),i=useComponent(r==null?void 0:r["x-component"]),n=useCompile(),a=(c,u)=>{t[c]=typeof t[c]>"u"?u:t[c]},l=()=>{typeof o.required>"u"&&(t.required=!!r.required)};return(0,import_react2.useEffect)(()=>{if(!r)return;a("content",r["x-content"]),a("title",r.title),a("description",r.description),a("initialValue",r.default),o["x-disabled"]===!0&&(t.disabled=!0),o["x-read-pretty"]===!0&&(t.readPretty=!0),l(),t.dataSource=r.enum;const c=n(r["x-component-props"])||{},u=(0,import_shared.merge)(c,t.componentProps||{});t.componentProps=u},[JSON.stringify(r)]),r?import_react2.default.createElement(i,e,e.children):null},CollectionField=e=>{const t=(0,import_react.useFieldSchema)();return(0,import_jsx_runtime.jsx)(CollectionFieldProvider,{name:t.name,children:(0,import_jsx_runtime.jsx)(InternalField,x({},e))})};var AssignedFieldValueType=(e=>(e.ConstantValue="constantValue",e.DynamicValue="dynamicValue",e))(AssignedFieldValueType||{});const AssignedFieldInner=e=>{const{value:t,onChange:o}=e,{getCollectionFields:r,getAllCollectionsInheritChain:i}=useCollectionManager_deprecated(),n=useCollection_deprecated(),{form:a}=useFormBlockContext(),l=(0,import_react.useFieldSchema)(),c=(0,import_react.useField)(),u=useRecord(),m=useVariables$1(),d=useLocalVariables$1(),p=useCollectionFilterOptions(n),{name:h,getField:g}=n,_=g(l.name),{uiSchema:f}=useCollectionField_deprecated(),v=(0,import_react2.useMemo)(()=>getShouldChange({collectionField:_,variables:m,localVariables:d,getAllCollectionsInheritChain:i}),[_,i,d,m]),b=(0,import_react2.useCallback)(C=>{const y=C.find(I=>I.value==="$nForm"),F=r(h);return!(F!=null&&F.length)&&y&&(y.children=formatVariableScop(p)),(0,import_lodash.cloneDeep)(C)},[p,h]),S=(0,import_react2.useCallback)(({value:C,onChange:y})=>(0,import_jsx_runtime.jsx)(CollectionField,P(x({},e),{value:C,onChange:y})),[JSON.stringify(import_lodash.default.omit(e,"value"))]);return(0,import_react2.useEffect)(()=>{f&&(c.title=typeof c.title>"u"?(f==null?void 0:f.title)||c.name:c.title)},[JSON.stringify(f)]),(0,import_jsx_runtime.jsx)(FlagProvider,{collectionField:_,children:(0,import_jsx_runtime.jsx)(VariableInput,{form:a,record:u,value:t,onChange:o,renderSchemaComponent:S,collectionField:_,shouldChange:v,returnScope:b,targetFieldSchema:l})})},AssignedField=e=>(useFormBlockContext(),useBlockContext(),(0,import_jsx_runtime.jsx)(AssignedFieldInner,x({},e)));function useAclCheck(e){return useAclCheckFn()(e)}function useAclCheckFn(){const{data:e,inResources:t,getResourceActionParams:o,getStrategyActionParams:r}=useACLRolesCheck(),i=useRecordPkValue(),n=useCollection_deprecated();function a(l){const c=n.resource,u=(m,d={})=>{const[p]=m.split(":");return e!=null&&e.allowAll?{}:t(p)?o(m):r(m)};return!l&&c&&(l=`${c}:create}`),l!=null&&l.includes(":")||(l=`${c}:${l}`),l?!!u(l,{recordPkValue:i}):!0}return a}const InternalCreateRecordAction=(e,t)=>{const o=(0,import_react.useFieldSchema)(),r=(0,import_react.useField)(),i=(o==null?void 0:o["x-linkage-rules"])||[],n=useRecord(),a=useVariables$1(),l=useLocalVariables$1({currentForm:{values:n}}),{openPopup:c}=usePopupUtils(),u=useTreeParentRecord(),m=useCollectionManager(),d=useApp();(0,import_react2.useEffect)(()=>{r.stateOfLinkageRules={},i.filter(g=>!g.disabled).forEach(g=>{var _;(_=g.actions)==null||_.forEach(f=>{linkageAction({operator:f.operator,field:r,condition:g.condition,variables:a,localVariables:l,conditionType:g.conditionType},d.jsonLogic)})})},[r,i,l,a]);const p=(0,import_react2.createRef)(),h=(0,import_ref.composeRef)(t,p);return(0,import_jsx_runtime.jsx)("div",{ref:h,children:(0,import_jsx_runtime.jsx)(CreateAction,P(x({},e),{onClick:g=>{var _;g=m.getCollection(g.name)||g,u?c({recordData:u}):(_=g.isInherited)!=null&&_.call(g)?c({collectionNameUsedInURL:g.name}):c()}}))})};function getLinkageCollection(e,t,o){const r={$form:t.values,$iteration:t.values};if(e.includes("$iteration")){const i=o.path.segments.concat([]);return i.splice(-2),e=e.replace("$iteration.",`$iteration.${i.join(".")}.`),parseVariables(e,r)}else return parseVariables(e,{$form:t.values})}const CreateAction=(0,import_react.observer)(e=>{var t;const{onClick:o}=e,r=useCollection_deprecated(),i=(0,import_react.useFieldSchema)(),n=(0,import_react.useField)(),a=(0,import_react.useForm)(),l=useVariables$1(),c=useAclCheckFn(),u=i["x-enable-children"]||[],m=i==null?void 0:i["x-allow-add-to-current"],d=(t=i==null?void 0:i["x-component-props"])==null?void 0:t.linkageFromForm,p=n.componentProps.type==="danger"?void 0:n.componentProps.type||"primary",{getChildrenCollections:h}=useCollectionManager_deprecated(),g=h(r.name),_=(0,import_react2.useMemo)(()=>u.map(k=>{if(!k)return;const N=g.find(M=>M.name===k.collection);if(N)return P(x({},N.getOptions()),{title:k.title||N.title})}).filter(k=>k&&c(`${k.name}:create`)),[u,g]),f=(i==null?void 0:i["x-linkage-rules"])||[],v=useRecord(),b=useLocalVariables$1({currentForm:{values:v}}),S=useCompile(),{designable:C}=useDesignable(),y=e.icon||null,F=useApp(),I=(0,import_react2.useMemo)(()=>_.map(k=>({key:k.name,label:S(k.title),onClick:()=>o==null?void 0:o(k)})),[_,o]),T=(0,import_react2.useMemo)(()=>({items:I}),[I]);return(0,import_react2.useEffect)(()=>{n.stateOfLinkageRules={},f.filter(k=>!k.disabled).forEach(k=>{var N;(N=k.actions)==null||N.forEach(M=>{linkageAction({operator:M.operator,field:n,condition:k.condition,variables:l,localVariables:b,conditionType:k.conditionType},F.jsonLogic)})})},[n,f,b,l]),(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(FinallyButton,{inheritsCollections:_,linkageFromForm:d,allowAddToCurrent:m,props:e,componentType:p,menu:T,onClick:o,collection:r,icon:y,field:n,form:a,designable:C})})},{displayName:"CreateAction"});function FinallyButton({inheritsCollections:e,linkageFromForm:t,allowAddToCurrent:o,props:r,componentType:i,menu:n,onClick:a,collection:l,icon:c,field:u,form:m,designable:d}){var p,h,g,_,f,v;const{getCollection:b}=useCollectionManager_deprecated(),S=useACLActionParamsContext(),C=(0,import_react2.useMemo)(()=>{var y;const F=d&&(((y=u==null?void 0:u.data)==null?void 0:y.hidden)||!S);return{opacity:i!=="link"&&F?.1:1}},[d,(p=u==null?void 0:u.data)==null?void 0:p.hidden,S,i]);return(e==null?void 0:e.length)>0?t?(0,import_jsx_runtime.jsx)(import_antd.Button,{"aria-label":r["aria-label"],type:i,disabled:u.disabled,danger:r.danger,icon:c,onClick:y=>{const F=getLinkageCollection(t,m,u),I=e.find(k=>k.name===F)?F:l.name,T=b(I);a==null||a(T)},style:x({display:!d&&((h=u==null?void 0:u.data)==null?void 0:h.hidden)&&"none",opacity:d&&((g=u==null?void 0:u.data)==null?void 0:g.hidden)&&.1},C),children:r.children}):o===void 0||o?(0,import_jsx_runtime.jsxs)(import_antd.Dropdown.Button,{"aria-label":r["aria-label"],danger:r.danger,type:i,icon:(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{}),style:x(x({},r==null?void 0:r.style),C),buttonsRender:([y,F])=>[import_react2.default.cloneElement(y,{style:r==null?void 0:r.style}),import_react2.default.cloneElement(F,{loading:!1,style:P(x({},r==null?void 0:r.style),{justifyContent:"center"})})],menu:n,onClick:y=>{a==null||a(l)},children:[c,r.children]}):(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:n,children:(0,import_jsx_runtime.jsxs)(import_antd.Button,{"aria-label":r["aria-label"],icon:c,type:i,danger:r.danger,style:x(x({},r==null?void 0:r.style),C),children:[r.children," ",(0,import_jsx_runtime.jsx)(import_icons.DownOutlined,{})]})}):(0,import_jsx_runtime.jsx)(import_antd.Button,P(x({},r),{"aria-label":r["aria-label"],type:i,disabled:u.disabled,danger:r.danger,icon:c,onClick:y=>{a==null||a(l)},style:x(P(x({},r==null?void 0:r.style),{display:!d&&(_=u==null?void 0:u.data)!=null&&_.hidden?"none":"inline-block",opacity:d&&((f=u==null?void 0:u.data)==null?void 0:f.hidden)&&.1}),C),children:r.onlyIcon?(v=r==null?void 0:r.children)==null?void 0:v[1]:r==null?void 0:r.children}))}const CreateRecordAction$1=(0,import_react2.forwardRef)(InternalCreateRecordAction),initializerComponents=Object.freeze(Object.defineProperty({__proto__:null,AssignedField,AssignedFieldInner,AssignedFieldValueType,CreateAction,CreateRecordAction:CreateRecordAction$1,useAclCheck},Symbol.toStringTag,{value:"Module"})),CreateRecordAction=(0,import_react.observer)(e=>{const t=(0,import_react.useField)(),o=(0,import_react.useFieldSchema)(),r=useActionContext(),{getCollection:i}=useCollectionManager_deprecated(),n=useInsertSchema$1("AddNewer"),{options:a}=useAssociationFieldContext(),[l,c]=(0,import_react2.useState)(!1),u=i(a==null?void 0:a.target),[m,d]=(0,import_react2.useState)(u==null?void 0:u.name),[p,h]=(0,import_react2.useState)(u==null?void 0:u.dataSource),[g,_]=(0,import_react2.useState)(!1),f=v=>{n(schema$1.AddNewer),c(!0),d(v.name),h(v.dataSource)};return(0,import_jsx_runtime.jsxs)(CollectionProvider_deprecated,{name:a==null?void 0:a.target,children:[(0,import_jsx_runtime.jsx)(CreateAction,P(x({},e),{onClick:v=>f(v)})),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:P(x({},r),{visible:l,setVisible:c,formValueChanged:g,setFormValueChanged:_}),children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:m,dataSource:p,children:(0,import_jsx_runtime.jsx)(TabsContextProvider,{children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:t.address,schema:o,filterProperties:v=>v["x-component"]==="AssociationField.AddNewer"})})})})]})},{displayName:"CreateRecordAction"}),EditableAssociationField=e=>{const{multiple:t}=e,o=(0,import_react.useField)(),r=(0,import_react.useForm)(),{options:i,currentMode:n}=useAssociationFieldContext(),{getComponent:a}=useAssociationFieldModeContext(),l=()=>{const{onClick:u}=useAssociationCreateActionProps(),m=(0,import_react.useField)(),{getPrimaryKey:d}=useCollection_deprecated(),p=d();return{onClick(){return z(this,null,function*(){var h,g;yield u();const{data:_}=((g=(h=m.data)==null?void 0:h.data)==null?void 0:g.data)||{};if(_)if(["m2m","o2m"].includes(i==null?void 0:i.interface)&&t!==!1){const f=r.getValuesIn(o.path)||[];f.find(v=>v[p]===_[p])||(f.push(_),r.setValuesIn(o.path,f),o.onInput(f))}else r.setValuesIn(o.path,_),o.onInput(_)})}}},c=a(n);return(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{useCreateActionProps:l},components:{CreateRecordAction},children:(0,import_jsx_runtime.jsx)(c,x({},e))})},Editable$1=(0,import_react.observer)(e=>(0,import_jsx_runtime.jsx)(AssociationFieldProvider,{children:(0,import_jsx_runtime.jsx)(EditableAssociationField,x({},e))}),{displayName:"Editable"}),Nester=e=>{const{options:t}=(0,import_react2.useContext)(AssociationFieldContext);return["hasOne","belongsTo"].includes(t.type)?(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:!0,children:(0,import_jsx_runtime.jsx)(ToOneNester,x({},e))}):["hasMany","belongsToMany","belongsToArray"].includes(t.type)?(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubForm:!0,children:(0,import_jsx_runtime.jsx)(ToManyNester,x({},e))}):null},ToOneNester=e=>{const{field:t}=useAssociationFieldContext(),o=useCollectionRecord(),r=useCollection(),i=(0,import_react.useFieldSchema)(),n=(0,import_react2.useCallback)(({form:a,fieldSchema:l,collectionField:c,getInterface:u,formBlockType:m})=>{var d;return!c||c.target&&(d=l["x-component-props"])!=null&&d.mode&&!["Picker","Select"].includes(l["x-component-props"].mode)||m==="update"?!1:!(a!=null&&a.readPretty)&&!isPatternDisabled(l)&&!interfacesOfUnsupportedDefaultValue.includes(c==null?void 0:c.interface)&&!isSystemField(c,u)},[]);return(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"nester",children:(0,import_jsx_runtime.jsx)(SubFormProvider,{value:{value:t.value,collection:r,fieldSchema:i.parent},children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:o==null?void 0:o.isNew,record:t.value,parent:o==null?void 0:o.data,children:(0,import_jsx_runtime.jsx)(DefaultValueProvider,{isAllowToSetDefaultValue:n,children:(0,import_jsx_runtime.jsx)(import_antd.Card,{bordered:!0,children:e.children})})})})})},ToManyNester=(0,import_react.observer)(e=>{const t=(0,import_react.useFieldSchema)(),{options:o,field:r,allowMultiple:i,allowDissociate:n,currentMode:a}=useAssociationFieldContext(),{allowSelectExistingRecord:l}=r.componentProps,{t:c}=(0,import_react_i18next.useTranslation)(),u=useCollectionRecordData(),m=useCollection(),d=(0,import_ahooks.useUpdate)(),{isMobileLayout:p}=useMobileLayout(),h=(0,import_react2.useMemo)(()=>p?(0,import_client.transformMultiColumnToSingleColumn)(t):t,[p,t]),g=(0,import_react2.useMemo)(()=>p?(0,import_client.transformMultiColumnToSingleColumn)(t.parent):t.parent,[p,t.parent]),_=useRefreshComponent(),f=(0,import_react2.useCallback)(()=>{d(),_==null||_()},[d,_]),[v,b]=(0,import_react2.useState)(!1),[S,C]=(0,import_react2.useState)([]),y=useFieldNames$1(e),F=useCompile(),I=useLabelUiSchema$1(o,(y==null?void 0:y.label)||"label"),T=()=>({run(){b(!0)}});Array.isArray(r.value)||(r.value=[]);const k=(0,import_react2.useCallback)(({form:R,fieldSchema:$,collectionField:w,getInterface:j})=>{var B;return!w||w.target&&(B=$["x-component-props"])!=null&&B.mode&&!["Picker","Select"].includes($["x-component-props"].mode)?!1:!(R!=null&&R.readPretty)&&!isPatternDisabled($)&&!interfacesOfUnsupportedDefaultValue.includes(w==null?void 0:w.interface)&&!isSystemField(w,j)},[]),N=()=>{const{setVisible:R}=useActionContext(),{selectedRows:$,setSelectedRows:w}=(0,import_react2.useContext)(RecordPickerContext);return{onClick(){$.map(j=>r.value.push(markRecordAsNew(j))),r.onInput(r.value),r.initialValue=r.value,w([]),R(!1)}}},M=(0,import_react2.useMemo)(()=>r.value&&Object.keys(r.value).length>0?(Array.isArray(r.value)?r.value:r.value?[r.value]:[]).filter(Boolean).map(R=>{const $=R==null?void 0:R[y.label];return P(x({},R),{[y.label]:getLabelFormatValue$1(F(I),F($))})}):[],[r.value,y==null?void 0:y.label]),L={size:"small",fieldNames:r.componentProps.fieldNames,multiple:!0,association:{target:o==null?void 0:o.target},options:M,onChange:e==null?void 0:e.onChange,selectedRows:S,setSelectedRows:C,collectionField:o},D=()=>{const R=(o==null?void 0:o.targetKey)||"id",$=(r.value||[]).map(w=>w==null?void 0:w[R]).filter(Boolean);return $.length?{$and:[{[`${R}.$ne`]:$}]}:{}};return r.value.length>0?(0,import_jsx_runtime.jsxs)(import_antd.Card,{bordered:!0,style:{position:"relative"},className:import_css.css`
|
|
990
990
|
> .ant-card-body > .ant-divider:last-child {
|
|
991
991
|
display: none;
|
|
992
992
|
}
|
|
@@ -1146,7 +1146,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
1146
1146
|
.ant-table-footer {
|
|
1147
1147
|
display: flex;
|
|
1148
1148
|
}
|
|
1149
|
-
`,SubTable=(0,import_react.observer)(e=>{var t,o,r;const{openSize:i}=e,{field:n,options:a,fieldSchema:l}=useAssociationFieldContext(),{t:c}=(0,import_react_i18next.useTranslation)(),[u,m]=(0,import_react2.useState)(!1),[d,p]=(0,import_react2.useState)([]),h=useFieldNames$1(e),g=(0,import_react.useFieldSchema)(),_=useCompile(),f=useLabelUiSchema$1(a,(h==null?void 0:h.label)||"label"),v=useCollectionRecord(),b=useCollection(),{allowSelectExistingRecord:S,allowAddnew:C,allowDisassociation:y,enableIndexÏColumn:F}=n.componentProps;useSubTableSpecialCase({rootField:n,rootSchema:l});const I=(E,V)=>{if(V!==void 0&&(0,import_shared.isArr)(n.value)&&E!==V)return(0,import_reactive.action)(()=>{const U=n.value[E];return n.value.splice(E,1),n.value.splice(V,0,U),(0,import_internals.exchangeArrayState)(n,{fromIndex:E,toIndex:V}),n.onInput(n.value)})};n.move=I;const T=(0,import_react2.useMemo)(()=>n.value&&Object.keys(n.value).length>0?(Array.isArray(n.value)?n.value:n.value?[n.value]:[]).filter(Boolean).map(E=>{const V=E==null?void 0:E[h.label];return P(x({},E),{[h.label]:getLabelFormatValue$1(_(f),_(V))})}):[],[n.value,h==null?void 0:h.label]),k={size:"small",fieldNames:n.componentProps.fieldNames,multiple:!0,association:{target:a==null?void 0:a.target},options:T,onChange:e==null?void 0:e.onChange,selectedRows:d,setSelectedRows:p,collectionField:a},N=()=>{const{setVisible:E}=useActionContext(),{selectedRows:V,setSelectedRows:U}=(0,import_react2.useContext)(RecordPickerContext);return{onClick(){var q;Array.isArray(n.value)||(n.value=[]),V.forEach(Y=>n.value.push(markRecordAsNew(Y))),n.onInput(n.value),n.initialValue=n.value,U([]),E(!1);const G=Math.ceil(n.value.length/(((q=n.componentProps)==null?void 0:q.pageSize)||10));D(G)}}},M=()=>{const E=(a==null?void 0:a.targetKey)||"id",V=(n.value||[]).map(U=>U==null?void 0:U[E]).filter(Boolean);return V.length?{$and:[{[`${E}.$ne`]:V}]}:{}},[L,D]=(0,import_react2.useState)(1),[R,$]=(0,import_react2.useState)(((t=n.componentProps)==null?void 0:t.pageSize)||10),{setFormValueChanged:w}=useActionContext();(0,import_react2.useEffect)(()=>{var E;$((E=n.componentProps)==null?void 0:E.pageSize)},[(o=n.componentProps)==null?void 0:o.pageSize]);const j=(0,import_react2.useMemo)(()=>{var E;const V=Math.ceil(((E=n.value)==null?void 0:E.length)/10);return{current:L>V?V:L,pageSize:R||10,total:n==null?void 0:n.value,onChange:(U,q)=>{D(U),$(q),n.componentProps.pageSize=q,n.onInput(n.value),w(!1)},showSizeChanger:!0,pageSizeOptions:["10","20","50","100"],hideOnSinglePage:!1}},[(r=n.value)==null?void 0:r.length,R,L]),B=()=>{const{field:E}=useAssociationFieldContext();return{run(){var V;E.value=E.value||[],E.value.push(markRecordAsNew({}));const U=Math.ceil(E.value.length/(((V=E.componentProps)==null?void 0:V.pageSize)||10));return D(U),E.onInput(E.value)}}},O=()=>({run(){m(!0)}});return(0,import_jsx_runtime.jsxs)("div",{className:subTableContainer,children:[(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubTable:!0,children:(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{record:null,parentRecord:v,children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"nester",children:(0,import_jsx_runtime.jsx)(SubFormProvider,{value:{value:null,collection:b,fieldSchema:g.parent,skip:!0},children:(0,import_jsx_runtime.jsx)(Table$1,{className:tableClassName,size:"small",field:n,showIndex:!0,dragSort:!1,showDel:n.editable&&(C!==!1||S!==!1||y!==!1)?E=>n.editable?y!==!1?!0:E==null?void 0:E.__isNewRecord__:!1:!1,pagination:j,rowSelection:{type:"none",hideSelectAll:!0},isSubTable:!0,locale:{emptyText:(0,import_jsx_runtime.jsxs)("span",{children:[" ",n.editable?c("Please add or select record"):c("No data")]})},enableIndexÏColumn:F!==!1,footer:()=>(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:n.editable&&(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{gap:15},children:[C!==!1&&(0,import_jsx_runtime.jsx)(Action.Link,{useAction:B,title:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{gap:2},className:"nb-sub-table-addNew",children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{})," ",c("Add new")]})}),S&&(0,import_jsx_runtime.jsx)(Action.Link,{useAction:O,title:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{gap:2},children:[(0,import_jsx_runtime.jsx)(import_icons.ZoomInOutlined,{})," ",c("Select record")]})})]})})})})})})}),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{openSize:i,openMode:"drawer",visible:u,setVisible:m},children:(0,import_jsx_runtime.jsx)(RecordPickerProvider,P(x({},k),{children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:a==null?void 0:a.target,children:(0,import_jsx_runtime.jsx)(FormProvider,{children:(0,import_jsx_runtime.jsx)(TableSelectorParamsProvider,{params:{filter:M()},children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{usePickActionProps:N,useTableSelectorProps:useTableSelectorProps$2,useCreateActionProps},children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:n.address,schema:g.parent,filterProperties:E=>E["x-component"]==="AssociationField.Selector"})})})})})}))})]})},{displayName:"SubTable"}),AssociationField=(0,import_react.connect)(Editable$1,(0,import_react.mapReadPretty)(ReadPretty$8));AssociationField.SubTable=SubTable;AssociationField.Nester=Nester;AssociationField.AddNewer=AssociationFieldAddNewer;AssociationField.Selector=Action.Container;AssociationField.Viewer=Action.Container;AssociationField.InternalSelect=InternalPicker;AssociationField.ReadPretty=ReadPretty$8;AssociationField.FileSelector=FileSelector;function useServiceOptions(e){const{action:t="list",service:o,fieldNames:r}=e,i=(o==null?void 0:o.params)||{},n=(0,import_react.useFieldSchema)(),{getField:a}=useCollection_deprecated(),{getCollectionFields:l}=useCollectionManager_deprecated(),c=useRecord(),u=(0,import_react2.useCallback)(g=>g&&typeof g=="object"?g[r.value]:g,[r.value]),m=(0,import_react2.useMemo)(()=>{if(!(e.value===void 0||e.value===null))return Array.isArray(e.value)?e.value.map(u):[u(e.value)]},[e.value,u]),d=(0,import_react2.useMemo)(()=>a(n.name),[n.name]),p=c==null?void 0:c[d==null?void 0:d.sourceKey],h=(0,import_react2.useMemo)(()=>{const g=["oho","o2m"].includes(d==null?void 0:d.interface);return mergeFilter([mergeFilter([g&&!isInFilterFormBlock(n)&&d!=null&&d.foreignKey?{[d.foreignKey]:{$is:null}}:null,i==null?void 0:i.filter]),g&&p!==void 0&&p!==null&&!isInFilterFormBlock(n)&&d!=null&&d.foreignKey?{[d.foreignKey]:{$eq:p}}:null,i!=null&&i.filter&&m?{[r.value]:{$in:m}}:null],"$or")},[i==null?void 0:i.filter,l,d,p,m,r.value]);return(0,import_react2.useMemo)(()=>P(x({resource:d==null?void 0:d.target,action:t},o),{params:P(x({},o==null?void 0:o.params),{filter:h})}),[d==null?void 0:d.target,t,h,o])}const ReadPretty$7=(0,import_react.observer)(e=>{const t=useServiceOptions(e);return useFieldTitle(),(0,import_jsx_runtime.jsx)(RemoteSelect.ReadPretty,P(x({},e),{service:t}))},{displayName:"ReadPretty"}),divWrap=e=>({type:"void","x-component":"div",properties:{[e.name||(0,import_shared.uid)()]:e}}),InternalAssociationSelect=(0,import_react.connect)(e=>{const{fieldNames:t,objectValue:o=!0}=e,r=useServiceOptions(e);useFieldTitle();const i=(0,import_react2.useCallback)(a=>!o&&typeof a=="object"?a[t.value]:a,[o,t.value]),n=(0,import_react2.useMemo)(()=>{if(!(e.value===void 0||e.value===null))return Array.isArray(e.value)?e.value.map(i):i(e.value)},[e.value,i]);return(0,import_jsx_runtime.jsx)(RemoteSelect,P(x({},e),{objectValue:o,value:n,service:r}))},(0,import_react.mapProps)({dataSource:"options",loading:!0},(e,t)=>P(x({},e),{fieldNames:x(x(x({},defaultFieldNames$1),e.fieldNames),t.componentProps.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$7));InternalAssociationSelect.displayName="InternalAssociationSelect";const AssociationSelect=InternalAssociationSelect;AssociationSelect.Designer=function e(){var t,o,r,i,n,a,l,c,u,m,d;const{getCollectionFields:p,getInterface:h,getCollectionJoinField:g,getCollection:_,isTitleField:f}=useCollectionManager_deprecated(),{getField:v}=useCollection_deprecated(),{form:b}=useFormBlockContext(),S=(0,import_react.useField)(),C=(0,import_react.useFieldSchema)(),{t:y}=(0,import_react_i18next.useTranslation)(),F=useFilterByTk(),{dn:I,refresh:T,insertAdjacent:k}=useDesignable(),N=useCompile(),M=useIsShowMultipleSwitch(),{isAllowToSetDefaultValue:L}=useIsAllowToSetDefaultValue(),D=v(C.name)||g(C["x-collection-field"]),R=useFieldComponentOptions(),$=S.address.segments.includes("__form_grid"),w=h(D==null?void 0:D.interface),j=(t=w==null?void 0:w.validateSchema)==null?void 0:t.call(w,C),B=(o=D==null?void 0:D.uiSchema)==null?void 0:o.title,O=D!=null&&D.target?p(D==null?void 0:D.target):[];S.title===B||S.title;const E=useSortFields(D==null?void 0:D.target),V=((n=(i=(r=S.componentProps)==null?void 0:r.service)==null?void 0:i.params)==null?void 0:n.sort)||[];(0,import_react2.useEffect)(()=>{S.readPretty!==C["x-read-pretty"]&&(S.readPretty=!!C["x-read-pretty"])},[C["x-read-pretty"]]);const U=V==null?void 0:V.map(K=>K.startsWith("-")?{field:K.substring(1),direction:"desc"}:{field:K,direction:"asc"});S.readPretty||S.required;const q=O.filter(K=>f(K)).map(K=>{var H;return{value:K==null?void 0:K.name,label:N((H=K==null?void 0:K.uiSchema)==null?void 0:H.title)||(K==null?void 0:K.name)}});let G="editable";C["x-disabled"]===!0&&(G="readonly"),C["x-read-pretty"]===!0&&(G="read-pretty");const Y=import_lodash.default.omit(C,"required");return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(GeneralSchemaItems,{}),b&&!(b!=null&&b.readPretty)&&j&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:y("Set validation rules"),properties:{rules:{type:"array",default:C==null?void 0:C["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},j),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:K=>{var H;const J=[],X=ee=>ee!=null&&!Number.isNaN(ee);for(const ee of K.rules)J.push(import_lodash.default.pickBy(ee,X));const Q={"x-uid":C["x-uid"]};if(["percent"].includes(D==null?void 0:D.interface))for(const ee of J)(ee.maxValue||ee.minValue)&&(ee.percentMode=!0),ee.percentFormat&&(ee.percentFormats=!0);const oe=import_lodash.default.concat([],((H=D==null?void 0:D.uiSchema)==null?void 0:H["x-validator"])||[],J);S.validator=oe,C["x-validator"]=J,Q["x-validator"]=J,I.emit("patch",{schema:Q}),T()}}),L()&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},width:800,schema:{type:"object",title:y("Set default value"),properties:{default:P(x({},Y||{}),{"x-decorator":"FormItem","x-component-props":P(x({},Y["x-component-props"]),{component:D!=null&&D.target?"AssociationSelect":void 0,service:{resource:D==null?void 0:D.target}}),name:"default",title:y("Default value"),default:C.default||(D==null?void 0:D.defaultValue),"x-read-pretty":!1,"x-disabled":!1})}},onSubmit:K=>{const H={"x-uid":C["x-uid"]};S.value!==K.default&&(S.value=K.default),C.default=K.default,H.default=K.default,I.emit("patch",{schema:H}),T()}}),b&&!$&&R&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Field component"),options:R,value:C["x-component"],onChange:K=>{var H,J;const X={name:D==null?void 0:D.name,type:"void",required:C.required,description:C.description,default:C.default,"x-decorator":"FormItem","x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":K,"x-validator":C["x-validator"],"x-collection-field":C["x-collection-field"],"x-decorator-props":C["x-decorator-props"],"x-component-props":x(x({},(H=D==null?void 0:D.uiSchema)==null?void 0:H["x-component-props"]),C["x-component-props"])};(J=w==null?void 0:w.schemaInitialize)==null||J.call(w,X,{field:D,block:"Form",readPretty:S.readPretty,action:F?"get":null,targetCollection:_(D==null?void 0:D.target)}),K==="CollectionField"&&(X.type="string"),k("beforeBegin",divWrap(X),{onSuccess:()=>{I.remove(null,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})}})}}),M()?(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Allow multiple"),checked:((a=C["x-component-props"])==null?void 0:a.multiple)===void 0?!0:C["x-component-props"].multiple,onChange:K=>{const H={"x-uid":C["x-uid"]};C["x-component-props"]=C["x-component-props"]||{},S.componentProps=S.componentProps||{},C["x-component-props"].multiple=K,S.componentProps.multiple=K,H["x-component-props"]=C["x-component-props"],I.emit("patch",{schema:H}),T()}},"multiple"):null,(0,import_jsx_runtime.jsx)(SchemaSettingsDataScope,{collectionName:D==null?void 0:D.target,defaultFilter:((u=(c=(l=S.componentProps)==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||{},form:b,onSubmit:({filter:K})=>{K=removeNullCondition(K),import_lodash.default.set(S.componentProps,"service.params.filter",K),C["x-component-props"]=S.componentProps,I.emit("patch",{schema:{"x-uid":C["x-uid"],"x-component-props":S.componentProps}})}}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Set default sorting rules"),components:{ArrayItems:import_antd_v5.ArrayItems},schema:{type:"object",title:y("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:E,"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:y("ASC"),value:"asc"},{label:y("DESC"),value:"desc"}]},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:y("Add sort field"),"x-component":"ArrayItems.Addition"}}}}},onSubmit:({sort:K})=>{const H=K.map(J=>J.direction==="desc"?`-${J.field}`:J.field);import_lodash.default.set(S.componentProps,"service.params.sort",H),C["x-component-props"]=S.componentProps,I.emit("patch",{schema:{"x-uid":C["x-uid"],"x-component-props":S.componentProps}})}}),b&&!(b!=null&&b.readPretty)&&!isPatternDisabled(C)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Pattern"),options:[{label:y("Editable"),value:"editable"},{label:y("Readonly"),value:"readonly"},{label:y("Easy-reading"),value:"read-pretty"}],value:G,onChange:K=>{const H={"x-uid":C["x-uid"]};switch(K){case"readonly":{C["x-read-pretty"]=!1,C["x-disabled"]=!0,H["x-read-pretty"]=!1,H["x-disabled"]=!0,S.readPretty=!1,S.disabled=!0;break}case"read-pretty":{C["x-read-pretty"]=!0,C["x-disabled"]=!1,H["x-read-pretty"]=!0,H["x-disabled"]=!1,S.readPretty=!0;break}default:{C["x-read-pretty"]=!1,C["x-disabled"]=!1,H["x-read-pretty"]=!1,H["x-disabled"]=!1,S.readPretty=!1,S.disabled=!1;break}}I.emit("patch",{schema:H}),I.refresh()}},"pattern"),(D==null?void 0:D.target)&&["CollectionField","AssociationSelect"].includes(C["x-component"])&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Title field"),options:q,value:(d=(m=S==null?void 0:S.componentProps)==null?void 0:m.fieldNames)==null?void 0:d.label,onChange:K=>{var H,J;const X={"x-uid":C["x-uid"]},Q=P(x(x({},(J=(H=D==null?void 0:D.uiSchema)==null?void 0:H["x-component-props"])==null?void 0:J.fieldNames),S.componentProps.fieldNames),{label:K});S.componentProps.fieldNames=Q,C["x-component-props"]=C["x-component-props"]||{},C["x-component-props"].fieldNames=Q,X["x-component-props"]=C["x-component-props"],I.emit("patch",{schema:X}),I.refresh()}},"title-field"),D&&(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,confirm:{title:y("Delete field")},breakRemoveOn:{"x-component":"Grid"}},"remove")]})};AssociationSelect.FilterDesigner=function e(){var t,o,r,i,n,a,l,c,u,m,d;const{getCollectionFields:p,getInterface:h,getCollectionJoinField:g}=useCollectionManager_deprecated(),{getField:_}=useCollection_deprecated(),{form:f}=useFormBlockContext(),v=(0,import_react.useField)(),b=(0,import_react.useFieldSchema)(),{t:S}=(0,import_react_i18next.useTranslation)(),{dn:C,refresh:y}=useDesignable(),F=useCompile(),I=_(b.name)||g(b["x-collection-field"]),T=h(I==null?void 0:I.interface),k=(t=T==null?void 0:T.validateSchema)==null?void 0:t.call(T,b),N=(o=I==null?void 0:I.uiSchema)==null?void 0:o.title,M=I!=null&&I.target?p(I==null?void 0:I.target):[];v.title===N||v.title;const L=useSortFields(I==null?void 0:I.target),D=((n=(i=(r=v.componentProps)==null?void 0:r.service)==null?void 0:i.params)==null?void 0:n.sort)||[],R=D==null?void 0:D.map(w=>w.startsWith("-")?{field:w.substring(1),direction:"desc"}:{field:w,direction:"asc"});v.readPretty||v.required;const $=M.filter(w=>!(w!=null&&w.target)&&w.type!=="boolean").map(w=>{var j;return{value:w==null?void 0:w.name,label:F((j=w==null?void 0:w.uiSchema)==null?void 0:j.title)||(w==null?void 0:w.name)}});return b["x-disabled"],b["x-read-pretty"],(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(GeneralSchemaItems,{required:!1}),f&&!(f!=null&&f.readPretty)&&k&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:S("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:S("Set validation rules"),properties:{rules:{type:"array",default:b==null?void 0:b["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},k),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:w=>{var j;const B=[];for(const V of w.rules)B.push(import_lodash.default.pickBy(V,import_lodash.default.identity));const O={"x-uid":b["x-uid"]};if(["percent"].includes(I==null?void 0:I.interface))for(const V of B)(V.maxValue||V.minValue)&&(V.percentMode=!0),V.percentFormat&&(V.percentFormats=!0);const E=import_lodash.default.concat([],((j=I==null?void 0:I.uiSchema)==null?void 0:j["x-validator"])||[],B);v.validator=E,b["x-validator"]=B,O["x-validator"]=B,C.emit("patch",{schema:O}),y()}}),f&&!(f!=null&&f.readPretty)&&((a=I==null?void 0:I.uiSchema)==null?void 0:a.type)&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:S("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:S("Set default value"),properties:{default:P(x({},import_lodash.default.omit(I==null?void 0:I.uiSchema,"required")),{name:"default",title:S("Default value"),"x-decorator":"FormItem",default:b.default||(I==null?void 0:I.defaultValue)})}},onSubmit:w=>{const j={"x-uid":b["x-uid"]};v.value!==w.default&&(v.value=w.default),b.default=w.default,j.default=w.default,C.emit("patch",{schema:j}),y()}}),(0,import_jsx_runtime.jsx)(SchemaSettingsDataScope,{collectionName:I==null?void 0:I.target,defaultFilter:((u=(c=(l=v.componentProps)==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||{},form:f,onSubmit:({filter:w})=>{w=removeNullCondition(w),import_lodash.default.set(v.componentProps,"service.params.filter",w),b["x-component-props"]=v.componentProps,C.emit("patch",{schema:{"x-uid":b["x-uid"],"x-component-props":v.componentProps}})}}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:S("Set default sorting rules"),components:{ArrayItems:import_antd_v5.ArrayItems},schema:{type:"object",title:S("Set default sorting rules"),properties:{sort:{type:"array",default:R,"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:L,"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:S("ASC"),value:"asc"},{label:S("DESC"),value:"desc"}]},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:S("Add sort field"),"x-component":"ArrayItems.Addition"}}}}},onSubmit:({sort:w})=>{const j=w.map(B=>B.direction==="desc"?`-${B.field}`:B.field);import_lodash.default.set(v.componentProps,"service.params.sort",j),b["x-component-props"]=v.componentProps,C.emit("patch",{schema:{"x-uid":b["x-uid"],"x-component-props":v.componentProps}})}}),(I==null?void 0:I.target)&&["CollectionField","AssociationSelect"].includes(b["x-component"])&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:S("Title field"),options:$,value:(d=(m=v==null?void 0:v.componentProps)==null?void 0:m.fieldNames)==null?void 0:d.label,onChange:w=>{var j,B;const O={"x-uid":b["x-uid"]},E=P(x(x({},(B=(j=I==null?void 0:I.uiSchema)==null?void 0:j["x-component-props"])==null?void 0:B.fieldNames),v.componentProps.fieldNames),{label:w});v.componentProps.fieldNames=E,b["x-component-props"]=b["x-component-props"]||{},b["x-component-props"].fieldNames=E,O["x-component-props"]=b["x-component-props"],C.emit("patch",{schema:O}),C.refresh()}},"title-field"),I&&(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,confirm:{title:S("Delete field")},breakRemoveOn:{"x-component":"Grid"}},"remove")]})};const AutoComplete=withDynamicSchemaProps((0,import_react.connect)(import_antd.AutoComplete,(0,import_react.mapProps)({dataSource:"options"}),(0,import_react.mapReadPretty)(ReadPretty$c.Input))),blockDeleteSettings=new SchemaSettings({name:"blockDeleteSettings",items:[{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn(e){return e["x-component"]==="Grid"}}}]}),FallbackComponent=e=>(0,import_jsx_runtime.jsxs)(BlockItemCard,{children:[(0,import_jsx_runtime.jsx)(SchemaToolbar,{settings:blockDeleteSettings,draggable:!1}),(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))]}),BlockItemError=({children:e})=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent,onError:console.error,children:e}),useStyles$5=genStyleHook("nb-card-item",e=>{const{componentCls:t}=e;return{[t]:{marginBottom:e.marginBlock}}}),CardItem=e=>{const t=e,{children:o,name:r,heightMode:i}=t,n=W(t,["children","name","heightMode"]),a=useSchemaTemplate(),l=(0,import_react.useFieldSchema)(),c=l==null?void 0:l["x-template-key"],{wrapSSR:u,componentCls:m,hashId:d}=useStyles$5();return c&&!a?null:u((0,import_jsx_runtime.jsx)(BlockItemError,{children:(0,import_jsx_runtime.jsx)(BlockItem,{name:r,className:`${m} ${d} noco-card-item`,children:(0,import_jsx_runtime.jsx)(BlockItemCard,P(x({},n),{children:e.children}))})}))},defaultFieldNames={label:"label",value:"value",children:"children"},ReadPretty$6=e=>{const{fieldNames:t=defaultFieldNames}=e,o=(0,import_shared.toArr)(e.value),r=o.length;let i=(0,import_react.useField)().dataSource;const n=[];for(const a of o)if(typeof a=="object")n.push(a);else{const l=i==null?void 0:i.find(c=>c[t.value]===a);i=(l==null?void 0:l[t.children])||[],n.push(l||{label:a,value:a})}return(0,import_jsx_runtime.jsx)("div",{children:n.map((a,l)=>(0,import_jsx_runtime.jsxs)("span",{children:[typeof a=="object"?a[t.label]:a,r>l+1&&" / "]},l))})},useDefDataSource$1=(e,t)=>{const o=(0,import_react.useField)();return useRequest(()=>Promise.resolve({data:o.dataSource||t.options||[]}),P(x({},e),{refreshDeps:[o.dataSource,t.options]}))},useDefLoadData=e=>e==null?void 0:e.loadData,Cascader=withDynamicSchemaProps((0,import_react.connect)(e=>{const t=(0,import_react.useField)(),o=e,{value:r,onChange:i,labelInValue:n,options:a,useDataSource:l=useDefDataSource$1,useLoadData:c=useDefLoadData,changeOnSelectLast:u,changeOnSelect:m,maxLevel:d}=o,p=W(o,["value","onChange","labelInValue","options","useDataSource","useLoadData","changeOnSelectLast","changeOnSelect","maxLevel"]),h=x(x({},defaultFieldNames),e.fieldNames),g=(0,import_lodash.isFunction)(c)?c(e):[],{loading:_,run:f}=(0,import_lodash.isFunction)(c)?l({onSuccess(C){t.dataSource=(C==null?void 0:C.data)||[]}},e):{},v=()=>(0,import_shared.toArr)(r).map(C=>typeof C=="object"?C[h.value]:C),b=(C,y)=>(0,import_jsx_runtime.jsx)(import_antd.Space,{split:"/",children:C.map((F,I)=>{if(y[I])return(0,import_jsx_runtime.jsx)("span",{children:F},I);const T=(0,import_shared.toArr)(r).filter(Boolean).find(k=>k[h.value]===F);return(0,import_jsx_runtime.jsx)("span",{children:(T==null?void 0:T[h.label])||F},I)})}),S=C=>{var y;C&&!((y=t.dataSource)!=null&&y.length)&&(f==null||f())};return(0,import_jsx_runtime.jsx)(import_antd.Cascader,P(x({loading:_},p),{multiple:p.multiple,options:t.dataSource,loadData:g,changeOnSelect:(0,import_lodash.isBoolean)(u)?!u:m,value:v(),fieldNames:h,displayRender:b,onDropdownVisibleChange:S,onChange:(C,y)=>{i(C&&n?y.map(F=>(0,import_lodash.omit)(F,[h.children]))||null:C||null)}}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>P(x({},e),{suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})),(0,import_react.mapReadPretty)(ReadPretty$6)),{displayName:"Cascader"}),ReadPretty$5=e=>e.value?(0,import_jsx_runtime.jsx)(import_icons.CheckOutlined,{style:{color:"#52c41a"}}):e.showUnchecked?(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{style:{color:"#ff4d4f"}}):(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{disabled:!0}),Checkbox=(0,import_react.connect)(e=>{const t=o=>{e==null||e.onChange(o)};return(0,import_jsx_runtime.jsx)(import_antd.Checkbox,P(x({},e),{onChange:t}))},(0,import_react.mapProps)({value:"checked",onInput:"onChange"}),(0,import_react.mapReadPretty)(ReadPretty$5));Checkbox.displayName="Checkbox";Checkbox.ReadPretty=ReadPretty$5;Checkbox.ReadPretty.displayName="Checkbox.ReadPretty";Checkbox.__ANT_CHECKBOX=!0;Checkbox.Group=(0,import_react.connect)(import_antd.Checkbox.Group,(0,import_react.mapProps)({dataSource:"options"}),(0,import_react.mapReadPretty)(e=>{if(!(0,import_shared.isValid)(e.value))return null;const[t,o]=(0,import_react2.useState)([]),[r,i]=(0,import_react2.useState)(!0),n=(0,import_react.useField)(),a=useCollectionField();return(0,import_react2.useEffect)(()=>{const l=n.dataSource||(a==null?void 0:a.uiSchema.enum)||[],c=(0,import_uniq.default)(n.value?n.value:[]),u=l.filter(m=>c.includes(m.value)).map((m,d)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:m.color,icon:m.icon,children:m.label},d));o(u),i(!1)},[n.value]),r?null:(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:t})}));Checkbox.Group.displayName="Checkbox.Group";const useCollectionField_deprecated=()=>{const e=useCollection_deprecated(),t=useRecord(),o=useAPIClient(),r=useCompile(),i=useCollectionField();if(!i)return{};const n=`${(i==null?void 0:i.collectionName)||(e==null?void 0:e.name)}.${i.name}`,a=o==null?void 0:o.resource(n,t[i.sourceKey]);return P(x({},i),{uiSchema:r(i.uiSchema),resource:a})};function useCollectionDataSource(e){const t=useCompile(),{collections:o=[]}=useCollectionManager_deprecated();return r=>{import_reactive.action.bound(i=>{const n=typeof e=="function"?i.filter(e):i;r.dataSource=n.map(a=>({label:t(a.title),value:a.name}))})(o)}}function useCollectionOptions({filter:e,isTableOid:t}){var o;const r=useCompile(),i=(0,import_react.useField)(),n=(0,import_react2.useContext)(FilterContext$3),a=useCollection_deprecated(),l=t&&(((o=n==null?void 0:n.field)==null?void 0:o.collectionName)||(n==null?void 0:n.collectionName)||a.name),c=useSelfAndChildrenCollections(l),{collections:u=[]}=useCollectionManager_deprecated(),m=i!=null&&i.dataSource?u.filter(p=>(i==null?void 0:i.dataSource.find(h=>h.value===p.name))||(i==null?void 0:i.dataSource.includes(p.name))):u,d=typeof e=="function"?(c||m).filter(e):c||m;return(0,import_react2.useMemo)(()=>d.filter(p=>!p.hidden).map(p=>{var h;return{label:r(p.title||p.label),value:p.name||p.value,color:(h=p.category)==null?void 0:h.color}}),[d])}const CollectionSelect=(0,import_react.connect)(e=>{const t=e,o=W(t,["filter"]),r=useCollectionOptions(e),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react2.useCallback)((a,l)=>{var c,u;return((c=l==null?void 0:l.label.toLowerCase())!=null?c:"").includes(a.toLocaleLowerCase())||((u=l==null?void 0:l.value.toString().toLowerCase())!=null?u:"").includes(a.toLocaleLowerCase())},[]);return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":"select-collection",placeholder:i("Select collection"),popupMatchSelectWidth:!1},o),{showSearch:!0,filterOption:n,options:r}))},(0,import_react.mapReadPretty)((0,import_react.observer)(e=>{const{mode:t}=e,o=useCompile(),r=useCollectionOptions(e).filter(i=>{var n;return t==="multiple"?((n=e.value)!=null?n:[]).includes(i.value):e.value===i.value});return(0,import_jsx_runtime.jsx)("div",{children:r.map(i=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:i.color,children:o(i.label)},i.value))})},{displayName:"CollectionSelectObserver"})));function useDataSourceOptions({filter:e}){const t=useCompile(),o=useDataSourceManager().getDataSources();return(0,import_react2.useMemo)(()=>(typeof e=="function"?o.filter(e):o).map(r=>({label:t(r.displayName),value:r.key})),[o,e])}const DataSourceSelect=(0,import_react.connect)(e=>{const t=e,o=W(t,["filter"]),r=useDataSourceOptions(e),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react2.useCallback)((a,l)=>{var c,u;return((c=l==null?void 0:l.label.toLowerCase())!=null?c:"").includes(a.toLocaleLowerCase())||((u=l==null?void 0:l.value.toString().toLowerCase())!=null?u:"").includes(a.toLocaleLowerCase())},[]);return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":"select-datasource",placeholder:i("Select data source"),popupMatchSelectWidth:!1},o),{showSearch:!0,filterOption:n,options:r}))}),DataSourceCollectionCascaderReadPretty=(0,import_react.observer)(e=>{const t=useDataSourceManager(),o=useCompile(),r=e,{value:i,onChange:n,dataSourceFilter:a,collectionFilter:l}=r;W(r,["value","onChange","dataSourceFilter","collectionFilter"]);const[c,u]=parseCollectionName(i),m=[c,u].filter(Boolean),d=t.getDataSources(),p=(0,import_react2.useMemo)(()=>(a?d.filter(a):d).map(g=>({label:o(g.displayName),value:g.key,children:g.collectionManager.collectionInstancesArr.filter(l??(_=>!_.hidden)).map(_=>({label:o(_.title),value:_.name}))})),[d,a,l]),h=((g,_)=>{const f=[];let v=_;return g.forEach(b=>{const S=v.find(C=>C.value===b);S&&(f.push(S.label),S.children?v=S.children:v=[])}),f})(m,p);return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:h.join(" / ")})})}),DataSourceCollectionCascader=(0,import_react.connect)(e=>{const t=useDataSourceManager(),o=useCompile(),r=e,{value:i,onChange:n,dataSourceFilter:a,collectionFilter:l}=r,c=W(r,["value","onChange","dataSourceFilter","collectionFilter"]),[u,m]=parseCollectionName(i),d=[u,m].filter(Boolean),p=t.getDataSources(),h=(0,import_react2.useMemo)(()=>(a?p.filter(a):p).map(_=>({label:o(_.displayName),value:_.key,children:_.collectionManager.collectionInstancesArr.filter(l??(f=>!f.hidden)).map(f=>({label:o(f.title),value:f.name}))})),[p,a,l]),g=(0,import_react2.useCallback)(_=>{if(!_)return n(_);n(_[0]==="main"?_[1]:_.join(":"))},[n]);return(0,import_jsx_runtime.jsx)(import_antd.Cascader,P(x({showSearch:!0},c),{options:h,value:d,onChange:g}))},(0,import_react.mapReadPretty)(DataSourceCollectionCascaderReadPretty)),ColorPicker=(0,import_react.connect)(e=>{const t=e,{value:o,onChange:r}=t,i=W(t,["value","onChange"]);return(0,import_jsx_runtime.jsx)("div",{role:"button","aria-label":"color-picker-normal",style:{display:"inline-block"},children:(0,import_jsx_runtime.jsx)(import_antd.ColorPicker,P(x({value:o,trigger:"hover"},i),{destroyTooltipOnHide:!0,presets:[{label:"Recommended",colors:["#8BBB11","#52C41A","#13A8A8","#1677FF","#F5222D","#FADB14","#FA8C164D","#FADB144D","#52C41A4D","#1677FF4D","#2F54EB4D","#722ED14D","#EB2F964D"]}],onChange:n=>r(n.toHexString())}))})},(0,import_react.mapProps)((e,t)=>x({},e)),(0,import_react.mapReadPretty)(e=>{const t=(0,import_builtins.usePrefixCls)("description-color-picker",e);return(0,import_jsx_runtime.jsx)("div",{role:"button","aria-label":"color-picker-read-pretty",className:(0,import_classnames.default)(t,import_css.css`
|
|
1149
|
+
`,SubTable=(0,import_react.observer)(e=>{var t,o,r;const{openSize:i}=e,{field:n,options:a,fieldSchema:l}=useAssociationFieldContext(),{t:c}=(0,import_react_i18next.useTranslation)(),[u,m]=(0,import_react2.useState)(!1),[d,p]=(0,import_react2.useState)([]),h=useFieldNames$1(e),g=(0,import_react.useFieldSchema)(),_=useCompile(),f=useLabelUiSchema$1(a,(h==null?void 0:h.label)||"label"),v=useCollectionRecord(),b=useCollection(),{allowSelectExistingRecord:S,allowAddnew:C,allowDisassociation:y,enableIndexÏColumn:F}=n.componentProps;useSubTableSpecialCase({rootField:n,rootSchema:l});const I=(E,V)=>{if(V!==void 0&&(0,import_shared.isArr)(n.value)&&E!==V)return(0,import_reactive.action)(()=>{const U=n.value[E];return n.value.splice(E,1),n.value.splice(V,0,U),(0,import_internals.exchangeArrayState)(n,{fromIndex:E,toIndex:V}),n.onInput(n.value)})};n.move=I;const T=(0,import_react2.useMemo)(()=>n.value&&Object.keys(n.value).length>0?(Array.isArray(n.value)?n.value:n.value?[n.value]:[]).filter(Boolean).map(E=>{const V=E==null?void 0:E[h.label];return P(x({},E),{[h.label]:getLabelFormatValue$1(_(f),_(V))})}):[],[n.value,h==null?void 0:h.label]),k={size:"small",fieldNames:n.componentProps.fieldNames,multiple:!0,association:{target:a==null?void 0:a.target},options:T,onChange:e==null?void 0:e.onChange,selectedRows:d,setSelectedRows:p,collectionField:a},N=()=>{const{setVisible:E}=useActionContext(),{selectedRows:V,setSelectedRows:U}=(0,import_react2.useContext)(RecordPickerContext);return{onClick(){var q;Array.isArray(n.value)||(n.value=[]),V.forEach(Y=>n.value.push(markRecordAsNew(Y))),n.onInput(n.value),n.initialValue=n.value,U([]),E(!1);const G=Math.ceil(n.value.length/(((q=n.componentProps)==null?void 0:q.pageSize)||10));D(G)}}},M=()=>{const E=(a==null?void 0:a.targetKey)||"id",V=(n.value||[]).map(U=>U==null?void 0:U[E]).filter(Boolean);return V.length?{$and:[{[`${E}.$ne`]:V}]}:{}},[L,D]=(0,import_react2.useState)(1),[R,$]=(0,import_react2.useState)(((t=n.componentProps)==null?void 0:t.pageSize)||10),{setFormValueChanged:w}=useActionContext();(0,import_react2.useEffect)(()=>{var E;$((E=n.componentProps)==null?void 0:E.pageSize)},[(o=n.componentProps)==null?void 0:o.pageSize]);const j=(0,import_react2.useMemo)(()=>{var E;const V=Math.ceil(((E=n.value)==null?void 0:E.length)/10);return{current:L>V?V:L,pageSize:R||10,total:n==null?void 0:n.value,onChange:(U,q)=>{D(U),$(q),n.componentProps.pageSize=q,n.onInput(n.value),w==null||w(!1)},showSizeChanger:!0,pageSizeOptions:["10","20","50","100"],hideOnSinglePage:!1}},[(r=n.value)==null?void 0:r.length,R,L]),B=()=>{const{field:E}=useAssociationFieldContext();return{run(){var V;E.value=E.value||[],E.value.push(markRecordAsNew({}));const U=Math.ceil(E.value.length/(((V=E.componentProps)==null?void 0:V.pageSize)||10));return D(U),E.onInput(E.value)}}},O=()=>({run(){m(!0)}});return(0,import_jsx_runtime.jsxs)("div",{className:subTableContainer,children:[(0,import_jsx_runtime.jsx)(FlagProvider,{isInSubTable:!0,children:(0,import_jsx_runtime.jsx)(CollectionRecordProvider,{record:null,parentRecord:v,children:(0,import_jsx_runtime.jsx)(FormActiveFieldsProvider,{name:"nester",children:(0,import_jsx_runtime.jsx)(SubFormProvider,{value:{value:null,collection:b,fieldSchema:g.parent,skip:!0},children:(0,import_jsx_runtime.jsx)(Table$1,{className:tableClassName,size:"small",field:n,showIndex:!0,dragSort:!1,showDel:n.editable&&(C!==!1||S!==!1||y!==!1)?E=>n.editable?y!==!1?!0:E==null?void 0:E.__isNewRecord__:!1:!1,pagination:j,rowSelection:{type:"none",hideSelectAll:!0},isSubTable:!0,locale:{emptyText:(0,import_jsx_runtime.jsxs)("span",{children:[" ",n.editable?c("Please add or select record"):c("No data")]})},enableIndexÏColumn:F!==!1,footer:()=>(0,import_jsx_runtime.jsx)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:n.editable&&(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{gap:15},children:[C!==!1&&(0,import_jsx_runtime.jsx)(Action.Link,{useAction:B,title:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{gap:2},className:"nb-sub-table-addNew",children:[(0,import_jsx_runtime.jsx)(import_icons.PlusOutlined,{})," ",c("Add new")]})}),S&&(0,import_jsx_runtime.jsx)(Action.Link,{useAction:O,title:(0,import_jsx_runtime.jsxs)(import_antd.Space,{style:{gap:2},children:[(0,import_jsx_runtime.jsx)(import_icons.ZoomInOutlined,{})," ",c("Select record")]})})]})})})})})})}),(0,import_jsx_runtime.jsx)(ActionContextProvider,{value:{openSize:i,openMode:"drawer",visible:u,setVisible:m},children:(0,import_jsx_runtime.jsx)(RecordPickerProvider,P(x({},k),{children:(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{name:a==null?void 0:a.target,children:(0,import_jsx_runtime.jsx)(FormProvider,{children:(0,import_jsx_runtime.jsx)(TableSelectorParamsProvider,{params:{filter:M()},children:(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{scope:{usePickActionProps:N,useTableSelectorProps:useTableSelectorProps$2,useCreateActionProps},children:(0,import_jsx_runtime.jsx)(NocoBaseRecursionField,{onlyRenderProperties:!0,basePath:n.address,schema:g.parent,filterProperties:E=>E["x-component"]==="AssociationField.Selector"})})})})})}))})]})},{displayName:"SubTable"}),AssociationField=(0,import_react.connect)(Editable$1,(0,import_react.mapReadPretty)(ReadPretty$8));AssociationField.SubTable=SubTable;AssociationField.Nester=Nester;AssociationField.AddNewer=AssociationFieldAddNewer;AssociationField.Selector=Action.Container;AssociationField.Viewer=Action.Container;AssociationField.InternalSelect=InternalPicker;AssociationField.ReadPretty=ReadPretty$8;AssociationField.FileSelector=FileSelector;function useServiceOptions(e){const{action:t="list",service:o,fieldNames:r}=e,i=(o==null?void 0:o.params)||{},n=(0,import_react.useFieldSchema)(),{getField:a}=useCollection_deprecated(),{getCollectionFields:l}=useCollectionManager_deprecated(),c=useRecord(),u=(0,import_react2.useCallback)(g=>g&&typeof g=="object"?g[r.value]:g,[r.value]),m=(0,import_react2.useMemo)(()=>{if(!(e.value===void 0||e.value===null))return Array.isArray(e.value)?e.value.map(u):[u(e.value)]},[e.value,u]),d=(0,import_react2.useMemo)(()=>a(n.name),[n.name]),p=c==null?void 0:c[d==null?void 0:d.sourceKey],h=(0,import_react2.useMemo)(()=>{const g=["oho","o2m"].includes(d==null?void 0:d.interface);return mergeFilter([mergeFilter([g&&!isInFilterFormBlock(n)&&d!=null&&d.foreignKey?{[d.foreignKey]:{$is:null}}:null,i==null?void 0:i.filter]),g&&p!==void 0&&p!==null&&!isInFilterFormBlock(n)&&d!=null&&d.foreignKey?{[d.foreignKey]:{$eq:p}}:null,i!=null&&i.filter&&m?{[r.value]:{$in:m}}:null],"$or")},[i==null?void 0:i.filter,l,d,p,m,r.value]);return(0,import_react2.useMemo)(()=>P(x({resource:d==null?void 0:d.target,action:t},o),{params:P(x({},o==null?void 0:o.params),{filter:h})}),[d==null?void 0:d.target,t,h,o])}const ReadPretty$7=(0,import_react.observer)(e=>{const t=useServiceOptions(e);return useFieldTitle(),(0,import_jsx_runtime.jsx)(RemoteSelect.ReadPretty,P(x({},e),{service:t}))},{displayName:"ReadPretty"}),divWrap=e=>({type:"void","x-component":"div",properties:{[e.name||(0,import_shared.uid)()]:e}}),InternalAssociationSelect=(0,import_react.connect)(e=>{const{fieldNames:t,objectValue:o=!0}=e,r=useServiceOptions(e);useFieldTitle();const i=(0,import_react2.useCallback)(a=>!o&&typeof a=="object"?a[t.value]:a,[o,t.value]),n=(0,import_react2.useMemo)(()=>{if(!(e.value===void 0||e.value===null))return Array.isArray(e.value)?e.value.map(i):i(e.value)},[e.value,i]);return(0,import_jsx_runtime.jsx)(RemoteSelect,P(x({},e),{objectValue:o,value:n,service:r}))},(0,import_react.mapProps)({dataSource:"options",loading:!0},(e,t)=>P(x({},e),{fieldNames:x(x(x({},defaultFieldNames$1),e.fieldNames),t.componentProps.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$7));InternalAssociationSelect.displayName="InternalAssociationSelect";const AssociationSelect=InternalAssociationSelect;AssociationSelect.Designer=function e(){var t,o,r,i,n,a,l,c,u,m,d;const{getCollectionFields:p,getInterface:h,getCollectionJoinField:g,getCollection:_,isTitleField:f}=useCollectionManager_deprecated(),{getField:v}=useCollection_deprecated(),{form:b}=useFormBlockContext(),S=(0,import_react.useField)(),C=(0,import_react.useFieldSchema)(),{t:y}=(0,import_react_i18next.useTranslation)(),F=useFilterByTk(),{dn:I,refresh:T,insertAdjacent:k}=useDesignable(),N=useCompile(),M=useIsShowMultipleSwitch(),{isAllowToSetDefaultValue:L}=useIsAllowToSetDefaultValue(),D=v(C.name)||g(C["x-collection-field"]),R=useFieldComponentOptions(),$=S.address.segments.includes("__form_grid"),w=h(D==null?void 0:D.interface),j=(t=w==null?void 0:w.validateSchema)==null?void 0:t.call(w,C),B=(o=D==null?void 0:D.uiSchema)==null?void 0:o.title,O=D!=null&&D.target?p(D==null?void 0:D.target):[];S.title===B||S.title;const E=useSortFields(D==null?void 0:D.target),V=((n=(i=(r=S.componentProps)==null?void 0:r.service)==null?void 0:i.params)==null?void 0:n.sort)||[];(0,import_react2.useEffect)(()=>{S.readPretty!==C["x-read-pretty"]&&(S.readPretty=!!C["x-read-pretty"])},[C["x-read-pretty"]]);const U=V==null?void 0:V.map(K=>K.startsWith("-")?{field:K.substring(1),direction:"desc"}:{field:K,direction:"asc"});S.readPretty||S.required;const q=O.filter(K=>f(K)).map(K=>{var H;return{value:K==null?void 0:K.name,label:N((H=K==null?void 0:K.uiSchema)==null?void 0:H.title)||(K==null?void 0:K.name)}});let G="editable";C["x-disabled"]===!0&&(G="readonly"),C["x-read-pretty"]===!0&&(G="read-pretty");const Y=import_lodash.default.omit(C,"required");return(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(GeneralSchemaItems,{}),b&&!(b!=null&&b.readPretty)&&j&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:y("Set validation rules"),properties:{rules:{type:"array",default:C==null?void 0:C["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},j),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:K=>{var H;const J=[],X=ee=>ee!=null&&!Number.isNaN(ee);for(const ee of K.rules)J.push(import_lodash.default.pickBy(ee,X));const Q={"x-uid":C["x-uid"]};if(["percent"].includes(D==null?void 0:D.interface))for(const ee of J)(ee.maxValue||ee.minValue)&&(ee.percentMode=!0),ee.percentFormat&&(ee.percentFormats=!0);const oe=import_lodash.default.concat([],((H=D==null?void 0:D.uiSchema)==null?void 0:H["x-validator"])||[],J);S.validator=oe,C["x-validator"]=J,Q["x-validator"]=J,I.emit("patch",{schema:Q}),T()}}),L()&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},width:800,schema:{type:"object",title:y("Set default value"),properties:{default:P(x({},Y||{}),{"x-decorator":"FormItem","x-component-props":P(x({},Y["x-component-props"]),{component:D!=null&&D.target?"AssociationSelect":void 0,service:{resource:D==null?void 0:D.target}}),name:"default",title:y("Default value"),default:C.default||(D==null?void 0:D.defaultValue),"x-read-pretty":!1,"x-disabled":!1})}},onSubmit:K=>{const H={"x-uid":C["x-uid"]};S.value!==K.default&&(S.value=K.default),C.default=K.default,H.default=K.default,I.emit("patch",{schema:H}),T()}}),b&&!$&&R&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Field component"),options:R,value:C["x-component"],onChange:K=>{var H,J;const X={name:D==null?void 0:D.name,type:"void",required:C.required,description:C.description,default:C.default,"x-decorator":"FormItem","x-toolbar":"FormItemSchemaToolbar","x-settings":"fieldSettings:FormItem","x-component":K,"x-validator":C["x-validator"],"x-collection-field":C["x-collection-field"],"x-decorator-props":C["x-decorator-props"],"x-component-props":x(x({},(H=D==null?void 0:D.uiSchema)==null?void 0:H["x-component-props"]),C["x-component-props"])};(J=w==null?void 0:w.schemaInitialize)==null||J.call(w,X,{field:D,block:"Form",readPretty:S.readPretty,action:F?"get":null,targetCollection:_(D==null?void 0:D.target)}),K==="CollectionField"&&(X.type="string"),k("beforeBegin",divWrap(X),{onSuccess:()=>{I.remove(null,{removeParentsIfNoChildren:!0,breakRemoveOn:{"x-component":"Grid"}})}})}}),M()?(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:y("Allow multiple"),checked:((a=C["x-component-props"])==null?void 0:a.multiple)===void 0?!0:C["x-component-props"].multiple,onChange:K=>{const H={"x-uid":C["x-uid"]};C["x-component-props"]=C["x-component-props"]||{},S.componentProps=S.componentProps||{},C["x-component-props"].multiple=K,S.componentProps.multiple=K,H["x-component-props"]=C["x-component-props"],I.emit("patch",{schema:H}),T()}},"multiple"):null,(0,import_jsx_runtime.jsx)(SchemaSettingsDataScope,{collectionName:D==null?void 0:D.target,defaultFilter:((u=(c=(l=S.componentProps)==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||{},form:b,onSubmit:({filter:K})=>{K=removeNullCondition(K),import_lodash.default.set(S.componentProps,"service.params.filter",K),C["x-component-props"]=S.componentProps,I.emit("patch",{schema:{"x-uid":C["x-uid"],"x-component-props":S.componentProps}})}}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:y("Set default sorting rules"),components:{ArrayItems:import_antd_v5.ArrayItems},schema:{type:"object",title:y("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:E,"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:y("ASC"),value:"asc"},{label:y("DESC"),value:"desc"}]},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:y("Add sort field"),"x-component":"ArrayItems.Addition"}}}}},onSubmit:({sort:K})=>{const H=K.map(J=>J.direction==="desc"?`-${J.field}`:J.field);import_lodash.default.set(S.componentProps,"service.params.sort",H),C["x-component-props"]=S.componentProps,I.emit("patch",{schema:{"x-uid":C["x-uid"],"x-component-props":S.componentProps}})}}),b&&!(b!=null&&b.readPretty)&&!isPatternDisabled(C)&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Pattern"),options:[{label:y("Editable"),value:"editable"},{label:y("Readonly"),value:"readonly"},{label:y("Easy-reading"),value:"read-pretty"}],value:G,onChange:K=>{const H={"x-uid":C["x-uid"]};switch(K){case"readonly":{C["x-read-pretty"]=!1,C["x-disabled"]=!0,H["x-read-pretty"]=!1,H["x-disabled"]=!0,S.readPretty=!1,S.disabled=!0;break}case"read-pretty":{C["x-read-pretty"]=!0,C["x-disabled"]=!1,H["x-read-pretty"]=!0,H["x-disabled"]=!1,S.readPretty=!0;break}default:{C["x-read-pretty"]=!1,C["x-disabled"]=!1,H["x-read-pretty"]=!1,H["x-disabled"]=!1,S.readPretty=!1,S.disabled=!1;break}}I.emit("patch",{schema:H}),I.refresh()}},"pattern"),(D==null?void 0:D.target)&&["CollectionField","AssociationSelect"].includes(C["x-component"])&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:y("Title field"),options:q,value:(d=(m=S==null?void 0:S.componentProps)==null?void 0:m.fieldNames)==null?void 0:d.label,onChange:K=>{var H,J;const X={"x-uid":C["x-uid"]},Q=P(x(x({},(J=(H=D==null?void 0:D.uiSchema)==null?void 0:H["x-component-props"])==null?void 0:J.fieldNames),S.componentProps.fieldNames),{label:K});S.componentProps.fieldNames=Q,C["x-component-props"]=C["x-component-props"]||{},C["x-component-props"].fieldNames=Q,X["x-component-props"]=C["x-component-props"],I.emit("patch",{schema:X}),I.refresh()}},"title-field"),D&&(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,confirm:{title:y("Delete field")},breakRemoveOn:{"x-component":"Grid"}},"remove")]})};AssociationSelect.FilterDesigner=function e(){var t,o,r,i,n,a,l,c,u,m,d;const{getCollectionFields:p,getInterface:h,getCollectionJoinField:g}=useCollectionManager_deprecated(),{getField:_}=useCollection_deprecated(),{form:f}=useFormBlockContext(),v=(0,import_react.useField)(),b=(0,import_react.useFieldSchema)(),{t:S}=(0,import_react_i18next.useTranslation)(),{dn:C,refresh:y}=useDesignable(),F=useCompile(),I=_(b.name)||g(b["x-collection-field"]),T=h(I==null?void 0:I.interface),k=(t=T==null?void 0:T.validateSchema)==null?void 0:t.call(T,b),N=(o=I==null?void 0:I.uiSchema)==null?void 0:o.title,M=I!=null&&I.target?p(I==null?void 0:I.target):[];v.title===N||v.title;const L=useSortFields(I==null?void 0:I.target),D=((n=(i=(r=v.componentProps)==null?void 0:r.service)==null?void 0:i.params)==null?void 0:n.sort)||[],R=D==null?void 0:D.map(w=>w.startsWith("-")?{field:w.substring(1),direction:"desc"}:{field:w,direction:"asc"});v.readPretty||v.required;const $=M.filter(w=>!(w!=null&&w.target)&&w.type!=="boolean").map(w=>{var j;return{value:w==null?void 0:w.name,label:F((j=w==null?void 0:w.uiSchema)==null?void 0:j.title)||(w==null?void 0:w.name)}});return b["x-disabled"],b["x-read-pretty"],(0,import_jsx_runtime.jsxs)(GeneralSchemaDesigner,{children:[(0,import_jsx_runtime.jsx)(GeneralSchemaItems,{required:!1}),f&&!(f!=null&&f.readPretty)&&k&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:S("Set validation rules"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:S("Set validation rules"),properties:{rules:{type:"array",default:b==null?void 0:b["x-validator"],"x-component":"ArrayCollapse","x-decorator":"FormItem","x-component-props":{accordion:!0},maxItems:3,items:{type:"object","x-component":"ArrayCollapse.CollapsePanel","x-component-props":{header:'{{ t("Validation rule") }}'},properties:{index:{type:"void","x-component":"ArrayCollapse.Index"},layout:{type:"void","x-component":"FormLayout","x-component-props":{labelStyle:{marginTop:"6px"},labelCol:8,wrapperCol:16},properties:P(x({},k),{message:{type:"string",title:'{{ t("Error message") }}',"x-decorator":"FormItem","x-component":"Input.TextArea","x-component-props":{autoSize:{minRows:2,maxRows:2}}}})},remove:{type:"void","x-component":"ArrayCollapse.Remove"},moveUp:{type:"void","x-component":"ArrayCollapse.MoveUp"},moveDown:{type:"void","x-component":"ArrayCollapse.MoveDown"}}},properties:{add:{type:"void",title:'{{ t("Add validation rule") }}',"x-component":"ArrayCollapse.Addition","x-reactions":{dependencies:["rules"],fulfill:{state:{disabled:"{{$deps[0].length >= 3}}"}}}}}}}},onSubmit:w=>{var j;const B=[];for(const V of w.rules)B.push(import_lodash.default.pickBy(V,import_lodash.default.identity));const O={"x-uid":b["x-uid"]};if(["percent"].includes(I==null?void 0:I.interface))for(const V of B)(V.maxValue||V.minValue)&&(V.percentMode=!0),V.percentFormat&&(V.percentFormats=!0);const E=import_lodash.default.concat([],((j=I==null?void 0:I.uiSchema)==null?void 0:j["x-validator"])||[],B);v.validator=E,b["x-validator"]=B,O["x-validator"]=B,C.emit("patch",{schema:O}),y()}}),f&&!(f!=null&&f.readPretty)&&((a=I==null?void 0:I.uiSchema)==null?void 0:a.type)&&(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:S("Set default value"),components:{ArrayCollapse:import_antd_v5.ArrayCollapse,FormLayout:import_antd_v5.FormLayout},schema:{type:"object",title:S("Set default value"),properties:{default:P(x({},import_lodash.default.omit(I==null?void 0:I.uiSchema,"required")),{name:"default",title:S("Default value"),"x-decorator":"FormItem",default:b.default||(I==null?void 0:I.defaultValue)})}},onSubmit:w=>{const j={"x-uid":b["x-uid"]};v.value!==w.default&&(v.value=w.default),b.default=w.default,j.default=w.default,C.emit("patch",{schema:j}),y()}}),(0,import_jsx_runtime.jsx)(SchemaSettingsDataScope,{collectionName:I==null?void 0:I.target,defaultFilter:((u=(c=(l=v.componentProps)==null?void 0:l.service)==null?void 0:c.params)==null?void 0:u.filter)||{},form:f,onSubmit:({filter:w})=>{w=removeNullCondition(w),import_lodash.default.set(v.componentProps,"service.params.filter",w),b["x-component-props"]=v.componentProps,C.emit("patch",{schema:{"x-uid":b["x-uid"],"x-component-props":v.componentProps}})}}),(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:S("Set default sorting rules"),components:{ArrayItems:import_antd_v5.ArrayItems},schema:{type:"object",title:S("Set default sorting rules"),properties:{sort:{type:"array",default:R,"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:L,"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:S("ASC"),value:"asc"},{label:S("DESC"),value:"desc"}]},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},properties:{add:{type:"void",title:S("Add sort field"),"x-component":"ArrayItems.Addition"}}}}},onSubmit:({sort:w})=>{const j=w.map(B=>B.direction==="desc"?`-${B.field}`:B.field);import_lodash.default.set(v.componentProps,"service.params.sort",j),b["x-component-props"]=v.componentProps,C.emit("patch",{schema:{"x-uid":b["x-uid"],"x-component-props":v.componentProps}})}}),(I==null?void 0:I.target)&&["CollectionField","AssociationSelect"].includes(b["x-component"])&&(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:S("Title field"),options:$,value:(d=(m=v==null?void 0:v.componentProps)==null?void 0:m.fieldNames)==null?void 0:d.label,onChange:w=>{var j,B;const O={"x-uid":b["x-uid"]},E=P(x(x({},(B=(j=I==null?void 0:I.uiSchema)==null?void 0:j["x-component-props"])==null?void 0:B.fieldNames),v.componentProps.fieldNames),{label:w});v.componentProps.fieldNames=E,b["x-component-props"]=b["x-component-props"]||{},b["x-component-props"].fieldNames=E,O["x-component-props"]=b["x-component-props"],C.emit("patch",{schema:O}),C.refresh()}},"title-field"),I&&(0,import_jsx_runtime.jsx)(SchemaSettingsDivider,{}),(0,import_jsx_runtime.jsx)(SchemaSettingsRemove,{removeParentsIfNoChildren:!0,confirm:{title:S("Delete field")},breakRemoveOn:{"x-component":"Grid"}},"remove")]})};const AutoComplete=withDynamicSchemaProps((0,import_react.connect)(import_antd.AutoComplete,(0,import_react.mapProps)({dataSource:"options"}),(0,import_react.mapReadPretty)(ReadPretty$c.Input))),blockDeleteSettings=new SchemaSettings({name:"blockDeleteSettings",items:[{name:"remove",type:"remove",componentProps:{removeParentsIfNoChildren:!0,breakRemoveOn(e){return e["x-component"]==="Grid"}}}]}),FallbackComponent=e=>(0,import_jsx_runtime.jsxs)(BlockItemCard,{children:[(0,import_jsx_runtime.jsx)(SchemaToolbar,{settings:blockDeleteSettings,draggable:!1}),(0,import_jsx_runtime.jsx)(ErrorFallback,x({},e))]}),BlockItemError=({children:e})=>(0,import_jsx_runtime.jsx)(import_react_error_boundary.ErrorBoundary,{FallbackComponent,onError:console.error,children:e}),useStyles$5=genStyleHook("nb-card-item",e=>{const{componentCls:t}=e;return{[t]:{marginBottom:e.marginBlock}}}),CardItem=e=>{const t=e,{children:o,name:r,heightMode:i}=t,n=W(t,["children","name","heightMode"]),a=useSchemaTemplate(),l=(0,import_react.useFieldSchema)(),c=l==null?void 0:l["x-template-key"],{wrapSSR:u,componentCls:m,hashId:d}=useStyles$5();return c&&!a?null:u((0,import_jsx_runtime.jsx)(BlockItemError,{children:(0,import_jsx_runtime.jsx)(BlockItem,{name:r,className:`${m} ${d} noco-card-item`,children:(0,import_jsx_runtime.jsx)(BlockItemCard,P(x({},n),{children:e.children}))})}))},defaultFieldNames={label:"label",value:"value",children:"children"},ReadPretty$6=e=>{const{fieldNames:t=defaultFieldNames}=e,o=(0,import_shared.toArr)(e.value),r=o.length;let i=(0,import_react.useField)().dataSource;const n=[];for(const a of o)if(typeof a=="object")n.push(a);else{const l=i==null?void 0:i.find(c=>c[t.value]===a);i=(l==null?void 0:l[t.children])||[],n.push(l||{label:a,value:a})}return(0,import_jsx_runtime.jsx)("div",{children:n.map((a,l)=>(0,import_jsx_runtime.jsxs)("span",{children:[typeof a=="object"?a[t.label]:a,r>l+1&&" / "]},l))})},useDefDataSource$1=(e,t)=>{const o=(0,import_react.useField)();return useRequest(()=>Promise.resolve({data:o.dataSource||t.options||[]}),P(x({},e),{refreshDeps:[o.dataSource,t.options]}))},useDefLoadData=e=>e==null?void 0:e.loadData,Cascader=withDynamicSchemaProps((0,import_react.connect)(e=>{const t=(0,import_react.useField)(),o=e,{value:r,onChange:i,labelInValue:n,options:a,useDataSource:l=useDefDataSource$1,useLoadData:c=useDefLoadData,changeOnSelectLast:u,changeOnSelect:m,maxLevel:d}=o,p=W(o,["value","onChange","labelInValue","options","useDataSource","useLoadData","changeOnSelectLast","changeOnSelect","maxLevel"]),h=x(x({},defaultFieldNames),e.fieldNames),g=(0,import_lodash.isFunction)(c)?c(e):[],{loading:_,run:f}=(0,import_lodash.isFunction)(c)?l({onSuccess(C){t.dataSource=(C==null?void 0:C.data)||[]}},e):{},v=()=>(0,import_shared.toArr)(r).map(C=>typeof C=="object"?C[h.value]:C),b=(C,y)=>(0,import_jsx_runtime.jsx)(import_antd.Space,{split:"/",children:C.map((F,I)=>{if(y[I])return(0,import_jsx_runtime.jsx)("span",{children:F},I);const T=(0,import_shared.toArr)(r).filter(Boolean).find(k=>k[h.value]===F);return(0,import_jsx_runtime.jsx)("span",{children:(T==null?void 0:T[h.label])||F},I)})}),S=C=>{var y;C&&!((y=t.dataSource)!=null&&y.length)&&(f==null||f())};return(0,import_jsx_runtime.jsx)(import_antd.Cascader,P(x({loading:_},p),{multiple:p.multiple,options:t.dataSource,loadData:g,changeOnSelect:(0,import_lodash.isBoolean)(u)?!u:m,value:v(),fieldNames:h,displayRender:b,onDropdownVisibleChange:S,onChange:(C,y)=>{i(C&&n?y.map(F=>(0,import_lodash.omit)(F,[h.children]))||null:C||null)}}))},(0,import_react.mapProps)({dataSource:"options"},(e,t)=>P(x({},e),{suffixIcon:t!=null&&t.loading||t!=null&&t.validating?(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}):e.suffixIcon})),(0,import_react.mapReadPretty)(ReadPretty$6)),{displayName:"Cascader"}),ReadPretty$5=e=>e.value?(0,import_jsx_runtime.jsx)(import_icons.CheckOutlined,{style:{color:"#52c41a"}}):e.showUnchecked?(0,import_jsx_runtime.jsx)(import_icons.CloseOutlined,{style:{color:"#ff4d4f"}}):(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{disabled:!0}),Checkbox=(0,import_react.connect)(e=>{const t=o=>{e==null||e.onChange(o)};return(0,import_jsx_runtime.jsx)(import_antd.Checkbox,P(x({},e),{onChange:t}))},(0,import_react.mapProps)({value:"checked",onInput:"onChange"}),(0,import_react.mapReadPretty)(ReadPretty$5));Checkbox.displayName="Checkbox";Checkbox.ReadPretty=ReadPretty$5;Checkbox.ReadPretty.displayName="Checkbox.ReadPretty";Checkbox.__ANT_CHECKBOX=!0;Checkbox.Group=(0,import_react.connect)(import_antd.Checkbox.Group,(0,import_react.mapProps)({dataSource:"options"}),(0,import_react.mapReadPretty)(e=>{if(!(0,import_shared.isValid)(e.value))return null;const[t,o]=(0,import_react2.useState)([]),[r,i]=(0,import_react2.useState)(!0),n=(0,import_react.useField)(),a=useCollectionField();return(0,import_react2.useEffect)(()=>{const l=n.dataSource||(a==null?void 0:a.uiSchema.enum)||[],c=(0,import_uniq.default)(n.value?n.value:[]),u=l.filter(m=>c.includes(m.value)).map((m,d)=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:m.color,icon:m.icon,children:m.label},d));o(u),i(!1)},[n.value]),r?null:(0,import_jsx_runtime.jsx)(EllipsisWithTooltip,{ellipsis:e.ellipsis,children:t})}));Checkbox.Group.displayName="Checkbox.Group";const useCollectionField_deprecated=()=>{const e=useCollection_deprecated(),t=useRecord(),o=useAPIClient(),r=useCompile(),i=useCollectionField();if(!i)return{};const n=`${(i==null?void 0:i.collectionName)||(e==null?void 0:e.name)}.${i.name}`,a=o==null?void 0:o.resource(n,t[i.sourceKey]);return P(x({},i),{uiSchema:r(i.uiSchema),resource:a})};function useCollectionDataSource(e){const t=useCompile(),{collections:o=[]}=useCollectionManager_deprecated();return r=>{import_reactive.action.bound(i=>{const n=typeof e=="function"?i.filter(e):i;r.dataSource=n.map(a=>({label:t(a.title),value:a.name}))})(o)}}function useCollectionOptions({filter:e,isTableOid:t}){var o;const r=useCompile(),i=(0,import_react.useField)(),n=(0,import_react2.useContext)(FilterContext$3),a=useCollection_deprecated(),l=t&&(((o=n==null?void 0:n.field)==null?void 0:o.collectionName)||(n==null?void 0:n.collectionName)||a.name),c=useSelfAndChildrenCollections(l),{collections:u=[]}=useCollectionManager_deprecated(),m=i!=null&&i.dataSource?u.filter(p=>(i==null?void 0:i.dataSource.find(h=>h.value===p.name))||(i==null?void 0:i.dataSource.includes(p.name))):u,d=typeof e=="function"?(c||m).filter(e):c||m;return(0,import_react2.useMemo)(()=>d.filter(p=>!p.hidden).map(p=>{var h;return{label:r(p.title||p.label),value:p.name||p.value,color:(h=p.category)==null?void 0:h.color}}),[d])}const CollectionSelect=(0,import_react.connect)(e=>{const t=e,o=W(t,["filter"]),r=useCollectionOptions(e),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react2.useCallback)((a,l)=>{var c,u;return((c=l==null?void 0:l.label.toLowerCase())!=null?c:"").includes(a.toLocaleLowerCase())||((u=l==null?void 0:l.value.toString().toLowerCase())!=null?u:"").includes(a.toLocaleLowerCase())},[]);return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":"select-collection",placeholder:i("Select collection"),popupMatchSelectWidth:!1},o),{showSearch:!0,filterOption:n,options:r}))},(0,import_react.mapReadPretty)((0,import_react.observer)(e=>{const{mode:t}=e,o=useCompile(),r=useCollectionOptions(e).filter(i=>{var n;return t==="multiple"?((n=e.value)!=null?n:[]).includes(i.value):e.value===i.value});return(0,import_jsx_runtime.jsx)("div",{children:r.map(i=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:i.color,children:o(i.label)},i.value))})},{displayName:"CollectionSelectObserver"})));function useDataSourceOptions({filter:e}){const t=useCompile(),o=useDataSourceManager().getDataSources();return(0,import_react2.useMemo)(()=>(typeof e=="function"?o.filter(e):o).map(r=>({label:t(r.displayName),value:r.key})),[o,e])}const DataSourceSelect=(0,import_react.connect)(e=>{const t=e,o=W(t,["filter"]),r=useDataSourceOptions(e),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react2.useCallback)((a,l)=>{var c,u;return((c=l==null?void 0:l.label.toLowerCase())!=null?c:"").includes(a.toLocaleLowerCase())||((u=l==null?void 0:l.value.toString().toLowerCase())!=null?u:"").includes(a.toLocaleLowerCase())},[]);return(0,import_jsx_runtime.jsx)(import_antd.Select,P(x({role:"button","data-testid":"select-datasource",placeholder:i("Select data source"),popupMatchSelectWidth:!1},o),{showSearch:!0,filterOption:n,options:r}))}),DataSourceCollectionCascaderReadPretty=(0,import_react.observer)(e=>{const t=useDataSourceManager(),o=useCompile(),r=e,{value:i,onChange:n,dataSourceFilter:a,collectionFilter:l}=r;W(r,["value","onChange","dataSourceFilter","collectionFilter"]);const[c,u]=parseCollectionName(i),m=[c,u].filter(Boolean),d=t.getDataSources(),p=(0,import_react2.useMemo)(()=>(a?d.filter(a):d).map(g=>({label:o(g.displayName),value:g.key,children:g.collectionManager.collectionInstancesArr.filter(l??(_=>!_.hidden)).map(_=>({label:o(_.title),value:_.name}))})),[d,a,l]),h=((g,_)=>{const f=[];let v=_;return g.forEach(b=>{const S=v.find(C=>C.value===b);S&&(f.push(S.label),S.children?v=S.children:v=[])}),f})(m,p);return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Tag,{children:h.join(" / ")})})}),DataSourceCollectionCascader=(0,import_react.connect)(e=>{const t=useDataSourceManager(),o=useCompile(),r=e,{value:i,onChange:n,dataSourceFilter:a,collectionFilter:l}=r,c=W(r,["value","onChange","dataSourceFilter","collectionFilter"]),[u,m]=parseCollectionName(i),d=[u,m].filter(Boolean),p=t.getDataSources(),h=(0,import_react2.useMemo)(()=>(a?p.filter(a):p).map(_=>({label:o(_.displayName),value:_.key,children:_.collectionManager.collectionInstancesArr.filter(l??(f=>!f.hidden)).map(f=>({label:o(f.title),value:f.name}))})),[p,a,l]),g=(0,import_react2.useCallback)(_=>{if(!_)return n(_);n(_[0]==="main"?_[1]:_.join(":"))},[n]);return(0,import_jsx_runtime.jsx)(import_antd.Cascader,P(x({showSearch:!0},c),{options:h,value:d,onChange:g}))},(0,import_react.mapReadPretty)(DataSourceCollectionCascaderReadPretty)),ColorPicker=(0,import_react.connect)(e=>{const t=e,{value:o,onChange:r}=t,i=W(t,["value","onChange"]);return(0,import_jsx_runtime.jsx)("div",{role:"button","aria-label":"color-picker-normal",style:{display:"inline-block"},children:(0,import_jsx_runtime.jsx)(import_antd.ColorPicker,P(x({value:o,trigger:"hover"},i),{destroyTooltipOnHide:!0,presets:[{label:"Recommended",colors:["#8BBB11","#52C41A","#13A8A8","#1677FF","#F5222D","#FADB14","#FA8C164D","#FADB144D","#52C41A4D","#1677FF4D","#2F54EB4D","#722ED14D","#EB2F964D"]}],onChange:n=>r(n.toHexString())}))})},(0,import_react.mapProps)((e,t)=>x({},e)),(0,import_react.mapReadPretty)(e=>{const t=(0,import_builtins.usePrefixCls)("description-color-picker",e);return(0,import_jsx_runtime.jsx)("div",{role:"button","aria-label":"color-picker-read-pretty",className:(0,import_classnames.default)(t,import_css.css`
|
|
1150
1150
|
display: inline-flex;
|
|
1151
1151
|
.ant-color-picker-trigger-disabled {
|
|
1152
1152
|
cursor: default;
|
|
@@ -1488,7 +1488,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
|
|
|
1488
1488
|
const targetValue = field.query('.min').value();
|
|
1489
1489
|
field.selfErrors =
|
|
1490
1490
|
!!targetValue && !!field.value && targetValue > field.value ? '${i18n.t("Max length must greater than min length")}' : ''
|
|
1491
|
-
}}}`},min:{type:"number",title:'{{ t("Min length") }}',minimum:0,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{precision:0},"x-reactions":{dependencies:[".max"],fulfill:{state:{selfErrors:`{{!!$deps[0] && !!$self.value && $deps[0] < $self.value ? '${i18n.t("Min length must less than max length")}' : ''}}`}}}}})),A(this,"filterable",{operators:string})}schemaInitialize(t,{block:o}){["Table","Kanban"].includes(o)&&(t["x-component-props"]=t["x-component-props"]||{},t["x-component-props"].ellipsis=!0)}}class TimeFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","time"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",4),A(this,"title",'{{t("Time")}}'),A(this,"sortable",!0),A(this,"default",{type:"time",uiSchema:{type:"string","x-component":"TimePicker"}}),A(this,"availableTypes",["time"]),A(this,"hasDefaultValue",!0),A(this,"properties",x(x({},defaultProps),timeProps)),A(this,"filterable",{operators:time}),A(this,"titleUsable",!0)}}class UpdatedAtFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","updatedAt"),A(this,"type","object"),A(this,"group","systemInfo"),A(this,"order",2),A(this,"title",'{{t("Last updated at")}}'),A(this,"sortable",!0),A(this,"default",{type:"date",field:"updatedAt",uiSchema:{type:"datetime",title:'{{t("Last updated at")}}',"x-component":"DatePicker","x-component-props":{},"x-read-pretty":!0}}),A(this,"description",'{{t("Store the last update time of each record")}}'),A(this,"availableTypes",[]),A(this,"properties",x(x({},defaultProps),dateTimeProps)),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class UpdatedByFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","updatedBy"),A(this,"type","object"),A(this,"group","systemInfo"),A(this,"order",4),A(this,"title",'{{t("Last updated by")}}'),A(this,"isAssociation",!0),A(this,"default",{type:"belongsTo",target:"users",foreignKey:"updatedById",uiSchema:{type:"object",title:'{{t("Last updated by")}}',"x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"nickname"}},"x-read-pretty":!0}}),A(this,"availableTypes",["belongsTo"]),A(this,"properties",x({},defaultProps)),A(this,"filterable",{nested:!0,children:[]}),A(this,"description",'{{t("Store the last update user of each record")}}')}schemaInitialize(t,{block:o}){t.properties={viewer:(0,import_lodash.cloneDeep)(recordPickerViewer)},["Table","Kanban"].includes(o)&&(t["x-component-props"]=t["x-component-props"]||{},t["x-component-props"].ellipsis=!0)}}class UrlFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","url"),A(this,"type","string"),A(this,"group","basic"),A(this,"order",5),A(this,"title",'{{t("URL")}}'),A(this,"default",{type:"text",uiSchema:{type:"string","x-component":"Input.URL"}}),A(this,"componentOptions",[{label:"URL",value:"Input.URL"},{label:"Preview",value:"Input.Preview"}]),A(this,"availableTypes",["string","text"]),A(this,"properties",x({},defaultProps)),A(this,"titleUsable",!0),A(this,"filterable",{operators:string})}schemaInitialize(t,{block:o}){}}class UUIDFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","uuid"),A(this,"type","object"),A(this,"group","advanced"),A(this,"order",0),A(this,"title",'{{t("UUID")}}'),A(this,"hidden",!1),A(this,"sortable",!0),A(this,"default",{type:"uuid",uiSchema:{type:"string","x-component":"Input","x-validator":"uuid"}}),A(this,"availableTypes",["uid","uuid"]),A(this,"properties",{"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-decorator":"FormItem","x-component":"Input","x-disabled":"{{ !createOnly }}",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"},autoFill,layout:{type:"void",title:'{{t("Index")}}',"x-component":"Space","x-decorator":"FormItem","x-decorator-props":{style:{marginBottom:"0px"}},properties:{primaryKey,unique}}}),A(this,"filterable",{operators:string}),A(this,"titleUsable",!0)}}class NanoidFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","nanoid"),A(this,"type","object"),A(this,"group","advanced"),A(this,"order",0),A(this,"title",'{{t("Nano ID")}}'),A(this,"hidden",!1),A(this,"sortable",!0),A(this,"default",{type:"nanoid",uiSchema:{type:"string","x-component":"NanoIDInput"}}),A(this,"availableTypes",["nanoid"]),A(this,"properties",{"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-decorator":"FormItem","x-component":"Input","x-disabled":"{{ !createOnly }}",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"},customAlphabet:{type:"string",title:'{{t("Alphabet")}}',default:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","x-decorator":"FormItem","x-component":"Input"},size:{type:"number",title:'{{t("Length")}}',default:21,"x-decorator":"FormItem","x-component":"InputNumber"},autoFill,layout:{type:"void",title:'{{t("Index")}}',"x-component":"Space","x-decorator":"FormItem","x-decorator-props":{style:{marginBottom:"0px"}},properties:{primaryKey,unique}}}),A(this,"filterable",{operators:string}),A(this,"titleUsable",!0)}}class UnixTimestampFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","unixTimestamp"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",4),A(this,"title",'{{t("Unix Timestamp")}}'),A(this,"sortable",!0),A(this,"default",{type:"unixTimestamp",accuracy:"second",timezone:!0,defaultToCurrentTime:!1,onUpdateToCurrentTime:!1,uiSchema:{type:"number","x-component":"UnixTimestamp","x-component-props":{showTime:!0}}}),A(this,"availableTypes",["unixTimestamp"]),A(this,"hasDefaultValue",!1),A(this,"properties",P(x(x({},defaultProps),dateTimeProps),{accuracy:{type:"string",title:'{{t("Accuracy")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:"second",enum:[{value:"millisecond",label:'{{t("Millisecond")}}'},{value:"second",label:'{{t("Second")}}'}]},defaultToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Default value to current time")}}'},onUpdateToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Automatically update timestamp on update")}}'}})),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class DateFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","date"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",3),A(this,"title",'{{t("DateOnly")}}'),A(this,"sortable",!0),A(this,"default",{type:"dateOnly",uiSchema:{type:"string","x-component":"DatePicker","x-component-props":{dateOnly:!0}}}),A(this,"availableTypes",["dateOnly"]),A(this,"hasDefaultValue",!0),A(this,"properties",P(x(x({},defaultProps),dateTimeProps),{"uiSchema.x-component-props.showTime":{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-visible":!1}})),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class DatetimeNoTzFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","datetimeNoTz"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",2),A(this,"title",'{{t("Datetime (without time zone)")}}'),A(this,"sortable",!0),A(this,"default",{type:"datetimeNoTz",defaultToCurrentTime:!1,onUpdateToCurrentTime:!1,timezone:!1,uiSchema:{type:"string","x-component":"DatePicker","x-component-props":{showTime:!1,utc:!1}}}),A(this,"availableTypes",["string","datetimeNoTz"]),A(this,"hasDefaultValue",!0),A(this,"properties",P(x(x({},defaultProps),dateTimeProps),{defaultToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Default value to current server time")}}'},onUpdateToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Automatically update timestamp to the current server time on update")}}'},"uiSchema.x-component-props.gmt":{type:"boolean",title:'{{t("GMT")}}',"x-hidden":!0,"x-component":"Checkbox","x-content":'{{t("Use the same time zone (GMT) for all users")}}',"x-decorator":"FormItem",default:!1}})),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class InheritanceCollectionMixin extends Collection{constructor(){super(...arguments),A(this,"parentCollectionsName"),A(this,"parentCollections"),A(this,"childrenCollections",{}),A(this,"childrenCollectionsName",{}),A(this,"inheritsFields"),A(this,"currentFields"),A(this,"allFields"),A(this,"parentCollectionFields",{}),A(this,"allCollectionsInheritChain"),A(this,"inheritCollectionsChain"),A(this,"inheritChain"),A(this,"foreignKeyFields")}getParentCollectionsName(){if(this.parentCollectionsName)return this.parentCollectionsName.slice();const t=[],o=r=>{const i=this.collectionManager.getCollection(r);if(i){const{inherits:n}=i;if(n)for(let a=0;a<n.length;a++){const l=n[a];t.push(l),o(l)}}return(0,import_lodash.uniq)(t)};return this.parentCollectionsName=o(this.name),this.parentCollectionsName}getParentCollections(){return this.parentCollections?this.parentCollections.slice():(this.parentCollections=this.getParentCollectionsName().map(t=>this.collectionManager.getCollection(t)),this.parentCollections)}getChildrenCollectionsName(t=!1){const o=t?"supportView":"notSupportView";if(this.childrenCollectionsName[o])return this.childrenCollectionsName[o].slice();const r=[],i=this.collectionManager.getCollections(),n=a=>(i.filter(l=>{var c;return(c=l.inherits)==null?void 0:c.includes(a)}).forEach(l=>{const c=l.name;return r.push(c),n(c)}),t&&i.filter(l=>{var c;return((c=l.sources)==null?void 0:c.length)===1&&(l==null?void 0:l.sources[0])===a}).forEach(l=>{const c=l.name;return r.push(l.name),n(c)}),(0,import_lodash.uniq)(r));return this.childrenCollectionsName[o]=n(this.name),this.childrenCollectionsName[o]}getChildrenCollections(t=!1){const o=t?"supportView":"notSupportView";return this.childrenCollections[o]?this.childrenCollections[o].slice():(this.childrenCollections[o]=this.getChildrenCollectionsName(t).map(r=>this.collectionManager.getCollection(r)),this.childrenCollections[o])}getInheritedFields(){if(this.inheritsFields)return this.inheritsFields.slice();const t=this.getParentCollectionsName();return this.inheritsFields=t.map(o=>{var r;return(r=this.collectionManager.getCollection(o))==null?void 0:r.getFields()}).flat().filter(Boolean),this.inheritsFields}getFieldsMap(){return this.fieldsMap?this.fieldsMap:(this.fieldsMap=this.getAllFields().reduce((t,o)=>(t[o.name]=o,t),{}),this.fieldsMap)}getCurrentFields(t){return super.getFields(t)}getParentCollectionFields(t){if(this.parentCollectionFields||(this.parentCollectionFields={}),this.parentCollectionFields[t])return this.parentCollectionFields[t];const o=this.getCurrentFields(),r=this.getParentCollectionsName(),i=this.collectionManager.getCollection(t).getCurrentFields(),n=r.indexOf(t);let a=o;return n>0&&(r.splice(n),r.forEach(l=>{const c=this.collectionManager.getCollection(l);a=a.concat(c.getCurrentFields())})),this.parentCollectionFields[t]=i.filter(l=>a.find(c=>c.name===l.name).collectionName!==this.name),this.parentCollectionFields[t]}getAllCollectionsInheritChain(){if(this.allCollectionsInheritChain)return this.allCollectionsInheritChain.slice();const t=[this.name],o=r=>{const i=this.collectionManager.getCollection(r);if(i){const{inherits:n}=i,a=i.getChildrenCollectionsName();if(n)for(let l=0;l<n.length;l++){const c=n[l];t.includes(c)||(t.push(c),o(c))}if(a)for(let l=0;l<a.length;l++){const c=this.collectionManager.getCollection(a[l]).name;t.includes(c)||(t.push(c),o(c))}}return t};return this.allCollectionsInheritChain=o(this.name),this.allCollectionsInheritChain||[]}getInheritCollectionsChain(){if(this.inheritCollectionsChain)return this.inheritCollectionsChain.slice();const t=[this.name],o=r=>{const i=this.collectionManager.getCollection(r);if(i){const{inherits:n}=i;if(n)for(let a=0;a<n.length;a++){const l=n[a];t.includes(l)||(t.push(l),o(l))}}return t};return this.inheritCollectionsChain=o(this.name),this.inheritCollectionsChain}getInheritChain(){if(this.inheritChain)return this.inheritChain.slice();const t=this.getInheritCollectionsChain(),o=this.getChildrenCollectionsName(),r=[...t],i=n=>{for(const a of n)if(!r.includes(a)){r.push(a);const l=this.collectionManager.getCollection(a);if(l){const c=l.getChildrenCollectionsName();i(c)}}};return i(o),this.inheritChain=r,this.inheritChain}getAllFields(t){if(this.allFields)return this.allFields.slice();const o=this.getCurrentFields(),r=this.getInheritedFields(),i=(0,import_lodash.unionBy)((o==null?void 0:o.concat(r))||[],"name");return this.allFields=i,t?(0,import_lodash.filter)(i,t):i}getForeignKeyFields(){if(this.foreignKeyFields)return this.foreignKeyFields.slice();const t=this.getCurrentFields(),o=this.getInheritedFields();return(0,import_lodash.unionBy)((t==null?void 0:t.concat(o))||[],"name")}}class GeneralCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","general"),A(this,"title",'{{t("General collection")}}'),A(this,"order",1),A(this,"color","blue"),A(this,"default",{fields:[]}),A(this,"configurableProperties",getConfigurableProperties("title","name","inherits","category","description","simplePaginate","presetFields"))}}class TreeCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","tree"),A(this,"title",'{{t("Tree collection")}}'),A(this,"order",3),A(this,"color","blue"),A(this,"default",{tree:"adjacencyList",fields:[{interface:"integer",name:"parentId",type:"bigInt",isForeignKey:!0,uiSchema:{type:"number",title:'{{t("Parent ID")}}',"x-component":"InputNumber","x-read-pretty":!0}},{interface:"m2o",type:"belongsTo",name:"parent",foreignKey:"parentId",treeParent:!0,onDelete:"CASCADE",uiSchema:{title:'{{t("Parent")}}',"x-component":"AssociationField","x-component-props":{multiple:!1,fieldNames:{label:"id",value:"id"}}}},{interface:"o2m",type:"hasMany",name:"children",foreignKey:"parentId",treeChildren:!0,onDelete:"CASCADE",uiSchema:{title:'{{t("Children")}}',"x-component":"AssociationField","x-component-props":{multiple:!0,fieldNames:{label:"id",value:"id"}}}}]}),A(this,"presetFieldsDisabledIncludes",["id"]),A(this,"events",{beforeSubmit(t){Array.isArray(t==null?void 0:t.fields)&&(t==null||t.fields.map(o=>{!o.target&&["belongsToMany","belongsTo","hasMany","hasOne"].includes(o.type)&&(o.target=t.name)}))}}),A(this,"configurableProperties",getConfigurableProperties("title","name","inherits","category","description","presetFields"))}}class ViewCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","view"),A(this,"title",'{{t("Connect to database view")}}'),A(this,"order",4),A(this,"color","yellow"),A(this,"default",{fields:[]}),A(this,"divider",!0),A(this,"configurableProperties",x({title:{type:"string",title:'{{ t("Collection display name") }}',required:!0,"x-decorator":"FormItem","x-component":"Input"},databaseView:{title:'{{t("Connect to database view")}}',type:"single",required:!0,"x-decorator":"FormItem","x-component":"Select","x-reactions":["{{useAsyncDataSource(loadDBViews)}}"],"x-disabled":"{{ !createOnly }}","x-visible":"{{!createMainOnly}}"},name:{type:"string",title:'{{t("Collection 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.')}}","x-reactions":{dependencies:["databaseView"],when:"{{isPG}}",fulfill:{state:{initialValue:"{{$deps[0]&&$deps[0].match(/^([^_]+)_(.*)$/)?.[2]}}"}},otherwise:{state:{value:null}}}},schema:{type:"string","x-hidden":!0,"x-reactions":{dependencies:["databaseView"],when:"{{isPG}}",fulfill:{state:{value:"{{$deps[0].split('@')?.[0]}}"}},otherwise:{state:{value:null}}}},viewName:{type:"string","x-hidden":!0,"x-reactions":{dependencies:["databaseView"],when:"{{isPG}}",fulfill:{state:{value:"{{$deps[0].split('@')?.[1]}}"}},otherwise:{state:{value:"{{$deps[0]}}"}}}},writableView:{type:"boolean","x-content":'{{t("Allow add new, update and delete actions")}}',"x-decorator":"FormItem","x-component":"Checkbox",default:!1,"x-visible":"{{!createMainOnly}}"},sources:{type:"array",title:'{{ t("Source collections") }}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadCollections)}}"],"x-disabled":!0,"x-visible":"{{!createMainOnly}}"},fields:{type:"array","x-component":PreviewFields,"x-hidden":"{{ !createOnly }}","x-decorator":"FormItem","x-reactions":{dependencies:["name"],fulfill:{schema:{"x-component-props":"{{$form.values}}"}}},description:'{{t("Fields can only be used correctly if they are defined with an interface.")}}'},preview:{type:"void","x-visible":"{{ createOnly }}","x-component":PreviewTable$1,"x-reactions":{dependencies:["name","fields"],fulfill:{schema:{"x-component-props":"{{$form.values}}"}}}},filterTargetKey:{title:'{{ t("Record unique key")}}',type:"single",description:'{{t( "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]}},getConfigurableProperties("category","description")))}}class SqlCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","sql"),A(this,"title",'{{t("SQL collection")}}'),A(this,"order",4),A(this,"color","yellow"),A(this,"default",{fields:[]}),A(this,"configurableProperties",x({title:{type:"string",title:'{{ t("Collection display name") }}',required:!0,"x-decorator":"FormItem","x-component":"Input"},name:{type:"string",title:'{{t("Collection 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.')}}"},config:{type:"void","x-decorator":SQLRequestProvider,properties:{sql:{type:"string",title:'{{t("SQL")}}',"x-decorator":"FormItem","x-component":SQLInput,required:!0,"x-validator":(t,o,{form:r})=>r.query("sql").take().componentProps.disabled?"":i18n.t("Please confirm the SQL statement first")},sources:{type:"array",title:'{{t("Source collections")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadCollections)}}"]},fields:{type:"array",title:'{{t("Fields")}}',"x-decorator":"FormItem","x-component":FieldsConfigure,required:!0},table:{type:"void",title:'{{t("Preview")}}',"x-decorator":"FormItem","x-component":PreviewTable}}},filterTargetKey:{title:'{{ t("Record unique key")}}',type:"single",description:'{{t( "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]}},getConfigurableProperties("category","description")))}}class MainDataSource extends DataSource{getDataSource(){return z(this,null,function*(){var t;const o=yield this.app.apiClient.request({resource:"collections",action:"listMeta"});return{collections:((t=o==null?void 0:o.data)==null?void 0:t.data)||[]}})}}class CollectionPlugin extends Plugin{load(){return z(this,null,function*(){this.dataSourceManager.addCollectionMixins([InheritanceCollectionMixin]),this.addFieldInterfaces(),this.addCollectionTemplates(),this.addFieldInterfaces(),this.addFieldInterfaceGroups(),this.addMainDataSource()})}addMainDataSource(){var t,o;((o=(t=this.options)==null?void 0:t.config)==null?void 0:o.enableRemoteDataSource)!==!1&&this.dataSourceManager.addDataSource(MainDataSource,{key:DEFAULT_DATA_SOURCE_KEY,displayName:DEFAULT_DATA_SOURCE_TITLE})}addFieldInterfaceGroups(){this.dataSourceManager.addFieldInterfaceGroups({basic:{label:'{{t("Basic")}}'},choices:{label:'{{t("Choices")}}'},media:{label:'{{t("Media")}}'},datetime:{label:'{{t("Date & Time")}}'},relation:{label:'{{t("Relation")}}'},advanced:{label:'{{t("Advanced type")}}'},systemInfo:{label:'{{t("System info")}}'},others:{label:'{{t("Others")}}'}})}addFieldInterfaces(){this.dataSourceManager.addFieldInterfaces([CheckboxFieldInterface,CheckboxGroupFieldInterface,CollectionSelectFieldInterface,ColorFieldInterface,CreatedAtFieldInterface,CreatedByFieldInterface,DatetimeFieldInterface,EmailFieldInterface,IconFieldInterface,IdFieldInterface,InputFieldInterface,IntegerFieldInterface,JsonFieldInterface,LinkToFieldInterface,M2MFieldInterface,M2OFieldInterface,MarkdownFieldInterface,MultipleSelectFieldInterface,NumberFieldInterface,O2MFieldInterface,O2OFieldInterface,OHOFieldInterface,OBOFieldInterface,PasswordFieldInterface,PercentFieldInterface,PhoneFieldInterface,RadioGroupFieldInterface,RichTextFieldInterface,SelectFieldInterface,SubTableFieldInterface,TableoidFieldInterface,TextareaFieldInterface,TimeFieldInterface,UpdatedAtFieldInterface,UpdatedByFieldInterface,UrlFieldInterface,UUIDFieldInterface,NanoidFieldInterface,UnixTimestampFieldInterface,DateFieldInterface,DatetimeNoTzFieldInterface])}addCollectionTemplates(){this.dataSourceManager.addCollectionTemplates([GeneralCollectionTemplate,SqlCollectionTemplate,TreeCollectionTemplate,ViewCollectionTemplate])}}function parseCollectionName(e){var t;if(!e)return[];const o=e.split(":"),r=o.pop();return[(t=o[0])!=null?t:"main",r]}function joinCollectionName(e,t){return!e||e==="main"?t:`${e}:${t}`}const useSourceId=()=>{const{sourceId:e,association:t}=useDataBlockProps()||{},o=useSourceKey(t),r=useDataBlockParentRecord({association:t});return e||(r==null?void 0:r[o])},BlockResourceContext=(0,import_react2.createContext)(null);BlockResourceContext.displayName="BlockResourceContext";const BlockAssociationContext=(0,import_react2.createContext)(null);BlockAssociationContext.displayName="BlockAssociationContext";const BlockRequestContext_deprecated=(0,import_react2.createContext)({});BlockRequestContext_deprecated.displayName="BlockRequestContext_deprecated";const useBlockResource=()=>{const e=useDataBlockResource();return(0,import_react2.useContext)(BlockResourceContext)||e},MaybeCollectionProvider=e=>{const{collection:t}=e;return t?(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:t,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:e.children})}):e.children},BlockRequestProvider_deprecated=e=>{const t=(0,import_react.useField)(),o=useDataBlockResource(),r=useDataBlockRequest(),i=useCollectionRecord(),n=useCollectionParentRecord(),a=useBlockRequestContext(),l=(0,import_react2.useMemo)(()=>({block:e.block,props:e,field:t,service:r,resource:o,__parent:a,updateAssociationValues:(e==null?void 0:e.updateAssociationValues)||[]}),[a,t,e,o,r]);return(0,import_jsx_runtime.jsx)(BlockRequestContext_deprecated.Provider,{value:l,children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:i==null?void 0:i.isNew,record:i==null?void 0:i.data,parent:n==null?void 0:n.data,children:e.children})})},useBlockRequestContext=()=>(0,import_react2.useContext)(BlockRequestContext_deprecated),RenderChildrenWithAssociationFilter=e=>{var t;const o=(0,import_react.useFieldSchema)(),{findComponent:r}=useDesignable(),i=(0,import_react.useField)(),n=r((t=i.component)==null?void 0:t[0])||import_react2.default.Fragment;return o.reduceProperties((a,l)=>l["x-component"]==="AssociationFilter"?l:a,null)?(0,import_jsx_runtime.jsx)(n,P(x({},i.componentProps),{children:(0,import_jsx_runtime.jsxs)(import_antd.Row,{style:{height:"100%"},gutter:16,wrap:!1,children:[(0,import_jsx_runtime.jsx)(import_antd.Col,{style:x({width:200,flex:"0 0 auto"},e.associationFilterStyle||{}),children:(0,import_jsx_runtime.jsx)(import_react.RecursionField,{schema:o,onlyRenderProperties:!0,filterProperties:a=>a["x-component"]==="AssociationFilter"})}),(0,import_jsx_runtime.jsx)(import_antd.Col,{style:{flex:"1 1 auto",minWidth:0},children:(0,import_jsx_runtime.jsx)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:(0,import_jsx_runtime.jsx)(import_react.RecursionField,{schema:o,onlyRenderProperties:!0,filterProperties:a=>a["x-component"]!=="AssociationFilter"})})})]})})):e.children},BlockContext=(0,import_react2.createContext)(null);BlockContext.displayName="BlockContext";const useBlockContext=()=>(0,import_react2.useContext)(BlockContext),useCompatDataBlockParentRecord=e=>(0,import_react.useFieldSchema)()["x-use-decorator-props"]?e.parentRecord:useDataBlockParentRecord(e),BlockProvider=e=>{const{name:t,dataSource:o,useParams:r,parentRecord:i}=e,n=useCompatDataBlockParentRecord(e),a=useRefreshComponent(),l=(0,import_ahooks.useUpdate)(),c=(0,import_react2.useCallback)(()=>{l(),a==null||a()},[l,a]),u=r==null?void 0:r(),{getAssociationAppends:m}=useAssociationNames(o),{appends:d,updateAssociationValues:p}=m(),h=(0,import_react2.useMemo)(()=>{var _;return(_=e.params)!=null&&_.appends?x(x({},e.params),u):x(P(x({},e.params),{appends:d}),u)},[d,u,e.params]),g=(0,import_react2.useMemo)(()=>({name:t}),[t]);return(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:g,children:(0,import_jsx_runtime.jsx)(DataBlockProvider,P(x({},e),{params:h,parentRecord:i||n,children:(0,import_jsx_runtime.jsx)(BlockRequestProvider_deprecated,P(x({},e),{updateAssociationValues:p,params:h,children:(0,import_jsx_runtime.jsx)(RefreshComponentProvider,{refresh:c,children:e.children})}))}))})},useBlockAssociationContext=()=>{const{association:e}=useDataBlockProps();return(0,import_react2.useContext)(BlockAssociationContext)||e},useFilterByTk=e=>{const{resource:t,__parent:o}=useBlockRequestContext(),r=useRecordIndex(),i=useCollectionRecordData(),n=useCollection_deprecated(),a=useBlockAssociationContext(),l=(e==null?void 0:e.association)||a,c=(0,import_react2.useContext)(WithoutTableFieldResource),u=useCollectionManager();if(!c&&(t instanceof TableFieldResource||(o==null?void 0:o.block)==="TableField"))return r;if(l){const m=u.getCollectionField(l);return i==null?void 0:i[m.targetKey||m.sourceKey||"id"]}if((0,import_lodash.isArray)(n.filterTargetKey)){const m={};for(const d of n.filterTargetKey)m[d]=i==null?void 0:i[d];return m}else return i==null?void 0:i[n.filterTargetKey||"id"]},useSourceIdFromRecord=()=>{const e=useRecord(),{getCollectionField:t}=useCollectionManager_deprecated(),o=useBlockAssociationContext();if(o){const r=t(o);return e==null?void 0:e[r.sourceKey||"id"]}},useSourceIdFromParentRecord=()=>useSourceId(),useParamsFromRecord=e=>{var t,o;const r=useFilterByTk(e),i=useRecord(),{fields:n}=useCollection_deprecated(),a=(0,import_react.useFieldSchema)(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=l(((t=a==null?void 0:a["x-decorator-props"])==null?void 0:t.resource)||((o=a==null?void 0:a["x-decorator-props"])==null?void 0:o.association)),u=n.filter(p=>["boolean","date","integer","radio","sort","string","time","uid","uuid"].includes(p.type)).map(p=>p.name),m=Object.keys(i).filter(p=>u.includes(p)).reduce((p,h)=>(p[h]=i[h],p),{}),d={filterByTk:r};return i.__collection&&c&&!["oho","m2o","obo"].includes(c.interface)&&(d.targetCollection=i.__collection),!r&&Object.keys(m).length>0&&(d.filter=m),d},RecordLink=e=>{const t=(0,import_react.useField)(),o=useRecord(),r=e,{title:i,to:n}=r,a=W(r,["title","to"]),l=(0,import_template.default)(n||"");return(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,P(x({},a),{to:l({record:o||{}}),children:t.title}))},ACLContext=(0,import_react2.createContext)({});ACLContext.displayName="ACLContext";const ACLProvider=e=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:{ACLCollectionFieldProvider,ACLActionProvider,ACLMenuItemProvider,ACLCollectionProvider},children:e.children}),ACLRolesCheckProvider=e=>{const{setDesignable:t}=useDesignable(),{render:o}=useAppSpin(),r=useAPIClient(),i=useApp(),n=useRequest({url:"roles:check"},{manual:!r.auth.token,onSuccess(a){var l,c,u,m;(l=a==null?void 0:a.data)!=null&&l.snippets.includes("ui.*")||t(!1),((c=a==null?void 0:a.data)==null?void 0:c.role)!==r.auth.role&&r.auth.setRole((u=a==null?void 0:a.data)==null?void 0:u.role),i.pluginSettingsManager.setAclSnippets(((m=a==null?void 0:a.data)==null?void 0:m.snippets)||[])}});return n.loading?o():(0,import_jsx_runtime.jsx)(ACLContext.Provider,{value:n,children:e.children})},useRoleRecheck=()=>{const e=(0,import_react2.useContext)(ACLContext),{allowAll:t}=useACLRoleContext();return()=>{t||e.refresh()}},useCurrentRoleMode=()=>{var e,t;const o=(0,import_react2.useContext)(ACLContext);return(t=(e=o==null?void 0:o.data)==null?void 0:e.data)==null?void 0:t.roleMode},useACLContext=()=>(0,import_react2.useContext)(ACLContext),ACLActionParamsContext=(0,import_react2.createContext)({});ACLActionParamsContext.displayName="ACLActionParamsContext";const ACLCustomContext=(0,import_react2.createContext)({});ACLCustomContext.displayName="ACLCustomContext";const useACLCustomContext=()=>(0,import_react2.useContext)(ACLCustomContext),useACLRolesCheck=()=>{var e,t,o;const r=(0,import_react2.useContext)(ACLContext),i=useDataSourceKey(),{dataSources:n}=((e=r==null?void 0:r.data)==null?void 0:e.meta)||{},a=x(x({},(t=r==null?void 0:r.data)==null?void 0:t.data),(0,import_lodash.omit)(n==null?void 0:n[i],"snippets")),l=(0,import_react2.useCallback)(c=>{var u;const m=c.split(":").pop();return((u=a==null?void 0:a.actionAlias)==null?void 0:u[m])||m},[a==null?void 0:a.actionAlias]);return{data:a,getActionAlias:l,inResources:(0,import_react2.useCallback)(c=>{var u,m;return(m=(u=a==null?void 0:a.resources)==null?void 0:u.includes)==null?void 0:m.call(u,c)},[a==null?void 0:a.resources]),getResourceActionParams:(0,import_react2.useCallback)(c=>{var u,m;const[d]=c.split(":"),p=l(c);return((u=a==null?void 0:a.actions)==null?void 0:u[`${d}:${p}`])||((m=a==null?void 0:a.actions)==null?void 0:m[c])},[a==null?void 0:a.actions,l]),getStrategyActionParams:(0,import_react2.useCallback)(c=>{var u,m;const d=l(c);return(m=(u=a==null?void 0:a.strategy)==null?void 0:u.actions)!=null&&m.find(p=>{const[h]=p.split(":");return h===d})?{}:null},[(o=a==null?void 0:a.strategy)==null?void 0:o.actions,l])}},getIgnoreScope=(e={})=>{var t;const{schema:o,recordPkValue:r}=e;let i=!1;return e.ignoreScope&&(i=!0),o!=null&&o["x-acl-ignore-scope"]&&(i=!0),(t=o==null?void 0:o["x-acl-action-props"])!=null&&t.skipScopeCheck&&(i=!0),r||(i=!0),i},useAllowedActions=()=>{var e,t,o,r;const i=useResourceActionContext(),n=useDataBlockRequest();return((t=(e=i==null?void 0:i.data)==null?void 0:e.meta)==null?void 0:t.allowedActions)||((r=(o=n==null?void 0:n.data)==null?void 0:o.meta)==null?void 0:r.allowedActions)},useResourceName=()=>{var e;const t=useResourceActionContext(),o=useDataBlockProps();return(o==null?void 0:o.resource)||(o==null?void 0:o.association)||(o==null?void 0:o.collection)||((e=t==null?void 0:t.defaultRequest)==null?void 0:e.resource)};function useACLRoleContext(){const{data:e,getActionAlias:t,inResources:o,getResourceActionParams:r,getStrategyActionParams:i}=useACLRolesCheck(),n=useAllowedActions(),a=useCollectionManager(),l=(0,import_react2.useCallback)((c,u)=>{const m=t(c);return Array.isArray(n==null?void 0:n[m])?n[m].includes(u):null},[n,t]);return P(x({},e),{snippets:(e==null?void 0:e.snippets)||[],parseAction:(0,import_react2.useCallback)((c,u={})=>{var m;const[d,p]=(c==null?void 0:c.split(":"))||[],h=(d==null?void 0:d.includes("."))&&((m=a.getCollectionField(d))==null?void 0:m.target);if(!getIgnoreScope(u)){const g=l(p,u.recordPkValue);if(g!==null)return g?{}:null}return e!=null&&e.allowAll?{}:o(h)?r(`${h}:${p}`):o(d)?r(c):i(c)},[a,e==null?void 0:e.allowAll,r,i,o,l])})}function useUIConfigurationPermissions(){const{allowAll:e,snippets:t}=useACLRoleContext();return{allowConfigUI:e||t.includes("ui.*")}}const ACLCollectionProvider=e=>{var t,o;const{allowAll:r,parseAction:i}=useACLRoleContext(),{allowAll:n}=useACLCustomContext(),a=useApp(),l=(0,import_react.useFieldSchema)();let c=(l==null?void 0:l["x-acl-action"])||e.actionPath;const u=((t=l==null?void 0:l["x-decorator-props"])==null?void 0:t.association)||((o=l==null?void 0:l["x-decorator-props"])==null?void 0:o.collection);c==="undefined:list"&&u&&u!=="undefined"&&(c=`${u}:list`);const m=(0,import_react2.useMemo)(()=>c?i(c,{schema:l}):null,[i,c,l]);if(r||a.disableAcl||n)return e.children;if(!c)return(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:{},children:e.children});if(!m)return(0,import_jsx_runtime.jsx)(CollectionNotAllowViewPlaceholder,{});const[d,p]=c.split(":");return m.actionName=p,(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:m,children:e.children})},useACLActionParamsContext=()=>(0,import_react2.useContext)(ACLActionParamsContext),useRecordPkValue=()=>{const e=useCollection(),t=useCollectionRecordData();if(!e)return;const o=e.getPrimaryKey();return t==null?void 0:t[o]},ACLActionProvider=e=>{const t=useCollection(),o=useRecordPkValue(),r=useResourceName(),{parseAction:i,uiButtonSchemasBlacklist:n}=useACLRoleContext(),a=(0,import_react.useFieldSchema)(),l=a["x-uid"];let c=a["x-acl-action"];const u=["create","update","destroy","importXlsx","export"],m=["create","update","destroy","importXlsx","bulkDestroy","bulkUpdate"];!c&&r&&a["x-action"]&&u.includes(a["x-action"])&&(c=`${r}:${a["x-action"]}`),c&&!(c!=null&&c.includes(":"))&&(c=`${r}:${c}`);const d=(0,import_react2.useMemo)(()=>c&&i(c,{schema:a,recordPkValue:o}),[i,c,a,o]);return n!=null&&n.includes(l)?(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:!1,children:e.children}):c?r?d?m.includes(c)||m.includes(c==null?void 0:c.split(":")[1])?t&&t.template!=="view"||t!=null&&t.writableView?(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:d,children:e.children}):(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:!1,children:e.children}):(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:d,children:e.children}):(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:d,children:e.children}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children})},useACLFieldWhitelist=()=>{const e=(0,import_react2.useContext)(ACLActionParamsContext),t=(0,import_react2.useMemo)(()=>[].concat((e==null?void 0:e.whitelist)||[]).concat((e==null?void 0:e.fields)||[]).concat((e==null?void 0:e.appends)||[]),[e==null?void 0:e.whitelist,e==null?void 0:e.fields,e==null?void 0:e.appends]);return{whitelist:t,schemaInWhitelist:(0,import_react2.useCallback)((o,r)=>{if(r||t.length===0||!o||!o["x-collection-field"])return!0;const[i,n]=o["x-collection-field"].split("."),[a]=o.name.split(".");return t==null?void 0:t.includes(a||n||i)},[t])}},ACLCollectionFieldProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=(0,import_react.useField)(),{allowAll:r}=useACLRoleContext(),{whitelist:i}=useACLFieldWhitelist(),[n]=t.name.split("."),a=!t["x-acl-ignore"]&&i.length>0&&t!=null&&t["x-collection-field"]?i.includes(n):!0;return(0,import_react2.useEffect)(()=>{a||(o.required=!1,o.display="hidden")},[a,o]),r?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):t["x-collection-field"]?a?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):null:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children})},ACLMenuItemProvider=e=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}),useAdminSchemaUid=()=>"nocobase-admin-menu",useViewportMeta=()=>{const e=(0,import_react2.useRef)("initial-scale=0.1"),t=(0,import_react2.useRef)();return(0,import_react2.useEffect)(()=>{let o=document.querySelector('meta[name="viewport"]');o?e.current=o.content:(o=document.createElement("meta"),o.name="viewport"),o&&(o.content="width=device-width, initial-scale=1, user-scalable=0",t.current=o)},[]),{metaRef:t,restore:()=>{t.current&&(t.current.content=e.current)}}};function useViewport(){const{metaRef:e,restore:t}=useViewportMeta();(0,import_react2.useEffect)(()=>{if(e.current)return document.head.insertBefore(e.current,document.head.firstChild),()=>{t()}},[])}const MenuItemsContext=(0,import_react2.createContext)(null);MenuItemsContext.displayName="MenuItemsContext";const toItems=(e={})=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const r=e[o],i={title:r.title,uid:r["x-uid"]};r.properties&&(i.children=toItems(r.properties)),t.push(i)}return t},useMenuItems=()=>(0,import_react2.useContext)(MenuItemsContext),MenuItemsProvider=e=>{var t,o;const r={url:`uiSchemas:getProperties/${useAdminSchemaUid()}`},i=useRequest(r);if(i.loading)return(0,import_jsx_runtime.jsx)(import_antd.Spin,{});const n=toItems((o=(t=i.data)==null?void 0:t.data)==null?void 0:o.properties);return(0,import_jsx_runtime.jsx)(MenuItemsContext.Provider,{value:{service:i,items:n},children:e.children})},findUids=e=>{if(!Array.isArray(e))return[];const t=[];for(const o of e)t.push(o.uid),t.push(...findUids(o.children));return t},getParentUids=(e,t,o=[])=>{if(!e)return[];for(const r of e){if(o.push(r.uid),t(r))return o;if(r.children){const i=getParentUids(r.children,t,o);if(i.length)return i}o.pop()}return[]},getChildrenUids=(e=[],t=[])=>{for(const o of e)t.push(o.uid),o.children&&o.children.length&&getChildrenUids(o.children,t);return t},MenuConfigure=()=>{const e=useRecord(),t=useAPIClient(),{items:o}=useMenuItems(),{t:r}=(0,import_react_i18next.useTranslation)(),i=findUids(o),[n,a]=(0,import_react2.useState)([]),{loading:l,refresh:c}=useRequest({resource:"roles.menuUiSchemas",resourceOf:e.name,action:"list",params:{paginate:!1}},{onSuccess(h){var g;a(((g=h==null?void 0:h.data)==null?void 0:g.map(_=>_["x-uid"]))||[])}}),u=t.resource("roles.menuUiSchemas",e.name),m=i.length===n.length,d=(h,g)=>z(void 0,null,function*(){const _=getParentUids(o,v=>v.uid===g.uid),f=getChildrenUids(g==null?void 0:g.children,[]);if(h){const v=f.concat(g.uid),b=n.filter(S=>!v.includes(S));a([...b]),yield u.remove({values:v})}else{const v=f.concat(_);a(b=>(0,import_lodash.uniq)([...b,...v])),yield u.add({values:v})}import_antd.message.success(r("Saved successfully"))}),p=h=>h.map(g=>{const _=r(g.title);return g.children?P(x({},g),{title:_,children:p(g.children)}):P(x({},g),{title:_})});return(0,import_jsx_runtime.jsx)(import_antd.Table,{className:antTableCell,loading:l,rowKey:"uid",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:r("Menu item title")},{dataIndex:"accessible",title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:m,onChange:h=>z(void 0,null,function*(){m?yield u.set({values:[]}):yield u.set({values:i}),c(),import_antd.message.success(r("Saved successfully"))})})," ",r("Accessible")]}),render:(h,g)=>{const _=n.includes(g.uid);return(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:_,onChange:()=>d(_,g)})}}],dataSource:p(o)})},SettingCenterPermissionProvider=e=>{var t;const{currentRecord:o}=(0,import_react2.useContext)(PermissionContext);return(t=o==null?void 0:o.snippets)!=null&&t.includes("pm.*")?(0,import_jsx_runtime.jsx)("div",{children:e.children}):null},PermissionContext=(0,import_react2.createContext)(null);PermissionContext.displayName="PermissionContext";const PermissionProvider=e=>{const t=useAPIClient(),o=useRecord(),{t:r}=(0,import_react_i18next.useTranslation)(),{snippets:i}=o;i==null||i.forEach(l=>{o[l]=!0});const[n,a]=(0,import_react2.useState)(o);return(0,import_jsx_runtime.jsx)(PermissionContext.Provider,{value:{currentRecord:n,update:(l,c)=>z(void 0,null,function*(){const{path:u,value:m}=l.getState();if(["ui.*","pm","pm.*"].includes(u)){const d=t.resource("roles.snippets",o.name);m?yield d.add({values:[u]}):yield d.remove({values:[u]}),a(P(x(x({},n),c.values),{[u]:m}))}else yield t.resource("roles").update({filterByTk:o.name,values:c.values}),a(x(x({},n),c.values));import_antd.message.success(r("Saved successfully"))})},children:e.children})},SnippetCheckboxGroup=(0,import_react.connect)(e=>{const{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(import_antd.Checkbox.Group,{style:{width:"100%",display:"block"},value:e.value,onChange:o=>{const r=["ui.*","pm","pm.*","app"],i=r.map(a=>`!${a}`),n=(0,import_uniq.default)([...e.value||[],...o]).filter(a=>a&&!i.includes(a)).map(a=>!r.includes(a)||o!=null&&o.includes(a)?a:`!${a}`);for(const a of r)!n.includes(a)&&!n.includes(`!${a}`)&&n.push(`!${a}`);e.onChange(n)},children:[(0,import_jsx_runtime.jsx)("div",{style:{marginTop:16},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"ui.*",children:t("Allows to configure interface")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:8},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"pm",children:t("Allows to install, activate, disable plugins")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:8},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"pm.*",children:t("Allows to configure plugins")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:8},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"app",children:t("Allows to clear cache, reboot application")})})]})}),RoleConfigure=()=>{const{update:e,currentRecord:t}=(0,import_react2.useContext)(PermissionContext),{t:o}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(SchemaComponent,{components:{SnippetCheckboxGroup},schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:r=>{const i=useAPIClient();return useRequest(()=>i.resource("roles").get({filterByTk:t.name}).then(n=>{var a,l;const c=(a=n==null?void 0:n.data)==null?void 0:a.data;return(l=c.snippets)==null||l.forEach(u=>{c[u]=!0}),{data:c}}),r)},effects(){(0,import_core.onFieldChange)("*",(r,i)=>z(this,null,function*(){i.modified&&(yield e(r,i))}))}},properties:{snippets:{title:o("Configure permissions"),type:"boolean","x-decorator":"FormItem","x-component":"SnippetCheckboxGroup"},allowNewMenu:{title:o("Menu permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":o("New menu items are allowed to be accessed by default.")}}}})},collection={name:"roles",filterTargetKey:"name",targetKey:"name",fields:[{type:"integer",name:"title",interface:"input",uiSchema:{title:'{{t("Role display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Role UID")}}',type:"string","x-component":"Input"}},{type:"boolean",name:"default",interface:"boolean",uiSchema:{title:'{{t("Default role")}}',type:"boolean","x-component":"Checkbox"}}]},roleSchema={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection,resourceName:"roles",request:{resource:"roles",action:"list",params:{pageSize:50,filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete role')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add role")}}',"x-component":"Action","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(e){const t=useActionContext();return useRequest(()=>Promise.resolve({data:{name:`r_${(0,import_shared.uid)()}`,snippets:["!ui.*","!pm","!pm.*"]}}),P(x({},e),{refreshDeps:[t.visible]}))}},title:'{{t("Add role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},default:{"x-component":"CollectionField","x-decorator":"FormItem",title:"","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{default:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"PermissionProvider",title:'{{t("Configure permissions")}}',properties:{tabs1:{type:"void","x-component":"Tabs","x-component-props":{},properties:{tab1:{type:"void",title:'{{t("General permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{role:{"x-component":"RoleConfigure"}}},tab3:{type:"void",title:'{{t("Menu permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{menu:{"x-decorator":"MenuItemsProvider","x-component":"MenuConfigure"}}},tab4:{type:"void",title:'{{t("Plugin settings permissions")}}',"x-decorator":"SettingCenterPermissionProvider","x-component":"Tabs.TabPane","x-component-props":{},properties:{menu:{"x-decorator":"SettingCenterProvider","x-component":"SettingsCenterConfigure"}}}}}}}}},update:{type:"void",title:'{{t("Edit")}}',"x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:e=>{const t=useRecord(),o=useRequest(()=>Promise.resolve({data:(0,import_pick.default)(t,["title","name","default"])}),P(x({},e),{manual:!0})),r=useActionContext();return(0,import_react2.useEffect)(()=>{r.visible&&o.run()},[r.visible]),o}},title:'{{t("Edit role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},default:{title:"","x-component":"CollectionField","x-decorator":"FormItem","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-acl-action":"roles:destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete role')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"}}}}}}}}}}}},AvailableActionsContext=(0,import_react2.createContext)([]);AvailableActionsContext.displayName="AvailableActionsContext";const AvailableActionsProver=e=>{const{data:t,loading:o}=useRequest({resource:"availableActions",action:"list"});return o?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(AvailableActionsContext.Provider,{value:t==null?void 0:t.data,children:e.children})},useAvailableActions=()=>(0,import_react2.useContext)(AvailableActionsContext),RoleTable=()=>(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:{designable:!1},children:(0,import_jsx_runtime.jsx)(AvailableActionsProver,{children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:roleSchema,components:{MenuItemsProvider,SettingCenterPermissionProvider,PermissionProvider}})})})}),rolesResourcesScopesCollection={name:"rolesResourcesScopes",fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]},useFormBlockProps=()=>{const{name:e}=(0,import_react2.useContext)(RoleResourceCollectionContext),t=useFormBlockContext();return(0,import_react2.useEffect)(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},scopesSchema={type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:rolesResourcesScopesCollection,resource:"rolesResourcesScopes",action:"list",params:{pageSize:20},useParams(){return{filter:{$or:[{resourceName:(0,import_react2.useContext)(RoleResourceCollectionContext).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:"rolesResourcesScopes",collection:rolesResourcesScopesCollection},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":useFormBlockProps,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const e=(0,import_react2.useContext)(RoleResourceCollectionContext);return{options:useFilterOptions(e.name)}},"x-component-props":{dynamicComponent:VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{create:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-use-component-props":"useTableSelectorProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:"rolesResourcesScopes",collection:rolesResourcesScopesCollection,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const e=(0,import_react2.useContext)(RoleResourceCollectionContext);return{options:useFilterOptions(e.name)}},"x-component-props":{dynamicComponent:VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{update:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},RolesResourcesScopesSelectedRowKeysContext=(0,import_react2.createContext)(null);RolesResourcesScopesSelectedRowKeysContext.displayName="RolesResourcesScopesSelectedRowKeysContext";const RolesResourcesScopesSelectedRowKeysProvider=e=>{const[t,o]=(0,import_react2.useState)([]);return(0,import_jsx_runtime.jsx)(RolesResourcesScopesSelectedRowKeysContext.Provider,{value:[t,o],children:e.children})},useRolesResourcesScopesSelectedRowKeys=()=>(0,import_react2.useContext)(RolesResourcesScopesSelectedRowKeysContext),ScopeSelect=e=>{const t=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({values:{scope:e.value}}),[]);return(0,import_jsx_runtime.jsx)(FormProvider,{form:t,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider},scope:{onChange(o){var r;(r=e==null?void 0:e.onChange)==null||r.call(e,o)}},schema:scopesSchema})})},toActionMap=e=>{var t;const o={};return(t=e==null?void 0:e.forEach)==null||t.call(e,r=>{r.name&&(o[r.name]=r,o[r.name].scope=(0,import_lodash.isEmpty)(r.scope)?null:r.scope)}),o},RoleResourceCollectionContext=(0,import_react2.createContext)({});RoleResourceCollectionContext.displayName="RoleResourceCollectionContext";const RolesResourcesActions=(0,import_react.connect)(e=>{var t,o,r,i;const n=F=>{const I=F.map(T=>P(x({},T),{scope:(0,import_lodash.isEmpty)(T.scope)?null:T.scope}));e.onChange(I)};(0,import_react.useForm)();const a=useRecord(),l=useAvailableActions(),{getCollection:c,getCollectionFields:u}=useCollectionManager_deprecated(),m=c(a.collectionName),d=u(a.collectionName),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),g=(0,import_react.useField)(),_=toActionMap(g.value||[]),f=(F,I)=>{var T;const k=_==null?void 0:_[F];return k?(T=k==null?void 0:k.fields)==null?void 0:T.includes(I):!1},v=l.filter(F=>F.allowConfigureFields),b=(t=d==null?void 0:d.filter(F=>F.interface))==null?void 0:t.map(F=>{const I=x({},F);for(const T of v)I[T.name]=f(T.name,F.name);return I}),S=F=>{var I,T;_[F]?delete _[F]:_[F]={name:F,fields:(T=(I=d==null?void 0:d.filter(k=>k.interface))==null?void 0:I.map)==null?void 0:T.call(I,k=>k.name)},n(Object.values(_))},C=(F,I)=>{_[F]?(_[F].scope=I,n(Object.values(_))):(S(F),_[F].scope=I)},y={};for(const F of v)y[F.name]=((o=d==null?void 0:d.filter(I=>I.interface))==null?void 0:o.length)===((i=(r=_==null?void 0:_[F.name])==null?void 0:r.fields)==null?void 0:i.length);return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(RoleResourceCollectionContext.Provider,{value:m,children:(0,import_jsx_runtime.jsxs)(import_antd_v5.FormLayout,{layout:"vertical",children:[(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:h("Action permission"),children:(0,import_jsx_runtime.jsx)(import_antd.Table,{className:antTableCell,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:h("Action display name"),render:F=>p(F)},{dataIndex:"onNewRecord",title:h("Action type"),render:F=>F?(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"green",children:h("Action on new records")}):(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"geekblue",children:h("Action on existing records")})},{dataIndex:"enabled",title:h("Allow"),render:(F,I)=>(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:F,onChange:()=>{S(I.name)}})},{dataIndex:"scope",title:h("Data scope"),render:(F,I)=>!I.onNewRecord&&(0,import_jsx_runtime.jsx)(ScopeSelect,{value:F,onChange:T=>{C(I.name,T)}})}],dataSource:l==null?void 0:l.map(F=>{let I=!1,T=null;return _[F.name]&&(I=!0,F.onNewRecord||(T=_[F.name].scope)),P(x({},F),{enabled:I,scope:T})})})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:h("Field permission"),children:(0,import_jsx_runtime.jsx)(import_antd.Table,{className:antTableCell,pagination:!1,dataSource:b,columns:[{dataIndex:["uiSchema","title"],title:h("Field display name"),render:F=>p(F)},...v.map(F=>{const I=y==null?void 0:y[F.name];return{dataIndex:F.name,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:I,onChange:()=>{var T;const k=_[F.name]||{name:F.name};I?k.fields=[]:k.fields=(T=d==null?void 0:d.map)==null?void 0:T.call(d,N=>N.name),_[F.name]=k,n(Object.values(_))}})," ",p(F.displayName)]}),render:(T,k)=>(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:T,"aria-label":`${F.name}_checkbox`,onChange:()=>{const N=_[F.name]||{name:F.name},M=N.fields||[];if(T){const L=M.indexOf(k.name);M.splice(L,1)}else M.push(k.name);N.fields=M,_[F.name]=N,n(Object.values(_))}})}})]})})]})})})}),toScopes=e=>{var t;if(!e)return{};const o={};return(t=e==null?void 0:e.forEach)==null||t.call(e,r=>{const[i,n]=r.split(":");o[i]=n||"all"}),o},toFieldValue=e=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const r=e[o];r==="all"?t.push(o):t.push(`${o}:${r}`)}return t},StrategyActions=(0,import_react.connect)(e=>{const{onChange:t}=e,o=useAvailableActions(),r=useCompile(),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react.useField)(),a=toScopes(n.value);return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Table,{size:"small",pagination:!1,rowKey:"name",columns:[{dataIndex:"displayName",title:i("Action display name"),render:l=>r(l)},{dataIndex:"onNewRecord",title:i("Action type"),render:l=>l?(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"green",children:i("Action on new records")}):(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"geekblue",children:i("Action on existing records")})},{dataIndex:"enabled",title:i("Allow"),render:(l,c)=>(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:l,"aria-label":`${c.name}_checkbox`,onChange:u=>{l?delete a[c.name]:a[c.name]="all",t(toFieldValue(a))}})},{dataIndex:"scope",title:i("Data scope"),render:(l,c)=>!c.onNewRecord&&(0,import_jsx_runtime.jsx)(import_antd.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:i("All records"),value:"all"},{label:i("Own records"),value:"own"}],onChange:u=>{a[c.name]=u,t(toFieldValue(a))}})}],dataSource:o==null?void 0:o.map(l=>{let c="all",u=!1;return a[l.name]&&(u=!0,c=a[l.name]),P(x({},l),{enabled:u,scope:c})})})})}),PluginManagerLink=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useNavigateNoUpdate(),{token:o}=useToken(),{isMobileLayout:r}=useMobileLayout();return r?null:(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e("Plugin manager"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{"data-testid":"plugin-manager-button",icon:(0,import_jsx_runtime.jsx)(import_icons.ApiOutlined,{style:{color:o.colorTextHeaderMenu}}),title:e("Plugin manager"),onClick:()=>{t("/admin/pm/list")}})})},SettingsCenterDropdown=()=>{const e=useCompile(),{t}=(0,import_react_i18next.useTranslation)(),{token:o}=useToken(),r=useApp(),i=(0,import_react2.useMemo)(()=>r.pluginSettingsManager.getList().filter(a=>a.isTopLevel!==!1).map(a=>({key:a.name,icon:a.icon,label:a.link?(0,import_jsx_runtime.jsx)("div",{onClick:()=>window.open(a.link),children:e(a.title)}):(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,{to:a.path,children:e(a.title)})})),[r,t]);(0,import_react2.useEffect)(()=>()=>{r.pluginSettingsManager.clearCache()},[r.pluginSettingsManager]);const{isMobileLayout:n}=useMobileLayout();return n?null:(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:{style:{maxHeight:"70vh",overflow:"auto"},items:i},children:(0,import_jsx_runtime.jsx)(import_antd.Button,{"data-testid":"plugin-settings-button",icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{style:{color:o.colorTextHeaderMenu}})})})},useStyles$1=(0,import_antd_style.createStyles)(({token:e})=>({cardActionDisabled:{color:e.colorTextDisabled,cursor:"not-allowed"},pageHeader:{backgroundColor:e.colorBgContainer,paddingTop:e.paddingSM,paddingBottom:0,paddingInline:e.paddingLG,".ant-page-header-footer":{marginBlockStart:"0"},"& .ant-tabs-nav":{marginBottom:0},".ant-page-header-heading-title":{color:e.colorText}},pageContent:{margin:e.marginLG},PluginDetailBaseInfo:{display:"flex",flexDirection:"column",marginBottom:e.margin},PluginDocument:{background:e.colorBgContainer,padding:e.paddingLG,height:"60vh",overflowY:"auto"},avatar:{".ant-card-meta-avatar":{marginTop:"8px",".ant-avatar":{borderRadius:"2px"}}},version:{display:"block",color:e.colorTextDescription,fontWeight:"normal",fontSize:e.fontSize}}));import_dayjs.default.extend(import_relativeTime.default);const PluginDetail=({plugin:e,onCancel:t})=>{var o,r,i,n,a,l,c,u;const{t:m}=(0,import_react_i18next.useTranslation)(),d=(0,import_react2.useMemo)(()=>[{title:m("Name"),dataIndex:"name",key:"name"},{title:m("Version range"),dataIndex:"versionRange",key:"versionRange"},{title:m("Plugin's version"),dataIndex:"packageVersion",key:"packageVersion"},{title:m("Result"),dataIndex:"result",key:"result",render:S=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:S?"success":"error",children:S?"Yes":"No"})}],[m]),{data:p,loading:h}=useRequest({url:"pm:get",params:{filterByTk:e.name}},{refreshDeps:[e.name],ready:!!e.name}),g=(0,import_react2.useMemo)(()=>{var S,C,y;if(!((C=(S=p==null?void 0:p.data)==null?void 0:S.packageJson)!=null&&C.repository))return null;const F=(y=p==null?void 0:p.data)==null?void 0:y.packageJson.repository;return(typeof F=="string"?F:F.url).replace(/\.git$/,"").replace(/^git\+/,"")},[p]),_=(0,import_react2.useMemo)(()=>{var S;const C=(S=p==null?void 0:p.data)==null?void 0:S.packageJson.author;return C?typeof C=="string"?C:C.name:null},[p]),{styles:f,theme:v}=useStyles$1(),b=[{key:"readme",label:m("Readme"),children:(0,import_jsx_runtime.jsxs)(import_antd.Row,{gutter:20,children:[e.name&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Name")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.name})]})}),e.displayName&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("DisplayName")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.displayName})]})}),(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("PackageName")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.packageName})]})}),g&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Repository")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:g})]})}),((o=p==null?void 0:p.data)==null?void 0:o.homepage)&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Homepage")}),(0,import_jsx_runtime.jsx)("a",{href:(r=p==null?void 0:p.data)==null?void 0:r.homepage,target:"_blank",rel:"noreferrer",children:(i=p==null?void 0:p.data)==null?void 0:i.homepage})]})}),e.description&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Description")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.description})]})}),((n=p==null?void 0:p.data)==null?void 0:n.packageJson.license)&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("License")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:(a=p==null?void 0:p.data)==null?void 0:a.packageJson.license})]})}),_&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Author")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:_})]})}),(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Version")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e==null?void 0:e.version})]})})]})},{key:"dependencies",label:m("Dependencies compatibility check"),children:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:((l=p==null?void 0:p.data)==null?void 0:l.depsCompatible)===!1?(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"danger",children:m("`dist/externalVersion.js` not found or failed to `require`. Please rebuild this plugin.")}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!((c=p==null?void 0:p.data)!=null&&c.isCompatible)&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{showIcon:!0,type:"error",message:m("Plugin dependencies check failed, you should change the dependent version to meet the version requirements.")}),(0,import_jsx_runtime.jsx)(import_antd.Table,{style:{marginTop:v.margin},rowKey:"name",pagination:!1,columns:d,dataSource:(u=p==null?void 0:p.data)==null?void 0:u.depsCompatible})]})})}];return(0,import_jsx_runtime.jsx)(import_antd.Modal,{open:!!e,footer:!1,destroyOnClose:!0,width:600,onCancel:t,children:h?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):e&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Title,{level:3,children:e.packageName}),(0,import_jsx_runtime.jsx)(import_antd.Space,{split:(0,import_jsx_runtime.jsx)("span",{children:" • "}),children:(0,import_jsx_runtime.jsx)("span",{children:e.version})}),(0,import_jsx_runtime.jsx)(import_antd.Tabs,{style:{minHeight:"50vh"},items:b,defaultActiveKey:e.isCompatible?void 0:"dependencies"})]})})},PluginNpmForm=({onClose:e,isUpgrade:t,pluginData:o})=>{import_antd.App.useApp();const r=[],i=()=>{const c=useAPIClient();(0,import_react_i18next.useTranslation)();const u=(0,import_react.useForm)();return{run(){return z(this,null,function*(){yield u.submit(),c.request({url:t?"pm:update":"pm:add",method:"post",data:x({},u.values)}),e(!0)})}}},n=c=>useRequest(()=>Promise.resolve({data:t?(0,import_lodash.pick)(o,["name","packageName","version"]):{}}),c),a=()=>({run(){e()}}),l=(0,import_react2.useMemo)(()=>{const c=(0,import_shared.uid)(),u={type:"object",properties:{[c]:{"x-decorator":"Form","x-component":"div",type:"void","x-decorator-props":{useValues:"{{ useValuesFromProps }}"},properties:{packageName:{type:"string",title:"{{t('Npm package name')}}","x-decorator":"FormItem","x-component":"Input",required:!0,"x-component-props":{disabled:!0}},registry:{type:"string",title:"{{t('Registry url')}}",default:"https://registry.npmjs.org/","x-decorator":"FormItem","x-component":"Input","x-decorator-props":{tooltip:"Example: https://registry.npmjs.org/"}},authToken:{type:"string",title:"{{t('Npm authToken')}}","x-decorator":"FormItem","x-component":"Input"},version:{type:"string",title:"{{t('Version')}}","x-decorator":"FormItem","x-component":"Input"},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{justifyContent:"right"}},properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCancel }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useSaveValues }}"}}}}}}}};return u.properties[c].properties.packageName["x-component-props"].disabled=t,t||delete u.properties[c].properties.version,u},[t]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCancel:a,useSaveValues:i,versionList:r,useValuesFromProps:n},schema:l})};PluginNpmForm.displayName="PluginNpmForm";const PluginUploadForm=({onClose:e,pluginData:t,isUpgrade:o})=>{const{message:r}=import_antd.App.useApp(),i=()=>{const l=useAPIClient(),{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react.useForm)();return{run(){return z(this,null,function*(){var m,d;yield u.submit();const p=new FormData;p.append("file",(d=(m=u.values.uploadFile)==null?void 0:m[0])==null?void 0:d.originFileObj),t!=null&&t.packageName&&p.append("packageName",t.packageName),yield l.request({url:`pm:${o?"update":"add"}`,method:"post",data:p}),import_antd.Modal.info({icon:null,width:520,content:(0,import_jsx_runtime.jsx)(import_antd.Result,{icon:(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}),title:c("Plugin uploading"),subTitle:c("Plugin is uploading, please wait...")}),footer:null}),e(!0);function h(){l.silent().request({url:"__health_check",method:"get"}).then(g=>{(g==null?void 0:g.data)==="ok"&&window.location.reload()}).catch(g=>{})}setInterval(h,1e3)})}}},n=()=>({run(){e()}}),a=(0,import_react2.useMemo)(()=>({type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-component":"div",type:"void",properties:{uploadFile:{type:"string","x-decorator":"FormItem","x-component":"Upload.Dragger",required:!0,"x-component-props":{action:"",multiple:!1,maxCount:1,height:"150px",tipContent:"{{t('Drag and drop the file here or click to upload, file size should not exceed 30M')}}",beforeUpload:l=>(/\.(zip|rar|tar|gz|bz2|tgz)$/.test(l.name)||r.error("File only support zip, rar, tar, gz, bz2!"),l.size/1024/1024<30||r.error("File must smaller than 30MB!"),!1)}},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{justifyContent:"right"}},properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCancel }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useSaveValues }}"}}}}}}}}),[r]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCancel:n,useSaveValues:i},schema:a})},PluginUrlForm=({onClose:e,pluginData:t,isUpgrade:o})=>{import_antd.App.useApp();const r=()=>{const l=useAPIClient();(0,import_react_i18next.useTranslation)();const c=(0,import_react.useForm)();return{run(){return z(this,null,function*(){const u=c.values.compressedFileUrl;if(!u)return;yield c.submit();const m={compressedFileUrl:u};t!=null&&t.packageName&&(m.packageName=t.packageName),l.request({url:`pm:${o?"update":"add"}`,method:"post",data:m}),e(!0)})}}},i=l=>useRequest(()=>Promise.resolve({data:{compressedFileUrl:t.compressedFileUrl}}),l),n=()=>({run(){e()}}),a=(0,import_react2.useMemo)(()=>({type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-component":"div",type:"void","x-decorator-props":{useValues:"{{ useValuesFromProps }}"},properties:{compressedFileUrl:{type:"string","x-decorator":"FormItem","x-component":"Input",required:!0},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{justifyContent:"right"}},properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCancel }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useSaveValues }}"}}}}}}}}),[]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCancel:n,useValuesFromProps:i,useSaveValues:r},schema:a})},PluginUpgradeModal=({onClose:e,isShow:t,pluginData:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),{theme:i}=useStyles$1(),[n,a]=(0,import_react2.useState)("npm");return(0,import_jsx_runtime.jsxs)(import_antd.Modal,{onCancel:()=>e(),footer:null,destroyOnClose:!0,title:r("Update plugin"),width:580,open:t,children:[(0,import_jsx_runtime.jsx)("div",{style:{marginTop:i.marginLG,marginBottom:i.marginLG},children:(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{optionType:"button",defaultValue:n,onChange:l=>a(l.target.value),children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"npm",children:r("Npm package")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"upload",children:r("Upload plugin")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"url",children:r("Compressed file url")})]})}),n==="npm"&&(0,import_jsx_runtime.jsx)(PluginNpmForm,{isUpgrade:!0,onClose:e,pluginData:o}),n==="upload"&&(0,import_jsx_runtime.jsx)(PluginUploadForm,{isUpgrade:!0,onClose:e,pluginData:o}),n==="url"&&(0,import_jsx_runtime.jsx)(PluginUrlForm,{isUpgrade:!0,onClose:e,pluginData:o})]})};function PluginInfo(e){const{data:t,onClick:o}=e,r=useApp(),{name:i,displayName:n,isCompatible:a,packageName:l,updatable:c,builtIn:u,enabled:m,removable:d,description:p,error:h,homepage:g}=t,{styles:_,theme:f}=useStyles$1(),v=(0,import_react_router_dom.useNavigate)(),{t:b}=(0,import_react_i18next.useTranslation)(),S=useAPIClient(),{modal:C}=import_antd.App.useApp(),[y,F]=(0,import_react2.useState)(!1),I=n||i||l;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[y&&(0,import_jsx_runtime.jsx)(PluginUpgradeModal,{isShow:y,pluginData:t,onClose:T=>{F(!1)}}),(0,import_jsx_runtime.jsx)(import_antd.Card,{role:"button","aria-label":I,size:"small",bordered:!1,onClick:()=>{!h&&o()},headStyle:{border:"none",minHeight:"inherit",paddingTop:14},bodyStyle:{paddingTop:10},title:(0,import_jsx_runtime.jsx)("div",{children:I}),hoverable:!0,className:import_css.css`
|
|
1491
|
+
}}}`},min:{type:"number",title:'{{ t("Min length") }}',minimum:0,"x-decorator":"FormItem","x-component":"InputNumber","x-component-props":{precision:0},"x-reactions":{dependencies:[".max"],fulfill:{state:{selfErrors:`{{!!$deps[0] && !!$self.value && $deps[0] < $self.value ? '${i18n.t("Min length must less than max length")}' : ''}}`}}}}})),A(this,"filterable",{operators:string})}schemaInitialize(t,{block:o}){["Table","Kanban"].includes(o)&&(t["x-component-props"]=t["x-component-props"]||{},t["x-component-props"].ellipsis=!0)}}class TimeFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","time"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",4),A(this,"title",'{{t("Time")}}'),A(this,"sortable",!0),A(this,"default",{type:"time",uiSchema:{type:"string","x-component":"TimePicker"}}),A(this,"availableTypes",["time"]),A(this,"hasDefaultValue",!0),A(this,"properties",x(x({},defaultProps),timeProps)),A(this,"filterable",{operators:time}),A(this,"titleUsable",!0)}}class UpdatedAtFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","updatedAt"),A(this,"type","object"),A(this,"group","systemInfo"),A(this,"order",2),A(this,"title",'{{t("Last updated at")}}'),A(this,"sortable",!0),A(this,"default",{type:"date",field:"updatedAt",uiSchema:{type:"datetime",title:'{{t("Last updated at")}}',"x-component":"DatePicker","x-component-props":{},"x-read-pretty":!0}}),A(this,"description",'{{t("Store the last update time of each record")}}'),A(this,"availableTypes",[]),A(this,"properties",x(x({},defaultProps),dateTimeProps)),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class UpdatedByFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","updatedBy"),A(this,"type","object"),A(this,"group","systemInfo"),A(this,"order",4),A(this,"title",'{{t("Last updated by")}}'),A(this,"isAssociation",!0),A(this,"default",{type:"belongsTo",target:"users",foreignKey:"updatedById",uiSchema:{type:"object",title:'{{t("Last updated by")}}',"x-component":"AssociationField","x-component-props":{fieldNames:{value:"id",label:"nickname"}},"x-read-pretty":!0}}),A(this,"availableTypes",["belongsTo"]),A(this,"properties",x({},defaultProps)),A(this,"filterable",{nested:!0,children:[]}),A(this,"description",'{{t("Store the last update user of each record")}}')}schemaInitialize(t,{block:o}){t.properties={viewer:(0,import_lodash.cloneDeep)(recordPickerViewer)},["Table","Kanban"].includes(o)&&(t["x-component-props"]=t["x-component-props"]||{},t["x-component-props"].ellipsis=!0)}}class UrlFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","url"),A(this,"type","string"),A(this,"group","basic"),A(this,"order",5),A(this,"title",'{{t("URL")}}'),A(this,"default",{type:"text",uiSchema:{type:"string","x-component":"Input.URL"}}),A(this,"componentOptions",[{label:"URL",value:"Input.URL"},{label:"Preview",value:"Input.Preview"}]),A(this,"availableTypes",["string","text"]),A(this,"properties",x({},defaultProps)),A(this,"titleUsable",!0),A(this,"filterable",{operators:string})}schemaInitialize(t,{block:o}){}}class UUIDFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","uuid"),A(this,"type","object"),A(this,"group","advanced"),A(this,"order",0),A(this,"title",'{{t("UUID")}}'),A(this,"hidden",!1),A(this,"sortable",!0),A(this,"default",{type:"uuid",uiSchema:{type:"string","x-component":"Input","x-validator":"uuid"}}),A(this,"availableTypes",["uid","uuid"]),A(this,"properties",{"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-decorator":"FormItem","x-component":"Input","x-disabled":"{{ !createOnly }}",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"},autoFill,layout:{type:"void",title:'{{t("Index")}}',"x-component":"Space","x-decorator":"FormItem","x-decorator-props":{style:{marginBottom:"0px"}},properties:{primaryKey,unique}}}),A(this,"filterable",{operators:string}),A(this,"titleUsable",!0)}}class NanoidFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","nanoid"),A(this,"type","object"),A(this,"group","advanced"),A(this,"order",0),A(this,"title",'{{t("Nano ID")}}'),A(this,"hidden",!1),A(this,"sortable",!0),A(this,"default",{type:"nanoid",uiSchema:{type:"string","x-component":"NanoIDInput"}}),A(this,"availableTypes",["nanoid"]),A(this,"properties",{"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-decorator":"FormItem","x-component":"Input","x-disabled":"{{ !createOnly }}",description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.')}}"},customAlphabet:{type:"string",title:'{{t("Alphabet")}}',default:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz","x-decorator":"FormItem","x-component":"Input"},size:{type:"number",title:'{{t("Length")}}',default:21,"x-decorator":"FormItem","x-component":"InputNumber"},autoFill,layout:{type:"void",title:'{{t("Index")}}',"x-component":"Space","x-decorator":"FormItem","x-decorator-props":{style:{marginBottom:"0px"}},properties:{primaryKey,unique}}}),A(this,"filterable",{operators:string}),A(this,"titleUsable",!0)}}class UnixTimestampFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","unixTimestamp"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",4),A(this,"title",'{{t("Unix Timestamp")}}'),A(this,"sortable",!0),A(this,"default",{type:"unixTimestamp",accuracy:"second",timezone:!0,defaultToCurrentTime:!1,onUpdateToCurrentTime:!1,uiSchema:{type:"number","x-component":"UnixTimestamp","x-component-props":{showTime:!0}}}),A(this,"availableTypes",["unixTimestamp"]),A(this,"hasDefaultValue",!1),A(this,"properties",P(x(x({},defaultProps),dateTimeProps),{accuracy:{type:"string",title:'{{t("Accuracy")}}',"x-component":"Radio.Group","x-decorator":"FormItem",default:"second",enum:[{value:"millisecond",label:'{{t("Millisecond")}}'},{value:"second",label:'{{t("Second")}}'}]},defaultToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Default value to current time")}}'},onUpdateToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Automatically update timestamp on update")}}'}})),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class DateFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","date"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",3),A(this,"title",'{{t("DateOnly")}}'),A(this,"sortable",!0),A(this,"default",{type:"dateOnly",uiSchema:{type:"string","x-component":"DatePicker","x-component-props":{dateOnly:!0}}}),A(this,"availableTypes",["dateOnly"]),A(this,"hasDefaultValue",!0),A(this,"properties",P(x(x({},defaultProps),dateTimeProps),{"uiSchema.x-component-props.showTime":{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-visible":!1}})),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class DatetimeNoTzFieldInterface extends CollectionFieldInterface{constructor(){super(...arguments),A(this,"name","datetimeNoTz"),A(this,"type","object"),A(this,"group","datetime"),A(this,"order",2),A(this,"title",'{{t("Datetime (without time zone)")}}'),A(this,"sortable",!0),A(this,"default",{type:"datetimeNoTz",defaultToCurrentTime:!1,onUpdateToCurrentTime:!1,timezone:!1,uiSchema:{type:"string","x-component":"DatePicker","x-component-props":{showTime:!1,utc:!1}}}),A(this,"availableTypes",["string","datetimeNoTz"]),A(this,"hasDefaultValue",!0),A(this,"properties",P(x(x({},defaultProps),dateTimeProps),{defaultToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Default value to current server time")}}'},onUpdateToCurrentTime:{type:"boolean","x-decorator":"FormItem","x-component":"Checkbox","x-content":'{{t("Automatically update timestamp to the current server time on update")}}'},"uiSchema.x-component-props.gmt":{type:"boolean",title:'{{t("GMT")}}',"x-hidden":!0,"x-component":"Checkbox","x-content":'{{t("Use the same time zone (GMT) for all users")}}',"x-decorator":"FormItem",default:!1}})),A(this,"filterable",{operators:datetime}),A(this,"titleUsable",!0)}}class InheritanceCollectionMixin extends Collection{constructor(){super(...arguments),A(this,"parentCollectionsName"),A(this,"parentCollections"),A(this,"childrenCollections",{}),A(this,"childrenCollectionsName",{}),A(this,"inheritsFields"),A(this,"currentFields"),A(this,"allFields"),A(this,"parentCollectionFields",{}),A(this,"allCollectionsInheritChain"),A(this,"inheritCollectionsChain"),A(this,"inheritChain"),A(this,"foreignKeyFields")}getParentCollectionsName(){if(this.parentCollectionsName)return this.parentCollectionsName.slice();const t=[],o=r=>{const i=this.collectionManager.getCollection(r);if(i){const{inherits:n}=i;if(n)for(let a=0;a<n.length;a++){const l=n[a];t.push(l),o(l)}}return(0,import_lodash.uniq)(t)};return this.parentCollectionsName=o(this.name),this.parentCollectionsName}getParentCollections(){return this.parentCollections?this.parentCollections.slice():(this.parentCollections=this.getParentCollectionsName().map(t=>this.collectionManager.getCollection(t)),this.parentCollections)}getChildrenCollectionsName(t=!1){const o=t?"supportView":"notSupportView";if(this.childrenCollectionsName[o])return this.childrenCollectionsName[o].slice();const r=[],i=this.collectionManager.getCollections(),n=a=>(i.filter(l=>{var c;return(c=l.inherits)==null?void 0:c.includes(a)}).forEach(l=>{const c=l.name;return r.push(c),n(c)}),t&&i.filter(l=>{var c;return((c=l.sources)==null?void 0:c.length)===1&&(l==null?void 0:l.sources[0])===a}).forEach(l=>{const c=l.name;return r.push(l.name),n(c)}),(0,import_lodash.uniq)(r));return this.childrenCollectionsName[o]=n(this.name),this.childrenCollectionsName[o]}getChildrenCollections(t=!1){const o=t?"supportView":"notSupportView";return this.childrenCollections[o]?this.childrenCollections[o].slice():(this.childrenCollections[o]=this.getChildrenCollectionsName(t).map(r=>this.collectionManager.getCollection(r)),this.childrenCollections[o])}getInheritedFields(){if(this.inheritsFields)return this.inheritsFields.slice();const t=this.getParentCollectionsName();return this.inheritsFields=t.map(o=>{var r;return(r=this.collectionManager.getCollection(o))==null?void 0:r.getFields()}).flat().filter(Boolean),this.inheritsFields}getFieldsMap(){return this.fieldsMap?this.fieldsMap:(this.fieldsMap=this.getAllFields().reduce((t,o)=>(t[o.name]=o,t),{}),this.fieldsMap)}getCurrentFields(t){return super.getFields(t)}getParentCollectionFields(t){if(this.parentCollectionFields||(this.parentCollectionFields={}),this.parentCollectionFields[t])return this.parentCollectionFields[t];const o=this.getCurrentFields(),r=this.getParentCollectionsName(),i=this.collectionManager.getCollection(t).getCurrentFields(),n=r.indexOf(t);let a=o;return n>0&&(r.splice(n),r.forEach(l=>{const c=this.collectionManager.getCollection(l);a=a.concat(c.getCurrentFields())})),this.parentCollectionFields[t]=i.filter(l=>a.find(c=>c.name===l.name).collectionName!==this.name),this.parentCollectionFields[t]}getAllCollectionsInheritChain(){if(this.allCollectionsInheritChain)return this.allCollectionsInheritChain.slice();const t=[this.name],o=r=>{const i=this.collectionManager.getCollection(r);if(i){const{inherits:n}=i,a=i.getChildrenCollectionsName();if(n)for(let l=0;l<n.length;l++){const c=n[l];t.includes(c)||(t.push(c),o(c))}if(a)for(let l=0;l<a.length;l++){const c=this.collectionManager.getCollection(a[l]).name;t.includes(c)||(t.push(c),o(c))}}return t};return this.allCollectionsInheritChain=o(this.name),this.allCollectionsInheritChain||[]}getInheritCollectionsChain(){if(this.inheritCollectionsChain)return this.inheritCollectionsChain.slice();const t=[this.name],o=r=>{const i=this.collectionManager.getCollection(r);if(i){const{inherits:n}=i;if(n)for(let a=0;a<n.length;a++){const l=n[a];t.includes(l)||(t.push(l),o(l))}}return t};return this.inheritCollectionsChain=o(this.name),this.inheritCollectionsChain}getInheritChain(){if(this.inheritChain)return this.inheritChain.slice();const t=this.getInheritCollectionsChain(),o=this.getChildrenCollectionsName(),r=[...t],i=n=>{for(const a of n)if(!r.includes(a)){r.push(a);const l=this.collectionManager.getCollection(a);if(l){const c=l.getChildrenCollectionsName();i(c)}}};return i(o),this.inheritChain=r,this.inheritChain}getAllFields(t){if(this.allFields)return this.allFields.slice();const o=this.getCurrentFields(),r=this.getInheritedFields(),i=(0,import_lodash.unionBy)((o==null?void 0:o.concat(r))||[],"name");return this.allFields=i,t?(0,import_lodash.filter)(i,t):i}getForeignKeyFields(){if(this.foreignKeyFields)return this.foreignKeyFields.slice();const t=this.getCurrentFields(),o=this.getInheritedFields();return(0,import_lodash.unionBy)((t==null?void 0:t.concat(o))||[],"name")}}class GeneralCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","general"),A(this,"title",'{{t("General collection")}}'),A(this,"order",1),A(this,"color","blue"),A(this,"default",{fields:[]}),A(this,"configurableProperties",getConfigurableProperties("title","name","inherits","category","description","simplePaginate","presetFields"))}}class TreeCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","tree"),A(this,"title",'{{t("Tree collection")}}'),A(this,"order",3),A(this,"color","blue"),A(this,"default",{tree:"adjacencyList",fields:[{interface:"integer",name:"parentId",type:"bigInt",isForeignKey:!0,uiSchema:{type:"number",title:'{{t("Parent ID")}}',"x-component":"InputNumber","x-read-pretty":!0}},{interface:"m2o",type:"belongsTo",name:"parent",foreignKey:"parentId",treeParent:!0,onDelete:"CASCADE",uiSchema:{title:'{{t("Parent")}}',"x-component":"AssociationField","x-component-props":{multiple:!1,fieldNames:{label:"id",value:"id"}}}},{interface:"o2m",type:"hasMany",name:"children",foreignKey:"parentId",treeChildren:!0,onDelete:"CASCADE",uiSchema:{title:'{{t("Children")}}',"x-component":"AssociationField","x-component-props":{multiple:!0,fieldNames:{label:"id",value:"id"}}}}]}),A(this,"presetFieldsDisabledIncludes",["id"]),A(this,"events",{beforeSubmit(t){Array.isArray(t==null?void 0:t.fields)&&(t==null||t.fields.map(o=>{!o.target&&["belongsToMany","belongsTo","hasMany","hasOne"].includes(o.type)&&(o.target=t.name)}))}}),A(this,"configurableProperties",getConfigurableProperties("title","name","inherits","category","description","presetFields"))}}class ViewCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","view"),A(this,"title",'{{t("Connect to database view")}}'),A(this,"order",4),A(this,"color","yellow"),A(this,"default",{fields:[]}),A(this,"divider",!0),A(this,"configurableProperties",x({title:{type:"string",title:'{{ t("Collection display name") }}',required:!0,"x-decorator":"FormItem","x-component":"Input"},databaseView:{title:'{{t("Connect to database view")}}',type:"single",required:!0,"x-decorator":"FormItem","x-component":"Select","x-reactions":["{{useAsyncDataSource(loadDBViews)}}"],"x-disabled":"{{ !createOnly }}","x-visible":"{{!createMainOnly}}"},name:{type:"string",title:'{{t("Collection 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.')}}","x-reactions":{dependencies:["databaseView"],when:"{{isPG}}",fulfill:{state:{initialValue:"{{$deps[0]&&$deps[0].match(/^([^_]+)_(.*)$/)?.[2]}}"}},otherwise:{state:{value:null}}}},schema:{type:"string","x-hidden":!0,"x-reactions":{dependencies:["databaseView"],when:"{{isPG}}",fulfill:{state:{value:"{{$deps[0] && $deps[0].split('@')?.[0]}}"}},otherwise:{state:{value:null}}}},viewName:{type:"string","x-hidden":!0,"x-reactions":{dependencies:["databaseView"],when:"{{isPG}}",fulfill:{state:{value:"{{$deps[0] && $deps[0].split('@')?.[1]}}"}},otherwise:{state:{value:"{{$deps[0] || null}}"}}}},writableView:{type:"boolean","x-content":'{{t("Allow add new, update and delete actions")}}',"x-decorator":"FormItem","x-component":"Checkbox",default:!1,"x-visible":"{{!createMainOnly}}"},sources:{type:"array",title:'{{ t("Source collections") }}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadCollections)}}"],"x-disabled":!0,"x-visible":"{{!createMainOnly}}"},fields:{type:"array","x-component":PreviewFields,"x-hidden":"{{ !createOnly }}","x-decorator":"FormItem","x-reactions":{dependencies:["name"],fulfill:{schema:{"x-component-props":"{{$form.values}}"}}},description:'{{t("Fields can only be used correctly if they are defined with an interface.")}}'},preview:{type:"void","x-visible":"{{ createOnly }}","x-component":PreviewTable$1,"x-reactions":{dependencies:["name","fields"],fulfill:{schema:{"x-component-props":"{{$form.values}}"}}}},filterTargetKey:{title:'{{ t("Record unique key")}}',type:"single",description:'{{t( "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]}},getConfigurableProperties("category","description")))}}class SqlCollectionTemplate extends CollectionTemplate{constructor(){super(...arguments),A(this,"name","sql"),A(this,"title",'{{t("SQL collection")}}'),A(this,"order",4),A(this,"color","yellow"),A(this,"default",{fields:[]}),A(this,"configurableProperties",x({title:{type:"string",title:'{{ t("Collection display name") }}',required:!0,"x-decorator":"FormItem","x-component":"Input"},name:{type:"string",title:'{{t("Collection 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.')}}"},config:{type:"void","x-decorator":SQLRequestProvider,properties:{sql:{type:"string",title:'{{t("SQL")}}',"x-decorator":"FormItem","x-component":SQLInput,required:!0,"x-validator":(t,o,{form:r})=>r.query("sql").take().componentProps.disabled?"":i18n.t("Please confirm the SQL statement first")},sources:{type:"array",title:'{{t("Source collections")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadCollections)}}"]},fields:{type:"array",title:'{{t("Fields")}}',"x-decorator":"FormItem","x-component":FieldsConfigure,required:!0},table:{type:"void",title:'{{t("Preview")}}',"x-decorator":"FormItem","x-component":PreviewTable}}},filterTargetKey:{title:'{{ t("Record unique key")}}',type:"single",description:'{{t( "If a collection lacks a primary key, you must configure a unique record key to locate row records within a block, failure to configure this will prevent the creation of data blocks for the collection.")}}',"x-decorator":"FormItem","x-component":"Select","x-component-props":{multiple:!0},"x-reactions":["{{useAsyncDataSource(loadFilterTargetKeys)}}"]}},getConfigurableProperties("category","description")))}}class MainDataSource extends DataSource{getDataSource(){return z(this,null,function*(){var t;const o=yield this.app.apiClient.request({resource:"collections",action:"listMeta"});return{collections:((t=o==null?void 0:o.data)==null?void 0:t.data)||[]}})}}class CollectionPlugin extends Plugin{load(){return z(this,null,function*(){this.dataSourceManager.addCollectionMixins([InheritanceCollectionMixin]),this.addFieldInterfaces(),this.addCollectionTemplates(),this.addFieldInterfaces(),this.addFieldInterfaceGroups(),this.addMainDataSource()})}addMainDataSource(){var t,o;((o=(t=this.options)==null?void 0:t.config)==null?void 0:o.enableRemoteDataSource)!==!1&&this.dataSourceManager.addDataSource(MainDataSource,{key:DEFAULT_DATA_SOURCE_KEY,displayName:DEFAULT_DATA_SOURCE_TITLE})}addFieldInterfaceGroups(){this.dataSourceManager.addFieldInterfaceGroups({basic:{label:'{{t("Basic")}}'},choices:{label:'{{t("Choices")}}'},media:{label:'{{t("Media")}}'},datetime:{label:'{{t("Date & Time")}}'},relation:{label:'{{t("Relation")}}'},advanced:{label:'{{t("Advanced type")}}'},systemInfo:{label:'{{t("System info")}}'},others:{label:'{{t("Others")}}'}})}addFieldInterfaces(){this.dataSourceManager.addFieldInterfaces([CheckboxFieldInterface,CheckboxGroupFieldInterface,CollectionSelectFieldInterface,ColorFieldInterface,CreatedAtFieldInterface,CreatedByFieldInterface,DatetimeFieldInterface,EmailFieldInterface,IconFieldInterface,IdFieldInterface,InputFieldInterface,IntegerFieldInterface,JsonFieldInterface,LinkToFieldInterface,M2MFieldInterface,M2OFieldInterface,MarkdownFieldInterface,MultipleSelectFieldInterface,NumberFieldInterface,O2MFieldInterface,O2OFieldInterface,OHOFieldInterface,OBOFieldInterface,PasswordFieldInterface,PercentFieldInterface,PhoneFieldInterface,RadioGroupFieldInterface,RichTextFieldInterface,SelectFieldInterface,SubTableFieldInterface,TableoidFieldInterface,TextareaFieldInterface,TimeFieldInterface,UpdatedAtFieldInterface,UpdatedByFieldInterface,UrlFieldInterface,UUIDFieldInterface,NanoidFieldInterface,UnixTimestampFieldInterface,DateFieldInterface,DatetimeNoTzFieldInterface])}addCollectionTemplates(){this.dataSourceManager.addCollectionTemplates([GeneralCollectionTemplate,SqlCollectionTemplate,TreeCollectionTemplate,ViewCollectionTemplate])}}function parseCollectionName(e){var t;if(!e)return[];const o=e.split(":"),r=o.pop();return[(t=o[0])!=null?t:"main",r]}function joinCollectionName(e,t){return!e||e==="main"?t:`${e}:${t}`}const useSourceId=()=>{const{sourceId:e,association:t}=useDataBlockProps()||{},o=useSourceKey(t),r=useDataBlockParentRecord({association:t});return e||(r==null?void 0:r[o])},BlockResourceContext=(0,import_react2.createContext)(null);BlockResourceContext.displayName="BlockResourceContext";const BlockAssociationContext=(0,import_react2.createContext)(null);BlockAssociationContext.displayName="BlockAssociationContext";const BlockRequestContext_deprecated=(0,import_react2.createContext)({});BlockRequestContext_deprecated.displayName="BlockRequestContext_deprecated";const useBlockResource=()=>{const e=useDataBlockResource();return(0,import_react2.useContext)(BlockResourceContext)||e},MaybeCollectionProvider=e=>{const{collection:t}=e;return t?(0,import_jsx_runtime.jsx)(CollectionProvider_deprecated,{collection:t,children:(0,import_jsx_runtime.jsx)(ACLCollectionProvider,{children:e.children})}):e.children},BlockRequestProvider_deprecated=e=>{const t=(0,import_react.useField)(),o=useDataBlockResource(),r=useDataBlockRequest(),i=useCollectionRecord(),n=useCollectionParentRecord(),a=useBlockRequestContext(),l=(0,import_react2.useMemo)(()=>({block:e.block,props:e,field:t,service:r,resource:o,__parent:a,updateAssociationValues:(e==null?void 0:e.updateAssociationValues)||[]}),[a,t,e,o,r]);return(0,import_jsx_runtime.jsx)(BlockRequestContext_deprecated.Provider,{value:l,children:(0,import_jsx_runtime.jsx)(RecordProvider,{isNew:i==null?void 0:i.isNew,record:i==null?void 0:i.data,parent:n==null?void 0:n.data,children:e.children})})},useBlockRequestContext=()=>(0,import_react2.useContext)(BlockRequestContext_deprecated),RenderChildrenWithAssociationFilter=e=>{var t;const o=(0,import_react.useFieldSchema)(),{findComponent:r}=useDesignable(),i=(0,import_react.useField)(),n=r((t=i.component)==null?void 0:t[0])||import_react2.default.Fragment;return o.reduceProperties((a,l)=>l["x-component"]==="AssociationFilter"?l:a,null)?(0,import_jsx_runtime.jsx)(n,P(x({},i.componentProps),{children:(0,import_jsx_runtime.jsxs)(import_antd.Row,{style:{height:"100%"},gutter:16,wrap:!1,children:[(0,import_jsx_runtime.jsx)(import_antd.Col,{style:x({width:200,flex:"0 0 auto"},e.associationFilterStyle||{}),children:(0,import_jsx_runtime.jsx)(import_react.RecursionField,{schema:o,onlyRenderProperties:!0,filterProperties:a=>a["x-component"]==="AssociationFilter"})}),(0,import_jsx_runtime.jsx)(import_antd.Col,{style:{flex:"1 1 auto",minWidth:0},children:(0,import_jsx_runtime.jsx)("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:(0,import_jsx_runtime.jsx)(import_react.RecursionField,{schema:o,onlyRenderProperties:!0,filterProperties:a=>a["x-component"]!=="AssociationFilter"})})})]})})):e.children},BlockContext=(0,import_react2.createContext)(null);BlockContext.displayName="BlockContext";const useBlockContext=()=>(0,import_react2.useContext)(BlockContext),useCompatDataBlockParentRecord=e=>(0,import_react.useFieldSchema)()["x-use-decorator-props"]?e.parentRecord:useDataBlockParentRecord(e),BlockProvider=e=>{const{name:t,dataSource:o,useParams:r,parentRecord:i}=e,n=useCompatDataBlockParentRecord(e),a=useRefreshComponent(),l=(0,import_ahooks.useUpdate)(),c=(0,import_react2.useCallback)(()=>{l(),a==null||a()},[l,a]),u=r==null?void 0:r(),{getAssociationAppends:m}=useAssociationNames(o),{appends:d,updateAssociationValues:p}=m(),h=(0,import_react2.useMemo)(()=>{var _;return(_=e.params)!=null&&_.appends?x(x({},e.params),u):x(P(x({},e.params),{appends:d}),u)},[d,u,e.params]),g=(0,import_react2.useMemo)(()=>({name:t}),[t]);return(0,import_jsx_runtime.jsx)(BlockContext.Provider,{value:g,children:(0,import_jsx_runtime.jsx)(DataBlockProvider,P(x({},e),{params:h,parentRecord:i||n,children:(0,import_jsx_runtime.jsx)(BlockRequestProvider_deprecated,P(x({},e),{updateAssociationValues:p,params:h,children:(0,import_jsx_runtime.jsx)(RefreshComponentProvider,{refresh:c,children:e.children})}))}))})},useBlockAssociationContext=()=>{const{association:e}=useDataBlockProps();return(0,import_react2.useContext)(BlockAssociationContext)||e},useFilterByTk=e=>{const{resource:t,__parent:o}=useBlockRequestContext(),r=useRecordIndex(),i=useCollectionRecordData(),n=useCollection_deprecated(),a=useBlockAssociationContext(),l=(e==null?void 0:e.association)||a,c=(0,import_react2.useContext)(WithoutTableFieldResource),u=useCollectionManager();if(!c&&(t instanceof TableFieldResource||(o==null?void 0:o.block)==="TableField"))return r;if(l){const m=u.getCollectionField(l);return i==null?void 0:i[m.targetKey||m.sourceKey||"id"]}if((0,import_lodash.isArray)(n.filterTargetKey)){const m={};for(const d of n.filterTargetKey)m[d]=i==null?void 0:i[d];return m}else return i==null?void 0:i[n.filterTargetKey||"id"]},useSourceIdFromRecord=()=>{const e=useRecord(),{getCollectionField:t}=useCollectionManager_deprecated(),o=useBlockAssociationContext();if(o){const r=t(o);return e==null?void 0:e[r.sourceKey||"id"]}},useSourceIdFromParentRecord=()=>useSourceId(),useParamsFromRecord=e=>{var t,o;const r=useFilterByTk(e),i=useRecord(),{fields:n}=useCollection_deprecated(),a=(0,import_react.useFieldSchema)(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=l(((t=a==null?void 0:a["x-decorator-props"])==null?void 0:t.resource)||((o=a==null?void 0:a["x-decorator-props"])==null?void 0:o.association)),u=n.filter(p=>["boolean","date","integer","radio","sort","string","time","uid","uuid"].includes(p.type)).map(p=>p.name),m=Object.keys(i).filter(p=>u.includes(p)).reduce((p,h)=>(p[h]=i[h],p),{}),d={filterByTk:r};return i.__collection&&c&&!["oho","m2o","obo"].includes(c.interface)&&(d.targetCollection=i.__collection),!r&&Object.keys(m).length>0&&(d.filter=m),d},RecordLink=e=>{const t=(0,import_react.useField)(),o=useRecord(),r=e,{title:i,to:n}=r,a=W(r,["title","to"]),l=(0,import_template.default)(n||"");return(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,P(x({},a),{to:l({record:o||{}}),children:t.title}))},ACLContext=(0,import_react2.createContext)({});ACLContext.displayName="ACLContext";const ACLProvider=e=>(0,import_jsx_runtime.jsx)(SchemaComponentOptions,{components:{ACLCollectionFieldProvider,ACLActionProvider,ACLMenuItemProvider,ACLCollectionProvider},children:e.children}),ACLRolesCheckProvider=e=>{const{setDesignable:t}=useDesignable(),{render:o}=useAppSpin(),r=useAPIClient(),i=useApp(),n=useRequest({url:"roles:check"},{manual:!r.auth.token,onSuccess(a){var l,c,u,m;(l=a==null?void 0:a.data)!=null&&l.snippets.includes("ui.*")||t(!1),((c=a==null?void 0:a.data)==null?void 0:c.role)!==r.auth.role&&r.auth.setRole((u=a==null?void 0:a.data)==null?void 0:u.role),i.pluginSettingsManager.setAclSnippets(((m=a==null?void 0:a.data)==null?void 0:m.snippets)||[])}});return n.loading?o():(0,import_jsx_runtime.jsx)(ACLContext.Provider,{value:n,children:e.children})},useRoleRecheck=()=>{const e=(0,import_react2.useContext)(ACLContext),{allowAll:t}=useACLRoleContext();return()=>{t||e.refresh()}},useCurrentRoleMode=()=>{var e,t;const o=(0,import_react2.useContext)(ACLContext);return(t=(e=o==null?void 0:o.data)==null?void 0:e.data)==null?void 0:t.roleMode},useACLContext=()=>(0,import_react2.useContext)(ACLContext),ACLActionParamsContext=(0,import_react2.createContext)({});ACLActionParamsContext.displayName="ACLActionParamsContext";const ACLCustomContext=(0,import_react2.createContext)({});ACLCustomContext.displayName="ACLCustomContext";const useACLCustomContext=()=>(0,import_react2.useContext)(ACLCustomContext),useACLRolesCheck=()=>{var e,t,o;const r=(0,import_react2.useContext)(ACLContext),i=useDataSourceKey(),{dataSources:n}=((e=r==null?void 0:r.data)==null?void 0:e.meta)||{},a=x(x({},(t=r==null?void 0:r.data)==null?void 0:t.data),(0,import_lodash.omit)(n==null?void 0:n[i],"snippets")),l=(0,import_react2.useCallback)(c=>{var u;const m=c.split(":").pop();return((u=a==null?void 0:a.actionAlias)==null?void 0:u[m])||m},[a==null?void 0:a.actionAlias]);return{data:a,getActionAlias:l,inResources:(0,import_react2.useCallback)(c=>{var u,m;return(m=(u=a==null?void 0:a.resources)==null?void 0:u.includes)==null?void 0:m.call(u,c)},[a==null?void 0:a.resources]),getResourceActionParams:(0,import_react2.useCallback)(c=>{var u,m;const[d]=c.split(":"),p=l(c);return((u=a==null?void 0:a.actions)==null?void 0:u[`${d}:${p}`])||((m=a==null?void 0:a.actions)==null?void 0:m[c])},[a==null?void 0:a.actions,l]),getStrategyActionParams:(0,import_react2.useCallback)(c=>{var u,m;const d=l(c);return(m=(u=a==null?void 0:a.strategy)==null?void 0:u.actions)!=null&&m.find(p=>{const[h]=p.split(":");return h===d})?{}:null},[(o=a==null?void 0:a.strategy)==null?void 0:o.actions,l])}},getIgnoreScope=(e={})=>{var t;const{schema:o,recordPkValue:r}=e;let i=!1;return e.ignoreScope&&(i=!0),o!=null&&o["x-acl-ignore-scope"]&&(i=!0),(t=o==null?void 0:o["x-acl-action-props"])!=null&&t.skipScopeCheck&&(i=!0),r||(i=!0),i},useAllowedActions=()=>{var e,t,o,r;const i=useResourceActionContext(),n=useDataBlockRequest();return((t=(e=i==null?void 0:i.data)==null?void 0:e.meta)==null?void 0:t.allowedActions)||((r=(o=n==null?void 0:n.data)==null?void 0:o.meta)==null?void 0:r.allowedActions)},useResourceName=()=>{var e;const t=useResourceActionContext(),o=useDataBlockProps();return(o==null?void 0:o.resource)||(o==null?void 0:o.association)||(o==null?void 0:o.collection)||((e=t==null?void 0:t.defaultRequest)==null?void 0:e.resource)};function useACLRoleContext(){const{data:e,getActionAlias:t,inResources:o,getResourceActionParams:r,getStrategyActionParams:i}=useACLRolesCheck(),n=useAllowedActions(),a=useCollectionManager(),l=(0,import_react2.useCallback)((c,u)=>{const m=t(c);return Array.isArray(n==null?void 0:n[m])?n[m].includes(u):null},[n,t]);return P(x({},e),{snippets:(e==null?void 0:e.snippets)||[],parseAction:(0,import_react2.useCallback)((c,u={})=>{var m;const[d,p]=(c==null?void 0:c.split(":"))||[],h=(d==null?void 0:d.includes("."))&&((m=a.getCollectionField(d))==null?void 0:m.target);if(!getIgnoreScope(u)){const g=l(p,u.recordPkValue);if(g!==null)return g?{}:null}return e!=null&&e.allowAll?{}:o(h)?r(`${h}:${p}`):o(d)?r(c):i(c)},[a,e==null?void 0:e.allowAll,r,i,o,l])})}function useUIConfigurationPermissions(){const{allowAll:e,snippets:t}=useACLRoleContext();return{allowConfigUI:e||t.includes("ui.*")}}const ACLCollectionProvider=e=>{var t,o;const{allowAll:r,parseAction:i}=useACLRoleContext(),{allowAll:n}=useACLCustomContext(),a=useApp(),l=(0,import_react.useFieldSchema)();let c=(l==null?void 0:l["x-acl-action"])||e.actionPath;const u=((t=l==null?void 0:l["x-decorator-props"])==null?void 0:t.association)||((o=l==null?void 0:l["x-decorator-props"])==null?void 0:o.collection);c==="undefined:list"&&u&&u!=="undefined"&&(c=`${u}:list`);const m=(0,import_react2.useMemo)(()=>c?i(c,{schema:l}):null,[i,c,l]);if(r||a.disableAcl||n)return e.children;if(!c)return(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:{},children:e.children});if(!m)return(0,import_jsx_runtime.jsx)(CollectionNotAllowViewPlaceholder,{});const[d,p]=c.split(":");return m.actionName=p,(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:m,children:e.children})},useACLActionParamsContext=()=>(0,import_react2.useContext)(ACLActionParamsContext),useRecordPkValue=()=>{const e=useCollection(),t=useCollectionRecordData();if(!e)return;const o=e.getPrimaryKey();return t==null?void 0:t[o]},ACLActionProvider=e=>{const t=useCollection(),o=useRecordPkValue(),r=useResourceName(),{parseAction:i,uiButtonSchemasBlacklist:n}=useACLRoleContext(),a=(0,import_react.useFieldSchema)(),l=a["x-uid"];let c=a["x-acl-action"];const u=["create","update","destroy","importXlsx","export"],m=["create","update","destroy","importXlsx","bulkDestroy","bulkUpdate"];!c&&r&&a["x-action"]&&u.includes(a["x-action"])&&(c=`${r}:${a["x-action"]}`),c&&!(c!=null&&c.includes(":"))&&(c=`${r}:${c}`);const d=(0,import_react2.useMemo)(()=>c&&i(c,{schema:a,recordPkValue:o}),[i,c,a,o]);return n!=null&&n.includes(l)?(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:!1,children:e.children}):c?r?d?m.includes(c)||m.includes(c==null?void 0:c.split(":")[1])?t&&t.template!=="view"||t!=null&&t.writableView?(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:d,children:e.children}):(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:!1,children:e.children}):(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:d,children:e.children}):(0,import_jsx_runtime.jsx)(ACLActionParamsContext.Provider,{value:d,children:e.children}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children})},useACLFieldWhitelist=()=>{const e=(0,import_react2.useContext)(ACLActionParamsContext),t=(0,import_react2.useMemo)(()=>[].concat((e==null?void 0:e.whitelist)||[]).concat((e==null?void 0:e.fields)||[]).concat((e==null?void 0:e.appends)||[]),[e==null?void 0:e.whitelist,e==null?void 0:e.fields,e==null?void 0:e.appends]);return{whitelist:t,schemaInWhitelist:(0,import_react2.useCallback)((o,r)=>{if(r||t.length===0||!o||!o["x-collection-field"])return!0;const[i,n]=o["x-collection-field"].split("."),[a]=o.name.split(".");return t==null?void 0:t.includes(a||n||i)},[t])}},ACLCollectionFieldProvider=e=>{const t=(0,import_react.useFieldSchema)(),o=(0,import_react.useField)(),{allowAll:r}=useACLRoleContext(),{whitelist:i}=useACLFieldWhitelist(),[n]=t.name.split("."),a=!t["x-acl-ignore"]&&i.length>0&&t!=null&&t["x-collection-field"]?i.includes(n):!0;return(0,import_react2.useEffect)(()=>{a||(o.required=!1,o.display="hidden")},[a,o]),r?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):t["x-collection-field"]?a?(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}):null:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children})},ACLMenuItemProvider=e=>(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:e.children}),useAdminSchemaUid=()=>"nocobase-admin-menu",useViewportMeta=()=>{const e=(0,import_react2.useRef)("initial-scale=0.1"),t=(0,import_react2.useRef)();return(0,import_react2.useEffect)(()=>{let o=document.querySelector('meta[name="viewport"]');o?e.current=o.content:(o=document.createElement("meta"),o.name="viewport"),o&&(o.content="width=device-width, initial-scale=1, user-scalable=0",t.current=o)},[]),{metaRef:t,restore:()=>{t.current&&(t.current.content=e.current)}}};function useViewport(){const{metaRef:e,restore:t}=useViewportMeta();(0,import_react2.useEffect)(()=>{if(e.current)return document.head.insertBefore(e.current,document.head.firstChild),()=>{t()}},[])}const MenuItemsContext=(0,import_react2.createContext)(null);MenuItemsContext.displayName="MenuItemsContext";const toItems=(e={})=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const r=e[o],i={title:r.title,uid:r["x-uid"]};r.properties&&(i.children=toItems(r.properties)),t.push(i)}return t},useMenuItems=()=>(0,import_react2.useContext)(MenuItemsContext),MenuItemsProvider=e=>{var t,o;const r={url:`uiSchemas:getProperties/${useAdminSchemaUid()}`},i=useRequest(r);if(i.loading)return(0,import_jsx_runtime.jsx)(import_antd.Spin,{});const n=toItems((o=(t=i.data)==null?void 0:t.data)==null?void 0:o.properties);return(0,import_jsx_runtime.jsx)(MenuItemsContext.Provider,{value:{service:i,items:n},children:e.children})},findUids=e=>{if(!Array.isArray(e))return[];const t=[];for(const o of e)t.push(o.uid),t.push(...findUids(o.children));return t},getParentUids=(e,t,o=[])=>{if(!e)return[];for(const r of e){if(o.push(r.uid),t(r))return o;if(r.children){const i=getParentUids(r.children,t,o);if(i.length)return i}o.pop()}return[]},getChildrenUids=(e=[],t=[])=>{for(const o of e)t.push(o.uid),o.children&&o.children.length&&getChildrenUids(o.children,t);return t},MenuConfigure=()=>{const e=useRecord(),t=useAPIClient(),{items:o}=useMenuItems(),{t:r}=(0,import_react_i18next.useTranslation)(),i=findUids(o),[n,a]=(0,import_react2.useState)([]),{loading:l,refresh:c}=useRequest({resource:"roles.menuUiSchemas",resourceOf:e.name,action:"list",params:{paginate:!1}},{onSuccess(h){var g;a(((g=h==null?void 0:h.data)==null?void 0:g.map(_=>_["x-uid"]))||[])}}),u=t.resource("roles.menuUiSchemas",e.name),m=i.length===n.length,d=(h,g)=>z(void 0,null,function*(){const _=getParentUids(o,v=>v.uid===g.uid),f=getChildrenUids(g==null?void 0:g.children,[]);if(h){const v=f.concat(g.uid),b=n.filter(S=>!v.includes(S));a([...b]),yield u.remove({values:v})}else{const v=f.concat(_);a(b=>(0,import_lodash.uniq)([...b,...v])),yield u.add({values:v})}import_antd.message.success(r("Saved successfully"))}),p=h=>h.map(g=>{const _=r(g.title);return g.children?P(x({},g),{title:_,children:p(g.children)}):P(x({},g),{title:_})});return(0,import_jsx_runtime.jsx)(import_antd.Table,{className:antTableCell,loading:l,rowKey:"uid",pagination:!1,expandable:{defaultExpandAllRows:!0},columns:[{dataIndex:"title",title:r("Menu item title")},{dataIndex:"accessible",title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:m,onChange:h=>z(void 0,null,function*(){m?yield u.set({values:[]}):yield u.set({values:i}),c(),import_antd.message.success(r("Saved successfully"))})})," ",r("Accessible")]}),render:(h,g)=>{const _=n.includes(g.uid);return(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:_,onChange:()=>d(_,g)})}}],dataSource:p(o)})},SettingCenterPermissionProvider=e=>{var t;const{currentRecord:o}=(0,import_react2.useContext)(PermissionContext);return(t=o==null?void 0:o.snippets)!=null&&t.includes("pm.*")?(0,import_jsx_runtime.jsx)("div",{children:e.children}):null},PermissionContext=(0,import_react2.createContext)(null);PermissionContext.displayName="PermissionContext";const PermissionProvider=e=>{const t=useAPIClient(),o=useRecord(),{t:r}=(0,import_react_i18next.useTranslation)(),{snippets:i}=o;i==null||i.forEach(l=>{o[l]=!0});const[n,a]=(0,import_react2.useState)(o);return(0,import_jsx_runtime.jsx)(PermissionContext.Provider,{value:{currentRecord:n,update:(l,c)=>z(void 0,null,function*(){const{path:u,value:m}=l.getState();if(["ui.*","pm","pm.*"].includes(u)){const d=t.resource("roles.snippets",o.name);m?yield d.add({values:[u]}):yield d.remove({values:[u]}),a(P(x(x({},n),c.values),{[u]:m}))}else yield t.resource("roles").update({filterByTk:o.name,values:c.values}),a(x(x({},n),c.values));import_antd.message.success(r("Saved successfully"))})},children:e.children})},SnippetCheckboxGroup=(0,import_react.connect)(e=>{const{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(import_antd.Checkbox.Group,{style:{width:"100%",display:"block"},value:e.value,onChange:o=>{const r=["ui.*","pm","pm.*","app"],i=r.map(a=>`!${a}`),n=(0,import_uniq.default)([...e.value||[],...o]).filter(a=>a&&!i.includes(a)).map(a=>!r.includes(a)||o!=null&&o.includes(a)?a:`!${a}`);for(const a of r)!n.includes(a)&&!n.includes(`!${a}`)&&n.push(`!${a}`);e.onChange(n)},children:[(0,import_jsx_runtime.jsx)("div",{style:{marginTop:16},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"ui.*",children:t("Allows to configure interface")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:8},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"pm",children:t("Allows to install, activate, disable plugins")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:8},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"pm.*",children:t("Allows to configure plugins")})}),(0,import_jsx_runtime.jsx)("div",{style:{marginTop:8},children:(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{value:"app",children:t("Allows to clear cache, reboot application")})})]})}),RoleConfigure=()=>{const{update:e,currentRecord:t}=(0,import_react2.useContext)(PermissionContext),{t:o}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(SchemaComponent,{components:{SnippetCheckboxGroup},schema:{type:"void",name:"form","x-component":"Form","x-component-props":{useValues:r=>{const i=useAPIClient();return useRequest(()=>i.resource("roles").get({filterByTk:t.name}).then(n=>{var a,l;const c=(a=n==null?void 0:n.data)==null?void 0:a.data;return(l=c.snippets)==null||l.forEach(u=>{c[u]=!0}),{data:c}}),r)},effects(){(0,import_core.onFieldChange)("*",(r,i)=>z(this,null,function*(){i.modified&&(yield e(r,i))}))}},properties:{snippets:{title:o("Configure permissions"),type:"boolean","x-decorator":"FormItem","x-component":"SnippetCheckboxGroup"},allowNewMenu:{title:o("Menu permissions"),"x-decorator":"FormItem","x-component":"Checkbox","x-content":o("New menu items are allowed to be accessed by default.")}}}})},collection={name:"roles",filterTargetKey:"name",targetKey:"name",fields:[{type:"integer",name:"title",interface:"input",uiSchema:{title:'{{t("Role display name")}}',type:"number","x-component":"Input",required:!0}},{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Role UID")}}',type:"string","x-component":"Input"}},{type:"boolean",name:"default",interface:"boolean",uiSchema:{title:'{{t("Default role")}}',type:"boolean","x-component":"Checkbox"}}]},roleSchema={type:"object",properties:{block1:{type:"void","x-decorator":"ResourceActionProvider","x-decorator-props":{collection,resourceName:"roles",request:{resource:"roles",action:"list",params:{pageSize:50,filter:{"name.$ne":"root"},showAnonymous:!0,sort:["createdAt"],appends:[]}}},"x-component":"CollectionProvider_deprecated","x-component-props":{collection},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{delete:{type:"void",title:'{{ t("Delete") }}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useBulkDestroyAction }}",confirm:{title:"{{t('Delete role')}}",content:"{{t('Are you sure you want to delete it?')}}"}}},create:{type:"void",title:'{{t("Add role")}}',"x-component":"Action","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues(e){const t=useActionContext();return useRequest(()=>Promise.resolve({data:{name:`r_${(0,import_shared.uid)()}`,snippets:["!ui.*","!pm","!pm.*"]}}),P(x({},e),{refreshDeps:[t.visible]}))}},title:'{{t("Add role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem",description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with an letter.")}}'},default:{"x-component":"CollectionField","x-decorator":"FormItem",title:"","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useCreateAction }}"}}}}}}}}}},table:{type:"void","x-uid":"input","x-component":"Table.Void","x-component-props":{rowKey:"name",rowSelection:{type:"checkbox"},useDataSource:"{{ cm.useDataSourceFromRAC }}"},properties:{column1:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{title:{type:"number","x-component":"CollectionField","x-read-pretty":!0}}},column2:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column3:{type:"void","x-decorator":"Table.Column.Decorator","x-component":"Table.Column",properties:{default:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},column4:{type:"void",title:'{{t("Actions")}}',"x-component":"Table.Column",properties:{actions:{type:"void","x-component":"Space","x-component-props":{split:"|"},properties:{view:{type:"void",title:'{{t("Configure")}}',"x-component":"Action.Link","x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component-props":{},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"PermissionProvider",title:'{{t("Configure permissions")}}',properties:{tabs1:{type:"void","x-component":"Tabs","x-component-props":{},properties:{tab1:{type:"void",title:'{{t("General permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{role:{"x-component":"RoleConfigure"}}},tab3:{type:"void",title:'{{t("Menu permissions")}}',"x-component":"Tabs.TabPane","x-component-props":{},properties:{menu:{"x-decorator":"MenuItemsProvider","x-component":"MenuConfigure"}}},tab4:{type:"void",title:'{{t("Plugin settings permissions")}}',"x-decorator":"SettingCenterPermissionProvider","x-component":"Tabs.TabPane","x-component-props":{},properties:{menu:{"x-decorator":"SettingCenterProvider","x-component":"SettingsCenterConfigure"}}}}}}}}},update:{type:"void",title:'{{t("Edit")}}',"x-decorator":"ACLActionProvider","x-acl-action":"roles:update","x-component":"Action.Link","x-component-props":{type:"primary"},properties:{drawer:{type:"void","x-component":"Action.Drawer","x-decorator":"Form","x-decorator-props":{useValues:e=>{const t=useRecord(),o=useRequest(()=>Promise.resolve({data:(0,import_pick.default)(t,["title","name","default"])}),P(x({},e),{manual:!0})),r=useActionContext();return(0,import_react2.useEffect)(()=>{r.visible&&o.run()},[r.visible]),o}},title:'{{t("Edit role")}}',properties:{title:{"x-component":"CollectionField","x-decorator":"FormItem"},name:{"x-component":"CollectionField","x-decorator":"FormItem","x-disabled":!0},default:{title:"","x-component":"CollectionField","x-decorator":"FormItem","x-content":'{{t("Default role")}}'},footer:{type:"void","x-component":"Action.Drawer.Footer",properties:{cancel:{title:'{{t("Cancel")}}',"x-component":"Action","x-component-props":{useAction:"{{ cm.useCancelAction }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",useAction:"{{ cm.useUpdateAction }}"}}}}}}}},delete:{type:"void",title:'{{ t("Delete") }}',"x-acl-action":"roles:destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{confirm:{title:"{{t('Delete role')}}",content:"{{t('Are you sure you want to delete it?')}}"},useAction:"{{cm.useDestroyAction}}"}}}}}}}}}}}},AvailableActionsContext=(0,import_react2.createContext)([]);AvailableActionsContext.displayName="AvailableActionsContext";const AvailableActionsProver=e=>{const{data:t,loading:o}=useRequest({resource:"availableActions",action:"list"});return o?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):(0,import_jsx_runtime.jsx)(AvailableActionsContext.Provider,{value:t==null?void 0:t.data,children:e.children})},useAvailableActions=()=>(0,import_react2.useContext)(AvailableActionsContext),RoleTable=()=>(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(SchemaComponentContext.Provider,{value:{designable:!1},children:(0,import_jsx_runtime.jsx)(AvailableActionsProver,{children:(0,import_jsx_runtime.jsx)(SchemaComponent,{schema:roleSchema,components:{MenuItemsProvider,SettingCenterPermissionProvider,PermissionProvider}})})})}),rolesResourcesScopesCollection={name:"rolesResourcesScopes",fields:[{type:"string",name:"name",interface:"input",uiSchema:{title:'{{t("Scope name")}}',type:"string","x-component":"Input",required:!0}}]},useFormBlockProps=()=>{const{name:e}=(0,import_react2.useContext)(RoleResourceCollectionContext),t=useFormBlockContext();return(0,import_react2.useEffect)(()=>{t.form.setInitialValues({resourceName:e})},[e]),{form:t.form}},scopesSchema={type:"object",properties:{scope:{"x-component":"RecordPicker","x-component-props":{size:"small",fieldNames:{label:"name",value:"id"},multiple:!1,association:{target:"rolesResourcesScopes"},onChange:"{{ onChange }}"},properties:{selector:{type:"void",title:'{{ t("Select record") }}',"x-component":"RecordPicker.Selector","x-component-props":{className:"nb-record-picker-selector"},properties:{tableBlock:{type:"void","x-decorator":"TableSelectorProvider","x-decorator-props":{collection:rolesResourcesScopesCollection,resource:"rolesResourcesScopes",action:"list",params:{pageSize:20},useParams(){return{filter:{$or:[{resourceName:(0,import_react2.useContext)(RoleResourceCollectionContext).name},{resourceName:null}]}}},rowKey:"id"},"x-component":"BlockItem",properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{style:{marginBottom:16}},properties:{create:{type:"void",title:'{{ t("Add new") }}',"x-action":"create","x-component":"Action","x-component-props":{icon:"PlusOutlined",openMode:"drawer",type:"primary"},properties:{drawer:{type:"void",title:'{{ t("Add record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:"rolesResourcesScopes",collection:rolesResourcesScopesCollection},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":useFormBlockProps,properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const e=(0,import_react2.useContext)(RoleResourceCollectionContext);return{options:useFilterOptions(e.name)}},"x-component-props":{dynamicComponent:VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{create:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useCreateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}}}},value:{type:"array","x-component":"TableV2.Selector","x-use-component-props":"useTableSelectorProps","x-component-props":{rowKey:"id",rowSelection:{type:"checkbox"}},properties:{column1:{type:"void","x-decorator":"TableV2.Column.Decorator","x-component":"TableV2.Column",properties:{name:{type:"string","x-component":"CollectionField","x-read-pretty":!0}}},actions:{type:"void",title:'{{ t("Actions") }}',"x-action-column":"actions","x-component":"TableV2.Column",properties:{actions:{type:"void","x-decorator":"DndContext","x-component":"Space","x-component-props":{split:"|"},properties:{edit:{type:"void",title:'{{ t("Edit") }}',"x-action":"update","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-component-props":{openMode:"drawer"},properties:{drawer:{type:"void",title:'{{ t("Edit record") }}',"x-component":"Action.Container","x-component-props":{className:"nb-action-popup"},properties:{formBlock:{type:"void","x-decorator":"FormBlockProvider","x-decorator-props":{resource:"rolesResourcesScopes",collection:rolesResourcesScopesCollection,action:"get",useParams:"{{ useParamsFromRecord }}"},"x-component":"CardItem",properties:{form:{type:"void","x-component":"FormV2","x-use-component-props":"useFormBlockProps",properties:{name:{type:"string","x-component":"CollectionField","x-decorator":"FormItem"},scope:{type:"object",title:'{{t("Data scope")}}',name:"filter","x-decorator":"FormItem","x-component":"Filter","x-use-component-props":()=>{const e=(0,import_react2.useContext)(RoleResourceCollectionContext);return{options:useFilterOptions(e.name)}},"x-component-props":{dynamicComponent:VariableInput}},actions:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{marginTop:24}},properties:{update:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"useUpdateActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},destroy:{title:'{{ t("Delete") }}',"x-action":"destroy","x-decorator":"ACLActionProvider","x-component":"Action.Link","x-use-component-props":"useDestroyActionProps","x-component-props":{icon:"DeleteOutlined",confirm:{title:"{{t('Delete record')}}",content:"{{t('Are you sure you want to delete it?')}}"}}}}}}}}}}},footer:{"x-component":"Action.Container.Footer","x-component-props":{},properties:{actions:{type:"void","x-component":"ActionBar","x-component-props":{},properties:{submit:{title:'{{ t("Submit") }}',"x-action":"submit","x-component":"Action","x-use-component-props":"usePickActionProps","x-component-props":{type:"primary",htmlType:"submit"}}}}}}}}}}}},RolesResourcesScopesSelectedRowKeysContext=(0,import_react2.createContext)(null);RolesResourcesScopesSelectedRowKeysContext.displayName="RolesResourcesScopesSelectedRowKeysContext";const RolesResourcesScopesSelectedRowKeysProvider=e=>{const[t,o]=(0,import_react2.useState)([]);return(0,import_jsx_runtime.jsx)(RolesResourcesScopesSelectedRowKeysContext.Provider,{value:[t,o],children:e.children})},useRolesResourcesScopesSelectedRowKeys=()=>(0,import_react2.useContext)(RolesResourcesScopesSelectedRowKeysContext),ScopeSelect=e=>{const t=(0,import_react2.useMemo)(()=>(0,import_core.createForm)({values:{scope:e.value}}),[]);return(0,import_jsx_runtime.jsx)(FormProvider,{form:t,children:(0,import_jsx_runtime.jsx)(SchemaComponent,{components:{RolesResourcesScopesSelectedRowKeysProvider},scope:{onChange(o){var r;(r=e==null?void 0:e.onChange)==null||r.call(e,o)}},schema:scopesSchema})})},toActionMap=e=>{var t;const o={};return(t=e==null?void 0:e.forEach)==null||t.call(e,r=>{r.name&&(o[r.name]=r,o[r.name].scope=(0,import_lodash.isEmpty)(r.scope)?null:r.scope)}),o},RoleResourceCollectionContext=(0,import_react2.createContext)({});RoleResourceCollectionContext.displayName="RoleResourceCollectionContext";const RolesResourcesActions=(0,import_react.connect)(e=>{var t,o,r,i;const n=F=>{const I=F.map(T=>P(x({},T),{scope:(0,import_lodash.isEmpty)(T.scope)?null:T.scope}));e.onChange(I)};(0,import_react.useForm)();const a=useRecord(),l=useAvailableActions(),{getCollection:c,getCollectionFields:u}=useCollectionManager_deprecated(),m=c(a.collectionName),d=u(a.collectionName),p=useCompile(),{t:h}=(0,import_react_i18next.useTranslation)(),g=(0,import_react.useField)(),_=toActionMap(g.value||[]),f=(F,I)=>{var T;const k=_==null?void 0:_[F];return k?(T=k==null?void 0:k.fields)==null?void 0:T.includes(I):!1},v=l.filter(F=>F.allowConfigureFields),b=(t=d==null?void 0:d.filter(F=>F.interface))==null?void 0:t.map(F=>{const I=x({},F);for(const T of v)I[T.name]=f(T.name,F.name);return I}),S=F=>{var I,T;_[F]?delete _[F]:_[F]={name:F,fields:(T=(I=d==null?void 0:d.filter(k=>k.interface))==null?void 0:I.map)==null?void 0:T.call(I,k=>k.name)},n(Object.values(_))},C=(F,I)=>{_[F]?(_[F].scope=I,n(Object.values(_))):(S(F),_[F].scope=I)},y={};for(const F of v)y[F.name]=((o=d==null?void 0:d.filter(I=>I.interface))==null?void 0:o.length)===((i=(r=_==null?void 0:_[F.name])==null?void 0:r.fields)==null?void 0:i.length);return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(RoleResourceCollectionContext.Provider,{value:m,children:(0,import_jsx_runtime.jsxs)(import_antd_v5.FormLayout,{layout:"vertical",children:[(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:h("Action permission"),children:(0,import_jsx_runtime.jsx)(import_antd.Table,{className:antTableCell,size:"small",pagination:!1,columns:[{dataIndex:"displayName",title:h("Action display name"),render:F=>p(F)},{dataIndex:"onNewRecord",title:h("Action type"),render:F=>F?(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"green",children:h("Action on new records")}):(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"geekblue",children:h("Action on existing records")})},{dataIndex:"enabled",title:h("Allow"),render:(F,I)=>(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:F,onChange:()=>{S(I.name)}})},{dataIndex:"scope",title:h("Data scope"),render:(F,I)=>!I.onNewRecord&&(0,import_jsx_runtime.jsx)(ScopeSelect,{value:F,onChange:T=>{C(I.name,T)}})}],dataSource:l==null?void 0:l.map(F=>{let I=!1,T=null;return _[F.name]&&(I=!0,F.onNewRecord||(T=_[F.name].scope)),P(x({},F),{enabled:I,scope:T})})})}),(0,import_jsx_runtime.jsx)(import_antd_v5.FormItem,{label:h("Field permission"),children:(0,import_jsx_runtime.jsx)(import_antd.Table,{className:antTableCell,pagination:!1,dataSource:b,columns:[{dataIndex:["uiSchema","title"],title:h("Field display name"),render:F=>p(F)},...v.map(F=>{const I=y==null?void 0:y[F.name];return{dataIndex:F.name,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:I,onChange:()=>{var T;const k=_[F.name]||{name:F.name};I?k.fields=[]:k.fields=(T=d==null?void 0:d.map)==null?void 0:T.call(d,N=>N.name),_[F.name]=k,n(Object.values(_))}})," ",p(F.displayName)]}),render:(T,k)=>(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:T,"aria-label":`${F.name}_checkbox`,onChange:()=>{const N=_[F.name]||{name:F.name},M=N.fields||[];if(T){const L=M.indexOf(k.name);M.splice(L,1)}else M.push(k.name);N.fields=M,_[F.name]=N,n(Object.values(_))}})}})]})})]})})})}),toScopes=e=>{var t;if(!e)return{};const o={};return(t=e==null?void 0:e.forEach)==null||t.call(e,r=>{const[i,n]=r.split(":");o[i]=n||"all"}),o},toFieldValue=e=>{const t=[];for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const r=e[o];r==="all"?t.push(o):t.push(`${o}:${r}`)}return t},StrategyActions=(0,import_react.connect)(e=>{const{onChange:t}=e,o=useAvailableActions(),r=useCompile(),{t:i}=(0,import_react_i18next.useTranslation)(),n=(0,import_react.useField)(),a=toScopes(n.value);return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsx)(import_antd.Table,{size:"small",pagination:!1,rowKey:"name",columns:[{dataIndex:"displayName",title:i("Action display name"),render:l=>r(l)},{dataIndex:"onNewRecord",title:i("Action type"),render:l=>l?(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"green",children:i("Action on new records")}):(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:"geekblue",children:i("Action on existing records")})},{dataIndex:"enabled",title:i("Allow"),render:(l,c)=>(0,import_jsx_runtime.jsx)(import_antd.Checkbox,{checked:l,"aria-label":`${c.name}_checkbox`,onChange:u=>{l?delete a[c.name]:a[c.name]="all",t(toFieldValue(a))}})},{dataIndex:"scope",title:i("Data scope"),render:(l,c)=>!c.onNewRecord&&(0,import_jsx_runtime.jsx)(import_antd.Select,{"data-testid":"select-data-scope",popupMatchSelectWidth:!1,size:"small",value:l,options:[{label:i("All records"),value:"all"},{label:i("Own records"),value:"own"}],onChange:u=>{a[c.name]=u,t(toFieldValue(a))}})}],dataSource:o==null?void 0:o.map(l=>{let c="all",u=!1;return a[l.name]&&(u=!0,c=a[l.name]),P(x({},l),{enabled:u,scope:c})})})})}),PluginManagerLink=()=>{const{t:e}=(0,import_react_i18next.useTranslation)(),t=useNavigateNoUpdate(),{token:o}=useToken(),{isMobileLayout:r}=useMobileLayout();return r?null:(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:e("Plugin manager"),children:(0,import_jsx_runtime.jsx)(import_antd.Button,{"data-testid":"plugin-manager-button",icon:(0,import_jsx_runtime.jsx)(import_icons.ApiOutlined,{style:{color:o.colorTextHeaderMenu}}),title:e("Plugin manager"),onClick:()=>{t("/admin/pm/list")}})})},SettingsCenterDropdown=()=>{const e=useCompile(),{t}=(0,import_react_i18next.useTranslation)(),{token:o}=useToken(),r=useApp(),i=(0,import_react2.useMemo)(()=>r.pluginSettingsManager.getList().filter(a=>a.isTopLevel!==!1).map(a=>({key:a.name,icon:a.icon,label:a.link?(0,import_jsx_runtime.jsx)("div",{onClick:()=>window.open(a.link),children:e(a.title)}):(0,import_jsx_runtime.jsx)(import_react_router_dom.Link,{to:a.path,children:e(a.title)})})),[r,t]);(0,import_react2.useEffect)(()=>()=>{r.pluginSettingsManager.clearCache()},[r.pluginSettingsManager]);const{isMobileLayout:n}=useMobileLayout();return n?null:(0,import_jsx_runtime.jsx)(import_antd.Dropdown,{menu:{style:{maxHeight:"70vh",overflow:"auto"},items:i},children:(0,import_jsx_runtime.jsx)(import_antd.Button,{"data-testid":"plugin-settings-button",icon:(0,import_jsx_runtime.jsx)(import_icons.SettingOutlined,{style:{color:o.colorTextHeaderMenu}})})})},useStyles$1=(0,import_antd_style.createStyles)(({token:e})=>({cardActionDisabled:{color:e.colorTextDisabled,cursor:"not-allowed"},pageHeader:{backgroundColor:e.colorBgContainer,paddingTop:e.paddingSM,paddingBottom:0,paddingInline:e.paddingLG,".ant-page-header-footer":{marginBlockStart:"0"},"& .ant-tabs-nav":{marginBottom:0},".ant-page-header-heading-title":{color:e.colorText}},pageContent:{margin:e.marginLG},PluginDetailBaseInfo:{display:"flex",flexDirection:"column",marginBottom:e.margin},PluginDocument:{background:e.colorBgContainer,padding:e.paddingLG,height:"60vh",overflowY:"auto"},avatar:{".ant-card-meta-avatar":{marginTop:"8px",".ant-avatar":{borderRadius:"2px"}}},version:{display:"block",color:e.colorTextDescription,fontWeight:"normal",fontSize:e.fontSize}}));import_dayjs.default.extend(import_relativeTime.default);const PluginDetail=({plugin:e,onCancel:t})=>{var o,r,i,n,a,l,c,u;const{t:m}=(0,import_react_i18next.useTranslation)(),d=(0,import_react2.useMemo)(()=>[{title:m("Name"),dataIndex:"name",key:"name"},{title:m("Version range"),dataIndex:"versionRange",key:"versionRange"},{title:m("Plugin's version"),dataIndex:"packageVersion",key:"packageVersion"},{title:m("Result"),dataIndex:"result",key:"result",render:S=>(0,import_jsx_runtime.jsx)(import_antd.Tag,{color:S?"success":"error",children:S?"Yes":"No"})}],[m]),{data:p,loading:h}=useRequest({url:"pm:get",params:{filterByTk:e.name}},{refreshDeps:[e.name],ready:!!e.name}),g=(0,import_react2.useMemo)(()=>{var S,C,y;if(!((C=(S=p==null?void 0:p.data)==null?void 0:S.packageJson)!=null&&C.repository))return null;const F=(y=p==null?void 0:p.data)==null?void 0:y.packageJson.repository;return(typeof F=="string"?F:F.url).replace(/\.git$/,"").replace(/^git\+/,"")},[p]),_=(0,import_react2.useMemo)(()=>{var S;const C=(S=p==null?void 0:p.data)==null?void 0:S.packageJson.author;return C?typeof C=="string"?C:C.name:null},[p]),{styles:f,theme:v}=useStyles$1(),b=[{key:"readme",label:m("Readme"),children:(0,import_jsx_runtime.jsxs)(import_antd.Row,{gutter:20,children:[e.name&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Name")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.name})]})}),e.displayName&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("DisplayName")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.displayName})]})}),(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("PackageName")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.packageName})]})}),g&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Repository")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:g})]})}),((o=p==null?void 0:p.data)==null?void 0:o.homepage)&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Homepage")}),(0,import_jsx_runtime.jsx)("a",{href:(r=p==null?void 0:p.data)==null?void 0:r.homepage,target:"_blank",rel:"noreferrer",children:(i=p==null?void 0:p.data)==null?void 0:i.homepage})]})}),e.description&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Description")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e.description})]})}),((n=p==null?void 0:p.data)==null?void 0:n.packageJson.license)&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("License")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:(a=p==null?void 0:p.data)==null?void 0:a.packageJson.license})]})}),_&&(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Author")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:_})]})}),(0,import_jsx_runtime.jsx)(import_antd.Col,{span:24,children:(0,import_jsx_runtime.jsxs)("div",{className:f.PluginDetailBaseInfo,children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"secondary",children:m("Version")}),(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{strong:!0,children:e==null?void 0:e.version})]})})]})},{key:"dependencies",label:m("Dependencies compatibility check"),children:(0,import_jsx_runtime.jsx)(import_jsx_runtime.Fragment,{children:((l=p==null?void 0:p.data)==null?void 0:l.depsCompatible)===!1?(0,import_jsx_runtime.jsx)(import_antd.Typography.Text,{type:"danger",children:m("`dist/externalVersion.js` not found or failed to `require`. Please rebuild this plugin.")}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[!((c=p==null?void 0:p.data)!=null&&c.isCompatible)&&(0,import_jsx_runtime.jsx)(import_antd.Alert,{showIcon:!0,type:"error",message:m("Plugin dependencies check failed, you should change the dependent version to meet the version requirements.")}),(0,import_jsx_runtime.jsx)(import_antd.Table,{style:{marginTop:v.margin},rowKey:"name",pagination:!1,columns:d,dataSource:(u=p==null?void 0:p.data)==null?void 0:u.depsCompatible})]})})}];return(0,import_jsx_runtime.jsx)(import_antd.Modal,{open:!!e,footer:!1,destroyOnClose:!0,width:600,onCancel:t,children:h?(0,import_jsx_runtime.jsx)(import_antd.Spin,{}):e&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_antd.Typography.Title,{level:3,children:e.packageName}),(0,import_jsx_runtime.jsx)(import_antd.Space,{split:(0,import_jsx_runtime.jsx)("span",{children:" • "}),children:(0,import_jsx_runtime.jsx)("span",{children:e.version})}),(0,import_jsx_runtime.jsx)(import_antd.Tabs,{style:{minHeight:"50vh"},items:b,defaultActiveKey:e.isCompatible?void 0:"dependencies"})]})})},PluginNpmForm=({onClose:e,isUpgrade:t,pluginData:o})=>{import_antd.App.useApp();const r=[],i=()=>{const c=useAPIClient();(0,import_react_i18next.useTranslation)();const u=(0,import_react.useForm)();return{run(){return z(this,null,function*(){yield u.submit(),c.request({url:t?"pm:update":"pm:add",method:"post",data:x({},u.values)}),e(!0)})}}},n=c=>useRequest(()=>Promise.resolve({data:t?(0,import_lodash.pick)(o,["name","packageName","version"]):{}}),c),a=()=>({run(){e()}}),l=(0,import_react2.useMemo)(()=>{const c=(0,import_shared.uid)(),u={type:"object",properties:{[c]:{"x-decorator":"Form","x-component":"div",type:"void","x-decorator-props":{useValues:"{{ useValuesFromProps }}"},properties:{packageName:{type:"string",title:"{{t('Npm package name')}}","x-decorator":"FormItem","x-component":"Input",required:!0,"x-component-props":{disabled:!0}},registry:{type:"string",title:"{{t('Registry url')}}",default:"https://registry.npmjs.org/","x-decorator":"FormItem","x-component":"Input","x-decorator-props":{tooltip:"Example: https://registry.npmjs.org/"}},authToken:{type:"string",title:"{{t('Npm authToken')}}","x-decorator":"FormItem","x-component":"Input"},version:{type:"string",title:"{{t('Version')}}","x-decorator":"FormItem","x-component":"Input"},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{justifyContent:"right"}},properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCancel }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useSaveValues }}"}}}}}}}};return u.properties[c].properties.packageName["x-component-props"].disabled=t,t||delete u.properties[c].properties.version,u},[t]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCancel:a,useSaveValues:i,versionList:r,useValuesFromProps:n},schema:l})};PluginNpmForm.displayName="PluginNpmForm";const PluginUploadForm=({onClose:e,pluginData:t,isUpgrade:o})=>{const{message:r}=import_antd.App.useApp(),i=()=>{const l=useAPIClient(),{t:c}=(0,import_react_i18next.useTranslation)(),u=(0,import_react.useForm)();return{run(){return z(this,null,function*(){var m,d;yield u.submit();const p=new FormData;p.append("file",(d=(m=u.values.uploadFile)==null?void 0:m[0])==null?void 0:d.originFileObj),t!=null&&t.packageName&&p.append("packageName",t.packageName),yield l.request({url:`pm:${o?"update":"add"}`,method:"post",data:p}),import_antd.Modal.info({icon:null,width:520,content:(0,import_jsx_runtime.jsx)(import_antd.Result,{icon:(0,import_jsx_runtime.jsx)(import_icons.LoadingOutlined,{}),title:c("Plugin uploading"),subTitle:c("Plugin is uploading, please wait...")}),footer:null}),e(!0);function h(){l.silent().request({url:"__health_check",method:"get"}).then(g=>{(g==null?void 0:g.data)==="ok"&&window.location.reload()}).catch(g=>{})}setInterval(h,1e3)})}}},n=()=>({run(){e()}}),a=(0,import_react2.useMemo)(()=>({type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-component":"div",type:"void",properties:{uploadFile:{type:"string","x-decorator":"FormItem","x-component":"Upload.Dragger",required:!0,"x-component-props":{action:"",multiple:!1,maxCount:1,height:"150px",tipContent:"{{t('Drag and drop the file here or click to upload, file size should not exceed 30M')}}",beforeUpload:l=>(/\.(zip|rar|tar|gz|bz2|tgz)$/.test(l.name)||r.error("File only support zip, rar, tar, gz, bz2!"),l.size/1024/1024<30||r.error("File must smaller than 30MB!"),!1)}},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{justifyContent:"right"}},properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCancel }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useSaveValues }}"}}}}}}}}),[r]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCancel:n,useSaveValues:i},schema:a})},PluginUrlForm=({onClose:e,pluginData:t,isUpgrade:o})=>{import_antd.App.useApp();const r=()=>{const l=useAPIClient();(0,import_react_i18next.useTranslation)();const c=(0,import_react.useForm)();return{run(){return z(this,null,function*(){const u=c.values.compressedFileUrl;if(!u)return;yield c.submit();const m={compressedFileUrl:u};t!=null&&t.packageName&&(m.packageName=t.packageName),l.request({url:`pm:${o?"update":"add"}`,method:"post",data:m}),e(!0)})}}},i=l=>useRequest(()=>Promise.resolve({data:{compressedFileUrl:t.compressedFileUrl}}),l),n=()=>({run(){e()}}),a=(0,import_react2.useMemo)(()=>({type:"object",properties:{[(0,import_shared.uid)()]:{"x-decorator":"Form","x-component":"div",type:"void","x-decorator-props":{useValues:"{{ useValuesFromProps }}"},properties:{compressedFileUrl:{type:"string","x-decorator":"FormItem","x-component":"Input",required:!0},footer:{type:"void","x-component":"ActionBar","x-component-props":{layout:"one-column",style:{justifyContent:"right"}},properties:{cancel:{title:"Cancel","x-component":"Action","x-component-props":{useAction:"{{ useCancel }}"}},submit:{title:'{{t("Submit")}}',"x-component":"Action","x-component-props":{type:"primary",htmlType:"submit",useAction:"{{ useSaveValues }}"}}}}}}}}),[]);return(0,import_jsx_runtime.jsx)(SchemaComponent,{scope:{useCancel:n,useValuesFromProps:i,useSaveValues:r},schema:a})},PluginUpgradeModal=({onClose:e,isShow:t,pluginData:o})=>{const{t:r}=(0,import_react_i18next.useTranslation)(),{theme:i}=useStyles$1(),[n,a]=(0,import_react2.useState)("npm");return(0,import_jsx_runtime.jsxs)(import_antd.Modal,{onCancel:()=>e(),footer:null,destroyOnClose:!0,title:r("Update plugin"),width:580,open:t,children:[(0,import_jsx_runtime.jsx)("div",{style:{marginTop:i.marginLG,marginBottom:i.marginLG},children:(0,import_jsx_runtime.jsxs)(import_antd.Radio.Group,{optionType:"button",defaultValue:n,onChange:l=>a(l.target.value),children:[(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"npm",children:r("Npm package")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"upload",children:r("Upload plugin")}),(0,import_jsx_runtime.jsx)(import_antd.Radio,{value:"url",children:r("Compressed file url")})]})}),n==="npm"&&(0,import_jsx_runtime.jsx)(PluginNpmForm,{isUpgrade:!0,onClose:e,pluginData:o}),n==="upload"&&(0,import_jsx_runtime.jsx)(PluginUploadForm,{isUpgrade:!0,onClose:e,pluginData:o}),n==="url"&&(0,import_jsx_runtime.jsx)(PluginUrlForm,{isUpgrade:!0,onClose:e,pluginData:o})]})};function PluginInfo(e){const{data:t,onClick:o}=e,r=useApp(),{name:i,displayName:n,isCompatible:a,packageName:l,updatable:c,builtIn:u,enabled:m,removable:d,description:p,error:h,homepage:g}=t,{styles:_,theme:f}=useStyles$1(),v=(0,import_react_router_dom.useNavigate)(),{t:b}=(0,import_react_i18next.useTranslation)(),S=useAPIClient(),{modal:C}=import_antd.App.useApp(),[y,F]=(0,import_react2.useState)(!1),I=n||i||l;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[y&&(0,import_jsx_runtime.jsx)(PluginUpgradeModal,{isShow:y,pluginData:t,onClose:T=>{F(!1)}}),(0,import_jsx_runtime.jsx)(import_antd.Card,{role:"button","aria-label":I,size:"small",bordered:!1,onClick:()=>{!h&&o()},headStyle:{border:"none",minHeight:"inherit",paddingTop:14},bodyStyle:{paddingTop:10},title:(0,import_jsx_runtime.jsx)("div",{children:I}),hoverable:!0,className:import_css.css`
|
|
1492
1492
|
.ant-card-actions {
|
|
1493
1493
|
li .ant-space {
|
|
1494
1494
|
gap: 2px !important;
|