@nocobase/client 1.9.30 → 1.9.31

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 CHANGED
@@ -6694,7 +6694,7 @@ const InternalFormBlockProvider = (e) => {
6694
6694
  e = e.parent;
6695
6695
  }
6696
6696
  return null;
6697
- }, 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) => {
6697
+ }, NAMESPACE_UI_SCHEMA = "ui-schema-storage", 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) => {
6698
6698
  const t = e.match(REGEX_OF_VARIABLE_IN_EXPRESSION);
6699
6699
  return t || [];
6700
6700
  }, transformVariableValue = (e, t) => {
@@ -6857,7 +6857,7 @@ function withParams(e, t) {
6857
6857
  function inferPickerType(e, t) {
6858
6858
  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";
6859
6859
  }
6860
- const NAMESPACE_UI_SCHEMA = "ui-schema-storage", parseVariables = (e, t) => {
6860
+ const parseVariables = (e, t) => {
6861
6861
  var r;
6862
6862
  const n = /{{(.*?)}}/, o = (r = e == null ? void 0 : e.match) == null ? void 0 : r.call(e, n);
6863
6863
  if (o) {
@@ -6905,8 +6905,8 @@ const parseVariableValue = (e, t, n) => q(void 0, null, function* () {
6905
6905
  variableNameOfLeftCondition: o,
6906
6906
  conditionType: r
6907
6907
  }, a) {
6908
- const c = Object.keys(e)[0] || "$and", u = e[c], d = yield Promise.all(
6909
- u.map(
6908
+ const c = Object.keys(e)[0] || "$and", u = e[c] || [], d = yield Promise.all(
6909
+ u.filter(Boolean).map(
6910
6910
  (p) => processCondition(p, t, n, o, r, a)
6911
6911
  )
6912
6912
  );
@@ -7016,7 +7016,7 @@ function getFieldValuesInCondition({ linkageRules: e, formValues: t }) {
7016
7016
  return e.map((n) => {
7017
7017
  const o = (r) => {
7018
7018
  const a = Object.keys(r)[0] || "$and";
7019
- return r[a].map((l) => {
7019
+ return (r[a] || []).filter(Boolean).map((l) => {
7020
7020
  if ("$and" in l || "$or" in l)
7021
7021
  return o(l);
7022
7022
  const c = getTargetField$1(l).join(".");
@@ -8857,7 +8857,7 @@ function addAppVersion(e, t) {
8857
8857
  addAppVersion((o = e.properties) == null ? void 0 : o[n], t);
8858
8858
  }), e;
8859
8859
  }
8860
- const name = "@nocobase/client", version = "1.9.30", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
8860
+ const name = "@nocobase/client", version = "1.9.31", license = "AGPL-3.0", main = "lib/index.js", module = "es/index.mjs", types = "es/index.d.ts", dependencies = {
8861
8861
  "@ahooksjs/use-url-state": "3.5.1",
8862
8862
  "@ant-design/cssinjs": "^1.11.1",
8863
8863
  "@ant-design/icons": "^5.6.1",
@@ -8878,9 +8878,9 @@ const name = "@nocobase/client", version = "1.9.30", license = "AGPL-3.0", main
8878
8878
  "@formily/reactive-react": "^2.2.27",
8879
8879
  "@formily/shared": "^2.2.27",
8880
8880
  "@formily/validator": "^2.2.27",
8881
- "@nocobase/evaluators": "1.9.30",
8882
- "@nocobase/sdk": "1.9.30",
8883
- "@nocobase/utils": "1.9.30",
8881
+ "@nocobase/evaluators": "1.9.31",
8882
+ "@nocobase/sdk": "1.9.31",
8883
+ "@nocobase/utils": "1.9.31",
8884
8884
  ahooks: "^3.7.2",
8885
8885
  antd: "5.24.2",
8886
8886
  "antd-mobile": "^5.41.1",
@@ -30392,7 +30392,7 @@ const getAppends = ({
30392
30392
  if (c["x-linkage-rules"] && !isSubMode(c)) {
30393
30393
  const b = (y) => {
30394
30394
  const v = Object.keys(y)[0] || "$and";
30395
- y[v].forEach((F) => {
30395
+ (y[v] || []).filter(Boolean).forEach((F) => {
30396
30396
  if ("$and" in F || "$or" in F)
30397
30397
  return b(F);
30398
30398
  const w = getTargetField(F);
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){k(this,"name"),k(this,"group"),k(this,"title"),k(this,"description"),k(this,"order"),k(this,"default"),k(this,"sortable"),k(this,"availableTypes"),k(this,"supportDataSourceType"),k(this,"notSupportDataSourceType"),k(this,"hasDefaultValue"),k(this,"componentOptions"),k(this,"isAssociation"),k(this,"operators"),k(this,"properties"),k(this,"validationType"),k(this,"availableValidationOptions",[]),k(this,"excludeValidationOptions"),k(this,"filterable"),k(this,"titleUsable"),k(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(t){const o=this.hasDefaultValue?this.getDefaultValueProperty():{};this.availableValidationOptions.push("required");const r=t==null?void 0:t.view,i=(t==null?void 0:t.template)==="sql"||(t==null?void 0:t.sql),n=!r&&!i&&this.validationType?{validation:{title:'{{ t("Validation") }}',required:!1,"x-decorator":"FormItem","x-component":"FieldValidation","x-component-props":{type:this.validationType,availableValidationOptions:[...new Set(this.availableValidationOptions)],excludeValidationOptions:[...new Set(this.excludeValidationOptions)],isAssociation:this.isAssociation}}}:{};return x(x(x({},(0,import_lodash.cloneDeep)(x(x({},defaultProps),this==null?void 0:this.properties))),o),n)}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){k(this,"collectionFieldInterfaceInstances",{}),k(this,"collectionFieldGroups",{}),k(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){k(this,"dataSourceInstancesMap",{}),k(this,"multiDataSources",[]),k(this,"collectionMixins",[]),k(this,"collectionTemplateManager"),k(this,"collectionFieldInterfaceManager"),this.options=t,this.app=o,this.collectionTemplateManager=new CollectionTemplateManager(t.collectionTemplates,this),this.collectionFieldInterfaceManager=new CollectionFieldInterfaceManager(t.fieldInterfaces,t.fieldInterfaceGroups,this),this.collectionMixins.push(...t.collectionMixins||[]),this.addDataSource(LocalDataSource,{key:DEFAULT_DATA_SOURCE_KEY,displayName:DEFAULT_DATA_SOURCE_TITLE,collections:t.collections||[]}),(t.dataSources||[]).forEach(r=>{this.addDataSource(LocalDataSource,r)})}addCollectionMixins(t=[]){const o=t.filter(r=>!this.collectionMixins.includes(r));o.length&&(this.collectionMixins.push(...o),this.getDataSources().forEach(r=>r.collectionManager.reAddCollections()))}getDataSources(t){const o=Object.values(this.dataSourceInstancesMap);return t?import_lodash.default.filter(o,t):o}getDataSource(t){return t?this.dataSourceInstancesMap[t]:this.dataSourceInstancesMap[DEFAULT_DATA_SOURCE_KEY]}removeDataSources(t){t.forEach(o=>{delete this.dataSourceInstancesMap[o]})}addDataSource(t,o){const r=new t(o,this);return this.dataSourceInstancesMap[r.key]=r,r}addDataSources(t,o){return q(this,null,function*(){this.multiDataSources.some(([r,i])=>r===t&&i===o)||this.multiDataSources.push([t,o])})}getAllCollections(t={}){const{filterCollection:o,filterDataSource:r}=t;return this.getDataSources(r).reduce((i,n)=>(i.push(P(x({},n.getOptions()),{collections:n.collectionManager.getCollections(o)})),i),[])}addFieldInterfaceGroups(t){this.collectionFieldInterfaceManager.addFieldInterfaceGroups(t)}addCollectionTemplates(t=[]){this.collectionTemplateManager.addCollectionTemplates(t)}addFieldInterfaces(t=[]){this.collectionFieldInterfaceManager.addFieldInterfaces(t)}reload(){return q(this,null,function*(){return yield Promise.all(this.multiDataSources.map(t=>q(this,[t],function*([o,r]){(yield o()).map(i=>this.addDataSource(r,i))}))),Promise.all(this.getDataSources().map(t=>t.reload()))})}}const HEADERS_DATA_SOURCE_KEY="x-data-source",isTitleField=(e,t)=>{var o;return(o=e.collectionFieldInterfaceManager.getFieldInterface(t.interface))==null?void 0:o.titleUsable},useDataSourceHeaders=e=>(0,import_react2.useMemo)(()=>{if(e&&e!==DEFAULT_DATA_SOURCE_KEY)return{[HEADERS_DATA_SOURCE_KEY]:e}},[e]),getDataSourceHeaders=e=>e&&e!==DEFAULT_DATA_SOURCE_KEY?{[HEADERS_DATA_SOURCE_KEY]:e}:{},TreeNode=e=>{const{tag:t,type:o,displayType:r=!0}=e,i={reference:"Reference",duplicate:"Duplicate",preloading:"Preloading"};return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Tag,{color:{reference:"blue",duplicate:"green",preloading:"cyan"}[o],children:[(0,import_jsx_runtime.jsx)("span",{children:t})," ",r?`(${i[o]})`:""]})})},systemKeys=["sort","createdById","createdBy","createdAt","updatedById","updatedBy","updatedAt","password","sequence"],useCollectionState=(e,t=!0,o)=>{const{getCollectionFields:r,getAllCollectionsInheritChain:i,getCollection:n,getInterface:a}=useCollectionManager_deprecated(),[l]=(0,import_react2.useState)(m),c=useCompile(),u=(0,import_react.useField)();function m(){return(i(e)||[]).map(v=>{var C;return{label:(C=n(v))==null?void 0:C.title,value:v}})}const d=(v,{exclude:C=[],depth:S=0,maxDepth:b,prefix:y=""})=>S>b?[]:r(v).map(F=>{var j;if(C.includes(F.name)||!F.interface||S===0&&["sort","password","sequence"].includes(F.type)||o&&o(F))return;const A={type:"duplicate",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},D=P(x({},A),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},A),{displayType:t})),key:y?`${y}.${F.name}`:F.name,isLeaf:!0,field:F});return["belongsTo","belongsToMany"].includes(F.type)?(A.type="reference",D.type="reference",D.title=import_react2.default.createElement(TreeNode,P(x({},A),{type:"reference",displayType:t})),D.isLeaf=!1,D.children=p(F.target,{depth:S+1,maxDepth:b,prefix:D.key,exclude:systemKeys})):["hasOne","hasMany"].includes(F.type)&&(D.isLeaf=!1,D.children=d(F.target,{depth:S+1,maxDepth:b,prefix:D.key,exclude:["id",...systemKeys.filter(N=>N!=="sort")]})),D}).filter(Boolean),p=(v,{prefix:C,maxDepth:S,depth:b=0,exclude:y=[]})=>b>S?[]:r(v).map(F=>{var j;if(!F.target||!F.interface||y.includes(F.name))return;const A={type:"preloading",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},D=C?`${C}.${F.name}`:F.name;return{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},A),{displayType:t})),key:D,isLeaf:!1,field:F,children:p(F.target,{prefix:D,depth:b+1,maxDepth:S,exclude:y})}}).filter(Boolean),h=v=>v.map(C=>P(x({},C),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},C),{type:C.type,displayType:t})),children:C.children?h(C.children):null})),g=(0,import_react2.useCallback)((v,C,S)=>{var b,y;const F=C.index,j=(y=(b=u.initialValue)==null?void 0:b.items)==null?void 0:y[F];if(!v)return[];if(j!=null&&j.treeData||S)return h(S||j.treeData);try{return d(v,{exclude:["id",...systemKeys],maxDepth:1})}catch(A){return console.error(A),[]}},[]),_=(0,import_react2.useCallback)(v=>C=>new Promise(S=>{if(C.children.length)return C.children.forEach(b=>{loadChildren$1({node:b,traverseAssociations:p,traverseFields:d,systemKeys,fields:v})}),S(void 0);loadChildren$1({node:C,traverseAssociations:p,traverseFields:d,systemKeys,fields:v}),S(void 0)}),[]),f=(0,import_react2.useCallback)(v=>C=>{v.value=C},[]);return{collectionList:l,getEnableFieldTree:g,getOnLoadData:_,getOnCheck:f,getScopeDataSource:v=>{const C=r(v),S=(y,F)=>{var j,A;if(!y.interface)return;const D=a(y.interface);if(!(D!=null&&D.filterable))return;const{nested:N,children:M,operators:w}=D.filterable,R={name:y.name,title:((j=y==null?void 0:y.uiSchema)==null?void 0:j.title)||y.name,schema:y==null?void 0:y.uiSchema,operators:((A=w==null?void 0:w.filter)==null?void 0:A.call(w,T=>!(T!=null&&T.visible)||T.visible(y)))||[],interface:y.interface};if(!(y.target&&F>2)){if(F>2)return R;if(M!=null&&M.length&&(R.children=M),N){const T=r(y.target),$=b(T,F+1).filter(Boolean);R.children=R.children||[],R.children.push(...$)}return R}},b=(y,F)=>{const j=[];return y.forEach(A=>{const D=S(A,F);D&&j.push(D)}),j};return b(C,1)},useTitleFieldDataSource:v=>{const C=v.path.entire.replace("titleField","collection"),S=v.query(C).get("value"),b=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=b}}};function findNode(e,t){const o=[...e];for(;o.length;){const r=o.shift();if(r.key===t.key)return r;r.children&&o.push(...r.children)}}function loadChildren$1({node:e,traverseAssociations:t,traverseFields:o,systemKeys:r,fields:i}){const n=findNode(i.dataSource||i.componentProps.treeData,e);let a=[];return["belongsTo","belongsToMany"].includes(e.field.type)&&(e==null?void 0:e.type)==="reference"?a=t(e.field.target,{exclude:r,prefix:e.key,maxDepth:1}):(["hasOne","hasMany"].includes(e.field.type)||(e==null?void 0:e.type)==="duplicate")&&(a=o(e.field.target,{exclude:["id",...r.filter(l=>l!=="sort")],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),_isBlockTemplate=(e,t=1)=>{if(!e||t>=3)return!1;const o=Object.keys(e.properties||{});for(const r of o){const i=e.properties[r];if(i["x-component"]==="BlockTemplate"||_isBlockTemplate(i,t+1))return!0}return!1},TemplateBlockProvider=({onTemplateLoaded:e,children:t})=>{const o=(0,import_react.useFieldSchema)(),[r,i]=(0,import_react2.useState)(!1),n=(0,import_react2.useCallback)(()=>{i(!0),setTimeout(()=>{e==null||e()})},[e]),a=(0,import_react2.useCallback)(()=>_isBlockTemplate(o)||o["x-component"]==="BlockTemplate",[o]),l=(0,import_react2.useMemo)(()=>({templateFinished:r,onTemplateSuccess:n,isBlockTemplate:a}),[n,r,a]);return(0,import_jsx_runtime.jsx)(TemplateBlockContext.Provider,{value:l,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=>{var t;const o=useCollectionParentRecordData(),{parentRecord:r,action:i}=e,n=useCollectionRecordData(),{association:a}=e,l=useCollectionManager(),{__collection:c}=n||{},{designable:u}=useDesignable(),m=e.collection||l.getCollection(a).name,{fieldSchema:d}=useActionContext(),p=(t=d==null?void 0:d["x-component-props"])==null?void 0:t.addChild,h=(0,import_ahooks.useUpdate)();return!u&&c&&i&&c!==m?null:(0,import_jsx_runtime.jsx)(TemplateBlockProvider,{onTemplateLoaded:h,children:(0,import_jsx_runtime.jsx)(BlockProvider,P(x({name:e.name||"form"},e),{block:"form",parentRecord:p?o:r||o,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_builtins.formatDayjsValue)(e,"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),dayBeforeYesterday:o=>withParams(t([getStart(-2,"day"),getEnd(-2,"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),dayBeforeYesterday:t=>withParams([getStart(-2,"day"),getEnd(-2,"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 NAMESPACE_UI_SCHEMA="ui-schema-storage",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)=>q(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)=>q(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)=>q(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)=>q(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)=>q(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 safeCompile(e){return e.replace(/{{\s*}}/g,'{{"{{}}"}}')}function getRenderContent(e,t,o,r,i,n){return q(this,null,function*(){var a,l;if(t&&e==="handlebars"){import_client.Handlebars.registerHelper("t",function(c){if(typeof c=="string")return n(c,{ns:NAMESPACE_UI_SCHEMA})});try{const c=safeCompile(t),u=import_client.Handlebars.compile(c),m=getVariablesData(r),{$nDate:d}=((a=o==null?void 0:o.ctxRef)==null?void 0:a.current)||{},p={};Object.keys(d||{}).map(g=>{p[g]=d[g]()});const h=u(P(x(x({},(l=o==null?void 0:o.ctxRef)==null?void 0:l.current),m),{$nDate:p}));return console.log(h),yield i(h)}catch(c){return/VariablesProvider: .* is not found/.test(c.message)||console.log(c),console.log(t),t}}else try{const c=yield replaceVariableValue(t,o,r);return yield i(c)}catch(c){return/VariablesProvider: .* is not found/.test(c.message)||console.log(c),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)(()=>{const _=getFieldValuesInCondition({linkageRules:t,formValues:o}),f=getVariableValuesInCondition({linkageRules:t,localVariables:r}),v=getVariableValuesInExpression({action:i,localVariables:r});return[_,f,v].map(C=>JSON.stringify(C)).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(()=>q(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(C=>C.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(C=>{C.display="visible"})});else if(_==="dataSource"){const C=((g=v==null?void 0:v.value)==null?void 0:g.map(S=>S.value))||[];(t.value&&!Array.isArray(t.value)&&!C.includes(t.value)||Array.isArray(t.value)&&import_lodash.default.difference(t.value,C).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(C=>{C[_]=v==null?void 0:v.value})})):(t[_]=v==null?void 0:v.value,requestAnimationFrame(()=>{t.setState(C=>{C[_]=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,C,S,b,y,F,j;const A=((m=o==null?void 0:o.stateOfLinkageRules)==null?void 0:m.required)||[(d=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:d.required],D=((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],w=((C=o==null?void 0:o.stateOfLinkageRules)==null?void 0:C.dataSource)||[(S=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:S.dataSource],{evaluate:R}=import_client3.evaluators.get("formula.js"),T={ruleGroup:r,variables:i,localVariables:n,variableNameOfLeftCondition:a,conditionType:c},$=((b=o==null?void 0:o.stateOfLinkageRules)==null?void 0:b.dateScope)||[(y=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:y.dateScope];switch(e){case ActionType.Required:A.push(getTempFieldState(conditionAnalyses(T,u),!0)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:A});break;case ActionType.InRequired:A.push(getTempFieldState(conditionAnalyses(T,u),!1)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:A});break;case ActionType.Visible:case ActionType.None:case ActionType.Hidden:D.push(getTempFieldState(conditionAnalyses(T,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{display:D});break;case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:N.push(getTempFieldState(conditionAnalyses(T,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{pattern:N});break;case ActionType.Value:{const B=()=>q(void 0,null,function*(){var I;if((t==null?void 0:t.mode)==="express"){if((t.value||t.result)==null)return;const{exp:E,scope:V}=yield replaceVariables(t.value||t.result,{variables:i,localVariables:n});try{return R(E,x({now:()=>new Date().toString()},V))}catch(O){console.error(O)}}else return(t==null?void 0:t.mode)==="constant"?(I=t==null?void 0:t.value)!=null?I:t:null});isConditionEmpty(r)?M.push(getTempFieldState(!0,B())):M.push(getTempFieldState(conditionAnalyses(T,u),B())),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{value:M})}break;case ActionType.Options:{const B=(j=(F=o.data)==null?void 0:F.dataSource)==null?void 0:j.filter(I=>t.value.includes(I.value));w.push(getTempFieldState(conditionAnalyses(T,u),B||[])),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dataSource:w})}break;case ActionType.DateScope:{$.push(getTempFieldState(conditionAnalyses(T,u),{_maxDate:l._maxDate,_minDate:l._minDate})),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dateScope:$});break}default:return null}};function getTempFieldState(e,t){return q(this,null,function*(){return[e,t]=yield Promise.all([e,t]),{condition:e,value:t}})}function isConditionEmpty(e){const t=Object.keys(e)[0]||"$and",o=e[t];return import_lodash.default.isEmpty(o)}function replaceVariables(e,t){return q(this,arguments,function*(o,{variables:r,localVariables:i}){var n;const a={},l={};if(o==null)return{};const c=(n=o.match(REGEX_OF_VARIABLE_IN_EXPRESSION))==null?void 0:n.map(u=>q(this,null,function*(){const{value:m}=yield r.parseVariable(u,i),d=`_${(0,import_client.uid)()}`;return l[d]=m,a[u]=d,m}));return c&&(yield Promise.all(c)),{exp:o.replace(REGEX_OF_VARIABLE_IN_EXPRESSION,u=>`{{${a[u]||u}}}`),scope:l}})}const getVariableValue=(e,t)=>q(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){k(this,"data"),k(this,"parentRecord"),k(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!=null||(o.paddingPageHorizontal=o.sizeLG),o.paddingPageVertical!=null||(o.paddingPageVertical=o.sizeLG),o.paddingPopupHorizontal!=null||(o.paddingPopupHorizontal=o.sizeLG),o.paddingPopupVertical!=null||(o.paddingPopupVertical=o.size),o.marginBlock!=null||(o.marginBlock=o.sizeLG),o.borderRadiusBlock!=null||(o.borderRadiusBlock=o.borderRadiusLG),o.colorBgSider!=null||(o.colorBgSider=o.colorBgElevated),o.colorBgSiderMenuHover!=null||(o.colorBgSiderMenuHover=o.colorBgTextHover||o.colorFillSecondary),o.colorBgSiderMenuActive!=null||(o.colorBgSiderMenuActive=o.colorPrimaryBg),o.colorTextSiderMenu!=null||(o.colorTextSiderMenu=o.colorText),o.colorTextSiderMenuHover!=null||(o.colorTextSiderMenuHover=o.colorText),o.colorTextSiderMenuActive!=null||(o.colorTextSiderMenuActive=o.colorPrimary),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("--colorBgSider",t.colorBgSider),document.body.style.setProperty("--colorBgSiderMenuHover",t.colorBgSiderMenuHover),document.body.style.setProperty("--colorBgSiderMenuActive",t.colorBgSiderMenuActive),document.body.style.setProperty("--colorTextSiderMenu",t.colorTextSiderMenu),document.body.style.setProperty("--colorTextSiderMenuHover",t.colorTextSiderMenuHover),document.body.style.setProperty("--colorTextSiderMenuActive",t.colorTextSiderMenuActive),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,t.colorBgSider,t.colorBgSiderMenuHover,t.colorBgSiderMenuActive,t.colorTextSiderMenu,t.colorTextSiderMenuHover,t.colorTextSiderMenuActive]),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});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){k(this,"name"),k(this,"group"),k(this,"title"),k(this,"description"),k(this,"order"),k(this,"default"),k(this,"sortable"),k(this,"availableTypes"),k(this,"supportDataSourceType"),k(this,"notSupportDataSourceType"),k(this,"hasDefaultValue"),k(this,"componentOptions"),k(this,"isAssociation"),k(this,"operators"),k(this,"properties"),k(this,"validationType"),k(this,"availableValidationOptions",[]),k(this,"excludeValidationOptions"),k(this,"filterable"),k(this,"titleUsable"),k(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(t){const o=this.hasDefaultValue?this.getDefaultValueProperty():{};this.availableValidationOptions.push("required");const r=t==null?void 0:t.view,i=(t==null?void 0:t.template)==="sql"||(t==null?void 0:t.sql),n=!r&&!i&&this.validationType?{validation:{title:'{{ t("Validation") }}',required:!1,"x-decorator":"FormItem","x-component":"FieldValidation","x-component-props":{type:this.validationType,availableValidationOptions:[...new Set(this.availableValidationOptions)],excludeValidationOptions:[...new Set(this.excludeValidationOptions)],isAssociation:this.isAssociation}}}:{};return x(x(x({},(0,import_lodash.cloneDeep)(x(x({},defaultProps),this==null?void 0:this.properties))),o),n)}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){k(this,"collectionFieldInterfaceInstances",{}),k(this,"collectionFieldGroups",{}),k(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){k(this,"dataSourceInstancesMap",{}),k(this,"multiDataSources",[]),k(this,"collectionMixins",[]),k(this,"collectionTemplateManager"),k(this,"collectionFieldInterfaceManager"),this.options=t,this.app=o,this.collectionTemplateManager=new CollectionTemplateManager(t.collectionTemplates,this),this.collectionFieldInterfaceManager=new CollectionFieldInterfaceManager(t.fieldInterfaces,t.fieldInterfaceGroups,this),this.collectionMixins.push(...t.collectionMixins||[]),this.addDataSource(LocalDataSource,{key:DEFAULT_DATA_SOURCE_KEY,displayName:DEFAULT_DATA_SOURCE_TITLE,collections:t.collections||[]}),(t.dataSources||[]).forEach(r=>{this.addDataSource(LocalDataSource,r)})}addCollectionMixins(t=[]){const o=t.filter(r=>!this.collectionMixins.includes(r));o.length&&(this.collectionMixins.push(...o),this.getDataSources().forEach(r=>r.collectionManager.reAddCollections()))}getDataSources(t){const o=Object.values(this.dataSourceInstancesMap);return t?import_lodash.default.filter(o,t):o}getDataSource(t){return t?this.dataSourceInstancesMap[t]:this.dataSourceInstancesMap[DEFAULT_DATA_SOURCE_KEY]}removeDataSources(t){t.forEach(o=>{delete this.dataSourceInstancesMap[o]})}addDataSource(t,o){const r=new t(o,this);return this.dataSourceInstancesMap[r.key]=r,r}addDataSources(t,o){return q(this,null,function*(){this.multiDataSources.some(([r,i])=>r===t&&i===o)||this.multiDataSources.push([t,o])})}getAllCollections(t={}){const{filterCollection:o,filterDataSource:r}=t;return this.getDataSources(r).reduce((i,n)=>(i.push(P(x({},n.getOptions()),{collections:n.collectionManager.getCollections(o)})),i),[])}addFieldInterfaceGroups(t){this.collectionFieldInterfaceManager.addFieldInterfaceGroups(t)}addCollectionTemplates(t=[]){this.collectionTemplateManager.addCollectionTemplates(t)}addFieldInterfaces(t=[]){this.collectionFieldInterfaceManager.addFieldInterfaces(t)}reload(){return q(this,null,function*(){return yield Promise.all(this.multiDataSources.map(t=>q(this,[t],function*([o,r]){(yield o()).map(i=>this.addDataSource(r,i))}))),Promise.all(this.getDataSources().map(t=>t.reload()))})}}const HEADERS_DATA_SOURCE_KEY="x-data-source",isTitleField=(e,t)=>{var o;return(o=e.collectionFieldInterfaceManager.getFieldInterface(t.interface))==null?void 0:o.titleUsable},useDataSourceHeaders=e=>(0,import_react2.useMemo)(()=>{if(e&&e!==DEFAULT_DATA_SOURCE_KEY)return{[HEADERS_DATA_SOURCE_KEY]:e}},[e]),getDataSourceHeaders=e=>e&&e!==DEFAULT_DATA_SOURCE_KEY?{[HEADERS_DATA_SOURCE_KEY]:e}:{},TreeNode=e=>{const{tag:t,type:o,displayType:r=!0}=e,i={reference:"Reference",duplicate:"Duplicate",preloading:"Preloading"};return(0,import_jsx_runtime.jsx)("div",{children:(0,import_jsx_runtime.jsxs)(import_antd.Tag,{color:{reference:"blue",duplicate:"green",preloading:"cyan"}[o],children:[(0,import_jsx_runtime.jsx)("span",{children:t})," ",r?`(${i[o]})`:""]})})},systemKeys=["sort","createdById","createdBy","createdAt","updatedById","updatedBy","updatedAt","password","sequence"],useCollectionState=(e,t=!0,o)=>{const{getCollectionFields:r,getAllCollectionsInheritChain:i,getCollection:n,getInterface:a}=useCollectionManager_deprecated(),[l]=(0,import_react2.useState)(m),c=useCompile(),u=(0,import_react.useField)();function m(){return(i(e)||[]).map(v=>{var C;return{label:(C=n(v))==null?void 0:C.title,value:v}})}const d=(v,{exclude:C=[],depth:S=0,maxDepth:b,prefix:y=""})=>S>b?[]:r(v).map(F=>{var j;if(C.includes(F.name)||!F.interface||S===0&&["sort","password","sequence"].includes(F.type)||o&&o(F))return;const A={type:"duplicate",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},D=P(x({},A),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},A),{displayType:t})),key:y?`${y}.${F.name}`:F.name,isLeaf:!0,field:F});return["belongsTo","belongsToMany"].includes(F.type)?(A.type="reference",D.type="reference",D.title=import_react2.default.createElement(TreeNode,P(x({},A),{type:"reference",displayType:t})),D.isLeaf=!1,D.children=p(F.target,{depth:S+1,maxDepth:b,prefix:D.key,exclude:systemKeys})):["hasOne","hasMany"].includes(F.type)&&(D.isLeaf=!1,D.children=d(F.target,{depth:S+1,maxDepth:b,prefix:D.key,exclude:["id",...systemKeys.filter(N=>N!=="sort")]})),D}).filter(Boolean),p=(v,{prefix:C,maxDepth:S,depth:b=0,exclude:y=[]})=>b>S?[]:r(v).map(F=>{var j;if(!F.target||!F.interface||y.includes(F.name))return;const A={type:"preloading",tag:c((j=F.uiSchema)==null?void 0:j.title)||F.name},D=C?`${C}.${F.name}`:F.name;return{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},A),{displayType:t})),key:D,isLeaf:!1,field:F,children:p(F.target,{prefix:D,depth:b+1,maxDepth:S,exclude:y})}}).filter(Boolean),h=v=>v.map(C=>P(x({},C),{role:"button",title:import_react2.default.createElement(TreeNode,P(x({},C),{type:C.type,displayType:t})),children:C.children?h(C.children):null})),g=(0,import_react2.useCallback)((v,C,S)=>{var b,y;const F=C.index,j=(y=(b=u.initialValue)==null?void 0:b.items)==null?void 0:y[F];if(!v)return[];if(j!=null&&j.treeData||S)return h(S||j.treeData);try{return d(v,{exclude:["id",...systemKeys],maxDepth:1})}catch(A){return console.error(A),[]}},[]),_=(0,import_react2.useCallback)(v=>C=>new Promise(S=>{if(C.children.length)return C.children.forEach(b=>{loadChildren$1({node:b,traverseAssociations:p,traverseFields:d,systemKeys,fields:v})}),S(void 0);loadChildren$1({node:C,traverseAssociations:p,traverseFields:d,systemKeys,fields:v}),S(void 0)}),[]),f=(0,import_react2.useCallback)(v=>C=>{v.value=C},[]);return{collectionList:l,getEnableFieldTree:g,getOnLoadData:_,getOnCheck:f,getScopeDataSource:v=>{const C=r(v),S=(y,F)=>{var j,A;if(!y.interface)return;const D=a(y.interface);if(!(D!=null&&D.filterable))return;const{nested:N,children:M,operators:w}=D.filterable,R={name:y.name,title:((j=y==null?void 0:y.uiSchema)==null?void 0:j.title)||y.name,schema:y==null?void 0:y.uiSchema,operators:((A=w==null?void 0:w.filter)==null?void 0:A.call(w,T=>!(T!=null&&T.visible)||T.visible(y)))||[],interface:y.interface};if(!(y.target&&F>2)){if(F>2)return R;if(M!=null&&M.length&&(R.children=M),N){const T=r(y.target),$=b(T,F+1).filter(Boolean);R.children=R.children||[],R.children.push(...$)}return R}},b=(y,F)=>{const j=[];return y.forEach(A=>{const D=S(A,F);D&&j.push(D)}),j};return b(C,1)},useTitleFieldDataSource:v=>{const C=v.path.entire.replace("titleField","collection"),S=v.query(C).get("value"),b=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=b}}};function findNode(e,t){const o=[...e];for(;o.length;){const r=o.shift();if(r.key===t.key)return r;r.children&&o.push(...r.children)}}function loadChildren$1({node:e,traverseAssociations:t,traverseFields:o,systemKeys:r,fields:i}){const n=findNode(i.dataSource||i.componentProps.treeData,e);let a=[];return["belongsTo","belongsToMany"].includes(e.field.type)&&(e==null?void 0:e.type)==="reference"?a=t(e.field.target,{exclude:r,prefix:e.key,maxDepth:1}):(["hasOne","hasMany"].includes(e.field.type)||(e==null?void 0:e.type)==="duplicate")&&(a=o(e.field.target,{exclude:["id",...r.filter(l=>l!=="sort")],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),_isBlockTemplate=(e,t=1)=>{if(!e||t>=3)return!1;const o=Object.keys(e.properties||{});for(const r of o){const i=e.properties[r];if(i["x-component"]==="BlockTemplate"||_isBlockTemplate(i,t+1))return!0}return!1},TemplateBlockProvider=({onTemplateLoaded:e,children:t})=>{const o=(0,import_react.useFieldSchema)(),[r,i]=(0,import_react2.useState)(!1),n=(0,import_react2.useCallback)(()=>{i(!0),setTimeout(()=>{e==null||e()})},[e]),a=(0,import_react2.useCallback)(()=>_isBlockTemplate(o)||o["x-component"]==="BlockTemplate",[o]),l=(0,import_react2.useMemo)(()=>({templateFinished:r,onTemplateSuccess:n,isBlockTemplate:a}),[n,r,a]);return(0,import_jsx_runtime.jsx)(TemplateBlockContext.Provider,{value:l,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=>{var t;const o=useCollectionParentRecordData(),{parentRecord:r,action:i}=e,n=useCollectionRecordData(),{association:a}=e,l=useCollectionManager(),{__collection:c}=n||{},{designable:u}=useDesignable(),m=e.collection||l.getCollection(a).name,{fieldSchema:d}=useActionContext(),p=(t=d==null?void 0:d["x-component-props"])==null?void 0:t.addChild,h=(0,import_ahooks.useUpdate)();return!u&&c&&i&&c!==m?null:(0,import_jsx_runtime.jsx)(TemplateBlockProvider,{onTemplateLoaded:h,children:(0,import_jsx_runtime.jsx)(BlockProvider,P(x({name:e.name||"form"},e),{block:"form",parentRecord:p?o:r||o,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},NAMESPACE_UI_SCHEMA="ui-schema-storage",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_builtins.formatDayjsValue)(e,"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),dayBeforeYesterday:o=>withParams(t([getStart(-2,"day"),getEnd(-2,"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),dayBeforeYesterday:t=>withParams([getStart(-2,"day"),getEnd(-2,"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)=>q(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)=>q(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.filter(Boolean).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)=>q(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)=>q(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)=>q(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 safeCompile(e){return e.replace(/{{\s*}}/g,'{{"{{}}"}}')}function getRenderContent(e,t,o,r,i,n){return q(this,null,function*(){var a,l;if(t&&e==="handlebars"){import_client.Handlebars.registerHelper("t",function(c){if(typeof c=="string")return n(c,{ns:NAMESPACE_UI_SCHEMA})});try{const c=safeCompile(t),u=import_client.Handlebars.compile(c),m=getVariablesData(r),{$nDate:d}=((a=o==null?void 0:o.ctxRef)==null?void 0:a.current)||{},p={};Object.keys(d||{}).map(g=>{p[g]=d[g]()});const h=u(P(x(x({},(l=o==null?void 0:o.ctxRef)==null?void 0:l.current),m),{$nDate:p}));return console.log(h),yield i(h)}catch(c){return/VariablesProvider: .* is not found/.test(c.message)||console.log(c),console.log(t),t}}else try{const c=yield replaceVariableValue(t,o,r);return yield i(c)}catch(c){return/VariablesProvider: .* is not found/.test(c.message)||console.log(c),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)(()=>{const _=getFieldValuesInCondition({linkageRules:t,formValues:o}),f=getVariableValuesInCondition({linkageRules:t,localVariables:r}),v=getVariableValuesInExpression({action:i,localVariables:r});return[_,f,v].map(C=>JSON.stringify(C)).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]||[]).filter(Boolean).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(()=>q(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(C=>C.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(C=>{C.display="visible"})});else if(_==="dataSource"){const C=((g=v==null?void 0:v.value)==null?void 0:g.map(S=>S.value))||[];(t.value&&!Array.isArray(t.value)&&!C.includes(t.value)||Array.isArray(t.value)&&import_lodash.default.difference(t.value,C).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(C=>{C[_]=v==null?void 0:v.value})})):(t[_]=v==null?void 0:v.value,requestAnimationFrame(()=>{t.setState(C=>{C[_]=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,C,S,b,y,F,j;const A=((m=o==null?void 0:o.stateOfLinkageRules)==null?void 0:m.required)||[(d=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:d.required],D=((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],w=((C=o==null?void 0:o.stateOfLinkageRules)==null?void 0:C.dataSource)||[(S=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:S.dataSource],{evaluate:R}=import_client3.evaluators.get("formula.js"),T={ruleGroup:r,variables:i,localVariables:n,variableNameOfLeftCondition:a,conditionType:c},$=((b=o==null?void 0:o.stateOfLinkageRules)==null?void 0:b.dateScope)||[(y=o==null?void 0:o.initStateOfLinkageRules)==null?void 0:y.dateScope];switch(e){case ActionType.Required:A.push(getTempFieldState(conditionAnalyses(T,u),!0)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:A});break;case ActionType.InRequired:A.push(getTempFieldState(conditionAnalyses(T,u),!1)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{required:A});break;case ActionType.Visible:case ActionType.None:case ActionType.Hidden:D.push(getTempFieldState(conditionAnalyses(T,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{display:D});break;case ActionType.Editable:case ActionType.ReadOnly:case ActionType.ReadPretty:N.push(getTempFieldState(conditionAnalyses(T,u),e)),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{pattern:N});break;case ActionType.Value:{const B=()=>q(void 0,null,function*(){var I;if((t==null?void 0:t.mode)==="express"){if((t.value||t.result)==null)return;const{exp:E,scope:V}=yield replaceVariables(t.value||t.result,{variables:i,localVariables:n});try{return R(E,x({now:()=>new Date().toString()},V))}catch(O){console.error(O)}}else return(t==null?void 0:t.mode)==="constant"?(I=t==null?void 0:t.value)!=null?I:t:null});isConditionEmpty(r)?M.push(getTempFieldState(!0,B())):M.push(getTempFieldState(conditionAnalyses(T,u),B())),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{value:M})}break;case ActionType.Options:{const B=(j=(F=o.data)==null?void 0:F.dataSource)==null?void 0:j.filter(I=>t.value.includes(I.value));w.push(getTempFieldState(conditionAnalyses(T,u),B||[])),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dataSource:w})}break;case ActionType.DateScope:{$.push(getTempFieldState(conditionAnalyses(T,u),{_maxDate:l._maxDate,_minDate:l._minDate})),o.stateOfLinkageRules=P(x({},o.stateOfLinkageRules),{dateScope:$});break}default:return null}};function getTempFieldState(e,t){return q(this,null,function*(){return[e,t]=yield Promise.all([e,t]),{condition:e,value:t}})}function isConditionEmpty(e){const t=Object.keys(e)[0]||"$and",o=e[t];return import_lodash.default.isEmpty(o)}function replaceVariables(e,t){return q(this,arguments,function*(o,{variables:r,localVariables:i}){var n;const a={},l={};if(o==null)return{};const c=(n=o.match(REGEX_OF_VARIABLE_IN_EXPRESSION))==null?void 0:n.map(u=>q(this,null,function*(){const{value:m}=yield r.parseVariable(u,i),d=`_${(0,import_client.uid)()}`;return l[d]=m,a[u]=d,m}));return c&&(yield Promise.all(c)),{exp:o.replace(REGEX_OF_VARIABLE_IN_EXPRESSION,u=>`{{${a[u]||u}}}`),scope:l}})}const getVariableValue=(e,t)=>q(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){k(this,"data"),k(this,"parentRecord"),k(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!=null||(o.paddingPageHorizontal=o.sizeLG),o.paddingPageVertical!=null||(o.paddingPageVertical=o.sizeLG),o.paddingPopupHorizontal!=null||(o.paddingPopupHorizontal=o.sizeLG),o.paddingPopupVertical!=null||(o.paddingPopupVertical=o.size),o.marginBlock!=null||(o.marginBlock=o.sizeLG),o.borderRadiusBlock!=null||(o.borderRadiusBlock=o.borderRadiusLG),o.colorBgSider!=null||(o.colorBgSider=o.colorBgElevated),o.colorBgSiderMenuHover!=null||(o.colorBgSiderMenuHover=o.colorBgTextHover||o.colorFillSecondary),o.colorBgSiderMenuActive!=null||(o.colorBgSiderMenuActive=o.colorPrimaryBg),o.colorTextSiderMenu!=null||(o.colorTextSiderMenu=o.colorText),o.colorTextSiderMenuHover!=null||(o.colorTextSiderMenuHover=o.colorText),o.colorTextSiderMenuActive!=null||(o.colorTextSiderMenuActive=o.colorPrimary),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("--colorBgSider",t.colorBgSider),document.body.style.setProperty("--colorBgSiderMenuHover",t.colorBgSiderMenuHover),document.body.style.setProperty("--colorBgSiderMenuActive",t.colorBgSiderMenuActive),document.body.style.setProperty("--colorTextSiderMenu",t.colorTextSiderMenu),document.body.style.setProperty("--colorTextSiderMenuHover",t.colorTextSiderMenuHover),document.body.style.setProperty("--colorTextSiderMenuActive",t.colorTextSiderMenuActive),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,t.colorBgSider,t.colorBgSiderMenuHover,t.colorBgSiderMenuActive,t.colorTextSiderMenu,t.colorTextSiderMenuHover,t.colorTextSiderMenuActive]),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});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 q(this,null,function*(){const{requirejs:t,pluginData:o,devDynamicImport:r}=e;if(o.length===0)return[];const i=[],n={};if(r){try{for(var a=Re(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){k(this,"pluginInstances",new Map),k(this,"pluginsAliases",{}),k(this,"initPlugins"),this._plugins=e,this.loadRemotePlugins=t,this.app=o,this.app=o,this.initPlugins=this.init(e)}init(e){return q(this,null,function*(){yield this.initStaticPlugins(e),this.loadRemotePlugins&&(yield this.initRemotePlugins())})}initStaticPlugins(){return q(this,arguments,function*(e=[]){try{for(var t=Re(e),o,r,i;o=!(r=yield t.next()).done;o=!1){const n=r.value,a=Array.isArray(n)?n[0]:n,l=Array.isArray(n)?n[1]:void 0;yield this.add(a,l)}}catch(n){i=[n]}finally{try{o&&(r=t.return)&&(yield r.call(t))}finally{if(i)throw i[0]}}})}initRemotePlugins(){return q(this,null,function*(){var e;const t=yield this.app.apiClient.request({url:"pm:listEnabled"}),o=((e=t==null?void 0:t.data)==null?void 0:e.data)||[],r=yield getPlugins({requirejs:this.app.requirejs,pluginData:o,devDynamicImport:this.app.devDynamicImport});try{for(var i=Re(r),n,a,l;n=!(a=yield i.next()).done;n=!1){const[c,u]=a.value,m=o.find(d=>d.name===c);yield this.add(u,m)}}catch(c){l=[c]}finally{try{n&&(a=i.return)&&(yield a.call(i))}finally{if(l)throw l[0]}}})}add(e){return q(this,arguments,function*(t,o={}){const r=this.getInstance(t,o);this.pluginInstances.set(t,r),o.name&&(this.pluginsAliases[o.name]=r),o.packageName&&(this.pluginsAliases[o.packageName]=r),yield r.afterAdd()})}get(e){return typeof e=="string"?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e,t){return new e(t,this.app)}load(){return q(this,null,function*(){yield this.initPlugins;for(const e of this.pluginInstances.values())yield e.beforeLoad();for(const e of this.pluginInstances.values())yield e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))})}},IconFont;const icons=new Map;function registerIcon(e,t=IconFont){icons.set(e.toLowerCase(),t)}function hasIcon(e){return e?icons.has(e.toLowerCase()):!1}function registerIcons(e){Object.keys(e).forEach(t=>{registerIcon(t,e[t])})}Object.keys(antIcons).forEach(e=>{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){k(this,"settings",{}),k(this,"aclSnippets",[]),k(this,"app"),k(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){k(this,"routes",{}),k(this,"options"),k(this,"app"),k(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(k(this,"_ws"),k(this,"_reconnectTimes",0),k(this,"events",[]),k(this,"options"),k(this,"app"),k(this,"enabled"),k(this,"connected",!1),k(this,"serverDown",!1),k(this,"lastMessage",{}),!t){this.enabled=!1;return}this.options=t===!0?{}:t,this.enabled=!0,(0,import_reactive.define)(this,{serverDown:import_reactive.observable.ref,connected:import_reactive.observable.ref,lastMessage:import_reactive.observable.ref})}getURL(){if(!this.app)return;const t=this.app.getApiUrl();if(!t)return;const o=(0,import_sdk.getSubAppName)(this.app.getPublicPath()),r=o?`?__appName=${o}`:"",i=this.options.basename||"/ws";if(this.options.url){const n=new URL(this.options.url);return n.hostname==="localhost"?`${location.protocol==="https:"?"wss":"ws"}://${location.hostname}:${n.port}${i}${r}`:`${this.options.url}${r}`}try{const n=new URL(t);return`${n.protocol==="https:"?"wss":"ws"}://${n.host}${i}${r}`}catch{return`${location.protocol==="https:"?"wss":"ws"}://${location.host}${i}${r}`}}get reconnectAttempts(){var t;return((t=this.options)==null?void 0:t.reconnectAttempts)||30}get reconnectInterval(){var t;return((t=this.options)==null?void 0:t.reconnectInterval)||1e3}get pingInterval(){var t;return((t=this.options)==null?void 0:t.pingInterval)||3e4}get readyState(){return this._ws?this._ws.readyState:-1}connect(){if(!this.enabled||(this._reconnectTimes===0&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts)||this.readyState===WebSocket.OPEN)return;this._reconnectTimes++;const t=new WebSocket(this.getURL(),this.options.protocols);let o;t.onopen=()=>{console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t;for(const{type:r,listener:i,options:n}of this.events)this._ws.addEventListener(r,i,n);o=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=()=>q(this,null,function*(){console.log("onerror",this.readyState,this._reconnectTimes)}),t.onclose=r=>q(this,null,function*(){setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(o)})}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(t){if(this._ws)return this._ws.send(t)}on(t,o,r){this.events.push({type:t,listener:o,options:r}),this._ws&&this._ws.addEventListener(t,o,r)}emit(t,o){for(const r of this.events)r.type===t&&r.listener(o)}off(t,o,r){let i=0;for(const n of this.events){if(n.type===t&&n.listener===o){this.events.splice(i,1);break}i++}this._ws&&this._ws.removeEventListener(t,o,r)}removeAllListeners(){if(this._ws)for(const{type:t,listener:o,options:r}of this.events)this._ws.removeEventListener(t,o,r)}}const useNiceDropdownMaxHeight=(e=[])=>{const t=(0,import_react2.useRef)(0);return(0,import_react2.useEffect)(()=>{const o=r=>{const{clientY:i}=r,n=Math.max(i,window.innerHeight-i);t.current=n};return window.addEventListener("mousemove",o),()=>{window.removeEventListener("mousemove",o)}},[]),(0,import_react2.useMemo)(()=>t.current-40,e)},FlagContext=import_react2.default.createContext(null),FlagProvider=e=>(0,import_jsx_runtime.jsx)(FlagContext.Provider,{value:e,children:e.children}),useFlag=()=>(0,import_react2.useContext)(FlagContext)||{},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,C=l(c),S=(0,import_react2.useCallback)(T=>{v?v(C(T,{isInSubTable:i})):r(u,C(T,{isInSubTable:i}),{onSuccess:m})},[v,C,i,r,u,m]),{wrapSSR:b,hashId:y,componentCls:F}=useSchemaInitializerStyles(),[j,A]=(0,import_react2.useState)(!1),{token:D}=import_antd.theme.useToken(),N=useNiceDropdownMaxHeight([j]),M=(0,import_react2.useMemo)(()=>x({options:t,style:_},f),[f,t,_]),w=(0,import_react2.useMemo)(()=>import_css.css`
24
24
  .ant-popover-inner {
25
25
  padding: ${`${D.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:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client3.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:a}=yield replaceVariables(e,{variables:t,localVariables:o});try{const l=evaluate(n,x({now:()=>new Date().toString()},a));i(l)}catch(l){console.error(l)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=P(x({},o),{name:i}),a=(u,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.9.30",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.9.30","@nocobase/sdk":"1.9.30","@nocobase/utils":"1.9.30",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.28"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped: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=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,m=0;this.current.parent.mapProperties((_,f)=>{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 C;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(C=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?C:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,C)=>{const S=b=>{Object.keys(b).forEach(y=>{const F=b[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(j=>{d.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{d.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const b={};return(0,import_set.default)(b,v,C),S(b)}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,C)=>{_.remove(v,C)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,C,S)=>{_.insertAdjacent(v,C,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,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[a,l]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>q(this,null,function*(){l(!0);const m=yield o(e);l(!1),n(m),t==null||t(m)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:m}){return m.startsWith("$")&&m!=="$and"&&m!=="$or"},transformValue(m){if(!isVariable$1(m))return m;const d=getVariableName(m),p=r(d);let h=null;const g=getPath(m).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),C=(0,import_client.getValuesByPath)({[d]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(C)||(h=C)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:a}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??(m[LinkageRuleDataKeyMap[t]]||(m==null?void 0:m.parent[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,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const a=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(a==null?void 0:a.interface))return!0;if(a!=null&&a.target){if(Array.isArray(i))return!0;const l=a.targetKey||"id";if(i&&i[l]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const a=o(`${r}.${i}`);return a!=null&&a.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(a.type)&&(n=(0,import_client.getValuesByPath)(n,a.targetKey||"id"),i=`${i}.${a.targetKey||"id"}`,(a==null?void 0:a.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,a]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(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 C=m;const S=o.find(j=>j.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)&&(C=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const b=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[C]:{[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(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},b),{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(),C=useRecord(),{isNew:S}=useCollectionRecord()||{},b=((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:y}=useParsedFilter({filterOption:b,onFilterChange:()=>{S&&_.reset()}}),F=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=C==null?void 0:C[F==null?void 0:F.sourceKey],A=(0,import_react2.useMemo)(()=>{const D=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([D&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,y]),D&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,y,j,h]);return(0,import_react2.useMemo)(()=>P(x({resource:F==null?void 0:F.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:A})}),[F==null?void 0:F.target,d,A,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=`nocobase_table_column_settings_${e}`,r=(0,import_react2.useCallback)(()=>{try{const a=localStorage.getItem(o);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to parse table column settings from localStorage:",a),null}},[o]),i=(0,import_react2.useCallback)(a=>{try{const l=JSON.stringify(a);localStorage.setItem(o,l);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:a}});window.dispatchEvent(c)}catch(l){console.warn("Failed to save table column settings to localStorage:",l),import_antd.message.error(t("Failed to save table settings"))}},[o,e,t]),n=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(o);const a=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(a)}catch(a){console.warn("Failed to clear table column settings from localStorage:",a),import_antd.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:r,saveSettings:i,clearSettings:n}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react.useFieldSchema)(),r=(o==null?void 0:o["x-uid"])||"default",{getSettings:i}=useColumnSettings(r),[n,a]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const c=u=>{const{key:m,tableId:d}=u.detail;(m.includes(r)||d===r)&&a(p=>p+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[r]);const l=(0,import_react2.useMemo)(()=>i(),[i,n]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!l||l.length===0)return e;const c=new Map;l.forEach(h=>{c.set(h.key,h)});const u=e.map(h=>{const g=c.get(h.key);if(g){const _=h.columnHidden||!g.visible,f=g.width||h.width,v=g.fixed||h.fixed;return P(x({},h),{columnHidden:_,fixed:v,width:f,_orderIndex:g.order})}return h}),m=[],d=[];u.forEach(h=>{h._orderIndex!==void 0?m.push(h):d.push(h)}),m.sort((h,g)=>(h._orderIndex||0)-(g._orderIndex||0));const p=[...m,...d];return p.forEach(h=>{delete h._orderIndex}),p},[e,l])}},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:()=>q(void 0,null,function*(){i(!0);try{const a=yield n.request({url:"logger:collect",method:"post",responseType:"blob",data:x({error:{message:e.message,stack:e.stack},location:o},t)}),l=window.URL.createObjectURL(new Blob([a.data],{type:"application/gzip"})),c=document.createElement("a");c.setAttribute("href",l),c.setAttribute("download","logs.tar.gz"),c.click(),c.remove()}catch(a){console.log(a)}i(!1)})}},ErrorFallback=({error:e})=>{const t=(0,import_react.useFieldSchema)(),{t:o}=(0,import_react_i18next.useTranslation)(),{loading:r,download:i}=useDownloadLogs(e,{schema:t}),n=(0,import_jsx_runtime.jsxs)(import_react_i18next.Trans,{children:["This is likely a NocoBase internals bug. Please open an issue at ",(0,import_jsx_runtime.jsx)(Link,{href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:"here"})]});return(0,import_jsx_runtime.jsx)("div",{style:{backgroundColor:"white"},children:(0,import_jsx_runtime.jsx)(import_antd.Result,{style:{maxWidth:"60vw",margin:"auto"},status:"error",title:o("Render Failed"),subTitle:n,extra:[(0,import_jsx_runtime.jsx)(import_antd.Button,{type:"primary",href:"https://github.com/nocobase/nocobase/issues",target:"_blank",children:o("Feedback")},"feedback"),(0,import_jsx_runtime.jsx)(import_antd.Button,{loading:r,onClick:i,children:o("Download logs")},"log")],children:(0,import_jsx_runtime.jsx)(Paragraph,{copyable:{text:e.stack},children:(0,import_jsx_runtime.jsx)(Text$1,{type:"danger",style:{whiteSpace:"pre-line",textAlign:"center"},children:e.stack})})})})};ErrorFallback.Modal=ErrorFallbackModal;const AppNotFound=()=>{const e=(0,import_react_router_dom.useNavigate)(),{t}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(import_antd.Result,{status:"404",title:"404",subTitle:t("Sorry, the page you visited does not exist."),extra:(0,import_jsx_runtime.jsx)(import_antd.Button,{onClick:()=>e("/",{replace:!0}),type:"primary",children:"Back Home"})})};class Plugin{constructor(t,o){this.options=t,this.app=o,this.options=t,this.app=o}get pluginManager(){return this.app.pluginManager}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}afterAdd(){return q(this,null,function*(){})}beforeLoad(){return q(this,null,function*(){})}load(){return q(this,null,function*(){})}t(t,o={}){var r;return this.app.i18n.t(t,x({ns:(r=this.options)==null?void 0:r.packageName},o))}}const titleWrapperStyle={display:"flex",alignItems:"center",gap:4},withTooltipComponent=e=>t=>{const{tooltip:o}=t;return o?(0,import_jsx_runtime.jsxs)("div",{style:titleWrapperStyle,children:[(0,import_jsx_runtime.jsx)(e,x({},t)),(0,import_jsx_runtime.jsx)(import_antd.Tooltip,{title:o,children:(0,import_jsx_runtime.jsx)(import_icons.QuestionCircleOutlined,{style:{zIndex:1}})})]}):(0,import_jsx_runtime.jsx)(e,x({},t))},{evaluate}=import_client3.evaluators.get("formula.js"),useEvaluatedExpression=e=>{const t=useVariables$1(),o=useLocalVariables$1(),[r,i]=(0,import_react2.useState)();return(0,import_react2.useEffect)(()=>{q(void 0,null,function*(){if(e==null||e===""){i(void 0);return}const{exp:n,scope:a}=yield replaceVariables(e,{variables:t,localVariables:o});try{const l=evaluate(n,x({now:()=>new Date().toString()},a));i(l)}catch(l){console.error(l)}})},[t.parseVariable,e,o]),r};class SchemaInitializer{constructor(t){k(this,"options"),k(this,"name"),this.options=Object.assign({items:[]},t),this.name=t.name}get items(){return this.options.items}add(t,o){const r=t.split("."),i=r[r.length-1],n=P(x({},o),{name:i}),a=(u,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.9.31",license="AGPL-3.0",main="lib/index.js",module$1="es/index.mjs",types="es/index.d.ts",dependencies={"@ahooksjs/use-url-state":"3.5.1","@ant-design/cssinjs":"^1.11.1","@ant-design/icons":"^5.6.1","@ant-design/pro-layout":"^7.22.1","@antv/g2plot":"^2.4.18","@budibase/handlebars-helpers":"0.14.0","@ctrl/tinycolor":"^3.6.0","@dnd-kit/core":"^6.0.0","@dnd-kit/sortable":"^7.0.0","@emotion/css":"^11.7.1","@formily/antd-v5":"1.2.3","@formily/core":"^2.2.27","@formily/grid":"^2.2.27","@formily/json-schema":"^2.2.27","@formily/path":"^2.2.27","@formily/react":"^2.2.27","@formily/reactive":"^2.2.27","@formily/reactive-react":"^2.2.27","@formily/shared":"^2.2.27","@formily/validator":"^2.2.27","@nocobase/evaluators":"1.9.31","@nocobase/sdk":"1.9.31","@nocobase/utils":"1.9.31",ahooks:"^3.7.2",antd:"5.24.2","antd-mobile":"^5.41.1","antd-mobile-icons":"^0.3.0","antd-style":"3.7.1",axios:"^1.7.0","bignumber.js":"^9.1.2",classnames:"^2.3.1",cronstrue:"^2.11.0","file-saver":"^2.0.5",filesize:"9.0.11",flat:"^5.0.2","html5-qrcode":"^2.3.8",i18next:"^22.4.9","i18next-http-backend":"^2.1.1",ignore:"^5.2.0",json5:"^2.2.3",lodash:"4.17.21","lru-cache":"6.0.0","markdown-it":"14.1.0","markdown-it-highlightjs":"3.3.1",mathjs:"^10.6.0",mermaid:"9.4.3",mime:"^4.0.4","mime-match":"^1.0.2","react-beautiful-dnd":"^13.1.0","react-device-detect":"2.2.3","react-drag-listview":"^0.1.9","react-error-boundary":"^4.0.10","react-helmet":"^6.1.0","react-hotkeys-hook":"^3.4.7","react-i18next":"^11.15.1","react-iframe":"~1.8.5","react-image-lightbox":"^5.1.4","react-intersection-observer":"9.14.0","react-js-cron":"^3.1.0","react-quill":"^2.0.0","react-router-dom":"^6.11.2","react-to-print":"^2.14.7","sanitize-html":"2.13.0","use-deep-compare-effect":"^1.8.1"},peerDependencies={react:">=18.0.0","react-dom":">=18.0.0","react-is":">=18.0.0"},devDependencies={"@testing-library/react":"^14.0.0","@types/markdown-it":"14.1.1","@types/markdown-it-highlightjs":"3.3.1","@types/react-big-calendar":"^1.6.4","axios-mock-adapter":"^1.20.0",dumi:"2.2.14","dumi-theme-nocobase":"^0.2.28"},clientPkg={name,version,license,main,module:module$1,types,dependencies,peerDependencies,devDependencies};function createDesignable(e){return new Designable(e)}const generateUid=e=>{e&&(e["x-uid"]||(e["x-uid"]=(0,import_shared.uid)()),Object.keys(e.properties||{}).forEach(t=>{generateUid(e.properties[t])}))},defaultWrap=e=>e,matchSchema=(e,t)=>{if(!(!e||!t)){for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&t[o]!==(e==null?void 0:e[o]))return!1;return!0}},splitWrapSchema=(e,t)=>{if(e["x-uid"]&&e["x-uid"]===t["x-uid"])return[null,e.toJSON()];const o=e.toJSON(),r=P(x({},o),{properties:{}});let i=null;const n=(a,l)=>{Object.keys(a||{}).forEach(c=>{const u=a[c];if(u["x-uid"]===t["x-uid"]){i=a[c];return}else l.properties[c]=P(x({},u),{properties:{}}),n(u==null?void 0:u.properties,l.properties[c])})};return n(o.properties,r),[r,i]},translate=e=>e;class Designable{constructor(t){k(this,"current"),k(this,"options"),k(this,"appVersion"),k(this,"events",{}),this.options=t,this.current=t.current,this.appVersion=t.appVersion}get model(){return this.options.model}get query(){return this.options.query}loadAPIClientEvents(){const{api:t,t:o=translate}=this.options;if(!t)return;const r=i=>{if(!i)return[];const n=Object.values(i.properties).length,a=[];return i.mapProperties(l=>{l["x-component-props"]=l["x-component-props"]||{},l["x-component-props"].width=100/n,l["x-uid"]&&a.push({"x-uid":l["x-uid"],"x-component-props":l["x-component-props"]})}),i["x-uid"]&&a.length?a:[]};this.on("insertAdjacent",i=>q(this,[i],function*({onSuccess:n,current:a,position:l,schema:c,wrap:u,wrapped: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=>q(this,[i],function*({schema:n}){this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:patch",method:"post",data:x({},n)}),import_antd.message.success(o("Saved successfully"),.2))})),this.on("initializeActionContext",i=>q(this,[i],function*({schema:n}){n!=null&&n["x-uid"]&&(yield t.request({url:"/uiSchemas:initializeActionContext",method:"post",data:x({},n)}))})),this.on("batchPatch",i=>q(this,[i],function*({schemas:n}){this.refresh(),yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:n}),import_antd.message.success(o("Saved successfully"),.2)})),this.on("remove",i=>q(this,[i],function*({removed:n}){let a=[];(n==null?void 0:n["x-component"])==="Grid.Col"&&(a=r(n.parent)),this.refresh(),n!=null&&n["x-uid"]&&(yield t.request({url:`/uiSchemas:remove/${n["x-uid"]}`,method:"post"}),a.length&&(yield t.request({url:"/uiSchemas:batchPatch",method:"post",data:a})),import_antd.message.success(o("Saved successfully"),.2))}))}prepareProperty(t){t.type||(t.type="void"),t.name||(t.name=(0,import_shared.uid)()),this.current["x-uid"]&&generateUid(t)}on(t,o){this.events[t]||(this.events[t]=[]),this.events[t].push(o)}emit(t,...o){return q(this,null,function*(){if(!this.events[t])return;const[r,...i]=o;return Promise.all(this.events[t].map(n=>n.bind(this)(x({current:this.current},r),...i)))})}parentsIn(t){if(!t||!import_react.Schema.isSchemaInstance(t))return!1;let o=this.current;for(;o!=null&&o.parent;){if(o.parent===t)return!0;o=o.parent}return!1}refresh(t){const{refresh:o}=this.options;return o==null?void 0:o(t)}deepMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly"},r={"x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(i=>{o[i]?(this.current[i]=t[i],this.updateModel(o[i],t[i])):r[i]?Object.keys(t[i]).forEach(n=>{(0,import_set.default)(this.current,[i,n],t[i][n]),this.updateModel([r[i],n],t[i][n])}):this.current[i]=t[i]}),this.emit("patch",{schema:t})}getSchemaAttribute(t,o){return(0,import_get.default)(this.current,t,o)}shallowMerge(t){const o={title:"title",description:"description",default:"initialValue",readOnly:"readOnly",writeOnly:"editable",enum:"dataSource","x-pattern":"pattern","x-display":"display","x-validator":"validator","x-decorator":"decorator","x-component":"component","x-reactions":"reactions","x-content":"content","x-visible":"visible","x-hidden":"hidden","x-disabled":"disabled","x-editable":"editable","x-read-only":"readOnly","x-decorator-props":"decoratorProps","x-component-props":"componentProps","x-data":"data"};Object.keys(t).forEach(r=>{this.current[r]=t[r],o[r]&&this.updateModel(o[r],t[r])}),this.emit("patch",{schema:t})}updateModel(t,o){const r=i=>{(0,import_set.default)(i,t,o)};this.model&&r(this.model),this.query&&this.query.take(r)}insertAdjacent(t,o,r={}){switch(t){case"beforeBegin":return this.insertBeforeBegin(o,r);case"afterBegin":return this.insertAfterBegin(o,r);case"beforeEnd":return this.insertBeforeEnd(o,r);case"afterEnd":return this.insertAfterEnd(o,r)}}recursiveRemoveIfNoChildren(t,o){if(!t)return;let r=t,i;const n=o==null?void 0:o.breakRemoveOn;for(;r;){if(typeof n=="function"){if(n(r))break}else if(matchSchema(r,n))break;if(Object.keys(r.properties||{}).length>0)break;r.parent&&(i=r.parent.removeProperty(r.name)),r=r.parent}return i}remove(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return this.emit("remove",{removed:a})}removeWithoutEmit(t,o={}){const{breakRemoveOn:r,removeParentsIfNoChildren:i}=o,n=t||this.current;let a=n.parent.removeProperty(n.name);if(i){const l=this.recursiveRemoveIfNoChildren(n.parent,{breakRemoveOn:r});l&&(a=l)}return a}insertBeforeBeginOrAfterEnd(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current)||!import_react.Schema.isSchemaInstance(t)||this.current.parent!==t.parent)return;let r=0,i=0;return this.current.parent.mapProperties((n,a,l)=>{this.current.name===a&&(i=l),t.name===a&&(r=l)}),r>i?this.insertBeforeBegin(t,o):this.insertAfterEnd(t,o)}insertBeforeBegin(t,o={}){if(!import_react.Schema.isSchemaInstance(this.current))return;const r={onSuccess:o.onSuccess},{wrap:i=defaultWrap,breakRemoveOn:n,removeParentsIfNoChildren:a}=o;if(import_react.Schema.isSchemaInstance(t)){if(this.parentsIn(t)){this.emit("error",{code:"parent_is_not_allowed",schema:t});return}t.parent.removeProperty(t.name),a&&(r.removed=this.recursiveRemoveIfNoChildren(t.parent,{breakRemoveOn:n}))}else t&&(t=(0,import_cloneDeep.default)(t));const l={};let c=!1,u=0,m=0;this.current.parent.mapProperties((_,f)=>{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 C;if(!v)return null;if(typeof v!="string")return v;const S=(0,import_get.default)(n,v);return(C=S==null?void 0:S[LAZY_COMPONENT_KEY])!=null?C:S},[import_get.default]),on:_.on.bind(_),patch:(0,import_react2.useCallback)((v,C)=>{const S=b=>{Object.keys(b).forEach(y=>{const F=b[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(j=>{d.decoratorProps[j]=F[j],p["x-decorator-props"][j]=F[j]})),y==="x-component-props"&&(d.componentProps||(d.componentProps={}),p["x-component-props"]||(p["x-component-props"]={}),Object.keys(F).forEach(j=>{d.componentProps[j]=F[j],p["x-component-props"][j]=F[j]}))})};if(typeof v=="string"){const b={};return(0,import_set.default)(b,v,C),S(b)}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,C)=>{_.remove(v,C)},[_]),insertAdjacent:(0,import_react2.useCallback)((v,C,S)=>{_.insertAdjacent(v,C,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,onFilterChange:t}){const{parseFilter:o,findVariable:r}=useParseDataScopeFilter(),[i,n]=(0,import_react2.useState)({}),[a,l]=(0,import_react2.useState)(!!e);return(0,import_react2.useEffect)(()=>{if(!e)return;const c=()=>q(this,null,function*(){l(!0);const m=yield o(e);l(!1),n(m),t==null||t(m)});c();const u=import_lodash.default.debounce(c,DEBOUNCE_WAIT);(0,import_reactive.reaction)(()=>(0,import_client.flatten)(e,{breakOn({key:m}){return m.startsWith("$")&&m!=="$and"&&m!=="$or"},transformValue(m){if(!isVariable$1(m))return m;const d=getVariableName(m),p=r(d);let h=null;const g=getPath(m).split(".");return g.forEach((_,f)=>{const v=g.slice(0,f+1).join("."),C=(0,import_client.getValuesByPath)({[d]:(p==null?void 0:p.ctx)||{}},v);import_lodash.default.isEmpty(C)||(h=C)}),h}}),u,{equals:import_lodash.default.isEqual})},[JSON.stringify(e),o,r]),{filter:i,parseVariableLoading:a}}const useParentRecordCommon=e=>{const t=useCollectionRecordData();if(e)return t},useTableBlockDecoratorProps=e=>{var t;const{params:o,parseVariableLoading:r}=useTableBlockParams(e),i=useParentRecordCommon(e.association),n=(t=useDataSourceManager().getDataSource(e.dataSource))==null?void 0:t.collectionManager.getCollection(e.collection);return{params:o,parentRecord:i,parseVariableLoading:r,rowKey:(n==null?void 0:n.filterTargetKey)||"id"}};function useTableBlockParams(e){var t;const o=(0,import_react.useFieldSchema)(),{filter:r,parseVariableLoading:i}=useParsedFilter({filterOption:(t=e.params)==null?void 0:t.filter});return{params:(0,import_react2.useMemo)(()=>{const n=e.params||{},{dragSortBy:a}=(o==null?void 0:o["x-decorator-props"])||{};return e.dragSort&&a&&(n.sort=a),P(x({},n),{filter:r})},[o,r,e.dragSort,e.params]),parseVariableLoading:i}}const key="__isNewRecord__",isNewRecord=e=>(0,import_reactive.untracked)(()=>!!(e!=null&&e[key])),markRecordAsNew=e=>{if(!(0,import_lodash.isObject)(e))throw new Error("markRecordAsNew: record must be an object");return e[key]=!0,e},useDefaultLoading=()=>{var e;return!!((e=useDataBlockRequest())!=null&&e.loading)},withSkeletonComponent=(e,t)=>{const{useLoading:o=useDefaultLoading,displayName:r,SkeletonComponent:i=import_antd.Skeleton}=t||{},n=import_react2.default.memo(a=>{const l=o(),c=(0,import_react2.useRef)(!1),u=(0,import_react2.useDeferredValue)(l);return!c.current&&u?(0,import_jsx_runtime.jsx)(i,{}):(c.current=!0,(0,import_jsx_runtime.jsx)(e,x({},a)))});return n.displayName=r||`${e.displayName}(withSkeletonComponent)`||`${e.name}(withSkeletonComponent)`,n},getActionValue=(e,t)=>{const o=r=>(r==null?void 0:r.mode)==="constant"?r.value:null;switch(!0){case[ActionType.Color,ActionType.BackgroundColor,ActionType.TextAlign,ActionType.FontSize,ActionType.FontWeight,ActionType.FontStyle].includes(e):return o(t);default:return null}},getSatisfiedActions=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield Promise.all(o.filter(a=>!a.disabled).map(a=>q(void 0,null,function*(){return(yield conditionAnalyses({ruleGroup:a.condition,variables:r,localVariables:i,conditionType:a.conditionType},n))?a:null})))).filter(Boolean).map(a=>a.actions).flat()}),getSatisfiedValues=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedActions({rules:o,variables:r,localVariables:i},n)).map(a=>P(x({},a),{value:getActionValue(a.operator,a.value)}))}),getSatisfiedValueMap=(e,t)=>q(void 0,[e,t],function*({rules:o,variables:r,localVariables:i},n){return(yield getSatisfiedValues({rules:o,variables:r,localVariables:i},n)).reduce((a,l)=>P(x({},a),{[l.operator]:l.value}),{})});function useSatisfiedActionValues({formValues:e,category:t="default",rules:o,schema:r,form:i}){const[n,a]=(0,import_react2.useState)({}),l=(0,import_react.useFieldSchema)(),c=useVariables$1(),u=useLocalVariables$1({currentForm:{values:e}}),m=r??l,d=o??(m[LinkageRuleDataKeyMap[t]]||(m==null?void 0:m.parent[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,e]),{valueMap:n}}const GetStyleRules=import_react2.default.memo(({record:e,schema:t,onStyleChange:o})=>{const{valueMap:r}=useSatisfiedActionValues({formValues:e,category:"style",schema:t});return(0,import_react2.useEffect)(()=>{o(r)},[o,r]),null});GetStyleRules.displayName="GetStyleRules";const opacityStyle={opacity:.5},containerStyle={position:"relative"},spinStyle={display:"flex",alignItems:"center",justifyContent:"center",position:"absolute",left:0,right:0,height:"100%",maxHeight:400,zIndex:1e3},displayNone$3={display:"none"},HighPerformanceSpin=import_react2.default.memo(e=>(0,import_jsx_runtime.jsxs)("div",{style:containerStyle,children:[(0,import_jsx_runtime.jsx)(import_antd.Spin,P(x({},import_lodash.default.omit(e,"children")),{style:e.spinning?spinStyle:displayNone$3})),(0,import_jsx_runtime.jsx)("div",{style:e.spinning?opacityStyle:null,children:e.children})]}));var FilterBlockType=(e=>(e[e.FORM=0]="FORM",e[e.TABLE=1]="TABLE",e[e.TREE=2]="TREE",e[e.COLLAPSE=3]="COLLAPSE",e))(FilterBlockType||{});const mergeFilter=(e,t="$and")=>{const o=e.filter(r=>{if(r&&typeof r=="object"&&!Array.isArray(r))return Object.values(r).filter(i=>i!==void 0).length});return o.length===0?{}:o.length===1?o[0]:{[t]:o}},getSupportFieldsByAssociation=(e,t)=>{var o;return(o=t.associatedFields)==null?void 0:o.filter(r=>e==null?void 0:e.some(i=>i===r.target))},getSupportFieldsByForeignKey=(e,t)=>{var o;return(o=t.foreignKeyFields)==null?void 0:o.filter(r=>e.fields.some(i=>i.type!=="belongsTo"&&i.foreignKey===r.name&&i.target===r.collectionName))},useSupportedBlocks=e=>{const{getDataBlocks:t}=useFilterBlock(),o=(0,import_react.useFieldSchema)(),r=useCollection(),{getAllCollectionsInheritChain:i}=useAllCollectionsInheritChainGetter();if(e===0||e===3)return t().filter(n=>isSameCollection(n.collection,r));if(e===1||e===2)return t().filter(n=>{var a,l;return o["x-uid"]!==n.uid&&(isSameCollection(n.collection,r)||((a=getSupportFieldsByAssociation(i(r.name,r.dataSource),n))==null?void 0:a.length)||((l=getSupportFieldsByForeignKey(r,n))==null?void 0:l.length))})},transformToFilter=(e,t,o,r)=>(e=(0,import_client.flatten)(e,{breakOn({value:i,path:n}){if(["$match","$notMatch","$anyOf","$noneOf","$childIn","$childNotIn","$dateBetween","$in","$notIn"].includes(t[n]))return!0;const a=o(`${r}.${n}`);if(["datetime","datetimeNoTz","date","unixTimestamp","createdAt","updatedAt"].includes(a==null?void 0:a.interface))return!0;if(a!=null&&a.target){if(Array.isArray(i))return!0;const l=a.targetKey||"id";if(i&&i[l]!=null)return!0}return!1}}),{$and:Object.keys(e).map(i=>{let n=import_lodash.default.get(e,i);const a=o(`${r}.${i}`);return a!=null&&a.target&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(a.type)&&(n=(0,import_client.getValuesByPath)(n,a.targetKey||"id"),i=`${i}.${a.targetKey||"id"}`,(a==null?void 0:a.interface)==="chinaRegion"&&(n=import_lodash.default.last(n))),!n&&n!==0&&n!==!1?null:{[i]:{[t[i]||"$eq"]:n}}}).filter(Boolean)}),useAssociatedFields=()=>{var e;return((e=useCollection())==null?void 0:e.fields.filter(t=>isAssocField(t)))||[]},isAssocField=e=>["o2o","oho","obo","m2o","createdBy","updatedBy","o2m","m2m","linkTo","chinaRegion","mbm"].includes(e==null?void 0:e.interface),isSameCollection=(e,t)=>e.name===t.name&&e.dataSource===t.dataSource,useFilterAPI=()=>{const e=(0,import_react.useFieldSchema)(),{getDataBlocks:t}=useFilterBlock(),{targets:o,uid:r}=findFilterTargets(e),i=t(),[n,a]=(0,import_react2.useState)(()=>o&&o.some(u=>i.some(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 C=m;const S=o.find(j=>j.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)&&(C=m(S,h)),import_lodash.default.isFunction(d)&&(d=d(S));const b=((g=h.service.params)==null?void 0:g[0])||{},y=((f=(_=h.service.params)==null?void 0:_[1])==null?void 0:f.filters)||{};if(u!=null)y[r]={$and:[{[C]:{[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(j=>removeNullCondition(j)),h.defaultFilter]);h.doFilter(P(x({},b),{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(),C=useRecord(),{isNew:S}=useCollectionRecord()||{},b=((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:y}=useParsedFilter({filterOption:b,onFilterChange:()=>{S&&_.reset()}}),F=(0,import_react2.useMemo)(()=>f(g.name)||v(g==null?void 0:g["x-collection-field"]),[g]),j=C==null?void 0:C[F==null?void 0:F.sourceKey],A=(0,import_react2.useMemo)(()=>{const D=["oho","o2m"].includes(F==null?void 0:F.interface);return mergeFilter([mergeFilter([D&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$is:null}}:null,y]),D&&j!==void 0&&j!==null&&!isInFilterFormBlock(g)&&F!=null&&F.foreignKey&&!h?{[F.foreignKey]:{$eq:j}}:null],"$or")},[F==null?void 0:F.interface,F==null?void 0:F.foreignKey,g,y,j,h]);return(0,import_react2.useMemo)(()=>P(x({resource:F==null?void 0:F.target,action:d},p),{params:P(x({},p==null?void 0:p.params),{filter:A})}),[F==null?void 0:F.target,d,A,p])}const useFieldNames$1=(e={})=>{var t,o,r,i,n;const a=(0,import_react.useFieldSchema)(),l=((i=(r=(o=(t=a["x-component-props"])==null?void 0:t.field)==null?void 0:o.uiSchema)==null?void 0:r["x-component-props"])==null?void 0:i.fieldNames)||((n=a["x-component-props"])==null?void 0:n.fieldNames)||e.fieldNames;return x({label:"label",value:"value"},l)},SubFormContext=(0,import_react2.createContext)(null);SubFormContext.displayName="SubFormContext";const SubFormProvider=e=>{const t=(0,import_react2.useContext)(SubFormContext),{value:o,collection:r,fieldSchema:i,parent:n,skip:a}=e.value,l=(0,import_react2.useMemo)(()=>import_lodash.default.omitBy({value:o,collection:r,fieldSchema:i,skip:a,parent:n||(t!=null&&t.skip?t.parent:t)},import_lodash.default.isUndefined),[o,r,i,a,n,t]);return(0,import_jsx_runtime.jsx)(SubFormContext.Provider,{value:l,children:e.children})},useSubFormValue=()=>{const{value:e,collection:t,fieldSchema:o,parent:r}=(0,import_react2.useContext)(SubFormContext)||{};return{formValue:e,collection:t,fieldSchema:o,parent:r}},useColumnSettings=e=>{const{t}=(0,import_react_i18next.useTranslation)(),o=`nocobase_table_column_settings_${e}`,r=(0,import_react2.useCallback)(()=>{try{const a=localStorage.getItem(o);return a?JSON.parse(a):null}catch(a){return console.warn("Failed to parse table column settings from localStorage:",a),null}},[o]),i=(0,import_react2.useCallback)(a=>{try{const l=JSON.stringify(a);localStorage.setItem(o,l);const c=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:a}});window.dispatchEvent(c)}catch(l){console.warn("Failed to save table column settings to localStorage:",l),import_antd.message.error(t("Failed to save table settings"))}},[o,e,t]),n=(0,import_react2.useCallback)(()=>{try{localStorage.removeItem(o);const a=new CustomEvent("nocobase-table-settings-changed",{detail:{key:o,tableId:e,settings:null}});window.dispatchEvent(a)}catch(a){console.warn("Failed to clear table column settings from localStorage:",a),import_antd.message.error(t("Failed to clear table settings"))}},[o,e,t]);return{getSettings:r,saveSettings:i,clearSettings:n}},useTableColumnIntegration=(e,t=!0)=>{const o=(0,import_react.useFieldSchema)(),r=(o==null?void 0:o["x-uid"])||"default",{getSettings:i}=useColumnSettings(r),[n,a]=(0,import_react2.useState)(0);(0,import_react2.useEffect)(()=>{const c=u=>{const{key:m,tableId:d}=u.detail;(m.includes(r)||d===r)&&a(p=>p+1)};return window.addEventListener("nocobase-table-settings-changed",c),()=>{window.removeEventListener("nocobase-table-settings-changed",c)}},[r]);const l=(0,import_react2.useMemo)(()=>i(),[i,n]);return{columns:(0,import_react2.useMemo)(()=>{if(!t||!l||l.length===0)return e;const c=new Map;l.forEach(h=>{c.set(h.key,h)});const u=e.map(h=>{const g=c.get(h.key);if(g){const _=h.columnHidden||!g.visible,f=g.width||h.width,v=g.fixed||h.fixed;return P(x({},h),{columnHidden:_,fixed:v,width:f,_orderIndex:g.order})}return h}),m=[],d=[];u.forEach(h=>{h._orderIndex!==void 0?m.push(h):d.push(h)}),m.sort((h,g)=>(h._orderIndex||0)-(g._orderIndex||0));const p=[...m,...d];return p.forEach(h=>{delete h._orderIndex}),p},[e,l])}},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};
@@ -628,7 +628,7 @@ https://requirejs.org/docs/errors.html#`+e);return i.requireType=e,i.requireModu
628
628
  .ant-pagination-simple-pager {
629
629
  display: none !important;
630
630
  }
631
- `}:{simple:!0,hidden:C<=1,current:((f=(_=(g=v.service)==null?void 0:g.data)==null?void 0:_.meta)==null?void 0:f.page)||1,total:C,pageSize:1,showSizeChanger:!1,align:"center",onChange(y){return q(this,null,function*(){var F,j;const A=(j=(F=v.service)==null?void 0:F.params)==null?void 0:j[0];v.service.run(P(x({},A),{page:y}))})},style:{marginTop:24,textAlign:"center"}}},useAssociationFilterProps=()=>{var e,t,o,r,i;const n=AssociationFilter.useAssociationField(),{service:a,props:l}=useBlockRequestContext(),c=(0,import_react.useFieldSchema)(),u=useCollectionManager_deprecated(),m=n!=null&&n.target?(e=u.getCollection(n.target))==null?void 0:e.getPrimaryKey():"id",d=((o=(t=c["x-component-props"])==null?void 0:t.fieldNames)==null?void 0:o.label)||m,p=(0,import_react.useField)(),h=n.name,g=useDataSourceHeaders(l==null?void 0:l.dataSource),{data:_,params:f,run:v}=useRequest({headers:g,resource:n.target,action:"list",params:x({fields:[d,m],pageSize:200,page:1},(r=p.componentProps)==null?void 0:r.params)},{refreshDeps:[d,m,JSON.stringify(((i=p.componentProps)==null?void 0:i.params)||{})],debounceWait:300});return{list:(_==null?void 0:_.data)||[],onSelected:C=>{var S,b,y,F;const j=((b=(S=a.params)==null?void 0:S[1])==null?void 0:b.filters)||{};C.length?j[`af.${h}`]={[`${h}.${m}.$in`]:C}:delete j[`af.${h}`],a.run(P(x({},(y=a.params)==null?void 0:y[0]),{pageSize:200,page:1,filter:mergeFilter([...Object.values(j),(F=l==null?void 0:l.params)==null?void 0:F.filter])}),{filters:j})},handleSearchInput:C=>{v(P(x({},f==null?void 0:f[0]),{filter:{[`${d}.$includes`]:C.target.value}}))},params:f,run:v}},useOptionalFieldList=()=>{const{currentFields:e=[]}=useCollection_deprecated();return e.filter(t=>isOptionalField(t))},isOptionalField=e=>{var t;return["select","multipleSelect","checkbox","checkboxGroup","chinaRegion"].includes(e==null?void 0:e.interface)&&((t=e==null?void 0:e.uiSchema)==null?void 0:t.enum)},useAssociationFilterBlockProps=()=>{var e,t,o,r,i,n,a,l,c,u;const m=AssociationFilter.useAssociationField(),d=(0,import_react.useFieldSchema)(),p=useOptionalFieldList(),{getDataBlocks:h}=useFilterBlock(),g=m==null?void 0:m.name,_=(0,import_react.useField)(),{props:f}=useBlockRequestContext(),v=useDataSourceHeaders(f==null?void 0:f.dataSource),C=useCollectionManager(),{filter:S,parseVariableLoading:b}=useParsedFilter({filterOption:(t=(e=_.componentProps)==null?void 0:e.params)==null?void 0:t.filter});let y,F,j,A,D,N,M,w;N=m!=null&&m.target?(o=C==null?void 0:C.getCollection(m.target))==null?void 0:o.getPrimaryKey():"id",M=((i=(r=d["x-component-props"])==null?void 0:r.fieldNames)==null?void 0:i.label)||N,{data:D,params:j,run:A}=useRequest({headers:v,resource:m==null?void 0:m.target,action:"list",params:P(x({fields:[M,N],pageSize:200,page:1},(n=_.componentProps)==null?void 0:n.params),{filter:S})},{manual:!0,debounceWait:300}),(0,import_react2.useEffect)(()=>{m&&!isOptionalField(m)&&b===!1&&A()},[m,M,A,N,(a=_.componentProps)==null?void 0:a.params,(c=(l=_.componentProps)==null?void 0:l.params)==null?void 0:c.sort,b]);const R=(0,import_react2.useCallback)(T=>{const{targets:$,uid:B}=findFilterTargets(d);h().forEach(I=>{var E,V,O,L;if(!$.find(K=>K.uid===I.uid))return;const U=`${B}${d.name}`,z=((E=I.service.params)==null?void 0:E[0])||{};(O=(V=I.service.params)==null?void 0:V[1])!=null&&O.filters||import_lodash.default.set(I.service.params,"[1].filters",{});const G=I.service.params[1].filters;if(T.length)G[U]={[w]:T};else{if((L=I.clearSelection)==null||L.call(I),I.dataLoadingMode==="manual")return I.clearData();delete G[U]}const H=mergeFilter([...Object.values(G),I.defaultFilter]);return I.doFilter(P(x({},z),{page:1,filter:H}),{filters:G})})},[d,w,h]);if(!m)return{};if(isOptionalField(m)){const T=p.find(I=>I.name===d.name),$={select:"$in",multipleSelect:"$anyOf",checkbox:"$in",checkboxGroup:"$anyOf"},B=((u=T==null?void 0:T.uiSchema)==null?void 0:u.enum)||[];N="value",M="label",y=B,j={},A=()=>{},w=`${T.name}.${$[T.interface]}`,F=I=>{const E=I.target.value;if(!E){y=B;return}y=B.filter(V=>V.label.includes(E))}}else w=`${g}.${N}.$in`,y=(D==null?void 0:D.data)||[],F=T=>{A(P(x({},j==null?void 0:j[0]),{filter:{[`${M}.$includes`]:T.target.value}}))};return{list:y,onSelected:R,handleSearchInput:F,params:j,run:A,valueKey:N,labelKey:M,dataScopeFilter:S}};function doReset(e){return q(this,arguments,function*({getDataBlocks:t,targets:o,uid:r}){try{yield Promise.all(t().map(i=>q(this,null,function*(){var n,a,l,c;if(!o.find(p=>p.uid===i.uid))return;if((n=i.clearSelection)==null||n.call(i),i.dataLoadingMode==="manual")return i.clearData();const u=((a=i.service.params)==null?void 0:a[0])||{},m=((c=(l=i.service.params)==null?void 0:l[1])==null?void 0:c.filters)||{};delete m[r];const d=mergeFilter([...Object.values(m),i.defaultFilter]);return i.doFilter(P(x({},u),{page:1,filter:d}),{filters:m})})))}catch(i){console.error(i)}})}function getAssociationPath(e){const t=e.lastIndexOf(".");return t!==-1?e.substring(0,t):e}const getAppends=({schema:e,prefix:t,updateAssociationValues:o,appends:r,getCollectionJoinField:i,getCollection:n,dataSource:a})=>{e.reduceProperties((l,c)=>{var u,m,d;const p=l||t,h=c["x-collection-field"]&&i(c["x-collection-field"],a),g=c.name.includes("."),_=h&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(h.type);if(c["x-linkage-rules"]&&!isSubMode(c)){const v=C=>{const S=Object.keys(C)[0]||"$and";C[S].forEach(b=>{if("$and"in b||"$or"in b)return v(b);const y=getTargetField(b);y.length>1&&!b.op&&r.add(y.join("."))})};c["x-linkage-rules"].forEach(({condition:C})=>{v(C)})}const f=_&&((u=n(h.target,a))==null?void 0:u.template)==="tree";if(h&&(_||g)&&c["x-component"]!=="TableField"){const v=!_&&g?getAssociationPath(c.name):c.name,C=p===""||!p?v:p+"."+v;if(f)r.add(C),r.add(`${C}.parent(recursively=true)`);else if((m=c["x-component-props"])!=null&&m.sortArr){const S=(d=c["x-component-props"])==null?void 0:d.sortArr;r.add(`${C}(sort=${S})`)}else r.add(C);if(isSubMode(c)){o.add(C);const S=p&&p!==""?p+"."+c.name:c.name;getAppends({schema:c,prefix:S,updateAssociationValues:o,appends:r,getCollectionJoinField:i,getCollection:n,dataSource:a})}}else["Action","Action.Link","Action.Modal","Selector","Viewer","AddNewer","AssociationField.Selector","AssociationField.AddNewer","TableField","Kanban.CardViewer","Action.Container"].includes(c["x-component"])||getAppends({schema:c,prefix:t,updateAssociationValues:o,appends:r,getCollectionJoinField:i,getCollection:n,dataSource:a})},t)},useAssociationNames=e=>{const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(e),r=(0,import_react.useFieldSchema)(),i=(0,import_react2.useRef)(null);return{getAssociationAppends:(0,import_react2.useCallback)(()=>{const n=new Set([]);let a=new Set([]);getAppends({schema:r,prefix:"",updateAssociationValues:n,appends:a,getCollectionJoinField:t,getCollection:o,dataSource:e}),a=fillParentFields(a);const l=[...a],c=[...n],u={appends:import_lodash.default.isEqual(i.current,l)?i.current:l,updateAssociationValues:c};return i.current=u.appends,u},[e,r,o,t])}};function getTargetField(e){function t(i){const n=[];function a(l){Object.keys(l).sort().forEach(function(c){n.push(c),l[c]&&typeof l[c]=="object"&&a(l[c])})}return a(i),n}const o=t(e),r=import_lodash.default.findIndex(o,(i,n)=>{if(i.includes("$")&&n>0)return!0});return o.slice(0,r)}function resetFormCorrectly(e){return q(this,null,function*(){(0,import_reactive.untracked)(()=>{Object.keys(e.fields).forEach(t=>{isSubMode(e.fields[t])&&(e.fields[t].initialValue=null)})}),yield e.reset()})}function appendQueryStringToUrl(e,t){return t?e+(e.includes("?")?"&":"?")+t:e}const useParseURLAndParams=()=>{const e=useVariables$1(),t=useLocalVariables$1();return{parseURLAndParams:(0,import_react2.useCallback)((o,r)=>q(void 0,null,function*(){const i=yield parseVariablesAndChangeParamsToQueryString({searchParams:r,variables:e,localVariables:t,replaceVariableValue}),n=yield replaceVariableValue(o,e,t);return appendQueryStringToUrl(n,i)}),[e,t])}};function useLinkActionProps(e){var t;const o=useNavigateNoUpdate(),r=(0,import_react.useFieldSchema)(),i=(r==null?void 0:r["x-component-props"])||e,{t:n}=(0,import_react_i18next.useTranslation)(),a=i==null?void 0:i.url,l=(i==null?void 0:i.params)||[],c=(i==null?void 0:i.type)||"default",u=(t=r==null?void 0:r["x-component-props"])==null?void 0:t.openInNewWindow,{parseURLAndParams:m}=useParseURLAndParams(),d=useRouterBasename();return{type:c,onClick(){return q(this,null,function*(){if(!a){import_antd.message.warning(n("Please configure the URL"));return}const p=yield m(a,l);p?u?window.open(completeURL(p),"_blank"):navigateWithinSelf(p,o,window.location.origin+d):console.error("link should be a string")})}}}function replaceVariableValue(e,t,o){return q(this,null,function*(){if(!e)return;const{evaluate:r}=import_client3.evaluators.get("string"),{exp:i,scope:n}=yield replaceVariables(e,{variables:t,localVariables:o});try{return r(i,x({now:()=>new Date().toString()},n))}catch(a){console.error(a)}})}function parseVariablesAndChangeParamsToQueryString(e){return q(this,arguments,function*({searchParams:t,variables:o,localVariables:r,replaceVariableValue:i}){const n=yield Promise.all(t.map(l=>q(this,[l],function*({name:c,value:u}){if(typeof u=="string"){if(isVariable$1(u)){const{value:d}=(yield o.parseVariable(u,r))||{};return{name:c,value:d}}const m=yield i(u,o,r);return{name:c,value:m}}return{name:c,value:u}}))),a={};for(const{name:l,value:c}of n)l&&c&&(a[l]=reduceValueSize(c));return import_qs.default.stringify(a)})}function reduceValueSize(e){if(import_lodash.default.isPlainObject(e)){const t={};return Object.keys(e).forEach(o=>{import_lodash.default.isPlainObject(e[o])||import_lodash.default.isArray(e[o])||import_lodash.default.isString(e[o])&&e[o].length>100||(t[o]=e[o])}),t}return import_lodash.default.isArray(e)?e.map(t=>import_lodash.default.isPlainObject(t)||import_lodash.default.isArray(t)?reduceValueSize(t):t):e}function completeURL(e,t=window.location.origin){return e?(0,import_client.isURL)(e)?e:e.startsWith("/")?`${t}${e}`:`${t}/${e}`:""}function navigateWithinSelf(e,t,o=window.location.origin){if(!import_lodash.default.isString(e))return console.error("link should be a string");(0,import_client.isURL)(e)?e.startsWith(o)?t(completeURL(e.replace(o,""),"")):window.open(e,"_self"):t(completeURL(e,""))}function fillParentFields(e){return Array.from(e).filter(t=>t.includes(".")).forEach(t=>{const o=t.split(".");o.pop();const r=o.join(".");e.add(r)}),e}const useSyncFromForm=(e,t,o)=>{const{getCollectionJoinField:r,getCollectionFields:i}=useCollectionManager_deprecated(),n=import_antd_v5.ArrayBase.useArray(),a=import_antd_v5.ArrayBase.useIndex(),l=import_antd_v5.ArrayBase.useRecord(),c=useCompile(),{t:u}=(0,import_react_i18next.useTranslation)(),m=(0,import_react.useForm)(),d=(g=>(_,{exclude:f=[],depth:v=0,maxDepth:C,prefix:S="",disabled:b=!1},y)=>{const F=`${_}-${f.join(",")}-${v}-${C}-${S}`,j=g.get(F);if(j)return j;if(v>C)return[];const A=i(_).map(D=>{var N;if(f.includes(D.name)||!D.interface||["sort","password","sequence"].includes(D.type))return;const M={type:"duplicate",tag:c((N=D.uiSchema)==null?void 0:N.title)||D.name},w=P(x({},M),{title:import_react2.default.createElement(TreeNode,M),key:S?`${S}.${D.name}`:D.name,isLeaf:!0,field:D,disabled:b}),R=y.find(T=>T.name===w.key);if(["belongsTo","belongsToMany"].includes(D.type)&&(!R||["Select","Picker"].includes(R==null?void 0:R.fieldMode)))M.type="reference",w.type="reference",w.title=import_react2.default.createElement(TreeNode,P(x({},M),{type:"reference"})),w.isLeaf=!1,w.children=p(D.target,{depth:v+1,maxDepth:C,prefix:w.key,exclude:systemKeys});else if(["hasOne","hasMany"].includes(D.type)||["Nester","SubTable"].includes(R==null?void 0:R.fieldMode)){let T=!1;["hasOne","hasMany"].includes(D.type)&&["Select","Picker"].includes(R==null?void 0:R.fieldMode)&&(T=!0),w.disabled=!0,w.isLeaf=!1,w.children=d(D.target,{depth:v+1,maxDepth:C,prefix:w.key,exclude:["id",...systemKeys],disabled:T},y)}return w}).filter(Boolean);return g.set(F,A),A})(new import_lru_cache.default({max:100})),p=(g=>(_,{prefix:f,maxDepth:v,depth:C=0,exclude:S=[]})=>{const b=`${_}-${S.join(",")}-${C}-${v}-${f}`,y=g.get(b);if(y)return y;if(C>v)return[];const F=i(_).map(j=>{var A,D;if(!j.target||!j.interface||S.includes(j.name))return;const N={type:"preloading",tag:c((A=j.uiSchema)==null?void 0:A.title)||j.name},M=f?`${f}.${j.name}`:j.name;return{type:"preloading",tag:c((D=j.uiSchema)==null?void 0:D.title)||j.name,title:import_react2.default.createElement(TreeNode,N),key:M,isLeaf:!1,field:j,children:p(j.target,{prefix:M,depth:C+1,maxDepth:v,exclude:S})}}).filter(Boolean);return g.set(b,F),F})(new import_lru_cache.default({max:100})),h=(0,import_react2.useCallback)((g,_)=>{if(!g)return[];try{return d(g,{exclude:["id",...systemKeys],maxDepth:1,disabled:!1},_)}catch(f){return console.error(f),[]}},[]);return{run(){return q(this,null,function*(){var g;const _=new Set([]),f=new Set([]),v=(S,b)=>{var y;(y=S==null?void 0:S.reduceProperties)==null||y.call(S,(F,j)=>{var A,D,N;const M=F||b,w=j["x-collection-field"]&&r(j["x-collection-field"]),R=j.name.includes("."),T=w&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(w.type),$=!T&&R?getAssociationPath(j.name):j.name,B=M===""||!M?$:M+"."+$;if(w&&!(["hasOne","hasMany"].includes(w.type)||["SubForm","Nester"].includes((A=j["x-component-props"])==null?void 0:A.mode))&&f.add(B),w&&(T||R)&&j["x-component"]!=="TableField"){if(_.add({name:B,fieldMode:((D=j["x-component-props"])==null?void 0:D.mode)||"Select"}),["Nester","SubTable"].includes((N=j["x-component-props"])==null?void 0:N.mode)){const I=M&&M!==""?M+"."+j.name:j.name;v(j,I)}}else["ActionBar","Action","Action.Link","Action.Modal","Selector","Viewer","AddNewer","AssociationField.Selector","AssociationField.AddNewer","TableField"].includes(j["x-component"])||v(j,b)},b)};v(e,"");const C=h((l==null?void 0:l.collection)||t,[..._]);o?o(C,[...f],m):(n==null||n.field.form.query(`fieldReaction.items.${a}.layout.fields`).take(S=>{S.componentProps.treeData=[],setTimeout(()=>S.componentProps.treeData=C)}),n==null||n.field.value.splice(a,1,P(x({},(g=n==null?void 0:n.field)==null?void 0:g.value[a]),{fields:[...f],treeData:C}))),import_antd.message.success(u("Sync successfully"))})}}};function SchemaSettingsBlockTitleItem(){var e,t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable(),{t:n}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:n("Edit block title & description"),schema:{type:"object",title:n("Edit block title & description"),properties:{title:{title:n("title"),type:"string",default:(e=r==null?void 0:r["x-component-props"])==null?void 0:e.title,"x-decorator":"FormItem","x-component":"Input","x-component-props":{"aria-label":"block-title"}},description:{title:n("Description"),type:"string",default:(t=r==null?void 0:r["x-component-props"])==null?void 0:t.description,"x-decorator":"FormItem","x-component":"Markdown"}}},onSubmit:({title:a,description:l})=>{const c=r["x-component-props"]||{};c.title=a,c.description=l,r["x-component-props"]=c,o.componentProps.title=a,o.componentProps.description=l,i.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":r["x-component-props"]}})}})}const getTargetKey=e=>(e==null?void 0:e.targetKey)||"id";function SchemaSettingsConnectDataBlocks(e){const{type:t,emptyDescription:o}=e,r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable(),{t:n}=(0,import_react_i18next.useTranslation)(),a=useCollection(),{inProvider:l}=useFilterBlock(),c=useSupportedBlocks(t);let{targets:u=[],uid:m}=findFilterTargets(r);const d=useCompile(),{getAllCollectionsInheritChain:p}=useAllCollectionsInheritChainGetter();if(!l)return null;const h=c.map(g=>{const _=`${d(g.collection.title)} #${g.uid.slice(0,4)}`,f=()=>{g.highlightBlock()},v=()=>{g.unhighlightBlock()};if(isSameCollection(g.collection,a))return(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:_,checked:u.some(S=>S.uid===g.uid),onChange:S=>{S?u.push({uid:g.uid}):(u=u.filter(b=>b.uid!==g.uid),g.clearFilter(m)),updateFilterTargets(r,u),i.emit("patch",{schema:{"x-uid":m,"x-filter-targets":u}}).catch(import_client.error),i.refresh()},onMouseEnter:f,onMouseLeave:v},g.uid);const C=u.find(S=>S.uid===g.uid);return(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:_,value:(C==null?void 0:C.field)||"",options:[...getSupportFieldsByAssociation(p(a.name),g).map(S=>({label:d(S.uiSchema.title)||S.name,value:`${S.name}.${getTargetKey(S)}`})),...getSupportFieldsByForeignKey(a,g).map(S=>({label:`${d(S.uiSchema.title)||S.name} [${n("Foreign key")}]`,value:S.name})),{label:n("Unconnected"),value:""}],onChange:S=>{S===""?(u=u.filter(b=>b.uid!==g.uid),g.clearFilter(m)):(u=u.filter(b=>b.uid!==g.uid),u.push({uid:g.uid,field:S})),updateFilterTargets(r,u),i.emit("patch",{schema:{"x-uid":m,"x-filter-targets":u}}),i.refresh()},onMouseEnter:f,onMouseLeave:v},g.uid)});return(0,import_jsx_runtime.jsx)(SchemaSettingsSubMenu,{title:n("Connect data blocks"),children:h.length?h:(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:"empty",children:(0,import_jsx_runtime.jsx)(import_antd.Empty,{style:{width:160,padding:"0 1em"},description:o,image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE})})})}const UnitConversion=({unitConversionType:e})=>{const t=(0,import_react.useForm)(),{t:o}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(import_antd.Select,{defaultValue:e||"*",style:{width:160},onChange:r=>{t.setValuesIn("unitConversionType",r)},children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"*",children:o("Multiply by")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"/",children:o("Divide by")})]})},SchemaSettingsNumberFormat=function e(t){var o;const{fieldSchema:r}=t,i=(0,import_react.useField)(),{dn:n}=useDesignable(),{t:a}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=l(r==null?void 0:r["x-collection-field"])||{},{formatStyle:u,unitConversion:m,unitConversionType:d,separator:p,step:h,addonBefore:g,addonAfter:_}=r["x-component-props"]||{},{step:f}=((o=c==null?void 0:c.uiSchema)==null?void 0:o["x-component-props"])||{};return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:a("Format"),schema:{type:"object",properties:{formatStyle:{type:"string",default:u||"normal",enum:[{value:"normal",label:a("Normal")},{value:"scientifix",label:a("Scientifix notation")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Style')}}"},unitConversion:{type:"number","x-decorator":"FormItem","x-component":"InputNumber",title:"{{t('Unit conversion')}}",default:m,"x-component-props":{style:{width:"100%"},addonBefore:(0,import_jsx_runtime.jsx)(UnitConversion,{unitConversionType:d})}},separator:{type:"string",default:p||"0,0.00",enum:[{value:"0,0.00",label:a("100,000.00")},{value:"0.0,00",label:a("100.000,00")},{value:"0 0,00",label:a("100 000.00")},{value:"0.00",label:a("100000.00")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Separator')}}"},step:{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",default:h||f||"1",enum:[{value:"1",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"},{value:"0.000001",label:"1.000000"},{value:"0.0000001",label:"1.0000000"},{value:"0.00000001",label:"1.00000000"}]},addonBefore:{type:"string",title:'{{t("Prefix")}}',"x-component":"Input","x-decorator":"FormItem",default:g},addonAfter:{type:"string",title:'{{t("Suffix")}}',"x-component":"Input","x-decorator":"FormItem",default:_}}},onSubmit:v=>{const C={"x-uid":r["x-uid"]};C["x-component-props"]=r["x-component-props"]||{},r["x-component-props"]=x(x({},r["x-component-props"]||{}),v),C["x-component-props"]=r["x-component-props"],i.componentProps=r["x-component-props"];const S=i.path.entire.split(".");S.pop();const b=S.join(".");i.query(`${b}.*[0:].${r.name}`).forEach(y=>{y.props.name===r.name&&y.setComponentProps(x({},v))}),n.emit("patch",{schema:C}),n.refresh()}})},DraggableContext=(0,import_react2.createContext)(null);DraggableContext.displayName="DraggableContext";const SortableContext=(0,import_react2.createContext)(null);SortableContext.displayName="SortableContext";const SortableProvider=e=>{const{id:t,data:o,children:r}=e,i=(0,import_core2.useDraggable)({id:t,data:o}),n=(0,import_core2.useDroppable)({id:t,data:o}),a=(0,import_react2.useMemo)(()=>({draggable:i,droppable:n}),[i,n]);return(0,import_jsx_runtime.jsx)(SortableContext.Provider,{value:a,children:r})},getComputedColor=e=>new import_tinycolor.TinyColor(e).setAlpha(.15).toHex8String(),Sortable=e=>{var t,o;const r=e,{component:i,overStyle:n,style:a,children:l,openMode:c}=r,u=W(r,["component","overStyle","style","children","openMode"]),{token:m}=useToken$1(),{draggable:d,droppable:p}=(0,import_react2.useContext)(SortableContext),{isOver:h,setNodeRef:g}=p,_=x({},a),f=(0,import_react.useFieldSchema)(),v=(f==null?void 0:f["x-component"])==="Action.Link"||i==="a";return h&&((t=d==null?void 0:d.active)==null?void 0:t.id)!==((o=p==null?void 0:p.over)==null?void 0:o.id)&&(_[v?"color":"background"]=getComputedColor(m.colorSettings),Object.assign(_,n)),import_react2.default.createElement(i||"div",P(x({role:"none"},u),{className:(0,import_css.cx)("nb-sortable-designer",e.className),ref:g,style:_}),l)},useSortableItemProps=e=>{const t=useSortableItemId(e),o=(0,import_react.useFieldSchema)();return e.schema?P(x({},e),{id:t}):P(x({},e),{id:t,schema:o})},useSortableItemId=e=>{var t;const o=(0,import_react.useField)();return e.id?e.id:(t=o.address)==null?void 0:t.toString()},InternalSortableItem=(0,import_react.observer)(e=>{const t=useSortableItemProps(e),{schema:o,id:r,eid:i,removeParentsIfNoChildren:n}=t,a=W(t,["schema","id","eid","removeParentsIfNoChildren"]),l=(0,import_react2.useMemo)(()=>{var c,u,m;return{insertAdjacent:"afterEnd",schema:((u=(c=o.parent)==null?void 0:c.parent)==null?void 0:u["x-component"])==="BlockTemplate"?(m=o.parent)==null?void 0:m.parent:o,removeParentsIfNoChildren:n??!0}},[o,n]);return(0,import_jsx_runtime.jsx)(SortableProvider,{id:r,data:l,children:(0,import_jsx_runtime.jsx)(Sortable,P(x({id:i},a),{children:e.children}))})},{displayName:"InternalSortableItem"}),SortableItem=import_react2.default.memo(e=>{const t=e,{component:o}=t,r=W(t,["component"]),{designable:i}=useDesignable();return i?(0,import_jsx_runtime.jsx)(InternalSortableItem,x({},e)):import_react2.default.createElement(o||"div",import_lodash.default.omit(r,["children","schema","overStyle","openMode","id","eid","removeParentsIfNoChildren"]),e.children)});SortableItem.displayName="SortableItem";const DragHandler=e=>{const{draggable:t}=(0,import_react2.useContext)(SortableContext)||{};if(!t)return null;const{attributes:o,listeners:r,setNodeRef:i}=t;return(0,import_jsx_runtime.jsx)("div",{style:{display:"inline-block",width:14,height:14,lineHeight:"14px",textAlign:"left"},children:(0,import_jsx_runtime.jsx)("div",P(x(x({ref:i,style:{position:"relative",zIndex:1,lineHeight:0,fontSize:0,display:"inline-block"}},r),o),{role:"none",children:(0,import_jsx_runtime.jsx)("span",{style:{cursor:"move",fontSize:14},children:e.children})}))})},ShowFormData=(0,import_react.observer)(({children:e})=>{const t=(0,import_react.useForm)();return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("pre",{style:{marginBottom:20},"data-testid":"form-data",children:JSON.stringify(t.values,null,2)}),e]})}),options=[{value:"exact",label:'{{t("Exact day")}}'},{value:"past",label:'{{t("Past")}}'},{value:"next",label:'{{t("Next")}}'},{value:"today",label:'{{t("Today")}}'},{value:"yesterday",label:'{{t("Yesterday")}}'},{value:"tomorrow",label:'{{t("Tomorrow")}}'},{value:"thisWeek",label:'{{t("This Week")}}'},{value:"lastWeek",label:'{{t("Last Week")}}'},{value:"nextWeek",label:'{{t("Next Week")}}'},{value:"thisMonth",label:'{{t("This Month")}}'},{value:"lastMonth",label:'{{t("Last Month")}}'},{value:"nextMonth",label:'{{t("Next Month")}}'},{value:"thisQuarter",label:'{{t("This Quarter")}}'},{value:"lastQuarter",label:'{{t("Last Quarter")}}'},{value:"nextQuarter",label:'{{t("Next Quarter")}}'},{value:"thisYear",label:'{{t("This Year")}}'},{value:"lastYear",label:'{{t("Last Year")}}'},{value:"nextYear",label:'{{t("Next Year")}}'}],SmartDatePicker=e=>{const t=e,{isRange:o,defaultValue:r}=t,i=W(t,["isRange","defaultValue"]);return o?(0,import_jsx_runtime.jsx)(DatePicker.RangePicker,x({},i)):(0,import_jsx_runtime.jsx)(DatePicker.FilterWithPicker,x({},i))},DateFilterDynamicComponent=e=>{const{value:t,onChange:o}=e,r=useCompile(),{t:i}=(0,import_react_i18next.useTranslation)(),{token:n}=import_antd.theme.useToken(),[a,l]=(0,import_react2.useState)(!1),c=m=>{if(l(!1),m==="exact")return o(void 0);const d={type:m};["past","next"].includes(m)&&(d.number=1,d.unit="day"),o(d)},u=()=>{const m=options.slice(0,3),d=options.slice(3),p=import_css.css`
631
+ `}:{simple:!0,hidden:C<=1,current:((f=(_=(g=v.service)==null?void 0:g.data)==null?void 0:_.meta)==null?void 0:f.page)||1,total:C,pageSize:1,showSizeChanger:!1,align:"center",onChange(y){return q(this,null,function*(){var F,j;const A=(j=(F=v.service)==null?void 0:F.params)==null?void 0:j[0];v.service.run(P(x({},A),{page:y}))})},style:{marginTop:24,textAlign:"center"}}},useAssociationFilterProps=()=>{var e,t,o,r,i;const n=AssociationFilter.useAssociationField(),{service:a,props:l}=useBlockRequestContext(),c=(0,import_react.useFieldSchema)(),u=useCollectionManager_deprecated(),m=n!=null&&n.target?(e=u.getCollection(n.target))==null?void 0:e.getPrimaryKey():"id",d=((o=(t=c["x-component-props"])==null?void 0:t.fieldNames)==null?void 0:o.label)||m,p=(0,import_react.useField)(),h=n.name,g=useDataSourceHeaders(l==null?void 0:l.dataSource),{data:_,params:f,run:v}=useRequest({headers:g,resource:n.target,action:"list",params:x({fields:[d,m],pageSize:200,page:1},(r=p.componentProps)==null?void 0:r.params)},{refreshDeps:[d,m,JSON.stringify(((i=p.componentProps)==null?void 0:i.params)||{})],debounceWait:300});return{list:(_==null?void 0:_.data)||[],onSelected:C=>{var S,b,y,F;const j=((b=(S=a.params)==null?void 0:S[1])==null?void 0:b.filters)||{};C.length?j[`af.${h}`]={[`${h}.${m}.$in`]:C}:delete j[`af.${h}`],a.run(P(x({},(y=a.params)==null?void 0:y[0]),{pageSize:200,page:1,filter:mergeFilter([...Object.values(j),(F=l==null?void 0:l.params)==null?void 0:F.filter])}),{filters:j})},handleSearchInput:C=>{v(P(x({},f==null?void 0:f[0]),{filter:{[`${d}.$includes`]:C.target.value}}))},params:f,run:v}},useOptionalFieldList=()=>{const{currentFields:e=[]}=useCollection_deprecated();return e.filter(t=>isOptionalField(t))},isOptionalField=e=>{var t;return["select","multipleSelect","checkbox","checkboxGroup","chinaRegion"].includes(e==null?void 0:e.interface)&&((t=e==null?void 0:e.uiSchema)==null?void 0:t.enum)},useAssociationFilterBlockProps=()=>{var e,t,o,r,i,n,a,l,c,u;const m=AssociationFilter.useAssociationField(),d=(0,import_react.useFieldSchema)(),p=useOptionalFieldList(),{getDataBlocks:h}=useFilterBlock(),g=m==null?void 0:m.name,_=(0,import_react.useField)(),{props:f}=useBlockRequestContext(),v=useDataSourceHeaders(f==null?void 0:f.dataSource),C=useCollectionManager(),{filter:S,parseVariableLoading:b}=useParsedFilter({filterOption:(t=(e=_.componentProps)==null?void 0:e.params)==null?void 0:t.filter});let y,F,j,A,D,N,M,w;N=m!=null&&m.target?(o=C==null?void 0:C.getCollection(m.target))==null?void 0:o.getPrimaryKey():"id",M=((i=(r=d["x-component-props"])==null?void 0:r.fieldNames)==null?void 0:i.label)||N,{data:D,params:j,run:A}=useRequest({headers:v,resource:m==null?void 0:m.target,action:"list",params:P(x({fields:[M,N],pageSize:200,page:1},(n=_.componentProps)==null?void 0:n.params),{filter:S})},{manual:!0,debounceWait:300}),(0,import_react2.useEffect)(()=>{m&&!isOptionalField(m)&&b===!1&&A()},[m,M,A,N,(a=_.componentProps)==null?void 0:a.params,(c=(l=_.componentProps)==null?void 0:l.params)==null?void 0:c.sort,b]);const R=(0,import_react2.useCallback)(T=>{const{targets:$,uid:B}=findFilterTargets(d);h().forEach(I=>{var E,V,O,L;if(!$.find(K=>K.uid===I.uid))return;const U=`${B}${d.name}`,z=((E=I.service.params)==null?void 0:E[0])||{};(O=(V=I.service.params)==null?void 0:V[1])!=null&&O.filters||import_lodash.default.set(I.service.params,"[1].filters",{});const G=I.service.params[1].filters;if(T.length)G[U]={[w]:T};else{if((L=I.clearSelection)==null||L.call(I),I.dataLoadingMode==="manual")return I.clearData();delete G[U]}const H=mergeFilter([...Object.values(G),I.defaultFilter]);return I.doFilter(P(x({},z),{page:1,filter:H}),{filters:G})})},[d,w,h]);if(!m)return{};if(isOptionalField(m)){const T=p.find(I=>I.name===d.name),$={select:"$in",multipleSelect:"$anyOf",checkbox:"$in",checkboxGroup:"$anyOf"},B=((u=T==null?void 0:T.uiSchema)==null?void 0:u.enum)||[];N="value",M="label",y=B,j={},A=()=>{},w=`${T.name}.${$[T.interface]}`,F=I=>{const E=I.target.value;if(!E){y=B;return}y=B.filter(V=>V.label.includes(E))}}else w=`${g}.${N}.$in`,y=(D==null?void 0:D.data)||[],F=T=>{A(P(x({},j==null?void 0:j[0]),{filter:{[`${M}.$includes`]:T.target.value}}))};return{list:y,onSelected:R,handleSearchInput:F,params:j,run:A,valueKey:N,labelKey:M,dataScopeFilter:S}};function doReset(e){return q(this,arguments,function*({getDataBlocks:t,targets:o,uid:r}){try{yield Promise.all(t().map(i=>q(this,null,function*(){var n,a,l,c;if(!o.find(p=>p.uid===i.uid))return;if((n=i.clearSelection)==null||n.call(i),i.dataLoadingMode==="manual")return i.clearData();const u=((a=i.service.params)==null?void 0:a[0])||{},m=((c=(l=i.service.params)==null?void 0:l[1])==null?void 0:c.filters)||{};delete m[r];const d=mergeFilter([...Object.values(m),i.defaultFilter]);return i.doFilter(P(x({},u),{page:1,filter:d}),{filters:m})})))}catch(i){console.error(i)}})}function getAssociationPath(e){const t=e.lastIndexOf(".");return t!==-1?e.substring(0,t):e}const getAppends=({schema:e,prefix:t,updateAssociationValues:o,appends:r,getCollectionJoinField:i,getCollection:n,dataSource:a})=>{e.reduceProperties((l,c)=>{var u,m,d;const p=l||t,h=c["x-collection-field"]&&i(c["x-collection-field"],a),g=c.name.includes("."),_=h&&["hasOne","hasMany","belongsTo","belongsToMany","belongsToArray"].includes(h.type);if(c["x-linkage-rules"]&&!isSubMode(c)){const v=C=>{const S=Object.keys(C)[0]||"$and";(C[S]||[]).filter(Boolean).forEach(b=>{if("$and"in b||"$or"in b)return v(b);const y=getTargetField(b);y.length>1&&!b.op&&r.add(y.join("."))})};c["x-linkage-rules"].forEach(({condition:C})=>{v(C)})}const f=_&&((u=n(h.target,a))==null?void 0:u.template)==="tree";if(h&&(_||g)&&c["x-component"]!=="TableField"){const v=!_&&g?getAssociationPath(c.name):c.name,C=p===""||!p?v:p+"."+v;if(f)r.add(C),r.add(`${C}.parent(recursively=true)`);else if((m=c["x-component-props"])!=null&&m.sortArr){const S=(d=c["x-component-props"])==null?void 0:d.sortArr;r.add(`${C}(sort=${S})`)}else r.add(C);if(isSubMode(c)){o.add(C);const S=p&&p!==""?p+"."+c.name:c.name;getAppends({schema:c,prefix:S,updateAssociationValues:o,appends:r,getCollectionJoinField:i,getCollection:n,dataSource:a})}}else["Action","Action.Link","Action.Modal","Selector","Viewer","AddNewer","AssociationField.Selector","AssociationField.AddNewer","TableField","Kanban.CardViewer","Action.Container"].includes(c["x-component"])||getAppends({schema:c,prefix:t,updateAssociationValues:o,appends:r,getCollectionJoinField:i,getCollection:n,dataSource:a})},t)},useAssociationNames=e=>{const{getCollectionJoinField:t,getCollection:o}=useCollectionManager_deprecated(e),r=(0,import_react.useFieldSchema)(),i=(0,import_react2.useRef)(null);return{getAssociationAppends:(0,import_react2.useCallback)(()=>{const n=new Set([]);let a=new Set([]);getAppends({schema:r,prefix:"",updateAssociationValues:n,appends:a,getCollectionJoinField:t,getCollection:o,dataSource:e}),a=fillParentFields(a);const l=[...a],c=[...n],u={appends:import_lodash.default.isEqual(i.current,l)?i.current:l,updateAssociationValues:c};return i.current=u.appends,u},[e,r,o,t])}};function getTargetField(e){function t(i){const n=[];function a(l){Object.keys(l).sort().forEach(function(c){n.push(c),l[c]&&typeof l[c]=="object"&&a(l[c])})}return a(i),n}const o=t(e),r=import_lodash.default.findIndex(o,(i,n)=>{if(i.includes("$")&&n>0)return!0});return o.slice(0,r)}function resetFormCorrectly(e){return q(this,null,function*(){(0,import_reactive.untracked)(()=>{Object.keys(e.fields).forEach(t=>{isSubMode(e.fields[t])&&(e.fields[t].initialValue=null)})}),yield e.reset()})}function appendQueryStringToUrl(e,t){return t?e+(e.includes("?")?"&":"?")+t:e}const useParseURLAndParams=()=>{const e=useVariables$1(),t=useLocalVariables$1();return{parseURLAndParams:(0,import_react2.useCallback)((o,r)=>q(void 0,null,function*(){const i=yield parseVariablesAndChangeParamsToQueryString({searchParams:r,variables:e,localVariables:t,replaceVariableValue}),n=yield replaceVariableValue(o,e,t);return appendQueryStringToUrl(n,i)}),[e,t])}};function useLinkActionProps(e){var t;const o=useNavigateNoUpdate(),r=(0,import_react.useFieldSchema)(),i=(r==null?void 0:r["x-component-props"])||e,{t:n}=(0,import_react_i18next.useTranslation)(),a=i==null?void 0:i.url,l=(i==null?void 0:i.params)||[],c=(i==null?void 0:i.type)||"default",u=(t=r==null?void 0:r["x-component-props"])==null?void 0:t.openInNewWindow,{parseURLAndParams:m}=useParseURLAndParams(),d=useRouterBasename();return{type:c,onClick(){return q(this,null,function*(){if(!a){import_antd.message.warning(n("Please configure the URL"));return}const p=yield m(a,l);p?u?window.open(completeURL(p),"_blank"):navigateWithinSelf(p,o,window.location.origin+d):console.error("link should be a string")})}}}function replaceVariableValue(e,t,o){return q(this,null,function*(){if(!e)return;const{evaluate:r}=import_client3.evaluators.get("string"),{exp:i,scope:n}=yield replaceVariables(e,{variables:t,localVariables:o});try{return r(i,x({now:()=>new Date().toString()},n))}catch(a){console.error(a)}})}function parseVariablesAndChangeParamsToQueryString(e){return q(this,arguments,function*({searchParams:t,variables:o,localVariables:r,replaceVariableValue:i}){const n=yield Promise.all(t.map(l=>q(this,[l],function*({name:c,value:u}){if(typeof u=="string"){if(isVariable$1(u)){const{value:d}=(yield o.parseVariable(u,r))||{};return{name:c,value:d}}const m=yield i(u,o,r);return{name:c,value:m}}return{name:c,value:u}}))),a={};for(const{name:l,value:c}of n)l&&c&&(a[l]=reduceValueSize(c));return import_qs.default.stringify(a)})}function reduceValueSize(e){if(import_lodash.default.isPlainObject(e)){const t={};return Object.keys(e).forEach(o=>{import_lodash.default.isPlainObject(e[o])||import_lodash.default.isArray(e[o])||import_lodash.default.isString(e[o])&&e[o].length>100||(t[o]=e[o])}),t}return import_lodash.default.isArray(e)?e.map(t=>import_lodash.default.isPlainObject(t)||import_lodash.default.isArray(t)?reduceValueSize(t):t):e}function completeURL(e,t=window.location.origin){return e?(0,import_client.isURL)(e)?e:e.startsWith("/")?`${t}${e}`:`${t}/${e}`:""}function navigateWithinSelf(e,t,o=window.location.origin){if(!import_lodash.default.isString(e))return console.error("link should be a string");(0,import_client.isURL)(e)?e.startsWith(o)?t(completeURL(e.replace(o,""),"")):window.open(e,"_self"):t(completeURL(e,""))}function fillParentFields(e){return Array.from(e).filter(t=>t.includes(".")).forEach(t=>{const o=t.split(".");o.pop();const r=o.join(".");e.add(r)}),e}const useSyncFromForm=(e,t,o)=>{const{getCollectionJoinField:r,getCollectionFields:i}=useCollectionManager_deprecated(),n=import_antd_v5.ArrayBase.useArray(),a=import_antd_v5.ArrayBase.useIndex(),l=import_antd_v5.ArrayBase.useRecord(),c=useCompile(),{t:u}=(0,import_react_i18next.useTranslation)(),m=(0,import_react.useForm)(),d=(g=>(_,{exclude:f=[],depth:v=0,maxDepth:C,prefix:S="",disabled:b=!1},y)=>{const F=`${_}-${f.join(",")}-${v}-${C}-${S}`,j=g.get(F);if(j)return j;if(v>C)return[];const A=i(_).map(D=>{var N;if(f.includes(D.name)||!D.interface||["sort","password","sequence"].includes(D.type))return;const M={type:"duplicate",tag:c((N=D.uiSchema)==null?void 0:N.title)||D.name},w=P(x({},M),{title:import_react2.default.createElement(TreeNode,M),key:S?`${S}.${D.name}`:D.name,isLeaf:!0,field:D,disabled:b}),R=y.find(T=>T.name===w.key);if(["belongsTo","belongsToMany"].includes(D.type)&&(!R||["Select","Picker"].includes(R==null?void 0:R.fieldMode)))M.type="reference",w.type="reference",w.title=import_react2.default.createElement(TreeNode,P(x({},M),{type:"reference"})),w.isLeaf=!1,w.children=p(D.target,{depth:v+1,maxDepth:C,prefix:w.key,exclude:systemKeys});else if(["hasOne","hasMany"].includes(D.type)||["Nester","SubTable"].includes(R==null?void 0:R.fieldMode)){let T=!1;["hasOne","hasMany"].includes(D.type)&&["Select","Picker"].includes(R==null?void 0:R.fieldMode)&&(T=!0),w.disabled=!0,w.isLeaf=!1,w.children=d(D.target,{depth:v+1,maxDepth:C,prefix:w.key,exclude:["id",...systemKeys],disabled:T},y)}return w}).filter(Boolean);return g.set(F,A),A})(new import_lru_cache.default({max:100})),p=(g=>(_,{prefix:f,maxDepth:v,depth:C=0,exclude:S=[]})=>{const b=`${_}-${S.join(",")}-${C}-${v}-${f}`,y=g.get(b);if(y)return y;if(C>v)return[];const F=i(_).map(j=>{var A,D;if(!j.target||!j.interface||S.includes(j.name))return;const N={type:"preloading",tag:c((A=j.uiSchema)==null?void 0:A.title)||j.name},M=f?`${f}.${j.name}`:j.name;return{type:"preloading",tag:c((D=j.uiSchema)==null?void 0:D.title)||j.name,title:import_react2.default.createElement(TreeNode,N),key:M,isLeaf:!1,field:j,children:p(j.target,{prefix:M,depth:C+1,maxDepth:v,exclude:S})}}).filter(Boolean);return g.set(b,F),F})(new import_lru_cache.default({max:100})),h=(0,import_react2.useCallback)((g,_)=>{if(!g)return[];try{return d(g,{exclude:["id",...systemKeys],maxDepth:1,disabled:!1},_)}catch(f){return console.error(f),[]}},[]);return{run(){return q(this,null,function*(){var g;const _=new Set([]),f=new Set([]),v=(S,b)=>{var y;(y=S==null?void 0:S.reduceProperties)==null||y.call(S,(F,j)=>{var A,D,N;const M=F||b,w=j["x-collection-field"]&&r(j["x-collection-field"]),R=j.name.includes("."),T=w&&["hasOne","hasMany","belongsTo","belongsToMany"].includes(w.type),$=!T&&R?getAssociationPath(j.name):j.name,B=M===""||!M?$:M+"."+$;if(w&&!(["hasOne","hasMany"].includes(w.type)||["SubForm","Nester"].includes((A=j["x-component-props"])==null?void 0:A.mode))&&f.add(B),w&&(T||R)&&j["x-component"]!=="TableField"){if(_.add({name:B,fieldMode:((D=j["x-component-props"])==null?void 0:D.mode)||"Select"}),["Nester","SubTable"].includes((N=j["x-component-props"])==null?void 0:N.mode)){const I=M&&M!==""?M+"."+j.name:j.name;v(j,I)}}else["ActionBar","Action","Action.Link","Action.Modal","Selector","Viewer","AddNewer","AssociationField.Selector","AssociationField.AddNewer","TableField"].includes(j["x-component"])||v(j,b)},b)};v(e,"");const C=h((l==null?void 0:l.collection)||t,[..._]);o?o(C,[...f],m):(n==null||n.field.form.query(`fieldReaction.items.${a}.layout.fields`).take(S=>{S.componentProps.treeData=[],setTimeout(()=>S.componentProps.treeData=C)}),n==null||n.field.value.splice(a,1,P(x({},(g=n==null?void 0:n.field)==null?void 0:g.value[a]),{fields:[...f],treeData:C}))),import_antd.message.success(u("Sync successfully"))})}}};function SchemaSettingsBlockTitleItem(){var e,t;const o=(0,import_react.useField)(),r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable(),{t:n}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:n("Edit block title & description"),schema:{type:"object",title:n("Edit block title & description"),properties:{title:{title:n("title"),type:"string",default:(e=r==null?void 0:r["x-component-props"])==null?void 0:e.title,"x-decorator":"FormItem","x-component":"Input","x-component-props":{"aria-label":"block-title"}},description:{title:n("Description"),type:"string",default:(t=r==null?void 0:r["x-component-props"])==null?void 0:t.description,"x-decorator":"FormItem","x-component":"Markdown"}}},onSubmit:({title:a,description:l})=>{const c=r["x-component-props"]||{};c.title=a,c.description=l,r["x-component-props"]=c,o.componentProps.title=a,o.componentProps.description=l,i.emit("patch",{schema:{"x-uid":r["x-uid"],"x-component-props":r["x-component-props"]}})}})}const getTargetKey=e=>(e==null?void 0:e.targetKey)||"id";function SchemaSettingsConnectDataBlocks(e){const{type:t,emptyDescription:o}=e,r=(0,import_react.useFieldSchema)(),{dn:i}=useDesignable(),{t:n}=(0,import_react_i18next.useTranslation)(),a=useCollection(),{inProvider:l}=useFilterBlock(),c=useSupportedBlocks(t);let{targets:u=[],uid:m}=findFilterTargets(r);const d=useCompile(),{getAllCollectionsInheritChain:p}=useAllCollectionsInheritChainGetter();if(!l)return null;const h=c.map(g=>{const _=`${d(g.collection.title)} #${g.uid.slice(0,4)}`,f=()=>{g.highlightBlock()},v=()=>{g.unhighlightBlock()};if(isSameCollection(g.collection,a))return(0,import_jsx_runtime.jsx)(SchemaSettingsSwitchItem,{title:_,checked:u.some(S=>S.uid===g.uid),onChange:S=>{S?u.push({uid:g.uid}):(u=u.filter(b=>b.uid!==g.uid),g.clearFilter(m)),updateFilterTargets(r,u),i.emit("patch",{schema:{"x-uid":m,"x-filter-targets":u}}).catch(import_client.error),i.refresh()},onMouseEnter:f,onMouseLeave:v},g.uid);const C=u.find(S=>S.uid===g.uid);return(0,import_jsx_runtime.jsx)(SchemaSettingsSelectItem,{title:_,value:(C==null?void 0:C.field)||"",options:[...getSupportFieldsByAssociation(p(a.name),g).map(S=>({label:d(S.uiSchema.title)||S.name,value:`${S.name}.${getTargetKey(S)}`})),...getSupportFieldsByForeignKey(a,g).map(S=>({label:`${d(S.uiSchema.title)||S.name} [${n("Foreign key")}]`,value:S.name})),{label:n("Unconnected"),value:""}],onChange:S=>{S===""?(u=u.filter(b=>b.uid!==g.uid),g.clearFilter(m)):(u=u.filter(b=>b.uid!==g.uid),u.push({uid:g.uid,field:S})),updateFilterTargets(r,u),i.emit("patch",{schema:{"x-uid":m,"x-filter-targets":u}}),i.refresh()},onMouseEnter:f,onMouseLeave:v},g.uid)});return(0,import_jsx_runtime.jsx)(SchemaSettingsSubMenu,{title:n("Connect data blocks"),children:h.length?h:(0,import_jsx_runtime.jsx)(SchemaSettingsItem,{title:"empty",children:(0,import_jsx_runtime.jsx)(import_antd.Empty,{style:{width:160,padding:"0 1em"},description:o,image:import_antd.Empty.PRESENTED_IMAGE_SIMPLE})})})}const UnitConversion=({unitConversionType:e})=>{const t=(0,import_react.useForm)(),{t:o}=(0,import_react_i18next.useTranslation)();return(0,import_jsx_runtime.jsxs)(import_antd.Select,{defaultValue:e||"*",style:{width:160},onChange:r=>{t.setValuesIn("unitConversionType",r)},children:[(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"*",children:o("Multiply by")}),(0,import_jsx_runtime.jsx)(import_antd.Select.Option,{value:"/",children:o("Divide by")})]})},SchemaSettingsNumberFormat=function e(t){var o;const{fieldSchema:r}=t,i=(0,import_react.useField)(),{dn:n}=useDesignable(),{t:a}=(0,import_react_i18next.useTranslation)(),{getCollectionJoinField:l}=useCollectionManager_deprecated(),c=l(r==null?void 0:r["x-collection-field"])||{},{formatStyle:u,unitConversion:m,unitConversionType:d,separator:p,step:h,addonBefore:g,addonAfter:_}=r["x-component-props"]||{},{step:f}=((o=c==null?void 0:c.uiSchema)==null?void 0:o["x-component-props"])||{};return(0,import_jsx_runtime.jsx)(SchemaSettingsModalItem,{title:a("Format"),schema:{type:"object",properties:{formatStyle:{type:"string",default:u||"normal",enum:[{value:"normal",label:a("Normal")},{value:"scientifix",label:a("Scientifix notation")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Style')}}"},unitConversion:{type:"number","x-decorator":"FormItem","x-component":"InputNumber",title:"{{t('Unit conversion')}}",default:m,"x-component-props":{style:{width:"100%"},addonBefore:(0,import_jsx_runtime.jsx)(UnitConversion,{unitConversionType:d})}},separator:{type:"string",default:p||"0,0.00",enum:[{value:"0,0.00",label:a("100,000.00")},{value:"0.0,00",label:a("100.000,00")},{value:"0 0,00",label:a("100 000.00")},{value:"0.00",label:a("100000.00")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Separator')}}"},step:{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",default:h||f||"1",enum:[{value:"1",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"},{value:"0.000001",label:"1.000000"},{value:"0.0000001",label:"1.0000000"},{value:"0.00000001",label:"1.00000000"}]},addonBefore:{type:"string",title:'{{t("Prefix")}}',"x-component":"Input","x-decorator":"FormItem",default:g},addonAfter:{type:"string",title:'{{t("Suffix")}}',"x-component":"Input","x-decorator":"FormItem",default:_}}},onSubmit:v=>{const C={"x-uid":r["x-uid"]};C["x-component-props"]=r["x-component-props"]||{},r["x-component-props"]=x(x({},r["x-component-props"]||{}),v),C["x-component-props"]=r["x-component-props"],i.componentProps=r["x-component-props"];const S=i.path.entire.split(".");S.pop();const b=S.join(".");i.query(`${b}.*[0:].${r.name}`).forEach(y=>{y.props.name===r.name&&y.setComponentProps(x({},v))}),n.emit("patch",{schema:C}),n.refresh()}})},DraggableContext=(0,import_react2.createContext)(null);DraggableContext.displayName="DraggableContext";const SortableContext=(0,import_react2.createContext)(null);SortableContext.displayName="SortableContext";const SortableProvider=e=>{const{id:t,data:o,children:r}=e,i=(0,import_core2.useDraggable)({id:t,data:o}),n=(0,import_core2.useDroppable)({id:t,data:o}),a=(0,import_react2.useMemo)(()=>({draggable:i,droppable:n}),[i,n]);return(0,import_jsx_runtime.jsx)(SortableContext.Provider,{value:a,children:r})},getComputedColor=e=>new import_tinycolor.TinyColor(e).setAlpha(.15).toHex8String(),Sortable=e=>{var t,o;const r=e,{component:i,overStyle:n,style:a,children:l,openMode:c}=r,u=W(r,["component","overStyle","style","children","openMode"]),{token:m}=useToken$1(),{draggable:d,droppable:p}=(0,import_react2.useContext)(SortableContext),{isOver:h,setNodeRef:g}=p,_=x({},a),f=(0,import_react.useFieldSchema)(),v=(f==null?void 0:f["x-component"])==="Action.Link"||i==="a";return h&&((t=d==null?void 0:d.active)==null?void 0:t.id)!==((o=p==null?void 0:p.over)==null?void 0:o.id)&&(_[v?"color":"background"]=getComputedColor(m.colorSettings),Object.assign(_,n)),import_react2.default.createElement(i||"div",P(x({role:"none"},u),{className:(0,import_css.cx)("nb-sortable-designer",e.className),ref:g,style:_}),l)},useSortableItemProps=e=>{const t=useSortableItemId(e),o=(0,import_react.useFieldSchema)();return e.schema?P(x({},e),{id:t}):P(x({},e),{id:t,schema:o})},useSortableItemId=e=>{var t;const o=(0,import_react.useField)();return e.id?e.id:(t=o.address)==null?void 0:t.toString()},InternalSortableItem=(0,import_react.observer)(e=>{const t=useSortableItemProps(e),{schema:o,id:r,eid:i,removeParentsIfNoChildren:n}=t,a=W(t,["schema","id","eid","removeParentsIfNoChildren"]),l=(0,import_react2.useMemo)(()=>{var c,u,m;return{insertAdjacent:"afterEnd",schema:((u=(c=o.parent)==null?void 0:c.parent)==null?void 0:u["x-component"])==="BlockTemplate"?(m=o.parent)==null?void 0:m.parent:o,removeParentsIfNoChildren:n??!0}},[o,n]);return(0,import_jsx_runtime.jsx)(SortableProvider,{id:r,data:l,children:(0,import_jsx_runtime.jsx)(Sortable,P(x({id:i},a),{children:e.children}))})},{displayName:"InternalSortableItem"}),SortableItem=import_react2.default.memo(e=>{const t=e,{component:o}=t,r=W(t,["component"]),{designable:i}=useDesignable();return i?(0,import_jsx_runtime.jsx)(InternalSortableItem,x({},e)):import_react2.default.createElement(o||"div",import_lodash.default.omit(r,["children","schema","overStyle","openMode","id","eid","removeParentsIfNoChildren"]),e.children)});SortableItem.displayName="SortableItem";const DragHandler=e=>{const{draggable:t}=(0,import_react2.useContext)(SortableContext)||{};if(!t)return null;const{attributes:o,listeners:r,setNodeRef:i}=t;return(0,import_jsx_runtime.jsx)("div",{style:{display:"inline-block",width:14,height:14,lineHeight:"14px",textAlign:"left"},children:(0,import_jsx_runtime.jsx)("div",P(x(x({ref:i,style:{position:"relative",zIndex:1,lineHeight:0,fontSize:0,display:"inline-block"}},r),o),{role:"none",children:(0,import_jsx_runtime.jsx)("span",{style:{cursor:"move",fontSize:14},children:e.children})}))})},ShowFormData=(0,import_react.observer)(({children:e})=>{const t=(0,import_react.useForm)();return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)("pre",{style:{marginBottom:20},"data-testid":"form-data",children:JSON.stringify(t.values,null,2)}),e]})}),options=[{value:"exact",label:'{{t("Exact day")}}'},{value:"past",label:'{{t("Past")}}'},{value:"next",label:'{{t("Next")}}'},{value:"today",label:'{{t("Today")}}'},{value:"yesterday",label:'{{t("Yesterday")}}'},{value:"tomorrow",label:'{{t("Tomorrow")}}'},{value:"thisWeek",label:'{{t("This Week")}}'},{value:"lastWeek",label:'{{t("Last Week")}}'},{value:"nextWeek",label:'{{t("Next Week")}}'},{value:"thisMonth",label:'{{t("This Month")}}'},{value:"lastMonth",label:'{{t("Last Month")}}'},{value:"nextMonth",label:'{{t("Next Month")}}'},{value:"thisQuarter",label:'{{t("This Quarter")}}'},{value:"lastQuarter",label:'{{t("Last Quarter")}}'},{value:"nextQuarter",label:'{{t("Next Quarter")}}'},{value:"thisYear",label:'{{t("This Year")}}'},{value:"lastYear",label:'{{t("Last Year")}}'},{value:"nextYear",label:'{{t("Next Year")}}'}],SmartDatePicker=e=>{const t=e,{isRange:o,defaultValue:r}=t,i=W(t,["isRange","defaultValue"]);return o?(0,import_jsx_runtime.jsx)(DatePicker.RangePicker,x({},i)):(0,import_jsx_runtime.jsx)(DatePicker.FilterWithPicker,x({},i))},DateFilterDynamicComponent=e=>{const{value:t,onChange:o}=e,r=useCompile(),{t:i}=(0,import_react_i18next.useTranslation)(),{token:n}=import_antd.theme.useToken(),[a,l]=(0,import_react2.useState)(!1),c=m=>{if(l(!1),m==="exact")return o(void 0);const d={type:m};["past","next"].includes(m)&&(d.number=1,d.unit="day"),o(d)},u=()=>{const m=options.slice(0,3),d=options.slice(3),p=import_css.css`
632
632
  padding: 3px 10px;
633
633
  cursor: pointer;
634
634
  white-space: nowrap;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client",
3
- "version": "1.9.30",
3
+ "version": "1.9.31",
4
4
  "license": "AGPL-3.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -26,9 +26,9 @@
26
26
  "@formily/reactive-react": "^2.2.27",
27
27
  "@formily/shared": "^2.2.27",
28
28
  "@formily/validator": "^2.2.27",
29
- "@nocobase/evaluators": "1.9.30",
30
- "@nocobase/sdk": "1.9.30",
31
- "@nocobase/utils": "1.9.30",
29
+ "@nocobase/evaluators": "1.9.31",
30
+ "@nocobase/sdk": "1.9.31",
31
+ "@nocobase/utils": "1.9.31",
32
32
  "ahooks": "^3.7.2",
33
33
  "antd": "5.24.2",
34
34
  "antd-mobile": "^5.41.1",
@@ -85,5 +85,5 @@
85
85
  "dumi": "2.2.14",
86
86
  "dumi-theme-nocobase": "^0.2.28"
87
87
  },
88
- "gitHead": "1396429d1957cb719fbb7960dc8cc76e80a7b049"
88
+ "gitHead": "c148b30b66f88ff14fb44bab78998ffe55c92ca0"
89
89
  }