@nocobase/client-v2 2.2.19 → 2.2.21

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
@@ -847,7 +847,7 @@ if (!ctx.record) {
847
847
  overflow: hidden;
848
848
  text-overflow: ellipsis;
849
849
  }
850
- `;function uK(e){return e?{...e,display:"none"}:{display:"none"}}function uG(e){return(null==e?void 0:e.value)??"value"}function uW(e,t,l,o){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"record";if(o)return Array.isArray(e)?e.filter(e=>null!=e).map(e=>{if("value"===n)return l.get(e)??{[t]:e};let o=null==e?void 0:e[t];return l.get(o)??e}):[];if("value"===n&&("string"==typeof e||"number"==typeof e))return[l.get(e)??{[t]:e}].filter(Boolean);if(e&&"object"==typeof e){let o=e[t],n=l.get(o)??e;return n?[n]:[]}return[]}function uJ(e){let{fieldNames:t,value:l,multiple:o,allowMultiple:n,options:r,onChange:a,onDropdownVisibleChange:s,onPopupScroll:d,onSearch:u,disabled:c,dropdownStyle:p,loading:h=!1,valueMode:g="record",...v}=e,y=(0,f.useFlowModelContext)().t,_=!!(o&&n),x=uG(t),M=uH(r,l,_),w=(0,i.useMemo)(()=>{let e=new Map;for(let t of M)e.set(null==t?void 0:t[x],t);return e},[M,x]),[S,k]=(0,i.useState)(!1),[F,C]=(0,i.useState)(""),A=(0,i.useMemo)(()=>uW(l,x,w,_,g),[l,x,w,_,g]),[P,T]=(0,i.useState)(()=>A),j=(0,i.useRef)(S);(0,i.useEffect)(()=>{S&&!j.current&&T(A),j.current=S},[A,S]),(0,i.useEffect)(()=>{S||C("")},[S]);let I=(0,i.useMemo)(()=>{if(!P.length)return[];let e=[];for(let t of P){let l=null==t?void 0:t[x];null!=l&&e.push(l)}return e},[P,x]),L=(0,i.useCallback)(()=>{c||(k(!0),null==s||s(!0))},[c,s]),R=(0,i.useCallback)(()=>{k(!1),null==s||s(!1)},[s]),D=(0,i.useCallback)(()=>{if("value"===g){if(_)a(P.map(e=>null==e?void 0:e[x]).filter(e=>null!=e));else{var e;a(null==P||null==(e=P[0])?void 0:e[x])}R();return}a(P),R()},[R,_,a,P,x,g]),E=(0,i.useCallback)(e=>{if(_)return void T(t=>{let l=new Map;for(let e of t)l.set(null==e?void 0:e[x],e);let o=[];for(let t of e){let e=w.get(t)??l.get(t);e&&o.push(e)}return o});let t=e[0];if(void 0===t){a(void 0),R();return}let l=w.get(t);l&&("value"===g?a(null==l?void 0:l[x]):a(l)),R()},[R,_,a,w,x,g]),Y=(0,i.useCallback)(e=>{if(!d)return;let t=e.currentTarget;t.scrollTop+t.clientHeight<t.scrollHeight-20||d({target:t})},[d]),N=(0,i.useCallback)(e=>{C(e),null==u||u(e)},[u]),O=(0,i.useCallback)(e=>{c||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),L())},[c,L]);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(b.Select,{...v,dropdownStyle:uK(p),fieldNames:t,options:M,value:uV(l,t,_,g,M),mode:_?"multiple":void 0,open:!1,onClick:L,onKeyDown:O,onChange:(e,t)=>{"value"===g?Array.isArray(t)?a(t.map(e=>(null==e?void 0:e[x])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):a((null==t?void 0:t[x])??(null==t?void 0:t.value)):a(t)},loading:h,optionRender:e=>{let{data:l}=e;return(0,m.jsx)(uB,{option:l,fieldNames:t})},labelRender:e=>(0,m.jsx)("div",{className:uU,children:e.label}),showSearch:!1}),(0,m.jsxs)(__rspack_external_antd_mobile_0b674875.Popup,{visible:S,onMaskClick:R,destroyOnClose:!0,children:[(0,m.jsx)("div",{style:{margin:"10px"},children:(0,m.jsx)(__rspack_external_antd_mobile_0b674875.SearchBar,{placeholder:y("search"),value:F,onChange:N,onCancel:R,cancelText:y("Cancel"),showCancelButton:!0})}),(0,m.jsxs)("div",{style:uz(_),onScroll:Y,children:[(0,m.jsx)(__rspack_external_antd_mobile_0b674875.CheckList,{multiple:_,value:I,onChange:E,children:M.map(e=>{let l=null==e?void 0:e[x];return(0,m.jsx)(__rspack_external_antd_mobile_0b674875.CheckList.Item,{value:l,children:(0,m.jsx)(uB,{option:e,fieldNames:t})},l)})}),h&&(0,m.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",padding:"12px 0"},children:(0,m.jsx)(__rspack_external_antd_mobile_0b674875.SpinLoading,{color:"primary"})})]}),_&&(0,m.jsx)("div",{style:u$,children:(0,m.jsx)(__rspack_external_antd_mobile_0b674875.Button,{block:!0,color:"primary",onClick:D,style:{marginTop:"16px"},children:y("Confirm")})})]})]})}function uX(e,t){let l=e;for(;l;){var o;let e=null==l||null==(o=l.constructor)?void 0:o.name;if(e&&t.includes(e))return!0;l=null==l?void 0:l.parent}return!1}function uQ(e){let t=null==e?void 0:e.parent;if((null==t?void 0:t.use)==="QuickEditFormModel")return t.viewContainer}function uZ(e,t){let l=uQ(e);if(null==l?void 0:l.update){if(t)return void l.update({preventClose:!0});setTimeout(()=>{var e;null==(e=l.update)||e.call(l,{preventClose:!1})},0)}}function u0(e){let{options:t}=e,l=(0,f.useFlowViewContext)(),{data:o,loading:n}=(0,nB.useRequest)(async()=>await l.engine.loadOrCreateModel(t,{delegateToParent:!1,delegate:l,skipSave:!l.flowSettingsEnabled}),{refreshDeps:[l,t]});return!n&&(null==o?void 0:o.uid)?(0,m.jsx)(f.FlowModelRenderer,{model:o,fallback:(0,m.jsx)(nV,{style:{margin:16}})}):(0,m.jsx)(nV,{style:{margin:16}})}function u1(e){let{model:t,toOne:l=!1}=e,o=(0,f.useFlowContext)(),{Header:n,type:i}=o.view;return t._closeView=o.view.close,(0,m.jsxs)("div",{children:[(0,m.jsx)(n,{title:"dialog"===i?(0,m.jsx)("div",{style:{padding:`${o.themeToken.paddingLG}px ${o.themeToken.paddingLG}px 0`,marginBottom:-o.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:o.t("Create record")}):o.t("Create record")}),(0,m.jsx)(u0,{options:{parentId:o.view.inputArgs.parentId,subKey:"grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}})]})}let u2=(e,t)=>{var l,o;let n=null==(l=e.context.collectionField)?void 0:l.collection,r=null==n?void 0:n.dataSource,a=e.context.t,s=(null==(o=e.context.collectionField)?void 0:o.name)||e.fieldPath,d=(0,i.useMemo)(()=>{let e=a((null==r?void 0:r.displayName)||(null==r?void 0:r.key)||""),t=e?`${e} > `:"",l=n?`${a(n.title)||n.name||n.tableName} > `:"";return`${t}${l}${s}`},[n,null==r?void 0:r.displayName,null==r?void 0:r.key,s,a]);return t?null:a('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:d,actionName:"Update"}).replaceAll("&gt;",">")},u5=(0,A.css)`
850
+ `;function uK(e){return e?{...e,display:"none"}:{display:"none"}}function uG(e){return(null==e?void 0:e.value)??"value"}function uW(e,t,l,o){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"record";if(o)return Array.isArray(e)?e.filter(e=>null!=e).map(e=>{if("value"===n)return l.get(e)??{[t]:e};let o=null==e?void 0:e[t];return l.get(o)??e}):[];if("value"===n&&("string"==typeof e||"number"==typeof e))return[l.get(e)??{[t]:e}].filter(Boolean);if(e&&"object"==typeof e){let o=e[t],n=l.get(o)??e;return n?[n]:[]}return[]}function uJ(e){let{fieldNames:t,value:l,multiple:o,allowMultiple:n,options:r,onChange:a,onDropdownVisibleChange:s,onPopupScroll:d,onSearch:u,disabled:c,dropdownStyle:p,loading:h=!1,valueMode:g="record",...v}=e,y=(0,f.useFlowModelContext)().t,_=!!(o&&n),x=uG(t),M=uH(r,l,_),w=(0,i.useMemo)(()=>{let e=new Map;for(let t of M)e.set(null==t?void 0:t[x],t);return e},[M,x]),[S,k]=(0,i.useState)(!1),[F,C]=(0,i.useState)(""),A=(0,i.useMemo)(()=>uW(l,x,w,_,g),[l,x,w,_,g]),[P,T]=(0,i.useState)(()=>A),j=(0,i.useRef)(S);(0,i.useEffect)(()=>{S&&!j.current&&T(A),j.current=S},[A,S]),(0,i.useEffect)(()=>{S||C("")},[S]);let I=(0,i.useMemo)(()=>{if(!P.length)return[];let e=[];for(let t of P){let l=null==t?void 0:t[x];null!=l&&e.push(l)}return e},[P,x]),L=(0,i.useCallback)(()=>{c||(k(!0),null==s||s(!0))},[c,s]),R=(0,i.useCallback)(()=>{k(!1),null==s||s(!1)},[s]),D=(0,i.useCallback)(()=>{if("value"===g){if(_)a(P.map(e=>null==e?void 0:e[x]).filter(e=>null!=e));else{var e;a(null==P||null==(e=P[0])?void 0:e[x])}R();return}a(P),R()},[R,_,a,P,x,g]),E=(0,i.useCallback)(e=>{if(_)return void T(t=>{let l=new Map;for(let e of t)l.set(null==e?void 0:e[x],e);let o=[];for(let t of e){let e=w.get(t)??l.get(t);e&&o.push(e)}return o});let t=e[0];if(void 0===t){a(void 0),R();return}let l=w.get(t);l&&("value"===g?a(null==l?void 0:l[x]):a(l)),R()},[R,_,a,w,x,g]),Y=(0,i.useCallback)(e=>{if(!d)return;let t=e.currentTarget;t.scrollTop+t.clientHeight<t.scrollHeight-20||d({target:t})},[d]),N=(0,i.useCallback)(e=>{C(e),null==u||u(e)},[u]),O=(0,i.useCallback)(e=>{c||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),L())},[c,L]);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(b.Select,{...v,dropdownStyle:uK(p),fieldNames:t,options:M,value:uV(l,t,_,g,M),mode:_?"multiple":void 0,open:!1,onClick:L,onKeyDown:O,onChange:(e,t)=>{"value"===g?Array.isArray(t)?a(t.map(e=>(null==e?void 0:e[x])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):a((null==t?void 0:t[x])??(null==t?void 0:t.value)):a(t)},loading:h,optionRender:e=>{let{data:l}=e;return(0,m.jsx)(uB,{option:l,fieldNames:t})},labelRender:e=>(0,m.jsx)("div",{className:uU,children:e.label}),showSearch:!1}),(0,m.jsxs)(__rspack_external_antd_mobile_0b674875.Popup,{visible:S,onMaskClick:R,destroyOnClose:!0,children:[(0,m.jsx)("div",{style:{margin:"10px"},children:(0,m.jsx)(__rspack_external_antd_mobile_0b674875.SearchBar,{placeholder:y("search"),value:F,onChange:N,onCancel:R,cancelText:y("Cancel"),showCancelButton:!0})}),(0,m.jsxs)("div",{style:uz(_),onScroll:Y,children:[(0,m.jsx)(__rspack_external_antd_mobile_0b674875.CheckList,{multiple:_,value:I,onChange:E,children:M.map(e=>{let l=null==e?void 0:e[x];return(0,m.jsx)(__rspack_external_antd_mobile_0b674875.CheckList.Item,{value:l,children:(0,m.jsx)(uB,{option:e,fieldNames:t})},l)})}),h&&(0,m.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",padding:"12px 0"},children:(0,m.jsx)(__rspack_external_antd_mobile_0b674875.SpinLoading,{color:"primary"})})]}),_&&(0,m.jsx)("div",{style:u$,children:(0,m.jsx)(__rspack_external_antd_mobile_0b674875.Button,{block:!0,color:"primary",onClick:D,style:{marginTop:"16px"},children:y("Confirm")})})]})]})}function uX(e,t){let l=e;for(;l;){var o;let e=null==l||null==(o=l.constructor)?void 0:o.name;if(e&&t.includes(e))return!0;l=null==l?void 0:l.parent}return!1}function uQ(e){let t=null==e?void 0:e.parent;if((null==t?void 0:t.use)==="QuickEditFormModel")return t.viewContainer}function uZ(e,t){let l=uQ(e);if(null==l?void 0:l.update){if(t)return void l.update({preventClose:!0});setTimeout(()=>{var e;null==(e=l.update)||e.call(l,{preventClose:!1})},0)}}function u0(e){let{options:t}=e,l=(0,f.useFlowViewContext)(),{data:o,loading:n}=(0,nB.useRequest)(async()=>await l.engine.loadOrCreateModel(t,{delegateToParent:!1,delegate:l,skipSave:!l.flowSettingsEnabled}),{refreshDeps:[l,t]});return!n&&(null==o?void 0:o.uid)?(0,m.jsx)(f.FlowModelRenderer,{model:o,fallback:(0,m.jsx)(nV,{style:{margin:16}})}):(0,m.jsx)(nV,{style:{margin:16}})}function u1(e){let{model:t,toOne:l=!1}=e,o=(0,f.useFlowContext)();o.defineProperty("flowSettingsEnabled",{get:()=>t.context.flowSettingsEnabled,cache:!1});let{Header:n,type:i}=o.view;return t._closeView=o.view.close,(0,m.jsxs)("div",{children:[(0,m.jsx)(n,{title:"dialog"===i?(0,m.jsx)("div",{style:{padding:`${o.themeToken.paddingLG}px ${o.themeToken.paddingLG}px 0`,marginBottom:-o.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:o.t("Create record")}):o.t("Create record")}),(0,m.jsx)(u0,{options:{parentId:o.view.inputArgs.parentId,subKey:"grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}})]})}let u2=(e,t)=>{var l,o;let n=null==(l=e.context.collectionField)?void 0:l.collection,r=null==n?void 0:n.dataSource,a=e.context.t,s=(null==(o=e.context.collectionField)?void 0:o.name)||e.fieldPath,d=(0,i.useMemo)(()=>{let e=a((null==r?void 0:r.displayName)||(null==r?void 0:r.key)||""),t=e?`${e} > `:"",l=n?`${a(n.title)||n.name||n.tableName} > `:"";return`${t}${l}${s}`},[n,null==r?void 0:r.displayName,null==r?void 0:r.key,s,a]);return t?null:a('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:d,actionName:"Update"}).replaceAll("&gt;",">")},u5=(0,A.css)`
851
851
  min-width: 0;
852
852
 
853
853
  .ant-select-selector {
@@ -885,7 +885,7 @@ if (!ctx.record) {
885
885
  text-overflow: ellipsis;
886
886
  white-space: nowrap !important;
887
887
  }
888
- `,u4=e=>{var t,l;let{fieldNames:o,value:n,multiple:r,allowMultiple:a,keepDropdownOpenOnSelect:s=!1,options:d,quickCreate:u,onChange:c,allowCreate:p=!0,allowEdit:h=!0,className:g,...y}=e,_=(0,f.useFlowModel)(),x=uj(o,null==_||null==(l=_.context)||null==(t=l.collectionField)?void 0:t.targetCollection),M=!!(r&&a),w=!!(s&&M),S=uH(d,n,M),k=(0,i.useRef)();k.current||(k.current=_.__keepOpenOnSelectRuntime||(_.__keepOpenOnSelectRuntime={open:void 0,preventCloseOnSelect:!1}));let F=k.current,[C,A]=(0,i.useState)(F.open),P=e=>{Object.assign(F,e),Object.prototype.hasOwnProperty.call(e,"open")&&A(F.open)},T=!!_.context.flowSettingsEnabled,{t:j}=(0,v.useTranslation)();uN({model:_,value:n,isMultiple:M,fieldNames:x,onChange:c});let I=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>y.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:j("Add")+` “${t}” `})]})},L=u2(_,h);return(0,m.jsxs)(b.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(b.Select,{style:{width:"100%"},...y,className:[u5,g].filter(Boolean).join(" "),allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(b.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(b.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>y.onCompositionEnd(e,!1),fieldNames:x,options:S,value:uV(n,x,M),mode:M?"multiple":void 0,open:w?C:void 0,onChange:(e,t)=>{c(t)},onSelect:(e,t)=>{var l;w&&P({preventCloseOnSelect:!0,open:!0}),null==(l=y.onSelect)||l.call(y,e,t)},onDropdownVisibleChange:e=>{var t,l;if(w){if(!e&&F.preventCloseOnSelect){P({preventCloseOnSelect:!1,open:!0}),null==(l=y.onDropdownVisibleChange)||l.call(y,!0);return}P({preventCloseOnSelect:!1,open:e})}uZ(_,e),null==(t=y.onDropdownVisibleChange)||t.call(y,e)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)("div",{onMouseDown:()=>{w&&P({preventCloseOnSelect:!0})},children:(0,m.jsx)(uB,{option:t,fieldNames:x})})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:u8,children:e.label}),dropdownRender:e=>{let t=S.some(e=>e[x.label]===y.searchText);return(0,m.jsx)(m.Fragment,{children:"quickAdd"===u&&p&&h&&y.searchText?(0,m.jsxs)(m.Fragment,{children:[!(0===S.length&&y.searchText)&&e,S.length>0&&y.searchText&&!t&&(0,m.jsx)(b.Divider,{style:{margin:0}}),!t&&(0,m.jsx)(I,{searchText:y.searchText})]}):e})}}),"modalAdd"===u&&(p&&h||T)&&(p&&h?(0,m.jsx)(b.Button,{onClick:y.onModalAddClick,children:j("Add new")}):(0,m.jsx)(aQ._T,{forbidden:{actionName:"create"},collection:_.collectionField.targetCollection,message:L,children:(0,m.jsx)(b.Button,{onClick:y.onModalAddClick,disabled:!h,style:{opacity:"0.3"},children:j("Add new")})}))]})};class u3 extends uC{get collectionField(){return this.context.collectionField}onInit(e){super.onInit(e),this.context.defineProperty("collection",{get:()=>{var e;return null==(e=this.context.collectionField)?void 0:e.targetCollection}}),this.setDataSource([])}set onPopupScroll(e){this.setProps({onPopupScroll:e})}set onDropdownVisibleChange(e){this.setProps({onDropdownVisibleChange:e})}set onSearch(e){this.setProps({onSearch:e})}setDataSource(e){this.setProps({options:e})}getDataSource(){return this.props.options}getFilterValue(){var e,t;let l=uj(this.props.fieldNames,null==(e=this.context.collectionField)?void 0:e.targetCollection);return Array.isArray(this.props.value)?this.props.value.map(e=>e[l.value]):null==(t=this.props.value)?void 0:t[l.value]}onMount(){this.onModalAddClick=e=>{this.dispatchEvent("openView",{event:e,onChange:this.props.onChange})},this.onDropdownAddClick=e=>{this.dispatchEvent("dropdownAdd",{search:e,onChange:this.props.onChange})}}set onModalAddClick(e){this.setProps({onModalAddClick:e})}set onDropdownAddClick(e){this.setProps({onDropdownAddClick:e})}change(e){this.props.onChange(e)}render(){return this.context.isMobileLayout?(0,m.jsx)(uJ,{...this.props,loading:this.resource.loading}):(0,m.jsx)(u4,{...this.props})}}let u6={page:1,pageSize:40,loading:!1,hasMore:!0},u9=e=>`__search__${e}`,u7=e=>`__assoc__${e}`;async function ce(e,t){try{var l,o,n,i;let t=e.model.collectionField.targetCollection,r=uj(e.model.props.fieldNames,t).label,a=t.getField(r);if(!a)return;let s=a.getInterfaceOptions(),d=(null==s||null==(n=s.filterable)||null==(o=n.operators)||null==(l=o[0])?void 0:l.value)||"$includes",u=null==(i=e.inputArgs.searchText)?void 0:i.trim(),c=e.model.resource,p=`${r}.${d}`;""===u?c.removeFilterGroup(u9(r)):(c.setPage(1),c.addFilterGroup(u9(r),{[p]:u})),await c.refresh();let m=c.getData();e.model.setDataSource(m),m.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++),e.model.setProps({searchText:u})}catch(t){console.error("AssociationSelectField search flow error:",t),e.model.setDataSource([])}}u3.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){var l;let o=u9(uj(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).label);e.model.onDropdownVisibleChange=t=>{t?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(o),u6.page=1)},e.model.onPopupScroll=t=>{e.model.dispatchEvent("popupScroll",{event:t,apiClient:e.app.apiClient})},e.model.onSearch=t=>{e.model.dispatchEvent("search",{searchText:t,apiClient:e.app.apiClient})}}}}}),u3.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{setScope:{async handler(e,t){var l;let o=uj(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).value,n=e.model.resource,i=e.model.getDataSource();n.setPage(1),await e.model.applyFlow("selectSettings"),await n.refresh();let{count:r}=n.getMeta(),a=n.getData();(!i||r!==i.length||a[0][o]!==i[0][o])&&(e.model.setDataSource(a),e.model.setProps({searchText:null}),a.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++))}}}}),u3.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{step1:{async handler(e,t){var l;let{scrollTop:o,scrollHeight:n,clientHeight:i}=(null==(l=e.inputArgs)?void 0:l.event).target;if(!(o+i<n-20)&&!u6.loading&&u6.hasMore){u6.loading=!0;try{let t=e.model.resource;t.setPage(u6.page),await t.refresh();let l=t.getData(),o=e.model.getDataSource()||[];e.model.setDataSource([...o,...l]),l.length<u6.pageSize?(u6.hasMore=!1,u6.page=1):u6.page++}catch(e){console.error("Scroll pagination request failed:",e)}finally{u6.loading=!1}}}}}});let ct=(0,g.debounce)(ce,500);u3.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:ct}}}),u3.registerFlow({key:"recordSelectSettings",sort:200,steps:{init:{async handler(e){var t,l,o;let n=e.createResource(f.MultiRecordResource),i=e.model.context.collectionField,{target:r,dataSourceKey:a,foreignKey:s}=i;n.setDataSourceKey(a),n.setResourceName(r),n.setPageSize(u6.pageSize);let d=(null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter,u=["oho","o2m"].includes(i.interface),c=(null==(o=e.item)?void 0:o.value)||e.record,p=null==c?void 0:c[null==i?void 0:i.sourceKey],m=[];if(!d&&null!=p&&u){let e=`${s}.$eq`;m.push({[e]:p})}if(!d&&u){let e=`${s}.$is`;m.push({[e]:null})}m.length>0&&n.addFilterGroup(u7(s),{$or:m}),e.model.resource=n}},allowEditCheck:{async handler(e){if(e.blockModel instanceof d9.EditFormModel){var t;let l=await e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:null==(t=e.collectionField)?void 0:t.collectionName,actionName:"update",fields:[e.collectionField.name]});e.model.setProps({allowEdit:!!l})}}}}}),u3.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings:e=>!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type),defaultParams:e=>({allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}),handler(e,t){e.model.setProps({allowMultiple:null==t?void 0:t.allowMultiple})}},quickCreate:{title:(0,f.tExpr)("Quick create"),uiMode(e){let t=e.t;return{type:"select",key:"quickCreate",props:{options:[{label:t("None"),value:"none"},{label:t("Dropdown"),value:"quickAdd"},{label:t("Pop-up"),value:"modalAdd"}]}}},hideInSettings(e){var t,l;return!!((null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter||uX(null==e?void 0:e.model,["SubTableColumnModel","SubTableFieldModel"]))},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}}),u3.registerFlow({key:"dropdownAdd",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"dropdownAdd"},steps:{dropdownAdd:{async handler(e,t){var l,o,n;if("quickAdd"!==e.model.props.quickCreate)return null;let{onChange:i,search:r}=e.inputArgs,a=await e.model.resource.create({[(null==(o=e.model.props)||null==(l=o.fieldNames)?void 0:l.label)||"id"]:r},{refresh:!1});a&&(i(["m2m","o2m"].includes(null==(n=e.collectionField)?void 0:n.interface)&&!1!==e.model.props.allowMultiple?[...e.model.props.value||[],a.data].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey])):a.data),e.message.success(e.t("Saved successfully")),e.model.setProps({searchText:null}))}}}}),u3.registerFlow({key:"popupSettings",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"openView"},steps:{openView:{title:(0,f.tExpr)("Edit popup"),uiSchema:e=>"modalAdd"!==e.model.props.quickCreate?null:{mode:{type:"string",title:(0,f.tExpr)("Open mode"),enum:[{label:(0,f.tExpr)("Drawer"),value:"drawer"},{label:(0,f.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,f.tExpr)("Popup size"),enum:[{label:(0,f.tExpr)("Small"),value:"small"},{label:(0,f.tExpr)("Medium"),value:"medium"},{label:(0,f.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var l,o,n,i,r;let{onChange:a}=e.inputArgs,s={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},d=e.inputArgs.mode||t.mode||"drawer",u=["belongsTo","hasOne"].includes(e.collectionField.type),c=e.inputArgs.size||t.size||"medium",p=null==(l=e.collectionField)?void 0:l.collection,h=(null==(o=e.item)?void 0:o.value)??e.record,f=h?null==p||null==(n=p.getFilterByTK)?void 0:n.call(p,h):void 0,g=null==(i=e.collectionField)?void 0:i.resourceName,v=uI(e,e.inputArgs);e.viewer.open({type:d,width:s[d][c],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"create",dataSourceKey:e.collection.dataSourceKey,collectionName:null==(r=e.collectionField)?void 0:r.target,...g&&null!=f?{associationName:g,sourceId:f}:{},collectionField:e.collectionField,openerUids:v,onChange:t=>{if(u||!e.model.props.allowMultiple){a(t);let l=e.model.getDataSource()||[];l.push(t),e.model.setDataSource(l)}else{let l=[...e.model.props.value||[],t].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey]));a(l);let o=e.model.getDataSource()||[];e.model.setDataSource(o.concat(l))}}},content:()=>(0,m.jsx)(u1,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===d?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}}),u3.define({label:(0,f.tExpr)("Dropdown select")}),f.EditableItemModel.bindModelToInterface("RecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,order:1});class cl extends u3{onInit(e){var t;super.onInit(e);let l=null==(t=this.getStepParams("selectSettings","allowMultiple"))?void 0:t.allowMultiple,o="boolean"==typeof l?l:"boolean"!=typeof this.props.allowMultiple||this.props.allowMultiple;this.setProps({allowMultiple:o,multiple:o,quickCreate:"none"})}}cl.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},defaultParams:{allowMultiple:!0},handler(e,t){var l;let o=null==(l=e.model.getStepParams("selectSettings","allowMultiple"))?void 0:l.allowMultiple,n="boolean"==typeof(null==t?void 0:t.allowMultiple)?t.allowMultiple:"boolean"==typeof o?o:"boolean"!=typeof e.model.props.allowMultiple||e.model.props.allowMultiple;e.model.setProps({allowMultiple:n,multiple:n})}}}}),cl.define({label:(0,f.tExpr)("Dropdown select")}),f.FilterableItemModel.bindModelToInterface("FilterFormRecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,defaultProps:{allowMultiple:!0,multiple:!0,quickCreate:"none"}});var co=__webpack_require__(6832);class cn extends uF{render(){return(0,m.jsx)(co.DateFilterDynamicComponent,{...this.props})}}let ci=e=>{let{value:t,format:l="YYYY-MM-DD",picker:o="date",showTime:n,...i}=e,r={...i,value:t,format:l,picker:o,showTime:n};return(0,m.jsx)(co.DateFilterDynamicComponent,{...r})};class cr extends cn{setProps(e){super.setProps({...e,showTime:!1,utc:!1})}render(){return(0,m.jsx)(ci,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});let ca=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",showTime:o,picker:n="date",...i}=e,r=o&&"date"===n?"YYYY-MM-DD":l;return(0,m.jsx)(co.DateFilterDynamicComponent,{...i,value:t,format:r,picker:n,showTime:o})};class cs extends cn{render(){return(0,m.jsx)(ca,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});let cd=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",picker:o="date",showTime:n,...i}=e,r=n&&"date"===o?"YYYY-MM-DD":l,a={...i,value:t,format:r,picker:o,showTime:n};return(0,m.jsx)(co.DateFilterDynamicComponent,{...a})};class cu extends cn{setProps(e){super.setProps({...e,utc:!0})}render(){return(0,m.jsx)(cd,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});let cc="recordSelectDataSourceKey",cp="recordSelectTargetCollection",cm="recordSelectTitleField",ch="recordSelectValueField",cf="allowMultiple",cg="multiple",cv="valueMode",cy=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),c_=e=>{var t,l,o,n,r;let{fieldModel:a,source:s=[]}=e,d=(0,lj.useField)(),{t:u}=(0,v.useTranslation)(),c=d.value||{},p=a||(null==c?void 0:c.fieldModel),h=(0,f.useFlowEngine)(),g=(0,f.useFlowContext)(),y=(null==g?void 0:g.dataSourceManager)||(null==h?void 0:h.dataSourceManager)||(null==g||null==(t=g.app)?void 0:t.dataSourceManager),_=(0,et.Sx)(y),x=(0,i.useCallback)(e=>(0,et.w6)(e,y),[y]),M=()=>d.value||{},w=(e,t)=>{d.setValue({...M(),[e]:t})},S=e=>{var t;(null==d||null==(t=d.form)?void 0:t.setValuesIn)&&(null==d?void 0:d.path)?d.form.setValuesIn(d.path,e):d.setValue(e)},k=e=>{var t,l,o,n;let i=`${d.path.toString()}.${e}`,r=null==(n=d.form)||null==(o=n.query)||null==(l=o.call(n,i))||null==(t=l.take)?void 0:t.call(l);return(Array.isArray(null==r?void 0:r.errors)?r.errors:[]).flatMap(e=>e?Array.isArray(e.messages)?e.messages:e.messages?[e.messages]:[]:[]).filter(Boolean)},F=e=>{let t=k(e);return t.length?{feedbackStatus:"error",feedbackText:t.join(", ")}:{}};(0,i.useEffect)(()=>{var e,t,l,o,n,i,r;let a=s.length?s:(null==c?void 0:c.source)||[];if(!a.length)return;let u=!!(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSource)?void 0:e.call(t,a[0])),m=(null==h||null==(o=h.dataSourceManager)||null==(l=o.getDataSources)?void 0:l.call(o))??[],v=(u?a[0]:void 0)||(null==c?void 0:c[cc])||(null==(n=m[0])?void 0:n.key)||"main",y=(u?a.slice(1):a).join("."),_=h.dataSourceManager.getCollectionField(`${v}.${y}`),b=f.FilterableItemModel.getDefaultBindingByField(g.model.context,_);if(!_&&"FilterFormCustomRecordSelectFieldModel"!==p||!b&&"FilterFormCustomRecordSelectFieldModel"!==p)return;let x=(null==_||null==(i=_.getComponentProps)?void 0:i.call(_))||{},w={...(b&&"function"==typeof b.defaultProps?b.defaultProps(g.model.context,d):null==b?void 0:b.defaultProps)||{},...x,...M()};if(("FilterFormCustomRecordSelectFieldModel"===p||!p&&(null==_?void 0:_.target))&&(null==_?void 0:_.target)){let e=_.targetCollection||h.dataSourceManager.getCollection(_.dataSourceKey,_.target);w[cc]=_.dataSourceKey||v,w[cp]=_.target,w[cm]=_.targetCollectionTitleFieldName||(null==e||null==(r=e.titleCollectionField)?void 0:r.name)||w[cm],w[ch]=w[ch]||(null==e?void 0:e.filterTargetKey)||"id",void 0===w[cf]&&void 0===w[cg]&&(w[cf]=!0,w[cg]=!0),w[cv]||(w[cv]="value")}S(w)},[a,p,s.join("."),null==c?void 0:c.source,h]);let C=(0,i.useMemo)(()=>{var e,t;return(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSources)?void 0:e.call(t))??[]},[h]),A=(0,i.useMemo)(()=>C.map(e=>({label:e.displayName??e.key,value:e.key})),[C]),P=(null==c?void 0:c[cc])||(null==(l=C[0])?void 0:l.key)||"main",T=P?null==h||null==(n=h.dataSourceManager)||null==(o=n.getDataSource)?void 0:o.call(n,P):void 0,j=null==c?void 0:c[cp],I=j?null==T||null==(r=T.getCollection)?void 0:r.call(T,j):void 0,L=(0,i.useCallback)(e=>e?(null==g?void 0:g.t)?g.t(e):u(e):e,[g,u]),R=(0,i.useMemo)(()=>(null==T?void 0:T.getCollections)?T.getCollections().filter(e=>{var t;return!(null==(t=e.options)?void 0:t.hidden)}).map(e=>({label:L(e.title)||e.name,value:e.name})):[],[T,L]),D=(0,i.useMemo)(()=>{if(!(null==I?void 0:I.getFields))return[];let e=e=>{if(!_)return!0;let t=(null==e?void 0:e.options)||e;return(0,et.w)(x(null==t?void 0:t.interface))};return(I.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:L(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||L(e.title)||e.name,value:e.name}})},[I,x,_,L]),E=(0,i.useMemo)(()=>{if(!(null==I?void 0:I.getFields))return[];let e=e=>{let t=(null==e?void 0:e.options)||{},l=t.interface||(null==e?void 0:e.interface);if(!1===t.filterable||!l)return!1;if(_){let e=x(l);if(!(null==e?void 0:e.filterable))return!1}let o=t.type||(null==e?void 0:e.type);return!cy.has(o)};return(I.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:L(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||L(e.title)||e.name,value:e.name}})},[I,x,_,L]);if((0,i.useEffect)(()=>{var e;if("FilterFormCustomRecordSelectFieldModel"!==p||!j||(null==c?void 0:c[cm]))return;let t=null==I||null==(e=I.titleCollectionField)?void 0:e.name;t&&d.setValue({...M(),[cm]:t})},[a,p,j,I,c]),(0,i.useEffect)(()=>{if("FilterFormCustomRecordSelectFieldModel"!==p||!j)return;let e=null==c?void 0:c[ch],t=E.map(e=>e.value);if(e&&t.includes(e))return;let l=null==I?void 0:I.filterTargetKey,o=l&&t.includes(l)&&l||t[0];o&&d.setValue({...M(),[ch]:o})},[a,p,j,I,c,E]),(0,i.useEffect)(()=>{"FilterFormCustomRecordSelectFieldModel"!==p||(null==c?void 0:c[cf])===void 0&&(null==c?void 0:c[cg])===void 0&&d.setValue({...M(),[cf]:!0,[cg]:!0})},[a,p,c]),"DateTimeFilterFieldModel"===a)return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(il.FormItem,{label:u("Date format"),children:(0,m.jsxs)(b.Radio.Group,{value:c.format||"YYYY-MM-DD",onChange:e=>w("format",e.target.value),children:[(0,m.jsx)(b.Radio,{value:"YYYY/MM/DD",children:u("Year/Month/Day")}),(0,m.jsx)(b.Radio,{value:"YYYY-MM-DD",children:u("Year-Month-Day")}),(0,m.jsx)(b.Radio,{value:"DD/MM/YYYY",children:u("Day/Month/Year")})]})}),(0,m.jsx)(il.FormItem,{label:u("Time"),children:(0,m.jsx)(b.Checkbox,{checked:c.showTime,onChange:e=>w("showTime",e.target.checked),children:u("Show time")})}),(0,m.jsx)(il.FormItem,{label:u("Date range"),children:(0,m.jsx)(b.Checkbox,{checked:c.isRange,onChange:e=>w("isRange",e.target.checked),children:u("Show date range")})})]});if("SelectFieldModel"===a){let e=c.options||[];return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(il.FormItem,{label:u("Mode"),children:(0,m.jsxs)(b.Radio.Group,{value:c.mode||"",onChange:e=>w("mode",e.target.value),children:[(0,m.jsx)(b.Radio,{value:"",children:u("Single select")}),(0,m.jsx)(b.Radio,{value:"multiple",children:u("Multiple select")})]})}),(0,m.jsx)(il.FormItem,{label:u("Options"),children:(0,m.jsxs)(b.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(b.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let n=[...e];n[l]={...t,label:o.target.value},w("options",n)}}),(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let n=[...e];n[l]={...t,value:o.target.value},w("options",n)}}),(0,m.jsx)(b.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{w("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(b.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{w("options",[...e,{label:"",value:""}])},children:u("Add")})]})})]})}if("CheckboxGroupFieldModel"===a||"RadioGroupFieldModel"===a){let e=c.options||[];return(0,m.jsx)(il.FormItem,{label:u("Options"),children:(0,m.jsxs)(b.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(b.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let n=[...e];n[l]={...t,label:o.target.value},w("options",n)}}),(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let n=[...e];n[l]={...t,value:o.target.value},w("options",n)}}),(0,m.jsx)(b.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{w("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(b.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{w("options",[...e,{label:"",value:""}])},children:u("Add")})]})})}return"FilterFormCustomRecordSelectFieldModel"===p?(0,m.jsxs)(m.Fragment,{children:[A.length>1&&(0,m.jsx)(il.FormItem,{label:u("Data source"),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:P,options:A,onChange:e=>{d.setValue({...c,[cc]:e,[cp]:void 0,[cm]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Target collection"),asterisk:!0,...F(cp),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Select collection"),value:j,options:R,onChange:e=>{d.setValue({...c,[cp]:e,[cm]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Title field"),asterisk:!0,...F(cm),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cm],options:D,onChange:e=>w(cm,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Used for display in the dropdown and selected tags.")}),(0,m.jsx)(il.FormItem,{label:u("Value field"),asterisk:!0,...F(ch),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[ch],options:E,onChange:e=>w(ch,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Stored as the field value for filtering (usually the primary key).")}),(0,m.jsx)(il.FormItem,{label:u("Multiple"),children:(0,m.jsx)(b.Checkbox,{checked:(null==c?void 0:c[cf])!==!1,onChange:e=>{let t=e.target.checked;d.setValue({...c,[cf]:t,[cg]:t})},children:u("Allow multiple selection")})})]}):null};function cb(e){let{source:t=[],onChange:l}=e,o=(0,f.useFlowEngine)(),n=(0,f.useFlowContext)(),r=e.valueMap||{},a=t.join("."),s=(0,i.useRef)(),d=(0,i.useMemo)(()=>e=>r&&r[e]?r[e]:e,[r]),u=(0,i.useMemo)(()=>{if(!t.length)return;let e=o.dataSourceManager.getCollectionField(a),l=f.FilterableItemModel.getDefaultBindingByField(n.model.context,e);if(l)return d(l.modelName)},[a,d]);return(0,i.useEffect)(()=>{if(!u){s.current=a;return}let t=void 0!==s.current&&s.current!==a;s.current=a;let o=d(e.value);if(e.value&&e.value!==o&&o!==u){null==l||l(o);return}(!e.value||t)&&o!==u&&(null==l||l(u))},[u,l,e.value,a,d]),(0,m.jsx)(il.Select,{allowClear:!0,...e,value:d(e.value??u)})}let cx={InputFieldModel:et.II.string,NumberFieldModel:et.II.number,DateTimeFilterFieldModel:et.II.datetime,SelectFieldModel:e=>(null==e?void 0:e.mode)==="multiple"?et.II.array:et.II.enumType,RadioGroupFieldModel:et.II.enumType,CheckboxGroupFieldModel:et.II.array},cM=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),cw={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cS={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},ck={input:et.II.string,email:et.II.string,phone:et.II.string,uuid:et.II.string,url:et.II.string,nanoid:et.II.string,textarea:et.II.string,markdown:et.II.bigField,vditor:et.II.bigField,richText:et.II.bigField,password:et.II.string,color:et.II.string,number:et.II.number,integer:et.II.number,id:et.II.id,snowflakeId:et.II.number,dateOnly:et.II.datetime,datetime:et.II.datetime,datetimeNoTz:et.II.datetime,unixTimestamp:et.II.datetime,time:et.II.time,select:et.II.enumType,multipleSelect:et.II.array,radioGroup:et.II.enumType,checkboxGroup:et.II.array,checkbox:et.II.boolean};function cF(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=cx[e];return l?"function"==typeof l?l(t)||[]:l||[]:[]}function cC(e){var t,l,o,n;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;if(!Array.isArray(i)||0===i.length)return;let a=!!(null==e||null==(l=e.dataSourceManager)||null==(t=l.getDataSource)?void 0:t.call(l,i[0])),s=a?i[0]:r||"main",d=(a?i.slice(1):i).join(".");if(d)return null==e||null==(n=e.dataSourceManager)||null==(o=n.getCollectionField)?void 0:o.call(n,`${s}.${d}`)}function cA(e){var t,l,o,n;let i;if(!e)return[];let r=null==(t=e.filterable)?void 0:t.operators;if(Array.isArray(r)&&r.length>0)return r;try{i=null==(n=e.getInterfaceOptions)||null==(o=n.call(e))||null==(l=o.filterable)?void 0:l.operators}catch(e){i=void 0}return Array.isArray(i)&&i.length>0?i:e.interface&&ck[e.interface]?ck[e.interface]:(null===et.II||void 0===et.II?void 0:et.II[e.type])||[]}function cP(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return"boolean"==typeof(null==e?void 0:e.multiple)?e.multiple:"boolean"!=typeof(null==e?void 0:e.allowMultiple)||e.allowMultiple}function cT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Set;return e.filter(e=>!(!(null==e?void 0:e.value)||t.has(e.value))&&(t.add(e.value),!0))}function cj(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.some(e=>(null==e?void 0:e.value)==="$in"),l=e.some(e=>(null==e?void 0:e.value)==="$notIn"),o=e.filter(e=>cM.has(null==e?void 0:e.value)&&(null==e?void 0:e.value)!=="$in"&&(null==e?void 0:e.value)!=="$notIn"||(null==e?void 0:e.noValue)||(null==e?void 0:e.value)==="$exists"||(null==e?void 0:e.value)==="$notExists"),n=e.some(e=>(null==e?void 0:e.value)&&!e.noValue&&"$exists"!==e.value&&"$notExists"!==e.value),i=n||t,r=n||l,a=[];return i&&a.push(cw),r&&a.push(cS),cT([...a,...o])}function cI(e){var t,l,o,n,i;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s=cC(e,a,null==r?void 0:r.recordSelectDataSourceKey),d=(null==s?void 0:s.dataSourceKey)||(null==a?void 0:a[0])||"main",u=(null==r?void 0:r.recordSelectDataSourceKey)||d,c=(null==r?void 0:r.recordSelectTargetCollection)||(null==s||null==(t=s.targetCollection)?void 0:t.name)||(null==s?void 0:s.target);if(!c)return;let p=null==e||null==(o=e.dataSourceManager)||null==(l=o.getCollection)?void 0:l.call(o,u,c);if(!p)return;let m=(null==r?void 0:r.recordSelectValueField)||(null==p?void 0:p.filterTargetKey)||(null==p||null==(n=p.getPrimaryKey)?void 0:n.call(p));if(m)return null==(i=p.getField)?void 0:i.call(p,m)}function cL(e){let{flowEngine:t,fieldModelProps:l={},source:o=[]}=e,n=cI(t,l,o),i=cA(n);return{operatorList:cP(l)?cj(i):i,meta:n}}function cR(e){let{flowEngine:t,fieldModel:l,fieldModelProps:o={},source:n=[]}=e;if("FilterFormCustomRecordSelectFieldModel"===l)return cL(e);let i=cC(t,n);if("SelectFieldModel"===l&&(null==o?void 0:o.mode)==="multiple"&&i){let e=cA(i);return{operatorList:a0(i)?cF(l,o):cj(e),meta:i}}let r=cF(l,o);return r.length>0?{operatorList:r,meta:{fieldModel:l}}:{operatorList:cA(i),meta:i}}function cD(e){let{operatorList:t,meta:l}=cR(e);return cT((t||[]).filter(e=>!(null==e?void 0:e.visible)||e.visible(l)))}function cE(e){var t,l;let{fieldModel:o,fieldModelProps:n={}}=e,i=cD(e);if("DateTimeFilterFieldModel"===o&&(null==n?void 0:n.isRange)){let e=i.find(e=>"$dateBetween"===e.value);if(e)return e.value}return(null==(t=i.find(e=>e.selected))?void 0:t.value)||(null==(l=i[0])?void 0:l.value)}function cY(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return e.map(e=>({...e,label:t(e.label),value:e.value}))}let cN=(0,f.observer)(e=>{var t;let{fieldModel:l,source:o=[],fieldModelProps:n={},value:r,onChange:a,...s}=e,d=(0,lj.useField)(),u=(0,f.useFlowEngine)(),c=(0,f.useFlowContext)(),p=(null==d||null==(t=d.form)?void 0:t.values)||{},h=l||(null==p?void 0:p.fieldModel),g=o.length?o:(null==p?void 0:p.source)||[],v=(null==p?void 0:p.fieldModelProps)&&Object.keys(p.fieldModelProps).length>0?p.fieldModelProps:n,y=Array.isArray(g)?g.join("."):"",_=null==v?void 0:v.mode,b=null==v?void 0:v.allowMultiple,x=null==v?void 0:v.multiple,M=null==v?void 0:v.recordSelectDataSourceKey,w=null==v?void 0:v.recordSelectTargetCollection,S=null==v?void 0:v.recordSelectValueField,k=(0,i.useMemo)(()=>cD({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v}),[u,h,y,_,b,x,M,w,S]),F=(0,i.useMemo)(()=>cY(k,e=>c.t(e)),[k,c]);return(0,i.useEffect)(()=>{if(!F.length){void 0!==r&&(null==a||a(void 0));return}if(F.some(e=>e.value===r))return;let e=cE({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v});e!==r&&(null==a||a(e))},[u,h,a,F,y,r,_,b,x,M,w,S]),(0,m.jsx)(il.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c.t("Please select"),...s,options:F,value:r,onChange:a,disabled:0===F.length})});class cO extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FilterFormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o;let[n,i]=t,r={key:n,label:e.t(i.meta.label),sort:i.meta.sort??999,searchable:!!(null==(l=i.meta)?void 0:l.searchable),searchPlaceholder:null==(o=i.meta)?void 0:o.searchPlaceholder};return r.createModelOptions={use:n},r});return g.default.sortBy([...o(t),...o(l)],"sort")}}function cB(e){let t=(0,f.useFlowEngine)(),l=(0,i.useCallback)(()=>{let e=null==t?void 0:t.dataSourceManager;return e?e.getDataSources().map(e=>({value:e.key,label:e.displayName??e.key,isLeaf:!1,meta:{type:"dataSource",dataSourceKey:e.key}})):[]},[t]),[o,n]=(0,i.useState)(()=>l());(0,i.useEffect)(()=>{n(l())},[l]);let r=(0,i.useCallback)(e=>{var l;let o=e[e.length-1];if(!o||(null==(l=o.children)?void 0:l.length))return;let i=null==t?void 0:t.dataSourceManager;if(!i)return;let r=[];if(1===e.length){let e=o.value,t=i.getDataSource(e);r=((null==t?void 0:t.getCollections())??[]).map(t=>({value:t.name,label:t.title,isLeaf:!1,meta:{type:"collection",dataSourceKey:e,collectionName:t.name,fullPath:t.name}}))}else{let e=o.meta||{},t=e.dataSourceKey,l=i.getDataSource(t),a=null==l?void 0:l.collectionManager;if(!l||!a){o.isLeaf=!0,n(e=>[...e]);return}if("collection"===e.type){let l=a.getCollection(e.collectionName);r=((null==l?void 0:l.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,n=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!n,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}else if("field"===e.type){let o=l.getCollectionField(e.fullPath),n=null==o?void 0:o.targetCollection;r=((null==n?void 0:n.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,n=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!n,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}}r.length?o.children=r:o.isLeaf=!0,n(e=>[...e])},[t]);return(0,m.jsx)(b.Cascader,{allowClear:!0,...e,options:o,loadData:r})}cO.renderMode=f.ModelRenderMode.RenderFunction,cO.define({hide:!0,label:(0,f.tExpr)("Others")});var cV=__webpack_require__(6175);let cH=(e,t,l)=>{var o,n,i;if((null==l||null==(n=l.form)||null==(o=n.values)?void 0:o.fieldModel)==="FilterFormCustomRecordSelectFieldModel"&&(null==e||""===e))return(null==l||null==(i=l.t)?void 0:i.call(l,"The field value is required"))||"The field value is required"};class cq extends cO{buildRecordSelectCollectionField(e,t){var l,o,n,i,r,a;let s=(null==t?void 0:t.recordSelectDataSourceKey)||"main",d=null==t?void 0:t.recordSelectTargetCollection;if(!d)return;let u=null==(o=e.dataSourceManager)||null==(l=o.getDataSource)?void 0:l.call(o,s),c=null==u||null==(n=u.getCollection)?void 0:n.call(u,d);if(!u||!c)return;let p=(null==t?void 0:t.recordSelectTitleField)||(null==(i=c.titleCollectionField)?void 0:i.name)||(null==(a=c.titleCollectionField)||null==(r=a.options)?void 0:r.name),m=(null==t?void 0:t.recordSelectValueField)||c.filterTargetKey||"id",h=new f.CollectionField({name:(null==t?void 0:t.name)||"recordSelect",interface:"m2o",type:"belongsTo",target:d,dataSourceKey:s,uiSchema:{"x-component":"Select"},fieldNames:{label:p,value:m}});return h.setCollection(c),h}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}onInit(e){super.onInit(e),this.debouncedDoFilter=(0,g.debounce)(this.doFilter.bind(this),300)}onUnmount(){super.onUnmount(),this.debouncedDoFilter.cancel()}doFilter(){this.context.filterManager.refreshTargetsByFilter(this.uid)}doReset(){this.context.filterManager.refreshTargetsByFilter(this.uid)}getFilterValue(){var e,t,l,o;let n=(null==(e=this.customFieldModelInstance)?void 0:e.getFilterValue)?this.customFieldModelInstance.getFilterValue():null==(t=this.context.form)?void 0:t.getFieldValue(this.props.name),i=this.getCurrentOperatorMeta(),r=(0,cV.S)(this.operator,n);return(null==i?void 0:i.noValue)&&!Array.isArray(null==i||null==(o=i.schema)||null==(l=o["x-component-props"])?void 0:l.options)||r}getCurrentOperatorMeta(){let e=this.getStepParams("formItemSettings","fieldSettings")||{},t=e.fieldModel,l=e.source||[],o=this.customFieldProps||e.fieldModelProps||{},n=cD({flowEngine:this.flowEngine,fieldModel:t,source:l,fieldModelProps:o}),i=this.operator||e.operator;return i&&n.find(e=>e.value===i)||null}getValueProps(e){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,g.isEqual)(this.lastAutoTriggerValue,e)||(this.lastAutoTriggerValue=(0,g.cloneDeep)(e),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,g.cloneDeep)(e))),{value:e,onKeyDown:this.handleEnterPress.bind(this)}}render(){return this.customFieldModelInstance?(0,m.jsx)(f.FormItem,{...this.props,getValueProps:this.getValueProps.bind(this),children:(0,m.jsx)(f.FieldModelRenderer,{model:this.customFieldModelInstance})}):null}constructor(...e){super(...e),this.customFieldModelInstance=null,this.customFieldProps=null,this.autoTriggerInitialized=!1,this.handleEnterPress=e=>{"Enter"===e.key&&(e.preventDefault(),this.doFilter())}}}cq.define({label:'{{t("Custom field")}}',sort:1}),cq.registerFlow({key:"formItemSettings",title:(0,f.tExpr)("Form item settings"),steps:{fieldSettings:{preset:!0,title:(0,f.tExpr)("Field settings"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},name:{type:"string",title:(0,f.tExpr)("Field name"),"x-component":"Input","x-decorator":"FormItem",required:!0,description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")}}'},source:{type:"array",title:(0,f.tExpr)("Field source"),"x-decorator":"FormItem","x-component":cB,"x-component-props":{placeholder:(0,f.tExpr)("Select a source field to use metadata of the field")},description:(0,f.tExpr)("Select a source field to use metadata of the field")},fieldModel:{type:"string",title:(0,f.tExpr)("Field type"),"x-component":cb,"x-decorator":"FormItem",required:!0,enum:[{label:(0,f.tExpr)("Input"),value:"InputFieldModel"},{label:(0,f.tExpr)("Number"),value:"NumberFieldModel"},{label:(0,f.tExpr)("Date"),value:"DateTimeFilterFieldModel"},{label:(0,f.tExpr)("Select"),value:"SelectFieldModel"},{label:(0,f.tExpr)("Radio group"),value:"RadioGroupFieldModel"},{label:(0,f.tExpr)("Checkbox group"),value:"CheckboxGroupFieldModel"},{label:(0,f.tExpr)("Record select"),value:"FilterFormCustomRecordSelectFieldModel"}],"x-component-props":{placeholder:(0,f.tExpr)("Please select"),valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}},"x-reactions":[{dependencies:["source"],fulfill:{state:{componentProps:{source:"{{$deps[0]}}",valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}}}}}]},fieldModelProps:{type:"object",title:(0,f.tExpr)("Component properties"),"x-component":c_,properties:{recordSelectTargetCollection:{type:"string","x-validator":cH},recordSelectTitleField:{type:"string","x-validator":cH},recordSelectValueField:{type:"string","x-validator":cH}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,f.tExpr)("Operator"),"x-component":cN,"x-decorator":"FormItem",required:!0,"x-reactions":[{dependencies:["fieldModel","source","fieldModelProps"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}",fieldModelProps:"{{$deps[2] || {}}}"}}}}]}},defaultParams:e=>({name:`f_${(0,I.uid)().slice(0,4)}`}),handler(e,t){var l,o;let n,{fieldModel:i,fieldModelProps:r={},title:a,name:s,source:d=[],operator:u}=t;e.model.setProps({label:a,name:s});let c=r;if("FilterFormCustomRecordSelectFieldModel"===i){let t=(null==r?void 0:r.allowMultiple)===void 0||!!(null==r?void 0:r.allowMultiple),o=(null==r?void 0:r.multiple)===void 0?t:!!(null==r?void 0:r.multiple);if(c={...r,allowMultiple:t,multiple:o,valueMode:(null==r?void 0:r.valueMode)||"value"},n=e.model.buildRecordSelectCollectionField(e,{...c,name:s})){let e=(null==r?void 0:r.recordSelectTitleField)||n.targetCollectionTitleFieldName,t=(null==r?void 0:r.recordSelectValueField)||(null==(l=n.targetCollection)?void 0:l.filterTargetKey)||"id";e&&t&&(c={...c,fieldNames:{label:e,value:t}})}}if(e.model.customFieldModelInstance?e.model.customFieldModelInstance.setProps({allowClear:!0,...c}):e.model.customFieldModelInstance=e.model.flowEngine.createModel({use:i,props:{allowClear:!0,...c}}),"FilterFormCustomRecordSelectFieldModel"===i){let t=(null==c?void 0:c.recordSelectTitleField)||(null==c||null==(o=c.fieldNames)?void 0:o.label);t&&e.model.customFieldModelInstance.setStepParams("selectSettings","fieldNames",{label:t})}n&&e.model.customFieldModelInstance.context.defineProperty("collectionField",{value:n});let p=!!cD({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}).find(e=>e.value===u);e.model.operator=(p?u:void 0)||cE({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}),e.model.customFieldProps=c}},connectFields:{use:"connectFields"}}});let c$="__filter_form_value_options__",cz=(e,t)=>null!=e&&""!==e&&("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&(!t||!/(int|big)/i.test(t)||/^-?\d+$/.test(e))),cU=(e,t)=>{if("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},cK=(e,t,l,o,n,i)=>{let r=new Map;t.forEach(e=>{if(!e||"object"!=typeof e)return;let t=null==e?void 0:e[o],n=null==e?void 0:e[l];null!=t&&null!=n&&r.set(t,n)});let a=e=>{if(null==e)return;if("object"==typeof e){let t=null==e?void 0:e[l];if(null!=t)return t;let n=(null==e?void 0:e[o])??(null==e?void 0:e.value);if(o===l)return n;let a=r.get(n);return null!=a?a:cU(n,i)}if(o===l)return e;let t=r.get(e);return null!=t?t:cU(e,i)};return(n&&Array.isArray(e)?e:[e]).map(e=>a(e)).filter(e=>cz(e,i))},cG=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments.length>2?arguments[2]:void 0,o=new Map;return[...e,...t].forEach(e=>{let t=null==e?void 0:e[l];null!=t&&o.set(t,e)}),Array.from(o.values())},cW=(e,t)=>{var l,o;let n=null==e||null==(l=e.context)?void 0:l.collectionField,r=null==n?void 0:n.collection,a=null==r?void 0:r.dataSource,s=null==e||null==(o=e.context)?void 0:o.t,d=(null==n?void 0:n.name)||e.fieldPath,u=(0,i.useMemo)(()=>{if(!s||!a)return"";let e=`${s(a.displayName||a.key)} > `,t=r?`${s(r.title)||r.name||r.tableName} > `:"";return`${e}${t}${d}`},[s,a,r,d]);return!t&&s&&a?s('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:u,actionName:"Update"}).replaceAll("&gt;",">"):null},cJ=e=>{var t;let{fieldNames:l={label:"label",value:"value"},value:o,multiple:n,allowMultiple:i,options:r,quickCreate:a,onChange:s,allowCreate:d=!0,allowEdit:u=!0,valueMode:c="record",...p}=e,h=!!(n&&i),g=uH(r,o,h),y=(0,f.useFlowModel)(),_=!!y.context.flowSettingsEnabled,{t:x}=(0,v.useTranslation)(),M=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>p.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:x("Add")+` “${t}” `})]})},w=cW(y,u);return(0,m.jsxs)(b.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(b.Select,{style:{width:"100%"},...p,allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(b.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(b.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>p.onCompositionEnd(e,!1),fieldNames:l,options:g,value:uV(o,l,h,c,g),mode:h?"multiple":void 0,onChange:(e,t)=>{"value"===c?Array.isArray(t)?s(t.map(e=>(null==e?void 0:e[l.value])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):s((null==t?void 0:t[l.value])??(null==t?void 0:t.value)):s(t)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)(uB,{option:t,fieldNames:l})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:(0,A.css)`
888
+ `,u4=e=>{var t,l;let{fieldNames:o,value:n,multiple:r,allowMultiple:a,keepDropdownOpenOnSelect:s=!1,options:d,quickCreate:u,onChange:c,allowCreate:p=!0,allowEdit:h=!0,className:g,...y}=e,_=(0,f.useFlowModel)(),x=uj(o,null==_||null==(l=_.context)||null==(t=l.collectionField)?void 0:t.targetCollection),M=!!(r&&a),w=!!(s&&M),S=uH(d,n,M),k=(0,i.useRef)();k.current||(k.current=_.__keepOpenOnSelectRuntime||(_.__keepOpenOnSelectRuntime={open:void 0,preventCloseOnSelect:!1}));let F=k.current,[C,A]=(0,i.useState)(F.open),P=e=>{Object.assign(F,e),Object.prototype.hasOwnProperty.call(e,"open")&&A(F.open)},T=!!_.context.flowSettingsEnabled,{t:j}=(0,v.useTranslation)();uN({model:_,value:n,isMultiple:M,fieldNames:x,onChange:c});let I=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>y.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:j("Add")+` “${t}” `})]})},L=u2(_,h);return(0,m.jsxs)(b.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(b.Select,{style:{width:"100%"},...y,className:[u5,g].filter(Boolean).join(" "),allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(b.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(b.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>y.onCompositionEnd(e,!1),fieldNames:x,options:S,value:uV(n,x,M),mode:M?"multiple":void 0,open:w?C:void 0,onChange:(e,t)=>{c(t)},onSelect:(e,t)=>{var l;w&&P({preventCloseOnSelect:!0,open:!0}),null==(l=y.onSelect)||l.call(y,e,t)},onDropdownVisibleChange:e=>{var t,l;if(w){if(!e&&F.preventCloseOnSelect){P({preventCloseOnSelect:!1,open:!0}),null==(l=y.onDropdownVisibleChange)||l.call(y,!0);return}P({preventCloseOnSelect:!1,open:e})}uZ(_,e),null==(t=y.onDropdownVisibleChange)||t.call(y,e)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)("div",{onMouseDown:()=>{w&&P({preventCloseOnSelect:!0})},children:(0,m.jsx)(uB,{option:t,fieldNames:x})})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:u8,children:e.label}),dropdownRender:e=>{let t=S.some(e=>e[x.label]===y.searchText);return(0,m.jsx)(m.Fragment,{children:"quickAdd"===u&&p&&h&&y.searchText?(0,m.jsxs)(m.Fragment,{children:[!(0===S.length&&y.searchText)&&e,S.length>0&&y.searchText&&!t&&(0,m.jsx)(b.Divider,{style:{margin:0}}),!t&&(0,m.jsx)(I,{searchText:y.searchText})]}):e})}}),"modalAdd"===u&&(p&&h||T)&&(p&&h?(0,m.jsx)(b.Button,{onClick:y.onModalAddClick,children:j("Add new")}):(0,m.jsx)(aQ._T,{forbidden:{actionName:"create"},collection:_.collectionField.targetCollection,message:L,children:(0,m.jsx)(b.Button,{onClick:y.onModalAddClick,disabled:!h,style:{opacity:"0.3"},children:j("Add new")})}))]})};class u3 extends uC{get collectionField(){return this.context.collectionField}onInit(e){super.onInit(e),this.context.defineProperty("collection",{get:()=>{var e;return null==(e=this.context.collectionField)?void 0:e.targetCollection}}),this.setDataSource([])}set onPopupScroll(e){this.setProps({onPopupScroll:e})}set onDropdownVisibleChange(e){this.setProps({onDropdownVisibleChange:e})}set onSearch(e){this.setProps({onSearch:e})}setDataSource(e){this.setProps({options:e})}getDataSource(){return this.props.options}getFilterValue(){var e,t;let l=uj(this.props.fieldNames,null==(e=this.context.collectionField)?void 0:e.targetCollection);return Array.isArray(this.props.value)?this.props.value.map(e=>e[l.value]):null==(t=this.props.value)?void 0:t[l.value]}onMount(){this.onModalAddClick=e=>{this.dispatchEvent("openView",{event:e,onChange:this.props.onChange})},this.onDropdownAddClick=e=>{this.dispatchEvent("dropdownAdd",{search:e,onChange:this.props.onChange})}}set onModalAddClick(e){this.setProps({onModalAddClick:e})}set onDropdownAddClick(e){this.setProps({onDropdownAddClick:e})}change(e){this.props.onChange(e)}render(){return this.context.isMobileLayout?(0,m.jsx)(uJ,{...this.props,loading:this.resource.loading}):(0,m.jsx)(u4,{...this.props})}}let u6={page:1,pageSize:40,loading:!1,hasMore:!0},u9=e=>`__search__${e}`,u7=e=>`__assoc__${e}`;async function ce(e,t){try{var l,o,n,i;let t=e.model.collectionField.targetCollection,r=uj(e.model.props.fieldNames,t).label,a=t.getField(r);if(!a)return;let s=a.getInterfaceOptions(),d=(null==s||null==(n=s.filterable)||null==(o=n.operators)||null==(l=o[0])?void 0:l.value)||"$includes",u=null==(i=e.inputArgs.searchText)?void 0:i.trim(),c=e.model.resource,p=`${r}.${d}`;""===u?c.removeFilterGroup(u9(r)):(c.setPage(1),c.addFilterGroup(u9(r),{[p]:u})),await c.refresh();let m=c.getData();e.model.setDataSource(m),m.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++),e.model.setProps({searchText:u})}catch(t){console.error("AssociationSelectField search flow error:",t),e.model.setDataSource([])}}u3.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){var l;let o=u9(uj(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).label);e.model.onDropdownVisibleChange=t=>{t?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(o),u6.page=1)},e.model.onPopupScroll=t=>{e.model.dispatchEvent("popupScroll",{event:t,apiClient:e.app.apiClient})},e.model.onSearch=t=>{e.model.dispatchEvent("search",{searchText:t,apiClient:e.app.apiClient})}}}}}),u3.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{setScope:{async handler(e,t){var l;let o=uj(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).value,n=e.model.resource,i=e.model.getDataSource();n.setPage(1),await e.model.applyFlow("selectSettings"),await n.refresh();let{count:r}=n.getMeta(),a=n.getData();(!i||r!==i.length||a[0][o]!==i[0][o])&&(e.model.setDataSource(a),e.model.setProps({searchText:null}),a.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++))}}}}),u3.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{step1:{async handler(e,t){var l;let{scrollTop:o,scrollHeight:n,clientHeight:i}=(null==(l=e.inputArgs)?void 0:l.event).target;if(!(o+i<n-20)&&!u6.loading&&u6.hasMore){u6.loading=!0;try{let t=e.model.resource;t.setPage(u6.page),await t.refresh();let l=t.getData(),o=e.model.getDataSource()||[];e.model.setDataSource([...o,...l]),l.length<u6.pageSize?(u6.hasMore=!1,u6.page=1):u6.page++}catch(e){console.error("Scroll pagination request failed:",e)}finally{u6.loading=!1}}}}}});let ct=(0,g.debounce)(ce,500);u3.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:ct}}}),u3.registerFlow({key:"recordSelectSettings",sort:200,steps:{init:{async handler(e){var t,l,o;let n=e.createResource(f.MultiRecordResource),i=e.model.context.collectionField,{target:r,dataSourceKey:a,foreignKey:s}=i;n.setDataSourceKey(a),n.setResourceName(r),n.setPageSize(u6.pageSize);let d=(null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter,u=["oho","o2m"].includes(i.interface),c=(null==(o=e.item)?void 0:o.value)||e.record,p=null==c?void 0:c[null==i?void 0:i.sourceKey],m=[];if(!d&&null!=p&&u){let e=`${s}.$eq`;m.push({[e]:p})}if(!d&&u){let e=`${s}.$is`;m.push({[e]:null})}m.length>0&&n.addFilterGroup(u7(s),{$or:m}),e.model.resource=n}},allowEditCheck:{async handler(e){if(e.blockModel instanceof d9.EditFormModel){var t;let l=await e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:null==(t=e.collectionField)?void 0:t.collectionName,actionName:"update",fields:[e.collectionField.name]});e.model.setProps({allowEdit:!!l})}}}}}),u3.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings:e=>!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type),defaultParams:e=>({allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}),handler(e,t){e.model.setProps({allowMultiple:null==t?void 0:t.allowMultiple})}},quickCreate:{title:(0,f.tExpr)("Quick create"),uiMode(e){let t=e.t;return{type:"select",key:"quickCreate",props:{options:[{label:t("None"),value:"none"},{label:t("Dropdown"),value:"quickAdd"},{label:t("Pop-up"),value:"modalAdd"}]}}},hideInSettings(e){var t,l;return!!((null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter||uX(null==e?void 0:e.model,["SubTableColumnModel","SubTableFieldModel"]))},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}}),u3.registerFlow({key:"dropdownAdd",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"dropdownAdd"},steps:{dropdownAdd:{async handler(e,t){var l,o,n;if("quickAdd"!==e.model.props.quickCreate)return null;let{onChange:i,search:r}=e.inputArgs,a=await e.model.resource.create({[(null==(o=e.model.props)||null==(l=o.fieldNames)?void 0:l.label)||"id"]:r},{refresh:!1});a&&(i(["m2m","o2m"].includes(null==(n=e.collectionField)?void 0:n.interface)&&!1!==e.model.props.allowMultiple?[...e.model.props.value||[],a.data].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey])):a.data),e.message.success(e.t("Saved successfully")),e.model.setProps({searchText:null}))}}}}),u3.registerFlow({key:"popupSettings",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"openView"},steps:{openView:{title:(0,f.tExpr)("Edit popup"),uiSchema:e=>"modalAdd"!==e.model.props.quickCreate?null:{mode:{type:"string",title:(0,f.tExpr)("Open mode"),enum:[{label:(0,f.tExpr)("Drawer"),value:"drawer"},{label:(0,f.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,f.tExpr)("Popup size"),enum:[{label:(0,f.tExpr)("Small"),value:"small"},{label:(0,f.tExpr)("Medium"),value:"medium"},{label:(0,f.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var l,o,n,i,r;let{onChange:a}=e.inputArgs,s={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},d=e.inputArgs.mode||t.mode||"drawer",u=["belongsTo","hasOne"].includes(e.collectionField.type),c=e.inputArgs.size||t.size||"medium",p=null==(l=e.collectionField)?void 0:l.collection,h=(null==(o=e.item)?void 0:o.value)??e.record,f=h?null==p||null==(n=p.getFilterByTK)?void 0:n.call(p,h):void 0,g=null==(i=e.collectionField)?void 0:i.resourceName,v=uI(e,e.inputArgs);e.viewer.open({type:d,width:s[d][c],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"create",dataSourceKey:e.collection.dataSourceKey,collectionName:null==(r=e.collectionField)?void 0:r.target,...g&&null!=f?{associationName:g,sourceId:f}:{},...g&&null==f?{sourceAssociationName:g}:{},collectionField:e.collectionField,openerUids:v,onChange:t=>{if(u||!e.model.props.allowMultiple){a(t);let l=e.model.getDataSource()||[];l.push(t),e.model.setDataSource(l)}else{let l=[...e.model.props.value||[],t].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey]));a(l);let o=e.model.getDataSource()||[];e.model.setDataSource(o.concat(l))}}},content:()=>(0,m.jsx)(u1,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===d?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}}),u3.define({label:(0,f.tExpr)("Dropdown select")}),f.EditableItemModel.bindModelToInterface("RecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,order:1});class cl extends u3{onInit(e){var t;super.onInit(e);let l=null==(t=this.getStepParams("selectSettings","allowMultiple"))?void 0:t.allowMultiple,o="boolean"==typeof l?l:"boolean"!=typeof this.props.allowMultiple||this.props.allowMultiple;this.setProps({allowMultiple:o,multiple:o,quickCreate:"none"})}}cl.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},defaultParams:{allowMultiple:!0},handler(e,t){var l;let o=null==(l=e.model.getStepParams("selectSettings","allowMultiple"))?void 0:l.allowMultiple,n="boolean"==typeof(null==t?void 0:t.allowMultiple)?t.allowMultiple:"boolean"==typeof o?o:"boolean"!=typeof e.model.props.allowMultiple||e.model.props.allowMultiple;e.model.setProps({allowMultiple:n,multiple:n})}}}}),cl.define({label:(0,f.tExpr)("Dropdown select")}),f.FilterableItemModel.bindModelToInterface("FilterFormRecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,defaultProps:{allowMultiple:!0,multiple:!0,quickCreate:"none"}});var co=__webpack_require__(6832);class cn extends uF{render(){return(0,m.jsx)(co.DateFilterDynamicComponent,{...this.props})}}let ci=e=>{let{value:t,format:l="YYYY-MM-DD",picker:o="date",showTime:n,...i}=e,r={...i,value:t,format:l,picker:o,showTime:n};return(0,m.jsx)(co.DateFilterDynamicComponent,{...r})};class cr extends cn{setProps(e){super.setProps({...e,showTime:!1,utc:!1})}render(){return(0,m.jsx)(ci,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});let ca=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",showTime:o,picker:n="date",...i}=e,r=o&&"date"===n?"YYYY-MM-DD":l;return(0,m.jsx)(co.DateFilterDynamicComponent,{...i,value:t,format:r,picker:n,showTime:o})};class cs extends cn{render(){return(0,m.jsx)(ca,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});let cd=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",picker:o="date",showTime:n,...i}=e,r=n&&"date"===o?"YYYY-MM-DD":l,a={...i,value:t,format:r,picker:o,showTime:n};return(0,m.jsx)(co.DateFilterDynamicComponent,{...a})};class cu extends cn{setProps(e){super.setProps({...e,utc:!0})}render(){return(0,m.jsx)(cd,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});let cc="recordSelectDataSourceKey",cp="recordSelectTargetCollection",cm="recordSelectTitleField",ch="recordSelectValueField",cf="allowMultiple",cg="multiple",cv="valueMode",cy=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),c_=e=>{var t,l,o,n,r;let{fieldModel:a,source:s=[]}=e,d=(0,lj.useField)(),{t:u}=(0,v.useTranslation)(),c=d.value||{},p=a||(null==c?void 0:c.fieldModel),h=(0,f.useFlowEngine)(),g=(0,f.useFlowContext)(),y=(null==g?void 0:g.dataSourceManager)||(null==h?void 0:h.dataSourceManager)||(null==g||null==(t=g.app)?void 0:t.dataSourceManager),_=(0,et.Sx)(y),x=(0,i.useCallback)(e=>(0,et.w6)(e,y),[y]),M=()=>d.value||{},w=(e,t)=>{d.setValue({...M(),[e]:t})},S=e=>{var t;(null==d||null==(t=d.form)?void 0:t.setValuesIn)&&(null==d?void 0:d.path)?d.form.setValuesIn(d.path,e):d.setValue(e)},k=e=>{var t,l,o,n;let i=`${d.path.toString()}.${e}`,r=null==(n=d.form)||null==(o=n.query)||null==(l=o.call(n,i))||null==(t=l.take)?void 0:t.call(l);return(Array.isArray(null==r?void 0:r.errors)?r.errors:[]).flatMap(e=>e?Array.isArray(e.messages)?e.messages:e.messages?[e.messages]:[]:[]).filter(Boolean)},F=e=>{let t=k(e);return t.length?{feedbackStatus:"error",feedbackText:t.join(", ")}:{}};(0,i.useEffect)(()=>{var e,t,l,o,n,i,r;let a=s.length?s:(null==c?void 0:c.source)||[];if(!a.length)return;let u=!!(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSource)?void 0:e.call(t,a[0])),m=(null==h||null==(o=h.dataSourceManager)||null==(l=o.getDataSources)?void 0:l.call(o))??[],v=(u?a[0]:void 0)||(null==c?void 0:c[cc])||(null==(n=m[0])?void 0:n.key)||"main",y=(u?a.slice(1):a).join("."),_=h.dataSourceManager.getCollectionField(`${v}.${y}`),b=f.FilterableItemModel.getDefaultBindingByField(g.model.context,_);if(!_&&"FilterFormCustomRecordSelectFieldModel"!==p||!b&&"FilterFormCustomRecordSelectFieldModel"!==p)return;let x=(null==_||null==(i=_.getComponentProps)?void 0:i.call(_))||{},w={...(b&&"function"==typeof b.defaultProps?b.defaultProps(g.model.context,d):null==b?void 0:b.defaultProps)||{},...x,...M()};if(("FilterFormCustomRecordSelectFieldModel"===p||!p&&(null==_?void 0:_.target))&&(null==_?void 0:_.target)){let e=_.targetCollection||h.dataSourceManager.getCollection(_.dataSourceKey,_.target);w[cc]=_.dataSourceKey||v,w[cp]=_.target,w[cm]=_.targetCollectionTitleFieldName||(null==e||null==(r=e.titleCollectionField)?void 0:r.name)||w[cm],w[ch]=w[ch]||(null==e?void 0:e.filterTargetKey)||"id",void 0===w[cf]&&void 0===w[cg]&&(w[cf]=!0,w[cg]=!0),w[cv]||(w[cv]="value")}S(w)},[a,p,s.join("."),null==c?void 0:c.source,h]);let C=(0,i.useMemo)(()=>{var e,t;return(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSources)?void 0:e.call(t))??[]},[h]),A=(0,i.useMemo)(()=>C.map(e=>({label:e.displayName??e.key,value:e.key})),[C]),P=(null==c?void 0:c[cc])||(null==(l=C[0])?void 0:l.key)||"main",T=P?null==h||null==(n=h.dataSourceManager)||null==(o=n.getDataSource)?void 0:o.call(n,P):void 0,j=null==c?void 0:c[cp],I=j?null==T||null==(r=T.getCollection)?void 0:r.call(T,j):void 0,L=(0,i.useCallback)(e=>e?(null==g?void 0:g.t)?g.t(e):u(e):e,[g,u]),R=(0,i.useMemo)(()=>(null==T?void 0:T.getCollections)?T.getCollections().filter(e=>{var t;return!(null==(t=e.options)?void 0:t.hidden)}).map(e=>({label:L(e.title)||e.name,value:e.name})):[],[T,L]),D=(0,i.useMemo)(()=>{if(!(null==I?void 0:I.getFields))return[];let e=e=>{if(!_)return!0;let t=(null==e?void 0:e.options)||e;return(0,et.w)(x(null==t?void 0:t.interface))};return(I.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:L(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||L(e.title)||e.name,value:e.name}})},[I,x,_,L]),E=(0,i.useMemo)(()=>{if(!(null==I?void 0:I.getFields))return[];let e=e=>{let t=(null==e?void 0:e.options)||{},l=t.interface||(null==e?void 0:e.interface);if(!1===t.filterable||!l)return!1;if(_){let e=x(l);if(!(null==e?void 0:e.filterable))return!1}let o=t.type||(null==e?void 0:e.type);return!cy.has(o)};return(I.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:L(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||L(e.title)||e.name,value:e.name}})},[I,x,_,L]);if((0,i.useEffect)(()=>{var e;if("FilterFormCustomRecordSelectFieldModel"!==p||!j||(null==c?void 0:c[cm]))return;let t=null==I||null==(e=I.titleCollectionField)?void 0:e.name;t&&d.setValue({...M(),[cm]:t})},[a,p,j,I,c]),(0,i.useEffect)(()=>{if("FilterFormCustomRecordSelectFieldModel"!==p||!j)return;let e=null==c?void 0:c[ch],t=E.map(e=>e.value);if(e&&t.includes(e))return;let l=null==I?void 0:I.filterTargetKey,o=l&&t.includes(l)&&l||t[0];o&&d.setValue({...M(),[ch]:o})},[a,p,j,I,c,E]),(0,i.useEffect)(()=>{"FilterFormCustomRecordSelectFieldModel"!==p||(null==c?void 0:c[cf])===void 0&&(null==c?void 0:c[cg])===void 0&&d.setValue({...M(),[cf]:!0,[cg]:!0})},[a,p,c]),"DateTimeFilterFieldModel"===a)return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(il.FormItem,{label:u("Date format"),children:(0,m.jsxs)(b.Radio.Group,{value:c.format||"YYYY-MM-DD",onChange:e=>w("format",e.target.value),children:[(0,m.jsx)(b.Radio,{value:"YYYY/MM/DD",children:u("Year/Month/Day")}),(0,m.jsx)(b.Radio,{value:"YYYY-MM-DD",children:u("Year-Month-Day")}),(0,m.jsx)(b.Radio,{value:"DD/MM/YYYY",children:u("Day/Month/Year")})]})}),(0,m.jsx)(il.FormItem,{label:u("Time"),children:(0,m.jsx)(b.Checkbox,{checked:c.showTime,onChange:e=>w("showTime",e.target.checked),children:u("Show time")})}),(0,m.jsx)(il.FormItem,{label:u("Date range"),children:(0,m.jsx)(b.Checkbox,{checked:c.isRange,onChange:e=>w("isRange",e.target.checked),children:u("Show date range")})})]});if("SelectFieldModel"===a){let e=c.options||[];return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(il.FormItem,{label:u("Mode"),children:(0,m.jsxs)(b.Radio.Group,{value:c.mode||"",onChange:e=>w("mode",e.target.value),children:[(0,m.jsx)(b.Radio,{value:"",children:u("Single select")}),(0,m.jsx)(b.Radio,{value:"multiple",children:u("Multiple select")})]})}),(0,m.jsx)(il.FormItem,{label:u("Options"),children:(0,m.jsxs)(b.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(b.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let n=[...e];n[l]={...t,label:o.target.value},w("options",n)}}),(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let n=[...e];n[l]={...t,value:o.target.value},w("options",n)}}),(0,m.jsx)(b.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{w("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(b.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{w("options",[...e,{label:"",value:""}])},children:u("Add")})]})})]})}if("CheckboxGroupFieldModel"===a||"RadioGroupFieldModel"===a){let e=c.options||[];return(0,m.jsx)(il.FormItem,{label:u("Options"),children:(0,m.jsxs)(b.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(b.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let n=[...e];n[l]={...t,label:o.target.value},w("options",n)}}),(0,m.jsx)(b.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let n=[...e];n[l]={...t,value:o.target.value},w("options",n)}}),(0,m.jsx)(b.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{w("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(b.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{w("options",[...e,{label:"",value:""}])},children:u("Add")})]})})}return"FilterFormCustomRecordSelectFieldModel"===p?(0,m.jsxs)(m.Fragment,{children:[A.length>1&&(0,m.jsx)(il.FormItem,{label:u("Data source"),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:P,options:A,onChange:e=>{d.setValue({...c,[cc]:e,[cp]:void 0,[cm]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Target collection"),asterisk:!0,...F(cp),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Select collection"),value:j,options:R,onChange:e=>{d.setValue({...c,[cp]:e,[cm]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Title field"),asterisk:!0,...F(cm),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cm],options:D,onChange:e=>w(cm,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Used for display in the dropdown and selected tags.")}),(0,m.jsx)(il.FormItem,{label:u("Value field"),asterisk:!0,...F(ch),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[ch],options:E,onChange:e=>w(ch,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Stored as the field value for filtering (usually the primary key).")}),(0,m.jsx)(il.FormItem,{label:u("Multiple"),children:(0,m.jsx)(b.Checkbox,{checked:(null==c?void 0:c[cf])!==!1,onChange:e=>{let t=e.target.checked;d.setValue({...c,[cf]:t,[cg]:t})},children:u("Allow multiple selection")})})]}):null};function cb(e){let{source:t=[],onChange:l}=e,o=(0,f.useFlowEngine)(),n=(0,f.useFlowContext)(),r=e.valueMap||{},a=t.join("."),s=(0,i.useRef)(),d=(0,i.useMemo)(()=>e=>r&&r[e]?r[e]:e,[r]),u=(0,i.useMemo)(()=>{if(!t.length)return;let e=o.dataSourceManager.getCollectionField(a),l=f.FilterableItemModel.getDefaultBindingByField(n.model.context,e);if(l)return d(l.modelName)},[a,d]);return(0,i.useEffect)(()=>{if(!u){s.current=a;return}let t=void 0!==s.current&&s.current!==a;s.current=a;let o=d(e.value);if(e.value&&e.value!==o&&o!==u){null==l||l(o);return}(!e.value||t)&&o!==u&&(null==l||l(u))},[u,l,e.value,a,d]),(0,m.jsx)(il.Select,{allowClear:!0,...e,value:d(e.value??u)})}let cx={InputFieldModel:et.II.string,NumberFieldModel:et.II.number,DateTimeFilterFieldModel:et.II.datetime,SelectFieldModel:e=>(null==e?void 0:e.mode)==="multiple"?et.II.array:et.II.enumType,RadioGroupFieldModel:et.II.enumType,CheckboxGroupFieldModel:et.II.array},cM=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),cw={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cS={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},ck={input:et.II.string,email:et.II.string,phone:et.II.string,uuid:et.II.string,url:et.II.string,nanoid:et.II.string,textarea:et.II.string,markdown:et.II.bigField,vditor:et.II.bigField,richText:et.II.bigField,password:et.II.string,color:et.II.string,number:et.II.number,integer:et.II.number,id:et.II.id,snowflakeId:et.II.number,dateOnly:et.II.datetime,datetime:et.II.datetime,datetimeNoTz:et.II.datetime,unixTimestamp:et.II.datetime,time:et.II.time,select:et.II.enumType,multipleSelect:et.II.array,radioGroup:et.II.enumType,checkboxGroup:et.II.array,checkbox:et.II.boolean};function cF(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=cx[e];return l?"function"==typeof l?l(t)||[]:l||[]:[]}function cC(e){var t,l,o,n;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;if(!Array.isArray(i)||0===i.length)return;let a=!!(null==e||null==(l=e.dataSourceManager)||null==(t=l.getDataSource)?void 0:t.call(l,i[0])),s=a?i[0]:r||"main",d=(a?i.slice(1):i).join(".");if(d)return null==e||null==(n=e.dataSourceManager)||null==(o=n.getCollectionField)?void 0:o.call(n,`${s}.${d}`)}function cA(e){var t,l,o,n;let i;if(!e)return[];let r=null==(t=e.filterable)?void 0:t.operators;if(Array.isArray(r)&&r.length>0)return r;try{i=null==(n=e.getInterfaceOptions)||null==(o=n.call(e))||null==(l=o.filterable)?void 0:l.operators}catch(e){i=void 0}return Array.isArray(i)&&i.length>0?i:e.interface&&ck[e.interface]?ck[e.interface]:(null===et.II||void 0===et.II?void 0:et.II[e.type])||[]}function cP(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return"boolean"==typeof(null==e?void 0:e.multiple)?e.multiple:"boolean"!=typeof(null==e?void 0:e.allowMultiple)||e.allowMultiple}function cT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Set;return e.filter(e=>!(!(null==e?void 0:e.value)||t.has(e.value))&&(t.add(e.value),!0))}function cj(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.some(e=>(null==e?void 0:e.value)==="$in"),l=e.some(e=>(null==e?void 0:e.value)==="$notIn"),o=e.filter(e=>cM.has(null==e?void 0:e.value)&&(null==e?void 0:e.value)!=="$in"&&(null==e?void 0:e.value)!=="$notIn"||(null==e?void 0:e.noValue)||(null==e?void 0:e.value)==="$exists"||(null==e?void 0:e.value)==="$notExists"),n=e.some(e=>(null==e?void 0:e.value)&&!e.noValue&&"$exists"!==e.value&&"$notExists"!==e.value),i=n||t,r=n||l,a=[];return i&&a.push(cw),r&&a.push(cS),cT([...a,...o])}function cI(e){var t,l,o,n,i;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s=cC(e,a,null==r?void 0:r.recordSelectDataSourceKey),d=(null==s?void 0:s.dataSourceKey)||(null==a?void 0:a[0])||"main",u=(null==r?void 0:r.recordSelectDataSourceKey)||d,c=(null==r?void 0:r.recordSelectTargetCollection)||(null==s||null==(t=s.targetCollection)?void 0:t.name)||(null==s?void 0:s.target);if(!c)return;let p=null==e||null==(o=e.dataSourceManager)||null==(l=o.getCollection)?void 0:l.call(o,u,c);if(!p)return;let m=(null==r?void 0:r.recordSelectValueField)||(null==p?void 0:p.filterTargetKey)||(null==p||null==(n=p.getPrimaryKey)?void 0:n.call(p));if(m)return null==(i=p.getField)?void 0:i.call(p,m)}function cL(e){let{flowEngine:t,fieldModelProps:l={},source:o=[]}=e,n=cI(t,l,o),i=cA(n);return{operatorList:cP(l)?cj(i):i,meta:n}}function cR(e){let{flowEngine:t,fieldModel:l,fieldModelProps:o={},source:n=[]}=e;if("FilterFormCustomRecordSelectFieldModel"===l)return cL(e);let i=cC(t,n);if("SelectFieldModel"===l&&(null==o?void 0:o.mode)==="multiple"&&i){let e=cA(i);return{operatorList:a0(i)?cF(l,o):cj(e),meta:i}}let r=cF(l,o);return r.length>0?{operatorList:r,meta:{fieldModel:l}}:{operatorList:cA(i),meta:i}}function cD(e){let{operatorList:t,meta:l}=cR(e);return cT((t||[]).filter(e=>!(null==e?void 0:e.visible)||e.visible(l)))}function cE(e){var t,l;let{fieldModel:o,fieldModelProps:n={}}=e,i=cD(e);if("DateTimeFilterFieldModel"===o&&(null==n?void 0:n.isRange)){let e=i.find(e=>"$dateBetween"===e.value);if(e)return e.value}return(null==(t=i.find(e=>e.selected))?void 0:t.value)||(null==(l=i[0])?void 0:l.value)}function cY(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return e.map(e=>({...e,label:t(e.label),value:e.value}))}let cN=(0,f.observer)(e=>{var t;let{fieldModel:l,source:o=[],fieldModelProps:n={},value:r,onChange:a,...s}=e,d=(0,lj.useField)(),u=(0,f.useFlowEngine)(),c=(0,f.useFlowContext)(),p=(null==d||null==(t=d.form)?void 0:t.values)||{},h=l||(null==p?void 0:p.fieldModel),g=o.length?o:(null==p?void 0:p.source)||[],v=(null==p?void 0:p.fieldModelProps)&&Object.keys(p.fieldModelProps).length>0?p.fieldModelProps:n,y=Array.isArray(g)?g.join("."):"",_=null==v?void 0:v.mode,b=null==v?void 0:v.allowMultiple,x=null==v?void 0:v.multiple,M=null==v?void 0:v.recordSelectDataSourceKey,w=null==v?void 0:v.recordSelectTargetCollection,S=null==v?void 0:v.recordSelectValueField,k=(0,i.useMemo)(()=>cD({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v}),[u,h,y,_,b,x,M,w,S]),F=(0,i.useMemo)(()=>cY(k,e=>c.t(e)),[k,c]);return(0,i.useEffect)(()=>{if(!F.length){void 0!==r&&(null==a||a(void 0));return}if(F.some(e=>e.value===r))return;let e=cE({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v});e!==r&&(null==a||a(e))},[u,h,a,F,y,r,_,b,x,M,w,S]),(0,m.jsx)(il.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c.t("Please select"),...s,options:F,value:r,onChange:a,disabled:0===F.length})});class cO extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FilterFormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o;let[n,i]=t,r={key:n,label:e.t(i.meta.label),sort:i.meta.sort??999,searchable:!!(null==(l=i.meta)?void 0:l.searchable),searchPlaceholder:null==(o=i.meta)?void 0:o.searchPlaceholder};return r.createModelOptions={use:n},r});return g.default.sortBy([...o(t),...o(l)],"sort")}}function cB(e){let t=(0,f.useFlowEngine)(),l=(0,i.useCallback)(()=>{let e=null==t?void 0:t.dataSourceManager;return e?e.getDataSources().map(e=>({value:e.key,label:e.displayName??e.key,isLeaf:!1,meta:{type:"dataSource",dataSourceKey:e.key}})):[]},[t]),[o,n]=(0,i.useState)(()=>l());(0,i.useEffect)(()=>{n(l())},[l]);let r=(0,i.useCallback)(e=>{var l;let o=e[e.length-1];if(!o||(null==(l=o.children)?void 0:l.length))return;let i=null==t?void 0:t.dataSourceManager;if(!i)return;let r=[];if(1===e.length){let e=o.value,t=i.getDataSource(e);r=((null==t?void 0:t.getCollections())??[]).map(t=>({value:t.name,label:t.title,isLeaf:!1,meta:{type:"collection",dataSourceKey:e,collectionName:t.name,fullPath:t.name}}))}else{let e=o.meta||{},t=e.dataSourceKey,l=i.getDataSource(t),a=null==l?void 0:l.collectionManager;if(!l||!a){o.isLeaf=!0,n(e=>[...e]);return}if("collection"===e.type){let l=a.getCollection(e.collectionName);r=((null==l?void 0:l.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,n=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!n,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}else if("field"===e.type){let o=l.getCollectionField(e.fullPath),n=null==o?void 0:o.targetCollection;r=((null==n?void 0:n.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,n=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!n,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}}r.length?o.children=r:o.isLeaf=!0,n(e=>[...e])},[t]);return(0,m.jsx)(b.Cascader,{allowClear:!0,...e,options:o,loadData:r})}cO.renderMode=f.ModelRenderMode.RenderFunction,cO.define({hide:!0,label:(0,f.tExpr)("Others")});var cV=__webpack_require__(6175);let cH=(e,t,l)=>{var o,n,i;if((null==l||null==(n=l.form)||null==(o=n.values)?void 0:o.fieldModel)==="FilterFormCustomRecordSelectFieldModel"&&(null==e||""===e))return(null==l||null==(i=l.t)?void 0:i.call(l,"The field value is required"))||"The field value is required"};class cq extends cO{buildRecordSelectCollectionField(e,t){var l,o,n,i,r,a;let s=(null==t?void 0:t.recordSelectDataSourceKey)||"main",d=null==t?void 0:t.recordSelectTargetCollection;if(!d)return;let u=null==(o=e.dataSourceManager)||null==(l=o.getDataSource)?void 0:l.call(o,s),c=null==u||null==(n=u.getCollection)?void 0:n.call(u,d);if(!u||!c)return;let p=(null==t?void 0:t.recordSelectTitleField)||(null==(i=c.titleCollectionField)?void 0:i.name)||(null==(a=c.titleCollectionField)||null==(r=a.options)?void 0:r.name),m=(null==t?void 0:t.recordSelectValueField)||c.filterTargetKey||"id",h=new f.CollectionField({name:(null==t?void 0:t.name)||"recordSelect",interface:"m2o",type:"belongsTo",target:d,dataSourceKey:s,uiSchema:{"x-component":"Select"},fieldNames:{label:p,value:m}});return h.setCollection(c),h}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}onInit(e){super.onInit(e),this.debouncedDoFilter=(0,g.debounce)(this.doFilter.bind(this),300)}onUnmount(){super.onUnmount(),this.debouncedDoFilter.cancel()}doFilter(){this.context.filterManager.refreshTargetsByFilter(this.uid)}doReset(){this.context.filterManager.refreshTargetsByFilter(this.uid)}getFilterValue(){var e,t,l,o;let n=(null==(e=this.customFieldModelInstance)?void 0:e.getFilterValue)?this.customFieldModelInstance.getFilterValue():null==(t=this.context.form)?void 0:t.getFieldValue(this.props.name),i=this.getCurrentOperatorMeta(),r=(0,cV.S)(this.operator,n);return(null==i?void 0:i.noValue)&&!Array.isArray(null==i||null==(o=i.schema)||null==(l=o["x-component-props"])?void 0:l.options)||r}getCurrentOperatorMeta(){let e=this.getStepParams("formItemSettings","fieldSettings")||{},t=e.fieldModel,l=e.source||[],o=this.customFieldProps||e.fieldModelProps||{},n=cD({flowEngine:this.flowEngine,fieldModel:t,source:l,fieldModelProps:o}),i=this.operator||e.operator;return i&&n.find(e=>e.value===i)||null}getValueProps(e){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,g.isEqual)(this.lastAutoTriggerValue,e)||(this.lastAutoTriggerValue=(0,g.cloneDeep)(e),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,g.cloneDeep)(e))),{value:e,onKeyDown:this.handleEnterPress.bind(this)}}render(){return this.customFieldModelInstance?(0,m.jsx)(f.FormItem,{...this.props,getValueProps:this.getValueProps.bind(this),children:(0,m.jsx)(f.FieldModelRenderer,{model:this.customFieldModelInstance})}):null}constructor(...e){super(...e),this.customFieldModelInstance=null,this.customFieldProps=null,this.autoTriggerInitialized=!1,this.handleEnterPress=e=>{"Enter"===e.key&&(e.preventDefault(),this.doFilter())}}}cq.define({label:'{{t("Custom field")}}',sort:1}),cq.registerFlow({key:"formItemSettings",title:(0,f.tExpr)("Form item settings"),steps:{fieldSettings:{preset:!0,title:(0,f.tExpr)("Field settings"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},name:{type:"string",title:(0,f.tExpr)("Field name"),"x-component":"Input","x-decorator":"FormItem",required:!0,description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")}}'},source:{type:"array",title:(0,f.tExpr)("Field source"),"x-decorator":"FormItem","x-component":cB,"x-component-props":{placeholder:(0,f.tExpr)("Select a source field to use metadata of the field")},description:(0,f.tExpr)("Select a source field to use metadata of the field")},fieldModel:{type:"string",title:(0,f.tExpr)("Field type"),"x-component":cb,"x-decorator":"FormItem",required:!0,enum:[{label:(0,f.tExpr)("Input"),value:"InputFieldModel"},{label:(0,f.tExpr)("Number"),value:"NumberFieldModel"},{label:(0,f.tExpr)("Date"),value:"DateTimeFilterFieldModel"},{label:(0,f.tExpr)("Select"),value:"SelectFieldModel"},{label:(0,f.tExpr)("Radio group"),value:"RadioGroupFieldModel"},{label:(0,f.tExpr)("Checkbox group"),value:"CheckboxGroupFieldModel"},{label:(0,f.tExpr)("Record select"),value:"FilterFormCustomRecordSelectFieldModel"}],"x-component-props":{placeholder:(0,f.tExpr)("Please select"),valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}},"x-reactions":[{dependencies:["source"],fulfill:{state:{componentProps:{source:"{{$deps[0]}}",valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}}}}}]},fieldModelProps:{type:"object",title:(0,f.tExpr)("Component properties"),"x-component":c_,properties:{recordSelectTargetCollection:{type:"string","x-validator":cH},recordSelectTitleField:{type:"string","x-validator":cH},recordSelectValueField:{type:"string","x-validator":cH}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,f.tExpr)("Operator"),"x-component":cN,"x-decorator":"FormItem",required:!0,"x-reactions":[{dependencies:["fieldModel","source","fieldModelProps"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}",fieldModelProps:"{{$deps[2] || {}}}"}}}}]}},defaultParams:e=>({name:`f_${(0,I.uid)().slice(0,4)}`}),handler(e,t){var l,o;let n,{fieldModel:i,fieldModelProps:r={},title:a,name:s,source:d=[],operator:u}=t;e.model.setProps({label:a,name:s});let c=r;if("FilterFormCustomRecordSelectFieldModel"===i){let t=(null==r?void 0:r.allowMultiple)===void 0||!!(null==r?void 0:r.allowMultiple),o=(null==r?void 0:r.multiple)===void 0?t:!!(null==r?void 0:r.multiple);if(c={...r,allowMultiple:t,multiple:o,valueMode:(null==r?void 0:r.valueMode)||"value"},n=e.model.buildRecordSelectCollectionField(e,{...c,name:s})){let e=(null==r?void 0:r.recordSelectTitleField)||n.targetCollectionTitleFieldName,t=(null==r?void 0:r.recordSelectValueField)||(null==(l=n.targetCollection)?void 0:l.filterTargetKey)||"id";e&&t&&(c={...c,fieldNames:{label:e,value:t}})}}if(e.model.customFieldModelInstance?e.model.customFieldModelInstance.setProps({allowClear:!0,...c}):e.model.customFieldModelInstance=e.model.flowEngine.createModel({use:i,props:{allowClear:!0,...c}}),"FilterFormCustomRecordSelectFieldModel"===i){let t=(null==c?void 0:c.recordSelectTitleField)||(null==c||null==(o=c.fieldNames)?void 0:o.label);t&&e.model.customFieldModelInstance.setStepParams("selectSettings","fieldNames",{label:t})}n&&e.model.customFieldModelInstance.context.defineProperty("collectionField",{value:n});let p=!!cD({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}).find(e=>e.value===u);e.model.operator=(p?u:void 0)||cE({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}),e.model.customFieldProps=c}},connectFields:{use:"connectFields"}}});let c$="__filter_form_value_options__",cz=(e,t)=>null!=e&&""!==e&&("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&(!t||!/(int|big)/i.test(t)||/^-?\d+$/.test(e))),cU=(e,t)=>{if("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},cK=(e,t,l,o,n,i)=>{let r=new Map;t.forEach(e=>{if(!e||"object"!=typeof e)return;let t=null==e?void 0:e[o],n=null==e?void 0:e[l];null!=t&&null!=n&&r.set(t,n)});let a=e=>{if(null==e)return;if("object"==typeof e){let t=null==e?void 0:e[l];if(null!=t)return t;let n=(null==e?void 0:e[o])??(null==e?void 0:e.value);if(o===l)return n;let a=r.get(n);return null!=a?a:cU(n,i)}if(o===l)return e;let t=r.get(e);return null!=t?t:cU(e,i)};return(n&&Array.isArray(e)?e:[e]).map(e=>a(e)).filter(e=>cz(e,i))},cG=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments.length>2?arguments[2]:void 0,o=new Map;return[...e,...t].forEach(e=>{let t=null==e?void 0:e[l];null!=t&&o.set(t,e)}),Array.from(o.values())},cW=(e,t)=>{var l,o;let n=null==e||null==(l=e.context)?void 0:l.collectionField,r=null==n?void 0:n.collection,a=null==r?void 0:r.dataSource,s=null==e||null==(o=e.context)?void 0:o.t,d=(null==n?void 0:n.name)||e.fieldPath,u=(0,i.useMemo)(()=>{if(!s||!a)return"";let e=`${s(a.displayName||a.key)} > `,t=r?`${s(r.title)||r.name||r.tableName} > `:"";return`${e}${t}${d}`},[s,a,r,d]);return!t&&s&&a?s('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:u,actionName:"Update"}).replaceAll("&gt;",">"):null},cJ=e=>{var t;let{fieldNames:l={label:"label",value:"value"},value:o,multiple:n,allowMultiple:i,options:r,quickCreate:a,onChange:s,allowCreate:d=!0,allowEdit:u=!0,valueMode:c="record",...p}=e,h=!!(n&&i),g=uH(r,o,h),y=(0,f.useFlowModel)(),_=!!y.context.flowSettingsEnabled,{t:x}=(0,v.useTranslation)(),M=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>p.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:x("Add")+` “${t}” `})]})},w=cW(y,u);return(0,m.jsxs)(b.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(b.Select,{style:{width:"100%"},...p,allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(b.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(b.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>p.onCompositionEnd(e,!1),fieldNames:l,options:g,value:uV(o,l,h,c,g),mode:h?"multiple":void 0,onChange:(e,t)=>{"value"===c?Array.isArray(t)?s(t.map(e=>(null==e?void 0:e[l.value])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):s((null==t?void 0:t[l.value])??(null==t?void 0:t.value)):s(t)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)(uB,{option:t,fieldNames:l})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:(0,A.css)`
889
889
  div {
890
890
  white-space: nowrap !important;
891
891
  overflow: hidden;
@@ -898,7 +898,7 @@ if (!ctx.record) {
898
898
  `);i.default.useEffect(()=>{o(e.options||[])},[n]);let a=i.default.useMemo(()=>new Set((Array.isArray(e.value)?e.value:[]).map(e=>e.join("."))),[e.value]),s=(t,l)=>{var o,n;let i=null==t||null==(o=t.meta)?void 0:o.fullPath;if(!i)return;let r=new Set(a);l?r.add(i):r.delete(i);let s=Array.from(r).map(e=>e.split("."));null==(n=e.onChange)||n.call(e,s)},d=e=>{var t;let l=null==e||null==(t=e.meta)?void 0:t.fullPath,o=!!(null==e?void 0:e.isLeaf),n=!!l&&a.has(l);return(0,m.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"},children:[(0,m.jsx)("span",{children:e.label}),o?(0,m.jsx)(b.Switch,{size:"small",checked:n,onClick:(e,t)=>{var l;return null==t||null==(l=t.stopPropagation)?void 0:l.call(t)},onChange:(t,l)=>{var o;null==l||null==(o=l.stopPropagation)||o.call(l),s(e,t)}}):null]})},u=e.displayRender||((e,t)=>{var l;let o=null==t?void 0:t[t.length-1],n=null==o||null==(l=o.meta)?void 0:l.fullLabel;return n||e.join(" / ")}),c=async e=>{var l,n,i,r;let a=e[e.length-1];if(!a||(null==(l=a.children)?void 0:l.length))return;let s=a.meta||{},d=s.field,u=s.fullPath;if(!d||!u){a.isLeaf=!0,o(e=>[...e]);return}let c=(null==(n=d.filterable)?void 0:n.children)||[],p=[];if(c.length?p=c:d.targetCollection&&(p=(null==(i=(r=d.targetCollection).getFields)?void 0:i.call(r))||[]),!p.length){a.isLeaf=!0,o(e=>[...e]);return}a.children=pW(t,p,u,[],s.fullLabel||a.label,s.associationDepth||0),o(e=>[...e])};return(0,m.jsx)(b.Cascader,{allowClear:!0,...e,options:l,loadData:c,displayRender:u,optionRender:d,popupClassName:r})}let pQ=(0,f.defineAction)({name:"defaultOperator",title:(0,f.tExpr)("Default operator"),uiMode:e=>({type:"select",key:"value",props:{options:pZ(e.model)}}),defaultParams(e){let t=pZ(e.model);return{value:t.length>0?t[0].value:""}},handler(e,t){e.model.operator=t.value}});function pZ(e){let t=e.context.collectionField||e.context.filterField;return a9(e).filter(e=>!e.visible||e.visible(t)).map(t=>({...t,label:"string"==typeof t.label?e.translate(t.label):t.label}))}var p0=__webpack_require__(7720);function p1(e){var t;let l=e.operator,o=null==(t=e.subModels)?void 0:t.field;if(!o)return;if(e.setProps({key:`${e.uid}-${l||""}`}),!l)return void(0,p0.i2)(o);let n=a9(e);(0,p0.sI)({app:e.context.app,fieldModel:o,operator:l,operators:n,propsPriority:"field"})}let p2=(0,f.defineAction)({name:"customizeFilterRender",handler(e){p1(e.model)}});function p5(e){var t,l;let o=a7(e,e.operator);if(!o)return;let n=null==o||null==(t=o.schema)?void 0:t["x-component-props"];if(!n)return;let i=null==(l=e.subModels)?void 0:l.field;(null==i?void 0:i.setProps)&&i.setProps(n)}let p8=(0,f.defineAction)({name:"operatorComponentProps",handler(e){p5(e.model)}});var p4=__webpack_require__(4084);class p3 extends dG.F4{createResource(e,t){let l=this.context.createResource(f.SingleRecordResource);return l.isNewRecord=!0,l}getAclActionName(){return"create"}async submitHandler(e,t,l){await (0,p4.submitHandler)(e,t,l)}async submit(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;await (0,p4.submitHandler)(this.context,e,t)}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n}=this.props,i=!!this.context.flowSettingsEnabled,{heightMode:r,height:a}=this.decoratorProps;return(0,m.jsx)(dG.JU,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n},heightMode:r,height:a,grid:(0,m.jsx)(f.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,m.jsx)(f.DndProvider,{children:(0,m.jsxs)(b.Space,{wrap:!0,children:[this.mapSubModels("actions",e=>{if(!e.hidden||i)return(0,m.jsx)(f.Droppable,{model:e,children:(0,m.jsx)(f.MemoFlowModelRenderer,{model:e,showFlowSettings:!!this.context.flowSettingsEnabled&&this.actionFlowSettings,extraToolbarItems:this.actionExtraToolbarItems},e.uid)},e.uid)}),this.renderConfigureActions()]})})})}constructor(...e){super(...e),this.actionFlowSettings={showBackground:!1,showBorder:!1,toolbarPosition:"above"},this.actionExtraToolbarItems=[{key:"drag-handler",component:f.DragHandler,sort:1}]}}p3.scene=sC.P.new,p3.blockCapabilityActionName="create",p3.registerFlow({key:"formSettings",title:(0,f.tExpr)("Form settings"),steps:{init:{async handler(e){if(!e.resource)throw Error("Resource is not initialized")}},refresh:{}}}),p3.define({label:(0,f.tExpr)("Form (Add new)"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search"),createModelOptions:{use:"CreateFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:350});class p6 extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o,n,i,r;let[a,s]=t,d="function"==typeof s.defineChildren||!!(null==(l=s.meta)?void 0:l.children),u={key:a,label:e.t(s.meta.label),sort:s.meta.sort??999,searchable:!!(null==(o=s.meta)?void 0:o.searchable),searchPlaceholder:null==(n=s.meta)?void 0:n.searchPlaceholder,hide:null==(i=s.meta)?void 0:i.hide};return d?u.children=e=>{var t;return"function"==typeof s.defineChildren?s.defineChildren(e):(null==(t=s.meta)?void 0:t.children)||[]}:u.createModelOptions=(null==(r=s.meta)?void 0:r.createModelOptions)||{use:a},u});return g.default.sortBy([...o(t),...o(l)],"sort")}}p6.renderMode=f.ModelRenderMode.RenderFunction,p6.define({hide:!0,label:(0,f.tExpr)("Others")});class p9 extends f.FlowModel{static defineChildren(e){return uS(e,{useModel:"FormItemModel",fieldUseModel:"JSEditableFieldModel",associationPathName:e.prefixFieldPath,refreshTargets:["FormItemModel","FilterFormItemModel"]})}}p9.define({label:(0,f.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),menuType:"submenu",sort:110});class p7 extends d_{}p7.define({label:(0,f.tExpr)("JS action"),sort:9999}),p7.registerFlow({key:"clickSettings",on:"click",title:(0,f.tExpr)("Click settings"),steps:{runJs:{title:(0,f.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":dm.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`
899
899
  const values = ctx.form?.getFieldsValue?.() || {};
900
900
  ctx.message.success('Current form values: ' + JSON.stringify(values));
901
- `}),async handler(e,t){let{code:l,version:o}=dh(e,t);e.defineMethod("refresh",async()=>{var t,l,o;(null==(l=e.blockModel)||null==(t=l.resource)?void 0:t.refresh)?await e.blockModel.resource.refresh():(null==(o=e.resource)?void 0:o.refresh)&&await e.resource.refresh()}),await e.runjs(l,void 0,{version:o})}}}});let me="dataScope",mt="tableColumnSettings",ml="quickEditDataScope";function mo(e){var t,l;let o=null==e||null==(l=e.globalFlowRegistry)||null==(t=l.getFlows)?void 0:t.call(l);if(!o)return null;for(let[e,t]of o)for(let[l,o]of Object.entries((null==t?void 0:t.steps)||{}))if((null==o?void 0:o.use)===me)return{flowKey:e,stepKey:l};return null}function mn(e,t){var l,o,n;if(!(null==t||null==(l=t.isAssociationField)?void 0:l.call(t)))return null;let i=un.getDefaultBindingByField(e,t);return(null==i?void 0:i.modelName)?mo(null==(n=e.engine)||null==(o=n.getModelClass)?void 0:o.call(n,i.modelName)):null}function mi(e){return!e||!Array.isArray(e.items)||0===e.items.length}function mr(e){var t;let l=null==e?void 0:e.parent,o=null==l||null==(t=l.getStepParams)?void 0:t.call(l,mt,ml),n=null==o?void 0:o.filter;return mi(n)?void 0:n}function ma(e){let t=e.context.collectionField,l=()=>(null==t?void 0:t.targetCollection)??null,o=()=>e.context.collection??null;return(0,f.createEphemeralContext)(e.context,{defineProperties:{collection:{get:l,meta:(0,f.createCollectionContextMeta)(l,"Current collection")},record:{get:()=>void 0,meta:(0,f.createCurrentRecordMetaFactory)(e.context,o)}}})}function ms(e){let[t,l]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let t=!1;return(async()=>{let o=await ma(e);t||l(new Proxy(e,{get(e,t,l){if("context"===t)return o;let n=Reflect.get(e,t,l);return"function"==typeof n?n.bind(e):n}}))})(),()=>{t=!0}},[e]),t}function md(e){let t=ms((0,f.useFlowSettingsContext)().model),l=(0,i.useCallback)(()=>(null==t?void 0:t.context.getPropertyMetaTree())??[],[t]);return t?(0,m.jsx)(rO.I8,{value:e.value,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t,rightAsVariable:!0,rightMetaTree:l})}):(0,m.jsx)(b.Skeleton.Input,{active:!0,size:"small"})}let mu="calc(100vh - 96px)",mc="calc(100vh - 160px)",mp="min(480px, calc(100vh - 320px))",mm="50vh",mh="calc(50vh - var(--nb-mobile-page-header-height, 40px) - 132px)",mf="8px var(--nb-mobile-page-tabs-content-padding, 12px) 0",mg="8px var(--nb-mobile-page-tabs-content-padding, 12px) calc(80px + env(safe-area-inset-bottom, 0px))",mv="(max-width: 768px)",my=["SelectFieldModel","RecordSelectFieldModel","CascadeSelectFieldModel","CascadeSelectListFieldModel"];function m_(e,t){let l={...e.getComponentProps(),...t||{}};return["markdown","vditor"].includes(e.interface)&&null==l.height&&(l.height=mp),l}function mb(e,t){var l,o;let n=null==t||null==(l=t.context)?void 0:l.isMobileLayout;if("boolean"==typeof n)return{isMobileLayout:n,inheritsMobileContext:n};let i=null==(o=e.context)?void 0:o.isMobileLayout;return"boolean"==typeof i?{isMobileLayout:i,inheritsMobileContext:i}:"u"<typeof window||"function"!=typeof window.matchMedia?{isMobileLayout:!1,inheritsMobileContext:!1}:{isMobileLayout:window.matchMedia(mv).matches,inheritsMobileContext:!1}}function mx(e,t,l,o,n,i){var r,a;let s=null==n||null==(a=n.parent)||null==(r=a.props)?void 0:r.title;if(s)return s;let d=null==i?void 0:i.title;if(d)return d;let u=e.context.dataSourceManager.getCollectionField(`${t}.${l}.${o}`);return(null==u?void 0:u.title)||o}function mM(e){let t=!1,l=e.beforeClose,o=async e=>(!t||!!(null==e?void 0:e.force))&&!1!==await (null==l?void 0:l(e));return e.beforeClose=o,{...e,close:(t,l)=>e.close(t,l),update(l){var o;return Object.prototype.hasOwnProperty.call(l,"preventClose")&&(t=!!l.preventClose),null==(o=e.update)?void 0:o.call(e,l)},get beforeClose(){return e.beforeClose},set beforeClose(value){l=value,e.beforeClose=o}}}class mw extends f.FlowModel{get form(){return this.context.form}useHooksBeforeRender(){let[e]=b.Form.useForm();this.context.defineProperty("form",{get:()=>e})}static async open(e){let{flowEngine:t,target:l,dataSourceKey:o,collectionName:n,fieldPath:i,filterByTk:r,record:a,onSuccess:s,fieldProps:d,onOk:u,sourceFieldModelUid:c}=e,p=c?t.getModel(c):void 0,h=t.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:o,collectionName:n,fieldPath:i}}}},p?{delegate:p.context}:void 0);h._dataScopeFilter=mr(p);let g={maxHeight:mu,overflowY:"auto",overscrollBehavior:"contain"},v={...g,maxHeight:mm},y=(e,t)=>{if(_.isMobileLayout){var l;null==t||null==(l=t.defineProperty)||l.call(t,"isMobileLayout",{value:!0})}return h.viewContainer=mM(e),h.__onSubmitSuccess=s,h._fieldProps=d,h._onOk=u,(0,m.jsx)(f.FlowModelRenderer,{fallback:(0,m.jsx)(b.Skeleton.Input,{size:"small"}),model:h,inputArgs:{filterByTk:r,record:a,sourceFieldModelUid:c}})},_=mb(t,p);if(_.isMobileLayout){var x;h.context.defineProperty("isMobileLayout",{value:!0});let e=(null==p||null==(x=p.context)?void 0:x.viewer)||t.context.viewer,l=mx(t,o,n,i,p,d);await e.open({type:"drawer",title:l,closable:!0,placement:"bottom",inputArgs:{isMobileLayout:!0},styles:{body:v},content:y});return}await t.context.viewer.open({type:"popover",target:l,placement:"rightTop",styles:{body:{width:420,...g}},content:y})}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this});let t=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:t}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${e}`);!l||l.isAssociationField()&&(this.resource.addAppends(e),t&&this.resource.refresh())}render(){let e=this.context.isMobileLayout;return(0,m.jsxs)(dG.s2,{model:this,children:[(0,m.jsx)("div",{style:{minHeight:0,overflowY:"auto",maxHeight:e?mh:mc,padding:e?mf:void 0},children:this.mapSubModels("fields",e=>{var t;return(0,m.jsx)(f.FormItem,{showLabel:!1,name:this.fieldPath,initialValue:null==(t=this.context.record)?void 0:t[this.fieldPath],...this.props,children:(0,m.jsx)(f.FieldModelRenderer,{model:e,fallback:(0,m.jsx)(b.Skeleton.Input,{size:"small"})})},e.uid)})}),(0,m.jsxs)(b.Space,{style:{display:"flex",justifyContent:"flex-end",flexShrink:0,padding:e?mg:void 0},children:[(0,m.jsx)(b.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,m.jsx)(b.Button,{type:"primary",htmlType:"submit",onClick:async()=>{var e,t,l,o,n;let i=this.form.getFieldsValue();await this.form.submit();let r={...i},a={[this.fieldPath]:null==(e=this.resource.getData())?void 0:e[this.fieldPath]};if(this._onOk)this._onOk(r),this.viewContainer.close();else try{await this.resource.save(r,{refresh:!1}),null==(t=(l=this).__onSubmitSuccess)||t.call(l,r),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(e){console.error("Failed to save form data:",e),this.context.message.error(this.context.t("Failed to save form data")),null==(o=(n=this).__onSubmitSuccess)||o.call(n,a)}},children:this.context.t("Submit")})]})]})}}mw.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{async handler(e,t){let{dataSourceKey:l,collectionName:o,fieldPath:n}=t;if(!l||!o||!n)throw Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=n,e.model.collection=e.dataSourceManager.getCollection(l,o);let i=e.createResource(f.SingleRecordResource);i.setDataSourceKey(l),i.setResourceName(o),e.model.resource=i,(e.inputArgs.filterByTk||e.inputArgs.record)&&(i.setFilterByTk(e.inputArgs.filterByTk),i.setData(e.inputArgs.record));let r=e.model.collection.getField(n);if(r){let t=un.getDefaultBindingByField(e,r);if(!t)return;let i=t.modelName,a={fieldSettings:{init:{dataSourceKey:l,collectionName:o,fieldPath:n}}},s=e.model._dataScopeFilter;if(s){let t=mo(e.engine.getModelClass(i));t&&(a[t.flowKey]={...a[t.flowKey],[t.stepKey]:{filter:s}})}let d=e.model.addSubModel("fields",{use:i,props:"function"==typeof t.defaultProps?t.defaultProps(e,r):t.defaultProps,stepParams:a});d.setProps(m_(r,e.model._fieldProps)),d.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),!e.model.context.isMobileLayout&&my.includes(i)&&null==d.props.placement&&d.setProps({placement:"topLeft"}),e.model.context.defineProperty("collectionField",{get:()=>r}),e.model.addAppends(n),await d.dispatchEvent("beforeRender")}if(e.inputArgs.filterByTk||e.inputArgs.record){var a;null==(a=e.model.form)||a.setFieldsValue(i.getData())}}}}}),mw.define({hide:!0});class mS extends aZ{}mS.itemModelName="FormAssociationItemModel",mS.define({label:'{{t("Display association fields")}}'});let mk=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=(0,f.useFlowContext)();return(0,nB.useRequest)(async()=>await l.resolveJsonTemplate(e),{refreshDeps:t})},mF=2;function mC(e,t){if(!t)return e;let l=[...e];return t.forEach(e=>{let[t,o]=e.split(":");if(l.includes(t)){let e=l.indexOf(t),n=Number(o);l.splice(e+1,0,Number.isFinite(n)?n:o)}}),l}function mA(e,t){if(null==e)return e;let l=typeof e;if("string"===l||"number"===l||"boolean"===l)return e;if("bigint"===l)return String(e);if(Array.isArray(e))return e.map(e=>{let l=mA(e,t);return null==l?"":String(l)}).join(",");if("object"===l){let l=(0,g.castArray)(t).filter(Boolean);if(1===l.length){let t=mA((0,g.get)(e,l[0]));if(void 0!==t)return t}if(l.length>1)return JSON.stringify(l.map(t=>mA((0,g.get)(e,t))??null));let o=e.id??e.value??e.key;if("string"==typeof o||"number"==typeof o)return o;if("bigint"==typeof o)return String(o)}}let mP=e=>{let t=e.underSubForm?"ctx.item.value":"ctx.formValues",l=`{{${t}.${e.fieldPath}}}`,{data:o,loading:n,error:i}=mk(l,[l,e.refreshKey]);return n?(0,m.jsx)("div",{children:"Loading..."}):i?(0,m.jsxs)("div",{children:["Error: ",i.message]}):(0,m.jsx)(f.FieldModelRenderer,{...e.mergedProps,model:e.modelForRender,value:o||e.value})};class mT extends f.DisplayItemModel{static defineChildren(e){let t=e.collection,l=e.prefixFieldPath?e.prefixFieldPath.split(".").filter(Boolean).length:0;return t.getFields().map(o=>{var n;if(l>=mF&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return null;let i=this.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!i)return null;let r=i.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===a},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:r,props:"function"==typeof i.defaultProps?i.defaultProps(e,o):i.defaultProps}}})}}).filter(Boolean)}onInit(e){super.onInit(e),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){let e=this.subModels.field,t=this.context.fieldIndex,l=this.context.record,o=this.context.currentObject,n=null!=t?(()=>{let n=e.createFork({},`${t}`);return n.context.defineProperty("fieldIndex",{get:()=>t}),n.context.defineProperty("record",{get:()=>l,cache:!1}),n.context.defineProperty("currentObject",{get:()=>o,cache:!1}),this.context.pattern&&n.context.defineProperty("pattern",{get:()=>this.context.pattern}),n})():e,i=this.collectionField.name,r=this.fieldPath.replace(RegExp(`\\.${i}$`),""),a=mC((0,g.castArray)(r.split(".")),t),s=this.context.prefixFieldPath;return(0,m.jsx)(f.FormItem,{...this.props,shouldUpdate:(e,t)=>{let l=a.length>1&&!(0,g.get)(e,[...a])?a.slice(0,-1):a;return JSON.stringify((0,g.get)(e,[...l]))!==JSON.stringify((0,g.get)(t,[...l]))},children:()=>{var e,t,l,o;let i=mA(null==(t=this.context.form)||null==(e=t.getFieldValue)?void 0:e.call(t,a),null==(o=this.collectionField)||null==(l=o.collection)?void 0:l.filterTargetKey)||(0,io.uid)();return(0,m.jsx)(mP,{modelForRender:n,fieldPath:this.fieldPath.replace(RegExp(`^${s}\\.`),""),refreshKey:i,mergedProps:this.props,underSubForm:!!s})}})}}mT.define({label:(0,f.tExpr)("Display fields"),sort:100}),mT.registerFlow({key:"detailItemSettings",sort:300,title:(0,f.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,f.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,f.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l;let o=e.model,n=null==(l=o.collectionField)?void 0:l.title;t.decoratorProps={...t.decoratorProps,extra:o.context.t("Original field title: ")+(o.context.t(n)??"")}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{async handler(e){let{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())}},tooltip:{title:(0,f.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,f.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},model:{title:(0,f.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,f.tExpr)("Title field"),beforeParamsSave:async(e,t,l)=>{if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==l.label){var o,n;e.model.setProps({titleField:t.label,...null==(n=e.collectionField.targetCollection)||null==(o=n.getField(t.label))?void 0:o.getComponentProps()});let l=e.collectionField.targetCollection.getField(t.label),i=f.DisplayItemModel.getDefaultBindingByField(e,l),r=i.modelName;await d2({parentModel:e.model,targetUse:r,defaultProps:"function"==typeof(null==i?void 0:i.defaultProps)?i.defaultProps(e,e.collectionField):null==i?void 0:i.defaultProps,pattern:e.model.getProps().pattern})}},async handler(e,t){var l,o;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps({titleField:t.label,...null==(o=e.collectionField.targetCollection)||null==(l=o.getField(t.label))?void 0:l.getComponentProps()});let n=e.collectionField.targetCollection;if(n){let l=n.getField(t.label),o=f.DisplayItemModel.getDefaultBindingByField(e,l).modelName;o!==e.model.subModels.field.use&&e.model.setStepParams(e.flowKey,"model",{use:o})}},hideInSettings:async e=>!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField}}}),mT.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});var mj=__webpack_require__(8563);let mI="client",mL=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,mR=e=>{if(!e)return 0;let t=e.getBoundingClientRect(),l=window.getComputedStyle(e),o=parseFloat(l.marginTop)||0,n=parseFloat(l.marginBottom)||0;return t.height+o+n},mD=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};let t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},mE=e=>{let t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},mY=e=>{let t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function mN(e,t){let l=t>0;return e>0?e:l?t:0}let mO=e=>{let{height:t,heightMode:l,hostRef:o,marginBlock:n}=e,[r,a]=i.default.useState(),s=i.default.useCallback(()=>{if("fullHeight"!==l||"u"<typeof window)return void a(e=>void 0===e?e:void 0);let e=o.current;if(!e)return;let t=mL(e),i=e.getBoundingClientRect(),r=t===document.documentElement?{top:0}:t.getBoundingClientRect(),s=mD(t),d=mY(t),u=r.top+s.top,c=Math.max(0,i.top-u),p=s.bottom+n;d&&(p=n+mR(d)+s.bottom);let m=Math.max(0,Math.floor(window.innerHeight-mN(u,110)-c-p-1));a(e=>e===m?e:m)},[l,o,n]);return(i.default.useLayoutEffect(()=>{s()},[s]),i.default.useEffect(()=>{if("fullHeight"!==l||"u"<typeof window)return;let e=o.current;if(!e||"u"<typeof ResizeObserver)return;let t=mL(e),n=mE(t),i=mY(t),r=new ResizeObserver(()=>s());return r.observe(e),t instanceof HTMLElement&&r.observe(t),n&&r.observe(n),i&&r.observe(i),window.addEventListener("resize",s),()=>{r.disconnect(),window.removeEventListener("resize",s)}},[l,o,s]),"specifyValue"===l)?t:"fullHeight"===l?r:null},mB=e=>{let{uid:t,className:l,heightMode:o,height:n,style:r,beforeContent:a,afterContent:s,contentRef:d,marginBlock:u,...c}=e,p=i.default.useRef(null),h=mO({height:n,heightMode:o,hostRef:p,marginBlock:u});return(0,m.jsxs)("div",{...c,ref:p,id:`model-${t}`,className:l,style:{display:"flex",flexDirection:"column",height:h??void 0,minHeight:0,overflow:"auto",...r||{}},children:[a,(0,m.jsx)("div",{ref:d}),s]})};class mV extends sC.z{get showBlockCard(){var e;return(null==(e=this.getStepParams("jsSettings","showBlockCard"))?void 0:e.showBlockCard)!==!1}renderComponent(){return(0,m.jsx)("div",{ref:this.context.ref})}render(){let{className:e,id:t,title:l,description:o,showCard:n,heightMode:i,height:r,style:a,beforeContent:s,afterContent:d,...u}=this.decoratorProps||{},c=["code-block",e].filter(Boolean).join(" ");if(!this.showBlockCard){var p;return(0,m.jsx)(mB,{...u,uid:this.uid,className:c,heightMode:i,height:r,style:a,beforeContent:s,afterContent:d,contentRef:this.context.ref,marginBlock:(null==(p=this.context.themeToken)?void 0:p.marginBlock)??0})}let h={...u,height:r,...void 0===a?{}:{style:a},...void 0===s?{}:{beforeContent:s},...void 0===d?{}:{afterContent:d}};return(0,m.jsx)(mj.tn,{id:`model-${this.uid}`,className:c,title:l,description:o,heightMode:i,...h,children:(0,m.jsx)("div",{ref:this.context.ref})})}onMount(){this._mountedOnce&&this.context.ref.current&&this.rerender(),this._mountedOnce=!0}constructor(...e){super(...e),this._mountedOnce=!1}}mV.define({label:(0,f.tExpr)("JS block"),createModelOptions:{use:"JSBlockModel"}}),mV.registerFlow({key:"jsSettings",title:"JavaScript settings",steps:{showBlockCard:{title:(0,f.tExpr)("Show block card"),uiMode:{type:"switch",key:"showBlockCard"},defaultParams:{showBlockCard:!0}},runJs:{title:(0,f.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","x-component":dm.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`// Welcome to the JS block
901
+ `}),async handler(e,t){let{code:l,version:o}=dh(e,t);e.defineMethod("refresh",async()=>{var t,l,o;(null==(l=e.blockModel)||null==(t=l.resource)?void 0:t.refresh)?await e.blockModel.resource.refresh():(null==(o=e.resource)?void 0:o.refresh)&&await e.resource.refresh()}),await e.runjs(l,void 0,{version:o})}}}});let me="dataScope",mt="tableColumnSettings",ml="quickEditDataScope";function mo(e){var t,l;let o=null==e||null==(l=e.globalFlowRegistry)||null==(t=l.getFlows)?void 0:t.call(l);if(!o)return null;for(let[e,t]of o)for(let[l,o]of Object.entries((null==t?void 0:t.steps)||{}))if((null==o?void 0:o.use)===me)return{flowKey:e,stepKey:l};return null}function mn(e,t){var l,o,n;if(!(null==t||null==(l=t.isAssociationField)?void 0:l.call(t)))return null;let i=un.getDefaultBindingByField(e,t);return(null==i?void 0:i.modelName)?mo(null==(n=e.engine)||null==(o=n.getModelClass)?void 0:o.call(n,i.modelName)):null}function mi(e){return!e||!Array.isArray(e.items)||0===e.items.length}function mr(e){var t;let l=null==e?void 0:e.parent,o=null==l||null==(t=l.getStepParams)?void 0:t.call(l,mt,ml),n=null==o?void 0:o.filter;return mi(n)?void 0:n}function ma(e){let t=e.context.collectionField,l=()=>(null==t?void 0:t.targetCollection)??null,o=()=>e.context.collection??null;return(0,f.createEphemeralContext)(e.context,{defineProperties:{collection:{get:l,meta:(0,f.createCollectionContextMeta)(l,"Current collection")},record:{get:()=>void 0,meta:(0,f.createCurrentRecordMetaFactory)(e.context,o)}}})}function ms(e){let[t,l]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let t=!1;return(async()=>{let o=await ma(e);t||l(new Proxy(e,{get(e,t,l){if("context"===t)return o;let n=Reflect.get(e,t,l);return"function"==typeof n?n.bind(e):n}}))})(),()=>{t=!0}},[e]),t}function md(e){let t=ms((0,f.useFlowSettingsContext)().model),l=(0,i.useCallback)(()=>(null==t?void 0:t.context.getPropertyMetaTree())??[],[t]);return t?(0,m.jsx)(rO.I8,{value:e.value,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t,rightAsVariable:!0,rightMetaTree:l})}):(0,m.jsx)(b.Skeleton.Input,{active:!0,size:"small"})}let mu="calc(100vh - 96px)",mc="calc(100vh - 160px)",mp="min(480px, calc(100vh - 320px))",mm="50vh",mh="calc(50vh - var(--nb-mobile-page-header-height, 40px) - 132px)",mf="8px var(--nb-mobile-page-tabs-content-padding, 12px) 0",mg="8px var(--nb-mobile-page-tabs-content-padding, 12px) calc(80px + env(safe-area-inset-bottom, 0px))",mv="(max-width: 768px)",my=["SelectFieldModel","RecordSelectFieldModel","CascadeSelectFieldModel","CascadeSelectListFieldModel"];function m_(e,t){let l={...e.getComponentProps(),...t||{}};return["markdown","vditor"].includes(e.interface)&&null==l.height&&(l.height=mp),l}function mb(e,t){var l,o;let n=null==t||null==(l=t.context)?void 0:l.isMobileLayout;if("boolean"==typeof n)return{isMobileLayout:n,inheritsMobileContext:n};let i=null==(o=e.context)?void 0:o.isMobileLayout;return"boolean"==typeof i?{isMobileLayout:i,inheritsMobileContext:i}:"u"<typeof window||"function"!=typeof window.matchMedia?{isMobileLayout:!1,inheritsMobileContext:!1}:{isMobileLayout:window.matchMedia(mv).matches,inheritsMobileContext:!1}}function mx(e,t,l,o,n,i){var r,a;let s=null==n||null==(a=n.parent)||null==(r=a.props)?void 0:r.title;if(s)return s;let d=null==i?void 0:i.title;if(d)return d;let u=e.context.dataSourceManager.getCollectionField(`${t}.${l}.${o}`);return(null==u?void 0:u.title)||o}function mM(e){let t=!1,l=e.beforeClose,o=async e=>(!t||!!(null==e?void 0:e.force))&&!1!==await (null==l?void 0:l(e));return e.beforeClose=o,{...e,close:(t,l)=>e.close(t,l),update(l){var o;return Object.prototype.hasOwnProperty.call(l,"preventClose")&&(t=!!l.preventClose),null==(o=e.update)?void 0:o.call(e,l)},get beforeClose(){return e.beforeClose},set beforeClose(value){l=value,e.beforeClose=o}}}class mw extends f.FlowModel{get form(){return this.context.form}useHooksBeforeRender(){let[e]=b.Form.useForm();this.context.defineProperty("form",{get:()=>e})}static async open(e){let{flowEngine:t,target:l,dataSourceKey:o,collectionName:n,fieldPath:i,filterByTk:r,record:a,onSuccess:s,fieldProps:d,onOk:u,sourceFieldModelUid:c}=e,p=c?t.getModel(c):void 0,h=t.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:o,collectionName:n,fieldPath:i}}}},p?{delegate:p.context}:void 0);h._dataScopeFilter=mr(p);let g={maxHeight:mu,overflowY:"auto",overscrollBehavior:"contain"},v={...g,maxHeight:mm},y=(e,t)=>{if(_.isMobileLayout){var l;null==t||null==(l=t.defineProperty)||l.call(t,"isMobileLayout",{value:!0})}return h.viewContainer=mM(e),h.__onSubmitSuccess=s,h._fieldProps=d,h._onOk=u,(0,m.jsx)(f.FlowModelRenderer,{fallback:(0,m.jsx)(b.Skeleton.Input,{size:"small"}),model:h,inputArgs:{filterByTk:r,record:a,sourceFieldModelUid:c}})},_=mb(t,p);if(_.isMobileLayout){var x;h.context.defineProperty("isMobileLayout",{value:!0});let e=(null==p||null==(x=p.context)?void 0:x.viewer)||t.context.viewer,l=mx(t,o,n,i,p,d);await e.open({type:"drawer",title:l,closable:!0,placement:"bottom",inputArgs:{isMobileLayout:!0},styles:{body:v},content:y});return}await t.context.viewer.open({type:"popover",target:l,placement:"rightTop",styles:{body:{width:420,...g}},content:y})}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this});let t=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:t}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${e}`);!l||l.isAssociationField()&&(this.resource.addAppends(e),t&&this.resource.refresh())}render(){let e=this.context.isMobileLayout;return(0,m.jsxs)(dG.s2,{model:this,children:[(0,m.jsx)("div",{style:{minHeight:0,overflowY:"auto",maxHeight:e?mh:mc,padding:e?mf:void 0},children:this.mapSubModels("fields",e=>{var t;return(0,m.jsx)(f.FormItem,{showLabel:!1,name:this.fieldPath,initialValue:null==(t=this.context.record)?void 0:t[this.fieldPath],...this.props,children:(0,m.jsx)(f.FieldModelRenderer,{model:e,fallback:(0,m.jsx)(b.Skeleton.Input,{size:"small"})})},e.uid)})}),(0,m.jsxs)(b.Space,{style:{display:"flex",justifyContent:"flex-end",flexShrink:0,padding:e?mg:void 0},children:[(0,m.jsx)(b.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,m.jsx)(b.Button,{type:"primary",htmlType:"submit",onClick:async()=>{var e,t,l,o,n;let i=this.form.getFieldsValue();await this.form.submit();let r={...i},a={[this.fieldPath]:null==(e=this.resource.getData())?void 0:e[this.fieldPath]};if(this._onOk)this._onOk(r),this.viewContainer.close();else try{await this.resource.save(r,{refresh:!1}),null==(t=(l=this).__onSubmitSuccess)||t.call(l,r),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(e){console.error("Failed to save form data:",e),this.context.message.error(this.context.t("Failed to save form data")),null==(o=(n=this).__onSubmitSuccess)||o.call(n,a)}},children:this.context.t("Submit")})]})]})}}mw.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{async handler(e,t){let{dataSourceKey:l,collectionName:o,fieldPath:n}=t;if(!l||!o||!n)throw Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=n,e.model.collection=e.dataSourceManager.getCollection(l,o);let i=e.createResource(f.SingleRecordResource);i.setDataSourceKey(l),i.setResourceName(o),e.model.resource=i,(e.inputArgs.filterByTk||e.inputArgs.record)&&(i.setFilterByTk(e.inputArgs.filterByTk),i.setData(e.inputArgs.record));let r=e.model.collection.getField(n);if(r){let t=un.getDefaultBindingByField(e,r);if(!t)return;let i=t.modelName,a={fieldSettings:{init:{dataSourceKey:l,collectionName:o,fieldPath:n}}},s=e.model._dataScopeFilter;if(s){let t=mo(e.engine.getModelClass(i));t&&(a[t.flowKey]={...a[t.flowKey],[t.stepKey]:{filter:s}})}let d=e.model.addSubModel("fields",{use:i,props:"function"==typeof t.defaultProps?t.defaultProps(e,r):t.defaultProps,stepParams:a});d.setProps(m_(r,e.model._fieldProps)),d.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),!e.model.context.isMobileLayout&&my.includes(i)&&null==d.props.placement&&d.setProps({placement:"topLeft"}),e.model.context.defineProperty("collectionField",{get:()=>r}),e.model.addAppends(n),await d.dispatchEvent("beforeRender")}if(e.inputArgs.filterByTk||e.inputArgs.record){var a;null==(a=e.model.form)||a.setFieldsValue(i.getData())}}}}}),mw.define({hide:!0});class mS extends aZ{}mS.itemModelName="FormAssociationItemModel",mS.define({label:'{{t("Display association fields")}}'});let mk=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=(0,f.useFlowContext)();return(0,nB.useRequest)(async()=>await l.resolveJsonTemplate(e),{refreshDeps:t})},mF=2;function mC(e,t){if(!t)return e;let l=[...e];return t.forEach(e=>{let[t,o]=e.split(":");if(l.includes(t)){let e=l.indexOf(t),n=Number(o);l.splice(e+1,0,Number.isFinite(n)?n:o)}}),l}function mA(e,t){if(null==e)return e;let l=typeof e;if("string"===l||"number"===l||"boolean"===l)return e;if("bigint"===l)return String(e);if(Array.isArray(e))return e.map(e=>{let l=mA(e,t);return null==l?"":String(l)}).join(",");if("object"===l){let l=(0,g.castArray)(t).filter(Boolean);if(1===l.length){let t=mA((0,g.get)(e,l[0]));if(void 0!==t)return t}if(l.length>1)return JSON.stringify(l.map(t=>mA((0,g.get)(e,t))??null));let o=e.id??e.value??e.key;if("string"==typeof o||"number"==typeof o)return o;if("bigint"==typeof o)return String(o)}}let mP=e=>{let t=e.underSubForm?"ctx.item.value":"ctx.formValues",l=`{{${t}.${e.fieldPath}}}`,{data:o,loading:n,error:i}=mk(l,[l,e.refreshKey]);return n?(0,m.jsx)("div",{children:"Loading..."}):i?(0,m.jsxs)("div",{children:["Error: ",i.message]}):(0,m.jsx)(f.FieldModelRenderer,{...e.mergedProps,model:e.modelForRender,value:o||e.value})};class mT extends f.DisplayItemModel{static defineChildren(e){let t=e.collection,l=e.prefixFieldPath?e.prefixFieldPath.split(".").filter(Boolean).length:0;return t.getFields().map(o=>{var n;if(l>=mF&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return null;let i=this.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!i)return null;let r=i.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===a},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:r,props:"function"==typeof i.defaultProps?i.defaultProps(e,o):i.defaultProps}}})}}).filter(Boolean)}onInit(e){super.onInit(e),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){let e=this.subModels.field,t=this.context.fieldIndex,l=this.context.record,o=this.context.currentObject,n=null!=t?(()=>{let n=e.createFork({},`${t}`);return n.context.defineProperty("fieldIndex",{get:()=>t}),n.context.defineProperty("record",{get:()=>l,cache:!1}),n.context.defineProperty("currentObject",{get:()=>o,cache:!1}),this.context.pattern&&n.context.defineProperty("pattern",{get:()=>this.context.pattern}),n})():e,i=this.collectionField.name,r=this.fieldPath.replace(RegExp(`\\.${i}$`),""),a=mC((0,g.castArray)(r.split(".")),t),s=this.context.prefixFieldPath;return(0,m.jsx)(f.FormItem,{...this.props,shouldUpdate:(e,t)=>{let l=a.length>1&&!(0,g.get)(e,[...a])?a.slice(0,-1):a;return JSON.stringify((0,g.get)(e,[...l]))!==JSON.stringify((0,g.get)(t,[...l]))},children:()=>{var e,t,l,o;let i=mA(null==(t=this.context.form)||null==(e=t.getFieldValue)?void 0:e.call(t,a),null==(o=this.collectionField)||null==(l=o.collection)?void 0:l.filterTargetKey)||(0,io.uid)();return(0,m.jsx)(mP,{modelForRender:n,fieldPath:this.fieldPath.replace(RegExp(`^${s}\\.`),""),refreshKey:i,mergedProps:this.props,underSubForm:!!s})}})}}mT.define({label:(0,f.tExpr)("Display fields"),sort:100}),mT.registerFlow({key:"detailItemSettings",sort:300,title:(0,f.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,f.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,f.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l;let o=e.model,n=null==(l=o.collectionField)?void 0:l.title;t.decoratorProps={...t.decoratorProps,extra:o.context.t("Original field title: ")+(o.context.t(n)??"")}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{async handler(e){let{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())}},tooltip:{title:(0,f.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,f.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},model:{title:(0,f.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,f.tExpr)("Title field"),beforeParamsSave:async(e,t,l)=>{if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==l.label){var o,n;e.model.setProps({titleField:t.label,...null==(n=e.collectionField.targetCollection)||null==(o=n.getField(t.label))?void 0:o.getComponentProps()});let l=e.collectionField.targetCollection.getField(t.label),i=f.DisplayItemModel.getDefaultBindingByField(e,l),r=i.modelName;await d2({parentModel:e.model,targetUse:r,defaultProps:"function"==typeof(null==i?void 0:i.defaultProps)?i.defaultProps(e,e.collectionField):null==i?void 0:i.defaultProps,pattern:e.model.getProps().pattern})}},async handler(e,t){var l,o;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps({titleField:t.label,...null==(o=e.collectionField.targetCollection)||null==(l=o.getField(t.label))?void 0:l.getComponentProps()});let n=e.collectionField.targetCollection;if(n){let l=n.getField(t.label),o=f.DisplayItemModel.getDefaultBindingByField(e,l).modelName;o!==e.model.subModels.field.use&&e.model.setStepParams(e.flowKey,"model",{use:o})}},hideInSettings:async e=>!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField}}}),mT.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});var mj=__webpack_require__(8563);let mI="client",mL=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,mR=e=>{if(!e)return 0;let t=e.getBoundingClientRect(),l=window.getComputedStyle(e),o=parseFloat(l.marginTop)||0,n=parseFloat(l.marginBottom)||0;return t.height+o+n},mD=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};let t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},mE=e=>{let t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},mY=e=>{let t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function mN(e,t){let l=t>0;return e>0?e:l?t:0}let mO=e=>{let{height:t,heightMode:l,hostRef:o,marginBlock:n}=e,[r,a]=i.default.useState(),s=i.default.useCallback(()=>{if("fullHeight"!==l||"u"<typeof window)return void a(e=>void 0===e?e:void 0);let e=o.current;if(!e)return;let t=mL(e),i=e.getBoundingClientRect(),r=t===document.documentElement?{top:0}:t.getBoundingClientRect(),s=mD(t),d=mY(t),u=r.top+s.top,c=Math.max(0,i.top-u),p=s.bottom+n;d&&(p=n+mR(d)+s.bottom);let m=Math.max(0,Math.floor(window.innerHeight-mN(u,110)-c-p-1));a(e=>e===m?e:m)},[l,o,n]);return(i.default.useLayoutEffect(()=>{s()},[s]),i.default.useEffect(()=>{if("fullHeight"!==l||"u"<typeof window)return;let e=o.current;if(!e||"u"<typeof ResizeObserver)return;let t=mL(e),n=mE(t),i=mY(t),r=new ResizeObserver(()=>s());return r.observe(e),t instanceof HTMLElement&&r.observe(t),n&&r.observe(n),i&&r.observe(i),window.addEventListener("resize",s),()=>{r.disconnect(),window.removeEventListener("resize",s)}},[l,o,s]),"specifyValue"===l)?t:"fullHeight"===l?r:null},mB=e=>{let{uid:t,className:l,heightMode:o,height:n,style:r,beforeContent:a,afterContent:s,contentRef:d,marginBlock:u,minHeight:c,...p}=e,h=i.default.useRef(null),f=mO({height:n,heightMode:o,hostRef:h,marginBlock:u});return(0,m.jsxs)("div",{...p,ref:h,id:`model-${t}`,className:l,style:{display:"flex",flexDirection:"column",height:f??void 0,minHeight:c,overflow:"auto",...r||{}},children:[a,(0,m.jsx)("div",{ref:d}),s]})};class mV extends sC.z{get showBlockCard(){var e;return(null==(e=this.getStepParams("jsSettings","showBlockCard"))?void 0:e.showBlockCard)!==!1}renderComponent(){return(0,m.jsx)("div",{ref:this.context.ref})}render(){let{className:e,id:t,title:l,description:o,showCard:n,heightMode:i,height:r,style:a,beforeContent:s,afterContent:d,...u}=this.decoratorProps||{},c=["code-block",e].filter(Boolean).join(" ");if(!this.showBlockCard){var p,h;return(0,m.jsx)(mB,{...u,uid:this.uid,className:c,heightMode:i,height:r,style:a,beforeContent:s,afterContent:d,contentRef:this.context.ref,marginBlock:(null==(p=this.context.themeToken)?void 0:p.marginBlock)??0,minHeight:this.context.flowSettingsEnabled?(null==(h=this.context.themeToken)?void 0:h.controlHeightLG)??40:0})}let f={...u,height:r,...void 0===a?{}:{style:a},...void 0===s?{}:{beforeContent:s},...void 0===d?{}:{afterContent:d}};return(0,m.jsx)(mj.tn,{id:`model-${this.uid}`,className:c,title:l,description:o,heightMode:i,...f,children:(0,m.jsx)("div",{ref:this.context.ref})})}onMount(){this._mountedOnce&&this.context.ref.current&&this.rerender(),this._mountedOnce=!0}constructor(...e){super(...e),this._mountedOnce=!1}}mV.define({label:(0,f.tExpr)("JS block"),createModelOptions:{use:"JSBlockModel"}}),mV.registerFlow({key:"jsSettings",title:"JavaScript settings",steps:{showBlockCard:{title:(0,f.tExpr)("Show block card"),uiMode:{type:"switch",key:"showBlockCard"},defaultParams:{showBlockCard:!0}},runJs:{title:(0,f.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","x-component":dm.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`// Welcome to the JS block
902
902
  // Create powerful interactive components with JavaScript
903
903
  ctx.render(\`
904
904
  <div style="padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; max-width: 600px;">
package/lib/index.js CHANGED
@@ -847,7 +847,7 @@ if (!ctx.record) {
847
847
  overflow: hidden;
848
848
  text-overflow: ellipsis;
849
849
  }
850
- `;function uK(e){return e?{...e,display:"none"}:{display:"none"}}function uG(e){return(null==e?void 0:e.value)??"value"}function uW(e,t,l,o){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"record";if(o)return Array.isArray(e)?e.filter(e=>null!=e).map(e=>{if("value"===i)return l.get(e)??{[t]:e};let o=null==e?void 0:e[t];return l.get(o)??e}):[];if("value"===i&&("string"==typeof e||"number"==typeof e))return[l.get(e)??{[t]:e}].filter(Boolean);if(e&&"object"==typeof e){let o=e[t],i=l.get(o)??e;return i?[i]:[]}return[]}function uJ(e){let{fieldNames:t,value:l,multiple:o,allowMultiple:i,options:r,onChange:a,onDropdownVisibleChange:s,onPopupScroll:d,onSearch:u,disabled:c,dropdownStyle:p,loading:h=!1,valueMode:g="record",...v}=e,y=(0,f.useFlowModelContext)().t,b=!!(o&&i),M=uG(t),_=uH(r,l,b),S=(0,n.useMemo)(()=>{let e=new Map;for(let t of _)e.set(null==t?void 0:t[M],t);return e},[_,M]),[w,F]=(0,n.useState)(!1),[k,C]=(0,n.useState)(""),A=(0,n.useMemo)(()=>uW(l,M,S,b,g),[l,M,S,b,g]),[P,T]=(0,n.useState)(()=>A),I=(0,n.useRef)(w);(0,n.useEffect)(()=>{w&&!I.current&&T(A),I.current=w},[A,w]),(0,n.useEffect)(()=>{w||C("")},[w]);let L=(0,n.useMemo)(()=>{if(!P.length)return[];let e=[];for(let t of P){let l=null==t?void 0:t[M];null!=l&&e.push(l)}return e},[P,M]),R=(0,n.useCallback)(()=>{c||(F(!0),null==s||s(!0))},[c,s]),j=(0,n.useCallback)(()=>{F(!1),null==s||s(!1)},[s]),D=(0,n.useCallback)(()=>{if("value"===g){if(b)a(P.map(e=>null==e?void 0:e[M]).filter(e=>null!=e));else{var e;a(null==P||null==(e=P[0])?void 0:e[M])}j();return}a(P),j()},[j,b,a,P,M,g]),E=(0,n.useCallback)(e=>{if(b)return void T(t=>{let l=new Map;for(let e of t)l.set(null==e?void 0:e[M],e);let o=[];for(let t of e){let e=S.get(t)??l.get(t);e&&o.push(e)}return o});let t=e[0];if(void 0===t){a(void 0),j();return}let l=S.get(t);l&&("value"===g?a(null==l?void 0:l[M]):a(l)),j()},[j,b,a,S,M,g]),Y=(0,n.useCallback)(e=>{if(!d)return;let t=e.currentTarget;t.scrollTop+t.clientHeight<t.scrollHeight-20||d({target:t})},[d]),N=(0,n.useCallback)(e=>{C(e),null==u||u(e)},[u]),O=(0,n.useCallback)(e=>{c||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),R())},[c,R]);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x.Select,{...v,dropdownStyle:uK(p),fieldNames:t,options:_,value:uV(l,t,b,g,_),mode:b?"multiple":void 0,open:!1,onClick:R,onKeyDown:O,onChange:(e,t)=>{"value"===g?Array.isArray(t)?a(t.map(e=>(null==e?void 0:e[M])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):a((null==t?void 0:t[M])??(null==t?void 0:t.value)):a(t)},loading:h,optionRender:e=>{let{data:l}=e;return(0,m.jsx)(uB,{option:l,fieldNames:t})},labelRender:e=>(0,m.jsx)("div",{className:uz,children:e.label}),showSearch:!1}),(0,m.jsxs)(antd_mobile__rspack_import_73.Popup,{visible:w,onMaskClick:j,destroyOnClose:!0,children:[(0,m.jsx)("div",{style:{margin:"10px"},children:(0,m.jsx)(antd_mobile__rspack_import_73.SearchBar,{placeholder:y("search"),value:k,onChange:N,onCancel:j,cancelText:y("Cancel"),showCancelButton:!0})}),(0,m.jsxs)("div",{style:uU(b),onScroll:Y,children:[(0,m.jsx)(antd_mobile__rspack_import_73.CheckList,{multiple:b,value:L,onChange:E,children:_.map(e=>{let l=null==e?void 0:e[M];return(0,m.jsx)(antd_mobile__rspack_import_73.CheckList.Item,{value:l,children:(0,m.jsx)(uB,{option:e,fieldNames:t})},l)})}),h&&(0,m.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",padding:"12px 0"},children:(0,m.jsx)(antd_mobile__rspack_import_73.SpinLoading,{color:"primary"})})]}),b&&(0,m.jsx)("div",{style:u$,children:(0,m.jsx)(antd_mobile__rspack_import_73.Button,{block:!0,color:"primary",onClick:D,style:{marginTop:"16px"},children:y("Confirm")})})]})]})}function uX(e,t){let l=e;for(;l;){var o;let e=null==l||null==(o=l.constructor)?void 0:o.name;if(e&&t.includes(e))return!0;l=null==l?void 0:l.parent}return!1}function uQ(e){let t=null==e?void 0:e.parent;if((null==t?void 0:t.use)==="QuickEditFormModel")return t.viewContainer}function uZ(e,t){let l=uQ(e);if(null==l?void 0:l.update){if(t)return void l.update({preventClose:!0});setTimeout(()=>{var e;null==(e=l.update)||e.call(l,{preventClose:!1})},0)}}function u0(e){let{options:t}=e,l=(0,f.useFlowViewContext)(),{data:o,loading:i}=(0,iH.useRequest)(async()=>await l.engine.loadOrCreateModel(t,{delegateToParent:!1,delegate:l,skipSave:!l.flowSettingsEnabled}),{refreshDeps:[l,t]});return!i&&(null==o?void 0:o.uid)?(0,m.jsx)(f.FlowModelRenderer,{model:o,fallback:(0,m.jsx)(iq,{style:{margin:16}})}):(0,m.jsx)(iq,{style:{margin:16}})}function u1(e){let{model:t,toOne:l=!1}=e,o=(0,f.useFlowContext)(),{Header:i,type:n}=o.view;return t._closeView=o.view.close,(0,m.jsxs)("div",{children:[(0,m.jsx)(i,{title:"dialog"===n?(0,m.jsx)("div",{style:{padding:`${o.themeToken.paddingLG}px ${o.themeToken.paddingLG}px 0`,marginBottom:-o.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:o.t("Create record")}):o.t("Create record")}),(0,m.jsx)(u0,{options:{parentId:o.view.inputArgs.parentId,subKey:"grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}})]})}let u2=(e,t)=>{var l,o;let i=null==(l=e.context.collectionField)?void 0:l.collection,r=null==i?void 0:i.dataSource,a=e.context.t,s=(null==(o=e.context.collectionField)?void 0:o.name)||e.fieldPath,d=(0,n.useMemo)(()=>{let e=a((null==r?void 0:r.displayName)||(null==r?void 0:r.key)||""),t=e?`${e} > `:"",l=i?`${a(i.title)||i.name||i.tableName} > `:"";return`${t}${l}${s}`},[i,null==r?void 0:r.displayName,null==r?void 0:r.key,s,a]);return t?null:a('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:d,actionName:"Update"}).replaceAll("&gt;",">")},u5=(0,A.css)`
850
+ `;function uK(e){return e?{...e,display:"none"}:{display:"none"}}function uG(e){return(null==e?void 0:e.value)??"value"}function uW(e,t,l,o){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"record";if(o)return Array.isArray(e)?e.filter(e=>null!=e).map(e=>{if("value"===i)return l.get(e)??{[t]:e};let o=null==e?void 0:e[t];return l.get(o)??e}):[];if("value"===i&&("string"==typeof e||"number"==typeof e))return[l.get(e)??{[t]:e}].filter(Boolean);if(e&&"object"==typeof e){let o=e[t],i=l.get(o)??e;return i?[i]:[]}return[]}function uJ(e){let{fieldNames:t,value:l,multiple:o,allowMultiple:i,options:r,onChange:a,onDropdownVisibleChange:s,onPopupScroll:d,onSearch:u,disabled:c,dropdownStyle:p,loading:h=!1,valueMode:g="record",...v}=e,y=(0,f.useFlowModelContext)().t,b=!!(o&&i),M=uG(t),_=uH(r,l,b),S=(0,n.useMemo)(()=>{let e=new Map;for(let t of _)e.set(null==t?void 0:t[M],t);return e},[_,M]),[w,F]=(0,n.useState)(!1),[k,C]=(0,n.useState)(""),A=(0,n.useMemo)(()=>uW(l,M,S,b,g),[l,M,S,b,g]),[P,T]=(0,n.useState)(()=>A),I=(0,n.useRef)(w);(0,n.useEffect)(()=>{w&&!I.current&&T(A),I.current=w},[A,w]),(0,n.useEffect)(()=>{w||C("")},[w]);let L=(0,n.useMemo)(()=>{if(!P.length)return[];let e=[];for(let t of P){let l=null==t?void 0:t[M];null!=l&&e.push(l)}return e},[P,M]),R=(0,n.useCallback)(()=>{c||(F(!0),null==s||s(!0))},[c,s]),j=(0,n.useCallback)(()=>{F(!1),null==s||s(!1)},[s]),D=(0,n.useCallback)(()=>{if("value"===g){if(b)a(P.map(e=>null==e?void 0:e[M]).filter(e=>null!=e));else{var e;a(null==P||null==(e=P[0])?void 0:e[M])}j();return}a(P),j()},[j,b,a,P,M,g]),E=(0,n.useCallback)(e=>{if(b)return void T(t=>{let l=new Map;for(let e of t)l.set(null==e?void 0:e[M],e);let o=[];for(let t of e){let e=S.get(t)??l.get(t);e&&o.push(e)}return o});let t=e[0];if(void 0===t){a(void 0),j();return}let l=S.get(t);l&&("value"===g?a(null==l?void 0:l[M]):a(l)),j()},[j,b,a,S,M,g]),Y=(0,n.useCallback)(e=>{if(!d)return;let t=e.currentTarget;t.scrollTop+t.clientHeight<t.scrollHeight-20||d({target:t})},[d]),N=(0,n.useCallback)(e=>{C(e),null==u||u(e)},[u]),O=(0,n.useCallback)(e=>{c||("Enter"===e.key||" "===e.key)&&(e.preventDefault(),R())},[c,R]);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(x.Select,{...v,dropdownStyle:uK(p),fieldNames:t,options:_,value:uV(l,t,b,g,_),mode:b?"multiple":void 0,open:!1,onClick:R,onKeyDown:O,onChange:(e,t)=>{"value"===g?Array.isArray(t)?a(t.map(e=>(null==e?void 0:e[M])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):a((null==t?void 0:t[M])??(null==t?void 0:t.value)):a(t)},loading:h,optionRender:e=>{let{data:l}=e;return(0,m.jsx)(uB,{option:l,fieldNames:t})},labelRender:e=>(0,m.jsx)("div",{className:uz,children:e.label}),showSearch:!1}),(0,m.jsxs)(antd_mobile__rspack_import_73.Popup,{visible:w,onMaskClick:j,destroyOnClose:!0,children:[(0,m.jsx)("div",{style:{margin:"10px"},children:(0,m.jsx)(antd_mobile__rspack_import_73.SearchBar,{placeholder:y("search"),value:k,onChange:N,onCancel:j,cancelText:y("Cancel"),showCancelButton:!0})}),(0,m.jsxs)("div",{style:uU(b),onScroll:Y,children:[(0,m.jsx)(antd_mobile__rspack_import_73.CheckList,{multiple:b,value:L,onChange:E,children:_.map(e=>{let l=null==e?void 0:e[M];return(0,m.jsx)(antd_mobile__rspack_import_73.CheckList.Item,{value:l,children:(0,m.jsx)(uB,{option:e,fieldNames:t})},l)})}),h&&(0,m.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",padding:"12px 0"},children:(0,m.jsx)(antd_mobile__rspack_import_73.SpinLoading,{color:"primary"})})]}),b&&(0,m.jsx)("div",{style:u$,children:(0,m.jsx)(antd_mobile__rspack_import_73.Button,{block:!0,color:"primary",onClick:D,style:{marginTop:"16px"},children:y("Confirm")})})]})]})}function uX(e,t){let l=e;for(;l;){var o;let e=null==l||null==(o=l.constructor)?void 0:o.name;if(e&&t.includes(e))return!0;l=null==l?void 0:l.parent}return!1}function uQ(e){let t=null==e?void 0:e.parent;if((null==t?void 0:t.use)==="QuickEditFormModel")return t.viewContainer}function uZ(e,t){let l=uQ(e);if(null==l?void 0:l.update){if(t)return void l.update({preventClose:!0});setTimeout(()=>{var e;null==(e=l.update)||e.call(l,{preventClose:!1})},0)}}function u0(e){let{options:t}=e,l=(0,f.useFlowViewContext)(),{data:o,loading:i}=(0,iH.useRequest)(async()=>await l.engine.loadOrCreateModel(t,{delegateToParent:!1,delegate:l,skipSave:!l.flowSettingsEnabled}),{refreshDeps:[l,t]});return!i&&(null==o?void 0:o.uid)?(0,m.jsx)(f.FlowModelRenderer,{model:o,fallback:(0,m.jsx)(iq,{style:{margin:16}})}):(0,m.jsx)(iq,{style:{margin:16}})}function u1(e){let{model:t,toOne:l=!1}=e,o=(0,f.useFlowContext)();o.defineProperty("flowSettingsEnabled",{get:()=>t.context.flowSettingsEnabled,cache:!1});let{Header:i,type:n}=o.view;return t._closeView=o.view.close,(0,m.jsxs)("div",{children:[(0,m.jsx)(i,{title:"dialog"===n?(0,m.jsx)("div",{style:{padding:`${o.themeToken.paddingLG}px ${o.themeToken.paddingLG}px 0`,marginBottom:-o.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:o.t("Create record")}):o.t("Create record")}),(0,m.jsx)(u0,{options:{parentId:o.view.inputArgs.parentId,subKey:"grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}})]})}let u2=(e,t)=>{var l,o;let i=null==(l=e.context.collectionField)?void 0:l.collection,r=null==i?void 0:i.dataSource,a=e.context.t,s=(null==(o=e.context.collectionField)?void 0:o.name)||e.fieldPath,d=(0,n.useMemo)(()=>{let e=a((null==r?void 0:r.displayName)||(null==r?void 0:r.key)||""),t=e?`${e} > `:"",l=i?`${a(i.title)||i.name||i.tableName} > `:"";return`${t}${l}${s}`},[i,null==r?void 0:r.displayName,null==r?void 0:r.key,s,a]);return t?null:a('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:d,actionName:"Update"}).replaceAll("&gt;",">")},u5=(0,A.css)`
851
851
  min-width: 0;
852
852
 
853
853
  .ant-select-selector {
@@ -885,7 +885,7 @@ if (!ctx.record) {
885
885
  text-overflow: ellipsis;
886
886
  white-space: nowrap !important;
887
887
  }
888
- `,u4=e=>{var t,l;let{fieldNames:o,value:i,multiple:r,allowMultiple:a,keepDropdownOpenOnSelect:s=!1,options:d,quickCreate:u,onChange:c,allowCreate:p=!0,allowEdit:h=!0,className:g,...y}=e,b=(0,f.useFlowModel)(),M=uI(o,null==b||null==(l=b.context)||null==(t=l.collectionField)?void 0:t.targetCollection),_=!!(r&&a),S=!!(s&&_),w=uH(d,i,_),F=(0,n.useRef)();F.current||(F.current=b.__keepOpenOnSelectRuntime||(b.__keepOpenOnSelectRuntime={open:void 0,preventCloseOnSelect:!1}));let k=F.current,[C,A]=(0,n.useState)(k.open),P=e=>{Object.assign(k,e),Object.prototype.hasOwnProperty.call(e,"open")&&A(k.open)},T=!!b.context.flowSettingsEnabled,{t:I}=(0,v.useTranslation)();uN({model:b,value:i,isMultiple:_,fieldNames:M,onChange:c});let L=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>y.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:I("Add")+` “${t}” `})]})},R=u2(b,h);return(0,m.jsxs)(x.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(x.Select,{style:{width:"100%"},...y,className:[u5,g].filter(Boolean).join(" "),allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(x.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(x.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>y.onCompositionEnd(e,!1),fieldNames:M,options:w,value:uV(i,M,_),mode:_?"multiple":void 0,open:S?C:void 0,onChange:(e,t)=>{c(t)},onSelect:(e,t)=>{var l;S&&P({preventCloseOnSelect:!0,open:!0}),null==(l=y.onSelect)||l.call(y,e,t)},onDropdownVisibleChange:e=>{var t,l;if(S){if(!e&&k.preventCloseOnSelect){P({preventCloseOnSelect:!1,open:!0}),null==(l=y.onDropdownVisibleChange)||l.call(y,!0);return}P({preventCloseOnSelect:!1,open:e})}uZ(b,e),null==(t=y.onDropdownVisibleChange)||t.call(y,e)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)("div",{onMouseDown:()=>{S&&P({preventCloseOnSelect:!0})},children:(0,m.jsx)(uB,{option:t,fieldNames:M})})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:u8,children:e.label}),dropdownRender:e=>{let t=w.some(e=>e[M.label]===y.searchText);return(0,m.jsx)(m.Fragment,{children:"quickAdd"===u&&p&&h&&y.searchText?(0,m.jsxs)(m.Fragment,{children:[!(0===w.length&&y.searchText)&&e,w.length>0&&y.searchText&&!t&&(0,m.jsx)(x.Divider,{style:{margin:0}}),!t&&(0,m.jsx)(L,{searchText:y.searchText})]}):e})}}),"modalAdd"===u&&(p&&h||T)&&(p&&h?(0,m.jsx)(x.Button,{onClick:y.onModalAddClick,children:I("Add new")}):(0,m.jsx)(aQ._T,{forbidden:{actionName:"create"},collection:b.collectionField.targetCollection,message:R,children:(0,m.jsx)(x.Button,{onClick:y.onModalAddClick,disabled:!h,style:{opacity:"0.3"},children:I("Add new")})}))]})};class u3 extends uC{get collectionField(){return this.context.collectionField}onInit(e){super.onInit(e),this.context.defineProperty("collection",{get:()=>{var e;return null==(e=this.context.collectionField)?void 0:e.targetCollection}}),this.setDataSource([])}set onPopupScroll(e){this.setProps({onPopupScroll:e})}set onDropdownVisibleChange(e){this.setProps({onDropdownVisibleChange:e})}set onSearch(e){this.setProps({onSearch:e})}setDataSource(e){this.setProps({options:e})}getDataSource(){return this.props.options}getFilterValue(){var e,t;let l=uI(this.props.fieldNames,null==(e=this.context.collectionField)?void 0:e.targetCollection);return Array.isArray(this.props.value)?this.props.value.map(e=>e[l.value]):null==(t=this.props.value)?void 0:t[l.value]}onMount(){this.onModalAddClick=e=>{this.dispatchEvent("openView",{event:e,onChange:this.props.onChange})},this.onDropdownAddClick=e=>{this.dispatchEvent("dropdownAdd",{search:e,onChange:this.props.onChange})}}set onModalAddClick(e){this.setProps({onModalAddClick:e})}set onDropdownAddClick(e){this.setProps({onDropdownAddClick:e})}change(e){this.props.onChange(e)}render(){return this.context.isMobileLayout?(0,m.jsx)(uJ,{...this.props,loading:this.resource.loading}):(0,m.jsx)(u4,{...this.props})}}let u6={page:1,pageSize:40,loading:!1,hasMore:!0},u9=e=>`__search__${e}`,u7=e=>`__assoc__${e}`;async function ce(e,t){try{var l,o,i,n;let t=e.model.collectionField.targetCollection,r=uI(e.model.props.fieldNames,t).label,a=t.getField(r);if(!a)return;let s=a.getInterfaceOptions(),d=(null==s||null==(i=s.filterable)||null==(o=i.operators)||null==(l=o[0])?void 0:l.value)||"$includes",u=null==(n=e.inputArgs.searchText)?void 0:n.trim(),c=e.model.resource,p=`${r}.${d}`;""===u?c.removeFilterGroup(u9(r)):(c.setPage(1),c.addFilterGroup(u9(r),{[p]:u})),await c.refresh();let m=c.getData();e.model.setDataSource(m),m.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++),e.model.setProps({searchText:u})}catch(t){console.error("AssociationSelectField search flow error:",t),e.model.setDataSource([])}}u3.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){var l;let o=u9(uI(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).label);e.model.onDropdownVisibleChange=t=>{t?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(o),u6.page=1)},e.model.onPopupScroll=t=>{e.model.dispatchEvent("popupScroll",{event:t,apiClient:e.app.apiClient})},e.model.onSearch=t=>{e.model.dispatchEvent("search",{searchText:t,apiClient:e.app.apiClient})}}}}}),u3.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{setScope:{async handler(e,t){var l;let o=uI(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).value,i=e.model.resource,n=e.model.getDataSource();i.setPage(1),await e.model.applyFlow("selectSettings"),await i.refresh();let{count:r}=i.getMeta(),a=i.getData();(!n||r!==n.length||a[0][o]!==n[0][o])&&(e.model.setDataSource(a),e.model.setProps({searchText:null}),a.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++))}}}}),u3.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{step1:{async handler(e,t){var l;let{scrollTop:o,scrollHeight:i,clientHeight:n}=(null==(l=e.inputArgs)?void 0:l.event).target;if(!(o+n<i-20)&&!u6.loading&&u6.hasMore){u6.loading=!0;try{let t=e.model.resource;t.setPage(u6.page),await t.refresh();let l=t.getData(),o=e.model.getDataSource()||[];e.model.setDataSource([...o,...l]),l.length<u6.pageSize?(u6.hasMore=!1,u6.page=1):u6.page++}catch(e){console.error("Scroll pagination request failed:",e)}finally{u6.loading=!1}}}}}});let ct=(0,g.debounce)(ce,500);u3.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:ct}}}),u3.registerFlow({key:"recordSelectSettings",sort:200,steps:{init:{async handler(e){var t,l,o;let i=e.createResource(f.MultiRecordResource),n=e.model.context.collectionField,{target:r,dataSourceKey:a,foreignKey:s}=n;i.setDataSourceKey(a),i.setResourceName(r),i.setPageSize(u6.pageSize);let d=(null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter,u=["oho","o2m"].includes(n.interface),c=(null==(o=e.item)?void 0:o.value)||e.record,p=null==c?void 0:c[null==n?void 0:n.sourceKey],m=[];if(!d&&null!=p&&u){let e=`${s}.$eq`;m.push({[e]:p})}if(!d&&u){let e=`${s}.$is`;m.push({[e]:null})}m.length>0&&i.addFilterGroup(u7(s),{$or:m}),e.model.resource=i}},allowEditCheck:{async handler(e){if(e.blockModel instanceof d9.EditFormModel){var t;let l=await e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:null==(t=e.collectionField)?void 0:t.collectionName,actionName:"update",fields:[e.collectionField.name]});e.model.setProps({allowEdit:!!l})}}}}}),u3.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings:e=>!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type),defaultParams:e=>({allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}),handler(e,t){e.model.setProps({allowMultiple:null==t?void 0:t.allowMultiple})}},quickCreate:{title:(0,f.tExpr)("Quick create"),uiMode(e){let t=e.t;return{type:"select",key:"quickCreate",props:{options:[{label:t("None"),value:"none"},{label:t("Dropdown"),value:"quickAdd"},{label:t("Pop-up"),value:"modalAdd"}]}}},hideInSettings(e){var t,l;return!!((null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter||uX(null==e?void 0:e.model,["SubTableColumnModel","SubTableFieldModel"]))},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}}),u3.registerFlow({key:"dropdownAdd",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"dropdownAdd"},steps:{dropdownAdd:{async handler(e,t){var l,o,i;if("quickAdd"!==e.model.props.quickCreate)return null;let{onChange:n,search:r}=e.inputArgs,a=await e.model.resource.create({[(null==(o=e.model.props)||null==(l=o.fieldNames)?void 0:l.label)||"id"]:r},{refresh:!1});a&&(n(["m2m","o2m"].includes(null==(i=e.collectionField)?void 0:i.interface)&&!1!==e.model.props.allowMultiple?[...e.model.props.value||[],a.data].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey])):a.data),e.message.success(e.t("Saved successfully")),e.model.setProps({searchText:null}))}}}}),u3.registerFlow({key:"popupSettings",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"openView"},steps:{openView:{title:(0,f.tExpr)("Edit popup"),uiSchema:e=>"modalAdd"!==e.model.props.quickCreate?null:{mode:{type:"string",title:(0,f.tExpr)("Open mode"),enum:[{label:(0,f.tExpr)("Drawer"),value:"drawer"},{label:(0,f.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,f.tExpr)("Popup size"),enum:[{label:(0,f.tExpr)("Small"),value:"small"},{label:(0,f.tExpr)("Medium"),value:"medium"},{label:(0,f.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var l,o,i,n,r;let{onChange:a}=e.inputArgs,s={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},d=e.inputArgs.mode||t.mode||"drawer",u=["belongsTo","hasOne"].includes(e.collectionField.type),c=e.inputArgs.size||t.size||"medium",p=null==(l=e.collectionField)?void 0:l.collection,h=(null==(o=e.item)?void 0:o.value)??e.record,f=h?null==p||null==(i=p.getFilterByTK)?void 0:i.call(p,h):void 0,g=null==(n=e.collectionField)?void 0:n.resourceName,v=uL(e,e.inputArgs);e.viewer.open({type:d,width:s[d][c],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"create",dataSourceKey:e.collection.dataSourceKey,collectionName:null==(r=e.collectionField)?void 0:r.target,...g&&null!=f?{associationName:g,sourceId:f}:{},collectionField:e.collectionField,openerUids:v,onChange:t=>{if(u||!e.model.props.allowMultiple){a(t);let l=e.model.getDataSource()||[];l.push(t),e.model.setDataSource(l)}else{let l=[...e.model.props.value||[],t].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey]));a(l);let o=e.model.getDataSource()||[];e.model.setDataSource(o.concat(l))}}},content:()=>(0,m.jsx)(u1,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===d?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}}),u3.define({label:(0,f.tExpr)("Dropdown select")}),f.EditableItemModel.bindModelToInterface("RecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,order:1});class cl extends u3{onInit(e){var t;super.onInit(e);let l=null==(t=this.getStepParams("selectSettings","allowMultiple"))?void 0:t.allowMultiple,o="boolean"==typeof l?l:"boolean"!=typeof this.props.allowMultiple||this.props.allowMultiple;this.setProps({allowMultiple:o,multiple:o,quickCreate:"none"})}}cl.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},defaultParams:{allowMultiple:!0},handler(e,t){var l;let o=null==(l=e.model.getStepParams("selectSettings","allowMultiple"))?void 0:l.allowMultiple,i="boolean"==typeof(null==t?void 0:t.allowMultiple)?t.allowMultiple:"boolean"==typeof o?o:"boolean"!=typeof e.model.props.allowMultiple||e.model.props.allowMultiple;e.model.setProps({allowMultiple:i,multiple:i})}}}}),cl.define({label:(0,f.tExpr)("Dropdown select")}),f.FilterableItemModel.bindModelToInterface("FilterFormRecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,defaultProps:{allowMultiple:!0,multiple:!0,quickCreate:"none"}});var co=__nested_rspack_require_1264766__(6832);class ci extends uk{render(){return(0,m.jsx)(co.DateFilterDynamicComponent,{...this.props})}}let cn=e=>{let{value:t,format:l="YYYY-MM-DD",picker:o="date",showTime:i,...n}=e,r={...n,value:t,format:l,picker:o,showTime:i};return(0,m.jsx)(co.DateFilterDynamicComponent,{...r})};class cr extends ci{setProps(e){super.setProps({...e,showTime:!1,utc:!1})}render(){return(0,m.jsx)(cn,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});let ca=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",showTime:o,picker:i="date",...n}=e,r=o&&"date"===i?"YYYY-MM-DD":l;return(0,m.jsx)(co.DateFilterDynamicComponent,{...n,value:t,format:r,picker:i,showTime:o})};class cs extends ci{render(){return(0,m.jsx)(ca,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});let cd=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",picker:o="date",showTime:i,...n}=e,r=i&&"date"===o?"YYYY-MM-DD":l,a={...n,value:t,format:r,picker:o,showTime:i};return(0,m.jsx)(co.DateFilterDynamicComponent,{...a})};class cu extends ci{setProps(e){super.setProps({...e,utc:!0})}render(){return(0,m.jsx)(cd,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});let cc="recordSelectDataSourceKey",cp="recordSelectTargetCollection",cm="recordSelectTitleField",ch="recordSelectValueField",cf="allowMultiple",cg="multiple",cv="valueMode",cy=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),cb=e=>{var t,l,o,i,r;let{fieldModel:a,source:s=[]}=e,d=(0,lI.useField)(),{t:u}=(0,v.useTranslation)(),c=d.value||{},p=a||(null==c?void 0:c.fieldModel),h=(0,f.useFlowEngine)(),g=(0,f.useFlowContext)(),y=(null==g?void 0:g.dataSourceManager)||(null==h?void 0:h.dataSourceManager)||(null==g||null==(t=g.app)?void 0:t.dataSourceManager),b=(0,et.Sx)(y),M=(0,n.useCallback)(e=>(0,et.w6)(e,y),[y]),_=()=>d.value||{},S=(e,t)=>{d.setValue({..._(),[e]:t})},w=e=>{var t;(null==d||null==(t=d.form)?void 0:t.setValuesIn)&&(null==d?void 0:d.path)?d.form.setValuesIn(d.path,e):d.setValue(e)},F=e=>{var t,l,o,i;let n=`${d.path.toString()}.${e}`,r=null==(i=d.form)||null==(o=i.query)||null==(l=o.call(i,n))||null==(t=l.take)?void 0:t.call(l);return(Array.isArray(null==r?void 0:r.errors)?r.errors:[]).flatMap(e=>e?Array.isArray(e.messages)?e.messages:e.messages?[e.messages]:[]:[]).filter(Boolean)},k=e=>{let t=F(e);return t.length?{feedbackStatus:"error",feedbackText:t.join(", ")}:{}};(0,n.useEffect)(()=>{var e,t,l,o,i,n,r;let a=s.length?s:(null==c?void 0:c.source)||[];if(!a.length)return;let u=!!(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSource)?void 0:e.call(t,a[0])),m=(null==h||null==(o=h.dataSourceManager)||null==(l=o.getDataSources)?void 0:l.call(o))??[],v=(u?a[0]:void 0)||(null==c?void 0:c[cc])||(null==(i=m[0])?void 0:i.key)||"main",y=(u?a.slice(1):a).join("."),b=h.dataSourceManager.getCollectionField(`${v}.${y}`),x=f.FilterableItemModel.getDefaultBindingByField(g.model.context,b);if(!b&&"FilterFormCustomRecordSelectFieldModel"!==p||!x&&"FilterFormCustomRecordSelectFieldModel"!==p)return;let M=(null==b||null==(n=b.getComponentProps)?void 0:n.call(b))||{},S={...(x&&"function"==typeof x.defaultProps?x.defaultProps(g.model.context,d):null==x?void 0:x.defaultProps)||{},...M,..._()};if(("FilterFormCustomRecordSelectFieldModel"===p||!p&&(null==b?void 0:b.target))&&(null==b?void 0:b.target)){let e=b.targetCollection||h.dataSourceManager.getCollection(b.dataSourceKey,b.target);S[cc]=b.dataSourceKey||v,S[cp]=b.target,S[cm]=b.targetCollectionTitleFieldName||(null==e||null==(r=e.titleCollectionField)?void 0:r.name)||S[cm],S[ch]=S[ch]||(null==e?void 0:e.filterTargetKey)||"id",void 0===S[cf]&&void 0===S[cg]&&(S[cf]=!0,S[cg]=!0),S[cv]||(S[cv]="value")}w(S)},[a,p,s.join("."),null==c?void 0:c.source,h]);let C=(0,n.useMemo)(()=>{var e,t;return(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSources)?void 0:e.call(t))??[]},[h]),A=(0,n.useMemo)(()=>C.map(e=>({label:e.displayName??e.key,value:e.key})),[C]),P=(null==c?void 0:c[cc])||(null==(l=C[0])?void 0:l.key)||"main",T=P?null==h||null==(i=h.dataSourceManager)||null==(o=i.getDataSource)?void 0:o.call(i,P):void 0,I=null==c?void 0:c[cp],L=I?null==T||null==(r=T.getCollection)?void 0:r.call(T,I):void 0,R=(0,n.useCallback)(e=>e?(null==g?void 0:g.t)?g.t(e):u(e):e,[g,u]),j=(0,n.useMemo)(()=>(null==T?void 0:T.getCollections)?T.getCollections().filter(e=>{var t;return!(null==(t=e.options)?void 0:t.hidden)}).map(e=>({label:R(e.title)||e.name,value:e.name})):[],[T,R]),D=(0,n.useMemo)(()=>{if(!(null==L?void 0:L.getFields))return[];let e=e=>{if(!b)return!0;let t=(null==e?void 0:e.options)||e;return(0,et.w)(M(null==t?void 0:t.interface))};return(L.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:R(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||R(e.title)||e.name,value:e.name}})},[L,M,b,R]),E=(0,n.useMemo)(()=>{if(!(null==L?void 0:L.getFields))return[];let e=e=>{let t=(null==e?void 0:e.options)||{},l=t.interface||(null==e?void 0:e.interface);if(!1===t.filterable||!l)return!1;if(b){let e=M(l);if(!(null==e?void 0:e.filterable))return!1}let o=t.type||(null==e?void 0:e.type);return!cy.has(o)};return(L.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:R(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||R(e.title)||e.name,value:e.name}})},[L,M,b,R]);if((0,n.useEffect)(()=>{var e;if("FilterFormCustomRecordSelectFieldModel"!==p||!I||(null==c?void 0:c[cm]))return;let t=null==L||null==(e=L.titleCollectionField)?void 0:e.name;t&&d.setValue({..._(),[cm]:t})},[a,p,I,L,c]),(0,n.useEffect)(()=>{if("FilterFormCustomRecordSelectFieldModel"!==p||!I)return;let e=null==c?void 0:c[ch],t=E.map(e=>e.value);if(e&&t.includes(e))return;let l=null==L?void 0:L.filterTargetKey,o=l&&t.includes(l)&&l||t[0];o&&d.setValue({..._(),[ch]:o})},[a,p,I,L,c,E]),(0,n.useEffect)(()=>{"FilterFormCustomRecordSelectFieldModel"!==p||(null==c?void 0:c[cf])===void 0&&(null==c?void 0:c[cg])===void 0&&d.setValue({..._(),[cf]:!0,[cg]:!0})},[a,p,c]),"DateTimeFilterFieldModel"===a)return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(ni.FormItem,{label:u("Date format"),children:(0,m.jsxs)(x.Radio.Group,{value:c.format||"YYYY-MM-DD",onChange:e=>S("format",e.target.value),children:[(0,m.jsx)(x.Radio,{value:"YYYY/MM/DD",children:u("Year/Month/Day")}),(0,m.jsx)(x.Radio,{value:"YYYY-MM-DD",children:u("Year-Month-Day")}),(0,m.jsx)(x.Radio,{value:"DD/MM/YYYY",children:u("Day/Month/Year")})]})}),(0,m.jsx)(ni.FormItem,{label:u("Time"),children:(0,m.jsx)(x.Checkbox,{checked:c.showTime,onChange:e=>S("showTime",e.target.checked),children:u("Show time")})}),(0,m.jsx)(ni.FormItem,{label:u("Date range"),children:(0,m.jsx)(x.Checkbox,{checked:c.isRange,onChange:e=>S("isRange",e.target.checked),children:u("Show date range")})})]});if("SelectFieldModel"===a){let e=c.options||[];return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(ni.FormItem,{label:u("Mode"),children:(0,m.jsxs)(x.Radio.Group,{value:c.mode||"",onChange:e=>S("mode",e.target.value),children:[(0,m.jsx)(x.Radio,{value:"",children:u("Single select")}),(0,m.jsx)(x.Radio,{value:"multiple",children:u("Multiple select")})]})}),(0,m.jsx)(ni.FormItem,{label:u("Options"),children:(0,m.jsxs)(x.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(x.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let i=[...e];i[l]={...t,label:o.target.value},S("options",i)}}),(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let i=[...e];i[l]={...t,value:o.target.value},S("options",i)}}),(0,m.jsx)(x.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{S("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(x.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{S("options",[...e,{label:"",value:""}])},children:u("Add")})]})})]})}if("CheckboxGroupFieldModel"===a||"RadioGroupFieldModel"===a){let e=c.options||[];return(0,m.jsx)(ni.FormItem,{label:u("Options"),children:(0,m.jsxs)(x.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(x.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let i=[...e];i[l]={...t,label:o.target.value},S("options",i)}}),(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let i=[...e];i[l]={...t,value:o.target.value},S("options",i)}}),(0,m.jsx)(x.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{S("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(x.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{S("options",[...e,{label:"",value:""}])},children:u("Add")})]})})}return"FilterFormCustomRecordSelectFieldModel"===p?(0,m.jsxs)(m.Fragment,{children:[A.length>1&&(0,m.jsx)(ni.FormItem,{label:u("Data source"),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:P,options:A,onChange:e=>{d.setValue({...c,[cc]:e,[cp]:void 0,[cm]:void 0})}})}),(0,m.jsx)(ni.FormItem,{label:u("Target collection"),asterisk:!0,...k(cp),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Select collection"),value:I,options:j,onChange:e=>{d.setValue({...c,[cp]:e,[cm]:void 0})}})}),(0,m.jsx)(ni.FormItem,{label:u("Title field"),asterisk:!0,...k(cm),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cm],options:D,onChange:e=>S(cm,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Used for display in the dropdown and selected tags.")}),(0,m.jsx)(ni.FormItem,{label:u("Value field"),asterisk:!0,...k(ch),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[ch],options:E,onChange:e=>S(ch,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Stored as the field value for filtering (usually the primary key).")}),(0,m.jsx)(ni.FormItem,{label:u("Multiple"),children:(0,m.jsx)(x.Checkbox,{checked:(null==c?void 0:c[cf])!==!1,onChange:e=>{let t=e.target.checked;d.setValue({...c,[cf]:t,[cg]:t})},children:u("Allow multiple selection")})})]}):null};function cx(e){let{source:t=[],onChange:l}=e,o=(0,f.useFlowEngine)(),i=(0,f.useFlowContext)(),r=e.valueMap||{},a=t.join("."),s=(0,n.useRef)(),d=(0,n.useMemo)(()=>e=>r&&r[e]?r[e]:e,[r]),u=(0,n.useMemo)(()=>{if(!t.length)return;let e=o.dataSourceManager.getCollectionField(a),l=f.FilterableItemModel.getDefaultBindingByField(i.model.context,e);if(l)return d(l.modelName)},[a,d]);return(0,n.useEffect)(()=>{if(!u){s.current=a;return}let t=void 0!==s.current&&s.current!==a;s.current=a;let o=d(e.value);if(e.value&&e.value!==o&&o!==u){null==l||l(o);return}(!e.value||t)&&o!==u&&(null==l||l(u))},[u,l,e.value,a,d]),(0,m.jsx)(ni.Select,{allowClear:!0,...e,value:d(e.value??u)})}let cM={InputFieldModel:et.II.string,NumberFieldModel:et.II.number,DateTimeFilterFieldModel:et.II.datetime,SelectFieldModel:e=>(null==e?void 0:e.mode)==="multiple"?et.II.array:et.II.enumType,RadioGroupFieldModel:et.II.enumType,CheckboxGroupFieldModel:et.II.array},c_=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),cS={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cw={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cF={input:et.II.string,email:et.II.string,phone:et.II.string,uuid:et.II.string,url:et.II.string,nanoid:et.II.string,textarea:et.II.string,markdown:et.II.bigField,vditor:et.II.bigField,richText:et.II.bigField,password:et.II.string,color:et.II.string,number:et.II.number,integer:et.II.number,id:et.II.id,snowflakeId:et.II.number,dateOnly:et.II.datetime,datetime:et.II.datetime,datetimeNoTz:et.II.datetime,unixTimestamp:et.II.datetime,time:et.II.time,select:et.II.enumType,multipleSelect:et.II.array,radioGroup:et.II.enumType,checkboxGroup:et.II.array,checkbox:et.II.boolean};function ck(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=cM[e];return l?"function"==typeof l?l(t)||[]:l||[]:[]}function cC(e){var t,l,o,i;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;if(!Array.isArray(n)||0===n.length)return;let a=!!(null==e||null==(l=e.dataSourceManager)||null==(t=l.getDataSource)?void 0:t.call(l,n[0])),s=a?n[0]:r||"main",d=(a?n.slice(1):n).join(".");if(d)return null==e||null==(i=e.dataSourceManager)||null==(o=i.getCollectionField)?void 0:o.call(i,`${s}.${d}`)}function cA(e){var t,l,o,i;let n;if(!e)return[];let r=null==(t=e.filterable)?void 0:t.operators;if(Array.isArray(r)&&r.length>0)return r;try{n=null==(i=e.getInterfaceOptions)||null==(o=i.call(e))||null==(l=o.filterable)?void 0:l.operators}catch(e){n=void 0}return Array.isArray(n)&&n.length>0?n:e.interface&&cF[e.interface]?cF[e.interface]:(null===et.II||void 0===et.II?void 0:et.II[e.type])||[]}function cP(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return"boolean"==typeof(null==e?void 0:e.multiple)?e.multiple:"boolean"!=typeof(null==e?void 0:e.allowMultiple)||e.allowMultiple}function cT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Set;return e.filter(e=>!(!(null==e?void 0:e.value)||t.has(e.value))&&(t.add(e.value),!0))}function cI(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.some(e=>(null==e?void 0:e.value)==="$in"),l=e.some(e=>(null==e?void 0:e.value)==="$notIn"),o=e.filter(e=>c_.has(null==e?void 0:e.value)&&(null==e?void 0:e.value)!=="$in"&&(null==e?void 0:e.value)!=="$notIn"||(null==e?void 0:e.noValue)||(null==e?void 0:e.value)==="$exists"||(null==e?void 0:e.value)==="$notExists"),i=e.some(e=>(null==e?void 0:e.value)&&!e.noValue&&"$exists"!==e.value&&"$notExists"!==e.value),n=i||t,r=i||l,a=[];return n&&a.push(cS),r&&a.push(cw),cT([...a,...o])}function cL(e){var t,l,o,i,n;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s=cC(e,a,null==r?void 0:r.recordSelectDataSourceKey),d=(null==s?void 0:s.dataSourceKey)||(null==a?void 0:a[0])||"main",u=(null==r?void 0:r.recordSelectDataSourceKey)||d,c=(null==r?void 0:r.recordSelectTargetCollection)||(null==s||null==(t=s.targetCollection)?void 0:t.name)||(null==s?void 0:s.target);if(!c)return;let p=null==e||null==(o=e.dataSourceManager)||null==(l=o.getCollection)?void 0:l.call(o,u,c);if(!p)return;let m=(null==r?void 0:r.recordSelectValueField)||(null==p?void 0:p.filterTargetKey)||(null==p||null==(i=p.getPrimaryKey)?void 0:i.call(p));if(m)return null==(n=p.getField)?void 0:n.call(p,m)}function cR(e){let{flowEngine:t,fieldModelProps:l={},source:o=[]}=e,i=cL(t,l,o),n=cA(i);return{operatorList:cP(l)?cI(n):n,meta:i}}function cj(e){let{flowEngine:t,fieldModel:l,fieldModelProps:o={},source:i=[]}=e;if("FilterFormCustomRecordSelectFieldModel"===l)return cR(e);let n=cC(t,i);if("SelectFieldModel"===l&&(null==o?void 0:o.mode)==="multiple"&&n){let e=cA(n);return{operatorList:a0(n)?ck(l,o):cI(e),meta:n}}let r=ck(l,o);return r.length>0?{operatorList:r,meta:{fieldModel:l}}:{operatorList:cA(n),meta:n}}function cD(e){let{operatorList:t,meta:l}=cj(e);return cT((t||[]).filter(e=>!(null==e?void 0:e.visible)||e.visible(l)))}function cE(e){var t,l;let{fieldModel:o,fieldModelProps:i={}}=e,n=cD(e);if("DateTimeFilterFieldModel"===o&&(null==i?void 0:i.isRange)){let e=n.find(e=>"$dateBetween"===e.value);if(e)return e.value}return(null==(t=n.find(e=>e.selected))?void 0:t.value)||(null==(l=n[0])?void 0:l.value)}function cY(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return e.map(e=>({...e,label:t(e.label),value:e.value}))}let cN=(0,f.observer)(e=>{var t;let{fieldModel:l,source:o=[],fieldModelProps:i={},value:r,onChange:a,...s}=e,d=(0,lI.useField)(),u=(0,f.useFlowEngine)(),c=(0,f.useFlowContext)(),p=(null==d||null==(t=d.form)?void 0:t.values)||{},h=l||(null==p?void 0:p.fieldModel),g=o.length?o:(null==p?void 0:p.source)||[],v=(null==p?void 0:p.fieldModelProps)&&Object.keys(p.fieldModelProps).length>0?p.fieldModelProps:i,y=Array.isArray(g)?g.join("."):"",b=null==v?void 0:v.mode,x=null==v?void 0:v.allowMultiple,M=null==v?void 0:v.multiple,_=null==v?void 0:v.recordSelectDataSourceKey,S=null==v?void 0:v.recordSelectTargetCollection,w=null==v?void 0:v.recordSelectValueField,F=(0,n.useMemo)(()=>cD({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v}),[u,h,y,b,x,M,_,S,w]),k=(0,n.useMemo)(()=>cY(F,e=>c.t(e)),[F,c]);return(0,n.useEffect)(()=>{if(!k.length){void 0!==r&&(null==a||a(void 0));return}if(k.some(e=>e.value===r))return;let e=cE({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v});e!==r&&(null==a||a(e))},[u,h,a,k,y,r,b,x,M,_,S,w]),(0,m.jsx)(ni.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c.t("Please select"),...s,options:k,value:r,onChange:a,disabled:0===k.length})});class cO extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FilterFormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o;let[i,n]=t,r={key:i,label:e.t(n.meta.label),sort:n.meta.sort??999,searchable:!!(null==(l=n.meta)?void 0:l.searchable),searchPlaceholder:null==(o=n.meta)?void 0:o.searchPlaceholder};return r.createModelOptions={use:i},r});return g.default.sortBy([...o(t),...o(l)],"sort")}}function cB(e){let t=(0,f.useFlowEngine)(),l=(0,n.useCallback)(()=>{let e=null==t?void 0:t.dataSourceManager;return e?e.getDataSources().map(e=>({value:e.key,label:e.displayName??e.key,isLeaf:!1,meta:{type:"dataSource",dataSourceKey:e.key}})):[]},[t]),[o,i]=(0,n.useState)(()=>l());(0,n.useEffect)(()=>{i(l())},[l]);let r=(0,n.useCallback)(e=>{var l;let o=e[e.length-1];if(!o||(null==(l=o.children)?void 0:l.length))return;let n=null==t?void 0:t.dataSourceManager;if(!n)return;let r=[];if(1===e.length){let e=o.value,t=n.getDataSource(e);r=((null==t?void 0:t.getCollections())??[]).map(t=>({value:t.name,label:t.title,isLeaf:!1,meta:{type:"collection",dataSourceKey:e,collectionName:t.name,fullPath:t.name}}))}else{let e=o.meta||{},t=e.dataSourceKey,l=n.getDataSource(t),a=null==l?void 0:l.collectionManager;if(!l||!a){o.isLeaf=!0,i(e=>[...e]);return}if("collection"===e.type){let l=a.getCollection(e.collectionName);r=((null==l?void 0:l.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,i=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!i,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}else if("field"===e.type){let o=l.getCollectionField(e.fullPath),i=null==o?void 0:o.targetCollection;r=((null==i?void 0:i.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,i=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!i,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}}r.length?o.children=r:o.isLeaf=!0,i(e=>[...e])},[t]);return(0,m.jsx)(x.Cascader,{allowClear:!0,...e,options:o,loadData:r})}cO.renderMode=f.ModelRenderMode.RenderFunction,cO.define({hide:!0,label:(0,f.tExpr)("Others")});var cV=__nested_rspack_require_1264766__(6175);let cH=(e,t,l)=>{var o,i,n;if((null==l||null==(i=l.form)||null==(o=i.values)?void 0:o.fieldModel)==="FilterFormCustomRecordSelectFieldModel"&&(null==e||""===e))return(null==l||null==(n=l.t)?void 0:n.call(l,"The field value is required"))||"The field value is required"};class cq extends cO{buildRecordSelectCollectionField(e,t){var l,o,i,n,r,a;let s=(null==t?void 0:t.recordSelectDataSourceKey)||"main",d=null==t?void 0:t.recordSelectTargetCollection;if(!d)return;let u=null==(o=e.dataSourceManager)||null==(l=o.getDataSource)?void 0:l.call(o,s),c=null==u||null==(i=u.getCollection)?void 0:i.call(u,d);if(!u||!c)return;let p=(null==t?void 0:t.recordSelectTitleField)||(null==(n=c.titleCollectionField)?void 0:n.name)||(null==(a=c.titleCollectionField)||null==(r=a.options)?void 0:r.name),m=(null==t?void 0:t.recordSelectValueField)||c.filterTargetKey||"id",h=new f.CollectionField({name:(null==t?void 0:t.name)||"recordSelect",interface:"m2o",type:"belongsTo",target:d,dataSourceKey:s,uiSchema:{"x-component":"Select"},fieldNames:{label:p,value:m}});return h.setCollection(c),h}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}onInit(e){super.onInit(e),this.debouncedDoFilter=(0,g.debounce)(this.doFilter.bind(this),300)}onUnmount(){super.onUnmount(),this.debouncedDoFilter.cancel()}doFilter(){this.context.filterManager.refreshTargetsByFilter(this.uid)}doReset(){this.context.filterManager.refreshTargetsByFilter(this.uid)}getFilterValue(){var e,t,l,o;let i=(null==(e=this.customFieldModelInstance)?void 0:e.getFilterValue)?this.customFieldModelInstance.getFilterValue():null==(t=this.context.form)?void 0:t.getFieldValue(this.props.name),n=this.getCurrentOperatorMeta(),r=(0,cV.S)(this.operator,i);return(null==n?void 0:n.noValue)&&!Array.isArray(null==n||null==(o=n.schema)||null==(l=o["x-component-props"])?void 0:l.options)||r}getCurrentOperatorMeta(){let e=this.getStepParams("formItemSettings","fieldSettings")||{},t=e.fieldModel,l=e.source||[],o=this.customFieldProps||e.fieldModelProps||{},i=cD({flowEngine:this.flowEngine,fieldModel:t,source:l,fieldModelProps:o}),n=this.operator||e.operator;return n&&i.find(e=>e.value===n)||null}getValueProps(e){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,g.isEqual)(this.lastAutoTriggerValue,e)||(this.lastAutoTriggerValue=(0,g.cloneDeep)(e),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,g.cloneDeep)(e))),{value:e,onKeyDown:this.handleEnterPress.bind(this)}}render(){return this.customFieldModelInstance?(0,m.jsx)(f.FormItem,{...this.props,getValueProps:this.getValueProps.bind(this),children:(0,m.jsx)(f.FieldModelRenderer,{model:this.customFieldModelInstance})}):null}constructor(...e){super(...e),this.customFieldModelInstance=null,this.customFieldProps=null,this.autoTriggerInitialized=!1,this.handleEnterPress=e=>{"Enter"===e.key&&(e.preventDefault(),this.doFilter())}}}cq.define({label:'{{t("Custom field")}}',sort:1}),cq.registerFlow({key:"formItemSettings",title:(0,f.tExpr)("Form item settings"),steps:{fieldSettings:{preset:!0,title:(0,f.tExpr)("Field settings"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},name:{type:"string",title:(0,f.tExpr)("Field name"),"x-component":"Input","x-decorator":"FormItem",required:!0,description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")}}'},source:{type:"array",title:(0,f.tExpr)("Field source"),"x-decorator":"FormItem","x-component":cB,"x-component-props":{placeholder:(0,f.tExpr)("Select a source field to use metadata of the field")},description:(0,f.tExpr)("Select a source field to use metadata of the field")},fieldModel:{type:"string",title:(0,f.tExpr)("Field type"),"x-component":cx,"x-decorator":"FormItem",required:!0,enum:[{label:(0,f.tExpr)("Input"),value:"InputFieldModel"},{label:(0,f.tExpr)("Number"),value:"NumberFieldModel"},{label:(0,f.tExpr)("Date"),value:"DateTimeFilterFieldModel"},{label:(0,f.tExpr)("Select"),value:"SelectFieldModel"},{label:(0,f.tExpr)("Radio group"),value:"RadioGroupFieldModel"},{label:(0,f.tExpr)("Checkbox group"),value:"CheckboxGroupFieldModel"},{label:(0,f.tExpr)("Record select"),value:"FilterFormCustomRecordSelectFieldModel"}],"x-component-props":{placeholder:(0,f.tExpr)("Please select"),valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}},"x-reactions":[{dependencies:["source"],fulfill:{state:{componentProps:{source:"{{$deps[0]}}",valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}}}}}]},fieldModelProps:{type:"object",title:(0,f.tExpr)("Component properties"),"x-component":cb,properties:{recordSelectTargetCollection:{type:"string","x-validator":cH},recordSelectTitleField:{type:"string","x-validator":cH},recordSelectValueField:{type:"string","x-validator":cH}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,f.tExpr)("Operator"),"x-component":cN,"x-decorator":"FormItem",required:!0,"x-reactions":[{dependencies:["fieldModel","source","fieldModelProps"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}",fieldModelProps:"{{$deps[2] || {}}}"}}}}]}},defaultParams:e=>({name:`f_${(0,L.uid)().slice(0,4)}`}),handler(e,t){var l,o;let i,{fieldModel:n,fieldModelProps:r={},title:a,name:s,source:d=[],operator:u}=t;e.model.setProps({label:a,name:s});let c=r;if("FilterFormCustomRecordSelectFieldModel"===n){let t=(null==r?void 0:r.allowMultiple)===void 0||!!(null==r?void 0:r.allowMultiple),o=(null==r?void 0:r.multiple)===void 0?t:!!(null==r?void 0:r.multiple);if(c={...r,allowMultiple:t,multiple:o,valueMode:(null==r?void 0:r.valueMode)||"value"},i=e.model.buildRecordSelectCollectionField(e,{...c,name:s})){let e=(null==r?void 0:r.recordSelectTitleField)||i.targetCollectionTitleFieldName,t=(null==r?void 0:r.recordSelectValueField)||(null==(l=i.targetCollection)?void 0:l.filterTargetKey)||"id";e&&t&&(c={...c,fieldNames:{label:e,value:t}})}}if(e.model.customFieldModelInstance?e.model.customFieldModelInstance.setProps({allowClear:!0,...c}):e.model.customFieldModelInstance=e.model.flowEngine.createModel({use:n,props:{allowClear:!0,...c}}),"FilterFormCustomRecordSelectFieldModel"===n){let t=(null==c?void 0:c.recordSelectTitleField)||(null==c||null==(o=c.fieldNames)?void 0:o.label);t&&e.model.customFieldModelInstance.setStepParams("selectSettings","fieldNames",{label:t})}i&&e.model.customFieldModelInstance.context.defineProperty("collectionField",{value:i});let p=!!cD({flowEngine:e.model.flowEngine,fieldModel:n,source:d,fieldModelProps:c}).find(e=>e.value===u);e.model.operator=(p?u:void 0)||cE({flowEngine:e.model.flowEngine,fieldModel:n,source:d,fieldModelProps:c}),e.model.customFieldProps=c}},connectFields:{use:"connectFields"}}});let c$="__filter_form_value_options__",cU=(e,t)=>null!=e&&""!==e&&("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&(!t||!/(int|big)/i.test(t)||/^-?\d+$/.test(e))),cz=(e,t)=>{if("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},cK=(e,t,l,o,i,n)=>{let r=new Map;t.forEach(e=>{if(!e||"object"!=typeof e)return;let t=null==e?void 0:e[o],i=null==e?void 0:e[l];null!=t&&null!=i&&r.set(t,i)});let a=e=>{if(null==e)return;if("object"==typeof e){let t=null==e?void 0:e[l];if(null!=t)return t;let i=(null==e?void 0:e[o])??(null==e?void 0:e.value);if(o===l)return i;let a=r.get(i);return null!=a?a:cz(i,n)}if(o===l)return e;let t=r.get(e);return null!=t?t:cz(e,n)};return(i&&Array.isArray(e)?e:[e]).map(e=>a(e)).filter(e=>cU(e,n))},cG=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments.length>2?arguments[2]:void 0,o=new Map;return[...e,...t].forEach(e=>{let t=null==e?void 0:e[l];null!=t&&o.set(t,e)}),Array.from(o.values())},cW=(e,t)=>{var l,o;let i=null==e||null==(l=e.context)?void 0:l.collectionField,r=null==i?void 0:i.collection,a=null==r?void 0:r.dataSource,s=null==e||null==(o=e.context)?void 0:o.t,d=(null==i?void 0:i.name)||e.fieldPath,u=(0,n.useMemo)(()=>{if(!s||!a)return"";let e=`${s(a.displayName||a.key)} > `,t=r?`${s(r.title)||r.name||r.tableName} > `:"";return`${e}${t}${d}`},[s,a,r,d]);return!t&&s&&a?s('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:u,actionName:"Update"}).replaceAll("&gt;",">"):null},cJ=e=>{var t;let{fieldNames:l={label:"label",value:"value"},value:o,multiple:i,allowMultiple:n,options:r,quickCreate:a,onChange:s,allowCreate:d=!0,allowEdit:u=!0,valueMode:c="record",...p}=e,h=!!(i&&n),g=uH(r,o,h),y=(0,f.useFlowModel)(),b=!!y.context.flowSettingsEnabled,{t:M}=(0,v.useTranslation)(),_=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>p.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:M("Add")+` “${t}” `})]})},S=cW(y,u);return(0,m.jsxs)(x.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(x.Select,{style:{width:"100%"},...p,allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(x.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(x.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>p.onCompositionEnd(e,!1),fieldNames:l,options:g,value:uV(o,l,h,c,g),mode:h?"multiple":void 0,onChange:(e,t)=>{"value"===c?Array.isArray(t)?s(t.map(e=>(null==e?void 0:e[l.value])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):s((null==t?void 0:t[l.value])??(null==t?void 0:t.value)):s(t)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)(uB,{option:t,fieldNames:l})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:(0,A.css)`
888
+ `,u4=e=>{var t,l;let{fieldNames:o,value:i,multiple:r,allowMultiple:a,keepDropdownOpenOnSelect:s=!1,options:d,quickCreate:u,onChange:c,allowCreate:p=!0,allowEdit:h=!0,className:g,...y}=e,b=(0,f.useFlowModel)(),M=uI(o,null==b||null==(l=b.context)||null==(t=l.collectionField)?void 0:t.targetCollection),_=!!(r&&a),S=!!(s&&_),w=uH(d,i,_),F=(0,n.useRef)();F.current||(F.current=b.__keepOpenOnSelectRuntime||(b.__keepOpenOnSelectRuntime={open:void 0,preventCloseOnSelect:!1}));let k=F.current,[C,A]=(0,n.useState)(k.open),P=e=>{Object.assign(k,e),Object.prototype.hasOwnProperty.call(e,"open")&&A(k.open)},T=!!b.context.flowSettingsEnabled,{t:I}=(0,v.useTranslation)();uN({model:b,value:i,isMultiple:_,fieldNames:M,onChange:c});let L=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>y.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:I("Add")+` “${t}” `})]})},R=u2(b,h);return(0,m.jsxs)(x.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(x.Select,{style:{width:"100%"},...y,className:[u5,g].filter(Boolean).join(" "),allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(x.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(x.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>y.onCompositionEnd(e,!1),fieldNames:M,options:w,value:uV(i,M,_),mode:_?"multiple":void 0,open:S?C:void 0,onChange:(e,t)=>{c(t)},onSelect:(e,t)=>{var l;S&&P({preventCloseOnSelect:!0,open:!0}),null==(l=y.onSelect)||l.call(y,e,t)},onDropdownVisibleChange:e=>{var t,l;if(S){if(!e&&k.preventCloseOnSelect){P({preventCloseOnSelect:!1,open:!0}),null==(l=y.onDropdownVisibleChange)||l.call(y,!0);return}P({preventCloseOnSelect:!1,open:e})}uZ(b,e),null==(t=y.onDropdownVisibleChange)||t.call(y,e)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)("div",{onMouseDown:()=>{S&&P({preventCloseOnSelect:!0})},children:(0,m.jsx)(uB,{option:t,fieldNames:M})})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:u8,children:e.label}),dropdownRender:e=>{let t=w.some(e=>e[M.label]===y.searchText);return(0,m.jsx)(m.Fragment,{children:"quickAdd"===u&&p&&h&&y.searchText?(0,m.jsxs)(m.Fragment,{children:[!(0===w.length&&y.searchText)&&e,w.length>0&&y.searchText&&!t&&(0,m.jsx)(x.Divider,{style:{margin:0}}),!t&&(0,m.jsx)(L,{searchText:y.searchText})]}):e})}}),"modalAdd"===u&&(p&&h||T)&&(p&&h?(0,m.jsx)(x.Button,{onClick:y.onModalAddClick,children:I("Add new")}):(0,m.jsx)(aQ._T,{forbidden:{actionName:"create"},collection:b.collectionField.targetCollection,message:R,children:(0,m.jsx)(x.Button,{onClick:y.onModalAddClick,disabled:!h,style:{opacity:"0.3"},children:I("Add new")})}))]})};class u3 extends uC{get collectionField(){return this.context.collectionField}onInit(e){super.onInit(e),this.context.defineProperty("collection",{get:()=>{var e;return null==(e=this.context.collectionField)?void 0:e.targetCollection}}),this.setDataSource([])}set onPopupScroll(e){this.setProps({onPopupScroll:e})}set onDropdownVisibleChange(e){this.setProps({onDropdownVisibleChange:e})}set onSearch(e){this.setProps({onSearch:e})}setDataSource(e){this.setProps({options:e})}getDataSource(){return this.props.options}getFilterValue(){var e,t;let l=uI(this.props.fieldNames,null==(e=this.context.collectionField)?void 0:e.targetCollection);return Array.isArray(this.props.value)?this.props.value.map(e=>e[l.value]):null==(t=this.props.value)?void 0:t[l.value]}onMount(){this.onModalAddClick=e=>{this.dispatchEvent("openView",{event:e,onChange:this.props.onChange})},this.onDropdownAddClick=e=>{this.dispatchEvent("dropdownAdd",{search:e,onChange:this.props.onChange})}}set onModalAddClick(e){this.setProps({onModalAddClick:e})}set onDropdownAddClick(e){this.setProps({onDropdownAddClick:e})}change(e){this.props.onChange(e)}render(){return this.context.isMobileLayout?(0,m.jsx)(uJ,{...this.props,loading:this.resource.loading}):(0,m.jsx)(u4,{...this.props})}}let u6={page:1,pageSize:40,loading:!1,hasMore:!0},u9=e=>`__search__${e}`,u7=e=>`__assoc__${e}`;async function ce(e,t){try{var l,o,i,n;let t=e.model.collectionField.targetCollection,r=uI(e.model.props.fieldNames,t).label,a=t.getField(r);if(!a)return;let s=a.getInterfaceOptions(),d=(null==s||null==(i=s.filterable)||null==(o=i.operators)||null==(l=o[0])?void 0:l.value)||"$includes",u=null==(n=e.inputArgs.searchText)?void 0:n.trim(),c=e.model.resource,p=`${r}.${d}`;""===u?c.removeFilterGroup(u9(r)):(c.setPage(1),c.addFilterGroup(u9(r),{[p]:u})),await c.refresh();let m=c.getData();e.model.setDataSource(m),m.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++),e.model.setProps({searchText:u})}catch(t){console.error("AssociationSelectField search flow error:",t),e.model.setDataSource([])}}u3.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){var l;let o=u9(uI(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).label);e.model.onDropdownVisibleChange=t=>{t?e.model.dispatchEvent("dropdownOpen",{apiClient:e.app.apiClient,form:e.model.context.form}):(e.model.resource.removeFilterGroup(o),u6.page=1)},e.model.onPopupScroll=t=>{e.model.dispatchEvent("popupScroll",{event:t,apiClient:e.app.apiClient})},e.model.onSearch=t=>{e.model.dispatchEvent("search",{searchText:t,apiClient:e.app.apiClient})}}}}}),u3.registerFlow({key:"dropdownOpenSettings",on:"dropdownOpen",steps:{setScope:{async handler(e,t){var l;let o=uI(e.model.props.fieldNames,null==(l=e.model.collectionField)?void 0:l.targetCollection).value,i=e.model.resource,n=e.model.getDataSource();i.setPage(1),await e.model.applyFlow("selectSettings"),await i.refresh();let{count:r}=i.getMeta(),a=i.getData();(!n||r!==n.length||a[0][o]!==n[0][o])&&(e.model.setDataSource(a),e.model.setProps({searchText:null}),a.length<u6.pageSize?u6.hasMore=!1:(u6.hasMore=!0,u6.page++))}}}}),u3.registerFlow({key:"popupScrollSettings",on:"popupScroll",steps:{step1:{async handler(e,t){var l;let{scrollTop:o,scrollHeight:i,clientHeight:n}=(null==(l=e.inputArgs)?void 0:l.event).target;if(!(o+n<i-20)&&!u6.loading&&u6.hasMore){u6.loading=!0;try{let t=e.model.resource;t.setPage(u6.page),await t.refresh();let l=t.getData(),o=e.model.getDataSource()||[];e.model.setDataSource([...o,...l]),l.length<u6.pageSize?(u6.hasMore=!1,u6.page=1):u6.page++}catch(e){console.error("Scroll pagination request failed:",e)}finally{u6.loading=!1}}}}}});let ct=(0,g.debounce)(ce,500);u3.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:ct}}}),u3.registerFlow({key:"recordSelectSettings",sort:200,steps:{init:{async handler(e){var t,l,o;let i=e.createResource(f.MultiRecordResource),n=e.model.context.collectionField,{target:r,dataSourceKey:a,foreignKey:s}=n;i.setDataSourceKey(a),i.setResourceName(r),i.setPageSize(u6.pageSize);let d=(null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter,u=["oho","o2m"].includes(n.interface),c=(null==(o=e.item)?void 0:o.value)||e.record,p=null==c?void 0:c[null==n?void 0:n.sourceKey],m=[];if(!d&&null!=p&&u){let e=`${s}.$eq`;m.push({[e]:p})}if(!d&&u){let e=`${s}.$is`;m.push({[e]:null})}m.length>0&&i.addFilterGroup(u7(s),{$or:m}),e.model.resource=i}},allowEditCheck:{async handler(e){if(e.blockModel instanceof d9.EditFormModel){var t;let l=await e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:null==(t=e.collectionField)?void 0:t.collectionName,actionName:"update",fields:[e.collectionField.name]});e.model.setProps({allowEdit:!!l})}}}}}),u3.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings:e=>!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type),defaultParams:e=>({allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)}),handler(e,t){e.model.setProps({allowMultiple:null==t?void 0:t.allowMultiple})}},quickCreate:{title:(0,f.tExpr)("Quick create"),uiMode(e){let t=e.t;return{type:"select",key:"quickCreate",props:{options:[{label:t("None"),value:"none"},{label:t("Dropdown"),value:"quickAdd"},{label:t("Pop-up"),value:"modalAdd"}]}}},hideInSettings(e){var t,l;return!!((null==e||null==(l=e.blockModel)||null==(t=l.constructor)?void 0:t.scene)===sC.P.filter||uX(null==e?void 0:e.model,["SubTableColumnModel","SubTableFieldModel"]))},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}}),u3.registerFlow({key:"dropdownAdd",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"dropdownAdd"},steps:{dropdownAdd:{async handler(e,t){var l,o,i;if("quickAdd"!==e.model.props.quickCreate)return null;let{onChange:n,search:r}=e.inputArgs,a=await e.model.resource.create({[(null==(o=e.model.props)||null==(l=o.fieldNames)?void 0:l.label)||"id"]:r},{refresh:!1});a&&(n(["m2m","o2m"].includes(null==(i=e.collectionField)?void 0:i.interface)&&!1!==e.model.props.allowMultiple?[...e.model.props.value||[],a.data].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey])):a.data),e.message.success(e.t("Saved successfully")),e.model.setProps({searchText:null}))}}}}),u3.registerFlow({key:"popupSettings",title:(0,f.tExpr)("Create record setting"),sort:900,on:{eventName:"openView"},steps:{openView:{title:(0,f.tExpr)("Edit popup"),uiSchema:e=>"modalAdd"!==e.model.props.quickCreate?null:{mode:{type:"string",title:(0,f.tExpr)("Open mode"),enum:[{label:(0,f.tExpr)("Drawer"),value:"drawer"},{label:(0,f.tExpr)("Dialog"),value:"dialog"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,f.tExpr)("Popup size"),enum:[{label:(0,f.tExpr)("Small"),value:"small"},{label:(0,f.tExpr)("Medium"),value:"medium"},{label:(0,f.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group"}},defaultParams:{mode:"drawer",size:"medium"},handler(e,t){var l,o,i,n,r;let{onChange:a}=e.inputArgs,s={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},d=e.inputArgs.mode||t.mode||"drawer",u=["belongsTo","hasOne"].includes(e.collectionField.type),c=e.inputArgs.size||t.size||"medium",p=null==(l=e.collectionField)?void 0:l.collection,h=(null==(o=e.item)?void 0:o.value)??e.record,f=h?null==p||null==(i=p.getFilterByTK)?void 0:i.call(p,h):void 0,g=null==(n=e.collectionField)?void 0:n.resourceName,v=uL(e,e.inputArgs);e.viewer.open({type:d,width:s[d][c],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"create",dataSourceKey:e.collection.dataSourceKey,collectionName:null==(r=e.collectionField)?void 0:r.target,...g&&null!=f?{associationName:g,sourceId:f}:{},...g&&null==f?{sourceAssociationName:g}:{},collectionField:e.collectionField,openerUids:v,onChange:t=>{if(u||!e.model.props.allowMultiple){a(t);let l=e.model.getDataSource()||[];l.push(t),e.model.setDataSource(l)}else{let l=[...e.model.props.value||[],t].filter((t,l,o)=>l===o.findIndex(l=>l[e.collection.filterTargetKey]===t[e.collection.filterTargetKey]));a(l);let o=e.model.getDataSource()||[];e.model.setDataSource(o.concat(l))}}},content:()=>(0,m.jsx)(u1,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===d?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}}),u3.define({label:(0,f.tExpr)("Dropdown select")}),f.EditableItemModel.bindModelToInterface("RecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,order:1});class cl extends u3{onInit(e){var t;super.onInit(e);let l=null==(t=this.getStepParams("selectSettings","allowMultiple"))?void 0:t.allowMultiple,o="boolean"==typeof l?l:"boolean"!=typeof this.props.allowMultiple||this.props.allowMultiple;this.setProps({allowMultiple:o,multiple:o,quickCreate:"none"})}}cl.registerFlow({key:"selectSettings",title:(0,f.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,f.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},defaultParams:{allowMultiple:!0},handler(e,t){var l;let o=null==(l=e.model.getStepParams("selectSettings","allowMultiple"))?void 0:l.allowMultiple,i="boolean"==typeof(null==t?void 0:t.allowMultiple)?t.allowMultiple:"boolean"==typeof o?o:"boolean"!=typeof e.model.props.allowMultiple||e.model.props.allowMultiple;e.model.setProps({allowMultiple:i,multiple:i})}}}}),cl.define({label:(0,f.tExpr)("Dropdown select")}),f.FilterableItemModel.bindModelToInterface("FilterFormRecordSelectFieldModel",["m2m","m2o","o2o","o2m","oho","obo","updatedBy","createdBy","mbm"],{isDefault:!0,defaultProps:{allowMultiple:!0,multiple:!0,quickCreate:"none"}});var co=__nested_rspack_require_1264766__(6832);class ci extends uk{render(){return(0,m.jsx)(co.DateFilterDynamicComponent,{...this.props})}}let cn=e=>{let{value:t,format:l="YYYY-MM-DD",picker:o="date",showTime:i,...n}=e,r={...n,value:t,format:l,picker:o,showTime:i};return(0,m.jsx)(co.DateFilterDynamicComponent,{...r})};class cr extends ci{setProps(e){super.setProps({...e,showTime:!1,utc:!1})}render(){return(0,m.jsx)(cn,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});let ca=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",showTime:o,picker:i="date",...n}=e,r=o&&"date"===i?"YYYY-MM-DD":l;return(0,m.jsx)(co.DateFilterDynamicComponent,{...n,value:t,format:r,picker:i,showTime:o})};class cs extends ci{render(){return(0,m.jsx)(ca,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});let cd=e=>{let{value:t,format:l="YYYY-MM-DD HH:mm:ss",picker:o="date",showTime:i,...n}=e,r=i&&"date"===o?"YYYY-MM-DD":l,a={...n,value:t,format:r,picker:o,showTime:i};return(0,m.jsx)(co.DateFilterDynamicComponent,{...a})};class cu extends ci{setProps(e){super.setProps({...e,utc:!0})}render(){return(0,m.jsx)(cd,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});let cc="recordSelectDataSourceKey",cp="recordSelectTargetCollection",cm="recordSelectTitleField",ch="recordSelectValueField",cf="allowMultiple",cg="multiple",cv="valueMode",cy=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),cb=e=>{var t,l,o,i,r;let{fieldModel:a,source:s=[]}=e,d=(0,lI.useField)(),{t:u}=(0,v.useTranslation)(),c=d.value||{},p=a||(null==c?void 0:c.fieldModel),h=(0,f.useFlowEngine)(),g=(0,f.useFlowContext)(),y=(null==g?void 0:g.dataSourceManager)||(null==h?void 0:h.dataSourceManager)||(null==g||null==(t=g.app)?void 0:t.dataSourceManager),b=(0,et.Sx)(y),M=(0,n.useCallback)(e=>(0,et.w6)(e,y),[y]),_=()=>d.value||{},S=(e,t)=>{d.setValue({..._(),[e]:t})},w=e=>{var t;(null==d||null==(t=d.form)?void 0:t.setValuesIn)&&(null==d?void 0:d.path)?d.form.setValuesIn(d.path,e):d.setValue(e)},F=e=>{var t,l,o,i;let n=`${d.path.toString()}.${e}`,r=null==(i=d.form)||null==(o=i.query)||null==(l=o.call(i,n))||null==(t=l.take)?void 0:t.call(l);return(Array.isArray(null==r?void 0:r.errors)?r.errors:[]).flatMap(e=>e?Array.isArray(e.messages)?e.messages:e.messages?[e.messages]:[]:[]).filter(Boolean)},k=e=>{let t=F(e);return t.length?{feedbackStatus:"error",feedbackText:t.join(", ")}:{}};(0,n.useEffect)(()=>{var e,t,l,o,i,n,r;let a=s.length?s:(null==c?void 0:c.source)||[];if(!a.length)return;let u=!!(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSource)?void 0:e.call(t,a[0])),m=(null==h||null==(o=h.dataSourceManager)||null==(l=o.getDataSources)?void 0:l.call(o))??[],v=(u?a[0]:void 0)||(null==c?void 0:c[cc])||(null==(i=m[0])?void 0:i.key)||"main",y=(u?a.slice(1):a).join("."),b=h.dataSourceManager.getCollectionField(`${v}.${y}`),x=f.FilterableItemModel.getDefaultBindingByField(g.model.context,b);if(!b&&"FilterFormCustomRecordSelectFieldModel"!==p||!x&&"FilterFormCustomRecordSelectFieldModel"!==p)return;let M=(null==b||null==(n=b.getComponentProps)?void 0:n.call(b))||{},S={...(x&&"function"==typeof x.defaultProps?x.defaultProps(g.model.context,d):null==x?void 0:x.defaultProps)||{},...M,..._()};if(("FilterFormCustomRecordSelectFieldModel"===p||!p&&(null==b?void 0:b.target))&&(null==b?void 0:b.target)){let e=b.targetCollection||h.dataSourceManager.getCollection(b.dataSourceKey,b.target);S[cc]=b.dataSourceKey||v,S[cp]=b.target,S[cm]=b.targetCollectionTitleFieldName||(null==e||null==(r=e.titleCollectionField)?void 0:r.name)||S[cm],S[ch]=S[ch]||(null==e?void 0:e.filterTargetKey)||"id",void 0===S[cf]&&void 0===S[cg]&&(S[cf]=!0,S[cg]=!0),S[cv]||(S[cv]="value")}w(S)},[a,p,s.join("."),null==c?void 0:c.source,h]);let C=(0,n.useMemo)(()=>{var e,t;return(null==h||null==(t=h.dataSourceManager)||null==(e=t.getDataSources)?void 0:e.call(t))??[]},[h]),A=(0,n.useMemo)(()=>C.map(e=>({label:e.displayName??e.key,value:e.key})),[C]),P=(null==c?void 0:c[cc])||(null==(l=C[0])?void 0:l.key)||"main",T=P?null==h||null==(i=h.dataSourceManager)||null==(o=i.getDataSource)?void 0:o.call(i,P):void 0,I=null==c?void 0:c[cp],L=I?null==T||null==(r=T.getCollection)?void 0:r.call(T,I):void 0,R=(0,n.useCallback)(e=>e?(null==g?void 0:g.t)?g.t(e):u(e):e,[g,u]),j=(0,n.useMemo)(()=>(null==T?void 0:T.getCollections)?T.getCollections().filter(e=>{var t;return!(null==(t=e.options)?void 0:t.hidden)}).map(e=>({label:R(e.title)||e.name,value:e.name})):[],[T,R]),D=(0,n.useMemo)(()=>{if(!(null==L?void 0:L.getFields))return[];let e=e=>{if(!b)return!0;let t=(null==e?void 0:e.options)||e;return(0,et.w)(M(null==t?void 0:t.interface))};return(L.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:R(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||R(e.title)||e.name,value:e.name}})},[L,M,b,R]),E=(0,n.useMemo)(()=>{if(!(null==L?void 0:L.getFields))return[];let e=e=>{let t=(null==e?void 0:e.options)||{},l=t.interface||(null==e?void 0:e.interface);if(!1===t.filterable||!l)return!1;if(b){let e=M(l);if(!(null==e?void 0:e.filterable))return!1}let o=t.type||(null==e?void 0:e.type);return!cy.has(o)};return(L.getFields()||[]).filter(t=>e(t)).map(e=>{var t,l;return{label:R(null==(l=e.options)||null==(t=l.uiSchema)?void 0:t.title)||R(e.title)||e.name,value:e.name}})},[L,M,b,R]);if((0,n.useEffect)(()=>{var e;if("FilterFormCustomRecordSelectFieldModel"!==p||!I||(null==c?void 0:c[cm]))return;let t=null==L||null==(e=L.titleCollectionField)?void 0:e.name;t&&d.setValue({..._(),[cm]:t})},[a,p,I,L,c]),(0,n.useEffect)(()=>{if("FilterFormCustomRecordSelectFieldModel"!==p||!I)return;let e=null==c?void 0:c[ch],t=E.map(e=>e.value);if(e&&t.includes(e))return;let l=null==L?void 0:L.filterTargetKey,o=l&&t.includes(l)&&l||t[0];o&&d.setValue({..._(),[ch]:o})},[a,p,I,L,c,E]),(0,n.useEffect)(()=>{"FilterFormCustomRecordSelectFieldModel"!==p||(null==c?void 0:c[cf])===void 0&&(null==c?void 0:c[cg])===void 0&&d.setValue({..._(),[cf]:!0,[cg]:!0})},[a,p,c]),"DateTimeFilterFieldModel"===a)return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(ni.FormItem,{label:u("Date format"),children:(0,m.jsxs)(x.Radio.Group,{value:c.format||"YYYY-MM-DD",onChange:e=>S("format",e.target.value),children:[(0,m.jsx)(x.Radio,{value:"YYYY/MM/DD",children:u("Year/Month/Day")}),(0,m.jsx)(x.Radio,{value:"YYYY-MM-DD",children:u("Year-Month-Day")}),(0,m.jsx)(x.Radio,{value:"DD/MM/YYYY",children:u("Day/Month/Year")})]})}),(0,m.jsx)(ni.FormItem,{label:u("Time"),children:(0,m.jsx)(x.Checkbox,{checked:c.showTime,onChange:e=>S("showTime",e.target.checked),children:u("Show time")})}),(0,m.jsx)(ni.FormItem,{label:u("Date range"),children:(0,m.jsx)(x.Checkbox,{checked:c.isRange,onChange:e=>S("isRange",e.target.checked),children:u("Show date range")})})]});if("SelectFieldModel"===a){let e=c.options||[];return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(ni.FormItem,{label:u("Mode"),children:(0,m.jsxs)(x.Radio.Group,{value:c.mode||"",onChange:e=>S("mode",e.target.value),children:[(0,m.jsx)(x.Radio,{value:"",children:u("Single select")}),(0,m.jsx)(x.Radio,{value:"multiple",children:u("Multiple select")})]})}),(0,m.jsx)(ni.FormItem,{label:u("Options"),children:(0,m.jsxs)(x.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(x.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let i=[...e];i[l]={...t,label:o.target.value},S("options",i)}}),(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let i=[...e];i[l]={...t,value:o.target.value},S("options",i)}}),(0,m.jsx)(x.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{S("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(x.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{S("options",[...e,{label:"",value:""}])},children:u("Add")})]})})]})}if("CheckboxGroupFieldModel"===a||"RadioGroupFieldModel"===a){let e=c.options||[];return(0,m.jsx)(ni.FormItem,{label:u("Options"),children:(0,m.jsxs)(x.Space,{direction:"vertical",size:8,style:{width:"100%"},children:[e.map((t,l)=>(0,m.jsxs)(x.Space,{style:{width:"100%"},size:8,wrap:!0,align:"start",children:[(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option label"),value:t.label,onChange:o=>{let i=[...e];i[l]={...t,label:o.target.value},S("options",i)}}),(0,m.jsx)(x.Input,{style:{flex:1,minWidth:120},placeholder:u("Option value"),value:t.value,onChange:o=>{let i=[...e];i[l]={...t,value:o.target.value},S("options",i)}}),(0,m.jsx)(x.Button,{type:"text",icon:(0,m.jsx)(to.CloseOutlined,{}),onClick:()=>{S("options",e.filter((e,t)=>t!==l))}})]},l)),(0,m.jsx)(x.Button,{type:"dashed",block:!0,icon:(0,m.jsx)(to.PlusOutlined,{}),onClick:()=>{S("options",[...e,{label:"",value:""}])},children:u("Add")})]})})}return"FilterFormCustomRecordSelectFieldModel"===p?(0,m.jsxs)(m.Fragment,{children:[A.length>1&&(0,m.jsx)(ni.FormItem,{label:u("Data source"),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:P,options:A,onChange:e=>{d.setValue({...c,[cc]:e,[cp]:void 0,[cm]:void 0})}})}),(0,m.jsx)(ni.FormItem,{label:u("Target collection"),asterisk:!0,...k(cp),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Select collection"),value:I,options:j,onChange:e=>{d.setValue({...c,[cp]:e,[cm]:void 0})}})}),(0,m.jsx)(ni.FormItem,{label:u("Title field"),asterisk:!0,...k(cm),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cm],options:D,onChange:e=>S(cm,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Used for display in the dropdown and selected tags.")}),(0,m.jsx)(ni.FormItem,{label:u("Value field"),asterisk:!0,...k(ch),children:(0,m.jsx)(x.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[ch],options:E,onChange:e=>S(ch,e)})}),(0,m.jsx)("div",{style:{color:"var(--colorTextDescription)",marginTop:-8,marginBottom:8},children:u("Stored as the field value for filtering (usually the primary key).")}),(0,m.jsx)(ni.FormItem,{label:u("Multiple"),children:(0,m.jsx)(x.Checkbox,{checked:(null==c?void 0:c[cf])!==!1,onChange:e=>{let t=e.target.checked;d.setValue({...c,[cf]:t,[cg]:t})},children:u("Allow multiple selection")})})]}):null};function cx(e){let{source:t=[],onChange:l}=e,o=(0,f.useFlowEngine)(),i=(0,f.useFlowContext)(),r=e.valueMap||{},a=t.join("."),s=(0,n.useRef)(),d=(0,n.useMemo)(()=>e=>r&&r[e]?r[e]:e,[r]),u=(0,n.useMemo)(()=>{if(!t.length)return;let e=o.dataSourceManager.getCollectionField(a),l=f.FilterableItemModel.getDefaultBindingByField(i.model.context,e);if(l)return d(l.modelName)},[a,d]);return(0,n.useEffect)(()=>{if(!u){s.current=a;return}let t=void 0!==s.current&&s.current!==a;s.current=a;let o=d(e.value);if(e.value&&e.value!==o&&o!==u){null==l||l(o);return}(!e.value||t)&&o!==u&&(null==l||l(u))},[u,l,e.value,a,d]),(0,m.jsx)(ni.Select,{allowClear:!0,...e,value:d(e.value??u)})}let cM={InputFieldModel:et.II.string,NumberFieldModel:et.II.number,DateTimeFilterFieldModel:et.II.datetime,SelectFieldModel:e=>(null==e?void 0:e.mode)==="multiple"?et.II.array:et.II.enumType,RadioGroupFieldModel:et.II.enumType,CheckboxGroupFieldModel:et.II.array},c_=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),cS={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cw={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cF={input:et.II.string,email:et.II.string,phone:et.II.string,uuid:et.II.string,url:et.II.string,nanoid:et.II.string,textarea:et.II.string,markdown:et.II.bigField,vditor:et.II.bigField,richText:et.II.bigField,password:et.II.string,color:et.II.string,number:et.II.number,integer:et.II.number,id:et.II.id,snowflakeId:et.II.number,dateOnly:et.II.datetime,datetime:et.II.datetime,datetimeNoTz:et.II.datetime,unixTimestamp:et.II.datetime,time:et.II.time,select:et.II.enumType,multipleSelect:et.II.array,radioGroup:et.II.enumType,checkboxGroup:et.II.array,checkbox:et.II.boolean};function ck(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=cM[e];return l?"function"==typeof l?l(t)||[]:l||[]:[]}function cC(e){var t,l,o,i;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;if(!Array.isArray(n)||0===n.length)return;let a=!!(null==e||null==(l=e.dataSourceManager)||null==(t=l.getDataSource)?void 0:t.call(l,n[0])),s=a?n[0]:r||"main",d=(a?n.slice(1):n).join(".");if(d)return null==e||null==(i=e.dataSourceManager)||null==(o=i.getCollectionField)?void 0:o.call(i,`${s}.${d}`)}function cA(e){var t,l,o,i;let n;if(!e)return[];let r=null==(t=e.filterable)?void 0:t.operators;if(Array.isArray(r)&&r.length>0)return r;try{n=null==(i=e.getInterfaceOptions)||null==(o=i.call(e))||null==(l=o.filterable)?void 0:l.operators}catch(e){n=void 0}return Array.isArray(n)&&n.length>0?n:e.interface&&cF[e.interface]?cF[e.interface]:(null===et.II||void 0===et.II?void 0:et.II[e.type])||[]}function cP(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return"boolean"==typeof(null==e?void 0:e.multiple)?e.multiple:"boolean"!=typeof(null==e?void 0:e.allowMultiple)||e.allowMultiple}function cT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Set;return e.filter(e=>!(!(null==e?void 0:e.value)||t.has(e.value))&&(t.add(e.value),!0))}function cI(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.some(e=>(null==e?void 0:e.value)==="$in"),l=e.some(e=>(null==e?void 0:e.value)==="$notIn"),o=e.filter(e=>c_.has(null==e?void 0:e.value)&&(null==e?void 0:e.value)!=="$in"&&(null==e?void 0:e.value)!=="$notIn"||(null==e?void 0:e.noValue)||(null==e?void 0:e.value)==="$exists"||(null==e?void 0:e.value)==="$notExists"),i=e.some(e=>(null==e?void 0:e.value)&&!e.noValue&&"$exists"!==e.value&&"$notExists"!==e.value),n=i||t,r=i||l,a=[];return n&&a.push(cS),r&&a.push(cw),cT([...a,...o])}function cL(e){var t,l,o,i,n;let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],s=cC(e,a,null==r?void 0:r.recordSelectDataSourceKey),d=(null==s?void 0:s.dataSourceKey)||(null==a?void 0:a[0])||"main",u=(null==r?void 0:r.recordSelectDataSourceKey)||d,c=(null==r?void 0:r.recordSelectTargetCollection)||(null==s||null==(t=s.targetCollection)?void 0:t.name)||(null==s?void 0:s.target);if(!c)return;let p=null==e||null==(o=e.dataSourceManager)||null==(l=o.getCollection)?void 0:l.call(o,u,c);if(!p)return;let m=(null==r?void 0:r.recordSelectValueField)||(null==p?void 0:p.filterTargetKey)||(null==p||null==(i=p.getPrimaryKey)?void 0:i.call(p));if(m)return null==(n=p.getField)?void 0:n.call(p,m)}function cR(e){let{flowEngine:t,fieldModelProps:l={},source:o=[]}=e,i=cL(t,l,o),n=cA(i);return{operatorList:cP(l)?cI(n):n,meta:i}}function cj(e){let{flowEngine:t,fieldModel:l,fieldModelProps:o={},source:i=[]}=e;if("FilterFormCustomRecordSelectFieldModel"===l)return cR(e);let n=cC(t,i);if("SelectFieldModel"===l&&(null==o?void 0:o.mode)==="multiple"&&n){let e=cA(n);return{operatorList:a0(n)?ck(l,o):cI(e),meta:n}}let r=ck(l,o);return r.length>0?{operatorList:r,meta:{fieldModel:l}}:{operatorList:cA(n),meta:n}}function cD(e){let{operatorList:t,meta:l}=cj(e);return cT((t||[]).filter(e=>!(null==e?void 0:e.visible)||e.visible(l)))}function cE(e){var t,l;let{fieldModel:o,fieldModelProps:i={}}=e,n=cD(e);if("DateTimeFilterFieldModel"===o&&(null==i?void 0:i.isRange)){let e=n.find(e=>"$dateBetween"===e.value);if(e)return e.value}return(null==(t=n.find(e=>e.selected))?void 0:t.value)||(null==(l=n[0])?void 0:l.value)}function cY(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return e.map(e=>({...e,label:t(e.label),value:e.value}))}let cN=(0,f.observer)(e=>{var t;let{fieldModel:l,source:o=[],fieldModelProps:i={},value:r,onChange:a,...s}=e,d=(0,lI.useField)(),u=(0,f.useFlowEngine)(),c=(0,f.useFlowContext)(),p=(null==d||null==(t=d.form)?void 0:t.values)||{},h=l||(null==p?void 0:p.fieldModel),g=o.length?o:(null==p?void 0:p.source)||[],v=(null==p?void 0:p.fieldModelProps)&&Object.keys(p.fieldModelProps).length>0?p.fieldModelProps:i,y=Array.isArray(g)?g.join("."):"",b=null==v?void 0:v.mode,x=null==v?void 0:v.allowMultiple,M=null==v?void 0:v.multiple,_=null==v?void 0:v.recordSelectDataSourceKey,S=null==v?void 0:v.recordSelectTargetCollection,w=null==v?void 0:v.recordSelectValueField,F=(0,n.useMemo)(()=>cD({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v}),[u,h,y,b,x,M,_,S,w]),k=(0,n.useMemo)(()=>cY(F,e=>c.t(e)),[F,c]);return(0,n.useEffect)(()=>{if(!k.length){void 0!==r&&(null==a||a(void 0));return}if(k.some(e=>e.value===r))return;let e=cE({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v});e!==r&&(null==a||a(e))},[u,h,a,k,y,r,b,x,M,_,S,w]),(0,m.jsx)(ni.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:c.t("Please select"),...s,options:k,value:r,onChange:a,disabled:0===k.length})});class cO extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FilterFormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o;let[i,n]=t,r={key:i,label:e.t(n.meta.label),sort:n.meta.sort??999,searchable:!!(null==(l=n.meta)?void 0:l.searchable),searchPlaceholder:null==(o=n.meta)?void 0:o.searchPlaceholder};return r.createModelOptions={use:i},r});return g.default.sortBy([...o(t),...o(l)],"sort")}}function cB(e){let t=(0,f.useFlowEngine)(),l=(0,n.useCallback)(()=>{let e=null==t?void 0:t.dataSourceManager;return e?e.getDataSources().map(e=>({value:e.key,label:e.displayName??e.key,isLeaf:!1,meta:{type:"dataSource",dataSourceKey:e.key}})):[]},[t]),[o,i]=(0,n.useState)(()=>l());(0,n.useEffect)(()=>{i(l())},[l]);let r=(0,n.useCallback)(e=>{var l;let o=e[e.length-1];if(!o||(null==(l=o.children)?void 0:l.length))return;let n=null==t?void 0:t.dataSourceManager;if(!n)return;let r=[];if(1===e.length){let e=o.value,t=n.getDataSource(e);r=((null==t?void 0:t.getCollections())??[]).map(t=>({value:t.name,label:t.title,isLeaf:!1,meta:{type:"collection",dataSourceKey:e,collectionName:t.name,fullPath:t.name}}))}else{let e=o.meta||{},t=e.dataSourceKey,l=n.getDataSource(t),a=null==l?void 0:l.collectionManager;if(!l||!a){o.isLeaf=!0,i(e=>[...e]);return}if("collection"===e.type){let l=a.getCollection(e.collectionName);r=((null==l?void 0:l.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,i=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!i,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}else if("field"===e.type){let o=l.getCollectionField(e.fullPath),i=null==o?void 0:o.targetCollection;r=((null==i?void 0:i.getFields())??[]).filter(e=>e.filterable).map(l=>{let o=`${e.fullPath}.${l.name}`,i=!!l.targetCollection;return{value:l.name,label:l.title,isLeaf:!i,meta:{type:"field",dataSourceKey:t,fullPath:o}}}).sort((e,t)=>t.isLeaf?0:-1)}}r.length?o.children=r:o.isLeaf=!0,i(e=>[...e])},[t]);return(0,m.jsx)(x.Cascader,{allowClear:!0,...e,options:o,loadData:r})}cO.renderMode=f.ModelRenderMode.RenderFunction,cO.define({hide:!0,label:(0,f.tExpr)("Others")});var cV=__nested_rspack_require_1264766__(6175);let cH=(e,t,l)=>{var o,i,n;if((null==l||null==(i=l.form)||null==(o=i.values)?void 0:o.fieldModel)==="FilterFormCustomRecordSelectFieldModel"&&(null==e||""===e))return(null==l||null==(n=l.t)?void 0:n.call(l,"The field value is required"))||"The field value is required"};class cq extends cO{buildRecordSelectCollectionField(e,t){var l,o,i,n,r,a;let s=(null==t?void 0:t.recordSelectDataSourceKey)||"main",d=null==t?void 0:t.recordSelectTargetCollection;if(!d)return;let u=null==(o=e.dataSourceManager)||null==(l=o.getDataSource)?void 0:l.call(o,s),c=null==u||null==(i=u.getCollection)?void 0:i.call(u,d);if(!u||!c)return;let p=(null==t?void 0:t.recordSelectTitleField)||(null==(n=c.titleCollectionField)?void 0:n.name)||(null==(a=c.titleCollectionField)||null==(r=a.options)?void 0:r.name),m=(null==t?void 0:t.recordSelectValueField)||c.filterTargetKey||"id",h=new f.CollectionField({name:(null==t?void 0:t.name)||"recordSelect",interface:"m2o",type:"belongsTo",target:d,dataSourceKey:s,uiSchema:{"x-component":"Select"},fieldNames:{label:p,value:m}});return h.setCollection(c),h}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}onInit(e){super.onInit(e),this.debouncedDoFilter=(0,g.debounce)(this.doFilter.bind(this),300)}onUnmount(){super.onUnmount(),this.debouncedDoFilter.cancel()}doFilter(){this.context.filterManager.refreshTargetsByFilter(this.uid)}doReset(){this.context.filterManager.refreshTargetsByFilter(this.uid)}getFilterValue(){var e,t,l,o;let i=(null==(e=this.customFieldModelInstance)?void 0:e.getFilterValue)?this.customFieldModelInstance.getFilterValue():null==(t=this.context.form)?void 0:t.getFieldValue(this.props.name),n=this.getCurrentOperatorMeta(),r=(0,cV.S)(this.operator,i);return(null==n?void 0:n.noValue)&&!Array.isArray(null==n||null==(o=n.schema)||null==(l=o["x-component-props"])?void 0:l.options)||r}getCurrentOperatorMeta(){let e=this.getStepParams("formItemSettings","fieldSettings")||{},t=e.fieldModel,l=e.source||[],o=this.customFieldProps||e.fieldModelProps||{},i=cD({flowEngine:this.flowEngine,fieldModel:t,source:l,fieldModelProps:o}),n=this.operator||e.operator;return n&&i.find(e=>e.value===n)||null}getValueProps(e){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,g.isEqual)(this.lastAutoTriggerValue,e)||(this.lastAutoTriggerValue=(0,g.cloneDeep)(e),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,g.cloneDeep)(e))),{value:e,onKeyDown:this.handleEnterPress.bind(this)}}render(){return this.customFieldModelInstance?(0,m.jsx)(f.FormItem,{...this.props,getValueProps:this.getValueProps.bind(this),children:(0,m.jsx)(f.FieldModelRenderer,{model:this.customFieldModelInstance})}):null}constructor(...e){super(...e),this.customFieldModelInstance=null,this.customFieldProps=null,this.autoTriggerInitialized=!1,this.handleEnterPress=e=>{"Enter"===e.key&&(e.preventDefault(),this.doFilter())}}}cq.define({label:'{{t("Custom field")}}',sort:1}),cq.registerFlow({key:"formItemSettings",title:(0,f.tExpr)("Form item settings"),steps:{fieldSettings:{preset:!0,title:(0,f.tExpr)("Field settings"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Field title"),"x-component":"Input","x-decorator":"FormItem",required:!0},name:{type:"string",title:(0,f.tExpr)("Field name"),"x-component":"Input","x-decorator":"FormItem",required:!0,description:'{{t("Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.")}}'},source:{type:"array",title:(0,f.tExpr)("Field source"),"x-decorator":"FormItem","x-component":cB,"x-component-props":{placeholder:(0,f.tExpr)("Select a source field to use metadata of the field")},description:(0,f.tExpr)("Select a source field to use metadata of the field")},fieldModel:{type:"string",title:(0,f.tExpr)("Field type"),"x-component":cx,"x-decorator":"FormItem",required:!0,enum:[{label:(0,f.tExpr)("Input"),value:"InputFieldModel"},{label:(0,f.tExpr)("Number"),value:"NumberFieldModel"},{label:(0,f.tExpr)("Date"),value:"DateTimeFilterFieldModel"},{label:(0,f.tExpr)("Select"),value:"SelectFieldModel"},{label:(0,f.tExpr)("Radio group"),value:"RadioGroupFieldModel"},{label:(0,f.tExpr)("Checkbox group"),value:"CheckboxGroupFieldModel"},{label:(0,f.tExpr)("Record select"),value:"FilterFormCustomRecordSelectFieldModel"}],"x-component-props":{placeholder:(0,f.tExpr)("Please select"),valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}},"x-reactions":[{dependencies:["source"],fulfill:{state:{componentProps:{source:"{{$deps[0]}}",valueMap:{RecordSelectFieldModel:"FilterFormCustomRecordSelectFieldModel"}}}}}]},fieldModelProps:{type:"object",title:(0,f.tExpr)("Component properties"),"x-component":cb,properties:{recordSelectTargetCollection:{type:"string","x-validator":cH},recordSelectTitleField:{type:"string","x-validator":cH},recordSelectValueField:{type:"string","x-validator":cH}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,f.tExpr)("Operator"),"x-component":cN,"x-decorator":"FormItem",required:!0,"x-reactions":[{dependencies:["fieldModel","source","fieldModelProps"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}",fieldModelProps:"{{$deps[2] || {}}}"}}}}]}},defaultParams:e=>({name:`f_${(0,L.uid)().slice(0,4)}`}),handler(e,t){var l,o;let i,{fieldModel:n,fieldModelProps:r={},title:a,name:s,source:d=[],operator:u}=t;e.model.setProps({label:a,name:s});let c=r;if("FilterFormCustomRecordSelectFieldModel"===n){let t=(null==r?void 0:r.allowMultiple)===void 0||!!(null==r?void 0:r.allowMultiple),o=(null==r?void 0:r.multiple)===void 0?t:!!(null==r?void 0:r.multiple);if(c={...r,allowMultiple:t,multiple:o,valueMode:(null==r?void 0:r.valueMode)||"value"},i=e.model.buildRecordSelectCollectionField(e,{...c,name:s})){let e=(null==r?void 0:r.recordSelectTitleField)||i.targetCollectionTitleFieldName,t=(null==r?void 0:r.recordSelectValueField)||(null==(l=i.targetCollection)?void 0:l.filterTargetKey)||"id";e&&t&&(c={...c,fieldNames:{label:e,value:t}})}}if(e.model.customFieldModelInstance?e.model.customFieldModelInstance.setProps({allowClear:!0,...c}):e.model.customFieldModelInstance=e.model.flowEngine.createModel({use:n,props:{allowClear:!0,...c}}),"FilterFormCustomRecordSelectFieldModel"===n){let t=(null==c?void 0:c.recordSelectTitleField)||(null==c||null==(o=c.fieldNames)?void 0:o.label);t&&e.model.customFieldModelInstance.setStepParams("selectSettings","fieldNames",{label:t})}i&&e.model.customFieldModelInstance.context.defineProperty("collectionField",{value:i});let p=!!cD({flowEngine:e.model.flowEngine,fieldModel:n,source:d,fieldModelProps:c}).find(e=>e.value===u);e.model.operator=(p?u:void 0)||cE({flowEngine:e.model.flowEngine,fieldModel:n,source:d,fieldModelProps:c}),e.model.customFieldProps=c}},connectFields:{use:"connectFields"}}});let c$="__filter_form_value_options__",cU=(e,t)=>null!=e&&""!==e&&("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&(!t||!/(int|big)/i.test(t)||/^-?\d+$/.test(e))),cz=(e,t)=>{if("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},cK=(e,t,l,o,i,n)=>{let r=new Map;t.forEach(e=>{if(!e||"object"!=typeof e)return;let t=null==e?void 0:e[o],i=null==e?void 0:e[l];null!=t&&null!=i&&r.set(t,i)});let a=e=>{if(null==e)return;if("object"==typeof e){let t=null==e?void 0:e[l];if(null!=t)return t;let i=(null==e?void 0:e[o])??(null==e?void 0:e.value);if(o===l)return i;let a=r.get(i);return null!=a?a:cz(i,n)}if(o===l)return e;let t=r.get(e);return null!=t?t:cz(e,n)};return(i&&Array.isArray(e)?e:[e]).map(e=>a(e)).filter(e=>cU(e,n))},cG=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=arguments.length>2?arguments[2]:void 0,o=new Map;return[...e,...t].forEach(e=>{let t=null==e?void 0:e[l];null!=t&&o.set(t,e)}),Array.from(o.values())},cW=(e,t)=>{var l,o;let i=null==e||null==(l=e.context)?void 0:l.collectionField,r=null==i?void 0:i.collection,a=null==r?void 0:r.dataSource,s=null==e||null==(o=e.context)?void 0:o.t,d=(null==i?void 0:i.name)||e.fieldPath,u=(0,n.useMemo)(()=>{if(!s||!a)return"";let e=`${s(a.displayName||a.key)} > `,t=r?`${s(r.title)||r.name||r.tableName} > `:"";return`${e}${t}${d}`},[s,a,r,d]);return!t&&s&&a?s('The current user only has the UI configuration permission, but don\'t have "{{actionName}}" permission for field "{{name}}"',{name:u,actionName:"Update"}).replaceAll("&gt;",">"):null},cJ=e=>{var t;let{fieldNames:l={label:"label",value:"value"},value:o,multiple:i,allowMultiple:n,options:r,quickCreate:a,onChange:s,allowCreate:d=!0,allowEdit:u=!0,valueMode:c="record",...p}=e,h=!!(i&&n),g=uH(r,o,h),y=(0,f.useFlowModel)(),b=!!y.context.flowSettingsEnabled,{t:M}=(0,v.useTranslation)(),_=e=>{let{searchText:t}=e;return(0,m.jsxs)("div",{onClick:()=>p.onDropdownAddClick(t),style:{cursor:"pointer",padding:"5px 12px",color:"#0d0c0c"},children:[(0,m.jsx)(to.PlusOutlined,{}),(0,m.jsx)("span",{style:{paddingLeft:5},children:M("Add")+` “${t}” `})]})},S=cW(y,u);return(0,m.jsxs)(x.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(x.Select,{style:{width:"100%"},...p,allowClear:!0,showSearch:!0,maxTagCount:"responsive",maxTagPlaceholder:e=>(0,m.jsxs)(x.Tooltip,{title:(0,m.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:6,maxWidth:"100%"},children:e.map(e=>(0,m.jsx)(x.Tag,{style:{margin:0,background:"#fafafa",border:"1px solid #d9d9d9",whiteSpace:"normal",wordBreak:"break-word",maxWidth:"100%"},children:e.label},e.value))}),overlayInnerStyle:{background:"#fff",color:"#000",padding:8,maxWidth:"100%"},color:"#fff",overlayStyle:{pointerEvents:"auto",maxWidth:300},children:["+",e.length,"..."]}),filterOption:!1,labelInValue:!0,onCompositionEnd:e=>p.onCompositionEnd(e,!1),fieldNames:l,options:g,value:uV(o,l,h,c,g),mode:h?"multiple":void 0,onChange:(e,t)=>{"value"===c?Array.isArray(t)?s(t.map(e=>(null==e?void 0:e[l.value])??(null==e?void 0:e.value)).filter(e=>void 0!==e)):s((null==t?void 0:t[l.value])??(null==t?void 0:t.value)):s(t)},optionRender:e=>{let{data:t}=e;return(0,m.jsx)(uB,{option:t,fieldNames:l})},popupMatchSelectWidth:!0,labelRender:e=>(0,m.jsx)("div",{className:(0,A.css)`
889
889
  div {
890
890
  white-space: nowrap !important;
891
891
  overflow: hidden;
@@ -898,7 +898,7 @@ if (!ctx.record) {
898
898
  `);n.default.useEffect(()=>{o(e.options||[])},[i]);let a=n.default.useMemo(()=>new Set((Array.isArray(e.value)?e.value:[]).map(e=>e.join("."))),[e.value]),s=(t,l)=>{var o,i;let n=null==t||null==(o=t.meta)?void 0:o.fullPath;if(!n)return;let r=new Set(a);l?r.add(n):r.delete(n);let s=Array.from(r).map(e=>e.split("."));null==(i=e.onChange)||i.call(e,s)},d=e=>{var t;let l=null==e||null==(t=e.meta)?void 0:t.fullPath,o=!!(null==e?void 0:e.isLeaf),i=!!l&&a.has(l);return(0,m.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"},children:[(0,m.jsx)("span",{children:e.label}),o?(0,m.jsx)(x.Switch,{size:"small",checked:i,onClick:(e,t)=>{var l;return null==t||null==(l=t.stopPropagation)?void 0:l.call(t)},onChange:(t,l)=>{var o;null==l||null==(o=l.stopPropagation)||o.call(l),s(e,t)}}):null]})},u=e.displayRender||((e,t)=>{var l;let o=null==t?void 0:t[t.length-1];return(null==o||null==(l=o.meta)?void 0:l.fullLabel)||e.join(" / ")}),c=async e=>{var l,i,n,r;let a=e[e.length-1];if(!a||(null==(l=a.children)?void 0:l.length))return;let s=a.meta||{},d=s.field,u=s.fullPath;if(!d||!u){a.isLeaf=!0,o(e=>[...e]);return}let c=(null==(i=d.filterable)?void 0:i.children)||[],p=[];if(c.length?p=c:d.targetCollection&&(p=(null==(n=(r=d.targetCollection).getFields)?void 0:n.call(r))||[]),!p.length){a.isLeaf=!0,o(e=>[...e]);return}a.children=pW(t,p,u,[],s.fullLabel||a.label,s.associationDepth||0),o(e=>[...e])};return(0,m.jsx)(x.Cascader,{allowClear:!0,...e,options:l,loadData:c,displayRender:u,optionRender:d,popupClassName:r})}let pQ=(0,f.defineAction)({name:"defaultOperator",title:(0,f.tExpr)("Default operator"),uiMode:e=>({type:"select",key:"value",props:{options:pZ(e.model)}}),defaultParams(e){let t=pZ(e.model);return{value:t.length>0?t[0].value:""}},handler(e,t){e.model.operator=t.value}});function pZ(e){let t=e.context.collectionField||e.context.filterField;return a9(e).filter(e=>!e.visible||e.visible(t)).map(t=>({...t,label:"string"==typeof t.label?e.translate(t.label):t.label}))}var p0=__nested_rspack_require_1264766__(7720);function p1(e){var t;let l=e.operator,o=null==(t=e.subModels)?void 0:t.field;if(!o)return;if(e.setProps({key:`${e.uid}-${l||""}`}),!l)return void(0,p0.i2)(o);let i=a9(e);(0,p0.sI)({app:e.context.app,fieldModel:o,operator:l,operators:i,propsPriority:"field"})}let p2=(0,f.defineAction)({name:"customizeFilterRender",handler(e){p1(e.model)}});function p5(e){var t,l;let o=a7(e,e.operator);if(!o)return;let i=null==o||null==(t=o.schema)?void 0:t["x-component-props"];if(!i)return;let n=null==(l=e.subModels)?void 0:l.field;(null==n?void 0:n.setProps)&&n.setProps(i)}let p8=(0,f.defineAction)({name:"operatorComponentProps",handler(e){p5(e.model)}});var p4=__nested_rspack_require_1264766__(4084);class p3 extends dG.F4{createResource(e,t){let l=this.context.createResource(f.SingleRecordResource);return l.isNewRecord=!0,l}getAclActionName(){return"create"}async submitHandler(e,t,l){await (0,p4.submitHandler)(e,t,l)}async submit(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;await (0,p4.submitHandler)(this.context,e,t)}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:i}=this.props,n=!!this.context.flowSettingsEnabled,{heightMode:r,height:a}=this.decoratorProps;return(0,m.jsx)(dG.JU,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:i},heightMode:r,height:a,grid:(0,m.jsx)(f.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,m.jsx)(f.DndProvider,{children:(0,m.jsxs)(x.Space,{wrap:!0,children:[this.mapSubModels("actions",e=>{if(!e.hidden||n)return(0,m.jsx)(f.Droppable,{model:e,children:(0,m.jsx)(f.MemoFlowModelRenderer,{model:e,showFlowSettings:!!this.context.flowSettingsEnabled&&this.actionFlowSettings,extraToolbarItems:this.actionExtraToolbarItems},e.uid)},e.uid)}),this.renderConfigureActions()]})})})}constructor(...e){super(...e),this.actionFlowSettings={showBackground:!1,showBorder:!1,toolbarPosition:"above"},this.actionExtraToolbarItems=[{key:"drag-handler",component:f.DragHandler,sort:1}]}}p3.scene=sC.P.new,p3.blockCapabilityActionName="create",p3.registerFlow({key:"formSettings",title:(0,f.tExpr)("Form settings"),steps:{init:{async handler(e){if(!e.resource)throw Error("Resource is not initialized")}},refresh:{}}}),p3.define({label:(0,f.tExpr)("Form (Add new)"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search"),createModelOptions:{use:"CreateFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:350});class p6 extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o,i,n,r;let[a,s]=t,d="function"==typeof s.defineChildren||!!(null==(l=s.meta)?void 0:l.children),u={key:a,label:e.t(s.meta.label),sort:s.meta.sort??999,searchable:!!(null==(o=s.meta)?void 0:o.searchable),searchPlaceholder:null==(i=s.meta)?void 0:i.searchPlaceholder,hide:null==(n=s.meta)?void 0:n.hide};return d?u.children=e=>{var t;return"function"==typeof s.defineChildren?s.defineChildren(e):(null==(t=s.meta)?void 0:t.children)||[]}:u.createModelOptions=(null==(r=s.meta)?void 0:r.createModelOptions)||{use:a},u});return g.default.sortBy([...o(t),...o(l)],"sort")}}p6.renderMode=f.ModelRenderMode.RenderFunction,p6.define({hide:!0,label:(0,f.tExpr)("Others")});class p9 extends f.FlowModel{static defineChildren(e){return uw(e,{useModel:"FormItemModel",fieldUseModel:"JSEditableFieldModel",associationPathName:e.prefixFieldPath,refreshTargets:["FormItemModel","FilterFormItemModel"]})}}p9.define({label:(0,f.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),menuType:"submenu",sort:110});class p7 extends db{}p7.define({label:(0,f.tExpr)("JS action"),sort:9999}),p7.registerFlow({key:"clickSettings",on:"click",title:(0,f.tExpr)("Click settings"),steps:{runJs:{title:(0,f.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":dm.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`
899
899
  const values = ctx.form?.getFieldsValue?.() || {};
900
900
  ctx.message.success('Current form values: ' + JSON.stringify(values));
901
- `}),async handler(e,t){let{code:l,version:o}=dh(e,t);e.defineMethod("refresh",async()=>{var t,l,o;(null==(l=e.blockModel)||null==(t=l.resource)?void 0:t.refresh)?await e.blockModel.resource.refresh():(null==(o=e.resource)?void 0:o.refresh)&&await e.resource.refresh()}),await e.runjs(l,void 0,{version:o})}}}});let me="dataScope",mt="tableColumnSettings",ml="quickEditDataScope";function mo(e){var t,l;let o=null==e||null==(l=e.globalFlowRegistry)||null==(t=l.getFlows)?void 0:t.call(l);if(!o)return null;for(let[e,t]of o)for(let[l,o]of Object.entries((null==t?void 0:t.steps)||{}))if((null==o?void 0:o.use)===me)return{flowKey:e,stepKey:l};return null}function mi(e,t){var l,o,i;if(!(null==t||null==(l=t.isAssociationField)?void 0:l.call(t)))return null;let n=ui.getDefaultBindingByField(e,t);return(null==n?void 0:n.modelName)?mo(null==(i=e.engine)||null==(o=i.getModelClass)?void 0:o.call(i,n.modelName)):null}function mn(e){return!e||!Array.isArray(e.items)||0===e.items.length}function mr(e){var t;let l=null==e?void 0:e.parent,o=null==l||null==(t=l.getStepParams)?void 0:t.call(l,mt,ml),i=null==o?void 0:o.filter;return mn(i)?void 0:i}function ma(e){let t=e.context.collectionField,l=()=>(null==t?void 0:t.targetCollection)??null,o=()=>e.context.collection??null;return(0,f.createEphemeralContext)(e.context,{defineProperties:{collection:{get:l,meta:(0,f.createCollectionContextMeta)(l,"Current collection")},record:{get:()=>void 0,meta:(0,f.createCurrentRecordMetaFactory)(e.context,o)}}})}function ms(e){let[t,l]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let t=!1;return(async()=>{let o=await ma(e);t||l(new Proxy(e,{get(e,t,l){if("context"===t)return o;let i=Reflect.get(e,t,l);return"function"==typeof i?i.bind(e):i}}))})(),()=>{t=!0}},[e]),t}function md(e){let t=ms((0,f.useFlowSettingsContext)().model),l=(0,n.useCallback)(()=>(null==t?void 0:t.context.getPropertyMetaTree())??[],[t]);return t?(0,m.jsx)(rO.I8,{value:e.value,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t,rightAsVariable:!0,rightMetaTree:l})}):(0,m.jsx)(x.Skeleton.Input,{active:!0,size:"small"})}let mu="calc(100vh - 96px)",mc="calc(100vh - 160px)",mp="min(480px, calc(100vh - 320px))",mm="50vh",mh="calc(50vh - var(--nb-mobile-page-header-height, 40px) - 132px)",mf="8px var(--nb-mobile-page-tabs-content-padding, 12px) 0",mg="8px var(--nb-mobile-page-tabs-content-padding, 12px) calc(80px + env(safe-area-inset-bottom, 0px))",mv="(max-width: 768px)",my=["SelectFieldModel","RecordSelectFieldModel","CascadeSelectFieldModel","CascadeSelectListFieldModel"];function mb(e,t){let l={...e.getComponentProps(),...t||{}};return["markdown","vditor"].includes(e.interface)&&null==l.height&&(l.height=mp),l}function mx(e,t){var l,o;let i=null==t||null==(l=t.context)?void 0:l.isMobileLayout;if("boolean"==typeof i)return{isMobileLayout:i,inheritsMobileContext:i};let n=null==(o=e.context)?void 0:o.isMobileLayout;return"boolean"==typeof n?{isMobileLayout:n,inheritsMobileContext:n}:"u"<typeof window||"function"!=typeof window.matchMedia?{isMobileLayout:!1,inheritsMobileContext:!1}:{isMobileLayout:window.matchMedia(mv).matches,inheritsMobileContext:!1}}function mM(e,t,l,o,i,n){var r,a;let s=null==i||null==(a=i.parent)||null==(r=a.props)?void 0:r.title;if(s)return s;let d=null==n?void 0:n.title;if(d)return d;let u=e.context.dataSourceManager.getCollectionField(`${t}.${l}.${o}`);return(null==u?void 0:u.title)||o}function m_(e){let t=!1,l=e.beforeClose,o=async e=>(!t||!!(null==e?void 0:e.force))&&!1!==await (null==l?void 0:l(e));return e.beforeClose=o,{...e,close:(t,l)=>e.close(t,l),update(l){var o;return Object.prototype.hasOwnProperty.call(l,"preventClose")&&(t=!!l.preventClose),null==(o=e.update)?void 0:o.call(e,l)},get beforeClose(){return e.beforeClose},set beforeClose(value){l=value,e.beforeClose=o}}}class mS extends f.FlowModel{get form(){return this.context.form}useHooksBeforeRender(){let[e]=x.Form.useForm();this.context.defineProperty("form",{get:()=>e})}static async open(e){let{flowEngine:t,target:l,dataSourceKey:o,collectionName:i,fieldPath:n,filterByTk:r,record:a,onSuccess:s,fieldProps:d,onOk:u,sourceFieldModelUid:c}=e,p=c?t.getModel(c):void 0,h=t.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:o,collectionName:i,fieldPath:n}}}},p?{delegate:p.context}:void 0);h._dataScopeFilter=mr(p);let g={maxHeight:mu,overflowY:"auto",overscrollBehavior:"contain"},v={...g,maxHeight:mm},y=(e,t)=>{if(b.isMobileLayout){var l;null==t||null==(l=t.defineProperty)||l.call(t,"isMobileLayout",{value:!0})}return h.viewContainer=m_(e),h.__onSubmitSuccess=s,h._fieldProps=d,h._onOk=u,(0,m.jsx)(f.FlowModelRenderer,{fallback:(0,m.jsx)(x.Skeleton.Input,{size:"small"}),model:h,inputArgs:{filterByTk:r,record:a,sourceFieldModelUid:c}})},b=mx(t,p);if(b.isMobileLayout){var M;h.context.defineProperty("isMobileLayout",{value:!0});let e=(null==p||null==(M=p.context)?void 0:M.viewer)||t.context.viewer,l=mM(t,o,i,n,p,d);await e.open({type:"drawer",title:l,closable:!0,placement:"bottom",inputArgs:{isMobileLayout:!0},styles:{body:v},content:y});return}await t.context.viewer.open({type:"popover",target:l,placement:"rightTop",styles:{body:{width:420,...g}},content:y})}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this});let t=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:t}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${e}`);!l||l.isAssociationField()&&(this.resource.addAppends(e),t&&this.resource.refresh())}render(){let e=this.context.isMobileLayout;return(0,m.jsxs)(dG.s2,{model:this,children:[(0,m.jsx)("div",{style:{minHeight:0,overflowY:"auto",maxHeight:e?mh:mc,padding:e?mf:void 0},children:this.mapSubModels("fields",e=>{var t;return(0,m.jsx)(f.FormItem,{showLabel:!1,name:this.fieldPath,initialValue:null==(t=this.context.record)?void 0:t[this.fieldPath],...this.props,children:(0,m.jsx)(f.FieldModelRenderer,{model:e,fallback:(0,m.jsx)(x.Skeleton.Input,{size:"small"})})},e.uid)})}),(0,m.jsxs)(x.Space,{style:{display:"flex",justifyContent:"flex-end",flexShrink:0,padding:e?mg:void 0},children:[(0,m.jsx)(x.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,m.jsx)(x.Button,{type:"primary",htmlType:"submit",onClick:async()=>{var e,t,l,o,i;let n=this.form.getFieldsValue();await this.form.submit();let r={...n},a={[this.fieldPath]:null==(e=this.resource.getData())?void 0:e[this.fieldPath]};if(this._onOk)this._onOk(r),this.viewContainer.close();else try{await this.resource.save(r,{refresh:!1}),null==(t=(l=this).__onSubmitSuccess)||t.call(l,r),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(e){console.error("Failed to save form data:",e),this.context.message.error(this.context.t("Failed to save form data")),null==(o=(i=this).__onSubmitSuccess)||o.call(i,a)}},children:this.context.t("Submit")})]})]})}}mS.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{async handler(e,t){let{dataSourceKey:l,collectionName:o,fieldPath:i}=t;if(!l||!o||!i)throw Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=i,e.model.collection=e.dataSourceManager.getCollection(l,o);let n=e.createResource(f.SingleRecordResource);n.setDataSourceKey(l),n.setResourceName(o),e.model.resource=n,(e.inputArgs.filterByTk||e.inputArgs.record)&&(n.setFilterByTk(e.inputArgs.filterByTk),n.setData(e.inputArgs.record));let r=e.model.collection.getField(i);if(r){let t=ui.getDefaultBindingByField(e,r);if(!t)return;let n=t.modelName,a={fieldSettings:{init:{dataSourceKey:l,collectionName:o,fieldPath:i}}},s=e.model._dataScopeFilter;if(s){let t=mo(e.engine.getModelClass(n));t&&(a[t.flowKey]={...a[t.flowKey],[t.stepKey]:{filter:s}})}let d=e.model.addSubModel("fields",{use:n,props:"function"==typeof t.defaultProps?t.defaultProps(e,r):t.defaultProps,stepParams:a});d.setProps(mb(r,e.model._fieldProps)),d.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),!e.model.context.isMobileLayout&&my.includes(n)&&null==d.props.placement&&d.setProps({placement:"topLeft"}),e.model.context.defineProperty("collectionField",{get:()=>r}),e.model.addAppends(i),await d.dispatchEvent("beforeRender")}if(e.inputArgs.filterByTk||e.inputArgs.record){var a;null==(a=e.model.form)||a.setFieldsValue(n.getData())}}}}}),mS.define({hide:!0});class mw extends aZ{}mw.itemModelName="FormAssociationItemModel",mw.define({label:'{{t("Display association fields")}}'});let mF=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=(0,f.useFlowContext)();return(0,iH.useRequest)(async()=>await l.resolveJsonTemplate(e),{refreshDeps:t})},mk=2;function mC(e,t){if(!t)return e;let l=[...e];return t.forEach(e=>{let[t,o]=e.split(":");if(l.includes(t)){let e=l.indexOf(t),i=Number(o);l.splice(e+1,0,Number.isFinite(i)?i:o)}}),l}function mA(e,t){if(null==e)return e;let l=typeof e;if("string"===l||"number"===l||"boolean"===l)return e;if("bigint"===l)return String(e);if(Array.isArray(e))return e.map(e=>{let l=mA(e,t);return null==l?"":String(l)}).join(",");if("object"===l){let l=(0,g.castArray)(t).filter(Boolean);if(1===l.length){let t=mA((0,g.get)(e,l[0]));if(void 0!==t)return t}if(l.length>1)return JSON.stringify(l.map(t=>mA((0,g.get)(e,t))??null));let o=e.id??e.value??e.key;if("string"==typeof o||"number"==typeof o)return o;if("bigint"==typeof o)return String(o)}}let mP=e=>{let t=e.underSubForm?"ctx.item.value":"ctx.formValues",l=`{{${t}.${e.fieldPath}}}`,{data:o,loading:i,error:n}=mF(l,[l,e.refreshKey]);return i?(0,m.jsx)("div",{children:"Loading..."}):n?(0,m.jsxs)("div",{children:["Error: ",n.message]}):(0,m.jsx)(f.FieldModelRenderer,{...e.mergedProps,model:e.modelForRender,value:o||e.value})};class mT extends f.DisplayItemModel{static defineChildren(e){let t=e.collection,l=e.prefixFieldPath?e.prefixFieldPath.split(".").filter(Boolean).length:0;return t.getFields().map(o=>{var i;if(l>=mk&&((null==(i=o.isAssociationField)?void 0:i.call(o))||o.target||o.targetCollection))return null;let n=this.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!n)return null;let r=n.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===a},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:r,props:"function"==typeof n.defaultProps?n.defaultProps(e,o):n.defaultProps}}})}}).filter(Boolean)}onInit(e){super.onInit(e),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){let e=this.subModels.field,t=this.context.fieldIndex,l=this.context.record,o=this.context.currentObject,i=null!=t?(()=>{let i=e.createFork({},`${t}`);return i.context.defineProperty("fieldIndex",{get:()=>t}),i.context.defineProperty("record",{get:()=>l,cache:!1}),i.context.defineProperty("currentObject",{get:()=>o,cache:!1}),this.context.pattern&&i.context.defineProperty("pattern",{get:()=>this.context.pattern}),i})():e,n=this.collectionField.name,r=this.fieldPath.replace(RegExp(`\\.${n}$`),""),a=mC((0,g.castArray)(r.split(".")),t),s=this.context.prefixFieldPath;return(0,m.jsx)(f.FormItem,{...this.props,shouldUpdate:(e,t)=>{let l=a.length>1&&!(0,g.get)(e,[...a])?a.slice(0,-1):a;return JSON.stringify((0,g.get)(e,[...l]))!==JSON.stringify((0,g.get)(t,[...l]))},children:()=>{var e,t,l,o;let n=mA(null==(t=this.context.form)||null==(e=t.getFieldValue)?void 0:e.call(t,a),null==(o=this.collectionField)||null==(l=o.collection)?void 0:l.filterTargetKey)||(0,nn.uid)();return(0,m.jsx)(mP,{modelForRender:i,fieldPath:this.fieldPath.replace(RegExp(`^${s}\\.`),""),refreshKey:n,mergedProps:this.props,underSubForm:!!s})}})}}mT.define({label:(0,f.tExpr)("Display fields"),sort:100}),mT.registerFlow({key:"detailItemSettings",sort:300,title:(0,f.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,f.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,f.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l;let o=e.model,i=null==(l=o.collectionField)?void 0:l.title;t.decoratorProps={...t.decoratorProps,extra:o.context.t("Original field title: ")+(o.context.t(i)??"")}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{async handler(e){let{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())}},tooltip:{title:(0,f.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,f.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},model:{title:(0,f.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,f.tExpr)("Title field"),beforeParamsSave:async(e,t,l)=>{if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==l.label){var o,i;e.model.setProps({titleField:t.label,...null==(i=e.collectionField.targetCollection)||null==(o=i.getField(t.label))?void 0:o.getComponentProps()});let l=e.collectionField.targetCollection.getField(t.label),n=f.DisplayItemModel.getDefaultBindingByField(e,l),r=n.modelName;await d2({parentModel:e.model,targetUse:r,defaultProps:"function"==typeof(null==n?void 0:n.defaultProps)?n.defaultProps(e,e.collectionField):null==n?void 0:n.defaultProps,pattern:e.model.getProps().pattern})}},async handler(e,t){var l,o;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps({titleField:t.label,...null==(o=e.collectionField.targetCollection)||null==(l=o.getField(t.label))?void 0:l.getComponentProps()});let i=e.collectionField.targetCollection;if(i){let l=i.getField(t.label),o=f.DisplayItemModel.getDefaultBindingByField(e,l).modelName;o!==e.model.subModels.field.use&&e.model.setStepParams(e.flowKey,"model",{use:o})}},hideInSettings:async e=>!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField}}}),mT.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});var mI=__nested_rspack_require_1264766__(8563);let mL="client",mR=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,mj=e=>{if(!e)return 0;let t=e.getBoundingClientRect(),l=window.getComputedStyle(e),o=parseFloat(l.marginTop)||0,i=parseFloat(l.marginBottom)||0;return t.height+o+i},mD=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};let t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},mE=e=>{let t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},mY=e=>{let t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function mN(e,t){let l=t>0;return e>0?e:l?t:0}let mO=e=>{let{height:t,heightMode:l,hostRef:o,marginBlock:i}=e,[r,a]=n.default.useState(),s=n.default.useCallback(()=>{if("fullHeight"!==l||"u"<typeof window)return void a(e=>void 0===e?e:void 0);let e=o.current;if(!e)return;let t=mR(e),n=e.getBoundingClientRect(),r=t===document.documentElement?{top:0}:t.getBoundingClientRect(),s=mD(t),d=mY(t),u=r.top+s.top,c=Math.max(0,n.top-u),p=s.bottom+i;d&&(p=i+mj(d)+s.bottom);let m=Math.max(0,Math.floor(window.innerHeight-mN(u,110)-c-p-1));a(e=>e===m?e:m)},[l,o,i]);return(n.default.useLayoutEffect(()=>{s()},[s]),n.default.useEffect(()=>{if("fullHeight"!==l||"u"<typeof window)return;let e=o.current;if(!e||"u"<typeof ResizeObserver)return;let t=mR(e),i=mE(t),n=mY(t),r=new ResizeObserver(()=>s());return r.observe(e),t instanceof HTMLElement&&r.observe(t),i&&r.observe(i),n&&r.observe(n),window.addEventListener("resize",s),()=>{r.disconnect(),window.removeEventListener("resize",s)}},[l,o,s]),"specifyValue"===l)?t:"fullHeight"===l?r:null},mB=e=>{let{uid:t,className:l,heightMode:o,height:i,style:r,beforeContent:a,afterContent:s,contentRef:d,marginBlock:u,...c}=e,p=n.default.useRef(null),h=mO({height:i,heightMode:o,hostRef:p,marginBlock:u});return(0,m.jsxs)("div",{...c,ref:p,id:`model-${t}`,className:l,style:{display:"flex",flexDirection:"column",height:h??void 0,minHeight:0,overflow:"auto",...r||{}},children:[a,(0,m.jsx)("div",{ref:d}),s]})};class mV extends sC.z{get showBlockCard(){var e;return(null==(e=this.getStepParams("jsSettings","showBlockCard"))?void 0:e.showBlockCard)!==!1}renderComponent(){return(0,m.jsx)("div",{ref:this.context.ref})}render(){let{className:e,id:t,title:l,description:o,showCard:i,heightMode:n,height:r,style:a,beforeContent:s,afterContent:d,...u}=this.decoratorProps||{},c=["code-block",e].filter(Boolean).join(" ");if(!this.showBlockCard){var p;return(0,m.jsx)(mB,{...u,uid:this.uid,className:c,heightMode:n,height:r,style:a,beforeContent:s,afterContent:d,contentRef:this.context.ref,marginBlock:(null==(p=this.context.themeToken)?void 0:p.marginBlock)??0})}let h={...u,height:r,...void 0===a?{}:{style:a},...void 0===s?{}:{beforeContent:s},...void 0===d?{}:{afterContent:d}};return(0,m.jsx)(mI.tn,{id:`model-${this.uid}`,className:c,title:l,description:o,heightMode:n,...h,children:(0,m.jsx)("div",{ref:this.context.ref})})}onMount(){this._mountedOnce&&this.context.ref.current&&this.rerender(),this._mountedOnce=!0}constructor(...e){super(...e),this._mountedOnce=!1}}mV.define({label:(0,f.tExpr)("JS block"),createModelOptions:{use:"JSBlockModel"}}),mV.registerFlow({key:"jsSettings",title:"JavaScript settings",steps:{showBlockCard:{title:(0,f.tExpr)("Show block card"),uiMode:{type:"switch",key:"showBlockCard"},defaultParams:{showBlockCard:!0}},runJs:{title:(0,f.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","x-component":dm.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`// Welcome to the JS block
901
+ `}),async handler(e,t){let{code:l,version:o}=dh(e,t);e.defineMethod("refresh",async()=>{var t,l,o;(null==(l=e.blockModel)||null==(t=l.resource)?void 0:t.refresh)?await e.blockModel.resource.refresh():(null==(o=e.resource)?void 0:o.refresh)&&await e.resource.refresh()}),await e.runjs(l,void 0,{version:o})}}}});let me="dataScope",mt="tableColumnSettings",ml="quickEditDataScope";function mo(e){var t,l;let o=null==e||null==(l=e.globalFlowRegistry)||null==(t=l.getFlows)?void 0:t.call(l);if(!o)return null;for(let[e,t]of o)for(let[l,o]of Object.entries((null==t?void 0:t.steps)||{}))if((null==o?void 0:o.use)===me)return{flowKey:e,stepKey:l};return null}function mi(e,t){var l,o,i;if(!(null==t||null==(l=t.isAssociationField)?void 0:l.call(t)))return null;let n=ui.getDefaultBindingByField(e,t);return(null==n?void 0:n.modelName)?mo(null==(i=e.engine)||null==(o=i.getModelClass)?void 0:o.call(i,n.modelName)):null}function mn(e){return!e||!Array.isArray(e.items)||0===e.items.length}function mr(e){var t;let l=null==e?void 0:e.parent,o=null==l||null==(t=l.getStepParams)?void 0:t.call(l,mt,ml),i=null==o?void 0:o.filter;return mn(i)?void 0:i}function ma(e){let t=e.context.collectionField,l=()=>(null==t?void 0:t.targetCollection)??null,o=()=>e.context.collection??null;return(0,f.createEphemeralContext)(e.context,{defineProperties:{collection:{get:l,meta:(0,f.createCollectionContextMeta)(l,"Current collection")},record:{get:()=>void 0,meta:(0,f.createCurrentRecordMetaFactory)(e.context,o)}}})}function ms(e){let[t,l]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let t=!1;return(async()=>{let o=await ma(e);t||l(new Proxy(e,{get(e,t,l){if("context"===t)return o;let i=Reflect.get(e,t,l);return"function"==typeof i?i.bind(e):i}}))})(),()=>{t=!0}},[e]),t}function md(e){let t=ms((0,f.useFlowSettingsContext)().model),l=(0,n.useCallback)(()=>(null==t?void 0:t.context.getPropertyMetaTree())??[],[t]);return t?(0,m.jsx)(rO.I8,{value:e.value,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t,rightAsVariable:!0,rightMetaTree:l})}):(0,m.jsx)(x.Skeleton.Input,{active:!0,size:"small"})}let mu="calc(100vh - 96px)",mc="calc(100vh - 160px)",mp="min(480px, calc(100vh - 320px))",mm="50vh",mh="calc(50vh - var(--nb-mobile-page-header-height, 40px) - 132px)",mf="8px var(--nb-mobile-page-tabs-content-padding, 12px) 0",mg="8px var(--nb-mobile-page-tabs-content-padding, 12px) calc(80px + env(safe-area-inset-bottom, 0px))",mv="(max-width: 768px)",my=["SelectFieldModel","RecordSelectFieldModel","CascadeSelectFieldModel","CascadeSelectListFieldModel"];function mb(e,t){let l={...e.getComponentProps(),...t||{}};return["markdown","vditor"].includes(e.interface)&&null==l.height&&(l.height=mp),l}function mx(e,t){var l,o;let i=null==t||null==(l=t.context)?void 0:l.isMobileLayout;if("boolean"==typeof i)return{isMobileLayout:i,inheritsMobileContext:i};let n=null==(o=e.context)?void 0:o.isMobileLayout;return"boolean"==typeof n?{isMobileLayout:n,inheritsMobileContext:n}:"u"<typeof window||"function"!=typeof window.matchMedia?{isMobileLayout:!1,inheritsMobileContext:!1}:{isMobileLayout:window.matchMedia(mv).matches,inheritsMobileContext:!1}}function mM(e,t,l,o,i,n){var r,a;let s=null==i||null==(a=i.parent)||null==(r=a.props)?void 0:r.title;if(s)return s;let d=null==n?void 0:n.title;if(d)return d;let u=e.context.dataSourceManager.getCollectionField(`${t}.${l}.${o}`);return(null==u?void 0:u.title)||o}function m_(e){let t=!1,l=e.beforeClose,o=async e=>(!t||!!(null==e?void 0:e.force))&&!1!==await (null==l?void 0:l(e));return e.beforeClose=o,{...e,close:(t,l)=>e.close(t,l),update(l){var o;return Object.prototype.hasOwnProperty.call(l,"preventClose")&&(t=!!l.preventClose),null==(o=e.update)?void 0:o.call(e,l)},get beforeClose(){return e.beforeClose},set beforeClose(value){l=value,e.beforeClose=o}}}class mS extends f.FlowModel{get form(){return this.context.form}useHooksBeforeRender(){let[e]=x.Form.useForm();this.context.defineProperty("form",{get:()=>e})}static async open(e){let{flowEngine:t,target:l,dataSourceKey:o,collectionName:i,fieldPath:n,filterByTk:r,record:a,onSuccess:s,fieldProps:d,onOk:u,sourceFieldModelUid:c}=e,p=c?t.getModel(c):void 0,h=t.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:o,collectionName:i,fieldPath:n}}}},p?{delegate:p.context}:void 0);h._dataScopeFilter=mr(p);let g={maxHeight:mu,overflowY:"auto",overscrollBehavior:"contain"},v={...g,maxHeight:mm},y=(e,t)=>{if(b.isMobileLayout){var l;null==t||null==(l=t.defineProperty)||l.call(t,"isMobileLayout",{value:!0})}return h.viewContainer=m_(e),h.__onSubmitSuccess=s,h._fieldProps=d,h._onOk=u,(0,m.jsx)(f.FlowModelRenderer,{fallback:(0,m.jsx)(x.Skeleton.Input,{size:"small"}),model:h,inputArgs:{filterByTk:r,record:a,sourceFieldModelUid:c}})},b=mx(t,p);if(b.isMobileLayout){var M;h.context.defineProperty("isMobileLayout",{value:!0});let e=(null==p||null==(M=p.context)?void 0:M.viewer)||t.context.viewer,l=mM(t,o,i,n,p,d);await e.open({type:"drawer",title:l,closable:!0,placement:"bottom",inputArgs:{isMobileLayout:!0},styles:{body:v},content:y});return}await t.context.viewer.open({type:"popover",target:l,placement:"rightTop",styles:{body:{width:420,...g}},content:y})}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this});let t=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:t}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${e}`);!l||l.isAssociationField()&&(this.resource.addAppends(e),t&&this.resource.refresh())}render(){let e=this.context.isMobileLayout;return(0,m.jsxs)(dG.s2,{model:this,children:[(0,m.jsx)("div",{style:{minHeight:0,overflowY:"auto",maxHeight:e?mh:mc,padding:e?mf:void 0},children:this.mapSubModels("fields",e=>{var t;return(0,m.jsx)(f.FormItem,{showLabel:!1,name:this.fieldPath,initialValue:null==(t=this.context.record)?void 0:t[this.fieldPath],...this.props,children:(0,m.jsx)(f.FieldModelRenderer,{model:e,fallback:(0,m.jsx)(x.Skeleton.Input,{size:"small"})})},e.uid)})}),(0,m.jsxs)(x.Space,{style:{display:"flex",justifyContent:"flex-end",flexShrink:0,padding:e?mg:void 0},children:[(0,m.jsx)(x.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,m.jsx)(x.Button,{type:"primary",htmlType:"submit",onClick:async()=>{var e,t,l,o,i;let n=this.form.getFieldsValue();await this.form.submit();let r={...n},a={[this.fieldPath]:null==(e=this.resource.getData())?void 0:e[this.fieldPath]};if(this._onOk)this._onOk(r),this.viewContainer.close();else try{await this.resource.save(r,{refresh:!1}),null==(t=(l=this).__onSubmitSuccess)||t.call(l,r),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(e){console.error("Failed to save form data:",e),this.context.message.error(this.context.t("Failed to save form data")),null==(o=(i=this).__onSubmitSuccess)||o.call(i,a)}},children:this.context.t("Submit")})]})]})}}mS.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{async handler(e,t){let{dataSourceKey:l,collectionName:o,fieldPath:i}=t;if(!l||!o||!i)throw Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=i,e.model.collection=e.dataSourceManager.getCollection(l,o);let n=e.createResource(f.SingleRecordResource);n.setDataSourceKey(l),n.setResourceName(o),e.model.resource=n,(e.inputArgs.filterByTk||e.inputArgs.record)&&(n.setFilterByTk(e.inputArgs.filterByTk),n.setData(e.inputArgs.record));let r=e.model.collection.getField(i);if(r){let t=ui.getDefaultBindingByField(e,r);if(!t)return;let n=t.modelName,a={fieldSettings:{init:{dataSourceKey:l,collectionName:o,fieldPath:i}}},s=e.model._dataScopeFilter;if(s){let t=mo(e.engine.getModelClass(n));t&&(a[t.flowKey]={...a[t.flowKey],[t.stepKey]:{filter:s}})}let d=e.model.addSubModel("fields",{use:n,props:"function"==typeof t.defaultProps?t.defaultProps(e,r):t.defaultProps,stepParams:a});d.setProps(mb(r,e.model._fieldProps)),d.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),!e.model.context.isMobileLayout&&my.includes(n)&&null==d.props.placement&&d.setProps({placement:"topLeft"}),e.model.context.defineProperty("collectionField",{get:()=>r}),e.model.addAppends(i),await d.dispatchEvent("beforeRender")}if(e.inputArgs.filterByTk||e.inputArgs.record){var a;null==(a=e.model.form)||a.setFieldsValue(n.getData())}}}}}),mS.define({hide:!0});class mw extends aZ{}mw.itemModelName="FormAssociationItemModel",mw.define({label:'{{t("Display association fields")}}'});let mF=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=(0,f.useFlowContext)();return(0,iH.useRequest)(async()=>await l.resolveJsonTemplate(e),{refreshDeps:t})},mk=2;function mC(e,t){if(!t)return e;let l=[...e];return t.forEach(e=>{let[t,o]=e.split(":");if(l.includes(t)){let e=l.indexOf(t),i=Number(o);l.splice(e+1,0,Number.isFinite(i)?i:o)}}),l}function mA(e,t){if(null==e)return e;let l=typeof e;if("string"===l||"number"===l||"boolean"===l)return e;if("bigint"===l)return String(e);if(Array.isArray(e))return e.map(e=>{let l=mA(e,t);return null==l?"":String(l)}).join(",");if("object"===l){let l=(0,g.castArray)(t).filter(Boolean);if(1===l.length){let t=mA((0,g.get)(e,l[0]));if(void 0!==t)return t}if(l.length>1)return JSON.stringify(l.map(t=>mA((0,g.get)(e,t))??null));let o=e.id??e.value??e.key;if("string"==typeof o||"number"==typeof o)return o;if("bigint"==typeof o)return String(o)}}let mP=e=>{let t=e.underSubForm?"ctx.item.value":"ctx.formValues",l=`{{${t}.${e.fieldPath}}}`,{data:o,loading:i,error:n}=mF(l,[l,e.refreshKey]);return i?(0,m.jsx)("div",{children:"Loading..."}):n?(0,m.jsxs)("div",{children:["Error: ",n.message]}):(0,m.jsx)(f.FieldModelRenderer,{...e.mergedProps,model:e.modelForRender,value:o||e.value})};class mT extends f.DisplayItemModel{static defineChildren(e){let t=e.collection,l=e.prefixFieldPath?e.prefixFieldPath.split(".").filter(Boolean).length:0;return t.getFields().map(o=>{var i;if(l>=mk&&((null==(i=o.isAssociationField)?void 0:i.call(o))||o.target||o.targetCollection))return null;let n=this.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!n)return null;let r=n.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===a},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:r,props:"function"==typeof n.defaultProps?n.defaultProps(e,o):n.defaultProps}}})}}).filter(Boolean)}onInit(e){super.onInit(e),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){let e=this.subModels.field,t=this.context.fieldIndex,l=this.context.record,o=this.context.currentObject,i=null!=t?(()=>{let i=e.createFork({},`${t}`);return i.context.defineProperty("fieldIndex",{get:()=>t}),i.context.defineProperty("record",{get:()=>l,cache:!1}),i.context.defineProperty("currentObject",{get:()=>o,cache:!1}),this.context.pattern&&i.context.defineProperty("pattern",{get:()=>this.context.pattern}),i})():e,n=this.collectionField.name,r=this.fieldPath.replace(RegExp(`\\.${n}$`),""),a=mC((0,g.castArray)(r.split(".")),t),s=this.context.prefixFieldPath;return(0,m.jsx)(f.FormItem,{...this.props,shouldUpdate:(e,t)=>{let l=a.length>1&&!(0,g.get)(e,[...a])?a.slice(0,-1):a;return JSON.stringify((0,g.get)(e,[...l]))!==JSON.stringify((0,g.get)(t,[...l]))},children:()=>{var e,t,l,o;let n=mA(null==(t=this.context.form)||null==(e=t.getFieldValue)?void 0:e.call(t,a),null==(o=this.collectionField)||null==(l=o.collection)?void 0:l.filterTargetKey)||(0,nn.uid)();return(0,m.jsx)(mP,{modelForRender:i,fieldPath:this.fieldPath.replace(RegExp(`^${s}\\.`),""),refreshKey:n,mergedProps:this.props,underSubForm:!!s})}})}}mT.define({label:(0,f.tExpr)("Display fields"),sort:100}),mT.registerFlow({key:"detailItemSettings",sort:300,title:(0,f.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,f.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,f.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l;let o=e.model,i=null==(l=o.collectionField)?void 0:l.title;t.decoratorProps={...t.decoratorProps,extra:o.context.t("Original field title: ")+(o.context.t(i)??"")}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{async handler(e){let{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())}},tooltip:{title:(0,f.tExpr)("Tooltip"),uiSchema:{tooltip:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({tooltip:e.t(t.tooltip,{ns:"lm-flow-engine"})})}},description:{title:(0,f.tExpr)("Description"),uiSchema:{description:{"x-component":"Input.TextArea","x-decorator":"FormItem"}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},model:{title:(0,f.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,f.tExpr)("Title field"),beforeParamsSave:async(e,t,l)=>{if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==l.label){var o,i;e.model.setProps({titleField:t.label,...null==(i=e.collectionField.targetCollection)||null==(o=i.getField(t.label))?void 0:o.getComponentProps()});let l=e.collectionField.targetCollection.getField(t.label),n=f.DisplayItemModel.getDefaultBindingByField(e,l),r=n.modelName;await d2({parentModel:e.model,targetUse:r,defaultProps:"function"==typeof(null==n?void 0:n.defaultProps)?n.defaultProps(e,e.collectionField):null==n?void 0:n.defaultProps,pattern:e.model.getProps().pattern})}},async handler(e,t){var l,o;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps({titleField:t.label,...null==(o=e.collectionField.targetCollection)||null==(l=o.getField(t.label))?void 0:l.getComponentProps()});let i=e.collectionField.targetCollection;if(i){let l=i.getField(t.label),o=f.DisplayItemModel.getDefaultBindingByField(e,l).modelName;o!==e.model.subModels.field.use&&e.model.setStepParams(e.flowKey,"model",{use:o})}},hideInSettings:async e=>!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField}}}),mT.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});var mI=__nested_rspack_require_1264766__(8563);let mL="client",mR=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,mj=e=>{if(!e)return 0;let t=e.getBoundingClientRect(),l=window.getComputedStyle(e),o=parseFloat(l.marginTop)||0,i=parseFloat(l.marginBottom)||0;return t.height+o+i},mD=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};let t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},mE=e=>{let t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},mY=e=>{let t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function mN(e,t){let l=t>0;return e>0?e:l?t:0}let mO=e=>{let{height:t,heightMode:l,hostRef:o,marginBlock:i}=e,[r,a]=n.default.useState(),s=n.default.useCallback(()=>{if("fullHeight"!==l||"u"<typeof window)return void a(e=>void 0===e?e:void 0);let e=o.current;if(!e)return;let t=mR(e),n=e.getBoundingClientRect(),r=t===document.documentElement?{top:0}:t.getBoundingClientRect(),s=mD(t),d=mY(t),u=r.top+s.top,c=Math.max(0,n.top-u),p=s.bottom+i;d&&(p=i+mj(d)+s.bottom);let m=Math.max(0,Math.floor(window.innerHeight-mN(u,110)-c-p-1));a(e=>e===m?e:m)},[l,o,i]);return(n.default.useLayoutEffect(()=>{s()},[s]),n.default.useEffect(()=>{if("fullHeight"!==l||"u"<typeof window)return;let e=o.current;if(!e||"u"<typeof ResizeObserver)return;let t=mR(e),i=mE(t),n=mY(t),r=new ResizeObserver(()=>s());return r.observe(e),t instanceof HTMLElement&&r.observe(t),i&&r.observe(i),n&&r.observe(n),window.addEventListener("resize",s),()=>{r.disconnect(),window.removeEventListener("resize",s)}},[l,o,s]),"specifyValue"===l)?t:"fullHeight"===l?r:null},mB=e=>{let{uid:t,className:l,heightMode:o,height:i,style:r,beforeContent:a,afterContent:s,contentRef:d,marginBlock:u,minHeight:c,...p}=e,h=n.default.useRef(null),f=mO({height:i,heightMode:o,hostRef:h,marginBlock:u});return(0,m.jsxs)("div",{...p,ref:h,id:`model-${t}`,className:l,style:{display:"flex",flexDirection:"column",height:f??void 0,minHeight:c,overflow:"auto",...r||{}},children:[a,(0,m.jsx)("div",{ref:d}),s]})};class mV extends sC.z{get showBlockCard(){var e;return(null==(e=this.getStepParams("jsSettings","showBlockCard"))?void 0:e.showBlockCard)!==!1}renderComponent(){return(0,m.jsx)("div",{ref:this.context.ref})}render(){let{className:e,id:t,title:l,description:o,showCard:i,heightMode:n,height:r,style:a,beforeContent:s,afterContent:d,...u}=this.decoratorProps||{},c=["code-block",e].filter(Boolean).join(" ");if(!this.showBlockCard){var p,h;return(0,m.jsx)(mB,{...u,uid:this.uid,className:c,heightMode:n,height:r,style:a,beforeContent:s,afterContent:d,contentRef:this.context.ref,marginBlock:(null==(p=this.context.themeToken)?void 0:p.marginBlock)??0,minHeight:this.context.flowSettingsEnabled?(null==(h=this.context.themeToken)?void 0:h.controlHeightLG)??40:0})}let f={...u,height:r,...void 0===a?{}:{style:a},...void 0===s?{}:{beforeContent:s},...void 0===d?{}:{afterContent:d}};return(0,m.jsx)(mI.tn,{id:`model-${this.uid}`,className:c,title:l,description:o,heightMode:n,...f,children:(0,m.jsx)("div",{ref:this.context.ref})})}onMount(){this._mountedOnce&&this.context.ref.current&&this.rerender(),this._mountedOnce=!0}constructor(...e){super(...e),this._mountedOnce=!1}}mV.define({label:(0,f.tExpr)("JS block"),createModelOptions:{use:"JSBlockModel"}}),mV.registerFlow({key:"jsSettings",title:"JavaScript settings",steps:{showBlockCard:{title:(0,f.tExpr)("Show block card"),uiMode:{type:"switch",key:"showBlockCard"},defaultParams:{showBlockCard:!0}},runJs:{title:(0,f.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","x-component":dm.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`// Welcome to the JS block
902
902
  // Create powerful interactive components with JavaScript
903
903
  ctx.render(\`
904
904
  <div style="padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; max-width: 600px;">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client-v2",
3
- "version": "2.2.19",
3
+ "version": "2.2.21",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -27,11 +27,11 @@
27
27
  "@formily/antd-v5": "1.2.3",
28
28
  "@formily/react": "^2.2.27",
29
29
  "@formily/shared": "^2.2.27",
30
- "@nocobase/evaluators": "2.2.19",
31
- "@nocobase/flow-engine": "2.2.19",
32
- "@nocobase/sdk": "2.2.19",
33
- "@nocobase/shared": "2.2.19",
34
- "@nocobase/utils": "2.2.19",
30
+ "@nocobase/evaluators": "2.2.21",
31
+ "@nocobase/flow-engine": "2.2.21",
32
+ "@nocobase/sdk": "2.2.21",
33
+ "@nocobase/shared": "2.2.21",
34
+ "@nocobase/utils": "2.2.21",
35
35
  "ahooks": "^3.7.2",
36
36
  "antd": "5.24.2",
37
37
  "antd-style": "3.7.1",
@@ -49,5 +49,5 @@
49
49
  "react-router-dom": "^6.30.1",
50
50
  "zxing-wasm": "^3.1.3"
51
51
  },
52
- "gitHead": "0d4e2dc07729c32533e35c8e8e16c57815d6242a"
52
+ "gitHead": "b3ab91d3475d2763c922e0cad9486bf7cb20ac70"
53
53
  }
@@ -152,6 +152,7 @@ const JSBlockPlainHost = ({
152
152
  afterContent,
153
153
  contentRef,
154
154
  marginBlock,
155
+ minHeight,
155
156
  ...rest
156
157
  }: React.HTMLAttributes<HTMLDivElement> & {
157
158
  uid: string;
@@ -161,6 +162,7 @@ const JSBlockPlainHost = ({
161
162
  afterContent?: React.ReactNode;
162
163
  contentRef: React.RefObject<HTMLDivElement>;
163
164
  marginBlock: number;
165
+ minHeight: number;
164
166
  }) => {
165
167
  const hostRef = React.useRef<HTMLDivElement | null>(null);
166
168
  const resolvedHeight = usePlainHostHeight({ height, heightMode, hostRef, marginBlock });
@@ -175,7 +177,7 @@ const JSBlockPlainHost = ({
175
177
  display: 'flex',
176
178
  flexDirection: 'column',
177
179
  height: resolvedHeight ?? undefined,
178
- minHeight: 0,
180
+ minHeight,
179
181
  overflow: 'auto',
180
182
  ...(style || {}),
181
183
  }}
@@ -228,6 +230,8 @@ export class JSBlockModel extends BlockModel {
228
230
  afterContent={afterContent}
229
231
  contentRef={this.context.ref}
230
232
  marginBlock={this.context.themeToken?.marginBlock ?? 0}
233
+ // Keep empty blocks reachable by the settings overlay while the UI editor is active.
234
+ minHeight={this.context.flowSettingsEnabled ? this.context.themeToken?.controlHeightLG ?? 40 : 0}
231
235
  />
232
236
  );
233
237
  }
@@ -9,7 +9,7 @@
9
9
 
10
10
  import React from 'react';
11
11
  import { App, ConfigProvider } from 'antd';
12
- import { render } from '@nocobase/test/client';
12
+ import { act, render, waitFor } from '@nocobase/test/client';
13
13
  import { describe, expect, it, vi } from 'vitest';
14
14
  import { FlowEngine, FlowEngineProvider } from '@nocobase/flow-engine';
15
15
  import { JSBlockModel } from '../JSBlock';
@@ -78,6 +78,28 @@ describe('JSBlockModel', () => {
78
78
  expect(model.context.ref.current).toBe(host?.firstElementChild);
79
79
  });
80
80
 
81
+ it('keeps an empty cardless block reachable only while the UI editor is active', async () => {
82
+ const { engine, model } = createJSBlock('js-block-empty-without-card', false, { style: undefined });
83
+ await engine.flowSettings.disable();
84
+ const { container } = renderBlock(engine, model);
85
+ const host = container.querySelector('#model-js-block-empty-without-card') as HTMLElement;
86
+ const content = model.context.ref.current;
87
+
88
+ expect(host.style.minHeight).toBe('0');
89
+ await act(async () => {
90
+ await engine.flowSettings.enable();
91
+ });
92
+ await waitFor(() => expect(host.style.minHeight).toBe('40px'));
93
+ expect(model.context.ref.current).toBe(content);
94
+ expect(container.querySelector('.ant-card')).toBeNull();
95
+
96
+ await act(async () => {
97
+ await engine.flowSettings.disable();
98
+ });
99
+ await waitFor(() => expect(host.style.minHeight).toBe('0'));
100
+ expect(model.context.ref.current).toBe(content);
101
+ });
102
+
81
103
  it('keeps cardless specified-height content scrollable inside the plain host', () => {
82
104
  const { engine, model } = createJSBlock('js-block-without-card-height', false, {
83
105
  heightMode: 'specifyValue',
@@ -66,6 +66,11 @@ function RemoteModelRenderer({ options }) {
66
66
 
67
67
  export function CreateContent({ model, toOne = false }) {
68
68
  const ctx = useFlowContext();
69
+ // Quick-create popups isolate business context but must retain the field's configuration mode.
70
+ ctx.defineProperty('flowSettingsEnabled', {
71
+ get: () => model.context.flowSettingsEnabled,
72
+ cache: false,
73
+ });
69
74
  const { Header, type } = ctx.view;
70
75
  model._closeView = ctx.view.close;
71
76
  return (
@@ -876,6 +881,8 @@ RecordSelectFieldModel.registerFlow({
876
881
  dataSourceKey: ctx.collection.dataSourceKey,
877
882
  collectionName: ctx.collectionField?.target,
878
883
  ...(associationName && sourceId != null ? { associationName, sourceId } : {}),
884
+ // 上级记录暂无主键(如审批配置态表单)时不能传 associationName,否则弹窗内新建的区块会绑定到关联资源;改传 sourceAssociationName,仅用于展示“当前弹窗上级记录”变量
885
+ ...(associationName && sourceId == null ? { sourceAssociationName: associationName } : {}),
879
886
  collectionField: ctx.collectionField,
880
887
  openerUids,
881
888
  onChange: (e) => {
@@ -0,0 +1,183 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ import {
11
+ FlowContext,
12
+ FlowEngine,
13
+ FlowEngineProvider,
14
+ FlowViewContextProvider,
15
+ type FlowModel,
16
+ } from '@nocobase/flow-engine';
17
+ import { cleanup, render, screen, waitFor } from '@testing-library/react';
18
+ import React from 'react';
19
+ import { afterEach, describe, expect, it, vi } from 'vitest';
20
+ import '../../../index';
21
+ import { BlockGridModel } from '../../../base/BlockGridModel';
22
+ import { RecordSelectFieldModel } from '../RecordSelectFieldModel';
23
+
24
+ type OpenViewHandler = (ctx: unknown, params: Record<string, unknown>) => void;
25
+
26
+ function getOpenViewHandler(): OpenViewHandler {
27
+ const flow = RecordSelectFieldModel.globalFlowRegistry.getFlow('popupSettings');
28
+ const handler = flow?.getStep('openView')?.serialize().handler;
29
+
30
+ if (!handler) {
31
+ throw new Error('popupSettings.openView handler is not registered');
32
+ }
33
+
34
+ return handler as OpenViewHandler;
35
+ }
36
+
37
+ function createContext(record: Record<string, unknown>) {
38
+ const open = vi.fn();
39
+ const sourceCollection = {
40
+ getFilterByTK: vi.fn((sourceRecord: Record<string, unknown>) => sourceRecord.id),
41
+ };
42
+ const model = {
43
+ uid: 'record-select-uid',
44
+ props: {
45
+ quickCreate: 'modalAdd',
46
+ allowMultiple: true,
47
+ },
48
+ context: {
49
+ inputArgs: {},
50
+ flowSettingsEnabled: false,
51
+ },
52
+ flowEngine: {
53
+ context: {
54
+ themeToken: {
55
+ colorBgLayout: '#fff',
56
+ },
57
+ },
58
+ },
59
+ };
60
+
61
+ return {
62
+ open,
63
+ context: {
64
+ inputArgs: { onChange: vi.fn() },
65
+ view: {
66
+ inputArgs: {
67
+ viewUid: 'approval-popup-uid',
68
+ },
69
+ },
70
+ viewer: { open },
71
+ layoutContentElement: {},
72
+ model,
73
+ collection: {
74
+ dataSourceKey: 'main',
75
+ filterTargetKey: 'id',
76
+ },
77
+ collectionField: {
78
+ type: 'hasMany',
79
+ target: 'orgs',
80
+ resourceName: 'users.orgs',
81
+ collection: sourceCollection,
82
+ },
83
+ record,
84
+ },
85
+ };
86
+ }
87
+
88
+ describe('RecordSelectFieldModel quick create popup', () => {
89
+ afterEach(() => {
90
+ cleanup();
91
+ vi.restoreAllMocks();
92
+ });
93
+
94
+ describe.each(['drawer', 'dialog'])('%s configuration mode', (mode) => {
95
+ it.each([
96
+ { scenario: 'configuration', modelEnabled: true, globalEnabled: false },
97
+ { scenario: 'global configuration', modelEnabled: true, globalEnabled: true },
98
+ { scenario: 'runtime', modelEnabled: false, globalEnabled: false },
99
+ { scenario: 'read-only configuration', modelEnabled: false, globalEnabled: true },
100
+ ])('uses the field configuration state in $scenario', async ({ modelEnabled, globalEnabled }) => {
101
+ const engine = new FlowEngine();
102
+ engine.registerModels({ BlockGridModel });
103
+ engine.flowSettings.enabled = globalEnabled;
104
+ engine.context.defineProperty('themeToken', {
105
+ value: { marginBlock: 16, marginSM: 8, paddingLG: 24 },
106
+ });
107
+ engine.context.defineProperty('t', { value: (key: string) => key });
108
+ const save = vi.fn(async (model: FlowModel) => model.serialize());
109
+ engine.setModelRepository({
110
+ findOne: vi.fn(async () => null),
111
+ save,
112
+ destroy: vi.fn(async () => true),
113
+ move: vi.fn(async () => undefined),
114
+ duplicate: vi.fn(async () => null),
115
+ });
116
+ const load = vi.spyOn(engine, 'loadOrCreateModel');
117
+ const { context, open } = createContext({});
118
+ context.model.context.flowSettingsEnabled = modelEnabled;
119
+ getOpenViewHandler()(context, { mode, size: 'medium' });
120
+ const config = open.mock.calls[0][0];
121
+ expect(config.inheritContext).toBe(false);
122
+
123
+ // Detached popups inherit the engine context, not the approval form's model context.
124
+ const popupContext = new FlowContext();
125
+ popupContext.addDelegate(engine.context);
126
+ popupContext.defineProperty('engine', { value: engine });
127
+ popupContext.defineProperty('view', {
128
+ value: { type: mode, inputArgs: config.inputArgs, Header: () => null, close: vi.fn() },
129
+ });
130
+ const { container } = render(
131
+ <FlowEngineProvider engine={engine}>
132
+ <FlowViewContextProvider context={popupContext}>{config.content()}</FlowViewContextProvider>
133
+ </FlowEngineProvider>,
134
+ );
135
+
136
+ await waitFor(() => expect(container.querySelector('.nb-block-grid')).toBeInTheDocument());
137
+ if (modelEnabled) {
138
+ expect(screen.getByRole('button', { name: /Add block/ })).toBeInTheDocument();
139
+ expect(save).toHaveBeenCalledOnce();
140
+ } else {
141
+ expect(screen.queryByRole('button', { name: /Add block/ })).not.toBeInTheDocument();
142
+ expect(save).not.toHaveBeenCalled();
143
+ }
144
+ expect(load).toHaveBeenCalledWith(
145
+ expect.objectContaining({ use: 'BlockGridModel', parentId: context.model.uid }),
146
+ { delegateToParent: false, delegate: popupContext, skipSave: !modelEnabled },
147
+ );
148
+ expect(engine.context.flowSettingsEnabled).toBe(globalEnabled);
149
+ });
150
+ });
151
+
152
+ it('passes the parent record reference when the parent record has a primary key', () => {
153
+ const { context, open } = createContext({ id: 1, nickname: 'Saved user' });
154
+
155
+ getOpenViewHandler()(context, { mode: 'drawer', size: 'medium' });
156
+
157
+ expect(open).toHaveBeenCalledOnce();
158
+ const { inputArgs } = open.mock.calls[0][0];
159
+ expect(inputArgs).toMatchObject({
160
+ scene: 'create',
161
+ collectionName: 'orgs',
162
+ associationName: 'users.orgs',
163
+ sourceId: 1,
164
+ });
165
+ expect(inputArgs).not.toHaveProperty('sourceAssociationName');
166
+ });
167
+
168
+ it('only passes sourceAssociationName when the parent record has no primary key yet', () => {
169
+ const { context, open } = createContext({});
170
+
171
+ getOpenViewHandler()(context, { mode: 'drawer', size: 'medium' });
172
+
173
+ expect(open).toHaveBeenCalledOnce();
174
+ const { inputArgs } = open.mock.calls[0][0];
175
+ expect(inputArgs).toMatchObject({
176
+ scene: 'create',
177
+ collectionName: 'orgs',
178
+ sourceAssociationName: 'users.orgs',
179
+ });
180
+ expect(inputArgs).not.toHaveProperty('associationName');
181
+ expect(inputArgs).not.toHaveProperty('sourceId');
182
+ });
183
+ });