@nocobase/client-v2 2.2.8 → 2.2.9

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
@@ -294,7 +294,7 @@ ${n}`,u)}}let o=T(e.issues.filter(e=>"runtime"===e.type)),n=o?`Key runtime issue
294
294
  }
295
295
  }
296
296
  }
297
- `;function D(e,t){var l;return!!(null==(l=I[e])?void 0:l.has(t))}function E(e){return"hasAvailableData"in e&&"function"==typeof e.hasAvailableData}function Y(e){return"submit"in e&&"function"==typeof e.submit}class N extends m.t{serialize(){return{...super.serialize(),variableContractType:{type:"form",use:this.use}}}get form(){return this.context.form}submitFromRunJs(){if(E(this)&&!this.hasAvailableData())return;let e=this.mapSubModels("actions",e=>e).find(e=>e.getFlow("submitSettings"));if(e)return e.onClick(void 0);let t=["CreateFormModel","EditFormModel"].some(e=>{let t=this.flowEngine.getModelClass(e);return t&&this instanceof t});!this.context.publicFormRuntime&&t&&Y(this)&&this.submit().catch(e=>{this.context.message.error(this.context.t("Save failed")),console.error("Form submission error:",e)})}syncRuntimeAssignRules(){var e,t,l;arguments.length>0&&void 0!==arguments[0]&&arguments[0];let o=this.getStepParams("formModelSettings","assignRules"),n=(null==o?void 0:o.value)||[];null==(t=this.formValueRuntime)||null==(e=t.syncAssignRules)||e.call(t,Array.isArray(n)?n:[]);let i=null==(l=this.context)?void 0:l.resource,r=T(n,this.collection);(null==i?void 0:i.addUpdateAssociationValues)&&r.length&&i.addUpdateAssociationValues(r)}renderConfigureActions(){return(0,o.jsx)(r.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("FormActionGroupModel"),children:(0,o.jsx)(r.FlowSettingsButton,{icon:(0,o.jsx)(n.SettingOutlined,{}),children:this.translate("Actions")})})}setFieldsValue(e){let t=this.context;"function"==typeof t.setFormValues?t.setFormValues(e,{source:"system"}).catch(e=>{console.warn("[FormBlockModel] Failed to set form values via ctx.setFormValues",e)}):this.form.setFieldsValue(e)}setFieldValue(e,t){let l=this.context;"function"==typeof l.setFormValue?l.setFormValue(e,t,{source:"system"}).catch(e=>{console.warn("[FormBlockModel] Failed to set form value via ctx.setFormValue",e)}):this.form.setFieldValue(e,t)}markUserModifiedFields(e){if(e&&"object"==typeof e&&!Array.isArray(e))for(let t of Object.keys(e))t&&this.userModifiedTopLevelFields.add(t)}getUserModifiedFields(){return this.userModifiedTopLevelFields}resetUserModifiedFields(){this.userModifiedTopLevelFields.clear()}resetRuntimeUserEditedState(){var e,t;null==(t=this.formValueRuntime)||null==(e=t.resetUserEditedState)||e.call(t)}async onDispatchEventStart(e,t,l){var o;if("beforeRender"===e){let e=this.subModels.grid;e&&await e.dispatchEvent("beforeRender",l,{useCache:null==t?void 0:t.useCache})}await (null==(o=super.onDispatchEventStart)?void 0:o.call(this,e,t,l))}getStepParams(e,t){let l=this.subModels.grid;if(e&&t&&D(e,t)&&l){let o=l.getStepParams(e,t);return void 0!==o?o:super.getStepParams(e,t)}if(e&&!t&&I[e]&&l){let t=super.getStepParams(e)||{},o=l.getStepParams(e)||{};for(let l of I[e])Object.prototype.hasOwnProperty.call(o,l)&&void 0!==o[l]&&(t[l]=o[l]);return t}return super.getStepParams(e,t)}setStepParams(e,t,l){let o=this.subModels.grid,n=(e,t)=>{let l=I[e];if(!l||!o)return t;let n={};for(let[i,r]of Object.entries(t))l.has(i)?o.setStepParams(e,i,r):n[i]=r;return n};if("string"==typeof e&&"string"==typeof t&&void 0!==l)return void(D(e,t)&&o?o.setStepParams(e,t,l):super.setStepParams(e,t,l));if("string"==typeof e&&"object"==typeof t&&null!==t){let l=n(e,t);Object.keys(l).length>0&&super.setStepParams(e,l);return}if("object"==typeof e&&null!==e){let t={};for(let[l,o]of Object.entries(e)){if("object"!=typeof o||null===o){t[l]=o;continue}let e=n(l,o);Object.keys(e).length>0&&(t[l]=e)}Object.keys(t).length>0&&super.setStepParams(t)}}async saveStepParams(){return await (0,p.ON)(this,async()=>{let e=await super.saveStepParams(),t=this.subModels.grid;return await (null==t?void 0:t.saveStepParams()),e})}createFormValuesMetaFactory(){return(0,r.createAssociationAwareObjectMetaFactory)(()=>this.collection,this.translate("Current form"),()=>{var e,t;return(null==(t=this.form)||null==(e=t.getFieldsValue)?void 0:e.call(t))||{}})}useHooksBeforeRender(){let[e]=a.Form.useForm();this.context.defineProperty("form",{get:()=>e}),this.formValueRuntime||(this.formValueRuntime=new P({model:this,getForm:()=>this.context.form}));let t=this.formValueRuntime;t.mount();let l=this.createFormValuesMetaFactory();this.context.defineProperty("formValues",{get:()=>t.formValues,cache:!1,meta:l,resolveOnServer:e=>{var l,o,n,i,a,s,u,c,p,m,h,f,g;if(!e)return!1;let v=(e=>{let t=String(e||"").match(/^([^.[]+)/);return null==t?void 0:t[1]})(e);if(!v||!(null==(o=this.collection)||null==(l=o.getField)?void 0:l.call(o,v)))return!1;if((()=>{var e,t,l,o;let n=(null==(t=this.subModels.grid)||null==(e=t.subModels)?void 0:e.items)??[],i=new Set;for(let e of n){let t=null==e||null==(o=e.getStepParams)||null==(l=o.call(e,"fieldSettings","init"))?void 0:l.fieldPath,n=null==t?void 0:t.toString().split(".")[0];n&&i.add(n)}return i})().has(v)){let l=null==(i=this.form)||null==(n=i.getFieldValue)?void 0:n.call(i,v);if(null==l||Array.isArray(l)&&0===l.length)return!1;let o=t.getFormValuesSnapshot();return(!o||"object"!=typeof o||void 0===(0,d.getValuesByPath)(o,e))&&(0,r.createAssociationSubpathResolver)(()=>this.collection,()=>t.getFormValuesSnapshot())(e)}try{let e=(null==(u=this.context)||null==(s=u.resource)||null==(a=s.getMeta)?void 0:a.call(s,"currentFilterByTk"))??(null==(m=this.context)||null==(p=m.resource)||null==(c=p.getFilterByTk)?void 0:c.call(p))??(null==(g=this.collection)||null==(f=g.getFilterByTK)?void 0:f.call(g,null==(h=this.context)?void 0:h.record));if(null==e)return!1}catch(e){return!1}return!0},serverOnlyWhenContextParams:!0}),this.context.defineMethod("getFormValues",function(){return t.getFormValuesSnapshot()}),this.context.defineMethod("setFormValues",function(e,l){return t.setFormValues(this,e,l)}),this.context.defineMethod("setFormValue",function(e,l,o){return t.setFormValues(this,[{path:e,value:l}],o)})}onInit(e){super.onInit(e),this.emitter.on("onSubModelAdded",e=>{e===this.subModels.grid&&queueMicrotask(()=>this.syncRuntimeAssignRules("onSubModelAdded:grid"))}),this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1}),this.context.resource.on("saved",()=>{this.dispatchEvent("formSubmitSuccess",{})})}onMount(){var e;super.onMount(),null==(e=this.formValueRuntime)||e.mount({sync:!0}),this.syncRuntimeAssignRules("onMount"),setTimeout(()=>{this.applyFlow("eventSettings")},100)}onUnmount(){var e;null==(e=this.formValueRuntime)||e.dispose(),this.formValueRuntime=void 0,super.onUnmount()}getCurrentRecord(){return{}}renderComponent(){throw Error("renderComponent method must be implemented in subclasses of FormModel")}constructor(...e){super(...e),this.userModifiedTopLevelFields=new Set,this._defaultCustomModelClasses={FormActionGroupModel:"FormActionGroupModel",FormItemModel:"FormItemModel",FormAssociationFieldGroupModel:"FormAssociationFieldGroupModel"},this.customModelClasses={}}}function O(e){var t,l,n,i;let{model:r,children:d,layoutProps:u={},initialValues:c,...p}=e,m=!!((null==r||null==(t=r.context)?void 0:t.isMobileLayout)&&(null==u?void 0:u.layout)==="horizontal"),h=[p.className,m?L:"",m?R:""].filter(Boolean).join(" ");return(0,o.jsx)(a.Form,{form:r.form,initialValues:(null==(i=r.context)||null==(n=i.view)||null==(l=n.inputArgs)?void 0:l.formData)||r.context.record||c,...(0,s.omit)(u,"labelWidth"),labelCol:{style:{width:null==u?void 0:u.labelWidth}},onFieldsChange:e=>{let t=r.formValueRuntime;t&&t.handleFormFieldsChange(e)},onValuesChange:(e,t)=>{var l;null==(l=r.markUserModifiedFields)||l.call(r,e);let o=r.formValueRuntime;o?o.handleFormValuesChange(e,t):(r.dispatchEvent("formValuesChange",{changedValues:e,allValues:t},{debounce:!0}),r.emitter.emit("formValuesChange",{changedValues:e,allValues:t}))},...p,className:h||void 0,children:d})}let B=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},V=e=>{if(null!=e&&""!==e)return"number"==typeof e||/^\d+(\.\d+)?$/.test(e)?`${e}px`:e},H=e=>{let{heightMode:t,containerRef:l,actionsRef:o,footerRef:n,deps:i=[]}=e,[r,a]=(0,u.useState)(),s=(0,u.useCallback)(()=>{if("specifyValue"!==t&&"fullHeight"!==t)return void a(e=>void 0===e?e:void 0);let e=l.current;if(!e)return;let i=e.getBoundingClientRect().height;if(!i)return;let r=Math.max(0,Math.floor(i-B((null==o?void 0:o.current)||null)-B((null==n?void 0:n.current)||null)));a(e=>e===r?e:r)},[t,l,o,n]);return(0,u.useLayoutEffect)(()=>{s()},[s,...i]),(0,u.useEffect)(()=>{if(!l.current||"u"<typeof ResizeObserver)return;let e=l.current,t=(null==o?void 0:o.current)||null,i=(null==n?void 0:n.current)||null,r=new ResizeObserver(()=>s());return r.observe(e),t&&r.observe(t),i&&r.observe(i),()=>r.disconnect()},[s,l,o,n,...i]),r},q=e=>{var t,l;let{model:n,gridModel:i,layoutProps:r,onFinish:a,grid:s,actions:d,footer:c,heightMode:p,height:m}=e,h=(0,u.useRef)(null),f=(0,u.useRef)(null),g=(0,u.useRef)(null),v="specifyValue"===p||"fullHeight"===p,y={paddingTop:null==(l=n.context)||null==(t=l.themeToken)?void 0:t.padding},_=(null==r?void 0:r.layout)==="horizontal"?V(null==r?void 0:r.labelWidth):void 0;_&&(y.marginInlineStart=_);let b=H({heightMode:p,containerRef:h,actionsRef:d?f:void 0,footerRef:c?g:void 0,deps:[m]});(0,u.useEffect)(()=>{var e;if(!i)return;let t=v?b:void 0;(null==(e=i.props)?void 0:e.height)!==t&&i.setProps({height:t})},[i,b,v]);let x=v?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,M=v?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0;return(0,o.jsx)(O,{model:n,layoutProps:r,onFinish:a,style:x,children:(0,o.jsxs)("div",{ref:h,style:M,children:[s,d?(0,o.jsx)("div",{style:y,ref:f,children:d}):null,c?(0,o.jsx)("div",{ref:g,children:c}):null]})})};N.define({hide:!0}),N.registerFlow({key:"formModelSettings",title:(0,r.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,r.tExpr)("Layout")},assignRules:{use:"formAssignRules",title:(0,r.tExpr)("Field values"),beforeParamsSave(e){let t=(0,j.Fp)(e.model);Array.isArray(t)&&t.length&&(0,p.jI)(e.model)},afterParamsSave(e){var t,l,o,n,i,r;let a=e.model.getStepParams("formModelSettings","assignRules"),s=(null==a?void 0:a.value)||[];null==(o=e.model)||null==(l=o.formValueRuntime)||null==(t=l.syncAssignRules)||t.call(l,Array.isArray(s)?s:[]);let d=null==(i=e.model)||null==(n=i.context)?void 0:n.resource,u=T(s,null==(r=e.model)?void 0:r.collection);(null==d?void 0:d.addUpdateAssociationValues)&&u.length&&d.addUpdateAssociationValues(u)}}}}),N.registerFlow({key:"eventSettings",title:(0,r.tExpr)("Event settings"),on:"formValuesChange",steps:{linkageRules:{use:"fieldLinkageRules",afterParamsSave(e){setTimeout(()=>{var t;e.model.applyFlow("eventSettings",{changedValues:{},allValues:null==(t=e.form)?void 0:t.getFieldsValue(!0)})},0)}}}}),N.registerEvents({formValuesChange:{title:(0,r.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,r.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":c.H}},handler:c.b}});class $ extends N{}$.define({hide:!0})},3127(e,t,l){l.d(t,{Fp:()=>s,K7:()=>a,S2:()=>o.S2});var o=l(3341);let n=["editItemSettings","formItemSettings"],i=(0,o.li)(n),r=(0,o.u4)(n);function a(e){return(0,o.TE)(e,i)}function s(e){return(0,o.Co)(e,i,r)}},4084(e,t,l){l.d(t,{submitHandler:()=>a});var o=l(504),n=l(3027),i=l(24);function r(e){return e&&"object"==typeof e&&"data"in e?e.data:e}async function a(e,t,a){var s,d,u,c,p,m,h,f;let g=e.resource,v=e.blockModel,{EditFormModel:y}=await Promise.resolve().then(l.bind(l,1961)),_=v instanceof y;await (0,i.D9)({form:null==v?void 0:v.form,blockModel:v,flowSettingsEnabled:null==e?void 0:e.flowSettingsEnabled,skipValidator:(0,i.go)(null==e?void 0:e.model)});let b=v.form.getFieldsValue(!0),x=(0,i.xT)(b,v),M=await (0,n.eu)(e,null==t?void 0:t.assignedValues,"FormSubmitAction");if(!M){null==(s=e.exit)||s.call(e);return}let w=(0,n.GO)(x,M);if(g instanceof o.SingleRecordResource){if(_){let e=g.getMeta("currentFilterByTk");e?g.setFilterByTk(e):g.isNewRecord=!0}let l=r(a?await a(w):await g.save(w,t.requestConfig));return _?(g.isNewRecord=!1,null==(d=v.resetUserModifiedFields)||d.call(v),await g.refresh(),l=l??(null==(u=g.getData)?void 0:u.call(g))):(v.form.resetFields(),v.emitter.emit("onFieldReset"),null==(c=v.resetUserModifiedFields)||c.call(v),null==(m=v.formValueRuntime)||null==(p=m.resetAfterFormReset)||p.call(m),e.view.inputArgs.collectionName===v.collection.name&&e.view.inputArgs.onChange&&e.view.inputArgs.onChange(l)),l}if(g instanceof o.MultiRecordResource){let l=g.getMeta("currentFilterByTk");if(!l)return void e.message.error(e.t("No filterByTk found for multi-record resource."));let o=a?await a(w,l):await g.update(l,w,t.requestConfig);return null==(h=v.resetUserModifiedFields)||h.call(v),r(o)??(null==(f=v.getCurrentRecord)?void 0:f.call(v))}}},24(e,t,l){l.d(t,{D9:()=>g,go:()=>f,xT:()=>v});var o=l(7583),n=l(3728);function i(e,t){var l,o;let n=null==e||null==(o=e.context)||null==(l=o.blockModel)?void 0:l.uid,i=null==t?void 0:t.uid;return!!n&&!!i&&String(n)===String(i)}function r(e){var t,l;let o=null==e||null==(t=e.context)?void 0:t.fieldPathArray;if(Array.isArray(o)&&o.length)return o;try{let t=null==e||null==(l=e.getStepParams)?void 0:l.call(e,"fieldSettings","init"),o=null==t?void 0:t.fieldPath;if("string"==typeof o&&o)return o}catch{}let n=null==e?void 0:e.fieldPath;if("string"==typeof n&&n)return n;let i="function"==typeof(null==e?void 0:e.getProps)?e.getProps():null==e?void 0:e.props,r=null==i?void 0:i.name;return"string"==typeof r&&r||Array.isArray(r)&&r.length?r:null}function a(e){return Array.isArray(e)&&e.length&&"string"==typeof e[0]?e:null}function s(e){var t;let l=r(e);return l?a((0,n.IJ)(l,null==e||null==(t=e.context)?void 0:t.fieldIndex)):null}function d(e,t){if(e&&"object"==typeof e&&Array.isArray(t)&&!(t.length<2))for(let l=t.length-1;l>=1;l--){let n=t.slice(0,l);if("number"==typeof n[n.length-1])continue;let i=o.default.get(e,n);o.default.isPlainObject(i)&&0===Object.keys(i).length&&o.default.unset(e,n)}}function u(e,t){(null==e?void 0:e.forEachModel)&&e.forEachModel(e=>{t(e);let l=null==e?void 0:e.forks;l&&"function"==typeof l.forEach&&l.forEach(e=>{e&&!e.disposed&&t(e)})})}function c(e){let t=null==e?void 0:e.flowEngine;if(!(null==t?void 0:t.forEachModel))return[];let l=[],o=new Set;return u(t,t=>{if(!t||"object"!=typeof t||!t.hidden||!i(t,e))return;let n=s(t);if(!n)return;let r=JSON.stringify(n);o.has(r)||(o.add(r),l.push(n))}),l}function p(e){return"string"==typeof e?e?[e]:null:Array.isArray(e)?a(e):null}function m(e,t){if(!Array.isArray(e)||!Array.isArray(t)||e.length>t.length)return!1;for(let l=0;l<e.length;l++)if(e[l]!==t[l])return!1;return!0}function h(e){let t=null==e?void 0:e.form;if(!t||"function"!=typeof t.getFieldsError)return null;let l=t.getFieldsError();if(!Array.isArray(l))return null;let o=[],n=new Set;for(let e of l){let t=p(null==e?void 0:e.name);if(!t)continue;let l=JSON.stringify(t);n.has(l)||(n.add(l),o.push(t))}if(!o.length)return null;let i=c(e);return i.length?o.filter(e=>!i.some(t=>m(t,e))):o}function f(e){var t,l;return(null==e||null==(l=e.getStepParams)||null==(t=l.call(e,"submitSettings","skipRequiredValidation"))?void 0:t.skipValidator)===!0}async function g(e){let{form:t,blockModel:l,flowSettingsEnabled:o,skipValidator:n}=e;if(n||!t||"function"!=typeof t.validateFields)return;let i=o&&l?h(l):null;if(Array.isArray(i)){i.length&&await t.validateFields(i);return}await t.validateFields()}function v(e,t){if(!e||"object"!=typeof e)return e;let l=c(t);if(!l.length)return e;let n=o.default.cloneDeep(e);for(let e of l)o.default.unset(n,e),d(n,e);return n}},9413(e,t,l){l.d(t,{F:()=>n});var o=l(3526);function n(e,t){let l=(t,l,o)=>{var n,i,r;return!l||(null==e||null==(r=e.app)||null==(i=r.jsonLogic)||null==(n=i.apply)?void 0:n.call(i,{[l]:[t,o]}))};try{return(0,o.evaluateConditions)((0,o.removeInvalidFilterItems)(t),l)}catch{return!1}}},9613(e,t,l){l.d(t,{Dd:()=>s,G:()=>u,Wp:()=>c,x3:()=>d});var o=l(2314),n=l(504),i=l(7583),r=l(3728);function a(e){return!!e&&"object"==typeof e&&(Array.isArray(e)||i.default.isPlainObject(e))}function s(e,t){if(t)for(let l of(0,r.ef)(e))t.deps.add(`fv:${l}`)}function d(e){let{valuesMirror:t,collector:l,basePath:n,getFormValuesSnapshot:r,getFormValueAtPath:u}=e,c=()=>n.length?i.default.get(t,n):t,p=c(),m=p&&("object"==typeof p||"function"==typeof p)?p:Array.isArray(p)?[]:{},h=e=>d({valuesMirror:t,basePath:e,collector:l,getFormValuesSnapshot:r,getFormValueAtPath:u});return new Proxy(m,{get(e,d){if("toJSON"===d)return(l&&(l.wildcard=!0),0===n.length)?()=>r():()=>(0,o.toJS)(c());if("symbol"==typeof d){l&&(l.wildcard=!0);let e=c();return null==e?void 0:e[d]}let p=c();if(null==p)return;if("__raw"===d)return p;if("__proto__"===d||"prototype"===d||"constructor"===d){l&&(l.wildcard=!0);return}let m=Array.isArray(p),f=m&&("number"==typeof d&&Number.isInteger(d)||"string"==typeof d&&/^\d+$/.test(d));if(m&&!f){l&&(l.wildcard=!0);let e=p[d];return"function"==typeof e?e.bind(p):e}let g=[...n,f?Number(d):d];s(g,l);let v=p[d];if(void 0===v){let e=u(g);i.default.isEqual(e,v)||(i.default.set(t,g,e),v=e)}return null==v||"object"!=typeof v?v:a(v)?h(g):v},ownKeys(){l&&(l.wildcard=!0);let e=c();return e?Reflect.ownKeys(e):[]},getOwnPropertyDescriptor(e,t){let l=c();if(l)return Object.getOwnPropertyDescriptor(l,t)},has(e,t){let l=c();return!!l&&t in l}})}function u(e,t){try{let l=(0,n.extractUsedVariablePaths)(e)||{};for(let[e,o]of Object.entries(l)){let l=Array.isArray(o)?o:[];for(let o of l.length?l:[""]){if("formValues"===e){if(!o){t.wildcard=!0;continue}let e=(0,r.EA)(String(o)).filter(e=>"object"!=typeof e);s(e,t);continue}let l=o?`ctx:${e}:${String(o)}`:`ctx:${e}`;t.deps.add(l)}}}catch{}}function c(e,t){if((0,n.isRunJSValue)(e))try{let l=(0,n.extractUsedVariablePathsFromRunJS)(e.code)||{};for(let[e,o]of Object.entries(l)){let l=Array.isArray(o)?o:[];for(let o of l.length?l:[""]){if("formValues"===e){if(!o){t.wildcard=!0;continue}let e=(0,r.EA)(String(o)).filter(e=>"object"!=typeof e);s(e,t);continue}let l=o?`ctx:${e}:${String(o)}`:`ctx:${e}`;t.deps.add(l)}}}catch{}}},3728(e,t,l){function o(e){let t=[],l=0,o=e.length,n=()=>{let n=l;for(;l<o&&"."!==e[l]&&"["!==e[l];)l++;let i=e.slice(n,l);i&&t.push(i)};for(;l<o;){let i=e[l];if("."===i){l++;continue}if("["===i){let n=++l;for(;l<o&&"]"!==e[l];)l++;let i=e.slice(n,l);l++,/^\d+$/.test(i)?t.push(Number(i)):i&&t.push({placeholder:i});continue}n()}return t}function n(e){let t=Array.isArray(e)?e:[],l=[];for(let e of t){if("string"!=typeof e)continue;let[t,o]=e.split(":"),n=Number(o);!t||Number.isNaN(n)||l.push({name:t,index:n})}return l}function i(e,t){let l=Array.isArray(e)?[...e]:o(e),i=n(t),r=[],a=0;for(let e=0;e<l.length;e++){let t=l[e];if("object"==typeof t&&t&&"placeholder"in t){let e=r[r.length-1],t="string"==typeof e?e:void 0;if(!t)return null;for(;a<i.length&&i[a].name!==t;)a++;if(a>=i.length)return null;r.push(i[a].index),a++;continue}if(r.push(t),"string"==typeof t&&a<i.length&&i[a].name===t){let t=l[e+1];"number"==typeof t?a++:"object"==typeof t&&t&&"placeholder"in t||(r.push(i[a].index),a++)}}return r}function r(e){let t="";for(let l of e){if("number"==typeof l){t+=`[${l}]`;continue}t?t+=`.${l}`:t=l}return t}function a(e){return o(e).filter(e=>"object"!=typeof e)}function s(e){let t=[],l=[];for(let o of e)l.push(o),t.push(r(l));return t}l.d(t,{EA:()=>o,IJ:()=>i,Qc:()=>r,c1:()=>a,ef:()=>s})},1022(e,t,l){l.d(t,{Po:()=>i,ao:()=>r,li:()=>n});var o=l(7583);let n=20;function i(e){return null==e||("string"==typeof e||Array.isArray(e)?0===e.length:!!o.default.isPlainObject(e)&&0===Object.keys(e).length)}function r(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}},3341(e,t,l){l.d(t,{Co:()=>h,PP:()=>i,S2:()=>m,TE:()=>p,li:()=>s,u4:()=>c});var o=l(7583);function n(){return{logic:"$and",items:[]}}function i(e,t,l){var o;let n=null==e||null==(o=e.getStepParams)?void 0:o.call(e,t,l);return!!n&&Object.prototype.hasOwnProperty.call(n,"value")}function r(e){if(!e)return;let t="function"==typeof e.getProps?e.getProps():e.props;if(t&&void 0!==t.initialValue)return t.initialValue}function a(e,t){var l,o;if(e)return null==(o=e.getStepParams)||null==(l=o.call(e,t,"initialValue"))?void 0:l.defaultValue}function s(e){return t=>{if(!t)return;let l=r(t);if(void 0!==l)return l;for(let l of e){let e=a(t,l);if(void 0!==e)return e}}}function d(e,t,l){var n,i,r;if(!(null==e||null==(n=e.stepParams)?void 0:n[t]))return;let a=e.stepParams[t];!a||"object"!=typeof a||Object.prototype.hasOwnProperty.call(a,l)&&(delete a[l],o.default.isEmpty(a)&&delete e.stepParams[t],null==(r=e.emitter)||null==(i=r.emit)||i.call(r,"onStepParamsChanged"))}function u(e){var t,l;if(!e)return;null==(t=e.setProps)||t.call(e,{initialValue:void 0}),e.props&&Object.prototype.hasOwnProperty.call(e.props,"initialValue")&&delete e.props.initialValue;let o=null==(l=e._options)?void 0:l.props;o&&Object.prototype.hasOwnProperty.call(o,"initialValue")&&delete o.initialValue}function c(e){return t=>{if(t)for(let l of(u(t),e))d(t,l,"initialValue")}}function p(e,t){var l,o,i,r,a;let s=null==e||null==(i=e.subModels)||null==(o=i.grid)||null==(l=o.subModels)?void 0:l.items,d=Array.isArray(s)?s:[],u=[];for(let e of d){let l=(null==e||null==(a=e.getStepParams)||null==(r=a.call(e,"fieldSettings","init"))?void 0:r.fieldPath)||(null==e?void 0:e.fieldPath),o=l?String(l):"";if(!o)continue;let i=t(e);void 0!==i&&u.push({key:`legacy-default:${o}`,enable:!0,targetPath:o,mode:"default",condition:n(),value:i})}return u}function m(e,t){let l=Array.isArray(e)?e:[],o=Array.isArray(t)?t:[];if(!o.length)return l;let n=new Set;for(let e of l){if(!e||"object"!=typeof e)continue;let t=e.targetPath?String(e.targetPath):"";if(t){if("default"===e.mode){n.add(t);continue}String(e.key??"").startsWith("legacy-default:")&&n.add(t)}}let i=new Set(l.map(e=>String(e.key??""))),r=[];for(let e of o){let t=e.targetPath?String(e.targetPath):"";if(!t||n.has(t))continue;let l={...e},o=String(l.key??"");o&&i.has(o)&&(l.key=`${o}:${t}`),r.push(l)}return r.length?[...l,...r]:l}function h(e,t,l){var o,n,i;let r=null==e||null==(i=e.subModels)||null==(n=i.grid)||null==(o=n.subModels)?void 0:o.items,a=Array.isArray(r)?r:[],s=[];for(let e of a)void 0!==t(e)&&(l(e),s.push(e));return s}},8709(e,t,l){l.d(t,{$4:()=>a,r5:()=>r});var o=l(7404);let n="__index__";function i(e,t){if(!t)return null;if(Array.isArray(t)){let l=t.map(t=>null==e?void 0:e[t]);return l.some(e=>null==e)?null:l.map(e=>String(e)).join("__")}let l=null==e?void 0:e[t];return null==l?null:String(l)}function r(e,t){let l=null==e?void 0:e[n];if((null==e?void 0:e.__is_new__)&&null!=l&&""!==l)return`tmp:${String(l)}`;let o=i(e,t);return null!=o?`pk:${o}`:null!=l&&""!==l?`tmp:${String(l)}`:null}function a(e){if(!e.length)return e;let t=!1,l=e.map(e=>{let l=null==e?void 0:e[n];return e.__is_new__&&(null==l||""===l)?(t=!0,{...e,[n]:(0,o.uid)()}):e});return t?l:e}},4881(e,t,l){l.d(t,{m:()=>p});var o=l(1178),n=l(504),i=l(2793),r=l(1649),a=l(9829),s=l(6859),d=l(1557);function u(e){let{value:t,onChange:l,onCompositionStart:n,onCompositionEnd:a,...s}=e,[d,u]=(0,r.useState)(()=>c(t));(0,r.useEffect)(()=>{u(c(t))},[t]);let p=e=>e.currentTarget.value;return(0,o.jsx)(i.Input,{...s,value:d,onChange:e=>{u(p(e)),null==l||l(e)},onCompositionStart:e=>{u(p(e)),null==n||n(e)},onCompositionEnd:e=>{u(p(e)),null==a||a(e)}})}function c(e){return"bigint"==typeof e?String(e):null==e?"":e}class p extends s.o{render(){if(this.props.enableScan)return(0,o.jsx)(d.E,{...this.props});let{enableScan:e,disableManualInput:t,...l}=this.props;return(0,o.jsx)(u,{...l})}}p.registerFlow({key:"defaultValueForNanoid",steps:{generateNanoid:{handler(e,t){var l,o;null==(o=e.blockModel)||null==(l=o.emitter)||l.on("onFieldReset",()=>{if("nanoid"===e.collectionField.interface&&!1!==e.collectionField.options.autoFill){let{size:t,customAlphabet:l}=e.collectionField.options||{size:21};e.model.props.onChange((0,a.customAlphabet)(l,t)())}})}}}}),p.registerFlow({key:"scanInputSettings",sort:800,title:(0,n.tExpr)("Scan input settings"),steps:{enableScan:{title:(0,n.tExpr)("Enable Scan"),uiMode:{type:"switch",key:"enableScan"},hideInSettings:e=>"readPretty"===e.model.getProps().pattern||e.model.getProps().disabled,defaultParams:e=>({enableScan:!!e.model.props.enableScan}),handler(e,t){e.model.setProps({enableScan:!!t.enableScan,disableManualInput:!!t.enableScan&&e.model.props.disableManualInput})}},disableManualInput:{title:(0,n.tExpr)("Disable manual input"),uiMode:{type:"switch",key:"disableManualInput"},hideInSettings(e){var t,l;let o=null==(t=(l=e.model).getStepParams)?void 0:t.call(l,"scanInputSettings","enableScan");return!(Object.prototype.hasOwnProperty.call(o||{},"enableScan")?!!(null==o?void 0:o.enableScan):!!e.model.props.enableScan)||"readPretty"===e.model.getProps().pattern||!!e.model.getProps().disabled},defaultParams:e=>({disableManualInput:!!e.model.props.disableManualInput}),handler(e,t){e.model.setProps({disableManualInput:!!e.model.props.enableScan&&!!t.disableManualInput})}}}}),p.define({label:(0,n.tExpr)("Input")}),n.EditableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid"],{isDefault:!0}),n.FilterableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid","textarea","markdown","vditor","richText","password","color"],{isDefault:!0})},7520(e,t,l){l.d(t,{o:()=>o,e:()=>s});class o{subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async load(){return this.data&&!this.error?this.data:(this.pending||(this.loading=!0,this.notify(),this.pending=this.apiClient.request({url:"systemSettings:get"}).then(e=>(this.data=e.data,this.error=void 0,this.data)).catch(e=>{throw this.error=e,e}).finally(()=>{this.loading=!1,this.pending=void 0,this.notify()})),this.pending)}async refresh(){return this.pending=void 0,this.data=void 0,this.load()}setData(e){this.data=e,this.error=void 0,this.loading=!1,this.notify()}setError(e){this.error=e,this.loading=!1,this.notify()}notify(){for(let e of this.listeners)e()}constructor(e){this.apiClient=e,this.loading=!1,this.listeners=new Set}}var n=l(504),i=l(6305),r=l(6553),a=l(1649);let s=()=>{var e,t;let l=(0,i.nm)().systemSettings,o=(0,n.useFlowEngine)({throwError:!1}),[,s]=(0,a.useState)(0),d=null==(t=l.data)||null==(e=t.data)?void 0:e.enabledLanguages,u=(0,a.useMemo)(()=>(Array.isArray(d)?d:[]).filter(e=>r.A[e]).map(e=>({label:r.A[e].label,value:e})),[d]);return(0,a.useEffect)(()=>(l.load(),l.subscribe(()=>{s(e=>e+1)})),[l]),(0,a.useEffect)(()=>{o&&o.context.defineProperty("locale",{get:e=>{var t,l,o;return(null==(l=e.api)||null==(t=l.auth)?void 0:t.locale)||(null==(o=e.i18n)?void 0:o.language)},cache:!1,meta:{type:"string",title:'{{t("Current language")}}',sort:970,interface:"select",uiSchema:{enum:u,"x-component":"Select"}}})},[o,u]),{loading:l.loading,data:l.data,error:l.error,refresh:()=>l.refresh(),mutate:e=>{Object.prototype.hasOwnProperty.call(e||{},"data")&&l.setData(null==e?void 0:e.data),Object.prototype.hasOwnProperty.call(e||{},"error")&&l.setError(null==e?void 0:e.error)}}}},8481(e,t,l){l.d(t,{F3:()=>a,GX:()=>s,b1:()=>d});let o={view:"get"},n=e=>e?o[e]||e:null,i=(e,t)=>{for(let l of t){if(!(l in e))continue;let t=e[l];if(null==t)return null;return(Array.isArray(t)?t:[t]).map(e=>n(e)).filter(Boolean)}},r=(e,t)=>{let l=n(t);if(!l||!(null==e?void 0:e.options))return!0;let{availableActions:o,unavailableActions:i}=e.options;return Array.isArray(o)?o.includes(l):!Array.isArray(i)||!i.includes(l)},a=(e,t)=>null==t||!t.length||t.every(t=>r(e,t)),s=e=>{var t;let l=i(e,["capabilityActionNames","capabilityActionName"]);if(void 0!==l)return l;let o=null==e||null==(t=e.prototype)?void 0:t.getAclActionName;if("function"!=typeof o)return null;try{let e=o.call({}),t=n(e);return t?[t]:null}catch{return null}},d=e=>i(e,["blockCapabilityActionNames","blockCapabilityActionName"])??null},7123(e,t,l){l.d(t,{l:()=>o});function o(e){let{blockLabel:t,dsName:l,dsCount:o,collectionTitle:n,sourceCollectionTitle:i,associationTitle:r}=e,a=o>1&&!!l,s=n;if(i&&r){let e=`${i} > ${r} (${n})`;s=`${a?`${l} > `:""}${e}`}else s=`${a?`${l} > `:""}${n}`;return`
297
+ `;function D(e,t){var l;return!!(null==(l=I[e])?void 0:l.has(t))}function E(e){return"hasAvailableData"in e&&"function"==typeof e.hasAvailableData}function Y(e){return"submit"in e&&"function"==typeof e.submit}class N extends m.t{serialize(){return{...super.serialize(),variableContractType:{type:"form",use:this.use}}}get form(){return this.context.form}submitFromRunJs(){if(E(this)&&!this.hasAvailableData())return;let e=this.mapSubModels("actions",e=>e).find(e=>e.getFlow("submitSettings"));if(e)return e.onClick(void 0);let t=["CreateFormModel","EditFormModel"].some(e=>{let t=this.flowEngine.getModelClass(e);return t&&this instanceof t});!this.context.publicFormRuntime&&t&&Y(this)&&this.submit().catch(e=>{this.context.message.error(this.context.t("Save failed")),console.error("Form submission error:",e)})}syncRuntimeAssignRules(){var e,t,l;arguments.length>0&&void 0!==arguments[0]&&arguments[0];let o=this.getStepParams("formModelSettings","assignRules"),n=(null==o?void 0:o.value)||[];null==(t=this.formValueRuntime)||null==(e=t.syncAssignRules)||e.call(t,Array.isArray(n)?n:[]);let i=null==(l=this.context)?void 0:l.resource,r=T(n,this.collection);(null==i?void 0:i.addUpdateAssociationValues)&&r.length&&i.addUpdateAssociationValues(r)}renderConfigureActions(){return(0,o.jsx)(r.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("FormActionGroupModel"),children:(0,o.jsx)(r.FlowSettingsButton,{icon:(0,o.jsx)(n.SettingOutlined,{}),children:this.translate("Actions")})})}setFieldsValue(e){let t=this.context;"function"==typeof t.setFormValues?t.setFormValues(e,{source:"system"}).catch(e=>{console.warn("[FormBlockModel] Failed to set form values via ctx.setFormValues",e)}):this.form.setFieldsValue(e)}setFieldValue(e,t){let l=this.context;"function"==typeof l.setFormValue?l.setFormValue(e,t,{source:"system"}).catch(e=>{console.warn("[FormBlockModel] Failed to set form value via ctx.setFormValue",e)}):this.form.setFieldValue(e,t)}markUserModifiedFields(e){if(e&&"object"==typeof e&&!Array.isArray(e))for(let t of Object.keys(e))t&&this.userModifiedTopLevelFields.add(t)}getUserModifiedFields(){return this.userModifiedTopLevelFields}resetUserModifiedFields(){this.userModifiedTopLevelFields.clear()}resetRuntimeUserEditedState(){var e,t;null==(t=this.formValueRuntime)||null==(e=t.resetUserEditedState)||e.call(t)}async onDispatchEventStart(e,t,l){var o;if("beforeRender"===e){let e=this.subModels.grid;e&&await e.dispatchEvent("beforeRender",l,{useCache:null==t?void 0:t.useCache})}await (null==(o=super.onDispatchEventStart)?void 0:o.call(this,e,t,l))}getStepParams(e,t){let l=this.subModels.grid;if(e&&t&&D(e,t)&&l){let o=l.getStepParams(e,t);return void 0!==o?o:super.getStepParams(e,t)}if(e&&!t&&I[e]&&l){let t=super.getStepParams(e)||{},o=l.getStepParams(e)||{};for(let l of I[e])Object.prototype.hasOwnProperty.call(o,l)&&void 0!==o[l]&&(t[l]=o[l]);return t}return super.getStepParams(e,t)}setStepParams(e,t,l){let o=this.subModels.grid,n=(e,t)=>{let l=I[e];if(!l||!o)return t;let n={};for(let[i,r]of Object.entries(t))l.has(i)?o.setStepParams(e,i,r):n[i]=r;return n};if("string"==typeof e&&"string"==typeof t&&void 0!==l)return void(D(e,t)&&o?o.setStepParams(e,t,l):super.setStepParams(e,t,l));if("string"==typeof e&&"object"==typeof t&&null!==t){let l=n(e,t);Object.keys(l).length>0&&super.setStepParams(e,l);return}if("object"==typeof e&&null!==e){let t={};for(let[l,o]of Object.entries(e)){if("object"!=typeof o||null===o){t[l]=o;continue}let e=n(l,o);Object.keys(e).length>0&&(t[l]=e)}Object.keys(t).length>0&&super.setStepParams(t)}}async saveStepParams(){return await (0,p.ON)(this,async()=>{let e=await super.saveStepParams(),t=this.subModels.grid;return await (null==t?void 0:t.saveStepParams()),e})}createFormValuesMetaFactory(){return(0,r.createAssociationAwareObjectMetaFactory)(()=>this.collection,this.translate("Current form"),()=>{var e,t;return(null==(t=this.form)||null==(e=t.getFieldsValue)?void 0:e.call(t))||{}})}useHooksBeforeRender(){let[e]=a.Form.useForm();this.context.defineProperty("form",{get:()=>e}),this.formValueRuntime||(this.formValueRuntime=new P({model:this,getForm:()=>this.context.form}));let t=this.formValueRuntime;t.mount();let l=this.createFormValuesMetaFactory();this.context.defineProperty("formValues",{get:()=>t.formValues,cache:!1,meta:l,resolveOnServer:e=>{var l,o,n,i,a,s,u,c,p,m,h,f,g,v,y,_;if(!e)return!1;let b=(e=>{let t=String(e||"").match(/^([^.[]+)/);return null==t?void 0:t[1]})(e);if(!b||!(null==(o=this.collection)||null==(l=o.getField)?void 0:l.call(o,b)))return!1;if((()=>{var e,t,l,o;let n=(null==(t=this.subModels.grid)||null==(e=t.subModels)?void 0:e.items)??[],i=new Set;for(let e of n){let t=null==e||null==(o=e.getStepParams)||null==(l=o.call(e,"fieldSettings","init"))?void 0:l.fieldPath,n=null==t?void 0:t.toString().split(".")[0];n&&i.add(n)}return i})().has(b)){let l=null==(i=this.form)||null==(n=i.getFieldValue)?void 0:n.call(i,b);if(null==l||Array.isArray(l)&&0===l.length)return!1;let o=t.getFormValuesSnapshot(),c=!1;if(o&&"object"==typeof o){let t=(0,d.getValuesByPath)(o,e);if(void 0!==t){let l=e.replace(/\[\d+\]/g,"").split(".").filter(e=>!/^\d+$/.test(e)).join("."),o=null==(s=this.collection)||null==(a=s.getFieldByPath)?void 0:a.call(s,l),n=null==o?void 0:o.targetCollectionTitleFieldName,i=e=>!(!e||"object"!=typeof e||Array.isArray(e))&&(!n||void 0!==e[n]),r=null===t||(Array.isArray(t)?0===t.length||t.every(e=>null===e||i(e)):i(t));if(!(null==o||null==(u=o.isAssociationField)?void 0:u.call(o))||r)return!1;c=!0}}return(0,r.createAssociationSubpathResolver)(()=>this.collection,c?void 0:()=>t.getFormValuesSnapshot())(e)}try{let e=(null==(m=this.context)||null==(p=m.resource)||null==(c=p.getMeta)?void 0:c.call(p,"currentFilterByTk"))??(null==(g=this.context)||null==(f=g.resource)||null==(h=f.getFilterByTk)?void 0:h.call(f))??(null==(_=this.collection)||null==(y=_.getFilterByTK)?void 0:y.call(_,null==(v=this.context)?void 0:v.record));if(null==e)return!1}catch(e){return!1}return!0},serverOnlyWhenContextParams:!0}),this.context.defineMethod("getFormValues",function(){return t.getFormValuesSnapshot()}),this.context.defineMethod("setFormValues",function(e,l){return t.setFormValues(this,e,l)}),this.context.defineMethod("setFormValue",function(e,l,o){return t.setFormValues(this,[{path:e,value:l}],o)})}onInit(e){super.onInit(e),this.emitter.on("onSubModelAdded",e=>{e===this.subModels.grid&&queueMicrotask(()=>this.syncRuntimeAssignRules("onSubModelAdded:grid"))}),this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1}),this.context.resource.on("saved",()=>{this.dispatchEvent("formSubmitSuccess",{})})}onMount(){var e;super.onMount(),null==(e=this.formValueRuntime)||e.mount({sync:!0}),this.syncRuntimeAssignRules("onMount"),setTimeout(()=>{this.applyFlow("eventSettings")},100)}onUnmount(){var e;null==(e=this.formValueRuntime)||e.dispose(),this.formValueRuntime=void 0,super.onUnmount()}getCurrentRecord(){return{}}renderComponent(){throw Error("renderComponent method must be implemented in subclasses of FormModel")}constructor(...e){super(...e),this.userModifiedTopLevelFields=new Set,this._defaultCustomModelClasses={FormActionGroupModel:"FormActionGroupModel",FormItemModel:"FormItemModel",FormAssociationFieldGroupModel:"FormAssociationFieldGroupModel"},this.customModelClasses={}}}function O(e){var t,l,n,i;let{model:r,children:d,layoutProps:u={},initialValues:c,...p}=e,m=!!((null==r||null==(t=r.context)?void 0:t.isMobileLayout)&&(null==u?void 0:u.layout)==="horizontal"),h=[p.className,m?L:"",m?R:""].filter(Boolean).join(" ");return(0,o.jsx)(a.Form,{form:r.form,initialValues:(null==(i=r.context)||null==(n=i.view)||null==(l=n.inputArgs)?void 0:l.formData)||r.context.record||c,...(0,s.omit)(u,"labelWidth"),labelCol:{style:{width:null==u?void 0:u.labelWidth}},onFieldsChange:e=>{let t=r.formValueRuntime;t&&t.handleFormFieldsChange(e)},onValuesChange:(e,t)=>{var l;null==(l=r.markUserModifiedFields)||l.call(r,e);let o=r.formValueRuntime;o?o.handleFormValuesChange(e,t):(r.dispatchEvent("formValuesChange",{changedValues:e,allValues:t},{debounce:!0}),r.emitter.emit("formValuesChange",{changedValues:e,allValues:t}))},...p,className:h||void 0,children:d})}let B=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},V=e=>{if(null!=e&&""!==e)return"number"==typeof e||/^\d+(\.\d+)?$/.test(e)?`${e}px`:e},H=e=>{let{heightMode:t,containerRef:l,actionsRef:o,footerRef:n,deps:i=[]}=e,[r,a]=(0,u.useState)(),s=(0,u.useCallback)(()=>{if("specifyValue"!==t&&"fullHeight"!==t)return void a(e=>void 0===e?e:void 0);let e=l.current;if(!e)return;let i=e.getBoundingClientRect().height;if(!i)return;let r=Math.max(0,Math.floor(i-B((null==o?void 0:o.current)||null)-B((null==n?void 0:n.current)||null)));a(e=>e===r?e:r)},[t,l,o,n]);return(0,u.useLayoutEffect)(()=>{s()},[s,...i]),(0,u.useEffect)(()=>{if(!l.current||"u"<typeof ResizeObserver)return;let e=l.current,t=(null==o?void 0:o.current)||null,i=(null==n?void 0:n.current)||null,r=new ResizeObserver(()=>s());return r.observe(e),t&&r.observe(t),i&&r.observe(i),()=>r.disconnect()},[s,l,o,n,...i]),r},q=e=>{var t,l;let{model:n,gridModel:i,layoutProps:r,onFinish:a,grid:s,actions:d,footer:c,heightMode:p,height:m}=e,h=(0,u.useRef)(null),f=(0,u.useRef)(null),g=(0,u.useRef)(null),v="specifyValue"===p||"fullHeight"===p,y={paddingTop:null==(l=n.context)||null==(t=l.themeToken)?void 0:t.padding},_=(null==r?void 0:r.layout)==="horizontal"?V(null==r?void 0:r.labelWidth):void 0;_&&(y.marginInlineStart=_);let b=H({heightMode:p,containerRef:h,actionsRef:d?f:void 0,footerRef:c?g:void 0,deps:[m]});(0,u.useEffect)(()=>{var e;if(!i)return;let t=v?b:void 0;(null==(e=i.props)?void 0:e.height)!==t&&i.setProps({height:t})},[i,b,v]);let x=v?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,M=v?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0;return(0,o.jsx)(O,{model:n,layoutProps:r,onFinish:a,style:x,children:(0,o.jsxs)("div",{ref:h,style:M,children:[s,d?(0,o.jsx)("div",{style:y,ref:f,children:d}):null,c?(0,o.jsx)("div",{ref:g,children:c}):null]})})};N.define({hide:!0}),N.registerFlow({key:"formModelSettings",title:(0,r.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,r.tExpr)("Layout")},assignRules:{use:"formAssignRules",title:(0,r.tExpr)("Field values"),beforeParamsSave(e){let t=(0,j.Fp)(e.model);Array.isArray(t)&&t.length&&(0,p.jI)(e.model)},afterParamsSave(e){var t,l,o,n,i,r;let a=e.model.getStepParams("formModelSettings","assignRules"),s=(null==a?void 0:a.value)||[];null==(o=e.model)||null==(l=o.formValueRuntime)||null==(t=l.syncAssignRules)||t.call(l,Array.isArray(s)?s:[]);let d=null==(i=e.model)||null==(n=i.context)?void 0:n.resource,u=T(s,null==(r=e.model)?void 0:r.collection);(null==d?void 0:d.addUpdateAssociationValues)&&u.length&&d.addUpdateAssociationValues(u)}}}}),N.registerFlow({key:"eventSettings",title:(0,r.tExpr)("Event settings"),on:"formValuesChange",steps:{linkageRules:{use:"fieldLinkageRules",afterParamsSave(e){setTimeout(()=>{var t;e.model.applyFlow("eventSettings",{changedValues:{},allValues:null==(t=e.form)?void 0:t.getFieldsValue(!0)})},0)}}}}),N.registerEvents({formValuesChange:{title:(0,r.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,r.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":c.H}},handler:c.b}});class $ extends N{}$.define({hide:!0})},3127(e,t,l){l.d(t,{Fp:()=>s,K7:()=>a,S2:()=>o.S2});var o=l(3341);let n=["editItemSettings","formItemSettings"],i=(0,o.li)(n),r=(0,o.u4)(n);function a(e){return(0,o.TE)(e,i)}function s(e){return(0,o.Co)(e,i,r)}},4084(e,t,l){l.d(t,{submitHandler:()=>a});var o=l(504),n=l(3027),i=l(24);function r(e){return e&&"object"==typeof e&&"data"in e?e.data:e}async function a(e,t,a){var s,d,u,c,p,m,h,f;let g=e.resource,v=e.blockModel,{EditFormModel:y}=await Promise.resolve().then(l.bind(l,1961)),_=v instanceof y;await (0,i.D9)({form:null==v?void 0:v.form,blockModel:v,flowSettingsEnabled:null==e?void 0:e.flowSettingsEnabled,skipValidator:(0,i.go)(null==e?void 0:e.model)});let b=v.form.getFieldsValue(!0),x=(0,i.xT)(b,v),M=await (0,n.eu)(e,null==t?void 0:t.assignedValues,"FormSubmitAction");if(!M){null==(s=e.exit)||s.call(e);return}let w=(0,n.GO)(x,M);if(g instanceof o.SingleRecordResource){if(_){let e=g.getMeta("currentFilterByTk");e?g.setFilterByTk(e):g.isNewRecord=!0}let l=r(a?await a(w):await g.save(w,t.requestConfig));return _?(g.isNewRecord=!1,null==(d=v.resetUserModifiedFields)||d.call(v),await g.refresh(),l=l??(null==(u=g.getData)?void 0:u.call(g))):(v.form.resetFields(),v.emitter.emit("onFieldReset"),null==(c=v.resetUserModifiedFields)||c.call(v),null==(m=v.formValueRuntime)||null==(p=m.resetAfterFormReset)||p.call(m),e.view.inputArgs.collectionName===v.collection.name&&e.view.inputArgs.onChange&&e.view.inputArgs.onChange(l)),l}if(g instanceof o.MultiRecordResource){let l=g.getMeta("currentFilterByTk");if(!l)return void e.message.error(e.t("No filterByTk found for multi-record resource."));let o=a?await a(w,l):await g.update(l,w,t.requestConfig);return null==(h=v.resetUserModifiedFields)||h.call(v),r(o)??(null==(f=v.getCurrentRecord)?void 0:f.call(v))}}},24(e,t,l){l.d(t,{D9:()=>g,go:()=>f,xT:()=>v});var o=l(7583),n=l(3728);function i(e,t){var l,o;let n=null==e||null==(o=e.context)||null==(l=o.blockModel)?void 0:l.uid,i=null==t?void 0:t.uid;return!!n&&!!i&&String(n)===String(i)}function r(e){var t,l;let o=null==e||null==(t=e.context)?void 0:t.fieldPathArray;if(Array.isArray(o)&&o.length)return o;try{let t=null==e||null==(l=e.getStepParams)?void 0:l.call(e,"fieldSettings","init"),o=null==t?void 0:t.fieldPath;if("string"==typeof o&&o)return o}catch{}let n=null==e?void 0:e.fieldPath;if("string"==typeof n&&n)return n;let i="function"==typeof(null==e?void 0:e.getProps)?e.getProps():null==e?void 0:e.props,r=null==i?void 0:i.name;return"string"==typeof r&&r||Array.isArray(r)&&r.length?r:null}function a(e){return Array.isArray(e)&&e.length&&"string"==typeof e[0]?e:null}function s(e){var t;let l=r(e);return l?a((0,n.IJ)(l,null==e||null==(t=e.context)?void 0:t.fieldIndex)):null}function d(e,t){if(e&&"object"==typeof e&&Array.isArray(t)&&!(t.length<2))for(let l=t.length-1;l>=1;l--){let n=t.slice(0,l);if("number"==typeof n[n.length-1])continue;let i=o.default.get(e,n);o.default.isPlainObject(i)&&0===Object.keys(i).length&&o.default.unset(e,n)}}function u(e,t){(null==e?void 0:e.forEachModel)&&e.forEachModel(e=>{t(e);let l=null==e?void 0:e.forks;l&&"function"==typeof l.forEach&&l.forEach(e=>{e&&!e.disposed&&t(e)})})}function c(e){let t=null==e?void 0:e.flowEngine;if(!(null==t?void 0:t.forEachModel))return[];let l=[],o=new Set;return u(t,t=>{if(!t||"object"!=typeof t||!t.hidden||!i(t,e))return;let n=s(t);if(!n)return;let r=JSON.stringify(n);o.has(r)||(o.add(r),l.push(n))}),l}function p(e){return"string"==typeof e?e?[e]:null:Array.isArray(e)?a(e):null}function m(e,t){if(!Array.isArray(e)||!Array.isArray(t)||e.length>t.length)return!1;for(let l=0;l<e.length;l++)if(e[l]!==t[l])return!1;return!0}function h(e){let t=null==e?void 0:e.form;if(!t||"function"!=typeof t.getFieldsError)return null;let l=t.getFieldsError();if(!Array.isArray(l))return null;let o=[],n=new Set;for(let e of l){let t=p(null==e?void 0:e.name);if(!t)continue;let l=JSON.stringify(t);n.has(l)||(n.add(l),o.push(t))}if(!o.length)return null;let i=c(e);return i.length?o.filter(e=>!i.some(t=>m(t,e))):o}function f(e){var t,l;return(null==e||null==(l=e.getStepParams)||null==(t=l.call(e,"submitSettings","skipRequiredValidation"))?void 0:t.skipValidator)===!0}async function g(e){let{form:t,blockModel:l,flowSettingsEnabled:o,skipValidator:n}=e;if(n||!t||"function"!=typeof t.validateFields)return;let i=o&&l?h(l):null;if(Array.isArray(i)){i.length&&await t.validateFields(i);return}await t.validateFields()}function v(e,t){if(!e||"object"!=typeof e)return e;let l=c(t);if(!l.length)return e;let n=o.default.cloneDeep(e);for(let e of l)o.default.unset(n,e),d(n,e);return n}},9413(e,t,l){l.d(t,{F:()=>n});var o=l(3526);function n(e,t){let l=(t,l,o)=>{var n,i,r;return!l||(null==e||null==(r=e.app)||null==(i=r.jsonLogic)||null==(n=i.apply)?void 0:n.call(i,{[l]:[t,o]}))};try{return(0,o.evaluateConditions)((0,o.removeInvalidFilterItems)(t),l)}catch{return!1}}},9613(e,t,l){l.d(t,{Dd:()=>s,G:()=>u,Wp:()=>c,x3:()=>d});var o=l(2314),n=l(504),i=l(7583),r=l(3728);function a(e){return!!e&&"object"==typeof e&&(Array.isArray(e)||i.default.isPlainObject(e))}function s(e,t){if(t)for(let l of(0,r.ef)(e))t.deps.add(`fv:${l}`)}function d(e){let{valuesMirror:t,collector:l,basePath:n,getFormValuesSnapshot:r,getFormValueAtPath:u}=e,c=()=>n.length?i.default.get(t,n):t,p=c(),m=p&&("object"==typeof p||"function"==typeof p)?p:Array.isArray(p)?[]:{},h=e=>d({valuesMirror:t,basePath:e,collector:l,getFormValuesSnapshot:r,getFormValueAtPath:u});return new Proxy(m,{get(e,d){if("toJSON"===d)return(l&&(l.wildcard=!0),0===n.length)?()=>r():()=>(0,o.toJS)(c());if("symbol"==typeof d){l&&(l.wildcard=!0);let e=c();return null==e?void 0:e[d]}let p=c();if(null==p)return;if("__raw"===d)return p;if("__proto__"===d||"prototype"===d||"constructor"===d){l&&(l.wildcard=!0);return}let m=Array.isArray(p),f=m&&("number"==typeof d&&Number.isInteger(d)||"string"==typeof d&&/^\d+$/.test(d));if(m&&!f){l&&(l.wildcard=!0);let e=p[d];return"function"==typeof e?e.bind(p):e}let g=[...n,f?Number(d):d];s(g,l);let v=p[d];if(void 0===v){let e=u(g);i.default.isEqual(e,v)||(i.default.set(t,g,e),v=e)}return null==v||"object"!=typeof v?v:a(v)?h(g):v},ownKeys(){l&&(l.wildcard=!0);let e=c();return e?Reflect.ownKeys(e):[]},getOwnPropertyDescriptor(e,t){let l=c();if(l)return Object.getOwnPropertyDescriptor(l,t)},has(e,t){let l=c();return!!l&&t in l}})}function u(e,t){try{let l=(0,n.extractUsedVariablePaths)(e)||{};for(let[e,o]of Object.entries(l)){let l=Array.isArray(o)?o:[];for(let o of l.length?l:[""]){if("formValues"===e){if(!o){t.wildcard=!0;continue}let e=(0,r.EA)(String(o)).filter(e=>"object"!=typeof e);s(e,t);continue}let l=o?`ctx:${e}:${String(o)}`:`ctx:${e}`;t.deps.add(l)}}}catch{}}function c(e,t){if((0,n.isRunJSValue)(e))try{let l=(0,n.extractUsedVariablePathsFromRunJS)(e.code)||{};for(let[e,o]of Object.entries(l)){let l=Array.isArray(o)?o:[];for(let o of l.length?l:[""]){if("formValues"===e){if(!o){t.wildcard=!0;continue}let e=(0,r.EA)(String(o)).filter(e=>"object"!=typeof e);s(e,t);continue}let l=o?`ctx:${e}:${String(o)}`:`ctx:${e}`;t.deps.add(l)}}}catch{}}},3728(e,t,l){function o(e){let t=[],l=0,o=e.length,n=()=>{let n=l;for(;l<o&&"."!==e[l]&&"["!==e[l];)l++;let i=e.slice(n,l);i&&t.push(i)};for(;l<o;){let i=e[l];if("."===i){l++;continue}if("["===i){let n=++l;for(;l<o&&"]"!==e[l];)l++;let i=e.slice(n,l);l++,/^\d+$/.test(i)?t.push(Number(i)):i&&t.push({placeholder:i});continue}n()}return t}function n(e){let t=Array.isArray(e)?e:[],l=[];for(let e of t){if("string"!=typeof e)continue;let[t,o]=e.split(":"),n=Number(o);!t||Number.isNaN(n)||l.push({name:t,index:n})}return l}function i(e,t){let l=Array.isArray(e)?[...e]:o(e),i=n(t),r=[],a=0;for(let e=0;e<l.length;e++){let t=l[e];if("object"==typeof t&&t&&"placeholder"in t){let e=r[r.length-1],t="string"==typeof e?e:void 0;if(!t)return null;for(;a<i.length&&i[a].name!==t;)a++;if(a>=i.length)return null;r.push(i[a].index),a++;continue}if(r.push(t),"string"==typeof t&&a<i.length&&i[a].name===t){let t=l[e+1];"number"==typeof t?a++:"object"==typeof t&&t&&"placeholder"in t||(r.push(i[a].index),a++)}}return r}function r(e){let t="";for(let l of e){if("number"==typeof l){t+=`[${l}]`;continue}t?t+=`.${l}`:t=l}return t}function a(e){return o(e).filter(e=>"object"!=typeof e)}function s(e){let t=[],l=[];for(let o of e)l.push(o),t.push(r(l));return t}l.d(t,{EA:()=>o,IJ:()=>i,Qc:()=>r,c1:()=>a,ef:()=>s})},1022(e,t,l){l.d(t,{Po:()=>i,ao:()=>r,li:()=>n});var o=l(7583);let n=20;function i(e){return null==e||("string"==typeof e||Array.isArray(e)?0===e.length:!!o.default.isPlainObject(e)&&0===Object.keys(e).length)}function r(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}},3341(e,t,l){l.d(t,{Co:()=>h,PP:()=>i,S2:()=>m,TE:()=>p,li:()=>s,u4:()=>c});var o=l(7583);function n(){return{logic:"$and",items:[]}}function i(e,t,l){var o;let n=null==e||null==(o=e.getStepParams)?void 0:o.call(e,t,l);return!!n&&Object.prototype.hasOwnProperty.call(n,"value")}function r(e){if(!e)return;let t="function"==typeof e.getProps?e.getProps():e.props;if(t&&void 0!==t.initialValue)return t.initialValue}function a(e,t){var l,o;if(e)return null==(o=e.getStepParams)||null==(l=o.call(e,t,"initialValue"))?void 0:l.defaultValue}function s(e){return t=>{if(!t)return;let l=r(t);if(void 0!==l)return l;for(let l of e){let e=a(t,l);if(void 0!==e)return e}}}function d(e,t,l){var n,i,r;if(!(null==e||null==(n=e.stepParams)?void 0:n[t]))return;let a=e.stepParams[t];!a||"object"!=typeof a||Object.prototype.hasOwnProperty.call(a,l)&&(delete a[l],o.default.isEmpty(a)&&delete e.stepParams[t],null==(r=e.emitter)||null==(i=r.emit)||i.call(r,"onStepParamsChanged"))}function u(e){var t,l;if(!e)return;null==(t=e.setProps)||t.call(e,{initialValue:void 0}),e.props&&Object.prototype.hasOwnProperty.call(e.props,"initialValue")&&delete e.props.initialValue;let o=null==(l=e._options)?void 0:l.props;o&&Object.prototype.hasOwnProperty.call(o,"initialValue")&&delete o.initialValue}function c(e){return t=>{if(t)for(let l of(u(t),e))d(t,l,"initialValue")}}function p(e,t){var l,o,i,r,a;let s=null==e||null==(i=e.subModels)||null==(o=i.grid)||null==(l=o.subModels)?void 0:l.items,d=Array.isArray(s)?s:[],u=[];for(let e of d){let l=(null==e||null==(a=e.getStepParams)||null==(r=a.call(e,"fieldSettings","init"))?void 0:r.fieldPath)||(null==e?void 0:e.fieldPath),o=l?String(l):"";if(!o)continue;let i=t(e);void 0!==i&&u.push({key:`legacy-default:${o}`,enable:!0,targetPath:o,mode:"default",condition:n(),value:i})}return u}function m(e,t){let l=Array.isArray(e)?e:[],o=Array.isArray(t)?t:[];if(!o.length)return l;let n=new Set;for(let e of l){if(!e||"object"!=typeof e)continue;let t=e.targetPath?String(e.targetPath):"";if(t){if("default"===e.mode){n.add(t);continue}String(e.key??"").startsWith("legacy-default:")&&n.add(t)}}let i=new Set(l.map(e=>String(e.key??""))),r=[];for(let e of o){let t=e.targetPath?String(e.targetPath):"";if(!t||n.has(t))continue;let l={...e},o=String(l.key??"");o&&i.has(o)&&(l.key=`${o}:${t}`),r.push(l)}return r.length?[...l,...r]:l}function h(e,t,l){var o,n,i;let r=null==e||null==(i=e.subModels)||null==(n=i.grid)||null==(o=n.subModels)?void 0:o.items,a=Array.isArray(r)?r:[],s=[];for(let e of a)void 0!==t(e)&&(l(e),s.push(e));return s}},8709(e,t,l){l.d(t,{$4:()=>a,r5:()=>r});var o=l(7404);let n="__index__";function i(e,t){if(!t)return null;if(Array.isArray(t)){let l=t.map(t=>null==e?void 0:e[t]);return l.some(e=>null==e)?null:l.map(e=>String(e)).join("__")}let l=null==e?void 0:e[t];return null==l?null:String(l)}function r(e,t){let l=null==e?void 0:e[n];if((null==e?void 0:e.__is_new__)&&null!=l&&""!==l)return`tmp:${String(l)}`;let o=i(e,t);return null!=o?`pk:${o}`:null!=l&&""!==l?`tmp:${String(l)}`:null}function a(e){if(!e.length)return e;let t=!1,l=e.map(e=>{let l=null==e?void 0:e[n];return e.__is_new__&&(null==l||""===l)?(t=!0,{...e,[n]:(0,o.uid)()}):e});return t?l:e}},4881(e,t,l){l.d(t,{m:()=>p});var o=l(1178),n=l(504),i=l(2793),r=l(1649),a=l(9829),s=l(6859),d=l(1557);function u(e){let{value:t,onChange:l,onCompositionStart:n,onCompositionEnd:a,...s}=e,[d,u]=(0,r.useState)(()=>c(t));(0,r.useEffect)(()=>{u(c(t))},[t]);let p=e=>e.currentTarget.value;return(0,o.jsx)(i.Input,{...s,value:d,onChange:e=>{u(p(e)),null==l||l(e)},onCompositionStart:e=>{u(p(e)),null==n||n(e)},onCompositionEnd:e=>{u(p(e)),null==a||a(e)}})}function c(e){return"bigint"==typeof e?String(e):null==e?"":e}class p extends s.o{render(){if(this.props.enableScan)return(0,o.jsx)(d.E,{...this.props});let{enableScan:e,disableManualInput:t,...l}=this.props;return(0,o.jsx)(u,{...l})}}p.registerFlow({key:"defaultValueForNanoid",steps:{generateNanoid:{handler(e,t){var l,o;null==(o=e.blockModel)||null==(l=o.emitter)||l.on("onFieldReset",()=>{if("nanoid"===e.collectionField.interface&&!1!==e.collectionField.options.autoFill){let{size:t,customAlphabet:l}=e.collectionField.options||{size:21};e.model.props.onChange((0,a.customAlphabet)(l,t)())}})}}}}),p.registerFlow({key:"scanInputSettings",sort:800,title:(0,n.tExpr)("Scan input settings"),steps:{enableScan:{title:(0,n.tExpr)("Enable Scan"),uiMode:{type:"switch",key:"enableScan"},hideInSettings:e=>"readPretty"===e.model.getProps().pattern||e.model.getProps().disabled,defaultParams:e=>({enableScan:!!e.model.props.enableScan}),handler(e,t){e.model.setProps({enableScan:!!t.enableScan,disableManualInput:!!t.enableScan&&e.model.props.disableManualInput})}},disableManualInput:{title:(0,n.tExpr)("Disable manual input"),uiMode:{type:"switch",key:"disableManualInput"},hideInSettings(e){var t,l;let o=null==(t=(l=e.model).getStepParams)?void 0:t.call(l,"scanInputSettings","enableScan");return!(Object.prototype.hasOwnProperty.call(o||{},"enableScan")?!!(null==o?void 0:o.enableScan):!!e.model.props.enableScan)||"readPretty"===e.model.getProps().pattern||!!e.model.getProps().disabled},defaultParams:e=>({disableManualInput:!!e.model.props.disableManualInput}),handler(e,t){e.model.setProps({disableManualInput:!!e.model.props.enableScan&&!!t.disableManualInput})}}}}),p.define({label:(0,n.tExpr)("Input")}),n.EditableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid"],{isDefault:!0}),n.FilterableItemModel.bindModelToInterface("InputFieldModel",["input","email","phone","uuid","url","nanoid","textarea","markdown","vditor","richText","password","color"],{isDefault:!0})},7520(e,t,l){l.d(t,{o:()=>o,e:()=>s});class o{subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async load(){return this.data&&!this.error?this.data:(this.pending||(this.loading=!0,this.notify(),this.pending=this.apiClient.request({url:"systemSettings:get"}).then(e=>(this.data=e.data,this.error=void 0,this.data)).catch(e=>{throw this.error=e,e}).finally(()=>{this.loading=!1,this.pending=void 0,this.notify()})),this.pending)}async refresh(){return this.pending=void 0,this.data=void 0,this.load()}setData(e){this.data=e,this.error=void 0,this.loading=!1,this.notify()}setError(e){this.error=e,this.loading=!1,this.notify()}notify(){for(let e of this.listeners)e()}constructor(e){this.apiClient=e,this.loading=!1,this.listeners=new Set}}var n=l(504),i=l(6305),r=l(6553),a=l(1649);let s=()=>{var e,t;let l=(0,i.nm)().systemSettings,o=(0,n.useFlowEngine)({throwError:!1}),[,s]=(0,a.useState)(0),d=null==(t=l.data)||null==(e=t.data)?void 0:e.enabledLanguages,u=(0,a.useMemo)(()=>(Array.isArray(d)?d:[]).filter(e=>r.A[e]).map(e=>({label:r.A[e].label,value:e})),[d]);return(0,a.useEffect)(()=>(l.load(),l.subscribe(()=>{s(e=>e+1)})),[l]),(0,a.useEffect)(()=>{o&&o.context.defineProperty("locale",{get:e=>{var t,l,o;return(null==(l=e.api)||null==(t=l.auth)?void 0:t.locale)||(null==(o=e.i18n)?void 0:o.language)},cache:!1,meta:{type:"string",title:'{{t("Current language")}}',sort:970,interface:"select",uiSchema:{enum:u,"x-component":"Select"}}})},[o,u]),{loading:l.loading,data:l.data,error:l.error,refresh:()=>l.refresh(),mutate:e=>{Object.prototype.hasOwnProperty.call(e||{},"data")&&l.setData(null==e?void 0:e.data),Object.prototype.hasOwnProperty.call(e||{},"error")&&l.setError(null==e?void 0:e.error)}}}},8481(e,t,l){l.d(t,{F3:()=>a,GX:()=>s,b1:()=>d});let o={view:"get"},n=e=>e?o[e]||e:null,i=(e,t)=>{for(let l of t){if(!(l in e))continue;let t=e[l];if(null==t)return null;return(Array.isArray(t)?t:[t]).map(e=>n(e)).filter(Boolean)}},r=(e,t)=>{let l=n(t);if(!l||!(null==e?void 0:e.options))return!0;let{availableActions:o,unavailableActions:i}=e.options;return Array.isArray(o)?o.includes(l):!Array.isArray(i)||!i.includes(l)},a=(e,t)=>null==t||!t.length||t.every(t=>r(e,t)),s=e=>{var t;let l=i(e,["capabilityActionNames","capabilityActionName"]);if(void 0!==l)return l;let o=null==e||null==(t=e.prototype)?void 0:t.getAclActionName;if("function"!=typeof o)return null;try{let e=o.call({}),t=n(e);return t?[t]:null}catch{return null}},d=e=>i(e,["blockCapabilityActionNames","blockCapabilityActionName"])??null},7123(e,t,l){l.d(t,{l:()=>o});function o(e){let{blockLabel:t,dsName:l,dsCount:o,collectionTitle:n,sourceCollectionTitle:i,associationTitle:r}=e,a=o>1&&!!l,s=n;if(i&&r){let e=`${i} > ${r} (${n})`;s=`${a?`${l} > `:""}${e}`}else s=`${a?`${l} > `:""}${n}`;return`
298
298
  ${t}:
299
299
  ${s}`}},7093(e,t,l){l.d(t,{SM:()=>s,M6:()=>p,Xi:()=>i,hH:()=>m,NY:()=>c,hO:()=>h,lr:()=>o.l,HZ:()=>d});var o=l(7123),n=l(504);async function i(e,t,l,o,i){let r=(null==i?void 0:i.includeSelf)??!0,a=(null==i?void 0:i.includeForks)??!0,s=new Set,d=[e],u=[],c=e=>{e&&"function"==typeof e.dispatchEvent&&u.push(e.dispatchEvent(t,l,o))};for(;d.length;){let t=d.pop();if(!t||s.has(t))continue;if(s.add(t),r||t!==e){var p;c(t),a&&(null==(p=t.forks)?void 0:p.size)&&t.forks.forEach(e=>{null!=e&&e.disposed||c(e)})}let l=t.subModels;if(l)for(let e of Object.values(l))if(Array.isArray(e))for(let t of e)t instanceof n.FlowModel&&d.push(t);else e instanceof n.FlowModel&&d.push(e)}await Promise.all(u)}var r=l(691),a=l(1649);let s=e=>{let t=e.dataLength||0,l=e.pageSize||10,o=e.current||1;return t<l||!e.hasNext?l*o:l*o+1},d=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(0,r.css)`
300
300
  .ant-pagination-simple-pager {
@@ -435,7 +435,7 @@ ${n}`,u)}}let o=T(e.issues.filter(e=>"runtime"===e.type)),n=o?`Key runtime issue
435
435
  display: inline-flex;
436
436
  align-items: center;
437
437
  height: 100%;
438
- `,oe=e=>{let t=null==e?void 0:e.trim();return t&&"/"!==t?`/${t.replace(/^\/+/,"")}`:"/"},ot=e=>{let t=oe(e).replace(/\/+$/,"");return""===t||"/"===t?"":t},ol=e=>{var t,l,o,n;return(null==e||null==(l=e.router)||null==(t=l.getBasename)?void 0:t.call(l))||(null==e||null==(o=e.router)?void 0:o.basename)||(null==e||null==(n=e.getPublicPath)?void 0:n.call(e))||""},oo=(e,t)=>{let l=oe(e),o=ot(t);return o?l===o?"/":l.startsWith(`${o}/`)?oe(l.slice(o.length)):l:l},on=e=>{let t=oe(e),l=/^(.*?\/(?:apps|_app)\/[^/]+)(?=\/|$)/.exec(t),o=(null==l?void 0:l[1])||"";return{appPath:o,routePath:o?oe(t.slice(o.length)):t}},oi=(e,t)=>{var l;let o=on(t||"").appPath;if(o)return o;let n=on((null==e||null==(l=e.getPublicPath)?void 0:l.call(e))||"").appPath;return n||((null==e?void 0:e.name)&&"main"!==e.name&&e.getHref?ot(e.getHref("/")):"")},or=(e,t)=>{let l=oe(e);return!t||l===t||l.startsWith(`${t}/`)?l:`${t}${l}`},oa=e=>"/admin"===e||e.startsWith("/admin/"),os=e=>{try{var t,l,o;return null==e||null==(o=e.layoutManager)||null==(l=o.getLayout)||null==(t=l.call(o,"admin"))?void 0:t.routePath}catch{return}},od=(e,t)=>{let l=oe(e),o=ot(t);return!o||l===o||l.startsWith(`${o}/`)?l:`${o}${l}`};function ou(e){return(0,m.jsx)("div",{onClick:()=>{window.open(e.link,"_blank","noopener,noreferrer")},children:e.title})}function oc(e){let t=(0,_.n)(),l=(0,y.useLocation)(),o=e.path||"/admin/settings",n=ol(t),i=oo(l.pathname,n),r=on(i),a=r.appPath||oi(t,n),s=r.appPath?r.routePath:i,d=or(oo(o,n),a);if(a){let l=od(d,n),o=l5({currentPathname:i,targetPathname:d,basePath:n,adminRoutePath:os(t)});return(0,m.jsx)("a",{href:l,target:o?"_blank":void 0,rel:o?"noopener noreferrer":void 0,children:e.title})}return oa(s)?(0,m.jsx)(y.Link,{to:d,children:e.title}):(0,m.jsx)("a",{href:od(o,n),target:"_blank",rel:"noopener noreferrer",children:e.title})}function op(e){let{settings:t,canManagePlugins:l,t:o}=e,n=(0,l3.eD)((0,l3.Ui)(t)),i=n.find(e=>e.name===l3.Bm),r=new Map,a=(0,l3.p$)(n.filter(e=>e.name!==l3.Bm).map(e=>({...e,children:void 0})));a.forEach(e=>{r.set(e.key,e)});let s=((0,l3.gL)(a)||[]).map(e=>{if((null==e?void 0:e.type)==="divider")return e;let t=r.get(String(e.key)),l=null==t?void 0:t.path,o=null==t?void 0:t.link,n=(null==t?void 0:t.title)||e.title;return{key:e.key,name:null==t?void 0:t.name,path:null==t?void 0:t.path,link:o,title:n,icon:e.icon,label:o?(0,m.jsx)(ou,{title:n,link:o}):(0,m.jsx)(oc,{title:n,path:l})}}),d=[];return l&&i&&d.push({key:i.key,icon:i.icon||(0,m.jsx)(to.ApiOutlined,{}),label:(0,m.jsx)(oc,{title:i.title||o("Plugin manager"),path:i.path})}),l&&s.length&&d.push({type:"divider"}),d.push(...s),d}class om extends f.FlowModel{getActionId(){return this.actionId||this.uid||this.constructor.name}getTestId(){return this.testId||`topbar-action-${this.getActionId()}`}isHidden(){return!!this.hidden}getButtonStyle(e){}onClick(e){}renderButton(){return(0,m.jsx)(of,{model:this})}renderWrapper(e){return this.tooltip?(0,m.jsx)(b.Tooltip,{title:this.context.t(this.tooltip),children:(0,m.jsx)("span",{className:l7,children:e})}):e}render(){return this.renderWrapper(this.renderButton())}constructor(...e){super(...e),this.sort=0}}let oh=e=>({"--nb-topbar-action-color":e.colorTextHeaderMenu||"rgba(255, 255, 255, 0.65)","--nb-topbar-action-hover-bg":e.colorBgHeaderMenuHover||"rgba(255, 255, 255, 0.1)"}),of=(0,f.observer)(e=>{var t,l;let{model:o,style:n,className:i}=e,{token:r}=b.theme.useToken(),a=r;return(0,m.jsx)(b.Button,{...o.props,type:"text",icon:o.icon,"data-testid":o.getTestId(),onClick:o.onClick.bind(o),className:(0,A.cx)(l9,i,null==(t=o.props)?void 0:t.className),style:{...oh(a),...o.getButtonStyle(a),...null==(l=o.props)?void 0:l.style,...n}})},{displayName:"TopbarActionButton"}),og=(0,f.observer)(e=>{let{model:t}=e,l=(0,f.useFlowEngine)(),{token:o}=b.theme.useToken(),n=o,i=!!l.context.flowSettingsEnabled,r=!!t.context.isMobileLayout;return((0,__rspack_external_react_hotkeys_hook_f323ef84.useHotkeys)("ctrl+shift+u",()=>{if(!r){if(i)return void l.flowSettings.disable();l.flowSettings.enable()}},[i,l,r]),r)?null:t.renderWrapper((0,m.jsx)(of,{model:t,style:i?{backgroundColor:n.colorSettings,"--nb-topbar-action-hover-bg":n.colorSettings}:void 0}))},{displayName:"UIEditorTopbarAction"}),ov=(0,f.observer)(e=>{let{model:t}=e,l=(0,_.n)(),{snippets:o=[]}=(0,lI.v6)(),{t:n}=(0,v.useTranslation)(),[r,a]=(0,i.useState)(!1),s=(0,i.useMemo)(()=>op({settings:l.pluginSettingsManager.getList(!0),canManagePlugins:o.includes("pm"),t:n}),[l,o,n]);return((0,i.useEffect)(()=>()=>{l.pluginSettingsManager.clearCache()},[l]),s.length)?(0,m.jsx)(b.Dropdown,{open:r,trigger:["hover"],placement:"bottomRight",mouseEnterDelay:0,mouseLeaveDelay:.1,onOpenChange:a,menu:{style:{maxHeight:"70vh",overflow:"auto"},items:s},children:(0,m.jsx)("span",{className:l7,onMouseEnter:()=>a(!0),children:(0,m.jsx)(of,{model:t})})}):null},{displayName:"PluginSettingsTopbarAction"});class oy extends om{async onClick(){let e=this.context.engine.flowSettings;if(e.enabled){(0,l6.o7)(!1),await e.disable();return}(0,l6.o7)(!0),await e.enable()}render(){return(0,m.jsx)(og,{model:this})}constructor(...e){super(...e),this.sort=0,this.actionId="ui-editor",this.testId="ui-editor-button",this.aclSnippet="ui.*",this.icon=(0,m.jsx)(to.HighlightOutlined,{}),this.tooltip=(0,f.tExpr)("UI Editor")}}class o_ extends om{render(){return(0,m.jsx)(ov,{model:this})}constructor(...e){super(...e),this.sort=100,this.actionId="plugin-settings",this.testId="plugin-settings-button",this.icon=(0,m.jsx)(to.SettingOutlined,{})}}let ob="user-center",ox={profile:100,preferences:200,system:300,danger:400},oM=(0,A.css)`
438
+ `,oe=e=>{let t=null==e?void 0:e.trim();return t&&"/"!==t?`/${t.replace(/^\/+/,"")}`:"/"},ot=e=>{let t=oe(e).replace(/\/+$/,"");return""===t||"/"===t?"":t},ol=e=>{var t,l,o,n;return(null==e||null==(l=e.router)||null==(t=l.getBasename)?void 0:t.call(l))||(null==e||null==(o=e.router)?void 0:o.basename)||(null==e||null==(n=e.getPublicPath)?void 0:n.call(e))||""},oo=(e,t)=>{let l=oe(e),o=ot(t);return o?l===o?"/":l.startsWith(`${o}/`)?oe(l.slice(o.length)):l:l},on=e=>{let t=oe(e),l=/^(.*?\/(?:apps|_app)\/[^/]+)(?=\/|$)/.exec(t),o=(null==l?void 0:l[1])||"";return{appPath:o,routePath:o?oe(t.slice(o.length)):t}},oi=(e,t)=>{var l;let o=on(t||"").appPath;if(o)return o;let n=on((null==e||null==(l=e.getPublicPath)?void 0:l.call(e))||"").appPath;return n||((null==e?void 0:e.name)&&"main"!==e.name&&e.getHref?ot(e.getHref("/")):"")},or=(e,t)=>{let l=oe(e);return!t||l===t||l.startsWith(`${t}/`)?l:`${t}${l}`},oa=e=>"/admin"===e||e.startsWith("/admin/"),os=e=>{try{var t,l,o;return null==e||null==(o=e.layoutManager)||null==(l=o.getLayout)||null==(t=l.call(o,"admin"))?void 0:t.routePath}catch{return}},od=(e,t)=>{let l=oe(e),o=ot(t);return!o||l===o||l.startsWith(`${o}/`)?l:`${o}${l}`};function ou(e){return(0,m.jsx)("div",{onClick:()=>{window.open(e.link,"_blank","noopener,noreferrer")},children:e.title})}function oc(e){let t=(0,_.n)(),l=(0,y.useLocation)(),o=e.path||"/admin/settings",n=ol(t),i=oo(l.pathname,n),r=on(i),a=r.appPath||oi(t,n),s=r.appPath?r.routePath:i,d=or(oo(o,n),a);if(a){let l=od(d,n);return l5({currentPathname:i,targetPathname:d,basePath:n,adminRoutePath:os(t)})?(0,m.jsx)("a",{href:l,target:"_blank",rel:"noopener noreferrer",children:e.title}):(0,m.jsx)(y.Link,{to:oo(d,n),children:e.title})}return oa(s)?(0,m.jsx)(y.Link,{to:d,children:e.title}):(0,m.jsx)("a",{href:od(o,n),target:"_blank",rel:"noopener noreferrer",children:e.title})}function op(e){let{settings:t,canManagePlugins:l,t:o}=e,n=(0,l3.eD)((0,l3.Ui)(t)),i=n.find(e=>e.name===l3.Bm),r=new Map,a=(0,l3.p$)(n.filter(e=>e.name!==l3.Bm).map(e=>({...e,children:void 0})));a.forEach(e=>{r.set(e.key,e)});let s=((0,l3.gL)(a)||[]).map(e=>{if((null==e?void 0:e.type)==="divider")return e;let t=r.get(String(e.key)),l=null==t?void 0:t.path,o=null==t?void 0:t.link,n=(null==t?void 0:t.title)||e.title;return{key:e.key,name:null==t?void 0:t.name,path:null==t?void 0:t.path,link:o,title:n,icon:e.icon,label:o?(0,m.jsx)(ou,{title:n,link:o}):(0,m.jsx)(oc,{title:n,path:l})}}),d=[];return l&&i&&d.push({key:i.key,icon:i.icon||(0,m.jsx)(to.ApiOutlined,{}),label:(0,m.jsx)(oc,{title:i.title||o("Plugin manager"),path:i.path})}),l&&s.length&&d.push({type:"divider"}),d.push(...s),d}class om extends f.FlowModel{getActionId(){return this.actionId||this.uid||this.constructor.name}getTestId(){return this.testId||`topbar-action-${this.getActionId()}`}isHidden(){return!!this.hidden}getButtonStyle(e){}onClick(e){}renderButton(){return(0,m.jsx)(of,{model:this})}renderWrapper(e){return this.tooltip?(0,m.jsx)(b.Tooltip,{title:this.context.t(this.tooltip),children:(0,m.jsx)("span",{className:l7,children:e})}):e}render(){return this.renderWrapper(this.renderButton())}constructor(...e){super(...e),this.sort=0}}let oh=e=>({"--nb-topbar-action-color":e.colorTextHeaderMenu||"rgba(255, 255, 255, 0.65)","--nb-topbar-action-hover-bg":e.colorBgHeaderMenuHover||"rgba(255, 255, 255, 0.1)"}),of=(0,f.observer)(e=>{var t,l;let{model:o,style:n,className:i}=e,{token:r}=b.theme.useToken(),a=r;return(0,m.jsx)(b.Button,{...o.props,type:"text",icon:o.icon,"data-testid":o.getTestId(),onClick:o.onClick.bind(o),className:(0,A.cx)(l9,i,null==(t=o.props)?void 0:t.className),style:{...oh(a),...o.getButtonStyle(a),...null==(l=o.props)?void 0:l.style,...n}})},{displayName:"TopbarActionButton"}),og=(0,f.observer)(e=>{let{model:t}=e,l=(0,f.useFlowEngine)(),{token:o}=b.theme.useToken(),n=o,i=!!l.context.flowSettingsEnabled,r=!!t.context.isMobileLayout;return((0,__rspack_external_react_hotkeys_hook_f323ef84.useHotkeys)("ctrl+shift+u",()=>{if(!r){if(i)return void l.flowSettings.disable();l.flowSettings.enable()}},[i,l,r]),r)?null:t.renderWrapper((0,m.jsx)(of,{model:t,style:i?{backgroundColor:n.colorSettings,"--nb-topbar-action-hover-bg":n.colorSettings}:void 0}))},{displayName:"UIEditorTopbarAction"}),ov=(0,f.observer)(e=>{let{model:t}=e,l=(0,_.n)(),{snippets:o=[]}=(0,lI.v6)(),{t:n}=(0,v.useTranslation)(),[r,a]=(0,i.useState)(!1),s=(0,i.useMemo)(()=>op({settings:l.pluginSettingsManager.getList(!0),canManagePlugins:o.includes("pm"),t:n}),[l,o,n]);return((0,i.useEffect)(()=>()=>{l.pluginSettingsManager.clearCache()},[l]),s.length)?(0,m.jsx)(b.Dropdown,{open:r,trigger:["hover"],placement:"bottomRight",mouseEnterDelay:0,mouseLeaveDelay:.1,onOpenChange:a,menu:{style:{maxHeight:"70vh",overflow:"auto"},items:s},children:(0,m.jsx)("span",{className:l7,onMouseEnter:()=>a(!0),children:(0,m.jsx)(of,{model:t})})}):null},{displayName:"PluginSettingsTopbarAction"});class oy extends om{async onClick(){let e=this.context.engine.flowSettings;if(e.enabled){(0,l6.o7)(!1),await e.disable();return}(0,l6.o7)(!0),await e.enable()}render(){return(0,m.jsx)(og,{model:this})}constructor(...e){super(...e),this.sort=0,this.actionId="ui-editor",this.testId="ui-editor-button",this.aclSnippet="ui.*",this.icon=(0,m.jsx)(to.HighlightOutlined,{}),this.tooltip=(0,f.tExpr)("UI Editor")}}class o_ extends om{render(){return(0,m.jsx)(ov,{model:this})}constructor(...e){super(...e),this.sort=100,this.actionId="plugin-settings",this.testId="plugin-settings-button",this.icon=(0,m.jsx)(to.SettingOutlined,{})}}let ob="user-center",ox={profile:100,preferences:200,system:300,danger:400},oM=(0,A.css)`
439
439
  display: inline-flex;
440
440
  align-items: center;
441
441
  height: 100%;
@@ -799,7 +799,7 @@ ${n}`,u)}}let o=T(e.issues.filter(e=>"runtime"===e.type)),n=o?`Key runtime issue
799
799
  padding: 0;
800
800
  overflow: hidden;
801
801
  }
802
- `,nh={token:{colorSplit:"rgba(255, 255, 255, 0.1)"}};function nf(e,t){return e.map((e,t)=>({action:e,index:t})).filter(e=>{let{action:l}=e;return!l.isHidden()&&(!l.aclSnippet||t(l.aclSnippet))}).sort((e,t)=>(e.action.sort||0)!==(t.action.sort||0)?(e.action.sort||0)-(t.action.sort||0):e.index-t.index).map(e=>{let{action:t}=e;return t})}let ng=e=>({"--nb-topbar-action-color":e.colorTextHeaderMenu||"rgba(255, 255, 255, 0.65)","--nb-topbar-action-hover-bg":e.colorBgHeaderMenuHover||"rgba(255, 255, 255, 0.1)"}),nv=()=>null,ny=e=>"function"==typeof(null==e?void 0:e.getActionId)?e.getActionId():(null==e?void 0:e.actionId)||(null==e?void 0:e.uid)||"",n_=i.default.memo(e=>{let{allow:t}=(0,nc.K)(),{token:l}=b.theme.useToken(),o=l,n=(0,i.useMemo)(()=>nf(e.actions,t),[t,e.actions]),r=n.filter(e=>ny(e)!==ob),a=n.find(e=>ny(e)===ob);return(0,m.jsxs)("div",{className:np,style:ng(o),children:[(0,m.jsx)("div",{className:"nb-topbar-actions-list",onClick:e.onActionClick,children:r.map(e=>(0,m.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:nv,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,m.jsx)(f.FlowModelRenderer,{model:e})},e.uid))}),(0,m.jsx)(b.ConfigProvider,{theme:nh,children:(0,m.jsx)(b.Divider,{type:"vertical"})}),(0,m.jsx)(lq,{}),a?(0,m.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:nv,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,m.jsx)(f.FlowModelRenderer,{model:a})},a.uid):null]})});n_.displayName="TopbarActionsContent";let nb=i.default.memo(e=>{let{token:t}=b.theme.useToken(),l=t,[o,n]=(0,i.useState)(!1),r=(0,i.useCallback)(()=>{n(!1)},[]);return e.isMobile?(0,m.jsx)(b.Popover,{rootClassName:nm,content:(0,m.jsx)(n_,{actions:e.actions,onActionClick:r}),color:l.colorBgHeader,trigger:"click",open:o,onOpenChange:n,children:(0,m.jsx)("div",{style:{padding:"0 16px",display:"flex",alignItems:"center",height:"100%",marginRight:-16},children:(0,m.jsx)(to.EllipsisOutlined,{style:{color:l.colorTextHeaderMenu,fontSize:20}})})}):(0,m.jsx)(n_,{actions:e.actions})});nb.displayName="TopbarActionsBar";let nx=e=>{let{children:t,model:l}=e,o=(0,f.useFlowEngine)(),n=(0,_.n)(),r=(0,y.useNavigate)(),a=(0,y.useLocation)(),s=(0,y.useMatches)(),[d,u]=(0,i.useState)(!1),c=(0,i.useRef)(!1),p=o.context.routeRepository,h=null==l?void 0:l.layout,g=null==h?void 0:h.uid,v=null==h?void 0:h.routeName,b=null==h?void 0:h.routePath,x=null==h?void 0:h.authCheck,M=(0,i.useMemo)(()=>{if(g||v||b||void 0!==x)return{authCheck:x,routeName:v,routePath:b||"",uid:g}},[x,v,b,g]),w=eJ(M),S=(null==M?void 0:M.routeName)||"admin",k=(0,i.useMemo)(()=>({routePath:w}),[w]),F=(0,i.useMemo)(()=>e0(a.pathname,n.router.getBasename())===w,[n,w,a.pathname]),C=(0,i.useMemo)(()=>{var e,t;let l=s[s.length-1];if(!ea(S,null==l?void 0:l.id))return"";let o=s.find(e=>e.id===S);return(null==(e=l.params)?void 0:e.name)||(null==(t=(0,f.parsePathnameToViewParams)(a.pathname,{basePath:(null==o?void 0:o.pathname)||w})[0])?void 0:t.viewUid)||""},[S,w,a.pathname,s]);return((0,i.useEffect)(()=>{c.current=!1},[a.pathname,a.search,a.hash,C]),(0,i.useEffect)(()=>{var e;let t=!0,l=null==p||null==(e=p.activateLayout)?void 0:e.call(p,M);return(async()=>{var e,l,o,i,a;if(u(!1),!F&&!C){t&&u(!0);return}if(!(null==p||null==(e=p.isAccessibleLoaded)?void 0:e.call(p)))try{await (null==p||null==(o=p.ensureAccessibleLoaded)?void 0:o.call(p))}catch(e){t&&u(!0);return}if(!t||c.current)return;if(C){let e=null==p||null==(i=p.getRouteBySchemaUid)?void 0:i.call(p,C);if((null==e?void 0:e.type)===et.q2.page){let t=te({app:n,route:e,layout:k,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===t.navigationMode&&t.runtimePath){c.current=!0,window.location.replace(t.runtimePath);return}}let l=e||null==p||null==(a=p.getRouteById)?void 0:a.call(p,C);if(!e&&(null==l?void 0:l.type)===et.q2.group){let e=te({app:n,route:l,layout:k});if(e.runtimePath)return(c.current=!0,"document"===e.navigationMode)?window.location.replace(e.runtimePath):r(e0(e.runtimePath,n.router.getBasename()),{replace:!0})}t&&u(!0);return}let s=e6((null==p||null==(l=p.listAccessible)?void 0:l.call(p))||[]);if(!s){t&&u(!0);return}let d=te({app:n,route:s,layout:k});if(!d.runtimePath){t&&u(!0);return}(c.current=!0,"document"===d.navigationMode)?window.location.replace(d.runtimePath):r(e0(d.runtimePath,n.router.getBasename()),{replace:!0})})(),()=>{t=!1,null==l||l()}},[n,o,F,M,k,a.hash,a.pathname,a.search,r,C,p]),d)?(0,m.jsx)(m.Fragment,{children:t}):null};class nM extends eg{refreshMenuRouteTree(){this.menuRouteRefreshVersion+=1}syncMenuRoutes(e){tQ(this,Array.isArray(e)?e:[])}toProLayoutRoute(e){let t=(this.subModels.menuItems||[]).map(t=>t.toProLayoutRoute({...e,depth:0})).filter(Boolean)||[];return e.designable&&(e.isMobile?t.push(t9("schema-initializer-Menu-header",this)):t.unshift(t9("schema-initializer-Menu-header",this))),{path:"/",children:t}}createRouteCoordinator(){return new tt(this.flowEngine,this.getRouteCoordinatorOptions())}render(){return(0,m.jsx)(nx,{model:this,children:(0,m.jsx)(nu,{...this.props,model:this})})}constructor(e){super(e),this.menuRouteRefreshVersion=0,(0,h.define)(this,{menuRouteRefreshVersion:h.observable.ref})}}function nw(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=ev(e,tl,{...t,use:t.use||nM});if(!l&&t.required)throw Error("[NocoBase] FlowRoute requires admin-layout-model. Please render FlowRoute under AdminLayout.");return l}function nS(e){let{flowEngine:t,pageUid:l,active:o,refreshDesktopRoutes:n,layoutContentRef:r,getLayoutModel:a}=e,s=a(t),d=(0,i.useRef)(o),u=(0,i.useRef)(n);if(!s)throw Error("[NocoBase] FlowRoute requires layout model. Please render FlowRoute under Layout.");return d.current=o,u.current=n,(0,i.useEffect)(()=>(s.registerRoutePage(l,{active:d.current??!1,refreshDesktopRoutes:u.current,layoutContentElement:r.current}),()=>{s.unregisterRoutePage(l)}),[s,l,r]),(0,i.useEffect)(()=>{s.updateRoutePage(l,{active:o,refreshDesktopRoutes:n,layoutContentElement:r.current})},[o,s,l,n,r]),s}nM.registerFlow({key:"topbarAction",steps:{step1:{handler:async(e,t)=>{let l=[...(await e.engine.getSubclassesOfAsync("TopbarActionModel")).keys()].map(t=>{let l=e.engine.createModel({use:t,uid:`topbar-action-${t}`});return l.setParent(e.model),l});e.model.props.actionsRender=e=>[(0,m.jsx)(nb,{actions:l,isMobile:null==e?void 0:e.isMobile},"topbar-actions")]}}}});let nk=e=>{e.context.defineProperty("deviceType",{get:()=>"browser"===__rspack_external_react_device_detect_2985bda2.deviceType?"computer":__rspack_external_react_device_detect_2985bda2.deviceType,cache:!1,meta:{type:"string",title:e.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:e.translate("Computer"),value:"computer"},{label:e.translate("Mobile"),value:"mobile"},{label:e.translate("Tablet"),value:"tablet"},{label:e.translate("SmartTv"),value:"smarttv"},{label:e.translate("Console"),value:"console"},{label:e.translate("Wearable"),value:"wearable"},{label:e.translate("Embedded"),value:"embedded"}],"x-component":"Select"}},info:{description:"Current device type (computer/mobile/tablet/...).",detail:"string"}})},nF=e=>nw(e,{required:!0}),nC=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.uid)?ev(e,l.uid,{required:!0}):nF(e)},nA=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.routeName)&&"admin"!==l.routeName?"notFound":"redirect"},nP=e=>(null==e?void 0:e.authCheck)!==!1,nT=(e,t)=>{if(Array.isArray(e))for(let l of e){if(l.type!==et.q2.group&&l.schemaUid===t||l.type===et.q2.group&&null!=l.id&&String(l.id)===t)return l;let e=nT(l.children,t);if(e)return e}},nj=(e,t)=>{var l,o;let n=null==e||null==(l=e.getRouteBySchemaUid)?void 0:l.call(e,t);return n&&n.type!==et.q2.group?n:nT(null==e||null==(o=e.listAccessible)?void 0:o.call(e),t)},nI=async(e,t)=>{var l;if(e.getModel(t))return!0;let o=await (null==(l=e.modelRepository)?void 0:l.findOne({uid:t}).catch(()=>null));if(null==o?void 0:o.uid)return!0;let n=await e.loadModel({uid:t}).catch(()=>null);return n&&e.getModel(t)===n&&e.removeModelWithSubModels(t),!!n},nL=e=>{let{pageUid:t,active:l,getLayoutModel:o}=e,n=(0,f.useFlowEngine)(),{active:r}=(0,lw.Y)(),a=n.context.routeRepository,s=i.default.useMemo(()=>null==a?void 0:a.refreshAccessible.bind(a),[a]),d=(0,i.useRef)(null);return(0,i.useEffect)(()=>{n.context.getPropertyOptions("deviceType")||nk(n)},[n]),nS({flowEngine:n,pageUid:t,active:l??r,refreshDesktopRoutes:s,layoutContentRef:d,getLayoutModel:o}),(0,m.jsx)("div",{ref:d})},nR=(e,t)=>{let l=e.getPublicPath(),o=window.location.pathname.startsWith(l)?window.location:t,n=o.pathname.startsWith(l)?o.pathname.slice(l.length):o.pathname.replace(/^\/+/,"");return`${eL(l)}${n}${o.search}${o.hash}`},nD=e=>{let{app:t,location:l}=e,{t:o}=(0,v.useTranslation)(),n=`/${eI()}/`,i=e=>e.replaceAll("{{modernClientPath}}",n);return(0,m.jsx)(b.Result,{status:"warning",title:i(o("This page is not supported in the {{modernClientPath}} branch")),subTitle:i(o("The {{modernClientPath}} branch only supports new pages. This page is a legacy page. Please open it from the original entry.")),extra:(0,m.jsx)(b.Button,{href:nR(t,l),type:"primary",children:o("Open from the original entry")})})},nE=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{active:t,getLayoutModel:l,legacyPageBehavior:o,pageUid:n}=e,r=(0,f.useFlowEngine)(),a=(0,f.useFlowContext)(),s=null==a?void 0:a.layout,d=(0,i.useMemo)(()=>null==l?void 0:l(r),[r,l]),u=s||(null==d?void 0:d.layout),c=null==u?void 0:u.uid,p=null==u?void 0:u.routeName,h=null==u?void 0:u.routePath,g=null==u?void 0:u.authCheck,v=(0,i.useMemo)(()=>{if(c||p||h||void 0!==g)return{authCheck:g,routeName:p,routePath:h,uid:c}},[g,p,h,c]),b=(0,i.useMemo)(()=>l||(e=>nC(e,v)),[l,v]),x=o||nA(r,v),M=(0,_.n)(),w=(0,y.useLocation)(),S=(0,y.useNavigate)(),k=r.context.routeRepository,F=(0,y.useParams)(),C=n||(null==F?void 0:F.name),A=void 0!==(null==F?void 0:F.tabUid)||void 0!==(null==F?void 0:F["*"]),P=!k,[T,j]=(0,i.useState)({pageUid:void 0,pending:!0,allowBridge:!1,notFound:!1}),I=(0,i.useRef)(!1),L=(0,i.useRef)(0);if(!C)throw Error("[NocoBase] FlowRoute requires pageUid or route.params.name.");return(0,i.useEffect)(()=>{I.current=!1},[w.hash,w.pathname,w.search,C]),(0,i.useEffect)(()=>{let e=!0,t=++L.current,l=nP(v);return(async()=>{var o,n,i,a;if(j({pageUid:C,pending:!0,allowBridge:!1,notFound:!1}),l&&!P&&!(null==k||null==(o=k.isAccessibleLoaded)?void 0:o.call(k)))try{await (null==k||null==(n=k.ensureAccessibleLoaded)?void 0:n.call(k))}catch(l){e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:!0,notFound:!1});return}if(!e||t!==L.current)return;let s=P||!l?void 0:nj(k,C);if(!s&&!P&&l)return j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0});if(!s&&"notFound"===x){let l=await nI(r,C);e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:l,notFound:!l});return}if((null==s?void 0:s.type)===et.q2.group){if(A)return j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0});let e=te({app:M,route:s,layout:v});return"emptyGroup"===e.reason?j({pageUid:C,pending:!1,allowBridge:!1,notFound:!1}):e.runtimePath?I.current?j({pageUid:C,pending:!1,allowBridge:!1,notFound:!1}):(I.current=!0,"document"===e.navigationMode)?window.location.replace(e.runtimePath):S(e0(e.runtimePath,null==(a=M.router)||null==(i=a.getBasename)?void 0:i.call(a)),{replace:!0}):j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0})}if((null==s?void 0:s.type)===et.q2.page){if("notFound"===x)return j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0});if("bridge"===x)return j({pageUid:C,pending:!1,allowBridge:!0,notFound:!1});let l=te({app:M,route:s,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===l.navigationMode&&l.runtimePath&&!I.current){I.current=!0,window.location.replace(l.runtimePath);return}if("unsupportedV2Runtime"===l.reason){e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:!1,notFound:!1,legacyPageUnsupported:!0});return}}e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:!0,notFound:!1})})(),()=>{e=!1}},[M,r,A,x,S,C,v,k,P]),(0,i.useMemo)(()=>T.pageUid!==C||T.pending?null:T.notFound?(0,m.jsx)(E.bM,{}):T.legacyPageUnsupported?(0,m.jsx)(nD,{app:M,location:w}):T.allowBridge?(0,m.jsx)(nL,{pageUid:C,active:t,getLayoutModel:b}):null,[t,M,b,T.allowBridge,T.legacyPageUnsupported,T.notFound,T.pageUid,T.pending,w,C])};nE.displayName="FlowRoute";let nY=nE,nN=e=>e.current,nO=e=>{let{layoutRouteName:t}=e,l=(0,_.n)(),o=(0,f.useFlowEngine)(),n=l.layoutManager.getLayout(t),r=(0,y.useLocation)(),a=(0,y.useMatches)(),s=ev(o,n.uid,{required:!0}),d="admin"===n.routeName?"redirect":"notFound",u=(0,i.useRef)(0),c=(0,i.useMemo)(()=>{let e=a[a.length-1],t=a.find(e=>e.id===n.routeName);return{id:null==e?void 0:e.id,name:null==e?void 0:e.id,pathname:r.pathname,state:r.state,params:(null==e?void 0:e.params)||{},layoutRouteName:n.routeName,layoutBasePathname:null==t?void 0:t.pathname}},[n.routeName,r.pathname,r.state,a]);if(!s)throw Error(`[NocoBase] Layout '${n.routeName}' model '${n.uid}' is not mounted.`);let p=s.resolveLayoutRoute(c),h=(0,i.useMemo)(()=>e=>ev(e,n.uid,{required:!0}),[n.uid]);return((0,i.useEffect)(()=>{let e=++u.current;return s.syncLayoutRoute(c),()=>{Promise.resolve().then(()=>{nN(u)===e&&s.clearLayoutRoute(c)}).catch(()=>{})}},[s,c]),"root"===p.type)?null:"notFound"===p.type?(0,m.jsx)(E.bM,{}):(0,m.jsx)(nY,{pageUid:p.pageUid,getLayoutModel:h,legacyPageBehavior:d})};var nB=__webpack_require__(1883);function nV(e){return(0,m.jsx)(b.Card,{...e,children:(0,m.jsx)(b.Skeleton,{paragraph:{rows:3}})})}let nH=e=>e.current;function nq(e){return e===eg||(0,f.isInheritedFrom)(e,eg)}function n$(e,t){if(!(e instanceof eg))throw Error(`[NocoBase] Layout '${t.routeName}' requires model '${t.uid}' to be an instance of BaseLayoutModel.`)}async function nz(e,t){let l=await e.getModelClassAsync(t.layoutModelClass);if(!l)throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' is not registered.`);if(!nq(l))throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' must extend BaseLayoutModel.`)}let nU=e=>{let{layoutRouteName:t}=e,l=(0,_.n)(),o=(0,f.useFlowEngine)(),n=l.layoutManager.getLayout(t),r=(0,y.useLocation)(),a=(0,y.useMatches)(),s=a[a.length-1],d=a.find(e=>e.id===n.routeName),u=JSON.stringify((null==s?void 0:s.params)||{}),c=(0,i.useMemo)(()=>JSON.parse(u),[u]),p=(0,i.useRef)(0),h=(0,i.useMemo)(()=>({id:null==s?void 0:s.id,name:null==s?void 0:s.id,pathname:r.pathname,state:r.state,params:c,layoutRouteName:n.routeName,layoutBasePathname:null==d?void 0:d.pathname}),[null==s?void 0:s.id,c,n.routeName,null==d?void 0:d.pathname,r.pathname,r.state]),{loading:g,data:v,error:b}=(0,nB.useRequest)(async()=>{let e=o.getModel(n.uid);if(e)return n$(e,n),e.setProps({layout:n}),e;await nz(o,n);let t=await o.createModelAsync({uid:n.uid,use:n.layoutModelClass,props:{layout:n}});return n$(t,n),t},{refreshDeps:[o,n]});if((0,i.useEffect)(()=>{if(!v)return;let e=++p.current;return v.syncLayoutRoute(h),()=>{Promise.resolve().then(()=>{nH(p)===e&&v.clearLayoutRoute(h)}).catch(()=>{})}},[v,h]),b)throw b;return g||!v?(0,m.jsx)(nV,{style:{margin:16}}):(0,m.jsx)(f.FlowModelRenderer,{model:v})},nK="RootPageModel",nG="ChildPageModel",nW=(e,t)=>{if("string"!=typeof e||""===e.trim())throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a non-empty string.`)},nJ=(e,t)=>{if("string"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a string.`)},nX=(e,t)=>{void 0!==e&&nW(e,t)},nQ=(e,t)=>{if(void 0!==e&&"boolean"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a boolean.`)};function nZ(e){if(e.includes("..")||e.startsWith(".")||e.endsWith("."))throw Error(`[NocoBase] layoutManager.registerLayout() received invalid routeName '${e}'.`)}function n0(e,t){let l=t.trim(),o=e.includes(".");if(o&&l.startsWith("/"))throw Error(`[NocoBase] nested layout routePath '${t}' must be relative.`);let n=o?l.replace(/^\/+/,"").replace(/\/+$/,""):`/${l.replace(/^\/+/,"").replace(/\/+$/,"")}`;if(!o&&(!n||"/"===n))throw Error("[NocoBase] layoutManager.registerLayout() does not support root routePath '/'.");if(n.includes("*"))throw Error(`[NocoBase] layoutManager.registerLayout() does not support wildcard routePath '${t}'.`);return n}function n1(e){nW(e.routeName,"routeName"),nJ(e.routePath,"routePath"),nW(e.uid,"uid"),nW(e.layoutModelClass,"layoutModelClass"),nX(e.rootPageModelClass,"rootPageModelClass"),nX(e.childPageModelClass,"childPageModelClass"),nQ(e.authCheck,"authCheck"),nZ(e.routeName);let t=n0(e.routeName,e.routePath);return{routeName:e.routeName,rootRouteName:e.routeName.split(".")[0],routePath:t,uid:e.uid,layoutModelClass:e.layoutModelClass,rootPageModelClass:e.rootPageModelClass||nK,childPageModelClass:e.childPageModelClass||nG,authCheck:e.authCheck??!0}}class n2{registerLayout(e){let t=n1(e);if(this.layouts.has(t.routeName))throw Error(`[NocoBase] Layout '${t.routeName}' has already been registered.`);let l=this.uidIndex.get(t.uid);if(l)throw Error(`[NocoBase] Layout uid '${t.uid}' has already been registered by '${l}'.`);return this.layouts.set(t.routeName,t),this.uidIndex.set(t.uid,t.routeName),this.addStandardRoutes(t),t}getLayout(e){let t=this.layouts.get(e);if(!t)throw Error(`[NocoBase] Layout '${e}' is not registered.`);return t}hasLayout(e){return this.layouts.has(e)}listLayouts(){return Array.from(this.layouts.values())}addStandardRoutes(e){let t=e.routeName,l=e.authCheck,o=!1===l;this.app.router.add(t,{path:e.routePath,authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nU,{layoutRouteName:e.routeName})}),this.app.router.add(el(t),{path:":name",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})}),this.app.router.add(eo(t),{path:":name/tab/:tabUid",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})}),this.app.router.add(en(t),{path:":name/view/*",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})}),this.app.router.add(ei(t),{path:":name/tab/:tabUid/view/*",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})})}constructor(e){this.layouts=new Map,this.uidIndex=new Map,this.app=e}}class n5{activateLayout(e){let t=this.normalizeLayoutUid(null==e?void 0:e.uid),l=Symbol("route-layout");return this.layoutActivations.push({token:l,uid:t}),this.syncRoutesProperty(),()=>{let e=this.layoutActivations.findIndex(e=>e.token===l);e>=0&&this.layoutActivations.splice(e,1),this.syncRoutesProperty()}}setRoutes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getCurrentLayoutUid(),l=this.getRouteCache(t);l.routes=e,l.accessibleLoaded=!0,t===this.getCurrentLayoutUid()&&(this.routes=e),this.emitChange(t)}listAccessible(){let e=this.getRouteCache(this.getReadableLayoutUid()).routes;return this.routes=e,e}isAccessibleLoaded(){return this.getRouteCache().accessibleLoaded}async refreshAccessible(){let e=this.getCurrentLayoutUid();return this.refreshAccessibleByLayout(e)}async refreshAccessibleByLayout(e){var t;let l=this.nextRefreshRequestId(e),o=await this.getAPIClient().request({url:"/desktopRoutes:listAccessible",params:{tree:!0,sort:"sort",layout:e}}),n=(null==o||null==(t=o.data)?void 0:t.data)||[];return l===this.getRefreshRequestId(e)&&this.setRoutes(n,e),n}async ensureAccessibleLoaded(){let e=this.getCurrentLayoutUid(),t=this.getRouteCache(e);if(t.accessibleLoaded)return this.routes=t.routes,t.routes;let l=this.accessibleLoadingPromises.get(e);if(l)return l;let o=this.refreshAccessibleByLayout(e).finally(()=>{this.accessibleLoadingPromises.get(e)===o&&this.accessibleLoadingPromises.delete(e)});return this.accessibleLoadingPromises.set(e,o),o}subscribe(e){return this.subscribers.set(e,this.getCurrentLayoutUid()),()=>{this.subscribers.delete(e)}}unsubscribe(e){this.subscribers.delete(e)}async createRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").create({values:e,layout:this.getCurrentLayoutUid()});return l&&await this.refreshAccessible(),o}async updateRoute(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{refreshAfterMutation:o=!0}=l,n=await this.getResource("desktopRoutes").update(Array.isArray(e)?{filter:{id:{$in:e}},values:t}:{filterByTk:e,values:t});return o&&await this.refreshAccessible(),n}async deleteRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").destroy({filterByTk:e});return l&&await this.refreshAccessible(),o}async moveRoute(e){let{refreshAfterMove:t=!0,...l}=e,o=await this.getResource("desktopRoutes").move(l);return t&&await this.refreshAccessible(),o}getRouteBySchemaUid(e){return this.findRoute(this.listAccessible(),e)}getRouteById(e){return this.findRouteById(this.listAccessible(),e)}getAPIClient(){var e;if(!(null==(e=this.ctx)?void 0:e.api))throw Error("[NocoBase] RouteRepository requires context.api.");return this.ctx.api}getResource(e){return this.getAPIClient().resource(e)}emitChange(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getCurrentLayoutUid();this.subscribers.forEach((t,l)=>{if(t!==e)return;let o=this.notifiedLayoutUid;this.notifiedLayoutUid=e;try{l()}finally{this.notifiedLayoutUid=o}})}getCurrentLayoutUid(){var e;return(null==(e=this.layoutActivations[this.layoutActivations.length-1])?void 0:e.uid)||tl}normalizeLayoutUid(e){return"string"==typeof e&&e.trim()?e:tl}getReadableLayoutUid(){return this.notifiedLayoutUid||this.getCurrentLayoutUid()}getRouteCache(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getCurrentLayoutUid(),t=this.routeCaches.get(e);return t||(t={accessibleLoaded:!1,routes:[]},this.routeCaches.set(e,t)),t}syncRoutesProperty(){this.routes=this.getRouteCache().routes}nextRefreshRequestId(e){let t=this.getRefreshRequestId(e)+1;return this.refreshRequestIds.set(e,t),t}getRefreshRequestId(e){return this.refreshRequestIds.get(e)||0}findRoute(e,t){for(let l of e){if(l.schemaUid===t)return l;if(l.children){let e=this.findRoute(l.children,t);if(e)return e}}}findRouteById(e,t){for(let l of e){if(null!=l.id&&String(l.id)===String(t))return l;if(l.children){let e=this.findRouteById(l.children,t);if(e)return e}}}constructor(e){this.ctx=e,this.routes=[],this.subscribers=new Map,this.accessibleLoadingPromises=new Map,this.layoutActivations=[],this.routeCaches=new Map,this.refreshRequestIds=new Map}}class n8{getURL(){if(!this.app)return;let e=this.app.getApiUrl();if(!e)return;let t="";if(this.getSubAppName(this.app))t=`?_app=${this.getSubAppName(this.app)}`;else{let e=(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.app.getPublicPath());t=e?`?__appName=${e}`:""}let l=this.options.basename||"/ws";if(this.options.url){let e=new URL(this.options.url);if("localhost"===e.hostname){let o="https:"===location.protocol?"wss":"ws";return`${o}://${location.hostname}:${e.port}${l}${t}`}return`${this.options.url}${t}`}try{let o=new URL(e);return`${"https:"===o.protocol?"wss":"ws"}://${o.host}${l}${t}`}catch(e){return`${"https:"===location.protocol?"wss":"ws"}://${location.host}${l}${t}`}}get reconnectAttempts(){var e;return(null==(e=this.options)?void 0:e.reconnectAttempts)||30}get reconnectInterval(){var e;return(null==(e=this.options)?void 0:e.reconnectInterval)||1e3}get pingInterval(){var e;return(null==(e=this.options)?void 0:e.pingInterval)||3e5}get readyState(){return this._ws?this._ws.readyState:-1}createWebSocket(){return new WebSocket(this.getURL(),this.options.protocols)}connect(){let e;if(!this.enabled||(0===this._reconnectTimes&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts||this.readyState===WebSocket.OPEN))return;this._reconnectTimes++;let t=this.createWebSocket();t.onopen=()=>{for(let{type:e,listener:l,options:o}of(console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t,this.events))this._ws.addEventListener(e,l,o);e=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=async()=>{console.log("onerror",this.readyState,this._reconnectTimes)},t.onclose=async t=>{setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(e)}}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(e){if(this._ws)return this._ws.send(e)}on(e,t,l){this.events.push({type:e,listener:t,options:l}),this._ws&&this._ws.addEventListener(e,t,l)}emit(e,t){for(let l of this.events)l.type===e&&l.listener(t)}off(e,t,l){let o=0;for(let l of this.events){if(l.type===e&&l.listener===t){this.events.splice(o,1);break}o++}this._ws&&this._ws.removeEventListener(e,t,l)}removeAllListeners(){if(this._ws)for(let{type:e,listener:t,options:l}of this.events)this._ws.removeEventListener(e,t,l)}constructor(e){if(this._reconnectTimes=0,this.events=[],this.connected=!1,this.serverDown=!1,this.lastMessage={},this.getSubAppName=e=>{let t=e.getPublicPath(),l=`^${t}_app/([^/]*)/`,o=location.pathname.match(new RegExp(l));return o?o[1]:null},!e){this.enabled=!1;return}this.options=!0===e?{}:e,this.enabled=!0,(0,h.define)(this,{serverDown:h.observable.ref,connected:h.observable.ref,lastMessage:h.observable.ref})}}function n4(){"use strict";function e(e){for(var t=[],l=0,o=e.length;l<o;l++)-1===t.indexOf(e[l])&&t.push(e[l]);return t}function t(e,t){return JSON.stringify(e)===JSON.stringify(t)}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var l={},o={$is:function(e,t){return e===t},$match:function(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>(null==e?void 0:e.length)===t.length&&(null==e?void 0:e.every((e,l)=>e===t[l]))):JSON.stringify(e)===JSON.stringify(t)},$eq:function(e,l){return Array.isArray(e)&&Array.isArray(l)?t(e,l):Array.isArray(e)?e.includes(l):e==l},$ne:function(e,t){return e!=t},"!==":function(e,t){return e!==t},$gt:function(e,t){return Array.isArray(e)?e.some(e=>e>t):e>t},$gte:function(e,t){return e>=t},$lt:function(e,t,l){return Array.isArray(e)?e.some(e=>e<t):void 0===l?e<t:e<t&&t<l},$lte:function(e,t,l){return void 0===l?e<=t:e<=t&&t<=l},$exists:function(e){return l.truthy(e)},$notEmpty:function(e){return!o.$empty(e)},$empty:function(e){return Array.isArray(e)||"string"==typeof e?0===e.length:null==e},$notExists:function(e){return!l.truthy(e)},"%":function(e,t){return e%t},log:function(e){return e},$in:function(e,t){return!!t&&void 0!==t.indexOf&&(Array.isArray(e)&&Array.isArray(t)?t.some(t=>e.includes(t)):-1!==t.indexOf(e))},$notIn:function(e,t){return!!t&&void 0!==t.indexOf&&-1===t.indexOf(e)},$includes:function(e,t){return!!e&&void 0!==e.indexOf&&(Array.isArray(e)?e.some(e=>null==e?void 0:e.includes(t)):-1!==e.indexOf(t))},$notIncludes:function(e,t){return Array.isArray(e)?!e.some(e=>(e||"").includes(t)):!(e=e||"").includes(t)},$anyOf:function(e,t){return null!=e&&0!==e.length&&(Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>e.some(e=>t.includes(e))):e.some(e=>t.includes(e)))},$noneOf:function(e,t){return!e||0===e.length||!t||0===t.length||(Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),!t.some(t=>e.includes(t)))},$notMatch:function(e,t){if((null==e?void 0:e.length)!==(null==t?void 0:t.length))return!0;for(let l=0;l<((null==e?void 0:e.length)||0);l++)if((null==e?void 0:e[l])!==(null==t?void 0:t[l]))return!0;return!1},$dateOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t))return o.$dateBetween(e,t);let l=ie(e),n=ie(t);return!!l&&!!n&&l.getTime()===n.getTime()},$dateBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ie(e),o=ie(t);return!!l&&!!o&&l.getTime()<o.getTime()},$dateNotBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ie(e),o=ie(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()>=o.getTime()},$dateAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ie(e),o=ie(t);return l.getTime()>o.getTime()},$dateNotAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ie(e),o=ie(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()<=o.getTime()},$dateBetween:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t));let l=ie(e),o=n3(t[0]),n=n3(t[1]);if(!l||!o||!n)throw Error("Invalid date format");return l.getTime()>=o.getTime()&&l.getTime()<=n.getTime()},$dateNotOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t))return!o.$dateBetween(e,t);let l=ie(e),n=ie(t);return l.getTime()!==n.getTime()},$isTruly:function(e){return Array.isArray(e)?e.some(e=>!0===e||1===e):!0===e||1===e},$isFalsy:function(e){return Array.isArray(e)?e.some(e=>!l.truthy(e)):!l.truthy(e)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(e,t,l){if(l<0){var o=String(e).substr(t);return o.substr(0,o.length+l)}return String(e).substr(t,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)+parseFloat(t,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)*parseFloat(t,10)})},"-":function(e,t){return void 0===t?-e:e-t},"/":function(e,t){return e/t},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(e,t){return e.concat(t)},[])},var:function(e,t){var l=void 0===t?null:t,o=this;if(void 0===e||""===e||null===e)return o;for(var n=String(e).split("."),i=0;i<n.length;i++)if(null==o||void 0===(o=o[n[i]]))return l;return o},missing:function(){for(var e=[],t=Array.isArray(arguments[0])?arguments[0]:arguments,o=0;o<t.length;o++){var n=t[o],i=l.apply({var:n},this);(null===i||""===i)&&e.push(n)}return e},missing_some:function(e,t){var o=l.apply({missing:t},this);return t.length-o.length>=e?[]:o}};return l.is_logic=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&1===Object.keys(e).length&&!e.type},l.truthy=function(e){return(!Array.isArray(e)||0!==e.length)&&!!e},l.getOperator=function(e){return Object.keys(e)[0]},l.getValues=function(e){return e[l.getOperator(e)]},l.apply=function(e,t){if(Array.isArray(e))return e.map(function(e){return l.apply(e,t)});if(!l.is_logic(e))return e;var n,i,r,a,s,d=l.getOperator(e),u=e[d];if(Array.isArray(u)||(u=[u]),"if"===d||"?:"==d){for(n=0;n<u.length-1;n+=2)if(l.truthy(l.apply(u[n],t)))return l.apply(u[n+1],t);return u.length===n+1?l.apply(u[n],t):null}if("$and"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),l.truthy(i));n+=1);return i}if("or"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),!l.truthy(i));n+=1);return i}if("filter"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.filter(function(e){return l.truthy(l.apply(r,e))}):[];if("map"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.map(function(e){return l.apply(r,e)}):[];else if("reduce"===d)return(a=l.apply(u[0],t),r=u[1],s=void 0!==u[2]?u[2]:null,Array.isArray(a))?a.reduce(function(e,t){return l.apply(r,{current:t,accumulator:e})},s):s;else if("all"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(!l.truthy(l.apply(r,a[n])))return!1;return!0}else if("none"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!0;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!1;return!0}else if("some"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!0;return!1}if(u=u.map(function(e){return l.apply(e,t)}),Object.prototype.hasOwnProperty.call(o,d)&&"function"==typeof o[d])return o[d].apply(t,u);if(d.indexOf(".")>0){var c=String(d).split("."),p=o;for(n=0;n<c.length;n++){if(!Object.prototype.hasOwnProperty.call(p,c[n]))throw Error("Unrecognized operation "+d+" (failed at "+c.slice(0,n+1).join(".")+")");p=p[c[n]]}return p.apply(t,u)}throw Error("Unrecognized operation "+d)},l.uses_data=function(t){var o=[];if(l.is_logic(t)){var n=l.getOperator(t),i=t[n];Array.isArray(i)||(i=[i]),"var"===n?o.push(i[0]):i.forEach(function(e){o.push.apply(o,l.uses_data(e))})}return e(o)},l.addOperation=function(e,t){o[e]=t},l.rmOperation=function(e){delete o[e]},l.rule_like=function(e,t){if(t===e||"@"===t)return!0;if("number"===t)return"number"==typeof e;if("string"===t)return"string"==typeof e;if("array"===t)return Array.isArray(e)&&!l.is_logic(e);if(l.is_logic(t)){if(l.is_logic(e)){var o=l.getOperator(t),n=l.getOperator(e);if("@"===o||o===n)return l.rule_like(l.get_values(e,!1),l.get_values(t,!1))}return!1}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(var i=0;i<t.length;i+=1)if(!l.rule_like(e[i],t[i]))return!1;return!0}return!1},l}function n3(e){return new Date(e.includes("T")&&e.endsWith("Z")?e:e.includes(" ")?e.replace(" ","T"):`${e}T00:00:00`)}function n6(e){let[t,l]=e.split("-").map(Number);return new Date(t,l-1)}function n9(e){return new Date(parseInt(e.slice(0,4)),(parseInt(e.slice(5,6))-1)*3)}function n7(e){return new Date(parseInt(e),0)}function ie(e){let t=Array.isArray(e)?e[1]??e[0]:e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(t))return new Date(t);if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(t))return new Date(t.replace(" ","T"));if(/^\d{4}-\d{2}-\d{2}$/.test(t))return n3(t);if(/^\d{4}-\d{2}$/.test(t))return n6(t);if(/^\d{4}Q[1-4]$/.test(t))return n9(t);else if(/^\d{4}$/.test(t))return n7(t);return null}var it=__webpack_require__(2741),il=__webpack_require__(6220),io=__webpack_require__(7404),ii=__webpack_require__(8198);function ir(e,t,l){e.define(t,()=>l),window.__nocobase_app_dev__&&(window.__nocobase_app_dev_deps__=window.__nocobase_app_dev_deps__||{},window.__nocobase_app_dev_deps__[t]=l)}function ia(e){ir(e,"react",i.default),ir(e,"react-dom",ll.default),ir(e,"react/jsx-runtime",m.default),ir(e,"react-router",__rspack_external_react_router_65608a1a),ir(e,"react-router-dom",y),ir(e,"antd",b),ir(e,"@ant-design/icons",to),ir(e,"@ant-design/cssinjs",__rspack_external__ant_design_cssinjs_c619260f),ir(e,"antd-style",__rspack_external_antd_style_1dcbd21e),ir(e,"i18next",__rspack_external_i18next),ir(e,"react-i18next",v),ir(e,"@formily/antd-v5",il),ir(e,"@formily/core",__rspack_external__formily_core_1e27a7e0),ir(e,"@formily/react",lj),ir(e,"@formily/reactive",h),ir(e,"@formily/shared",io),ir(e,"@nocobase/utils",I),ir(e,"@nocobase/utils/client",I),ir(e,"@nocobase/client-v2",n),ir(e,"@nocobase/client-v2/client-v2",n),ir(e,"@nocobase/flow-engine",f),ir(e,"@nocobase/evaluators",__rspack_external__nocobase_evaluators_client_1caf2629),ir(e,"@nocobase/evaluators/client",__rspack_external__nocobase_evaluators_client_1caf2629),ir(e,"@dnd-kit/core",lt),ir(e,"@dnd-kit/sortable",ii),ir(e,"@ctrl/tinycolor",it),ir(e,"ahooks",nB),ir(e,"axios",__rspack_external_axios.default),ir(e,"dayjs",I.dayjs),ir(e,"lodash",g.default),ir(e,"@emotion/css",A),ir(e,"file-saver",__rspack_external_file_saver_8b74c2e4)}var is=__webpack_require__(6104);let id=/^\/+/,iu=/\/+$/,ic=e=>{let t=id.exec(e);return t?e.slice(t[0].length):e},ip=e=>{let t=iu.exec(e);return t?e.slice(0,-t[0].length):e},im=e=>`${ip(e)}/`,ih=e=>(0,__rspack_external_react_is_98317e95.isValidElementType)(e);class ig{get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}setDocumentLanguage(e){"u">typeof document&&(e?document.documentElement.lang=e:document.documentElement.removeAttribute("lang"))}defineObservableState(){(0,h.define)(this,{maintained:h.observable.ref,maintaining:h.observable.ref,error:h.observable.ref,apps:h.observable})}initializeExtendedState(){this.systemSettings=new N.o(this.apiClient)}afterManagersInitialized(){this.aiManager=new R(this),this.jsonLogic=n4()}configureContext(){}configureRuntimeAdapters(){}addCustomProviders(){}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",e=>{let t=e.detail;(null==t?void 0:t.token)&&this.setTokenInWebSocket(t)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(e){let{token:t,authenticator:l}=e;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:t,authenticator:l}}))}initRequireJs(){if(void 0===globalThis.window)return;let e=globalThis.window;if(e.requirejs){this.requirejs=e.requirejs;return}e.requirejs=this.requirejs=(0,is.b)(),ia(this.requirejs),e.define=this.requirejs.define}configureBaseContext(){this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.flowEngine.context.defineProperty("routeRepository",{value:new n5(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:async()=>{var e;return(null==(e=(await this.apiClient.request({url:"app:getInfo"})).data)?void 0:e.data)||{}}}),this.flowEngine.context.defineProperty("pageInfo",{value:(0,h.observable)({version:void 0})}),this.flowEngine.context.defineProperty("systemSettings",{get:()=>this.systemSettings})}addBaseProviders(){this.use(v.I18nextProvider,{i18n:this.i18n}),this.use(f.FlowEngineProvider,{engine:this.flowEngine}),this.use(j),this.use(w)}addFinalProviders(){this.use(f.FlowEngineGlobalsContextProvider)}addReactRouterComponents(){this.addComponents({Link:y.Link,Navigate:y.Navigate,NavLink:y.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:()=>null})}updateFavicon(e){let t=document.querySelector('link[rel="shortcut icon"]');arguments.length>0&&(this.favicon=e||"");let l=this.favicon||this.getCdnUrl()+"favicon/favicon.ico";t?t.href=l:((t=document.createElement("link")).rel="shortcut icon",t.href=l,document.head.appendChild(t))}setWsAuthorized(e){this.wsAuthorized=e}setMaintaining(e){this.maintaining!==e&&(this.maintaining=e,e||this.eventBus.dispatchEvent(new Event("maintaining:end")))}getOptions(){return this.options}getName(){return(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.getPublicPath())||null}getCdnUrl(){return im(window.__webpack_public_path__||eL(this.getPublicPath()))}getPublicPath(){return im(this.options.publicPath||"/")}getApiUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.apiClient.axios.defaults.baseURL??"";if(!t.startsWith("http://")&&!t.startsWith("https://")){let{protocol:e,host:l}=globalThis.window.location;t=`${e}//${l}${t}`}return`${ip(t)}/${ic(e)}`}getRouteUrl(e){return this.getPublicPath()+ic(e)}getHref(e){let t=this.name;return t&&"main"!==t?`${this.getPublicPath()}apps/${t}/${ic(e)}`:this.getPublicPath()+ic(e)}getComposeProviders(){let e=lB(...this.providers)(E.ct);return e.displayName="Providers",e}use(e,t){return this.addProvider(e,t)}addProvider(e,t){return this.providers.push([e,t])}addProviders(e){e.forEach(e=>{Array.isArray(e)?this.addProvider(e[0],e[1]):this.addProvider(e)})}getComponent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],l=e=>t&&console.error(e);if(!e)return void l(`getComponent called with ${e}`);if("string"==typeof e){let t=(0,g.get)(this.components,e);return t||void l(`Component ${e} not found`)}if(ih(e))return e;l(`Component ${e} should be a string or a React component`)}renderComponent(e,t,l){let o=this.getComponent(e);return o?i.default.createElement(o,t,l):null}addComponent(e,t){let l=e,o=t||l.displayName||l.name;o?(0,g.set)(this.components,o,e):console.error("Component must have a displayName or pass name as second argument")}addComponents(e){Object.keys(e).forEach(t=>{this.addComponent(e[t],t)})}setAppsComponent(e){let{Component:t}=e;this.apps.Component=t}setAppsProvider(e){let{loadAppList:t}=e;this.apps.loadAppList=t}getRootFallback(){return this.renderComponent("AppSpin")}getRootComponent(){let e=this.model,t=this.flowEngine,l=()=>this.getRootFallback();return o=>{let{children:n}=o;return(0,i.useLayoutEffect)(()=>{e.setProps({children:n})},[n]),(0,m.jsx)(f.FlowEngineProvider,{engine:t,children:(0,m.jsx)(f.FlowModelRenderer,{fallback:l(),model:e})})}}mount(e){let t=lO(e);if(t){let e=this.getRootComponent(),l=(0,__rspack_external_react_dom_client_76b1397c.createRoot)(t);return l.render((0,m.jsx)(e,{})),l}}createLayoutManager(e){return new n2(this)}createWebSocketClient(e){return new n8(e.ws??!1)}getDefaultComponents(){return{AppNotFound:E.bM,AppError:E.uV,AppSpin:E.gv,AppMaintaining:E.be,AppMaintainingDialog:E.tp}}constructor(e={}){this.options=e,this.eventBus=new EventTarget,this.providers=[],this.scopes={},this.components={},this.entryActionManager=new Y,this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null,loadAppList:null},this.initRequireJs(),this.defineObservableState(),this.devDynamicImport=e.devDynamicImport,this.scopes=(0,g.merge)(this.scopes,e.scopes),this.components=(0,g.merge)(this.getDefaultComponents(),e.components),this.name=this.options.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)||"main",this.apiClient=this.createApiClient(e),this.initializeExtendedState(),this.i18n=this.createI18n(e),this.router=this.createRouterManager(e),this.layoutManager=this.createLayoutManager(e),this.pluginManager=this.createPluginManager(e),this.flowEngine=new f.FlowEngine,this.flowEngine.registerModels({ApplicationModel:i_}),this.model=this.flowEngine.createModel({use:"ApplicationModel",uid:"__app_model__"}),this.context=this.flowEngine.context,this.configureRuntimeAdapters(),this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.configureBaseContext(),this.configureContext(),this.addBaseProviders(),this.addCustomProviders(),this.addFinalProviders(),this.addReactRouterComponents(),this.addProviders(e.providers||[]),this.ws=this.createWebSocketClient(e),this.ws.app=this,this.pluginSettingsManager=this.createPluginSettingsManager(e),this.addRoutes(),this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e,this.setDocumentLanguage(e)}),this.initListeners(),this.afterManagersInitialized()}}var iv=new WeakMap,iy=new WeakMap;class i_ extends f.FlowModel{get app(){return this.context.app}getProviders(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,iv,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iv)||this.app.getComposeProviders()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iv)}getRouter(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,iy,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iy)||this.app.router.getRouterComponent()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iy)}render(){return this.app.maintaining&&!this.app.maintained?(0,m.jsx)(m.Fragment,{children:this.renderMaintaining()}):this.app.error&&!this.app.maintaining?(0,m.jsx)(m.Fragment,{children:this.renderError()}):(0,m.jsxs)(m.Fragment,{children:[this.renderContent(),this.app.maintaining&&this.app.maintained?this.renderMaintainingDialog():null]})}renderMaintaining(){return this.app.renderComponent("AppMaintaining",{app:this.app,error:this.app.error})}renderMaintainingDialog(){return this.app.renderComponent("AppMaintainingDialog",{app:this.app,error:this.app.error})}renderError(){return this.app.renderComponent("AppError",{app:this.app,error:this.app.error})}renderContent(){let e=this.app.getComponent("AppError",!1),t=this.getRouter(),l=this.getProviders(),o=(0,m.jsx)(t,{BaseLayout:l});if(!e)return o;let n=(e,t)=>{var l;console.error(e);let o=null==(l=t.componentStack)?void 0:l.trim();if(!o)return;let n=Error("React component stack");n.stack=o,console.error(n)};return(0,m.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:t=>(0,m.jsx)(e,{app:this.app,...t}),onError:n,children:o})}constructor(...e){super(...e),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,iv,{writable:!0,value:void 0}),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,iy,{writable:!0,value:void 0})}}i_.registerFlow({key:"appFlow",steps:{init:{async handler(e){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}});let ib=[{label:'{{t("contains")}}',value:"$includes",selected:!0},{label:'{{t("does not contain")}}',value:"$notIncludes"},{label:'{{t("is")}}',value:"$eq"},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],ix=[{label:'{{t("is")}}',value:"$match",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is not")}}',value:"$notMatch",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is any of")}}',value:"$anyOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$noneOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],iM=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"}],iw=[{label:"{{ t('is') }}",value:"$dateOn",selected:!0,schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is not') }}",value:"$dateNotOn",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is before') }}",value:"$dateBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is after') }}",value:"$dateAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or after') }}",value:"$dateNotBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or before') }}",value:"$dateNotAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is between') }}",value:"$dateBetween",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!0}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],iS=[{label:'{{t("=")}}',value:"$eq",selected:!0},{label:'{{t("≠")}}',value:"$ne"},{label:'{{t(">")}}',value:"$gt"},{label:'{{t("≥")}}',value:"$gte"},{label:'{{t("<")}}',value:"$lt"},{label:'{{t("≤")}}',value:"$lte"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],ik=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("exists")}}',value:"$exists",noValue:!0},{label:'{{t("not exists")}}',value:"$notExists",noValue:!0}],iF=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],iC=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$neq"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],iA=[{label:'{{t("Yes")}}',value:"$isTruly",selected:!0,noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:'{{t("No")}}',value:"$isFalsy",noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],iP=[{label:'{{t("is any of")}}',value:"$childIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$childNotIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}}],iT=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],ij=[{label:'{{t("contains")}}',value:"$includes",selected:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("does not contain")}}',value:"$notIncludes",schema:{type:"string","x-component":"Input"}},{label:'{{t("is")}}',value:"$eq",schema:{type:"string","x-component":"Input"}},{label:'{{t("is not")}}',value:"$ne",schema:{type:"string","x-component":"Input"}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0,schema:{type:"string","x-component":"Input"}}];class iI{register(e){return this.operators[e.value]=e,this}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.forEach(e=>{this.register(e)}),this}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]=l,this}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]||(this.groups[e]=[]),l.forEach(t=>{this.groups[e].some(e=>e.value===t.value)||this.groups[e].push(t)}),this}get(e){return this.operators[e]}getGroup(e){return this.groups[e]||[]}getGroups(){return this.groups}resolveOperators(e){return e?"string"==typeof e?this.getGroup(e):e:[]}resolveOperatorReferences(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(e=>"string"==typeof e?this.get(e):e).filter(e=>!!e)}constructor(e={}){this.operators={},this.groups={},Object.entries(e).forEach(e=>{let[t,l]=e;this.registerGroup(t,l)})}}let iL=new iI(e),iR=iL.getGroups(),iD=iR;function iE(e){return iL.resolveOperators(e)}function iY(e){if(!e)return e;let t=Array.isArray(e.operatorOverrides)?e.operatorOverrides:[];e.operatorGroup&&(e.operators=iN(iE(e.operatorGroup),t));let l=e.operators;return"string"==typeof l?(e.operatorGroup=l,e.operators=iN(iE(l),t)):Array.isArray(l)?e.operators=iN(l,t):t.length>0&&(e.operators=[...t]),Array.isArray(e.children)&&e.children.forEach(e=>{e&&"object"==typeof e&&iY(e)}),e}function iN(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0===t.length)return e;let l=[...e];return t.forEach(e=>{let t=l.findIndex(t=>t.value===e.value);-1===t?l.push(e):l[t]=e}),l}function iO(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...t,operatorGroup:e,operators:iE(e)}}function iB(e,t){return{operators:e.flatMap(e=>{let{types:l,operators:o}=e;return iE(o).map(e=>({...e,visible:o=>{let n=l.includes(t(o));return"function"==typeof e.visible?e.visible(o)&&n:n}}))})}}let iV="CollectionSelect",iH=new Set(["name","uiSchema.title"]),iq=new Set(["Grid","Grid.Row","Grid.Col","div"]);function i$(e){return{...e.context,...e.values}}function iz(e,t){if("boolean"==typeof e)return e;if("string"!=typeof e)return!1;let l=e.replace(/^\s*\{\{\s*/,"").replace(/\s*\}\}\s*$/,""),o=i$(t),n=e=>{let t=e.trim().replace(/^\$/,"");if(!t)return!1;if(t.startsWith("!"))return!n(t.slice(1).trim());if("true"===t)return!0;if("false"===t)return!1;let l=t.match(/^([A-Za-z_$][\w$]*)\((.*)\)$/);if(l){let[,e,t]=l,n=(0,g.get)(o,e);return"function"==typeof n&&!!n(...t.split(",").map(e=>e.trim()).filter(Boolean).map(e=>e.replace(/^['"]|['"]$/g,"")))}return!!(0,g.get)(o,t)};return l.split("||").some(e=>e.split("&&").every(e=>n(e)))}function iU(e){return"string"==typeof e?t=>iz(e,t):e}function iK(e){return(null==e?void 0:e["x-hidden"])!==void 0?iU(e["x-hidden"]):(null==e?void 0:e["x-visible"])!==void 0?t=>!iz(e["x-visible"],t):void 0}function iG(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2?arguments[2]:void 0;return Object.entries(e||{}).flatMap(e=>{let[o,n]=e,i=t?`${t}.${o}`:o,r=null==n?void 0:n.properties,a=null==n?void 0:n["x-component"];if(r&&"Grid.Row"===a){let e=Object.entries(r).filter(e=>{let[,t]=e;return(null==t?void 0:t["x-component"])==="Grid.Col"}),l=e.length>0?Math.floor(24/e.length):24;return e.flatMap((e,o)=>{let[n,r]=e;return iG((null==r?void 0:r.properties)||{},t,{row:i,column:n,columnIndex:o,span:l})})}return r&&(!a||iq.has(a))?iG(r,t,l):[{name:i,schema:n,layout:l}]})}function iW(e,t){return!iH.has(e)&&(!!(null==t?void 0:t["x-component"])||(null==t?void 0:t.default)!==void 0||(null==t?void 0:t["x-hidden"])!==void 0)}function iJ(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return iG(e).filter(e=>{let{name:t,schema:l}=e;return iW(t,l)}).map(e=>{var l;let{name:o,schema:n,layout:i}=e,r=null==n?void 0:n["x-component"];return{name:o,title:(null==n?void 0:n.title)||(null==n?void 0:n["x-content"]),component:r,Component:r?null==(l=t.components)?void 0:l[r]:void 0,componentProps:null==n?void 0:n["x-component-props"],defaultValue:null==n?void 0:n.default,description:null==n?void 0:n.description,hidden:iK(n),disabled:iU(null==n?void 0:n["x-disabled"]),options:Array.isArray(null==n?void 0:n.enum)?n.enum:void 0,required:null==n?void 0:n.required,schema:n,layout:i}})}let iX=[{label:"MMMM Do YYYY",value:"MMMM Do YYYY"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"},{label:"MM/DD/YY",value:"MM/DD/YY"},{label:"YYYY/MM/DD",value:"YYYY/MM/DD"},{label:"DD/MM/YYYY",value:"DD/MM/YYYY"},{label:'{{t("Custom")}}',value:"custom"}],iQ=[{label:'{{t("12 hour")}}',value:"hh:mm:ss a"},{label:'{{t("24 hour")}}',value:"HH:mm:ss"}];function iZ(e){return(0,g.get)(e,"uiSchema.x-component-props.picker")||"date"}function i0(e){return(0,g.get)(e,"uiSchema.x-component-props.showTime")}function i1(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("unique"===e||"primaryKey"===e)return{disabled:!l.createMainOnly||!!l.primaryKeyOnly};if("autoIncrement"===e)return{disabled:!l.createMainOnly};if(e.startsWith("reverseField."))return{disabled:!l.showReverseFieldConfig,hidden:!l.showReverseFieldConfig};if("autoCreateReverseField"===e&&(0,g.get)(t,"reverseField.key"))return{disabled:!0};if("uiSchema.x-component-props.dateFormat"===e)return{componentProps:{picker:iZ(t)}};if("uiSchema.x-component-props.showTime"===e)return{hidden:"date"!==iZ(t)};if("uiSchema.x-component-props.timeFormat"===e)return{hidden:"date"!==iZ(t)||!1===i0(t)};if("defaultValue"===e){let e=!!(0,g.get)(t,"primaryKey")||!!(0,g.get)(t,"unique")||!!(0,g.get)(t,"autoIncrement")||!!(0,g.get)(t,"defaultToCurrentTime");return{hidden:e,...e?{value:null,hasValue:!0}:null,componentProps:{gmt:(0,g.get)(t,"uiSchema.x-component-props.gmt"),showTime:(0,g.get)(t,"uiSchema.x-component-props.showTime"),dateFormat:(0,g.get)(t,"uiSchema.x-component-props.dateFormat"),timeFormat:(0,g.get)(t,"uiSchema.x-component-props.timeFormat"),picker:(0,g.get)(t,"uiSchema.x-component-props.picker"),format:(0,g.get)(t,"uiSchema.x-component-props.format")},dataSource:(0,g.get)(t,"uiSchema.enum")}}return("precision"===e||"scale"===e)&&"decimal"!==(0,g.get)(t,"type")?{hidden:!0}:{}}function i2(e){let{context:t,getValue:l,setValue:o,values:n}=e,i=!!l("primaryKey"),r=!!l("unique");if(t.createMainOnly&&i&&(!e.changedName||"primaryKey"===e.changedName)&&(!1!==l("unique")&&o("unique",!1),(0,g.has)(n,"autoIncrement")&&!0!==l("autoIncrement")&&o("autoIncrement",!0)),t.createMainOnly&&r&&i&&"unique"===e.changedName&&o("primaryKey",!1),(0,g.get)(n,"reverseField.key")&&!0!==l("autoCreateReverseField")&&o("autoCreateReverseField",!0),("uiSchema.x-component-props.picker"===e.changedName||["primaryKey","unique","autoIncrement","defaultToCurrentTime"].includes(e.changedName||""))&&null!=l("defaultValue")&&(l("primaryKey")||l("unique")||l("autoIncrement")||l("defaultToCurrentTime")||"uiSchema.x-component-props.picker"===e.changedName)&&o("defaultValue",null),!((0,g.has)(n,"uiSchema.x-component-props.picker")||(0,g.has)(n,"uiSchema.x-component-props.dateFormat")||(0,g.has)(n,"uiSchema.x-component-props.showTime")||(0,g.has)(n,"uiSchema.x-component-props.timeFormat")))return;let a=iZ(n);"uiSchema.x-component-props.picker"===e.changedName&&(0,g.has)(n,"uiSchema.x-component-props.dateFormat")&&(0,g.get)(n,"uiSchema.x-component-props.dateFormat")!==(0,I.getPickerFormat)(a)&&o("uiSchema.x-component-props.dateFormat",(0,I.getPickerFormat)(a)),(0,g.has)(n,"uiSchema.x-component-props.showTime")&&"date"!==a&&!1!==i0(n)&&o("uiSchema.x-component-props.showTime",!1),(0,g.has)(n,"uiSchema.x-component-props.timeFormat")&&i0(n)&&!(0,g.get)(n,"uiSchema.x-component-props.timeFormat")&&o("uiSchema.x-component-props.timeFormat","HH:mm:ss")}function i5(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[{name:"primaryKey",title:'{{t("Primary")}}',component:"Checkbox"},{name:"unique",title:'{{t("Unique")}}',component:"Checkbox"}];return e.autoIncrement&&t.push({name:"autoIncrement",title:'{{t("Auto increment")}}',component:"Checkbox"}),t}function i8(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];return!1!==e.includePicker&&t.push({name:"uiSchema.x-component-props.picker",title:'{{t("Picker")}}',component:"Radio.Group",defaultValue:"date",options:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}],hidden:e.hidden}),t.push({name:"uiSchema.x-component-props.dateFormat",title:'{{t("Date format")}}',component:"ExpiresRadio",defaultValue:"YYYY-MM-DD",options:iX,componentProps:{defaultValue:"dddd",formats:["MMMM Do YYYY","YYYY-MM-DD","MM/DD/YY","YYYY/MM/DD","DD/MM/YYYY"]},hidden:e.hidden},{name:"uiSchema.x-component-props.showTime",title:'{{t("Show time")}}',component:"Checkbox",defaultValue:e.showTimeDefault,hidden:e.hidden},{name:"uiSchema.x-component-props.timeFormat",title:'{{t("Time format")}}',component:"Radio.Group",defaultValue:"HH:mm:ss",options:iQ,hidden:t=>!!("function"==typeof e.hidden&&e.hidden(t))||("boolean"==typeof e.hidden?e.hidden:!1===i0(t.values))}),t}function i4(){return[{name:"autoCreateReverseField",title:'{{t("Create inverse field in the target collection")}}',component:"Checkbox",defaultValue:!1},{name:"reverseField.type",title:'{{t("Inverse relationship type")}}',component:"Select",required:!0,options:[{label:"{{t('HasOne')}}",value:"hasOne"},{label:"{{t('HasMany')}}",value:"hasMany"},{label:"{{t('BelongsTo')}}",value:"belongsTo"},{label:"{{t('BelongsToMany')}}",value:"belongsToMany"}],hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,g.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.uiSchema.title",title:'{{t("Inverse field display name")}}',component:"Input",required:!0,hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,g.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.name",title:'{{t("Inverse field name")}}',component:"Input",required:!0,description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.')}}",hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,g.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}}]}let i3=i4;function i6(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:e.name||"uiSchema.enum",title:e.title||'{{t("Options")}}',component:"ArrayTable"}}let i9={key:"required",label:"Required",hasValue:!1,params:[]};function i7(e){let t="date"===e?"datePicker":"inputNumber",l="date"===e?"date":"limit";return[{key:"greater",label:"Greater than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"less",label:"Less than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"max",label:"Max value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"min",label:"Min value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]}]}class re{register(e){this.items.set(e.key,(0,g.cloneDeep)(e))}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.forEach(e=>this.register(e))}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,t)}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,[...this.groups.get(e)||[],...t])}get(e){return(0,g.cloneDeep)(this.items.get(e))}getGroup(e){return(this.groups.get(e)||[]).map(e=>"string"==typeof e?this.get(e):(0,g.cloneDeep)(e)).filter(Boolean)}constructor(){this.items=new Map,this.groups=new Map}}let rt=new re;function rl(e){rt.register(e)}function ro(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rt.registerGroup(e,t)}function rn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rt.addToGroup(e,t)}rt.registerMany([i9,{key:"pattern",label:"Pattern",hasValue:!0,params:[{key:"regex",label:"Regular Expression",componentType:"text",required:!0}]},{key:"email",label:"Email",hasValue:!1,params:[],paramsType:"object"},{key:"uuid",label:"UUID",hasValue:!1,params:[],paramsType:"object"},{key:"length",label:"Length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"uri",label:"URI",hasValue:!1,params:[],paramsType:"object"},{key:"multiple",label:"Multiple of",hasValue:!0,params:[{key:"base",label:"Base",componentType:"inputNumber",required:!0}]},{key:"integer",label:"Integer",hasValue:!1,params:[]},{key:"precision",label:"Precision",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"unsafe",label:"Unsafe integer",hasValue:!1,params:[]},{key:"timestamp",label:"Timestamp",hasValue:!0,params:[{key:"type",label:"Type",componentType:"singleSelect",options:[{label:"JavaScript",value:"javascript"},{label:"Unix",value:"unix"}],defaultValue:"javascript"}]}]),rt.registerGroup("string",["required",{key:"max",label:"Max length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"min",label:"Min length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},"pattern","email","uuid","length","uri"]),rt.registerGroup("number",["required",...i7("number"),"multiple","integer","precision","unsafe"]),rt.registerGroup("date",["required",...i7("date"),"timestamp"]),rt.registerGroup("object",["required"]);class ri{addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.reduce((e,t)=>{if("function"!=typeof t)return e;let l=new t(this);return(null==l?void 0:l.name)&&(iY(l.filterable),e[l.name]=l,Array.isArray(this.actionList[l.name])&&(this.actionList[l.name].forEach(e=>{var t,o;if("addComponentOption"===e.type){null==(o=l.addComponentOption)||o.call(l,e.data);return}if("registerConfigure"===e.type){l.configure=this.mergeFieldInterfaceConfigure(l.configure,e.data);return}null==(t=l.addOperator)||t.call(l,e.data)}),delete this.actionList[l.name])),e},{});Object.assign(this.collectionFieldInterfaceInstances,t)}addFieldInterfaceComponentOption(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addComponentOption)||l.call(o,t):this.enqueueAction(e,{type:"addComponentOption",data:t})}addFieldInterfaceOperator(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addOperator)||l.call(o,t):this.enqueueAction(e,{type:"addOperator",data:t})}registerFieldFilterOperator(e){iL.register(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iL.registerGroup(e,t),this.normalizeFieldInterfaceFilterables()}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iL.addToGroup(e,t),this.normalizeFieldInterfaceFilterables()}registerFieldValidationConfigure(e){rl(e)}registerFieldValidationConfigureGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ro(e,t)}addFieldValidationConfiguresToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rn(e,t)}getFieldValidationConfigureGroup(e){return rt.getGroup(e)}registerFieldInterfaceConfigure(e){let t=this.getFieldInterface(e.name);t?t.configure=this.mergeFieldInterfaceConfigure(t.configure,e):this.enqueueAction(e.name,{type:"registerConfigure",data:e})}getFieldInterface(e){return this.collectionFieldInterfaceInstances[e]}getFieldInterfaces(e){return Object.values(this.collectionFieldInterfaceInstances).filter(t=>!e||!t.supportDataSourceType&&!t.notSupportDataSourceType||(t.supportDataSourceType?t.supportDataSourceType.includes(e):!t.notSupportDataSourceType||!t.notSupportDataSourceType.includes(e)))}getFieldInterfaceConfigureProperties(e,t){var l;let o=this.getFieldInterfaceConfigure(e,t);return(null==o||null==(l=o.getConfigureFormProperties)?void 0:l.call(o,t))||(null==o?void 0:o.properties)||{}}getFieldInterfaceConfigure(e,t){var l,o,n;let i=this.getFieldInterface(e);if(!i)return;let r=(null==(l=i.getConfigureFormProperties)?void 0:l.call(i,t))||i.properties||{},a={name:i.name,title:i.title,group:i.group,order:i.order,default:i.default,titleUsable:i.titleUsable,isAssociation:i.isAssociation,supportDataSourceType:i.supportDataSourceType,notSupportDataSourceType:i.notSupportDataSourceType,properties:r,items:iJ(r,{components:null==(o=i.configure)?void 0:o.components}),getConfigureFormProperties:null==(n=i.getConfigureFormProperties)?void 0:n.bind(i)};return this.mergeFieldInterfaceConfigure(a,i.configure)}addFieldInterfaceGroups(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this.collectionFieldGroups,e)}getFieldInterfaceGroups(){return this.collectionFieldGroups}getFieldInterfaceGroup(e){return this.collectionFieldGroups[e]}enqueueAction(e,t){this.actionList[e]||(this.actionList[e]=[]),this.actionList[e].push(t)}normalizeFieldInterfaceFilterables(){Object.values(this.collectionFieldInterfaceInstances).forEach(e=>{iY(e.filterable)})}mergeFieldInterfaceConfigure(e,t){return e?t?{...e,...t,default:t.default||e.default,properties:{...e.properties||{},...t.properties||{}},items:this.mergeFieldConfigureItems(e.items,t.items),components:{...e.components||{},...t.components||{}}}:e:t}mergeFieldConfigureItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Map;return e.forEach(e=>l.set(e.name,e)),t.forEach(e=>l.set(e.name,e)),Array.from(l.values())}constructor(e){this.dataSourceManager=e,this.collectionFieldInterfaceInstances={},this.collectionFieldGroups={},this.actionList={}}}function rr(e){return`${e}/client-v2`}function ra(e){return("default"in e?e.default:void 0)||e}function rs(e,t){window.__nocobase_app_dev_plugins__=window.__nocobase_app_dev_plugins__||{},window.__nocobase_app_dev_plugins__[e]=t}function rd(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=rr(t);window.define(o,()=>l),rs(o,l)})}function ru(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=rr(t);window.define(o,()=>l),rs(o,l)})}function rc(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[rr(t.packageName)]=t.url,e),{})})}function rp(e,t){return function(){for(var l=arguments.length,o=Array(l),n=0;n<l;n++)o[n]=arguments[n];o.forEach((t,l)=>{t&&rs(rr(e[l].packageName),t)}),t(o.map((t,l)=>[e[l].name,(null==t?void 0:t.default)||t]).filter(e=>e[1]));let i=o.map((e,t)=>e?null:t).filter(e=>null!==e).map(t=>e[t].packageName);i.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",i.join(", \r\n"))}}function rm(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rc(e,t);let l=t.map(e=>rr(e.packageName));return new Promise((o,n)=>{e.requirejs(l,rp(t,o),n)})}async function rh(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];for(let l of rf(e)){let e=await import(l.url),o=ra(e);o&&(t.push([l.name,o]),ru({[l.packageName]:e}))}return t}function rf(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Map(e.map(e=>[e.packageName,e])),l=[],o=new Set,n=new Set,i=e=>{if(!n.has(e.packageName)&&!o.has(e.packageName)){for(let l of(o.add(e.packageName),e.appDevDependencies||[])){let e=t.get(l);e&&i(e)}o.delete(e.packageName),n.add(e.packageName),l.push(e)}};return e.forEach(i),l}async function rg(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=[],o=[],n=async()=>{if(0===o.length)return;let t=await rm(e,o);l.push(...t),o=[]};for(let e of rf(t)){if("esm"===e.devMode){await n();let t=await rh([e]);l.push(...t);continue}o.push(e)}return await n(),l}async function rv(e){let{requirejs:t,pluginData:l,devDynamicImport:o}=e;if(0===l.length)return[];let n=[],i={},r={};if(o){for await(let e of l){let t=await o(e.packageName);if(t){let l=ra(t);n.push([e.name,l]),i[e.packageName]=l,r[e.packageName]=t}}rd(r)}let a=l.filter(e=>!i[e.packageName]),s=a.filter(e=>"esm"===e.devMode),d=a.filter(e=>"esm"!==e.devMode);if(0===s.length){if(0===d.length)return n;let e=await rm(t,d);return n.push(...e),n}let u=await rg(t,a);return n.push(...u),n}class ry{async init(e){await this.initStaticPlugins(e),this.loadRemotePlugins&&await this.initRemotePlugins()}getRemotePluginsRequestUrl(){return"pm:listEnabledV2"}async initStaticPlugins(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for await(let t of e){let e=Array.isArray(t)?t[0]:t,l=Array.isArray(t)?t[1]:void 0;await this.add(e,l)}}async initRemotePlugins(){var e;let t=await this.app.apiClient.request({url:this.getRemotePluginsRequestUrl()}),l=(null==t||null==(e=t.data)?void 0:e.data)||[];for await(let[e,t]of(await rv({requirejs:this.app.requirejs,pluginData:l,devDynamicImport:this.app.devDynamicImport}))){let o=l.find(t=>t.name===e);await this.add(t,o)}}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=this.getInstance(e,t);this.pluginInstances.set(e,l),t.name&&(this.pluginsAliases[t.name]=l),t.packageName&&(this.pluginsAliases[t.packageName]=l),await l.afterAdd()}get(e){return"string"==typeof e?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new e(t,this.app)}async load(){for(let e of(await this.initPlugins,this.pluginInstances.values()))await e.beforeLoad();for(let e of this.pluginInstances.values())await e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))}constructor(e,t,l){this._plugins=e,this.loadRemotePlugins=t,this.app=l,this.pluginInstances=new Map,this.pluginsAliases={},this.app=l,this.initPlugins=this.init(e||[]),this.loadRemotePlugins=t}}var r_=__webpack_require__(3939);let rb=e=>{let{children:t}=e,{token:l}=b.theme.useToken(),o=l.colorFillTertiary,n=new it.TinyColor(l.colorFill).onBackground(l.colorFillSecondary).toHexShortString(),r=new it.TinyColor(l.colorFill).onBackground(l.colorFill).toHexShortString(),a=new it.TinyColor(l.colorFill).onBackground(l.colorFill).onBackground(l.colorFill).toHexShortString();return(0,i.useEffect)(()=>{document.body.style.setProperty("--nb-spacing",`${l.marginLG}px`),document.body.style.setProperty("--nb-designer-offset",`${l.marginXS}px`),document.body.style.setProperty("--nb-header-height",`${l.sizeXXL-2}px`),document.body.style.setProperty("--nb-box-bg",l.colorBgLayout),document.body.style.setProperty("--colorBgLayout",l.colorBgLayout),document.body.style.setProperty("--colorBgContainer",l.colorBgContainer),document.body.style.setProperty("--controlHeightLG",`${l.controlHeightLG}px`),document.body.style.setProperty("--paddingContentVerticalSM",`${l.paddingContentVerticalSM}px`),document.body.style.setProperty("--marginSM",`${l.marginSM}px`),document.body.style.setProperty("--colorInfoBg",l.colorInfoBg),document.body.style.setProperty("--colorInfoBorder",l.colorInfoBorder),document.body.style.setProperty("--colorWarningBg",l.colorWarningBg),document.body.style.setProperty("--colorWarningBorder",l.colorWarningBorder),document.body.style.setProperty("--colorText",l.colorText),document.body.style.setProperty("--colorTextDescription",l.colorTextDescription),document.body.style.setProperty("--colorBgTextHover",l.colorBgTextHover),document.body.style.setProperty("--colorSplit",l.colorSplit),document.body.style.setProperty("--borderRadiusOuter",`${l.borderRadiusOuter}px`),document.body.style.setProperty("--colorTextHeaderMenu",l.colorTextHeaderMenu),document.body.style.setProperty("--colorPrimaryText",l.colorPrimaryText),document.body.style.setProperty("--colorPrimaryTextActive",l.colorPrimaryTextActive),document.body.style.setProperty("--colorPrimaryTextHover",l.colorPrimaryTextHover),document.body.style.setProperty("--colorBgSider",l.colorBgSider),document.body.style.setProperty("--colorBgSiderMenuHover",l.colorBgSiderMenuHover),document.body.style.setProperty("--colorBgSiderMenuActive",l.colorBgSiderMenuActive),document.body.style.setProperty("--colorTextSiderMenu",l.colorTextSiderMenu),document.body.style.setProperty("--colorTextSiderMenuHover",l.colorTextSiderMenuHover),document.body.style.setProperty("--colorTextSiderMenuActive",l.colorTextSiderMenuActive),document.body.style.setProperty("--colorBgScrollTrack",o),document.body.style.setProperty("--colorBgScrollBar",n),document.body.style.setProperty("--colorBgScrollBarHover",r),document.body.style.setProperty("--colorBgScrollBarActive",a),document.body.style.setProperty("--colorSettings",l.colorSettings||S.token.colorSettings),document.body.style.setProperty("--colorBgSettingsHover",l.colorBgSettingsHover),document.body.style.setProperty("--colorTemplateBgSettingsHover",l.colorTemplateBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",l.colorBorderSettingsHover),document.body.style.setProperty("--colorBgMenuItemSelected",l.colorBgHeaderMenuActive),document.body.style.setProperty("background-color",l.colorBgContainer)},[n,a,r,o,l.colorBgContainer,l.colorBgLayout,l.colorBgSettingsHover,l.colorTemplateBgSettingsHover,l.colorBorderSettingsHover,l.colorInfoBg,l.colorInfoBorder,l.colorPrimaryText,l.colorPrimaryTextActive,l.colorPrimaryTextHover,l.colorSettings,l.colorBgTextHover,l.colorSplit,l.colorText,l.colorTextDescription,l.colorWarningBg,l.colorWarningBorder,l.borderRadiusOuter,l.controlHeightLG,l.marginLG,l.marginSM,l.marginXS,l.paddingContentVerticalSM,l.sizeXXL,l.colorTextHeaderMenu,l.colorBgSider,l.colorBgSiderMenuHover,l.colorBgSiderMenuActive,l.colorTextSiderMenu,l.colorTextSiderMenuHover,l.colorTextSiderMenuActive,l.colorBgHeaderMenuActive]),t};rb.displayName="CSSVariableProvider";let rx=rb;class rM extends ig{createApiClient(e){let t=new p({withCredentials:!0,...e.apiClient,appName:e.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)});return t.app=this,t}configureRuntimeAdapters(){this.dataSourceManager=this.flowEngine.context.dataSourceManager,this.dataSourceManager.setRequester(this.apiClient.request.bind(this.apiClient)),this.dataSourceManager.collectionFieldInterfaceManager||this.dataSourceManager.setCollectionFieldInterfaceManager(new ri(this.dataSourceManager))}createI18n(e){if(e.i18n)return e.i18n;let t=(0,__rspack_external_i18next.createInstance)();return t.use(v.initReactI18next).init({lng:"en-US",defaultNS:"client",resources:{},keySeparator:!1,nsSeparator:!1}),t}createRouterManager(e){var t;let l=new l4(e.router,this);if((null==(t=e.router)?void 0:t.basename)===void 0){let e=this.getPublicPath(),t="/"===e?void 0:e.replace(/\/$/,"");t&&l.setBasename(t)}return l}createPluginManager(e){return new ry(e.plugins||[],!!e.loadRemotePlugins,this)}createPluginSettingsManager(e){return new r_.mz(this)}async load(){try{this.hasLoadError=!1,await this.loadWebSocket(),await this.pm.load(),await this.flowEngine.flowSettings.load()}catch(i){var e,t,l,o,n;this.hasLoadError=!0,(null==i||null==(o=i.response)||null==(l=o.data)||null==(t=l.errors)||null==(e=t[0])?void 0:e.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&await new Promise(e=>{setTimeout(()=>e(null),1e3)}),this.error={code:"LOAD_ERROR",...null==(n=this.apiClient.toErrMessages(i))?void 0:n[0]},console.error(i,this.error)}this.updateFavicon()}async loadWebSocket(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",e=>{var t,l,o,n;if(!e.data)return;let i=JSON.parse(e.data);if(null==i||null==(t=i.payload)?void 0:t.refresh)return void globalThis.window.location.reload();if("notification"===i.type){let e=this.context.notification;null==(o=e[(null==(n=i.payload)?void 0:n.type)||"info"])||o.call(e,{message:null==(l=i.payload)?void 0:l.message});return}if("maintaining"===i.type&&"APP_RUNNING"!==i.payload.code)this.setMaintaining(!0),this.error=i.payload;else{this.hasLoadError&&globalThis.window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;let e=i.type;if(!e)return;let t=`ws:message:${e}`;this.eventBus.dispatchEvent(new CustomEvent(t,{detail:i.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{let e=this.apiClient.auth.token;e&&this.setTokenInWebSocket({token:e,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()}addCustomProviders(){this.use(rx)}addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.dataSourceManager.addFieldInterfaces(e)}addFieldInterfaceGroups(e){return this.dataSourceManager.addFieldInterfaceGroups(e)}addFieldInterfaceComponentOption(e,t){return this.dataSourceManager.addFieldInterfaceComponentOption(e,t)}addFieldInterfaceOperator(e,t){return this.dataSourceManager.addFieldInterfaceOperator(e,t)}registerFieldFilterOperator(e){return this.dataSourceManager.registerFieldFilterOperator(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.registerFieldFilterOperatorGroup(e,t)}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.addFieldFilterOperatorsToGroup(e,t)}registerFieldValidationConfigure(e){var t,l;return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigure)?void 0:t.call(l,e)}registerFieldValidationConfigureGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigureGroup)?void 0:t.call(l,e,o)}addFieldValidationConfiguresToGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.addFieldValidationConfiguresToGroup)?void 0:t.call(l,e,o)}constructor(...e){super(...e),this.hasLoadError=!1}}let rw=(0,i.createContext)(null);rw.displayName="ApplicationContext";class rS extends rM{constructor(e={}){super({router:{type:"memory",initialEntries:["/"]},...e}),this.apiMock=new __rspack_external_axios_mock_adapter_69845b81.default(this.apiClient.axios),this.ws=new rk(e.ws||{})}}class rk extends n8{connect(){}close(){}send(){}on(e,t,l){this.eventBus.addEventListener(e,e=>t({data:JSON.stringify(e.detail)}),l)}emit(e,t){this.eventBus.dispatchEvent(new CustomEvent(e,{detail:t}))}off(e,t,l){this.eventBus.removeEventListener(e,t,l)}removeAllListeners(){}constructor(e){super(e),this.eventBus=new EventTarget}}function rF(e){return new rS(e)}class rC{get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}get ai(){return this.app.aiManager}async afterAdd(){}async beforeLoad(){}async load(){}t(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.app.i18n.t(e,{ns:null==(t=this.options)?void 0:t.packageName,...l})}constructor(e,t){this.options=e,this.app=t,this.options=e,this.app=t}}var rA=__webpack_require__(6553),rP=__webpack_require__(4244);function rT(e){return"steps"in e&&e.steps||{}}function rj(e){let t=rT(e);for(let e of["saveResource","submit","request","apply","save"]){var l;if(Object.prototype.hasOwnProperty.call(t,e)&&(null==(l=t[e])?void 0:l.result)!=null)return t[e].result}let o=Object.entries(t).filter(e=>{let[t,l]=e;return"afterSuccess"!==t&&(null==l?void 0:l.result)!=null}).map(e=>{let[,t]=e;return t.result});return o[o.length-1]}function rI(e){if(!rL(e))return;let t=rR(e);if(t())return(0,f.createRecordMetaFactory)(t,e.t("Response record"),()=>{let l=t(),o=rj(e);if(l&&o)try{let e=l.getFilterByTK(o);if(null==e)return;return{collection:l.name,dataSourceKey:l.dataSourceKey||"main",filterByTk:e}}catch(e){return}})}function rL(e){var t;if(Object.prototype.hasOwnProperty.call(rT(e),"saveResource"))return!0;let{model:l,flowKey:o}=e;return!!l&&"function"==typeof l.getFlow&&!!o&&Object.prototype.hasOwnProperty.call((null==(t=l.getFlow(o))?void 0:t.steps)||{},"saveResource")}function rR(e){return()=>{var t,l;return(null==(t=e.blockModel)?void 0:t.collection)||e.collection||(null==(l=e.model)?void 0:l.collection)||null}}function rD(e){let t=rI(e);if(!t){var l;return(null==(l=e.getPropertyMetaTree)?void 0:l.call(e))||[]}let o=new f.FlowContext;return o.addDelegate(e),o.defineProperty("responseRecord",{get:()=>rj(e),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(rR(e),()=>rj(e)),meta:t}),o.getPropertyMetaTree()}function rE(e){let t=(0,f.useFlowSettingsContext)(),l=(0,i.useMemo)(()=>()=>rD(t),[t]);return(0,m.jsx)(rP.n,{...e,metaTree:l})}let rY=(0,f.defineAction)({name:"afterSuccess",title:(0,f.tExpr)("After successful submission"),defineProperties(e){let t=rI(e);return{responseRecord:{get:()=>rj(e),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(rR(e),()=>rj(e)),...t?{meta:t}:{}}}},uiSchema:{successMessage:{type:"string",title:(0,f.tExpr)("Popup message"),"x-decorator":"FormItem","x-component":"Input.TextArea"},manualClose:{type:"boolean",title:(0,f.tExpr)("Message popup close method"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,f.tExpr)("Automatic close"),value:!1},{label:(0,f.tExpr)("Manually close"),value:!0}]},actionAfterSuccess:{type:"string",title:(0,f.tExpr)("Action after successful submission"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,f.tExpr)("Stay on the current popup or page"),value:"stay"},{label:(0,f.tExpr)("Return to the previous popup or page"),value:"previous"},{label:(0,f.tExpr)("Close popup and redirect to"),value:"redirect"}]},redirectTo:{type:"string",title:(0,f.tExpr)("Link"),"x-decorator":"FormItem","x-component":rE,"x-reactions":{dependencies:["actionAfterSuccess"],fulfill:{state:{visible:"{{$deps[0]==='redirect'}}"}}}}},defaultParams:{successMessage:(0,f.tExpr)("Saved successfully"),manualClose:!1,actionAfterSuccess:"previous"},async handler(e,t){let{successMessage:l,manualClose:o=!1,actionAfterSuccess:n="previous",redirectTo:i}=t;"previous"===n&&e.view&&e.view.close();let r=t=>{if(e.engine){let t=e.engine;for(;t.nextEngine;)t=t.nextEngine;let l=[],o=t;for(;o;)l.push(o),o=o.previousEngine;for(let e of l)e.destroyView()}e.router.navigate(t)},a=e=>{if((0,I.isURL)(e)){window.location.href=e;return}r(e)};if(l){let t=e.t(l);if(o)return void await e.modal.success({title:t,onOk:async()=>{"redirect"===n&&i&&a(i)}});e.message.success(t)}"redirect"===n&&i&&a(i)}}),rN=(0,f.defineAction)({name:"confirm",title:(0,f.tExpr)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,f.tExpr)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,f.tExpr)("Title"),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:2}},content:{type:"string",title:(0,f.tExpr)("Content"),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:3}}},defaultParams:{enable:!1,title:(0,f.tExpr)("Please Confirm"),content:(0,f.tExpr)("Are you sure you want to perform the action?")},async handler(e,t){t.enable&&(await e.modal.confirm({title:e.t(t.title,{ns:"lm-flow-engine"}),content:e.t(t.content,{ns:"lm-flow-engine"}),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||e.exit())}});var rO=__webpack_require__(9078),rB=__webpack_require__(6859);let rV={__nocobaseDataScopeNull__:!0},rH="{{$nRole}}",rq=/^\s*\{\{\s*ctx\.role\s*\}\}\s*$/;function r$(e){return"string"==typeof e&&rq.test(e)}function rz(e){return e&&"object"==typeof e&&!Array.isArray(e)&&!0===e.__nocobaseDataScopeNull__&&1===Object.keys(e).length}function rU(e){return rz(e)?null:Array.isArray(e)?e.map(e=>rU(e)):e&&"object"==typeof e?Object.keys(e).reduce((t,l)=>(t[l]=rU(e[l]),t),{}):e}function rK(e){var t;return!!(0,f.isVariableExpression)(e)&&(null==(t=(0,f.extractPropertyPath)(e))?void 0:t[0])==="urlSearchParams"}function rG(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){if("path"in e&&"operator"in e){if(r$(e.value)){t.value=rH;return}(0,f.isVariableExpression)(e.value)&&!rK(e.value)&&(void 0===t.value||null===t.value||""===t.value)&&(t.value=rV);return}Array.isArray(e.items)&&Array.isArray(t.items)&&e.items.forEach((e,l)=>{rG(e,t.items[l])})}}function rW(e,t){let l=g.default.cloneDeep(t);return rG(e,l),rU((0,f.pruneFilter)((0,I.transformFilter)(l)))}var rJ=__webpack_require__(3728),rX=__webpack_require__(9613);function rQ(e,t){return e.length===t.length&&e.every((e,l)=>e===t[l])}function rZ(e,t){return!(e.length>t.length)&&e.every((e,l)=>e===t[l])}function r0(e){let t=new Map;for(let l of e)(null==l?void 0:l.length)&&t.set((0,rJ.Qc)(l),l);return Array.from(t.values())}function r1(e){let t=r0(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rZ(e,t)))}function r2(e){let t=Array.isArray(e)?e:[],l=[];for(let e of t){if("string"!=typeof e)continue;let[t,o]=e.split(":"),n=Number(o);!t||Number.isNaN(n)||l.push({name:t,index:n})}return l}function r5(e){var t;let l=null==e?void 0:e.model;return r2((null==l||null==(t=l.context)?void 0:t.fieldIndex)??(null==e?void 0:e.fieldIndex))}function r8(e,t){let l=e.length-1-t;if(l<0)return null;let o=[];for(let t=0;t<=l;t++)o.push(e[t].name,e[t].index);return o}function r4(e,t){let l=r8(e,t);return(null==l?void 0:l.length)?l.slice(0,-1):null}function r3(e){return(0,rJ.EA)(e).filter(e=>"object"!=typeof e)}function r6(e){return(0,rJ.c1)(e)}function r9(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=e,o=Array.isArray(null==l?void 0:l.changedPaths)?l.changedPaths:[],n=[];for(let e of o){if(Array.isArray(e)){if(1===e.length&&"string"==typeof e[0]){let t=(0,rJ.c1)(e[0]);t.length&&n.push(t);continue}let t=e.filter(e=>"string"==typeof e||"number"==typeof e);t.length&&n.push(t);continue}"string"==typeof e&&e&&n.push((0,rJ.c1)(e))}if(n.length)return n;let i=null==l?void 0:l.changedValues;if(i&&"object"==typeof i&&(t.includeArrayChangedValues||!Array.isArray(i)))for(let e of Object.keys(i)){let t=(0,rJ.c1)(e);t.length&&n.push(t)}return n}function r7(e){var t,l;let o=e;return!!o&&"object"==typeof o&&!!o.emitter&&"function"==typeof o.emitter.on&&"function"==typeof o.emitter.off&&(!!o.formValueRuntime||!!(null==(t=o.context)?void 0:t.form)||"function"==typeof(null==(l=o.context)?void 0:l.setFormValues))}function ae(e){var t;let l=[],o=e=>{e&&!l.includes(e)&&l.push(e)},n=e.model;o(null==n||null==(t=n.context)?void 0:t.blockModel),o(e.model);let i=null==n?void 0:n.parent;for(;i;)o(i),i=null==i?void 0:i.parent;return l.find(r7)||null}var at=__webpack_require__(8709);function al(e){if(Array.isArray(e)){let t=e.filter(e=>"string"==typeof e&&!!e);return t.length?t:"id"}return"string"==typeof e&&e?e:"id"}function ao(e){var t,l;return al((null==e||null==(t=e.targetCollection)?void 0:t.filterTargetKey)??(null==e||null==(l=e.targetCollection)?void 0:l.filterByTk)??(null==e?void 0:e.targetKey))}function an(e){var t,l,o,n,i,r,a,s,d,u;let c=e.model;return(null==c||null==(o=c.context)||null==(l=o.blockModel)||null==(t=l.context)?void 0:t.collection)??(null==c||null==(r=c.context)||null==(i=r.formBlock)||null==(n=i.context)?void 0:n.collection)??(null==c||null==(a=c.context)?void 0:a.rootCollection)??(null==e?void 0:e.rootCollection)??(null==e?void 0:e.collection)??(null==c||null==(d=c.context)||null==(s=d.collectionField)?void 0:s.collection)??(null==c||null==(u=c.context)?void 0:u.collection)}function ai(e){var t,l,o,n,i,r,a,s,d,u,c,p;let m=e.model;return al((null==m||null==(l=m.context)||null==(t=l.collection)?void 0:t.filterTargetKey)??(null==m||null==(n=m.context)||null==(o=n.collection)?void 0:o.filterByTk)??(null==m||null==(a=m.context)||null==(r=a.collectionField)||null==(i=r.targetCollection)?void 0:i.filterTargetKey)??(null==m||null==(u=m.context)||null==(d=u.collectionField)||null==(s=d.targetCollection)?void 0:s.filterByTk)??(null==m||null==(p=m.context)||null==(c=p.collectionField)?void 0:c.targetKey))}function ar(e,t){let l=an(e),o=ai(e);return t.map(e=>{let t=o;if(null==l?void 0:l.getField){var n;let o=l.getField(e.name);((null==o||null==(n=o.isAssociationField)?void 0:n.call(o))||(null==o?void 0:o.targetCollection)||(null==o?void 0:o.targetKey))&&(t=ao(o),l=null==o?void 0:o.targetCollection)}return{...e,filterTargetKey:t}})}function aa(e,t,l){let o=e.length-1-t;if(o<0)return;let n=e[o],i=null==n?void 0:n.filterTargetKey,r=Array.isArray(i)?i.map(e=>[e]):"string"==typeof i&&i?[[i]]:[];return{entries:e.slice(0,o+1).map(e=>({...e})),tailPath:l,identityTailPaths:r}}function as(e,t){return null!=e&&(Array.isArray(e)&&"number"==typeof t?t>=0&&t<e.length:"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t))}function ad(e,t){let l=e;for(let e of t){if(!as(l,e))return{found:!1};l=l[e]}return{found:!0,value:l}}function au(e){let t=e;return(null==t?void 0:t.allValuesSnapshot)??(null==t?void 0:t.allValues)}function ac(e,t){return e&&"object"==typeof e?(0,at.r5)(e,t):null}function ap(e){let t=[];for(let l of e.entries)t.push(l.name,l.index);return t}function am(e,t,l,o){if(null==l?void 0:l.rowDetached)return!1;let n=ap(t);if(!n.length||!t.identityTailPaths.length)return!1;let i=t.identityTailPaths.map(e=>[...n,...e]);return(o??r9(e)).some(e=>i.some(t=>rZ(t,e)))}function ah(e,t,l){return Array.isArray(e)&&t?e.findIndex(e=>ac(e,l)===t):-1}function af(e,t,l,o){let n=[],i=-1,r=[];for(let a=0;a<t.entries.length;a++){let s=t.entries[a],d=[...n,s.name],u=ad(e,d);if(!u.found||!Array.isArray(u.value))return{found:!1};let c=null==l?void 0:l[a],p=ah(u.value,c,s.filterTargetKey),m=p>=0?p:s.index;if(m<0||m>=u.value.length)return c?{found:!1,rowMissing:!0}:{found:!1};let h=u.value[m];if(c&&p<0&&!o)return{found:!1,rowMissing:!0};r.push(ac(h,s.filterTargetKey)),i=m,n=[...d,m]}return{found:!0,path:[...n,...t.tailPath],rowIndex:i,rowIdentities:r}}function ag(e,t,l){var o,n;let i=ad(au(t),l);if(i.found)return i;let r=null==e||null==(o=e.context)?void 0:o.form;return"function"==typeof(null==r?void 0:r.getFieldValue)?{found:!0,value:r.getFieldValue(l)}:ad(null==e||null==(n=e.context)?void 0:n.formValues,l)}function av(e,t,l,o,n){var i,r;let a=l.rowScope;if(!a)return ag(e,t,l.path);if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let s=am(t,a,o,n);for(let l of[au(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=af(l,a,null==o?void 0:o.rowIdentities,s);if(e.rowMissing)return{found:!1,rowMissing:!0};if(!e.found||!e.path)continue;let t=ad(l,e.path);if(t.found)return{found:!0,value:t.value,rowIdentities:e.rowIdentities}}let d=null==e||null==(r=e.context)?void 0:r.form;return"function"==typeof(null==d?void 0:d.getFieldValue)?{found:!0,value:d.getFieldValue(l.path),rowIdentities:null==o?void 0:o.rowIdentities}:{found:!1}}function ay(e){return Array.isArray(e)?e.length:e}function a_(e,t,l){var o,n;if(!Array.isArray(e))return{found:!0,value:e};let i=null==l||null==(o=l.rowIdentities)?void 0:o[l.rowIdentities.length-1],r=null==(n=t.rowScope)?void 0:n.entries[t.rowScope.entries.length-1],a=ah(e,i,null==r?void 0:r.filterTargetKey);return a>=0?{found:!0,value:a,rowIdentities:null==l?void 0:l.rowIdentities}:i?{found:!1,rowMissing:!0}:!r||r.index<0||r.index>=e.length?{found:!1}:{found:!0,value:r.index,rowIdentities:[ac(e[r.index],r.filterTargetKey)]}}function ab(e,t,l,o,n){var i,r;if("length"===l.kind){if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let r=null==o?void 0:o.rowIdentities,a=l.rowScope;if(a){let l=am(t,a,o,n);for(let n of[au(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=af(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found){r=e.rowIdentities;break}}}let s=ag(e,t,l.path);return s.found?{found:!0,value:ay(s.value),rowIdentities:r}:s}if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let a=l.rowScope;if(a){let l=am(t,a,o,n);for(let n of[au(t),null==e||null==(r=e.context)?void 0:r.formValues]){let e=af(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found&&"number"==typeof e.rowIndex)return{found:!0,value:e.rowIndex,rowIdentities:e.rowIdentities}}}let s=ag(e,t,l.path);return s.found?a_(s.value,l,o):s}function ax(e,t,l){if(e.wildcard)return null;let o={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let n of e.valuePaths){let e=(0,rJ.Qc)(n.path),i=av(t,l,n);if(i.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!i.found){o.complete=!1;continue}o.values.set(e,{value:(0,g.cloneDeep)(i.value),rowIdentities:i.rowIdentities,rowDetached:!1})}for(let n of e.structuralPaths){let e=ab(t,l,n);if(e.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!e.found){o.complete=!1;continue}o.structures.set(`${n.kind}:${(0,rJ.Qc)(n.path)}`,{value:(0,g.cloneDeep)(e.value),rowIdentities:e.rowIdentities,rowDetached:!1})}return o}function aM(e,t,l,o,n){if(e.wildcard)return null;let i={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let r of e.valuePaths){let e=(0,rJ.Qc)(r.path),a=o.values.get(e),s=av(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.values.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.values.set(e,{value:(0,g.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}for(let r of e.structuralPaths){let e=`${r.kind}:${(0,rJ.Qc)(r.path)}`,a=o.structures.get(e),s=ab(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.structures.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.structures.set(e,{value:(0,g.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}return i}function aw(e,t){if(e.size!==t.size)return!1;for(let[o,n]of e.entries()){var l;if(!t.has(o)||!(0,g.isEqual)(n.value,null==(l=t.get(o))?void 0:l.value))return!1}return!0}function aS(e,t,l,o){if(e.wildcard||!(null==o?void 0:o.complete))return{status:"unknown",snapshot:ax(e,t,l)};let n=aM(e,t,l,o,r9(l));return(null==n?void 0:n.rowMissing)?{status:"unchanged",snapshot:{...n,rowMissing:!1}}:(null==n?void 0:n.complete)?{status:aw(o.values,n.values)&&aw(o.structures,n.structures)?"unchanged":"changed",snapshot:n}:{status:"unknown",snapshot:n}}let ak="formValuesChange",aF="__formValueDrivenDataScopeClearBindings";function aC(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set((0,rJ.Qc)(o.path),o)}return Array.from(t.values())}function aA(e){let t=aC(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rZ(e.path,t.path)))}function aP(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.kind}:${(0,rJ.Qc)(o.path)}`,o)}return Array.from(t.values())}function aT(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.includeChildren?"children":"exact"}:${(0,rJ.Qc)(o.path)}`,o)}return Array.from(t.values())}function aj(){return{wildcard:!1,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function aI(){return{wildcard:!0,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function aL(e){let t=e[0];if("value"===t){let t=e.slice(1);return t.length?{wildcard:!1,valuePaths:[{path:t}],structuralPaths:[],triggerPaths:[]}:aI()}return"__is_new__"===t||"__is_stored__"===t?{wildcard:!1,valuePaths:[{path:[t]}],structuralPaths:[],triggerPaths:[]}:aj()}function aR(e,t){var l,o;let n=ar(e,r2((null==(o=e.model)||null==(l=o.context)?void 0:l.fieldIndex)??(null==e?void 0:e.fieldIndex))),i=0,r=[...t];for(;"parentItem"===r[0];)i+=1,r=r.slice(1);let a=r[0];if(!a)return aI();if(!n.length)return 0===i?aL(r):aj();if(i===n.length)return aL(r);if(i>n.length)return aI();if("value"===a){let e=r8(n,i);if(!e)return aI();let t=r4(n,i),l=r.slice(1);return{wildcard:!1,valuePaths:[{path:[...e,...l],rowScope:aa(n,i,l)}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0},...t?[{path:t,includeChildren:!1}]:[]]}}if("index"===a||"length"===a){let e=r4(n,i);return e?{wildcard:!1,valuePaths:[],structuralPaths:[{path:e,kind:a,rowScope:aa(n,i,[])}],triggerPaths:[{path:e,includeChildren:!1}]}:aI()}if("__is_new__"===a||"__is_stored__"===a){let e=r8(n,i);return e?{wildcard:!1,valuePaths:[{path:[...e,a],rowScope:aa(n,i,[a])}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0}]}:aI()}return aI()}function aD(e,t){let l={deps:new Set,wildcard:!1};(0,rX.G)(t,l);let o=[],n=[],i=[],r=l.wildcard;for(let t of l.deps){if("fv:*"===t){r=!0;continue}if(!t.startsWith("fv:")){if("ctx:item"===t||t.startsWith("ctx:item:")){let l="ctx:item"===t?"":t.slice(9),a=aR(e,l?r6(l):[]);r||(r=a.wildcard),o.push(...a.valuePaths),n.push(...a.structuralPaths),i.push(...a.triggerPaths)}continue}let l=t.slice(3);if(!l){r=!0;continue}o.push({path:r6(l)})}return{wildcard:r,valuePaths:aA(o),structuralPaths:aP(n),triggerPaths:aT(i)}}function aE(e){return e.wildcard||e.valuePaths.length>0||e.structuralPaths.length>0||e.triggerPaths.length>0}function aY(e){var t;let l=null==e||null==(t=e.props)?void 0:t.value;return null!=l&&(!Array.isArray(l)||l.length>0)}function aN(e,t){if(!aE(e))return!1;if(e.wildcard)return!0;let l=r9(t);if(!l.length)return!0;for(let t of l){for(let l of e.valuePaths)if(rZ(l.path,t)||rZ(t,l.path))return!0;for(let l of e.structuralPaths)if(rQ(l.path,t)||rZ(t,l.path))return!0;for(let l of e.triggerPaths)if(l.includeChildren&&(rZ(l.path,t)||rZ(t,l.path))||!l.includeChildren&&rQ(l.path,t))return!0}return!1}function aO(e,t){let l=e=>e.map(e=>(0,rJ.Qc)(e.path)).sort(),o=e=>e.map(e=>`${e.kind}:${(0,rJ.Qc)(e.path)}`).sort();return JSON.stringify({formBlockUid:null==t?void 0:t.uid,wildcard:e.wildcard,valuePaths:l(e.valuePaths),structuralPaths:o(e.structuralPaths),triggerPaths:e.triggerPaths.map(e=>`${e.includeChildren?"children":"exact"}:${(0,rJ.Qc)(e.path)}`).sort()})}function aB(e){var t,l;return(t=e)[l=aF]||(t[l]=new Map)}function aV(e){return ae(e)}function aH(e){var t,l;if(!aY(e))return;let o=Array.isArray(null==e||null==(t=e.props)?void 0:t.value)?[]:null;"function"==typeof e.change?e.change(o):"function"==typeof(null==e||null==(l=e.props)?void 0:l.onChange)&&e.props.onChange(o)}function aq(e){var t;return!!e&&"object"==typeof e&&"function"==typeof(null==e||null==(t=e.props)?void 0:t.onChange)}function a$(e,t){let l=aB(e).get(t);l&&l.dispose()}function az(e,t){var l,o,n,i,r,a;let s=e.model,d=null==e?void 0:e.flowKey;if(!aq(s)||!d)return;let u="dataScope",c=`${d}:${u}`,p=aD(e,t);if(!aE(p))return void a$(s,c);let m=aV(e);if(!m)return void a$(s,c);let h=aO(p,m),f=aB(s),g=f.get(c);if((null==g?void 0:g.signature)===h)return;g&&g.dispose();let v=(null==s||null==(l=s.flowEngine)?void 0:l.emitter)||(null==e||null==(o=e.engine)?void 0:o.emitter)||(null==s||null==(i=s.context)||null==(n=i.engine)?void 0:n.emitter),y={signature:h,snapshot:ax(p,m),dispose:()=>{}},_=()=>{var e,t,l,o;null==(t=m.emitter)||null==(e=t.off)||e.call(t,ak,b),null==v||null==(l=v.off)||l.call(v,"model:unmounted",x),null==v||null==(o=v.off)||o.call(v,"model:destroyed",M),f.get(c)===y&&f.delete(c)},b=e=>{var t;if(s.disposed||m.disposed)return void _();if(!aN(p,e))return;let l=aS(p,m,e,y.snapshot);(null==(t=l.snapshot)?void 0:t.complete)&&(y.snapshot=l.snapshot),"unchanged"===l.status||aY(s)&&aH(s)},x=e=>{let{model:t}=e;(t===m||t===s&&s.disposed)&&_()},M=e=>{let{model:t}=e;(t===s||t===m)&&_()};y.dispose=_,f.set(c,y),m.emitter.on(ak,b),null==v||null==(r=v.on)||r.call(v,"model:unmounted",x),null==v||null==(a=v.on)||a.call(v,"model:destroyed",M)}let aU=(0,f.defineAction)({name:"dataScope",title:(0,f.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function(e){let t=(0,f.useFlowSettingsContext)();return(0,m.jsx)(rO.I8,{value:e.value,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t.model,rightAsVariable:!0,maxAssociationFieldDepth:t.model instanceof rB.o?void 0:2})})}}},defaultParams:e=>({filter:{logic:"$and",items:[]}}),useRawParams:!0,async handler(e,t){var l;let o=null==(l=e.model)?void 0:l.resource;if(!o)return;let n=await e.resolveJsonTemplate(t.filter),i=rW(t.filter,n);az(e,t.filter),(0,I.isEmptyFilter)(i)?o.removeFilterGroup(e.model.uid):o.addFilterGroup(e.model.uid,i)}});var aK=__webpack_require__(5042),aG=__webpack_require__(8481);class aW extends f.FlowModel{static getAllParentClasses(){let e=[],t=this;for(;t&&t!==Object;)(null==(t=Object.getPrototypeOf(t))?void 0:t.currentModels)&&e.push(t);return e}static get currentModels(){return Object.prototype.hasOwnProperty.call(this,"_models")&&this._models||(this._models=new Map),this._models}static get models(){let e=new Map;for(let t of this.getAllParentClasses())for(let[l,o]of t.currentModels)e.set(l,o);for(let[t,l]of this.currentModels)e.set(t,l);return e}static registerActionModels(e){for(let[t,l]of Object.entries(e))Object.defineProperty(l,"name",{value:t}),this.currentModels.set(t,l)}static isActionModelVisible(e,t){var l;let o=t.collection||(null==(l=t.blockModel)?void 0:l.collection),n=(0,aG.GX)(e);return(0,aG.F3)(o,n)}static async defineChildren(e){let t=this.baseClass?await (0,f.buildSubModelItems)(this.baseClass)(e):[],l=[],o=t.filter(t=>{let l=e.engine.getModelClass(t.useModel);return!!this.isActionModelVisible(l,e)&&(!this.scene||l._isScene(this.scene))});for(let[t,n]of this.models){if(!this.isActionModelVisible(n,e)||o.find(e=>e.useModel===n.name))continue;let t=await (0,f.buildSubModelItem)(n,e);t&&l.push(t)}return g.default.sortBy([...o,...l],"sort")}}class aJ extends aW{}aJ.baseClass=aK.S0,aJ.scene=aK.s5.collection;class aX extends aW{}aX.baseClass=aK.S0,aX.scene=aK.s5.record;var aQ=__webpack_require__(7827);class aZ extends f.FlowModel{static defineChildren(e){let t=this.itemModelName,l=this.maxAssociationFieldDepth??2,o=function(n){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return r>=l?[]:n.getToOneAssociationFields().map(n=>{let a=i?`${i}.${n.name}`:n.name,s=r+1;return n.targetCollection?{key:`${a}-assocationField`,label:n.title,children:()=>[{key:`${a}-children-collectionField`,label:e.t("Display fields"),type:"group",children:n.targetCollection.getFields().map(o=>{var n;if(s>=l&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return;let i=`${a}.${o.name}`,r=f.DisplayItemModel.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!r)return;let d=r.modelName;return{key:`c-${a}.${o.name}`,label:o.title,useModel:t,toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===i},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:e.collection.dataSourceKey,collectionName:e.prefixFieldPath?e.blockModel.context.collection.name:e.collection.name,fieldPath:i,associationPathName:a}}},subModels:{field:{use:d}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(o(n.targetCollection,a,s)||[]).filter(Boolean)}].filter(e=>{var t;return e.key!==`${a}-children-associationField`||(null==(t=e.children)?void 0:t.length)>0})}:void console.error(`AssociationFieldGroupModel: target collection ${n.target} not found for field ${n.name}`)}).filter(Boolean)};return o(e.collection,e.prefixFieldPath)}}function a0(e){return["multipleSelect","checkboxGroup"].includes(null==e?void 0:e.interface)||["array","json","jsonb"].includes(null==e?void 0:e.type)}function a1(e){return e.context}function a2(e,t){var l;let o=e[t]||(null==(l=a1(e))?void 0:l[t]);return o&&"object"==typeof o?o:void 0}function a5(e){var t,l,o;let n=null==(t=a1(e))?void 0:t.dataSourceManager;return n||(null==(o=e.flowEngine)||null==(l=o.context)?void 0:l.dataSourceManager)}function a8(e){return{operatorGroup:e.operatorGroup,operators:Array.isArray(e.operators)?[...e.operators]:e.operators,operatorOverrides:Array.isArray(e.operatorOverrides)?[...e.operatorOverrides]:e.operatorOverrides}}function a4(e){if(!1===e)return[];if(!e||"object"!=typeof e)return;let t=iY(a8(e));return Array.isArray(null==t?void 0:t.operators)&&t.operators.length>0?t.operators:Array.isArray(null==t?void 0:t.operatorOverrides)&&t.operatorOverrides.length>0?t.operatorOverrides:void 0}function a3(e,t){var l;let o="string"==typeof(null==t?void 0:t.interface)?t.interface:void 0;if(!o)return;let n=a5(e),i=null==n?void 0:n.collectionFieldInterfaceManager,r=null==i||null==(l=i.getFieldInterface)?void 0:l.call(i,o);return null==r?void 0:r.filterable}function a6(e){let t=[null==e?void 0:e.interface,null==e?void 0:e.type].filter(e=>"string"==typeof e),l=et.II;for(let e of t){let t=l[e];if(null==t?void 0:t.length)return t}return[]}function a9(e){let t=a2(e,"collectionField"),l=a2(e,"filterField"),o=t||l;if((null==o?void 0:o.filterable)===!1)return[];let n=a4(null==o?void 0:o.filterable);if(null==n?void 0:n.length)return n;let i=a3(e,o);if(!1===i)return[];let r=a4(i);return(null==r?void 0:r.length)?r:a6(o)}function a7(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se(e);if(!t)return null;let l=a2(e,"collectionField")||a2(e,"filterField");return a9(e).find(e=>e.value===t&&(!e.visible||e.visible(l)))||null}function se(e){var t,l,o,n,i,r;let a=a9(e);return e.operator||(null==(l=e.getStepParams)||null==(t=l.call(e,"filterFormItemSettings","defaultOperator"))?void 0:t.value)||(null==(n=e.subModels)||null==(o=n.field)?void 0:o.operator)||(null==(i=a.find(e=>e.selected))?void 0:i.value)||(null==(r=a[0])?void 0:r.value)||"$includes"}function st(e){return!!(null==e||"string"==typeof e&&""===e.trim()||Array.isArray(e)&&0===e.filter(e=>null!=e&&("string"!=typeof e||""!==e.trim())).length)||"object"==typeof e&&e.constructor===Object&&0===Object.keys(e).length}function sl(e){return e.filterSubModels("items",e=>{var t;return!!(null==(t=e.resource)?void 0:t.supportsFilter)})}aZ.itemModelName="DetailsItemModel",aZ.maxAssociationFieldDepth=2,aZ.define({label:'{{t("Display fields")}}'});let so={$match:"$in",$anyOf:"$in",$notMatch:"$notIn",$noneOf:"$notIn"};function sn(e,t){var l,o,n;let i=null==e||null==(l=e.context)?void 0:l.dataSourceManager,r=null==e?void 0:e.collection;if(!i||!(null==r?void 0:r.dataSourceKey)||!(null==r?void 0:r.name)||!t)return;let a=r.name,s=t.split(".").filter(Boolean);for(let e=0;e<s.length;e+=1){let t=null==(o=i.getCollectionField)?void 0:o.call(i,`${r.dataSourceKey}.${a}.${s[e]}`);if(!t||e===s.length-1)return t;if(!(a=t.target||(null==(n=t.targetCollection)?void 0:n.name)))return}}function si(e,t,l){let o=so[e];if(!o)return e;let n=sn(t,l);return!n||a0(n)?e:o}async function sr(e){(null==e?void 0:e.loading)&&await new Promise(t=>{let l=()=>{e.loading?setTimeout(l,16):t()};l()})}function sa(e){if(e instanceof Error)return e.message;try{return String(e)}catch{return"Unknown error"}}class ss{async saveFilterConfigs(){await this.gridModel.saveStepParams()}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(e){let t=this.filterConfigs.filter(t=>t.filterId===e);if(0!==t.length)return{targets:t.map(e=>({targetId:e.targetId,filterPaths:e.filterPaths}))}}async prepareFiltersForTarget(e){let t=this.filterConfigs.filter(t=>t.targetId===e),l=new Set;return await Promise.all(t.map(async t=>{try{var o;let e=this.gridModel.flowEngine.getModel(t.filterId),n=null==e||null==(o=e.context)?void 0:o.blockModel;if(!n||"function"!=typeof n.prepareInitialFilterValues)return;let i=await n.prepareInitialFilterValues();!1!==i&&l.add(n)}catch(t){console.error(`Failed to prepare filter defaults for target "${e}": ${sa(t)}`)}})),l}async saveConnectFieldsConfig(e,t){let l=t.targets.map(t=>({filterId:e,targetId:t.targetId,filterPaths:t.filterPaths})),o=this.filterConfigs.filter(t=>t.filterId!==e);this.filterConfigs=[],this.filterConfigs.push(...o,...l),await this.saveFilterConfigs()}async addFilterConfig(e){if(!e.filterId||!e.targetId)return void console.error("FilterConfig must have filterId, targetId, and operator");if(!Array.isArray(e.filterPaths)||0===e.filterPaths.length)return void console.error("FilterConfig must have non-empty filterPaths array");let t=this.filterConfigs.findIndex(t=>t.filterId===e.filterId&&t.targetId===e.targetId);t>=0?this.filterConfigs[t]={...e}:this.filterConfigs.push({...e}),await this.saveFilterConfigs()}async removeFilterConfig(e){let{filterId:t,targetId:l,persist:o=!0}=e;if(!t&&!l)return console.error("At least one of filterId or targetId must be provided"),0;let n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(e=>t&&l?e.filterId!==t||e.targetId!==l:t?e.filterId!==t:!l||e.targetId!==l);let i=n-this.filterConfigs.length;return i>0&&o&&await this.saveFilterConfigs(),i}bindToTarget(e){if(!e||"string"!=typeof e)return void console.error("[NocoBase]: targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`[NocoBase]: Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.addFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with addFilterGroup method`);if("function"!=typeof t.resource.removeFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{let l=this.gridModel.flowEngine.getModel(e.filterId);if(!l)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" not found`);if(!l.getFilterValue)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" does not have getFilterValue method`);let n=l.getFilterValue();if(st(n)){try{t.resource.removeFilterGroup(e.filterId),o.setFilterActive(e.filterId,!1)}catch(e){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${e.message}`)}return}o.setFilterActive(e.filterId,!0);let i=e.filterPaths.map(o=>({path:o,operator:si(e.operator||se(l),t,o),value:n}));try{if(1===i.length)t.resource.addFilterGroup(e.filterId,new f.FilterItem({path:i[0].path,operator:i[0].operator,value:i[0].value}));else if(i.length>1){let l={logic:"$or",items:i};t.resource.addFilterGroup(e.filterId,new f.FilterGroup(l))}}catch(e){console.error(`Failed to bind filter configuration to target model: ${e.message}`);return}})}unbindFromTarget(e){if(!e||"string"!=typeof e)return void console.error("targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.removeFilterGroup)return void console.error(`Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{try{t.resource.removeFilterGroup(e.filterId),"function"==typeof(null==o?void 0:o.removeFilterSource)&&o.removeFilterSource(e.filterId)}catch(e){console.error(`Failed to unbind filter configuration from target model: ${e.message}`);return}})}async refreshTargetsByFilter(e,t){if(!e)return void console.error("filterId must be provided");let l=Array.isArray(e)?e:[e];if(0===l.length||l.some(e=>!e||"string"!=typeof e))return void console.error("filterId must be non-empty string(s)");let o=this.filterConfigs.filter(e=>l.includes(e.filterId));if(0===o.length)return;let n=(null==t?void 0:t.excludeTargetIds)?new Set(t.excludeTargetIds):void 0,i=[...new Set(o.map(e=>e.targetId))].filter(e=>!(null==n?void 0:n.has(e))).map(async e=>{try{var t,l;this.bindToTarget(e);let o=this.gridModel.flowEngine.getModel(e);if(!o)return void console.error(`Target model with uid "${e}" not found`);if(!o.resource||"function"!=typeof o.resource.refresh)return void console.error(`Target model with uid "${e}" does not have a valid resource with refresh method`);let n=o,i=o.resource,r=o,a=n.getDataLoadingMode();if("manual"===a&&!n.hasActiveFilters()){i.setData([]),i.setMeta({count:0,hasNext:!1}),"function"==typeof i.setPage&&i.setPage(1),i.loading=!1,null==(l=r.resetAfterFilterChange)||l.call(r);return}await sr(i),"function"==typeof i.setPage&&i.setPage(1),await i.refresh(),null==(t=r.resetAfterFilterChange)||t.call(r)}catch(t){console.error(`Failed to refresh target model "${e}": ${t.message}`);return}});await Promise.all(i)}constructor(e,t){this.gridModel=e,this.filterConfigs=t||[]}}function sd(e){let{rows:t={},sizes:l={},layout:o,renderItem:n,rowGap:i=16,colGap:r=16,dragOverlayRect:a}=e,s=o||(0,f.normalizeGridLayout)({rows:t,sizes:l});return s.rows.length?(0,m.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:i},"data-grid-root":!0,children:[a&&(0,m.jsx)(sp,{rect:a}),(0,m.jsx)(su,{rows:s.rows,renderItem:n,rowGap:i,colGap:r,parentPath:[]})]}):(0,m.jsx)("div",{style:{position:"relative"},"data-grid-root":!0,"data-grid-empty-container":!0,children:a&&(0,m.jsx)(sp,{rect:a})})}function su(e){let{rows:t,renderItem:l,rowGap:o,colGap:n,parentPath:i}=e;return(0,m.jsx)(m.Fragment,{children:t.map(e=>{let t=e.cells.length,r=e.sizes||[],a=r.some(e=>null!=e&&void 0!==e),s=[...i,{rowId:e.id}],d=e.cells.map((e,l)=>{if(!a)return 24/t;{let e=r.reduce((e,t)=>e+(t||0),0),o=t-r.filter(Boolean).length,n=o>0?(24-e)/o:0;return r[l]??n}});return(0,m.jsx)(b.Row,{gutter:n,"data-grid-row-id":e.id,"data-grid-path":JSON.stringify(s),children:e.cells.map((t,i)=>(0,m.jsx)(sc,{rowKey:e.id,columnIndex:i,span:d[i],rowGap:o,colGap:n,cell:t,path:[...s.slice(0,-1),{rowId:e.id,cellId:t.id}],renderItem:l},t.id))},e.id)})})}let sc=i.default.memo(function(e){var t;let{rowKey:l,columnIndex:o,span:n,rowGap:i,colGap:r,cell:a,path:s,renderItem:d}=e,u=a.items||[];return(0,m.jsx)(b.Col,{span:n,"data-grid-column-row-id":l,"data-grid-column-index":o,"data-grid-path":JSON.stringify(s),children:(0,m.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:[u.map((e,t)=>e===f.EMPTY_COLUMN_UID?null:(0,m.jsx)("div",{"data-grid-item-row-id":l,"data-grid-column-index":o,"data-grid-item-index":t,"data-grid-item-uid":e,"data-grid-path":JSON.stringify(s),children:d(e)},e)),(null==(t=a.rows)?void 0:t.length)?(0,m.jsx)(su,{rows:a.rows,renderItem:d,rowGap:i,colGap:r,parentPath:s}):null]})})});function sp(e){let{rect:t}=e,l={position:"absolute",top:t.top,left:t.left,width:t.width,height:t.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"item-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"}};return(0,m.jsx)("div",{style:{...l,...o[t.type]}})}sc.displayName="GridColumn";let sm=e=>{let{value:t,onChange:l,rows:o=10,...n}=e,[r,a]=(0,i.useState)(()=>t?JSON.stringify(t,null,2):""),[s,d]=(0,i.useState)(null);(0,i.useEffect)(()=>{a(t?JSON.stringify(t,null,2):"")},[t]);let u=e=>{let t=e.target.value;a(t);try{let e=t.trim()?JSON.parse(t):void 0;d(null),null==l||l(e)}catch(e){d(e.message)}};return(0,m.jsxs)("div",{children:[(0,m.jsx)(b.Input.TextArea,{value:r,autoSize:{minRows:o,maxRows:o+10},onChange:u,...n}),s&&(0,m.jsx)(b.Alert,{type:"error",message:s,showIcon:!0,style:{marginTop:8}})]})},sh=(0,lj.connect)(sm),sf="gridSettings",sg="grid",sv=new Set(["column-edge","item-edge","empty-column"]),sy=e=>e.filter(e=>!sv.has(e.type)),s_=e=>{if(!e)return null;if("number"==typeof e.clientX&&"number"==typeof e.clientY)return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){let t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){let t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class sb extends f.FlowModel{onInit(e){super.onInit(e),this.props.dragOverlayRect&&this.setProps("dragOverlayRect",null)}bindDragDocumentListeners(){var e;let t=(null==(e=this.getDragContainer())?void 0:e.ownerDocument)||("u"<typeof document?null:document);if(!t)return;let l={capture:!0,passive:!0},o={capture:!0},n=t.defaultView;return t.addEventListener("pointermove",this.updateDragPointerPosition,l),t.addEventListener("mousemove",this.updateDragPointerPosition,l),t.addEventListener("touchmove",this.updateDragPointerPosition,l),t.addEventListener("scroll",this.handleDragScroll,l),null==n||n.addEventListener("scroll",this.handleDragScroll,l),()=>{t.removeEventListener("pointermove",this.updateDragPointerPosition,o),t.removeEventListener("mousemove",this.updateDragPointerPosition,o),t.removeEventListener("touchmove",this.updateDragPointerPosition,o),t.removeEventListener("scroll",this.handleDragScroll,o),null==n||n.removeEventListener("scroll",this.handleDragScroll,o)}}deriveRowOrder(e,t){let l=[],o=new Set;return(t||Object.keys(e)).forEach(t=>{e[t]&&!o.has(t)&&(l.push(t),o.add(t))}),Object.keys(e).forEach(e=>{o.has(e)||(l.push(e),o.add(e))}),l}normalizeRowsWithOrder(e,t){let l=this.deriveRowOrder(e,t),o={};return l.forEach(t=>{e[t]&&(o[t]=e[t])}),Object.keys(e).forEach(t=>{o[t]||(o[t]=e[t])}),{rows:o,rowOrder:l}}orderSizesByRowOrder(e,t){let l={};return t.forEach(t=>{e[t]&&(l[t]=e[t])}),Object.keys(e).forEach(t=>{l[t]||(l[t]=e[t])}),l}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings={showBackground:!1,showDragHandle:!0,...this.itemFlowSettings}),this._memoItemFlowSettings}getItemUids(){return(this.subModels.items||[]).map(e=>e.uid)}normalizeLayoutFromSource(e){let t=this.getStepParams(sf,sg)||{};return(0,f.normalizeGridLayout)({layout:(null==e?void 0:e.layout)??this.props.layout??t.layout,rows:(null==e?void 0:e.rows)??this.props.rows??t.rows,sizes:(null==e?void 0:e.sizes)??this.props.sizes??t.sizes,rowOrder:(null==e?void 0:e.rowOrder)??this.props.rowOrder??t.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}getGridLayout(){return this.normalizeLayoutFromSource()}serialize(){let e=super.serialize();return e.props=g.default.omit(e.props,["dragOverlayRect"]),e}syncLayoutProps(e){let t=(0,f.projectLayoutToLegacyRows)(e);this.setProps("layout",e),this.setProps("rows",t.rows),this.setProps("sizes",t.sizes),this.setProps("rowOrder",t.rowOrder)}setGridStepLayout(e){this.setStepParams(sf,{[sg]:{layout:e}})}findLayoutRowByPath(e,t){if(!(null==t?void 0:t.length))return null;let l=e.rows;for(let e=0;e<t.length;e+=1){let o=t[e],n=l.find(e=>e.id===o.rowId);if(!n)break;if(e===t.length-1)return n;let i=n.cells.find(e=>e.id===o.cellId);l=(null==i?void 0:i.rows)||[]}return null}collectCellItemsForResize(e){return Array.isArray(e.items)?[...e.items]:(e.rows||[]).flatMap(e=>e.cells.flatMap(e=>this.collectCellItemsForResize(e)))}buildResizedCells(e,t){let l=new Set;return t.map((t,o)=>{let n=e.cells.findIndex((e,o)=>!l.has(o)&&g.default.isEqual(this.collectCellItemsForResize(e),t));if(-1!==n){l.add(n);let o=e.cells[n];return o.rows&&!o.items?g.default.cloneDeep(o):{id:o.id,items:[...t]}}return{id:`${e.id}:cell:${o}:${(0,io.uid)()}`,items:[...t]}})}getResizeRowPath(e){if(!(null==e?void 0:e.length))return[];let t=e.map(e=>({...e}));return delete t[t.length-1].cellId,t}getResizeContainerWidth(e){var t,l,o;let n=this.getResizeRowPath(e),i=(null==(t=this.gridContainerRef.current)?void 0:t.clientWidth)||0;if(!n.length)return i;let r=Array.from((null==(l=this.gridContainerRef.current)?void 0:l.querySelectorAll("[data-grid-row-id]"))||[]).find(e=>{try{return g.default.isEqual(JSON.parse(e.dataset.gridPath||"[]"),n)}catch{return!1}});return(null==r||null==(o=r.parentElement)?void 0:o.clientWidth)||i}prunePlaceholderOnlyRows(e){let t=e=>e.map(e=>{let l=e.cells.map((l,o)=>{var n,i;let r=(null==(n=e.sizes)?void 0:n[o])??1;if(null==(i=l.rows)?void 0:i.length){let e=t(l.rows);return e.length?{cell:{...l,rows:e},size:r,hasRealItem:!0}:null}let a=l.items||[],s=a.some(e=>e!==f.EMPTY_COLUMN_UID),d=a.includes(f.EMPTY_COLUMN_UID);return s||d?{cell:l,size:r,hasRealItem:s}:null}).filter(Boolean);return l.some(e=>e.hasRealItem)?{...e,cells:l.map(e=>e.cell),sizes:l.map(e=>e.size)}:null}).filter(Boolean);return(0,f.normalizeGridLayout)({layout:{...e,rows:t(e.rows||[])},itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}resizeGridLayout(e){var t;let{direction:l,resizeDistance:o,model:n}=e,i=this.getGridLayout(),r=(0,f.findModelUidLayoutPosition)(i,n.uid);if(!r)return null;let a=this.findLayoutRowByPath(i,r.path);if(!a)return null;let s=this.getResizeContainerWidth(r.path),d=a.cells.map(e=>this.collectCellItemsForResize(e)),{newRows:u,newSizes:c,moveDistance:p}=sM({position:{rowId:a.id,columnIndex:r.cellIndex,itemIndex:r.itemIndex},direction:l,resizeDistance:o,prevMoveDistance:this.prevMoveDistance,oldRows:{[a.id]:d},oldSizes:{[a.id]:a.sizes||[]},gutter:(null==(t=this.context.themeToken)?void 0:t.marginBlock)??16,gridContainerWidth:s}),m=g.default.cloneDeep(i),h=this.findLayoutRowByPath(m,r.path);return h?(h.cells=this.buildResizedCells(a,u[a.id]||[]),h.sizes=c[a.id]||[],{layout:(0,f.normalizeGridLayout)({layout:m,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}),moveDistance:p}):null}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",e=>{e.isNew&&(this.resetRows(!0),this.setGridStepLayout(this.props.layout))}),this.emitter.on("onSubModelDestroyed",e=>{var t,l;let o=e.uid;this.resetRows(!0);let n=this.prunePlaceholderOnlyRows(this.props.layout);this.setGridStepLayout(n),this.syncLayoutProps(n),null==(t=this.context.filterManager)||t.removeFilterConfig({targetId:o}),null==(l=this.context.filterManager)||l.removeFilterConfig({filterId:o}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"left",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeRight",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"right",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeBottom",e=>{let{resizeDistance:t,model:l}=e}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout(this.props.layout)})}saveGridLayout(e){let t=e&&"version"in e?(0,f.normalizeGridLayout)({layout:e,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}):this.normalizeLayoutFromSource(e);this.setGridStepLayout(t),this.syncLayoutProps(t),this.saveStepParams()}mergeRowsWithItems(e){let t=this.subModels.items||[];if(!t||0===t.length)return{};let l=new Set(t.map(e=>e.uid));l.add(f.EMPTY_COLUMN_UID);let o=new Set,n={};for(let[t,i]of Object.entries(e)){let e=i.map(e=>g.default.castArray(e).filter(e=>l.has(e))).filter(e=>e.length>0);e.length>0&&(n[t]=e,e.forEach(e=>e.forEach(e=>o.add(e))))}let i=new Set;for(let e of(Object.values(n).forEach(e=>e.forEach(e=>e.forEach(e=>i.add(e)))),t))i.has(e.uid)||(n[(0,io.uid)()]=[[e.uid]]);return n}resetRows(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getStepParams(sf,sg)||{},l=this.normalizeLayoutFromSource(t);this.setGridStepLayout(l),e&&this.syncLayoutProps(l)}computePointerPosition(e){var t;if(!this.dragState)return null;if(this.dragState.pointerPosition)return this.dragState.pointerPosition;let l=this.dragState.pointerOrigin;if(l)return{x:l.x+e.delta.x,y:l.y+e.delta.y};let o=s_(e.activatorEvent);if(o)return this.dragState.pointerOrigin=o,{x:o.x+e.delta.x,y:o.y+e.delta.y};let n=null==(t=e.over)?void 0:t.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}getDragContainer(){if(!this.dragState)return this.gridContainerRef.current;let e=this.gridContainerRef.current;return e&&this.dragState.containerEl!==e&&(this.dragState.containerEl=e),this.dragState.containerEl||e}updateLayoutSnapshot(){if(!this.dragState)return;let e=(0,f.buildLayoutSnapshot)({container:this.getDragContainer()});this.dragState.slots=this.context.isMobileLayout?sy(e.slots):e.slots,this.dragState.containerRect=e.containerRect}scheduleSnapshotRefresh(){!this.dragState||this.dragState.refreshTimer||(this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot(),this.refreshPreviewFromPointer())},16))}refreshPreviewFromPointer(){if(!this.dragState)return;let e=this.dragState.pointerPosition||this.dragState.pointerOrigin;if(!e)return;let t=this.resolveDragSlot(e);this.applyPreview(t)}computeOverlayRect(e){var t,l,o,n;let i=this.dragOverlayConfig,r=e.rect;switch(e.type){case"column":{let l=null==i||null==(t=i.columnInsert)?void 0:t[e.position],o=(null==l?void 0:l.height)??r.height,n=(null==l?void 0:l.offsetTop)??0;return{top:r.top+n,left:r.left,width:r.width,height:o}}case"column-edge":{let t=null==i||null==(l=i.columnEdge)?void 0:l[e.direction],o=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:o,height:r.height}}case"item-edge":{let t=null==i||null==(o=i.columnEdge)?void 0:o[e.direction],l=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:l,height:r.height}}case"row-gap":{let t=null==i||null==(n=i.rowGap)?void 0:n[e.position],l=(null==t?void 0:t.height)??r.height,o=(null==t?void 0:t.offsetTop)??0;return{top:r.top+o,left:r.left,width:r.width,height:l}}default:return{top:r.top,left:r.left,width:r.width,height:r.height}}}getHitTestSlot(e){return{...e,rect:this.computeOverlayRect(e)}}resolveDragSlot(e){var t;return(null==(t=this.dragState)?void 0:t.slots.length)?(0,f.resolveDropIntent)(e,this.dragState.slots.map(e=>this.getHitTestSlot(e))):null}applyPreview(e){if(!this.dragState)return;if(!e){null!==this.dragState.activeSlotKey&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}let t=(0,f.getSlotKey)(e);if(this.dragState.activeSlotKey===t&&this.dragState.previewLayout)return;let l=(0,f.simulateLayoutForSlot)({slot:e,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:io.uid,generatedIds:this.dragState.generatedIds,generateId:()=>(0,io.uid)()});if(l.layout&&this.dragState.snapshot.layout&&(0,f.isSameGridLayout)(l.layout,this.dragState.snapshot.layout))return void this.applyPreview(null);this.dragState.previewLayout={rows:g.default.cloneDeep(l.rows),sizes:g.default.cloneDeep(l.sizes),rowOrder:g.default.cloneDeep(l.rowOrder),layout:g.default.cloneDeep(l.layout)};let o=this.computeOverlayRect(e),n={top:o.top-this.dragState.containerRect.top,left:o.left-this.dragState.containerRect.left,width:o.width,height:o.height,type:e.type};this.setProps("dragOverlayRect",n),this.dragState.activeSlotKey=t}handleDragStart(e){let t=e.active.id,l=this.normalizeLayoutFromSource(),o=(0,f.projectLayoutToLegacyRows)(l);this.dragState={sourceUid:t,snapshot:{rows:g.default.cloneDeep(o.rows),sizes:g.default.cloneDeep(o.sizes),rowOrder:g.default.cloneDeep(o.rowOrder),layout:g.default.cloneDeep(l)},slots:[],containerEl:this.gridContainerRef.current,containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:s_(e.activatorEvent)??void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null,generatedIds:new Map},this.dragState.cleanupListeners=this.bindDragDocumentListeners(),this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(e){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();let t=this.computePointerPosition(e);if(!t)return void this.applyPreview(null);let l=this.resolveDragSlot(t);this.applyPreview(l)}finishDrag(){var e,t;this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),null==(e=(t=this.dragState).cleanupListeners)||e.call(t),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(e){if(!this.dragState)return;let t=this.computePointerPosition(e);if(t){let e=this.resolveDragSlot(t);this.applyPreview(e)}let l=this.dragState.previewLayout;l&&(l.layout?this.syncLayoutProps(g.default.cloneDeep(l.layout)):(this.setProps("rows",g.default.cloneDeep(l.rows)),this.setProps("sizes",g.default.cloneDeep(l.sizes)),l.rowOrder&&this.setProps("rowOrder",g.default.cloneDeep(l.rowOrder))),this.saveGridLayout(l)),this.finishDrag()}handleDragCancel(e){this.finishDrag()}renderAddSubModelButton(){throw Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var e;let t=this.normalizeLayoutFromSource(),l=this.context.isMobileLayout?(0,f.normalizeGridLayout)({rows:sx((0,f.projectLayoutToLegacyRows)(t).rows),itemUids:this.getItemUids()}):t,o=(0,f.projectLayoutToLegacyRows)(l),{rows:n,rowOrder:i}=this.normalizeRowsWithOrder(o.rows,o.rowOrder),r=this.orderSizesByRowOrder(o.sizes,i);if(this.context.flowSettingsEnabled)return{layout:l,rows:n,sizes:r};let a=new Map(((null==(e=this.subModels)?void 0:e.items)||[]).map(e=>[e.uid,e])),s=e=>e.map(e=>{let t=e.cells.map((t,l)=>{var o;let n=null==(o=e.sizes)?void 0:o[l],i=Number.isFinite(n)&&n>0?n:1;if(t.rows){let e=s(t.rows);return e.length?{cell:{...t,rows:e},size:i,hasVisibleContent:!0}:null}let r=(t.items||[]).filter(e=>{var t;return e===f.EMPTY_COLUMN_UID||(null==(t=a.get(e))?void 0:t.hidden)!==!0}),d=r.some(e=>{if(e===f.EMPTY_COLUMN_UID)return!1;let t=a.get(e);return!t||!t.hidden}),u=r.includes(f.EMPTY_COLUMN_UID);return d||u?{cell:{...t,items:r},size:i,hasVisibleContent:d}:null}).filter(Boolean);return t.some(e=>e.hasVisibleContent)?{...e,cells:t.map(e=>e.cell),sizes:t.map(e=>e.size)}:null}).filter(Boolean),d=(0,f.normalizeGridLayout)({layout:{version:2,rows:s(l.rows)}}),u=(0,f.projectLayoutToLegacyRows)(d);return{layout:d,rows:u.rows,sizes:u.sizes}}render(){let{layout:e,rows:t,sizes:l}=this.getVisibleLayout(),o=Object.keys(t||{}).length>0;return(0,m.jsxs)(m.Fragment,{children:[o&&(0,m.jsx)(b.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap,display:"flex"},size:this.props.rowGap,children:(0,m.jsx)(f.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,m.jsx)(sd,{rowGap:this.props.rowGap,colGap:this.props.colGap,layout:e,rows:t,sizes:l,dragOverlayRect:this.props.dragOverlayRect,renderItem:e=>{var t,l,o,n,i;let r=this.flowEngine.getModel(e);if(!r)return this.itemFallback;let a=this.context.fieldKey,s=this.context.fieldIndex,d=this.context.getPropertyOptions("item"),u=null==(t=(l=this.context).getPropertyOptions)?void 0:t.call(l,"record"),c=null==(o=(n=this.context).getPropertyOptions)?void 0:o.call(n,"currentObject"),p=null==s?r:(()=>{let t=r.createFork({},`${a}:${e}`);t.context.defineProperty("fieldIndex",{get:()=>s}),t.context.defineProperty("fieldKey",{get:()=>a}),t.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:null==u?void 0:u.meta,resolveOnServer:null==u?void 0:u.resolveOnServer,serverOnlyWhenContextParams:null==u?void 0:u.serverOnlyWhenContextParams}),t.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:null==c?void 0:c.resolveOnServer,serverOnlyWhenContextParams:null==c?void 0:c.serverOnlyWhenContextParams});let{value:l,...o}=d||{};return t.context.defineProperty("item",{...o,get:()=>this.context.item,cache:!1}),t})();return(0,m.jsx)(f.Droppable,{model:p,children:(0,m.jsx)(f.MemoFlowModelRenderer,{model:p,fallback:r.skeleton||this.itemFallback,showFlowSettings:!!this.context.flowSettingsEnabled&&this.getItemFlowSettings(),showErrorFallback:!0,settingsMenuLevel:(null==p?void 0:p.settingsMenuLevel)??this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${p.uid}:${a}:${(null==p?void 0:p.use)||(null==p||null==(i=p.constructor)?void 0:i.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,m.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}constructor(...e){super(...e),this.subModelBaseClass="BlockModel",this.gridContainerRef=i.default.createRef(),this.prevMoveDistance=0,this.itemSettingsMenuLevel=1,this.itemFlowSettings={},this.itemFallback=(0,m.jsx)(nV,{}),this.itemExtraToolbarItems=[{key:"drag-handler",component:f.DragHandler,sort:1}],this.updateDragPointerPosition=e=>{if(!this.dragState)return;let t=s_(e);t&&(this.dragState.pointerPosition=t)},this.handleDragScroll=()=>{this.dragState&&this.scheduleSnapshotRefresh()}}}function sx(e,t){let l=(null==t?void 0:t.emptyColumnUid)??f.EMPTY_COLUMN_UID,o={},n=e=>{if(!o[e])return e;let t=1,l=`${e}:duplicate:${t}`;for(;o[l];)t+=1,l=`${e}:duplicate:${t}`;return l};return Object.keys(e).forEach(t=>{let i=e[t].map((e,t)=>({columnIndex:t,items:e.filter(e=>e!==l)})).filter(e=>e.items.length>0);if(1===i.length&&0===i[0].columnIndex){o[n(t)]=[i[0].items];return}i.forEach(e=>{o[n(`mobile:${encodeURIComponent(t)}:${e.columnIndex}`)]=[e.items]})}),o}function sM(e){var t,l;let{position:o,direction:n,resizeDistance:i,prevMoveDistance:r,oldSizes:a,oldRows:s,gridContainerWidth:d,gutter:u=16,columnCount:c=24}=e,p=g.default.cloneDeep(s),m=g.default.cloneDeep(a),h=Math.floor(i/(d-u*((m[o.rowId]||[]).length-1))*c);if(h===r)return{newRows:p,newSizes:m,moveDistance:h};(t=m)[l=o.rowId]??(t[l]=[c]);let f=m[o.rowId],v=h-r,y="left"===n&&o.columnIndex>0,_="right"===n&&o.columnIndex<f.length-1;if(!y&&!_&&v>0){let e=c-f.reduce((e,t)=>e+t,0);if(e<=0)return{newRows:p,newSizes:m,moveDistance:r};v>e&&(h=r+e,v=e)}if(m[o.rowId][o.columnIndex]+=v,"left"===n&&o.columnIndex>0&&(m[o.rowId][o.columnIndex-1]-=v,0===m[o.rowId][o.columnIndex-1]&&sS({rows:p,sizes:m,position:o,direction:"left"})),"left"===n&&0===o.columnIndex){let e=m[o.rowId].slice(1).reduce((e,t)=>e+t,0);m[o.rowId][0]<c-e&&sw({rows:p,sizes:m,position:o,direction:"left"})}if("right"===n&&o.columnIndex<m[o.rowId].length-1&&(m[o.rowId][o.columnIndex+1]-=v,0===m[o.rowId][o.columnIndex+1]&&sS({rows:p,sizes:m,position:o,direction:"right"})),"right"===n&&o.columnIndex===m[o.rowId].length-1){let e=m[o.rowId].slice(0,-1).reduce((e,t)=>e+t,0);m[o.rowId][o.columnIndex]<c-e&&sw({rows:p,sizes:m,position:o,direction:"right"})}return{newRows:p,newSizes:m,moveDistance:h}}function sw(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[f.EMPTY_COLUMN_UID]),r.splice(o.columnIndex,0,1)}if("right"===n){let e=i[o.columnIndex+1];if(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[f.EMPTY_COLUMN_UID]),r.splice(o.columnIndex+1,0,1)}}function sS(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(!(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),r.splice(o.columnIndex-1,1)}if("right"===n){let e=i[o.columnIndex+1];if(!(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),r.splice(o.columnIndex+1,1)}}sb.registerFlow({key:sf,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{layout:{title:(0,f.tExpr)("Layout"),"x-decorator":"FormItem","x-component":sh,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,f.tExpr)("Configure the nested layout of the grid.")}}},async handler(e,t){let l=e.model,o=(0,f.normalizeGridLayout)({layout:t.layout,rows:t.rows,sizes:t.sizes,rowOrder:t.rowOrder,itemUids:l.getItemUids(),gridUid:l.uid,logger:console});l.setGridStepLayout(o),l.syncLayoutProps(o)}}}});let sk=["JSBlockModel","IframeBlockModel","MarkdownBlockModel"];class sF extends sb{onInit(e){super.onInit(e),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new ss(this,e.filterManager)})}onMount(){var e,t;super.onMount(),(null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.scene)!=="select"||this.viewActivatedListener||(this.viewActivatedListener=()=>{this.mapSubModels("items",e=>{var t;null==(t=e.onActive)||t.call(e)})},this.flowEngine.emitter.on(f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener))}onUnmount(){this.viewActivatedListener&&(this.flowEngine.emitter.off(f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),super.onUnmount()}get subModelBaseClasses(){var e;let t=(null==(e=this.context.view)?void 0:e.inputArgs)??{};return t.collectionName&&!t.filterByTk,["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}get addBlockItems(){var e,t;if((null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.scene)==="select")return async e=>{let t=await (0,f.buildSubModelGroups)(["DataBlockModel","FilterBlockModel"])(e),l=sk.filter(t=>!!e.engine.getModelClass(t)),o=(await Promise.all(l.map(t=>(0,f.buildSubModelItems)(t)(e)))).flat().sort((e,t)=>(e.sort??1e3)-(t.sort??1e3));return o.length>0&&t.push({key:"select-scene-other-blocks",type:"group",label:e.t("Other blocks"),sort:1e3,children:o}),t}}serialize(){let e=super.serialize();return e.filterManager=this.filterManager.getFilterConfigs(),e}renderAddSubModelButton(){let e=this.addBlockItems;return(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"items",items:e,subModelBaseClasses:e?void 0:this.subModelBaseClasses,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,m.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}constructor(...e){super(...e),this.dragOverlayConfig={columnInsert:{before:{offsetTop:-12},after:{offsetTop:12}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}}}}sF.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});var sC=__webpack_require__(3438),sA=__webpack_require__(9639),sP=__webpack_require__(146);class sT extends f.FlowModel{}var sj=__webpack_require__(2606);class sI extends sC.z{}sI.define({hide:!0,label:"Filter blocks"});var sL=__webpack_require__(2542);async function sR(e){var t,l,o,n,i;(null==(l=e.inputArgs)||null==(t=l.dirty)?void 0:t.hasDirtyForms)&&(await e.modal.confirm({title:e.t("Unsaved changes"),content:e.t("Are you sure you don't want to save?"),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||(null==(i=e.inputArgs)||null==(n=i.controller)||null==(o=n.prevent)||o.call(n),e.exitAll()))}let sD="__no_active_page_tab__";function sE(e){var t;let{hiddenTabKeys:l,hiddenActiveTabLabel:o,items:n,tabBarProps:r}=e,a=n.filter(e=>!l.has(String(e.key))).map(e=>{let{children:t,className:l,destroyInactiveTabPane:o,forceRender:n,style:i,...r}=e;return{...r,children:null}}),s=a.some(e=>e.key===r.activeKey)?r.activeKey:sD,d=null==(t=a.find(e=>!e.disabled))?void 0:t.key,u=l.has(String(r.activeKey))?String(r.activeKey):void 0,c=u&&r.id?`${r.id}-tab-${u}`:void 0,p=e=>{let t=String(e.key);if(s!==sD||t!==String(d))return e;let l=!1,o=i.default.Children.map(e.props.children,e=>l||!i.default.isValidElement(e)||"tab"!==e.props.role?e:(l=!0,i.default.cloneElement(e,{tabIndex:0})));return i.default.cloneElement(e,void 0,o)};return(0,m.jsxs)(m.Fragment,{children:[c?(0,m.jsx)("span",{id:c,hidden:!0,children:o||u}):null,(0,m.jsx)(b.Tabs,{activeKey:sD,animated:{inkBar:r.animated.inkBar,tabPane:!1},destroyInactiveTabPane:!0,id:r.id,items:a,more:r.more,onTabClick:(e,t)=>r.onTabClick(e,t),onTabScroll:r.onTabScroll,renderTabBar:(e,t)=>(0,m.jsx)(t,{...e,activeKey:s,children:p}),tabBarExtraContent:r.extra,tabBarGutter:r.tabBarGutter,tabBarStyle:r.style,tabPosition:r.tabPosition})]})}function sY(e){let{dependencyKey:t,onSync:l}=e,o=i.default.useRef(),n=i.default.useRef(!1),r=i.default.useRef();return i.default.useEffect(()=>{let e=l({previousEffectiveActiveKey:o.current,previousAllHidden:n.current,lastCorrectionSignature:r.current});o.current=e.effectiveActiveKey,n.current=e.previousAllHidden,r.current=e.lastCorrectionSignature},[t,l]),null}class sN extends f.FlowModel{getEnableTabs(){let e=this.context.currentRoute,t=this.props.routeId;return null!=t&&(null==e?void 0:e.id)!=null&&String(e.id)===String(t)&&"boolean"==typeof e.enableTabs?e.enableTabs:!!this.props.enableTabs}getAllTabs(){var e;return(null==(e=this.subModels)?void 0:e.tabs)||[]}getUnhiddenTabs(){return this.getAllTabs().filter(e=>!e.hidden)}getRequestedTabKey(){var e,t;let l=null==(t=this.context.view)||null==(e=t.navigation)?void 0:e.viewParams;if(l){let e="string"==typeof l.tabUid&&l.tabUid?l.tabUid:void 0;if(e)return this.implicitActiveKey=void 0,{key:e,source:"url"};let t="string"==typeof this.props.tabActiveKey&&this.props.tabActiveKey?this.props.tabActiveKey:void 0;return t&&t===this.implicitActiveKey?{key:t,source:"implicit"}:{source:"none"}}let o="string"==typeof this.props.tabActiveKey&&this.props.tabActiveKey?this.props.tabActiveKey:void 0;return o?{key:o,source:o===this.implicitActiveKey?"implicit":"props"}:{source:"none"}}resolveTabActiveState(){var e,t;let l=this.getAllTabs(),o=this.getUnhiddenTabs(),n=this.getRequestedTabKey();if(!n.key)return{...n,status:"unspecified",effectiveKey:null==(e=o[0])?void 0:e.uid,allTabs:l,unhiddenTabs:o};let i=l.find(e=>e.uid===n.key);return"implicit"===n.source&&(!i||i.hidden)?{...n,status:"unspecified",effectiveKey:null==(t=o[0])?void 0:t.uid,allTabs:l,unhiddenTabs:o}:i?o.some(e=>e.uid===n.key)?{...n,status:"visible",effectiveKey:n.key,allTabs:l,unhiddenTabs:o}:{...n,status:"hidden",effectiveKey:n.key,allTabs:l,unhiddenTabs:o}:{...n,status:"unknown",effectiveKey:n.key,allTabs:l,unhiddenTabs:o}}getActiveTabKey(){if(!this.getEnableTabs()){var e;let t=null==(e=this.getFirstTab())?void 0:e.uid;if(t)return t}return this.resolveTabActiveState().effectiveKey}getTabActiveKeySyncDependency(){var e,t;let l=this.getAllTabs(),o=this.getUnhiddenTabs(),n=null==(t=this.context.view)||null==(e=t.navigation)?void 0:e.viewParams;return JSON.stringify([!!this.context.flowSettingsEnabled,n&&n.tabUid||null,this.props.tabActiveKey||null,l.map(e=>e.uid),o.map(e=>e.uid),this.implicitActiveKey||null])}requestDocumentTitleUpdate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.updateDocumentTitle(e,t).catch(e=>{console.warn("[PageModel] Failed to update document title",e)})}rememberImplicitActiveKey(e){this.implicitActiveKey=e,this.props.tabActiveKey!==e&&this.setProps("tabActiveKey",e)}commitTabActiveKey(e,t){let{previousActiveKey:l,navigate:o,preserveImplicitKey:n=!1,rememberLocalTransition:i=!1}=t;if(i&&e&&(this.locallyCommittedTabTransition={activeKey:e,previousActiveKey:l}),this.implicitActiveKey=e&&n?e:void 0,o){var r,a,s;null==(s=this.context.view)||null==(a=s.navigation)||null==(r=a.changeTo)||r.call(a,{tabUid:e})}e&&e!==l&&this.invokeTabModelLifecycleMethod(e,"onActive"),l&&l!==e&&this.invokeTabModelLifecycleMethod(l,"onInactive"),this.setProps("tabActiveKey",e),e||this.requestDocumentTitleUpdate()}consumeLocallyCommittedTabTransition(e,t){let l=this.locallyCommittedTabTransition;return!!l&&!!t&&(l.activeKey===t&&l.previousActiveKey===e?(this.locallyCommittedTabTransition=void 0,!0):(t!==l.previousActiveKey&&(this.locallyCommittedTabTransition=void 0),!1))}scheduleActiveLifecycleRefresh(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dirtyRefreshScheduled||(this.dirtyRefreshScheduled=!0,Promise.resolve().then(()=>{this.dirtyRefreshScheduled=!1,this.unmounted||!1!==(0,f.getPageActive)(this.context)&&this.activateCurrentTab(e)}).catch(()=>{}))}activateCurrentTab(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getActiveTabKey();t&&this.invokeTabModelLifecycleMethod(t,"onActive",e)}deactivateCurrentTab(){let e=this.getActiveTabKey();e&&this.invokeTabModelLifecycleMethod(e,"onInactive")}onMount(){var e,t,l,o,n,i,r,a,s;super.onMount(),this.unmounted=!1,this.implicitActiveKey=void 0,this.setProps("tabActiveKey",null==(e=this.context.view.inputArgs)?void 0:e.tabUid),(null==(t=this.context)?void 0:t.pageInfo)&&(this.context.pageInfo.version="v2"),this.requestDocumentTitleUpdate(),this.viewActivatedListener||(this.viewActivatedListener=e=>{this.activateCurrentTab()},null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.on)||o.call(n,f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener));let d=(0,f.getEmitterViewActivatedVersion)(null==(l=this.flowEngine)?void 0:l.emitter),u=d>0&&d!==this.lastSeenEmitterViewActivatedVersion;this.lastSeenEmitterViewActivatedVersion=d,u&&!1!==(0,f.getPageActive)(this.context)&&this.activateCurrentTab(),this.dataSourceDirtyListener||(this.dataSourceDirtyListener=e=>{this.scheduleActiveLifecycleRefresh()},null==(s=this.flowEngine)||null==(a=s.emitter)||null==(r=a.on)||r.call(a,f.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener))}onUnmount(){var e,t,l,o,n,i;this.unmounted=!0,this.viewActivatedListener&&(null==(l=this.flowEngine)||null==(t=l.emitter)||null==(e=t.off)||e.call(t,f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),this.dataSourceDirtyListener&&(null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.off)||o.call(n,f.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener),this.dataSourceDirtyListener=void 0),super.onUnmount()}invokeTabModelLifecycleMethod(e,t){var l,o;let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e)return;"onActive"===t&&(null==(l=this.context)?void 0:l.pageInfo)&&(this.context.pageInfo.version="v2");let i=this.findSubModel("tabs",t=>t.uid===e)||this.flowEngine.getModel(e);if(i){if(i.context.tabActive){let e=!1!==(0,f.getPageActive)(i.context);i.context.tabActive.value=e&&"onActive"===t}null==(o=i.subModels.grid)||o.mapSubModels("items",e=>{var l;null==(l=e[t])||l.call(e,n)})}"onActive"===t&&this.requestDocumentTitleUpdate(e)}async updateDocumentTitle(e){var t,l,o,n,i,r,a,s,d,u,c,p,m,h,g,v,y,_,b,x;let M=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.unmounted||!1===(0,f.getPageActive)(this.context))return;let w=!!(null==(l=this.context)||null==(t=l.view)?void 0:t.navigation),S=null==(i=this.context)||null==(n=i.view)||null==(o=n.inputArgs)?void 0:o.viewUid,k=null==(s=this.flowEngine)||null==(a=s.context)||null==(r=a.route)?void 0:r.pathname;if(w&&S&&"string"==typeof k){let e=null==(u=this.context)||null==(d=u.layout)?void 0:d.routePath,t=null==(c=(0,f.parsePathnameToViewParams)(k,{basePath:(null==(m=this.context)||null==(p=m.layoutRoute)?void 0:p.basePathname)||((null==e?void 0:e.startsWith("/"))?e:"")}).at(-1))?void 0:c.viewUid;if(t&&t!==S)return}let F=++this.documentTitleUpdateVersion,C=async e=>{if(!e||"string"!=typeof e)return"";try{var t,l;let o=await (null==(t=(l=this.context).resolveJsonTemplate)?void 0:t.call(l,e));return null==o?"":String(o)}catch(t){return e}},A=this.getUnhiddenTabs(),P=e||this.getActiveTabKey(),T=!this.getEnableTabs()||!P&&0===A.length,j="";if(T)j=await C(null==(x=this.stepParams)||null==(b=x.pageSettings)||null==(_=b.general)?void 0:_.documentTitle)||this.props.title||"";else{let e=P?this.findSubModel("tabs",e=>e.uid===P)||this.flowEngine.getModel(P):this.getFirstTab();if(!e&&M<5)return void window.setTimeout(()=>{this.unmounted||F===this.documentTitleUpdateVersion&&this.requestDocumentTitleUpdate(P,M+1)},0);j=await C(null==e||null==(v=e.stepParams)||null==(g=v.pageTabSettings)||null==(h=g.tab)?void 0:h.documentTitle)||(null==e||null==(y=e.getTabTitle)?void 0:y.call(e))||""}F===this.documentTitleUpdateVersion&&"string"==typeof j&&""!==j&&(document.title=j)}mapTabs(){return this.mapSubModels("tabs",e=>({key:e.uid,label:(0,m.jsx)(f.Droppable,{model:e,children:(0,m.jsx)(f.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!0,showBorder:!1,toolbarPosition:"above",style:{transform:"translateY(8px)"}},extraToolbarItems:[{key:"drag-handler",component:f.DragHandler,sort:1}]})}),children:e.renderChildren()}))}getFirstTab(){var e;return null==(e=this.subModels.tabs)?void 0:e[0]}renderFirstTab(){var e;let t=this.getFirstTab();return null==t||null==(e=t.renderChildren)?void 0:e.call(t)}async handleDragEnd(e){throw Error("Method not implemented.")}renderTabs(){var e,t,l;let o=this.resolveTabActiveState(),n=this.mapTabs(),i=new Set(this.context.flowSettingsEnabled?[]:o.allTabs.filter(e=>e.hidden).map(e=>e.uid)),r="hidden"===o.status?null==(t=o.allTabs.find(e=>e.uid===o.effectiveKey))||null==(e=t.getTabTitle)?void 0:e.call(t):void 0,a=o.effectiveKey||(o.allTabs.length>0?sD:void 0),s=(null==(l=this.context.themeToken)?void 0:l.paddingLG)??16,d=void 0!==this.tabBarExtraContent.left?this.tabBarExtraContent.left:(0,m.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:s,height:1}}),u=void 0!==this.tabBarExtraContent.right?this.tabBarExtraContent.right:(0,m.jsx)("span",{style:{display:"inline-flex",marginInlineEnd:s},children:(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"tabs",items:[{key:"blank",label:this.context.t("Blank tab"),createModelOptions:this.createPageTabModelOptions}],children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.PlusOutlined,{}),children:this.context.t("Add tab")})})});return(0,m.jsxs)(f.DndProvider,{onDragEnd:this.handleDragEnd.bind(this),children:[(0,m.jsx)(sY,{dependencyKey:this.getTabActiveKeySyncDependency(),onSync:this.synchronizeTabActiveKey}),(0,m.jsx)(b.Tabs,{activeKey:a,tabBarStyle:this.props.tabBarStyle,items:n,renderTabBar:i.size>0?e=>(0,m.jsx)(sE,{hiddenTabKeys:i,hiddenActiveTabLabel:r,items:n,tabBarProps:e}):void 0,onChange:e=>{var t;let l=this.getActiveTabKey();this.implicitActiveKey=void 0,this.commitTabActiveKey(e,{previousActiveKey:l,navigate:!!(null==(t=this.context.view)?void 0:t.navigation),rememberLocalTransition:!0})},tabBarExtraContent:{left:d,right:u}})]})}render(){let e=this.context.themeToken,t={...this.props.headerStyle};e&&(t.paddingBlock=e.paddingSM,t.paddingInline=e.paddingLG);let l=this.getEnableTabs();return l&&(t.paddingBottom=0),(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:t}),l?this.renderTabs():this.renderFirstTab()]})}constructor(...e){super(...e),this.tabBarExtraContent={},this.lastSeenEmitterViewActivatedVersion=0,this.dirtyRefreshScheduled=!1,this.unmounted=!1,this.documentTitleUpdateVersion=0,this.synchronizeTabActiveKey=e=>{let t=this.resolveTabActiveState(),l=t.allTabs.length>0&&0===t.unhiddenTabs.length,o=(e,t)=>({previousEffectiveActiveKey:e,effectiveActiveKey:e,previousAllHidden:l,lastCorrectionSignature:t});if("unknown"===t.status)return o(t.effectiveKey);if("visible"===t.status){let l=t.effectiveKey;if(this.consumeLocallyCommittedTabTransition(e.previousEffectiveActiveKey,l))return o(l);let n=e.previousAllHidden&&"url"!==t.source,i=!!e.previousEffectiveActiveKey&&e.previousEffectiveActiveKey!==l;if((n||i)&&l){let n=`visible:${t.source}:${e.previousEffectiveActiveKey||""}->${l}`;return n!==e.lastCorrectionSignature&&this.commitTabActiveKey(l,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1,preserveImplicitKey:"implicit"===t.source}),o(l,n)}return o(l)}if("hidden"===t.status){let l=t.effectiveKey;if(this.consumeLocallyCommittedTabTransition(e.previousEffectiveActiveKey,l))return o(l);if(l&&e.previousEffectiveActiveKey!==l){let n=`hidden:${t.source}:${e.previousEffectiveActiveKey||""}->${l}`;return n!==e.lastCorrectionSignature&&this.commitTabActiveKey(l,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1}),o(l,n)}return o(l)}let n=t.effectiveKey;if(!n){if(!l){if("implicit"!==t.source||!t.key)return o(void 0);let l=`implicit-missing:${e.previousEffectiveActiveKey||""}`;return l!==e.lastCorrectionSignature&&this.commitTabActiveKey(void 0,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1}),o(void 0,l)}let n=`all-hidden:${e.previousEffectiveActiveKey||""}`;return e.previousAllHidden||n===e.lastCorrectionSignature||(this.implicitActiveKey=void 0,this.props.tabActiveKey||e.previousEffectiveActiveKey?this.commitTabActiveKey(void 0,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1}):this.requestDocumentTitleUpdate()),o(void 0,n)}let i=e.previousAllHidden||!!e.previousEffectiveActiveKey&&e.previousEffectiveActiveKey!==n,r=`implicit:${e.previousEffectiveActiveKey||""}->${n}`;return i&&r!==e.lastCorrectionSignature?this.commitTabActiveKey(n,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1,preserveImplicitKey:!0}):this.rememberImplicitActiveKey(n),o(n,i?r:void 0)},this.createPageTabModelOptions=()=>{let e=(0,io.uid)();return{uid:e,use:"RootPageTabModel",props:{route:{parentId:this.props.routeId,type:"tabs",schemaUid:e,tabSchemaName:(0,io.uid)(),params:[],hideInMenu:!1,enableTabs:!1}}}}}}sN.registerEvents({close:{title:(0,f.tExpr)("Close"),name:"close",hideInSettings(e){var t;return!!(null==(t=e.view)?void 0:t.preventClose)},uiSchema:{condition:{type:"object",title:(0,f.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":sL.H}},handler:sL.b}}),sN.registerFlow({key:"closeGuard",title:(0,f.tExpr)("Close guard"),on:"close",steps:{confirmUnsavedChanges:{title:(0,f.tExpr)("Unsaved changes confirmation"),handler:sR}}}),sN.registerFlow({key:"pageSettings",title:(0,f.tExpr)("Page settings"),steps:{general:{title:(0,f.tExpr)("Edit page"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},documentTitle:{type:"string",title:(0,f.tExpr)("Document title"),description:(0,f.tExpr)("Used as the browser tab title when tabs are disabled. Supports variables. Leave empty to use Page title."),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:1,maxRows:6}},displayTitle:{type:"boolean",title:(0,f.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"},enableTabs:{type:"boolean",title:(0,f.tExpr)("Enable tabs"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",e.t(t.title,{ns:"lm-desktop-routes"}));else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n,{ns:"lm-desktop-routes"}))}e.model.setProps("enableTabs",t.enableTabs),"embed"===e.view.type?(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgContainer)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgContainer)",marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgLayout)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgLayout)",marginBottom:0})),await e.model.updateDocumentTitle()}}}});class sO extends sN{renderBackButtonWhenTabsDisabled(){var e,t,l;if((null==(t=this.context)||null==(e=t.view)?void 0:e.type)!=="embed")return null;let o=null==(l=this.context)?void 0:l.themeToken,n={...this.props.tabBarStyle,paddingBlock:(null==o?void 0:o.paddingXS)??8};return(0,m.jsx)("div",{style:n,children:(0,m.jsx)(sB,{renderSpacerWhenNoBack:!1})})}async handleDragEnd(e){var t,l;if(!(null==(t=e.active)?void 0:t.id)||!(null==(l=e.over)?void 0:l.id))throw Error("Invalid drag event");e.active.id!==e.over.id&&await this.flowEngine.moveModel(e.active.id,e.over.id)}render(){return(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&this.props.title&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.props.enableTabs?this.renderTabs():(0,m.jsxs)(m.Fragment,{children:[this.renderBackButtonWhenTabsDisabled(),this.renderFirstTab()]})]})}constructor(...e){super(...e),this.tabBarExtraContent={left:(0,m.jsx)(sB,{})},this.createPageTabModelOptions=()=>({use:"ChildPageTabModel"})}}let sB=e=>{let{renderSpacerWhenNoBack:t=!0}=e,l=(0,f.useFlowContext)(),o=l.themeToken,n=32,r=(null==o?void 0:o.paddingLG)??16,a=(0,i.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:o.paddingXS,marginLeft:o.paddingLG,marginRight:n-o.paddingXS}),[o.paddingLG,o.paddingXS]);return"embed"!==l.view.type?t?(0,m.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:r,height:1}}):null:(0,m.jsx)(b.Button,{"aria-label":"back-button",type:"text",icon:(0,m.jsx)(to.ArrowLeftOutlined,{}),style:a,onClick:l.view.close})};class sV extends f.FlowModel{}sV.registerFlow({key:"pageSettings",title:(0,f.tExpr)("Page settings"),steps:{general:{title:(0,f.tExpr)("General"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},displayTitle:{type:"boolean",title:(0,f.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",t.title?e.t(t.title):null);else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n))}e.model.setProps("enableTabs",t.enableTabs),e.model.context.closable?(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgLayout,paddingInline:16,marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgContainer,paddingInline:16,marginBottom:0}))}}}});class sH extends sV{renderFirstTab(){var e;return(0,m.jsx)(f.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}function sq(e){let{ctx:t,options:l}=e,{data:o,loading:n}=(0,nB.useRequest)(async()=>{let e=await t.engine.loadOrCreateModel(l,{skipSave:!t.flowSettingsEnabled});return e.context.addDelegate(t),e},{refreshDeps:[t.model.uid]}),i=(null==t?void 0:t.isMobileLayout)?8:null==t?void 0:t.themeToken.marginBlock;return!n&&(null==o?void 0:o.uid)?(0,m.jsx)(f.FlowModelRenderer,{model:o,fallback:(0,m.jsx)(nV,{style:{margin:i}})}):(0,m.jsx)(nV,{style:{margin:i}})}function s$(e){return Array.isArray(e)?e.find(e=>!!e&&"object"==typeof e):e&&"object"==typeof e?e:void 0}function sz(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function sU(e){return sz(e)}let sK=new WeakMap;async function sG(e){let t=(sK.get(e)||Promise.resolve()).catch(()=>void 0).then(()=>e.refreshAccessible());sK.set(e,t);try{await t}finally{sK.get(e)===t&&sK.delete(e)}}class sW extends f.FlowModel{onInit(e){super.onInit(e),this.context.defineProperty("tabActive",{value:f.observable.ref(!0),info:{description:"Whether current tab is active (observable.ref).",detail:"observable.ref<boolean>"}})}getTabTitle(){var e,t;let l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Untitled",o=this.context.t(l,{ns:"client"});return this.context.t(null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.title,{ns:"lm-desktop-routes"})||o}getTabIcon(){var e,t;return null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.icon}renderChildren(){return null}renderHiddenInConfig(){return(0,m.jsxs)("span",{style:{display:"inline-block",opacity:.5},children:[(0,m.jsx)(et.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}render(){return(0,m.jsxs)("span",{style:{display:"inline-block"},children:[(0,m.jsx)(et.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}}sW.registerFlow({key:"pageTabSettings",title:(0,f.tExpr)("Tab settings"),steps:{tab:{title:(0,f.tExpr)("Edit tab"),preset:!0,uiSchema:{title:{title:(0,f.tExpr)("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},documentTitle:{type:"string",title:(0,f.tExpr)("Document title"),description:(0,f.tExpr)("Used as the browser tab title when this tab is active. Supports variables. Leave empty to use Tab name."),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:1,maxRows:6}},icon:{title:(0,f.tExpr)("Icon"),"x-decorator":"FormItem","x-component":"IconPicker"}},async handler(e,t){var l;let o="function"==typeof(null==e?void 0:e.t)?e.t.bind(e):e=>e;e.model.setProps("title",o(t.title,{ns:"lm-desktop-routes"})),e.model.setProps("icon",t.icon);let n=e.engine.getModel(e.model.parentId);await (null==n||null==(l=n.updateDocumentTitle)?void 0:l.call(n))}},linkageRules:{use:"tabLinkageRules"}}});class sJ extends sW{onInit(e){super.onInit(e),this.shouldHydratePersistedLinkageRules()&&this.hydratePersistedLinkageRules().catch(e=>{console.warn("[RootPageTabModel] Failed to hydrate tab linkage rules",e)})}hasExplicitLinkageRulesStep(){var e;let t=null==(e=this.stepParams)?void 0:e.pageTabSettings;return sz(t)&&Object.prototype.hasOwnProperty.call(t,"linkageRules")}shouldHydratePersistedLinkageRules(){var e,t;return!!this.context.flowSettingsEnabled||(null==(t=this.props.route)||null==(e=t.options)?void 0:e.hasPersistedPageTabFlowModel)===!0}async fetchPersistedAnchor(){var e;let t=await this.context.api.request({url:"flowModels:findOne",params:{uid:this.uid}}),l=null==t||null==(e=t.data)?void 0:e.data;return sz(l)?l:void 0}async performPersistedLinkageRulesHydrate(){if(this.hasExplicitLinkageRulesStep())return;let e=await this.fetchPersistedAnchor();if(this.hasExplicitLinkageRulesStep())return;let t=sz(null==e?void 0:e.stepParams)?e.stepParams:void 0,l=sz(null==t?void 0:t.pageTabSettings)?t.pageTabSettings:void 0,o=null==l?void 0:l.linkageRules;sU(o)&&(this.setStepParams("pageTabSettings","linkageRules",g.default.cloneDeep(o)),this.invalidateFlowCache("beforeRender",!0),await this.rerender())}hydratePersistedLinkageRules(){if(this.persistedLinkageRulesHydrated)return Promise.resolve();if(this.persistedLinkageRulesHydrating)return this.persistedLinkageRulesHydrating;let e=this.performPersistedLinkageRulesHydrate();return this.persistedLinkageRulesHydrating=e,e.then(()=>{this.persistedLinkageRulesHydrating===e&&(this.persistedLinkageRulesHydrated=!0,this.persistedLinkageRulesHydrating=void 0)}).catch(()=>{this.persistedLinkageRulesHydrating===e&&(this.persistedLinkageRulesHydrating=void 0)}),e}async openFlowSettings(e){return(null==e?void 0:e.flowKey)==="pageTabSettings"&&(null==e?void 0:e.stepKey)==="linkageRules"&&await this.hydratePersistedLinkageRules(),super.openFlowSettings(e)}renderChildren(){return(0,m.jsx)(sq,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}async saveStepParams(){let e=this.hasExplicitLinkageRulesStep(),t=e?g.default.cloneDeep(this.stepParams.pageTabSettings.linkageRules):void 0;await this.save(),e&&t&&await this.persistLinkageRulesToAnchor(t)}async save(){var e,t,l,o,n,i,r,a,s,d,u,c;let p=this.serialize(),m=null==(l=this.stepParams)||null==(t=l.pageTabSettings)||null==(e=t.tab)?void 0:e.documentTitle,h=this.props.route||{},f=null!=h.id,g=f&&h.schemaUid?null==(n=this.context.routeRepository)||null==(o=n.getRouteBySchemaUid)?void 0:o.call(n,h.schemaUid):void 0,v={...f?{schemaUid:h.schemaUid}:h,title:this.getTabTitle(""),icon:this.getTabIcon(),options:{...g?g.options:h.options,flowRegistry:p.flowRegistry,documentTitle:m}},y=await this.context.api.request(f?{method:"post",url:`desktopRoutes:update?filter[id]=${h.id}`,data:v}:{method:"post",url:"desktopRoutes:updateOrCreate",params:{filterKeys:["schemaUid"]},data:v}),_=s$(null==y||null==(i=y.data)?void 0:i.data);_&&this.setProps("route",{...this.props.route,..._,options:{...null==(r=this.props.route)?void 0:r.options,..._.options}});try{(null==(a=this.context.routeRepository)?void 0:a.refreshAccessible)?await sG(this.context.routeRepository):await (null==(s=(d=this.context).refreshDesktopRoutes)?void 0:s.call(d))}catch(e){null==(c=this.context.logger)||null==(u=c.warn)||u.call(c,{err:e},"[client-v2] Failed to refresh desktop routes after saving a page tab")}}buildAnchorPayload(e,t){let l="string"==typeof(null==e?void 0:e.uid)&&e.uid.length>0?g.default.cloneDeep(e):{uid:this.uid,use:"RouteModel"};delete l.subModels;let o=sz(l.stepParams)?l.stepParams:{},n=sz(o.pageTabSettings)?o.pageTabSettings:{};return{...l,stepParams:{...o,pageTabSettings:{...n,linkageRules:g.default.cloneDeep(t)}}}}async persistLinkageRulesToAnchor(e){let t=await this.fetchPersistedAnchor(),l=this.buildAnchorPayload(t,e);await this.context.api.request({method:"post",url:"flowModels:save",data:l});let o=Array.isArray(e.value)&&e.value.length>0;await this.syncPersistedPageTabFlowModelMarker(o),this.persistedLinkageRulesHydrated=!0}async syncPersistedPageTabFlowModelMarker(e){var t,l,o;let n=this.props.route;if((null==n?void 0:n.id)==null)throw Error("Cannot persist page tab FlowModel marker before the desktop route is saved.");if("function"!=typeof(null==(t=this.context.routeRepository)?void 0:t.updateRoute))throw Error("Route repository is unavailable while persisting the page tab FlowModel marker.");let i=n.schemaUid?null==(l=(o=this.context.routeRepository).getRouteBySchemaUid)?void 0:l.call(o,n.schemaUid):void 0,r={...(null==i?void 0:i.options)||n.options||{}};e?r.hasPersistedPageTabFlowModel=!0:delete r.hasPersistedPageTabFlowModel;let a=Object.keys(r).length>0?r:void 0;await this.context.routeRepository.updateRoute(n.id,{options:a},{refreshAfterMutation:!1}),this.setProps("route",{...n,options:a})}async destroy(){return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid),await this.context.api.request({method:"post",url:"desktopRoutes:destroy",params:{filter:{schemaUid:this.uid}},data:this.props.route}),!0}constructor(...e){super(...e),this.persistedLinkageRulesHydrated=!1}}class sX extends sW{renderChildren(){return(0,m.jsx)(sq,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class sQ extends f.FlowModel{render(){return(0,m.jsx)(sq,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class sZ extends sN{syncPageSettingsEnableTabsFromRoute(){var e,t;let l=null==(t=this.context)||null==(e=t.currentRoute)?void 0:e.enableTabs;"boolean"==typeof l&&this.setStepParams("pageSettings","general",{enableTabs:l})}syncEnableTabsToCurrentPage(e){var t;let l=null==(t=this.context)?void 0:t.currentRoute,o=this.props.routeId;l&&(null==o||null==l.id||String(l.id)===String(o))&&(l.enableTabs=e),this.setProps("enableTabs",e)}async ensurePersistedRouteId(e){var t,l,o,n;let i=null==e||null==(l=e.props)||null==(t=l.route)?void 0:t.id;return null!=i?i:("function"==typeof(null==e?void 0:e.save)&&await e.save(),null==e||null==(n=e.props)||null==(o=n.route)?void 0:o.id)}onMount(){super.onMount(),(0,f.reaction)(()=>this.context.pageActive.value,()=>{var e,t;if(null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.activationControlledByLayout){this.mounted=!0;return}this.context.pageActive.value&&this.mounted&&this.activateCurrentTab(!0),!1===this.context.pageActive.value&&this.deactivateCurrentTab(),this.mounted=!0})}async openFlowSettings(e){return(null==e?void 0:e.flowKey)==="pageSettings"&&(null==e?void 0:e.stepKey)==="general"&&this.syncPageSettingsEnableTabsFromRoute(),super.openFlowSettings(e)}async saveStepParams(){if(await super.saveStepParams(),this.stepParams.pageSettings){var e,t;let l=!!this.stepParams.pageSettings.general.enableTabs;await this.context.api.request({url:`desktopRoutes:update?filter[id]=${this.props.routeId}`,method:"post",data:{enableTabs:l}}),this.syncEnableTabsToCurrentPage(l),await (null==(e=(t=this.context).refreshDesktopRoutes)?void 0:e.call(t))}}async handleDragEnd(e){var t,l;let o=this.flowEngine.getModel(null==(t=e.active)?void 0:t.id),n=this.flowEngine.getModel(null==(l=e.over)?void 0:l.id);if(!o||!n||o.uid===n.uid)return;let[i,r]=await Promise.all([this.ensurePersistedRouteId(o),this.ensurePersistedRouteId(n)]);null!=i&&null!=r&&(await this.context.api.request({url:"desktopRoutes:move",method:"post",params:{sourceId:i,targetId:r,sortField:"sort"}}),this.flowEngine.moveModel(o.uid,n.uid,{persist:!1}))}constructor(...e){super(...e),this.mounted=!1}}sZ.registerFlow({key:"rootPageSettings",steps:{init:{async handler(e,t){if(e.model.hasSubModel("tabs"))return;let l=e.routeRepository.getRouteBySchemaUid(e.model.parentId);for(let t of(e.model.setProps("routeId",null==l?void 0:l.id),g.default.castArray(null==l?void 0:l.children).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0)))){var o,n;if(t.hideInMenu)continue;let l=e.engine.createModel({parentId:e.model.uid,uid:t.schemaUid,subKey:"tabs",subType:"array",use:"RootPageTabModel",sortIndex:t.sort,props:{route:t},flowRegistry:null==(o=t.options)?void 0:o.flowRegistry,stepParams:{pageTabSettings:{tab:{title:t.title,icon:t.icon,documentTitle:null==(n=t.options)?void 0:n.documentTitle}}}});e.model.addSubModel("tabs",l)}}}}});class s0 extends sV{renderFirstTab(){var e;return(0,m.jsx)(f.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class s1 extends aQ.S0{constructor(...e){super(...e),this.defaultProps={title:(0,f.tExpr)("Popup"),icon:"ExportOutlined"}}}s1.define({label:(0,f.tExpr)("Popup")}),s1.registerFlow(H);var s2=__webpack_require__(1882);class s5 extends s1{getAclActionName(){return"create"}constructor(...e){super(...e),this.defaultPopupTitle=(0,f.tExpr)("Add new"),this.defaultProps={type:"primary",title:(0,f.tExpr)("Add new"),icon:"PlusOutlined"}}}s5.scene=aQ.s5.collection,s5.define({label:(0,f.tExpr)("Add new"),sort:10});let s8=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel);return(null==a||null==(o=a.getResourceSettingsInitParams)?void 0:o.call(a))||(null==a||null==(n=a.getStepParams)?void 0:n.call(a,"resourceSettings","init"))||(null==e||null==(r=e.model)||null==(i=r.getStepParams)?void 0:i.call(r,"resourceSettings","init"))},s4=e=>{var t;return!!(null==(t=s8(e))?void 0:t.associationName)},s3=e=>{var t,l,o,n;let i=s8(e),r=(null==e||null==(t=e.blockModel)?void 0:t.association)||(null==e||null==(n=e.model)||null==(o=n.context)||null==(l=o.blockModel)?void 0:l.association),a=null==r?void 0:r.targetCollection;return{dataSourceKey:(null==a?void 0:a.dataSourceKey)||(null==i?void 0:i.dataSourceKey),collectionName:(null==a?void 0:a.name)||(null==r?void 0:r.target)||(null==i?void 0:i.collectionName)}},s6=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel),s=null==a?void 0:a.association,d=s8(e);return{collectionField:s,sourceId:(null==a||null==(n=a.resource)||null==(o=n.getSourceId)?void 0:o.call(n))??(null==d?void 0:d.sourceId),associatedRecords:(null==a||null==(r=a.resource)||null==(i=r.getData)?void 0:i.call(r))||[]}},s9=async(e,t,l)=>{var o;return"function"==typeof(null==e?void 0:e[t])?await e[t]({values:l}):await (null==e||null==(o=e.runAction)?void 0:o.call(e,t,{data:l}))},s7=async e=>{var t,l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(t=e.blockModel)?void 0:t.resource)||(null==e?void 0:e.resource),h=(null==e||null==(l=e.blockModel)?void 0:l.collection)||(null==e?void 0:e.collection);if(!s4(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for disassociation"));return}if(!e.record){null==(p=e.message)||null==(c=p.error)||c.call(p,e.t("No record selected for disassociation"));return}let f=null==h||null==(o=h.getFilterByTK)?void 0:o.call(h,e.record);await s9(m,"remove",[f]),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record disassociated successfully"))},de=async(e,t)=>{var l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(l=e.blockModel)?void 0:l.resource)||(null==e?void 0:e.resource),h=(null==e||null==(o=e.blockModel)?void 0:o.collection)||(null==e?void 0:e.collection);if(!s4(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for association"));return}if(!(null==t?void 0:t.length)){null==(p=e.message)||null==(c=p.warning)||c.call(p,e.t("Please select at least one record"));return}let f=t.map(e=>{var t;return(null==h||null==(t=h.getFilterByTK)?void 0:t.call(h,e))??e}).filter(e=>null!=e);await s9(m,"add",f),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record associated successfully"))};function dt(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 dl(e){let{model:t}=e,l=(0,f.useFlowViewContext)(),{Header:o,Footer:n,type:i}=l.view;return(0,m.jsxs)("div",{children:[(0,m.jsx)(o,{title:"dialog"===i?(0,m.jsx)("div",{style:{padding:`${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px 0`,marginBottom:-l.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:l.t("Select record")}):l.t("Select record")}),(0,m.jsx)(dt,{options:{parentId:l.view.inputArgs.parentId,subKey:"associate-selector-grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}}),(0,m.jsx)(n,{children:"dialog"===i?(0,m.jsx)("div",{style:{padding:`0 ${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px`},children:(0,m.jsx)(b.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})}):(0,m.jsx)(b.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})})]})}class dn extends aQ.S0{getAclActionName(){return"update"}async associateSelectedRows(){await de(this.context,this.selectedRows),this.selectedRows=[]}constructor(...e){super(...e),this.defaultPopupTitle=(0,f.tExpr)("Select record"),this.selectedRows=[],this.defaultProps={title:(0,f.tExpr)("Associate"),icon:"LinkOutlined"}}}dn.scene=aQ.s5.collection,dn.capabilityActionName="update",dn.define({label:(0,f.tExpr)("Associate"),sort:15,hide:e=>!s4(e)}),dn.registerFlow({key:"associateSettings",title:(0,f.tExpr)("Associate settings"),on:"click",steps:{openSelector:{async handler(e,t){var l,o,n;let i=s3(e),r=(null==(l=e.inputArgs)?void 0:l.isMobileLayout)?"embed":(null==(o=e.inputArgs)?void 0:o.mode)||(null==t?void 0:t.mode)||"drawer",a=(null==(n=e.inputArgs)?void 0:n.size)||(null==t?void 0:t.size)||"medium",s={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}};e.model.selectedRows=[],await e.viewer.open({type:r,width:s[r][a],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"select",dataSourceKey:i.dataSourceKey,collectionName:i.collectionName,...s6(e),rowSelectionProps:{type:"checkbox",renderCell:void 0,selectedRowKeys:void 0,onChange:(t,l)=>{e.model.selectedRows=l||[]}}},content:()=>(0,m.jsx)(dl,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===r?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}});class di extends aQ.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={title:(0,f.tExpr)("Delete"),icon:"DeleteOutlined"}}}di.scene=aQ.s5.collection,di.capabilityActionName="destroyMany",di.define({label:(0,f.tExpr)("Delete")}),di.registerFlow({key:"deleteSettings",title:(0,f.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,f.tExpr)("Delete record"),content:(0,f.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){var l;if(!(null==(l=e.blockModel)?void 0:l.resource))return void e.message.error(e.t("No resource selected for deletion"));let o=e.blockModel.resource;0===o.getSelectedRows().length?e.message.warning(e.t("Please select at least one record to delete")):(await o.destroy(e.blockModel.collection.getFilterByTK(o.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully")))}}}});class dr extends aQ.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,f.tExpr)("Delete"),icon:"DeleteOutlined"}}}dr.scene=aQ.s5.record,dr.define({label:(0,f.tExpr)("Delete"),sort:60}),dr.registerFlow({key:"deleteSettings",title:(0,f.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,f.tExpr)("Delete record"),content:(0,f.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){e.resource?e.record?(await e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))):e.message.error(e.t("No resource or record selected for deletion")):e.message.error(e.t("No resource selected for deletion"))}}}});class da extends aQ.S0{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,f.tExpr)("Disassociate"),icon:"DisconnectOutlined"}}}da.scene=aQ.s5.record,da.capabilityActionName="update",da.define({label:(0,f.tExpr)("Disassociate"),sort:65,hide:e=>!s4(e)}),da.registerFlow({key:"disassociateSettings",title:(0,f.tExpr)("Disassociate settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,f.tExpr)("Disassociate record"),content:(0,f.tExpr)("Are you sure you want to disassociate it?")}},disassociate:{async handler(e){await s7(e)}}}});class ds extends s1{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultPopupTitle=(0,f.tExpr)("Edit"),this.defaultProps={title:(0,f.tExpr)("Edit"),icon:"EditOutlined"}}}ds.scene=aQ.s5.record,ds.define({label:(0,f.tExpr)("Edit"),sort:20});var dd=__webpack_require__(8442);class du extends aQ.S0{getIgnoreFieldNames(){var e;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);let t=(null==(e=this.context.blockModel.collection)?void 0:e.getFields())||[],l=dp(this.props.filterableFieldNames||[],t.map(e=>e.name));return this.map.set(this.props.filterableFieldNames,l),l}render(){return this.context.isMobileLayout?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(f.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,m.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,m.jsx)(dd.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),(0,m.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,m.jsx)(b.Popover,{open:this.props.open,content:(0,m.jsx)(dd.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),trigger:"click",placement:"bottomLeft",onOpenChange:e=>{!1===e&&this.setProps("open",void 0)},children:super.render()})}constructor(...e){super(...e),this.map=new WeakMap,this.defaultProps={type:"default",title:(0,f.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}}}}function dc(e){for(var t,l=arguments.length,o=Array(l>1?l-1:0),n=1;n<l;n++)o[n-1]=arguments[n];return((null==e||null==(t=e.getFields)?void 0:t.call(e))||[]).filter(e=>{if(!(null==e?void 0:e.interface)||(null==e?void 0:e.filterable)===!1)return!1;let t=(0,et.w6)(e.interface,...o);return!!(null==t?void 0:t.filterable)})}function dp(e,t){return null==t?void 0:t.filter(t=>!e.includes(t))}du.scene="collection",du.define({label:(0,f.tExpr)("Filter"),toggleable:!0,sort:5}),du.registerFlow({key:"filterSettings",title:(0,f.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,f.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t;let{model:l}=(0,f.useFlowSettingsContext)(),o=dc(l.context.blockModel.collection,l.context.dataSourceManager,null==(t=l.context.app)?void 0:t.dataSourceManager).map(e=>({key:e.name,title:e.title}));return(0,m.jsx)(b.Transfer,{...e,dataSource:o,targetKeys:e.value||[],onChange:t=>{var l;return null==(l=e.onChange)?void 0:l.call(e,t)},render:e=>e.title})},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,l,o,n,i;return{filterableFieldNames:dc(e.blockModel.collection,null==(l=e.model)||null==(t=l.context)?void 0:t.dataSourceManager,null==(i=e.model)||null==(n=i.context)||null==(o=n.app)?void 0:o.dataSourceManager).map(e=>e.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,f.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{let{model:t}=(0,f.useFlowSettingsContext)();return(0,m.jsx)(rO.I8,{value:e.value||{},FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t,maxAssociationFieldDepth:2})})}}},defaultParams:e=>({defaultFilter:e.model.defaultProps.filterValue}),handler(e,t){e.model.setProps("defaultFilterValue",g.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",g.default.cloneDeep(t.defaultFilter))}}}}),du.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;let n=(0,I.transformFilter)(e.model.props.filterValue),i=!(0,I.isEmptyFilter)(n);l.setFilterActive(e.model.uid,i),i?(o.addFilterGroup(e.model.uid,n),o.setPage(1)):o.removeFilterGroup(e.model.uid),"manual"!==l.getDataLoadingMode()||i||l.hasActiveFilters()?o.refresh():(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1)}}}}),du.registerFlow({key:"resetSettings",title:(0,f.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;o.removeFilterGroup(e.model.uid),l.setFilterActive(e.model.uid,!1);let n=l.getDataLoadingMode(),i=e.model.props.defaultFilterValue,r=!(0,I.isEmptyFilter)((0,I.transformFilter)(i));"manual"!==n||r||l.hasActiveFilters()?(r&&(o.addFilterGroup(e.model.uid,(0,I.transformFilter)(i)),l.setFilterActive(e.model.uid,!0),o.setPage(1)),o.refresh()):(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1),e.model.setProps("filterValue",g.default.cloneDeep(i))}}}}),du.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});var dm=__webpack_require__(6193);function dh(e,t){var l;let o=(null==(l=e.inputArgs)?void 0:l.preview)||{},n=(null==o?void 0:o.version)??(null==t?void 0:t.version)??"v1";return{code:("string"==typeof(null==o?void 0:o.code)?o.code:void 0)??(null==t?void 0:t.code)??"",version:n}}class df extends aQ.S0{constructor(...e){super(...e),this.defaultProps={type:"default",title:(0,f.tExpr)("JS action"),icon:"JavaScriptOutlined"}}}df.define({label:(0,f.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}}),df.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:`
802
+ `,nh={token:{colorSplit:"rgba(255, 255, 255, 0.1)"}};function nf(e,t){return e.map((e,t)=>({action:e,index:t})).filter(e=>{let{action:l}=e;return!l.isHidden()&&(!l.aclSnippet||t(l.aclSnippet))}).sort((e,t)=>(e.action.sort||0)!==(t.action.sort||0)?(e.action.sort||0)-(t.action.sort||0):e.index-t.index).map(e=>{let{action:t}=e;return t})}let ng=e=>({"--nb-topbar-action-color":e.colorTextHeaderMenu||"rgba(255, 255, 255, 0.65)","--nb-topbar-action-hover-bg":e.colorBgHeaderMenuHover||"rgba(255, 255, 255, 0.1)"}),nv=()=>null,ny=e=>"function"==typeof(null==e?void 0:e.getActionId)?e.getActionId():(null==e?void 0:e.actionId)||(null==e?void 0:e.uid)||"",n_=i.default.memo(e=>{let{allow:t}=(0,nc.K)(),{token:l}=b.theme.useToken(),o=l,n=(0,i.useMemo)(()=>nf(e.actions,t),[t,e.actions]),r=n.filter(e=>ny(e)!==ob),a=n.find(e=>ny(e)===ob);return(0,m.jsxs)("div",{className:np,style:ng(o),children:[(0,m.jsx)("div",{className:"nb-topbar-actions-list",onClick:e.onActionClick,children:r.map(e=>(0,m.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:nv,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,m.jsx)(f.FlowModelRenderer,{model:e})},e.uid))}),(0,m.jsx)(b.ConfigProvider,{theme:nh,children:(0,m.jsx)(b.Divider,{type:"vertical"})}),(0,m.jsx)(lq,{}),a?(0,m.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:nv,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,m.jsx)(f.FlowModelRenderer,{model:a})},a.uid):null]})});n_.displayName="TopbarActionsContent";let nb=i.default.memo(e=>{let{token:t}=b.theme.useToken(),l=t,[o,n]=(0,i.useState)(!1),r=(0,i.useCallback)(()=>{n(!1)},[]);return e.isMobile?(0,m.jsx)(b.Popover,{rootClassName:nm,content:(0,m.jsx)(n_,{actions:e.actions,onActionClick:r}),color:l.colorBgHeader,trigger:"click",open:o,onOpenChange:n,children:(0,m.jsx)("div",{style:{padding:"0 16px",display:"flex",alignItems:"center",height:"100%",marginRight:-16},children:(0,m.jsx)(to.EllipsisOutlined,{style:{color:l.colorTextHeaderMenu,fontSize:20}})})}):(0,m.jsx)(n_,{actions:e.actions})});nb.displayName="TopbarActionsBar";let nx=e=>{let{children:t,model:l}=e,o=(0,f.useFlowEngine)(),n=(0,_.n)(),r=(0,y.useNavigate)(),a=(0,y.useLocation)(),s=(0,y.useMatches)(),[d,u]=(0,i.useState)(!1),c=(0,i.useRef)(!1),p=o.context.routeRepository,h=null==l?void 0:l.layout,g=null==h?void 0:h.uid,v=null==h?void 0:h.routeName,b=null==h?void 0:h.routePath,x=null==h?void 0:h.authCheck,M=(0,i.useMemo)(()=>{if(g||v||b||void 0!==x)return{authCheck:x,routeName:v,routePath:b||"",uid:g}},[x,v,b,g]),w=eJ(M),S=(null==M?void 0:M.routeName)||"admin",k=(0,i.useMemo)(()=>({routePath:w}),[w]),F=(0,i.useMemo)(()=>e0(a.pathname,n.router.getBasename())===w,[n,w,a.pathname]),C=(0,i.useMemo)(()=>{var e,t;let l=s[s.length-1];if(!ea(S,null==l?void 0:l.id))return"";let o=s.find(e=>e.id===S);return(null==(e=l.params)?void 0:e.name)||(null==(t=(0,f.parsePathnameToViewParams)(a.pathname,{basePath:(null==o?void 0:o.pathname)||w})[0])?void 0:t.viewUid)||""},[S,w,a.pathname,s]);return((0,i.useEffect)(()=>{c.current=!1},[a.pathname,a.search,a.hash,C]),(0,i.useEffect)(()=>{var e;let t=!0,l=null==p||null==(e=p.activateLayout)?void 0:e.call(p,M);return(async()=>{var e,l,o,i,a;if(u(!1),!F&&!C){t&&u(!0);return}if(!(null==p||null==(e=p.isAccessibleLoaded)?void 0:e.call(p)))try{await (null==p||null==(o=p.ensureAccessibleLoaded)?void 0:o.call(p))}catch(e){t&&u(!0);return}if(!t||c.current)return;if(C){let e=null==p||null==(i=p.getRouteBySchemaUid)?void 0:i.call(p,C);if((null==e?void 0:e.type)===et.q2.page){let t=te({app:n,route:e,layout:k,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===t.navigationMode&&t.runtimePath){c.current=!0,window.location.replace(t.runtimePath);return}}let l=e||null==p||null==(a=p.getRouteById)?void 0:a.call(p,C);if(!e&&(null==l?void 0:l.type)===et.q2.group){let e=te({app:n,route:l,layout:k});if(e.runtimePath)return(c.current=!0,"document"===e.navigationMode)?window.location.replace(e.runtimePath):r(e0(e.runtimePath,n.router.getBasename()),{replace:!0})}t&&u(!0);return}let s=e6((null==p||null==(l=p.listAccessible)?void 0:l.call(p))||[]);if(!s){t&&u(!0);return}let d=te({app:n,route:s,layout:k});if(!d.runtimePath){t&&u(!0);return}(c.current=!0,"document"===d.navigationMode)?window.location.replace(d.runtimePath):r(e0(d.runtimePath,n.router.getBasename()),{replace:!0})})(),()=>{t=!1,null==l||l()}},[n,o,F,M,k,a.hash,a.pathname,a.search,r,C,p]),d)?(0,m.jsx)(m.Fragment,{children:t}):null};class nM extends eg{refreshMenuRouteTree(){this.menuRouteRefreshVersion+=1}syncMenuRoutes(e){tQ(this,Array.isArray(e)?e:[])}toProLayoutRoute(e){let t=(this.subModels.menuItems||[]).map(t=>t.toProLayoutRoute({...e,depth:0})).filter(Boolean)||[];return e.designable&&(e.isMobile?t.push(t9("schema-initializer-Menu-header",this)):t.unshift(t9("schema-initializer-Menu-header",this))),{path:"/",children:t}}createRouteCoordinator(){return new tt(this.flowEngine,this.getRouteCoordinatorOptions())}render(){return(0,m.jsx)(nx,{model:this,children:(0,m.jsx)(nu,{...this.props,model:this})})}constructor(e){super(e),this.menuRouteRefreshVersion=0,(0,h.define)(this,{menuRouteRefreshVersion:h.observable.ref})}}function nw(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=ev(e,tl,{...t,use:t.use||nM});if(!l&&t.required)throw Error("[NocoBase] FlowRoute requires admin-layout-model. Please render FlowRoute under AdminLayout.");return l}function nS(e){let{flowEngine:t,pageUid:l,active:o,refreshDesktopRoutes:n,layoutContentRef:r,getLayoutModel:a}=e,s=a(t),d=(0,i.useRef)(o),u=(0,i.useRef)(n);if(!s)throw Error("[NocoBase] FlowRoute requires layout model. Please render FlowRoute under Layout.");return d.current=o,u.current=n,(0,i.useEffect)(()=>(s.registerRoutePage(l,{active:d.current??!1,refreshDesktopRoutes:u.current,layoutContentElement:r.current}),()=>{s.unregisterRoutePage(l)}),[s,l,r]),(0,i.useEffect)(()=>{s.updateRoutePage(l,{active:o,refreshDesktopRoutes:n,layoutContentElement:r.current})},[o,s,l,n,r]),s}nM.registerFlow({key:"topbarAction",steps:{step1:{handler:async(e,t)=>{let l=[...(await e.engine.getSubclassesOfAsync("TopbarActionModel")).keys()].map(t=>{let l=e.engine.createModel({use:t,uid:`topbar-action-${t}`});return l.setParent(e.model),l});e.model.props.actionsRender=e=>[(0,m.jsx)(nb,{actions:l,isMobile:null==e?void 0:e.isMobile},"topbar-actions")]}}}});let nk=e=>{e.context.defineProperty("deviceType",{get:()=>"browser"===__rspack_external_react_device_detect_2985bda2.deviceType?"computer":__rspack_external_react_device_detect_2985bda2.deviceType,cache:!1,meta:{type:"string",title:e.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:e.translate("Computer"),value:"computer"},{label:e.translate("Mobile"),value:"mobile"},{label:e.translate("Tablet"),value:"tablet"},{label:e.translate("SmartTv"),value:"smarttv"},{label:e.translate("Console"),value:"console"},{label:e.translate("Wearable"),value:"wearable"},{label:e.translate("Embedded"),value:"embedded"}],"x-component":"Select"}},info:{description:"Current device type (computer/mobile/tablet/...).",detail:"string"}})},nF=e=>nw(e,{required:!0}),nC=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.uid)?ev(e,l.uid,{required:!0}):nF(e)},nA=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.routeName)&&"admin"!==l.routeName?"notFound":"redirect"},nP=e=>(null==e?void 0:e.authCheck)!==!1,nT=(e,t)=>{if(Array.isArray(e))for(let l of e){if(l.type!==et.q2.group&&l.schemaUid===t||l.type===et.q2.group&&null!=l.id&&String(l.id)===t)return l;let e=nT(l.children,t);if(e)return e}},nj=(e,t)=>{var l,o;let n=null==e||null==(l=e.getRouteBySchemaUid)?void 0:l.call(e,t);return n&&n.type!==et.q2.group?n:nT(null==e||null==(o=e.listAccessible)?void 0:o.call(e),t)},nI=async(e,t)=>{var l;if(e.getModel(t))return!0;let o=await (null==(l=e.modelRepository)?void 0:l.findOne({uid:t}).catch(()=>null));if(null==o?void 0:o.uid)return!0;let n=await e.loadModel({uid:t}).catch(()=>null);return n&&e.getModel(t)===n&&e.removeModelWithSubModels(t),!!n},nL=e=>{let{pageUid:t,active:l,getLayoutModel:o}=e,n=(0,f.useFlowEngine)(),{active:r}=(0,lw.Y)(),a=n.context.routeRepository,s=i.default.useMemo(()=>null==a?void 0:a.refreshAccessible.bind(a),[a]),d=(0,i.useRef)(null);return(0,i.useEffect)(()=>{n.context.getPropertyOptions("deviceType")||nk(n)},[n]),nS({flowEngine:n,pageUid:t,active:l??r,refreshDesktopRoutes:s,layoutContentRef:d,getLayoutModel:o}),(0,m.jsx)("div",{ref:d})},nR=(e,t)=>{let l=e.getPublicPath(),o=window.location.pathname.startsWith(l)?window.location:t,n=o.pathname.startsWith(l)?o.pathname.slice(l.length):o.pathname.replace(/^\/+/,"");return`${eL(l)}${n}${o.search}${o.hash}`},nD=e=>{let{app:t,location:l}=e,{t:o}=(0,v.useTranslation)(),n=`/${eI()}/`,i=e=>e.replaceAll("{{modernClientPath}}",n);return(0,m.jsx)(b.Result,{status:"warning",title:i(o("This page is not supported in the {{modernClientPath}} branch")),subTitle:i(o("The {{modernClientPath}} branch only supports new pages. This page is a legacy page. Please open it from the original entry.")),extra:(0,m.jsx)(b.Button,{href:nR(t,l),type:"primary",children:o("Open from the original entry")})})},nE=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{active:t,getLayoutModel:l,legacyPageBehavior:o,pageUid:n}=e,r=(0,f.useFlowEngine)(),a=(0,f.useFlowContext)(),s=null==a?void 0:a.layout,d=(0,i.useMemo)(()=>null==l?void 0:l(r),[r,l]),u=s||(null==d?void 0:d.layout),c=null==u?void 0:u.uid,p=null==u?void 0:u.routeName,h=null==u?void 0:u.routePath,g=null==u?void 0:u.authCheck,v=(0,i.useMemo)(()=>{if(c||p||h||void 0!==g)return{authCheck:g,routeName:p,routePath:h,uid:c}},[g,p,h,c]),b=(0,i.useMemo)(()=>l||(e=>nC(e,v)),[l,v]),x=o||nA(r,v),M=(0,_.n)(),w=(0,y.useLocation)(),S=(0,y.useNavigate)(),k=r.context.routeRepository,F=(0,y.useParams)(),C=n||(null==F?void 0:F.name),A=void 0!==(null==F?void 0:F.tabUid)||void 0!==(null==F?void 0:F["*"]),P=!k,[T,j]=(0,i.useState)({pageUid:void 0,pending:!0,allowBridge:!1,notFound:!1}),I=(0,i.useRef)(!1),L=(0,i.useRef)(0);if(!C)throw Error("[NocoBase] FlowRoute requires pageUid or route.params.name.");return(0,i.useEffect)(()=>{I.current=!1},[w.hash,w.pathname,w.search,C]),(0,i.useEffect)(()=>{let e=!0,t=++L.current,l=nP(v);return(async()=>{var o,n,i,a;if(j({pageUid:C,pending:!0,allowBridge:!1,notFound:!1}),l&&!P&&!(null==k||null==(o=k.isAccessibleLoaded)?void 0:o.call(k)))try{await (null==k||null==(n=k.ensureAccessibleLoaded)?void 0:n.call(k))}catch(l){e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:!0,notFound:!1});return}if(!e||t!==L.current)return;let s=P||!l?void 0:nj(k,C);if(!s&&!P&&l)return j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0});if(!s&&"notFound"===x){let l=await nI(r,C);e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:l,notFound:!l});return}if((null==s?void 0:s.type)===et.q2.group){if(A)return j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0});let e=te({app:M,route:s,layout:v});return"emptyGroup"===e.reason?j({pageUid:C,pending:!1,allowBridge:!1,notFound:!1}):e.runtimePath?I.current?j({pageUid:C,pending:!1,allowBridge:!1,notFound:!1}):(I.current=!0,"document"===e.navigationMode)?window.location.replace(e.runtimePath):S(e0(e.runtimePath,null==(a=M.router)||null==(i=a.getBasename)?void 0:i.call(a)),{replace:!0}):j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0})}if((null==s?void 0:s.type)===et.q2.page){if("notFound"===x)return j({pageUid:C,pending:!1,allowBridge:!1,notFound:!0});if("bridge"===x)return j({pageUid:C,pending:!1,allowBridge:!0,notFound:!1});let l=te({app:M,route:s,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===l.navigationMode&&l.runtimePath&&!I.current){I.current=!0,window.location.replace(l.runtimePath);return}if("unsupportedV2Runtime"===l.reason){e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:!1,notFound:!1,legacyPageUnsupported:!0});return}}e&&t===L.current&&j({pageUid:C,pending:!1,allowBridge:!0,notFound:!1})})(),()=>{e=!1}},[M,r,A,x,S,C,v,k,P]),(0,i.useMemo)(()=>T.pageUid!==C||T.pending?null:T.notFound?(0,m.jsx)(E.bM,{}):T.legacyPageUnsupported?(0,m.jsx)(nD,{app:M,location:w}):T.allowBridge?(0,m.jsx)(nL,{pageUid:C,active:t,getLayoutModel:b}):null,[t,M,b,T.allowBridge,T.legacyPageUnsupported,T.notFound,T.pageUid,T.pending,w,C])};nE.displayName="FlowRoute";let nY=nE,nN=e=>e.current,nO=e=>{let{layoutRouteName:t}=e,l=(0,_.n)(),o=(0,f.useFlowEngine)(),n=l.layoutManager.getLayout(t),r=(0,y.useLocation)(),a=(0,y.useMatches)(),s=ev(o,n.uid,{required:!0}),d="admin"===n.routeName?"redirect":"notFound",u=(0,i.useRef)(0),c=(0,i.useMemo)(()=>{let e=a[a.length-1],t=a.find(e=>e.id===n.routeName);return{id:null==e?void 0:e.id,name:null==e?void 0:e.id,pathname:r.pathname,state:r.state,params:(null==e?void 0:e.params)||{},layoutRouteName:n.routeName,layoutBasePathname:null==t?void 0:t.pathname}},[n.routeName,r.pathname,r.state,a]);if(!s)throw Error(`[NocoBase] Layout '${n.routeName}' model '${n.uid}' is not mounted.`);let p=s.resolveLayoutRoute(c),h=(0,i.useMemo)(()=>e=>ev(e,n.uid,{required:!0}),[n.uid]);return((0,i.useEffect)(()=>{let e=++u.current;return s.syncLayoutRoute(c),()=>{Promise.resolve().then(()=>{nN(u)===e&&s.clearLayoutRoute(c)}).catch(()=>{})}},[s,c]),"root"===p.type)?null:"notFound"===p.type?(0,m.jsx)(E.bM,{}):(0,m.jsx)(nY,{pageUid:p.pageUid,getLayoutModel:h,legacyPageBehavior:d})};var nB=__webpack_require__(1883);function nV(e){return(0,m.jsx)(b.Card,{...e,children:(0,m.jsx)(b.Skeleton,{paragraph:{rows:3}})})}let nH=e=>e.current;function nq(e){return e===eg||(0,f.isInheritedFrom)(e,eg)}function n$(e,t){if(!(e instanceof eg))throw Error(`[NocoBase] Layout '${t.routeName}' requires model '${t.uid}' to be an instance of BaseLayoutModel.`)}async function nz(e,t){let l=await e.getModelClassAsync(t.layoutModelClass);if(!l)throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' is not registered.`);if(!nq(l))throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' must extend BaseLayoutModel.`)}let nU=e=>{let{layoutRouteName:t}=e,l=(0,_.n)(),o=(0,f.useFlowEngine)(),n=l.layoutManager.getLayout(t),r=(0,y.useLocation)(),a=(0,y.useMatches)(),s=a[a.length-1],d=a.find(e=>e.id===n.routeName),u=JSON.stringify((null==s?void 0:s.params)||{}),c=(0,i.useMemo)(()=>JSON.parse(u),[u]),p=(0,i.useRef)(0),h=(0,i.useMemo)(()=>({id:null==s?void 0:s.id,name:null==s?void 0:s.id,pathname:r.pathname,state:r.state,params:c,layoutRouteName:n.routeName,layoutBasePathname:null==d?void 0:d.pathname}),[null==s?void 0:s.id,c,n.routeName,null==d?void 0:d.pathname,r.pathname,r.state]),{loading:g,data:v,error:b}=(0,nB.useRequest)(async()=>{let e=o.getModel(n.uid);if(e)return n$(e,n),e.setProps({layout:n}),e;await nz(o,n);let t=await o.createModelAsync({uid:n.uid,use:n.layoutModelClass,props:{layout:n}});return n$(t,n),t},{refreshDeps:[o,n]});if((0,i.useEffect)(()=>{if(!v)return;let e=++p.current;return v.syncLayoutRoute(h),()=>{Promise.resolve().then(()=>{nH(p)===e&&v.clearLayoutRoute(h)}).catch(()=>{})}},[v,h]),b)throw b;return g||!v?(0,m.jsx)(nV,{style:{margin:16}}):(0,m.jsx)(f.FlowModelRenderer,{model:v})},nK="RootPageModel",nG="ChildPageModel",nW=(e,t)=>{if("string"!=typeof e||""===e.trim())throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a non-empty string.`)},nJ=(e,t)=>{if("string"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a string.`)},nX=(e,t)=>{void 0!==e&&nW(e,t)},nQ=(e,t)=>{if(void 0!==e&&"boolean"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a boolean.`)};function nZ(e){if(e.includes("..")||e.startsWith(".")||e.endsWith("."))throw Error(`[NocoBase] layoutManager.registerLayout() received invalid routeName '${e}'.`)}function n0(e,t){let l=t.trim(),o=e.includes(".");if(o&&l.startsWith("/"))throw Error(`[NocoBase] nested layout routePath '${t}' must be relative.`);let n=o?l.replace(/^\/+/,"").replace(/\/+$/,""):`/${l.replace(/^\/+/,"").replace(/\/+$/,"")}`;if(!o&&(!n||"/"===n))throw Error("[NocoBase] layoutManager.registerLayout() does not support root routePath '/'.");if(n.includes("*"))throw Error(`[NocoBase] layoutManager.registerLayout() does not support wildcard routePath '${t}'.`);return n}function n1(e){nW(e.routeName,"routeName"),nJ(e.routePath,"routePath"),nW(e.uid,"uid"),nW(e.layoutModelClass,"layoutModelClass"),nX(e.rootPageModelClass,"rootPageModelClass"),nX(e.childPageModelClass,"childPageModelClass"),nQ(e.authCheck,"authCheck"),nZ(e.routeName);let t=n0(e.routeName,e.routePath);return{routeName:e.routeName,rootRouteName:e.routeName.split(".")[0],routePath:t,uid:e.uid,layoutModelClass:e.layoutModelClass,rootPageModelClass:e.rootPageModelClass||nK,childPageModelClass:e.childPageModelClass||nG,authCheck:e.authCheck??!0}}class n2{registerLayout(e){let t=n1(e);if(this.layouts.has(t.routeName))throw Error(`[NocoBase] Layout '${t.routeName}' has already been registered.`);let l=this.uidIndex.get(t.uid);if(l)throw Error(`[NocoBase] Layout uid '${t.uid}' has already been registered by '${l}'.`);return this.layouts.set(t.routeName,t),this.uidIndex.set(t.uid,t.routeName),this.addStandardRoutes(t),t}getLayout(e){let t=this.layouts.get(e);if(!t)throw Error(`[NocoBase] Layout '${e}' is not registered.`);return t}hasLayout(e){return this.layouts.has(e)}listLayouts(){return Array.from(this.layouts.values())}addStandardRoutes(e){let t=e.routeName,l=e.authCheck,o=!1===l;this.app.router.add(t,{path:e.routePath,authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nU,{layoutRouteName:e.routeName})}),this.app.router.add(el(t),{path:":name",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})}),this.app.router.add(eo(t),{path:":name/tab/:tabUid",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})}),this.app.router.add(en(t),{path:":name/view/*",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})}),this.app.router.add(ei(t),{path:":name/tab/:tabUid/view/*",authCheck:l,skipAuthCheck:o,element:(0,m.jsx)(nO,{layoutRouteName:e.routeName})})}constructor(e){this.layouts=new Map,this.uidIndex=new Map,this.app=e}}class n5{activateLayout(e){let t=this.normalizeLayoutUid(null==e?void 0:e.uid),l=Symbol("route-layout");return this.layoutActivations.push({token:l,uid:t}),this.syncRoutesProperty(),()=>{let e=this.layoutActivations.findIndex(e=>e.token===l);e>=0&&this.layoutActivations.splice(e,1),this.syncRoutesProperty()}}setRoutes(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getCurrentLayoutUid(),l=this.getRouteCache(t);l.routes=e,l.accessibleLoaded=!0,t===this.getCurrentLayoutUid()&&(this.routes=e),this.emitChange(t)}listAccessible(){let e=this.getRouteCache(this.getReadableLayoutUid()).routes;return this.routes=e,e}isAccessibleLoaded(){return this.getRouteCache().accessibleLoaded}async refreshAccessible(){let e=this.getCurrentLayoutUid();return this.refreshAccessibleByLayout(e)}async refreshAccessibleByLayout(e){var t;let l=this.nextRefreshRequestId(e),o=await this.getAPIClient().request({url:"/desktopRoutes:listAccessible",params:{tree:!0,sort:"sort",layout:e}}),n=(null==o||null==(t=o.data)?void 0:t.data)||[];return l===this.getRefreshRequestId(e)&&this.setRoutes(n,e),n}async ensureAccessibleLoaded(){let e=this.getCurrentLayoutUid(),t=this.getRouteCache(e);if(t.accessibleLoaded)return this.routes=t.routes,t.routes;let l=this.accessibleLoadingPromises.get(e);if(l)return l;let o=this.refreshAccessibleByLayout(e).finally(()=>{this.accessibleLoadingPromises.get(e)===o&&this.accessibleLoadingPromises.delete(e)});return this.accessibleLoadingPromises.set(e,o),o}subscribe(e){return this.subscribers.set(e,this.getCurrentLayoutUid()),()=>{this.subscribers.delete(e)}}unsubscribe(e){this.subscribers.delete(e)}async createRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").create({values:e,layout:this.getCurrentLayoutUid()});return l&&await this.refreshAccessible(),o}async updateRoute(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{refreshAfterMutation:o=!0}=l,n=await this.getResource("desktopRoutes").update(Array.isArray(e)?{filter:{id:{$in:e}},values:t}:{filterByTk:e,values:t});return o&&await this.refreshAccessible(),n}async deleteRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").destroy({filterByTk:e});return l&&await this.refreshAccessible(),o}async moveRoute(e){let{refreshAfterMove:t=!0,...l}=e,o=await this.getResource("desktopRoutes").move(l);return t&&await this.refreshAccessible(),o}getRouteBySchemaUid(e){return this.findRoute(this.listAccessible(),e)}getRouteById(e){return this.findRouteById(this.listAccessible(),e)}getAPIClient(){var e;if(!(null==(e=this.ctx)?void 0:e.api))throw Error("[NocoBase] RouteRepository requires context.api.");return this.ctx.api}getResource(e){return this.getAPIClient().resource(e)}emitChange(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getCurrentLayoutUid();this.subscribers.forEach((t,l)=>{if(t!==e)return;let o=this.notifiedLayoutUid;this.notifiedLayoutUid=e;try{l()}finally{this.notifiedLayoutUid=o}})}getCurrentLayoutUid(){var e;return(null==(e=this.layoutActivations[this.layoutActivations.length-1])?void 0:e.uid)||tl}normalizeLayoutUid(e){return"string"==typeof e&&e.trim()?e:tl}getReadableLayoutUid(){return this.notifiedLayoutUid||this.getCurrentLayoutUid()}getRouteCache(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getCurrentLayoutUid(),t=this.routeCaches.get(e);return t||(t={accessibleLoaded:!1,routes:[]},this.routeCaches.set(e,t)),t}syncRoutesProperty(){this.routes=this.getRouteCache().routes}nextRefreshRequestId(e){let t=this.getRefreshRequestId(e)+1;return this.refreshRequestIds.set(e,t),t}getRefreshRequestId(e){return this.refreshRequestIds.get(e)||0}findRoute(e,t){for(let l of e){if(l.schemaUid===t)return l;if(l.children){let e=this.findRoute(l.children,t);if(e)return e}}}findRouteById(e,t){for(let l of e){if(null!=l.id&&String(l.id)===String(t))return l;if(l.children){let e=this.findRouteById(l.children,t);if(e)return e}}}constructor(e){this.ctx=e,this.routes=[],this.subscribers=new Map,this.accessibleLoadingPromises=new Map,this.layoutActivations=[],this.routeCaches=new Map,this.refreshRequestIds=new Map}}class n8{getURL(){if(!this.app)return;let e=this.app.getApiUrl();if(!e)return;let t="";if(this.getSubAppName(this.app))t=`?_app=${this.getSubAppName(this.app)}`;else{let e=(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.app.getPublicPath());t=e?`?__appName=${e}`:""}let l=this.options.basename||"/ws";if(this.options.url){let e=new URL(this.options.url);if("localhost"===e.hostname){let o="https:"===location.protocol?"wss":"ws";return`${o}://${location.hostname}:${e.port}${l}${t}`}return`${this.options.url}${t}`}try{let o=new URL(e);return`${"https:"===o.protocol?"wss":"ws"}://${o.host}${l}${t}`}catch(e){return`${"https:"===location.protocol?"wss":"ws"}://${location.host}${l}${t}`}}get reconnectAttempts(){var e;return(null==(e=this.options)?void 0:e.reconnectAttempts)||30}get reconnectInterval(){var e;return(null==(e=this.options)?void 0:e.reconnectInterval)||1e3}get pingInterval(){var e;return(null==(e=this.options)?void 0:e.pingInterval)||3e5}get readyState(){return this._ws?this._ws.readyState:-1}createWebSocket(){return new WebSocket(this.getURL(),this.options.protocols)}connect(){let e;if(!this.enabled||(0===this._reconnectTimes&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts||this.readyState===WebSocket.OPEN))return;this._reconnectTimes++;let t=this.createWebSocket();t.onopen=()=>{for(let{type:e,listener:l,options:o}of(console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t,this.events))this._ws.addEventListener(e,l,o);e=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=async()=>{console.log("onerror",this.readyState,this._reconnectTimes)},t.onclose=async t=>{setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(e)}}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(e){if(this._ws)return this._ws.send(e)}on(e,t,l){this.events.push({type:e,listener:t,options:l}),this._ws&&this._ws.addEventListener(e,t,l)}emit(e,t){for(let l of this.events)l.type===e&&l.listener(t)}off(e,t,l){let o=0;for(let l of this.events){if(l.type===e&&l.listener===t){this.events.splice(o,1);break}o++}this._ws&&this._ws.removeEventListener(e,t,l)}removeAllListeners(){if(this._ws)for(let{type:e,listener:t,options:l}of this.events)this._ws.removeEventListener(e,t,l)}constructor(e){if(this._reconnectTimes=0,this.events=[],this.connected=!1,this.serverDown=!1,this.lastMessage={},this.getSubAppName=e=>{let t=e.getPublicPath(),l=`^${t}_app/([^/]*)/`,o=location.pathname.match(new RegExp(l));return o?o[1]:null},!e){this.enabled=!1;return}this.options=!0===e?{}:e,this.enabled=!0,(0,h.define)(this,{serverDown:h.observable.ref,connected:h.observable.ref,lastMessage:h.observable.ref})}}function n4(){"use strict";function e(e){for(var t=[],l=0,o=e.length;l<o;l++)-1===t.indexOf(e[l])&&t.push(e[l]);return t}function t(e,t){return JSON.stringify(e)===JSON.stringify(t)}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var l={},o={$is:function(e,t){return e===t},$match:function(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>(null==e?void 0:e.length)===t.length&&(null==e?void 0:e.every((e,l)=>e===t[l]))):JSON.stringify(e)===JSON.stringify(t)},$eq:function(e,l){return Array.isArray(e)&&Array.isArray(l)?t(e,l):Array.isArray(e)?e.includes(l):e==l},$ne:function(e,t){return e!=t},"!==":function(e,t){return e!==t},$gt:function(e,t){return Array.isArray(e)?e.some(e=>e>t):e>t},$gte:function(e,t){return e>=t},$lt:function(e,t,l){return Array.isArray(e)?e.some(e=>e<t):void 0===l?e<t:e<t&&t<l},$lte:function(e,t,l){return void 0===l?e<=t:e<=t&&t<=l},$exists:function(e){return l.truthy(e)},$notEmpty:function(e){return!o.$empty(e)},$empty:function(e){return Array.isArray(e)||"string"==typeof e?0===e.length:null==e},$notExists:function(e){return!l.truthy(e)},"%":function(e,t){return e%t},log:function(e){return e},$in:function(e,t){return!!t&&void 0!==t.indexOf&&(Array.isArray(e)&&Array.isArray(t)?t.some(t=>e.includes(t)):-1!==t.indexOf(e))},$notIn:function(e,t){return!!t&&void 0!==t.indexOf&&-1===t.indexOf(e)},$includes:function(e,t){return!!e&&void 0!==e.indexOf&&(Array.isArray(e)?e.some(e=>null==e?void 0:e.includes(t)):-1!==e.indexOf(t))},$notIncludes:function(e,t){return Array.isArray(e)?!e.some(e=>(e||"").includes(t)):!(e=e||"").includes(t)},$anyOf:function(e,t){return null!=e&&0!==e.length&&(Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>e.some(e=>t.includes(e))):e.some(e=>t.includes(e)))},$noneOf:function(e,t){return!e||0===e.length||!t||0===t.length||(Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),!t.some(t=>e.includes(t)))},$notMatch:function(e,t){if((null==e?void 0:e.length)!==(null==t?void 0:t.length))return!0;for(let l=0;l<((null==e?void 0:e.length)||0);l++)if((null==e?void 0:e[l])!==(null==t?void 0:t[l]))return!0;return!1},$dateOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t))return o.$dateBetween(e,t);let l=ie(e),n=ie(t);return!!l&&!!n&&l.getTime()===n.getTime()},$dateBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ie(e),o=ie(t);return!!l&&!!o&&l.getTime()<o.getTime()},$dateNotBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ie(e),o=ie(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()>=o.getTime()},$dateAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ie(e),o=ie(t);return l.getTime()>o.getTime()},$dateNotAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ie(e),o=ie(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()<=o.getTime()},$dateBetween:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,I.getDayRangeByParams)(t));let l=ie(e),o=n3(t[0]),n=n3(t[1]);if(!l||!o||!n)throw Error("Invalid date format");return l.getTime()>=o.getTime()&&l.getTime()<=n.getTime()},$dateNotOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,I.getDayRangeByParams)(t)),Array.isArray(t))return!o.$dateBetween(e,t);let l=ie(e),n=ie(t);return l.getTime()!==n.getTime()},$isTruly:function(e){return Array.isArray(e)?e.some(e=>!0===e||1===e):!0===e||1===e},$isFalsy:function(e){return Array.isArray(e)?e.some(e=>!l.truthy(e)):!l.truthy(e)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(e,t,l){if(l<0){var o=String(e).substr(t);return o.substr(0,o.length+l)}return String(e).substr(t,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)+parseFloat(t,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)*parseFloat(t,10)})},"-":function(e,t){return void 0===t?-e:e-t},"/":function(e,t){return e/t},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(e,t){return e.concat(t)},[])},var:function(e,t){var l=void 0===t?null:t,o=this;if(void 0===e||""===e||null===e)return o;for(var n=String(e).split("."),i=0;i<n.length;i++)if(null==o||void 0===(o=o[n[i]]))return l;return o},missing:function(){for(var e=[],t=Array.isArray(arguments[0])?arguments[0]:arguments,o=0;o<t.length;o++){var n=t[o],i=l.apply({var:n},this);(null===i||""===i)&&e.push(n)}return e},missing_some:function(e,t){var o=l.apply({missing:t},this);return t.length-o.length>=e?[]:o}};return l.is_logic=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&1===Object.keys(e).length&&!e.type},l.truthy=function(e){return(!Array.isArray(e)||0!==e.length)&&!!e},l.getOperator=function(e){return Object.keys(e)[0]},l.getValues=function(e){return e[l.getOperator(e)]},l.apply=function(e,t){if(Array.isArray(e))return e.map(function(e){return l.apply(e,t)});if(!l.is_logic(e))return e;var n,i,r,a,s,d=l.getOperator(e),u=e[d];if(Array.isArray(u)||(u=[u]),"if"===d||"?:"==d){for(n=0;n<u.length-1;n+=2)if(l.truthy(l.apply(u[n],t)))return l.apply(u[n+1],t);return u.length===n+1?l.apply(u[n],t):null}if("$and"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),l.truthy(i));n+=1);return i}if("or"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),!l.truthy(i));n+=1);return i}if("filter"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.filter(function(e){return l.truthy(l.apply(r,e))}):[];if("map"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.map(function(e){return l.apply(r,e)}):[];else if("reduce"===d)return(a=l.apply(u[0],t),r=u[1],s=void 0!==u[2]?u[2]:null,Array.isArray(a))?a.reduce(function(e,t){return l.apply(r,{current:t,accumulator:e})},s):s;else if("all"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(!l.truthy(l.apply(r,a[n])))return!1;return!0}else if("none"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!0;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!1;return!0}else if("some"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!0;return!1}if(u=u.map(function(e){return l.apply(e,t)}),Object.prototype.hasOwnProperty.call(o,d)&&"function"==typeof o[d])return o[d].apply(t,u);if(d.indexOf(".")>0){var c=String(d).split("."),p=o;for(n=0;n<c.length;n++){if(!Object.prototype.hasOwnProperty.call(p,c[n]))throw Error("Unrecognized operation "+d+" (failed at "+c.slice(0,n+1).join(".")+")");p=p[c[n]]}return p.apply(t,u)}throw Error("Unrecognized operation "+d)},l.uses_data=function(t){var o=[];if(l.is_logic(t)){var n=l.getOperator(t),i=t[n];Array.isArray(i)||(i=[i]),"var"===n?o.push(i[0]):i.forEach(function(e){o.push.apply(o,l.uses_data(e))})}return e(o)},l.addOperation=function(e,t){o[e]=t},l.rmOperation=function(e){delete o[e]},l.rule_like=function(e,t){if(t===e||"@"===t)return!0;if("number"===t)return"number"==typeof e;if("string"===t)return"string"==typeof e;if("array"===t)return Array.isArray(e)&&!l.is_logic(e);if(l.is_logic(t)){if(l.is_logic(e)){var o=l.getOperator(t),n=l.getOperator(e);if("@"===o||o===n)return l.rule_like(l.get_values(e,!1),l.get_values(t,!1))}return!1}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(var i=0;i<t.length;i+=1)if(!l.rule_like(e[i],t[i]))return!1;return!0}return!1},l}function n3(e){return new Date(e.includes("T")&&e.endsWith("Z")?e:e.includes(" ")?e.replace(" ","T"):`${e}T00:00:00`)}function n6(e){let[t,l]=e.split("-").map(Number);return new Date(t,l-1)}function n9(e){return new Date(parseInt(e.slice(0,4)),(parseInt(e.slice(5,6))-1)*3)}function n7(e){return new Date(parseInt(e),0)}function ie(e){let t=Array.isArray(e)?e[1]??e[0]:e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(t))return new Date(t);if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(t))return new Date(t.replace(" ","T"));if(/^\d{4}-\d{2}-\d{2}$/.test(t))return n3(t);if(/^\d{4}-\d{2}$/.test(t))return n6(t);if(/^\d{4}Q[1-4]$/.test(t))return n9(t);else if(/^\d{4}$/.test(t))return n7(t);return null}var it=__webpack_require__(2741),il=__webpack_require__(6220),io=__webpack_require__(7404),ii=__webpack_require__(8198);function ir(e,t,l){e.define(t,()=>l),window.__nocobase_app_dev__&&(window.__nocobase_app_dev_deps__=window.__nocobase_app_dev_deps__||{},window.__nocobase_app_dev_deps__[t]=l)}function ia(e){ir(e,"react",i.default),ir(e,"react-dom",ll.default),ir(e,"react/jsx-runtime",m.default),ir(e,"react-router",__rspack_external_react_router_65608a1a),ir(e,"react-router-dom",y),ir(e,"antd",b),ir(e,"@ant-design/icons",to),ir(e,"@ant-design/cssinjs",__rspack_external__ant_design_cssinjs_c619260f),ir(e,"antd-style",__rspack_external_antd_style_1dcbd21e),ir(e,"i18next",__rspack_external_i18next),ir(e,"react-i18next",v),ir(e,"@formily/antd-v5",il),ir(e,"@formily/core",__rspack_external__formily_core_1e27a7e0),ir(e,"@formily/react",lj),ir(e,"@formily/reactive",h),ir(e,"@formily/shared",io),ir(e,"@nocobase/utils",I),ir(e,"@nocobase/utils/client",I),ir(e,"@nocobase/client-v2",n),ir(e,"@nocobase/client-v2/client-v2",n),ir(e,"@nocobase/flow-engine",f),ir(e,"@nocobase/evaluators",__rspack_external__nocobase_evaluators_client_1caf2629),ir(e,"@nocobase/evaluators/client",__rspack_external__nocobase_evaluators_client_1caf2629),ir(e,"@dnd-kit/core",lt),ir(e,"@dnd-kit/sortable",ii),ir(e,"@ctrl/tinycolor",it),ir(e,"ahooks",nB),ir(e,"axios",__rspack_external_axios.default),ir(e,"dayjs",I.dayjs),ir(e,"lodash",g.default),ir(e,"@emotion/css",A),ir(e,"file-saver",__rspack_external_file_saver_8b74c2e4)}var is=__webpack_require__(6104);let id=/^\/+/,iu=/\/+$/,ic=e=>{let t=id.exec(e);return t?e.slice(t[0].length):e},ip=e=>{let t=iu.exec(e);return t?e.slice(0,-t[0].length):e},im=e=>`${ip(e)}/`,ih=e=>(0,__rspack_external_react_is_98317e95.isValidElementType)(e);class ig{get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}setDocumentLanguage(e){"u">typeof document&&(e?document.documentElement.lang=e:document.documentElement.removeAttribute("lang"))}defineObservableState(){(0,h.define)(this,{maintained:h.observable.ref,maintaining:h.observable.ref,error:h.observable.ref,apps:h.observable})}initializeExtendedState(){this.systemSettings=new N.o(this.apiClient)}afterManagersInitialized(){this.aiManager=new R(this),this.jsonLogic=n4()}configureContext(){}configureRuntimeAdapters(){}addCustomProviders(){}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",e=>{let t=e.detail;(null==t?void 0:t.token)&&this.setTokenInWebSocket(t)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(e){let{token:t,authenticator:l}=e;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:t,authenticator:l}}))}initRequireJs(){if(void 0===globalThis.window)return;let e=globalThis.window;if(e.requirejs){this.requirejs=e.requirejs;return}e.requirejs=this.requirejs=(0,is.b)(),ia(this.requirejs),e.define=this.requirejs.define}configureBaseContext(){this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.flowEngine.context.defineProperty("routeRepository",{value:new n5(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:async()=>{var e;return(null==(e=(await this.apiClient.request({url:"app:getInfo"})).data)?void 0:e.data)||{}}}),this.flowEngine.context.defineProperty("pageInfo",{value:(0,h.observable)({version:void 0})}),this.flowEngine.context.defineProperty("systemSettings",{get:()=>this.systemSettings})}addBaseProviders(){this.use(v.I18nextProvider,{i18n:this.i18n}),this.use(f.FlowEngineProvider,{engine:this.flowEngine}),this.use(j),this.use(w)}addFinalProviders(){this.use(f.FlowEngineGlobalsContextProvider)}addReactRouterComponents(){this.addComponents({Link:y.Link,Navigate:y.Navigate,NavLink:y.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:()=>null})}updateFavicon(e){let t=document.querySelector('link[rel="shortcut icon"]');arguments.length>0&&(this.favicon=e||"");let l=this.favicon||this.getCdnUrl()+"favicon/favicon.ico";t?t.href=l:((t=document.createElement("link")).rel="shortcut icon",t.href=l,document.head.appendChild(t))}setWsAuthorized(e){this.wsAuthorized=e}setMaintaining(e){this.maintaining!==e&&(this.maintaining=e,e||this.eventBus.dispatchEvent(new Event("maintaining:end")))}getOptions(){return this.options}getName(){return(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.getPublicPath())||null}getCdnUrl(){return im(window.__webpack_public_path__||eL(this.getPublicPath()))}getPublicPath(){return im(this.options.publicPath||"/")}getApiUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.apiClient.axios.defaults.baseURL??"";if(!t.startsWith("http://")&&!t.startsWith("https://")){let{protocol:e,host:l}=globalThis.window.location;t=`${e}//${l}${t}`}return`${ip(t)}/${ic(e)}`}getRouteUrl(e){return this.getPublicPath()+ic(e)}getHref(e){let t=this.name;return t&&"main"!==t?`${this.getPublicPath()}apps/${t}/${ic(e)}`:this.getPublicPath()+ic(e)}getComposeProviders(){let e=lB(...this.providers)(E.ct);return e.displayName="Providers",e}use(e,t){return this.addProvider(e,t)}addProvider(e,t){return this.providers.push([e,t])}addProviders(e){e.forEach(e=>{Array.isArray(e)?this.addProvider(e[0],e[1]):this.addProvider(e)})}getComponent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],l=e=>t&&console.error(e);if(!e)return void l(`getComponent called with ${e}`);if("string"==typeof e){let t=(0,g.get)(this.components,e);return t||void l(`Component ${e} not found`)}if(ih(e))return e;l(`Component ${e} should be a string or a React component`)}renderComponent(e,t,l){let o=this.getComponent(e);return o?i.default.createElement(o,t,l):null}addComponent(e,t){let l=e,o=t||l.displayName||l.name;o?(0,g.set)(this.components,o,e):console.error("Component must have a displayName or pass name as second argument")}addComponents(e){Object.keys(e).forEach(t=>{this.addComponent(e[t],t)})}setAppsComponent(e){let{Component:t}=e;this.apps.Component=t}setAppsProvider(e){let{loadAppList:t}=e;this.apps.loadAppList=t}getRootFallback(){return this.renderComponent("AppSpin")}getRootComponent(){let e=this.model,t=this.flowEngine,l=()=>this.getRootFallback();return o=>{let{children:n}=o;return(0,i.useLayoutEffect)(()=>{e.setProps({children:n})},[n]),(0,m.jsx)(f.FlowEngineProvider,{engine:t,children:(0,m.jsx)(f.FlowModelRenderer,{fallback:l(),model:e})})}}mount(e){let t=lO(e);if(t){let e=this.getRootComponent(),l=(0,__rspack_external_react_dom_client_76b1397c.createRoot)(t);return l.render((0,m.jsx)(e,{})),l}}createLayoutManager(e){return new n2(this)}createWebSocketClient(e){return new n8(e.ws??!1)}getDefaultComponents(){return{AppNotFound:E.bM,AppError:E.uV,AppSpin:E.gv,AppMaintaining:E.be,AppMaintainingDialog:E.tp}}constructor(e={}){this.options=e,this.eventBus=new EventTarget,this.providers=[],this.scopes={},this.components={},this.entryActionManager=new Y,this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null,loadAppList:null},this.initRequireJs(),this.defineObservableState(),this.devDynamicImport=e.devDynamicImport,this.scopes=(0,g.merge)(this.scopes,e.scopes),this.components=(0,g.merge)(this.getDefaultComponents(),e.components),this.name=this.options.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)||"main",this.apiClient=this.createApiClient(e),this.initializeExtendedState(),this.i18n=this.createI18n(e),this.router=this.createRouterManager(e),this.layoutManager=this.createLayoutManager(e),this.pluginManager=this.createPluginManager(e),this.flowEngine=new f.FlowEngine,this.flowEngine.registerModels({ApplicationModel:i_}),this.model=this.flowEngine.createModel({use:"ApplicationModel",uid:"__app_model__"}),this.context=this.flowEngine.context,this.configureRuntimeAdapters(),this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.configureBaseContext(),this.configureContext(),this.addBaseProviders(),this.addCustomProviders(),this.addFinalProviders(),this.addReactRouterComponents(),this.addProviders(e.providers||[]),this.ws=this.createWebSocketClient(e),this.ws.app=this,this.pluginSettingsManager=this.createPluginSettingsManager(e),this.addRoutes(),this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e,this.setDocumentLanguage(e)}),this.initListeners(),this.afterManagersInitialized()}}var iv=new WeakMap,iy=new WeakMap;class i_ extends f.FlowModel{get app(){return this.context.app}getProviders(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,iv,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iv)||this.app.getComposeProviders()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iv)}getRouter(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,iy,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iy)||this.app.router.getRouterComponent()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,iy)}render(){return this.app.maintaining&&!this.app.maintained?(0,m.jsx)(m.Fragment,{children:this.renderMaintaining()}):this.app.error&&!this.app.maintaining?(0,m.jsx)(m.Fragment,{children:this.renderError()}):(0,m.jsxs)(m.Fragment,{children:[this.renderContent(),this.app.maintaining&&this.app.maintained?this.renderMaintainingDialog():null]})}renderMaintaining(){return this.app.renderComponent("AppMaintaining",{app:this.app,error:this.app.error})}renderMaintainingDialog(){return this.app.renderComponent("AppMaintainingDialog",{app:this.app,error:this.app.error})}renderError(){return this.app.renderComponent("AppError",{app:this.app,error:this.app.error})}renderContent(){let e=this.app.getComponent("AppError",!1),t=this.getRouter(),l=this.getProviders(),o=(0,m.jsx)(t,{BaseLayout:l});if(!e)return o;let n=(e,t)=>{var l;console.error(e);let o=null==(l=t.componentStack)?void 0:l.trim();if(!o)return;let n=Error("React component stack");n.stack=o,console.error(n)};return(0,m.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:t=>(0,m.jsx)(e,{app:this.app,...t}),onError:n,children:o})}constructor(...e){super(...e),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,iv,{writable:!0,value:void 0}),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,iy,{writable:!0,value:void 0})}}i_.registerFlow({key:"appFlow",steps:{init:{async handler(e){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}});let ib=[{label:'{{t("contains")}}',value:"$includes",selected:!0},{label:'{{t("does not contain")}}',value:"$notIncludes"},{label:'{{t("is")}}',value:"$eq"},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],ix=[{label:'{{t("is")}}',value:"$match",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is not")}}',value:"$notMatch",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is any of")}}',value:"$anyOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$noneOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],iM=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"}],iw=[{label:"{{ t('is') }}",value:"$dateOn",selected:!0,schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is not') }}",value:"$dateNotOn",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is before') }}",value:"$dateBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is after') }}",value:"$dateAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or after') }}",value:"$dateNotBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or before') }}",value:"$dateNotAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is between') }}",value:"$dateBetween",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!0}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],iS=[{label:'{{t("=")}}',value:"$eq",selected:!0},{label:'{{t("≠")}}',value:"$ne"},{label:'{{t(">")}}',value:"$gt"},{label:'{{t("≥")}}',value:"$gte"},{label:'{{t("<")}}',value:"$lt"},{label:'{{t("≤")}}',value:"$lte"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],ik=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("exists")}}',value:"$exists",noValue:!0},{label:'{{t("not exists")}}',value:"$notExists",noValue:!0}],iF=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],iC=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$neq"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],iA=[{label:'{{t("Yes")}}',value:"$isTruly",selected:!0,noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:'{{t("No")}}',value:"$isFalsy",noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],iP=[{label:'{{t("is any of")}}',value:"$childIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$childNotIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}}],iT=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],ij=[{label:'{{t("contains")}}',value:"$includes",selected:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("does not contain")}}',value:"$notIncludes",schema:{type:"string","x-component":"Input"}},{label:'{{t("is")}}',value:"$eq",schema:{type:"string","x-component":"Input"}},{label:'{{t("is not")}}',value:"$ne",schema:{type:"string","x-component":"Input"}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0,schema:{type:"string","x-component":"Input"}}];class iI{register(e){return this.operators[e.value]=e,this}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.forEach(e=>{this.register(e)}),this}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]=l,this}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]||(this.groups[e]=[]),l.forEach(t=>{this.groups[e].some(e=>e.value===t.value)||this.groups[e].push(t)}),this}get(e){return this.operators[e]}getGroup(e){return this.groups[e]||[]}getGroups(){return this.groups}resolveOperators(e){return e?"string"==typeof e?this.getGroup(e):e:[]}resolveOperatorReferences(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(e=>"string"==typeof e?this.get(e):e).filter(e=>!!e)}constructor(e={}){this.operators={},this.groups={},Object.entries(e).forEach(e=>{let[t,l]=e;this.registerGroup(t,l)})}}let iL=new iI(e),iR=iL.getGroups(),iD=iR;function iE(e){return iL.resolveOperators(e)}function iY(e){if(!e)return e;let t=Array.isArray(e.operatorOverrides)?e.operatorOverrides:[];e.operatorGroup&&(e.operators=iN(iE(e.operatorGroup),t));let l=e.operators;return"string"==typeof l?(e.operatorGroup=l,e.operators=iN(iE(l),t)):Array.isArray(l)?e.operators=iN(l,t):t.length>0&&(e.operators=[...t]),Array.isArray(e.children)&&e.children.forEach(e=>{e&&"object"==typeof e&&iY(e)}),e}function iN(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0===t.length)return e;let l=[...e];return t.forEach(e=>{let t=l.findIndex(t=>t.value===e.value);-1===t?l.push(e):l[t]=e}),l}function iO(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...t,operatorGroup:e,operators:iE(e)}}function iB(e,t){return{operators:e.flatMap(e=>{let{types:l,operators:o}=e;return iE(o).map(e=>({...e,visible:o=>{let n=l.includes(t(o));return"function"==typeof e.visible?e.visible(o)&&n:n}}))})}}let iV="CollectionSelect",iH=new Set(["name","uiSchema.title"]),iq=new Set(["Grid","Grid.Row","Grid.Col","div"]);function i$(e){return{...e.context,...e.values}}function iz(e,t){if("boolean"==typeof e)return e;if("string"!=typeof e)return!1;let l=e.replace(/^\s*\{\{\s*/,"").replace(/\s*\}\}\s*$/,""),o=i$(t),n=e=>{let t=e.trim().replace(/^\$/,"");if(!t)return!1;if(t.startsWith("!"))return!n(t.slice(1).trim());if("true"===t)return!0;if("false"===t)return!1;let l=t.match(/^([A-Za-z_$][\w$]*)\((.*)\)$/);if(l){let[,e,t]=l,n=(0,g.get)(o,e);return"function"==typeof n&&!!n(...t.split(",").map(e=>e.trim()).filter(Boolean).map(e=>e.replace(/^['"]|['"]$/g,"")))}return!!(0,g.get)(o,t)};return l.split("||").some(e=>e.split("&&").every(e=>n(e)))}function iU(e){return"string"==typeof e?t=>iz(e,t):e}function iK(e){return(null==e?void 0:e["x-hidden"])!==void 0?iU(e["x-hidden"]):(null==e?void 0:e["x-visible"])!==void 0?t=>!iz(e["x-visible"],t):void 0}function iG(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2?arguments[2]:void 0;return Object.entries(e||{}).flatMap(e=>{let[o,n]=e,i=t?`${t}.${o}`:o,r=null==n?void 0:n.properties,a=null==n?void 0:n["x-component"];if(r&&"Grid.Row"===a){let e=Object.entries(r).filter(e=>{let[,t]=e;return(null==t?void 0:t["x-component"])==="Grid.Col"}),l=e.length>0?Math.floor(24/e.length):24;return e.flatMap((e,o)=>{let[n,r]=e;return iG((null==r?void 0:r.properties)||{},t,{row:i,column:n,columnIndex:o,span:l})})}return r&&(!a||iq.has(a))?iG(r,t,l):[{name:i,schema:n,layout:l}]})}function iW(e,t){return!iH.has(e)&&(!!(null==t?void 0:t["x-component"])||(null==t?void 0:t.default)!==void 0||(null==t?void 0:t["x-hidden"])!==void 0)}function iJ(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return iG(e).filter(e=>{let{name:t,schema:l}=e;return iW(t,l)}).map(e=>{var l;let{name:o,schema:n,layout:i}=e,r=null==n?void 0:n["x-component"];return{name:o,title:(null==n?void 0:n.title)||(null==n?void 0:n["x-content"]),component:r,Component:r?null==(l=t.components)?void 0:l[r]:void 0,componentProps:null==n?void 0:n["x-component-props"],defaultValue:null==n?void 0:n.default,description:null==n?void 0:n.description,hidden:iK(n),disabled:iU(null==n?void 0:n["x-disabled"]),options:Array.isArray(null==n?void 0:n.enum)?n.enum:void 0,required:null==n?void 0:n.required,schema:n,layout:i}})}let iX=[{label:"MMMM Do YYYY",value:"MMMM Do YYYY"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"},{label:"MM/DD/YY",value:"MM/DD/YY"},{label:"YYYY/MM/DD",value:"YYYY/MM/DD"},{label:"DD/MM/YYYY",value:"DD/MM/YYYY"},{label:'{{t("Custom")}}',value:"custom"}],iQ=[{label:'{{t("12 hour")}}',value:"hh:mm:ss a"},{label:'{{t("24 hour")}}',value:"HH:mm:ss"}];function iZ(e){return(0,g.get)(e,"uiSchema.x-component-props.picker")||"date"}function i0(e){return(0,g.get)(e,"uiSchema.x-component-props.showTime")}function i1(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("unique"===e||"primaryKey"===e)return{disabled:!l.createMainOnly||!!l.primaryKeyOnly};if("autoIncrement"===e)return{disabled:!l.createMainOnly};if(e.startsWith("reverseField."))return{disabled:"reverseField.type"===e||!l.showReverseFieldConfig,hidden:!l.showReverseFieldConfig};if("autoCreateReverseField"===e&&(0,g.get)(t,"reverseField.key"))return{disabled:!0};if("uiSchema.x-component-props.dateFormat"===e)return{componentProps:{picker:iZ(t)}};if("uiSchema.x-component-props.showTime"===e)return{hidden:"date"!==iZ(t)};if("uiSchema.x-component-props.timeFormat"===e)return{hidden:"date"!==iZ(t)||!1===i0(t)};if("defaultValue"===e){let e=!!(0,g.get)(t,"primaryKey")||!!(0,g.get)(t,"unique")||!!(0,g.get)(t,"autoIncrement")||!!(0,g.get)(t,"defaultToCurrentTime");return{hidden:e,...e?{value:null,hasValue:!0}:null,componentProps:{gmt:(0,g.get)(t,"uiSchema.x-component-props.gmt"),showTime:(0,g.get)(t,"uiSchema.x-component-props.showTime"),dateFormat:(0,g.get)(t,"uiSchema.x-component-props.dateFormat"),timeFormat:(0,g.get)(t,"uiSchema.x-component-props.timeFormat"),picker:(0,g.get)(t,"uiSchema.x-component-props.picker"),format:(0,g.get)(t,"uiSchema.x-component-props.format")},dataSource:(0,g.get)(t,"uiSchema.enum")}}return("precision"===e||"scale"===e)&&"decimal"!==(0,g.get)(t,"type")?{hidden:!0}:{}}function i2(e){let{context:t,getValue:l,setValue:o,values:n}=e,i=!!l("primaryKey"),r=!!l("unique");if(t.createMainOnly&&i&&(!e.changedName||"primaryKey"===e.changedName)&&(!1!==l("unique")&&o("unique",!1),(0,g.has)(n,"autoIncrement")&&!0!==l("autoIncrement")&&o("autoIncrement",!0)),t.createMainOnly&&r&&i&&"unique"===e.changedName&&o("primaryKey",!1),(0,g.get)(n,"reverseField.key")&&!0!==l("autoCreateReverseField")&&o("autoCreateReverseField",!0),("uiSchema.x-component-props.picker"===e.changedName||["primaryKey","unique","autoIncrement","defaultToCurrentTime"].includes(e.changedName||""))&&null!=l("defaultValue")&&(l("primaryKey")||l("unique")||l("autoIncrement")||l("defaultToCurrentTime")||"uiSchema.x-component-props.picker"===e.changedName)&&o("defaultValue",null),!((0,g.has)(n,"uiSchema.x-component-props.picker")||(0,g.has)(n,"uiSchema.x-component-props.dateFormat")||(0,g.has)(n,"uiSchema.x-component-props.showTime")||(0,g.has)(n,"uiSchema.x-component-props.timeFormat")))return;let a=iZ(n);"uiSchema.x-component-props.picker"===e.changedName&&(0,g.has)(n,"uiSchema.x-component-props.dateFormat")&&(0,g.get)(n,"uiSchema.x-component-props.dateFormat")!==(0,I.getPickerFormat)(a)&&o("uiSchema.x-component-props.dateFormat",(0,I.getPickerFormat)(a)),(0,g.has)(n,"uiSchema.x-component-props.showTime")&&"date"!==a&&!1!==i0(n)&&o("uiSchema.x-component-props.showTime",!1),(0,g.has)(n,"uiSchema.x-component-props.timeFormat")&&i0(n)&&!(0,g.get)(n,"uiSchema.x-component-props.timeFormat")&&o("uiSchema.x-component-props.timeFormat","HH:mm:ss")}function i5(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[{name:"primaryKey",title:'{{t("Primary")}}',component:"Checkbox"},{name:"unique",title:'{{t("Unique")}}',component:"Checkbox"}];return e.autoIncrement&&t.push({name:"autoIncrement",title:'{{t("Auto increment")}}',component:"Checkbox"}),t}function i8(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];return!1!==e.includePicker&&t.push({name:"uiSchema.x-component-props.picker",title:'{{t("Picker")}}',component:"Radio.Group",defaultValue:"date",options:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}],hidden:e.hidden}),t.push({name:"uiSchema.x-component-props.dateFormat",title:'{{t("Date format")}}',component:"ExpiresRadio",defaultValue:"YYYY-MM-DD",options:iX,componentProps:{defaultValue:"dddd",formats:["MMMM Do YYYY","YYYY-MM-DD","MM/DD/YY","YYYY/MM/DD","DD/MM/YYYY"]},hidden:e.hidden},{name:"uiSchema.x-component-props.showTime",title:'{{t("Show time")}}',component:"Checkbox",defaultValue:e.showTimeDefault,hidden:e.hidden},{name:"uiSchema.x-component-props.timeFormat",title:'{{t("Time format")}}',component:"Radio.Group",defaultValue:"HH:mm:ss",options:iQ,hidden:t=>!!("function"==typeof e.hidden&&e.hidden(t))||("boolean"==typeof e.hidden?e.hidden:!1===i0(t.values))}),t}function i4(){return[{name:"autoCreateReverseField",title:'{{t("Create inverse field in the target collection")}}',component:"Checkbox",defaultValue:!1},{name:"reverseField.type",title:'{{t("Inverse relationship type")}}',component:"Select",required:!0,options:[{label:"{{t('HasOne')}}",value:"hasOne"},{label:"{{t('HasMany')}}",value:"hasMany"},{label:"{{t('BelongsTo')}}",value:"belongsTo"},{label:"{{t('BelongsToMany')}}",value:"belongsToMany"}],hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,g.get)(l,"autoCreateReverseField")},disabled:!0},{name:"reverseField.uiSchema.title",title:'{{t("Inverse field display name")}}',component:"Input",required:!0,hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,g.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.name",title:'{{t("Inverse field name")}}',component:"Input",required:!0,description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.')}}",hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,g.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}}]}let i3=i4;function i6(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:e.name||"uiSchema.enum",title:e.title||'{{t("Options")}}',component:"ArrayTable"}}let i9={key:"required",label:"Required",hasValue:!1,params:[]};function i7(e){let t="date"===e?"datePicker":"inputNumber",l="date"===e?"date":"limit";return[{key:"greater",label:"Greater than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"less",label:"Less than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"max",label:"Max value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"min",label:"Min value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]}]}class re{register(e){this.items.set(e.key,(0,g.cloneDeep)(e))}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.forEach(e=>this.register(e))}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,t)}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,[...this.groups.get(e)||[],...t])}get(e){return(0,g.cloneDeep)(this.items.get(e))}getGroup(e){return(this.groups.get(e)||[]).map(e=>"string"==typeof e?this.get(e):(0,g.cloneDeep)(e)).filter(Boolean)}constructor(){this.items=new Map,this.groups=new Map}}let rt=new re;function rl(e){rt.register(e)}function ro(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rt.registerGroup(e,t)}function rn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rt.addToGroup(e,t)}rt.registerMany([i9,{key:"pattern",label:"Pattern",hasValue:!0,params:[{key:"regex",label:"Regular Expression",componentType:"text",required:!0}]},{key:"email",label:"Email",hasValue:!1,params:[],paramsType:"object"},{key:"uuid",label:"UUID",hasValue:!1,params:[],paramsType:"object"},{key:"length",label:"Length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"uri",label:"URI",hasValue:!1,params:[],paramsType:"object"},{key:"multiple",label:"Multiple of",hasValue:!0,params:[{key:"base",label:"Base",componentType:"inputNumber",required:!0}]},{key:"integer",label:"Integer",hasValue:!1,params:[]},{key:"precision",label:"Precision",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"unsafe",label:"Unsafe integer",hasValue:!1,params:[]},{key:"timestamp",label:"Timestamp",hasValue:!0,params:[{key:"type",label:"Type",componentType:"singleSelect",options:[{label:"JavaScript",value:"javascript"},{label:"Unix",value:"unix"}],defaultValue:"javascript"}]}]),rt.registerGroup("string",["required",{key:"max",label:"Max length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"min",label:"Min length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},"pattern","email","uuid","length","uri"]),rt.registerGroup("number",["required",...i7("number"),"multiple","integer","precision","unsafe"]),rt.registerGroup("date",["required",...i7("date"),"timestamp"]),rt.registerGroup("object",["required"]);class ri{addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.reduce((e,t)=>{if("function"!=typeof t)return e;let l=new t(this);return(null==l?void 0:l.name)&&(iY(l.filterable),e[l.name]=l,Array.isArray(this.actionList[l.name])&&(this.actionList[l.name].forEach(e=>{var t,o;if("addComponentOption"===e.type){null==(o=l.addComponentOption)||o.call(l,e.data);return}if("registerConfigure"===e.type){l.configure=this.mergeFieldInterfaceConfigure(l.configure,e.data);return}null==(t=l.addOperator)||t.call(l,e.data)}),delete this.actionList[l.name])),e},{});Object.assign(this.collectionFieldInterfaceInstances,t)}addFieldInterfaceComponentOption(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addComponentOption)||l.call(o,t):this.enqueueAction(e,{type:"addComponentOption",data:t})}addFieldInterfaceOperator(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addOperator)||l.call(o,t):this.enqueueAction(e,{type:"addOperator",data:t})}registerFieldFilterOperator(e){iL.register(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iL.registerGroup(e,t),this.normalizeFieldInterfaceFilterables()}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iL.addToGroup(e,t),this.normalizeFieldInterfaceFilterables()}registerFieldValidationConfigure(e){rl(e)}registerFieldValidationConfigureGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ro(e,t)}addFieldValidationConfiguresToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rn(e,t)}getFieldValidationConfigureGroup(e){return rt.getGroup(e)}registerFieldInterfaceConfigure(e){let t=this.getFieldInterface(e.name);t?t.configure=this.mergeFieldInterfaceConfigure(t.configure,e):this.enqueueAction(e.name,{type:"registerConfigure",data:e})}getFieldInterface(e){return this.collectionFieldInterfaceInstances[e]}getFieldInterfaces(e){return Object.values(this.collectionFieldInterfaceInstances).filter(t=>!e||!t.supportDataSourceType&&!t.notSupportDataSourceType||(t.supportDataSourceType?t.supportDataSourceType.includes(e):!t.notSupportDataSourceType||!t.notSupportDataSourceType.includes(e)))}getFieldInterfaceConfigureProperties(e,t){var l;let o=this.getFieldInterfaceConfigure(e,t);return(null==o||null==(l=o.getConfigureFormProperties)?void 0:l.call(o,t))||(null==o?void 0:o.properties)||{}}getFieldInterfaceConfigure(e,t){var l,o,n;let i=this.getFieldInterface(e);if(!i)return;let r=(null==(l=i.getConfigureFormProperties)?void 0:l.call(i,t))||i.properties||{},a={name:i.name,title:i.title,group:i.group,order:i.order,default:i.default,titleUsable:i.titleUsable,isAssociation:i.isAssociation,supportDataSourceType:i.supportDataSourceType,notSupportDataSourceType:i.notSupportDataSourceType,properties:r,items:iJ(r,{components:null==(o=i.configure)?void 0:o.components}),getConfigureFormProperties:null==(n=i.getConfigureFormProperties)?void 0:n.bind(i)};return this.mergeFieldInterfaceConfigure(a,i.configure)}addFieldInterfaceGroups(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this.collectionFieldGroups,e)}getFieldInterfaceGroups(){return this.collectionFieldGroups}getFieldInterfaceGroup(e){return this.collectionFieldGroups[e]}enqueueAction(e,t){this.actionList[e]||(this.actionList[e]=[]),this.actionList[e].push(t)}normalizeFieldInterfaceFilterables(){Object.values(this.collectionFieldInterfaceInstances).forEach(e=>{iY(e.filterable)})}mergeFieldInterfaceConfigure(e,t){return e?t?{...e,...t,default:t.default||e.default,properties:{...e.properties||{},...t.properties||{}},items:this.mergeFieldConfigureItems(e.items,t.items),components:{...e.components||{},...t.components||{}}}:e:t}mergeFieldConfigureItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Map;return e.forEach(e=>l.set(e.name,e)),t.forEach(e=>l.set(e.name,e)),Array.from(l.values())}constructor(e){this.dataSourceManager=e,this.collectionFieldInterfaceInstances={},this.collectionFieldGroups={},this.actionList={}}}function rr(e){return`${e}/client-v2`}function ra(e){return("default"in e?e.default:void 0)||e}function rs(e,t){window.__nocobase_app_dev_plugins__=window.__nocobase_app_dev_plugins__||{},window.__nocobase_app_dev_plugins__[e]=t}function rd(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=rr(t);window.define(o,()=>l),rs(o,l)})}function ru(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=rr(t);window.define(o,()=>l),rs(o,l)})}function rc(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[rr(t.packageName)]=t.url,e),{})})}function rp(e,t){return function(){for(var l=arguments.length,o=Array(l),n=0;n<l;n++)o[n]=arguments[n];o.forEach((t,l)=>{t&&rs(rr(e[l].packageName),t)}),t(o.map((t,l)=>[e[l].name,(null==t?void 0:t.default)||t]).filter(e=>e[1]));let i=o.map((e,t)=>e?null:t).filter(e=>null!==e).map(t=>e[t].packageName);i.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",i.join(", \r\n"))}}function rm(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];rc(e,t);let l=t.map(e=>rr(e.packageName));return new Promise((o,n)=>{e.requirejs(l,rp(t,o),n)})}async function rh(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];for(let l of rf(e)){let e=await import(l.url),o=ra(e);o&&(t.push([l.name,o]),ru({[l.packageName]:e}))}return t}function rf(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Map(e.map(e=>[e.packageName,e])),l=[],o=new Set,n=new Set,i=e=>{if(!n.has(e.packageName)&&!o.has(e.packageName)){for(let l of(o.add(e.packageName),e.appDevDependencies||[])){let e=t.get(l);e&&i(e)}o.delete(e.packageName),n.add(e.packageName),l.push(e)}};return e.forEach(i),l}async function rg(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=[],o=[],n=async()=>{if(0===o.length)return;let t=await rm(e,o);l.push(...t),o=[]};for(let e of rf(t)){if("esm"===e.devMode){await n();let t=await rh([e]);l.push(...t);continue}o.push(e)}return await n(),l}async function rv(e){let{requirejs:t,pluginData:l,devDynamicImport:o}=e;if(0===l.length)return[];let n=[],i={},r={};if(o){for await(let e of l){let t=await o(e.packageName);if(t){let l=ra(t);n.push([e.name,l]),i[e.packageName]=l,r[e.packageName]=t}}rd(r)}let a=l.filter(e=>!i[e.packageName]),s=a.filter(e=>"esm"===e.devMode),d=a.filter(e=>"esm"!==e.devMode);if(0===s.length){if(0===d.length)return n;let e=await rm(t,d);return n.push(...e),n}let u=await rg(t,a);return n.push(...u),n}class ry{async init(e){await this.initStaticPlugins(e),this.loadRemotePlugins&&await this.initRemotePlugins()}getRemotePluginsRequestUrl(){return"pm:listEnabledV2"}async initStaticPlugins(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for await(let t of e){let e=Array.isArray(t)?t[0]:t,l=Array.isArray(t)?t[1]:void 0;await this.add(e,l)}}async initRemotePlugins(){var e;let t=await this.app.apiClient.request({url:this.getRemotePluginsRequestUrl()}),l=(null==t||null==(e=t.data)?void 0:e.data)||[];for await(let[e,t]of(await rv({requirejs:this.app.requirejs,pluginData:l,devDynamicImport:this.app.devDynamicImport}))){let o=l.find(t=>t.name===e);await this.add(t,o)}}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=this.getInstance(e,t);this.pluginInstances.set(e,l),t.name&&(this.pluginsAliases[t.name]=l),t.packageName&&(this.pluginsAliases[t.packageName]=l),await l.afterAdd()}get(e){return"string"==typeof e?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new e(t,this.app)}async load(){for(let e of(await this.initPlugins,this.pluginInstances.values()))await e.beforeLoad();for(let e of this.pluginInstances.values())await e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))}constructor(e,t,l){this._plugins=e,this.loadRemotePlugins=t,this.app=l,this.pluginInstances=new Map,this.pluginsAliases={},this.app=l,this.initPlugins=this.init(e||[]),this.loadRemotePlugins=t}}var r_=__webpack_require__(3939);let rb=e=>{let{children:t}=e,{token:l}=b.theme.useToken(),o=l.colorFillTertiary,n=new it.TinyColor(l.colorFill).onBackground(l.colorFillSecondary).toHexShortString(),r=new it.TinyColor(l.colorFill).onBackground(l.colorFill).toHexShortString(),a=new it.TinyColor(l.colorFill).onBackground(l.colorFill).onBackground(l.colorFill).toHexShortString();return(0,i.useEffect)(()=>{document.body.style.setProperty("--nb-spacing",`${l.marginLG}px`),document.body.style.setProperty("--nb-designer-offset",`${l.marginXS}px`),document.body.style.setProperty("--nb-header-height",`${l.sizeXXL-2}px`),document.body.style.setProperty("--nb-box-bg",l.colorBgLayout),document.body.style.setProperty("--colorBgLayout",l.colorBgLayout),document.body.style.setProperty("--colorBgContainer",l.colorBgContainer),document.body.style.setProperty("--controlHeightLG",`${l.controlHeightLG}px`),document.body.style.setProperty("--paddingContentVerticalSM",`${l.paddingContentVerticalSM}px`),document.body.style.setProperty("--marginSM",`${l.marginSM}px`),document.body.style.setProperty("--colorInfoBg",l.colorInfoBg),document.body.style.setProperty("--colorInfoBorder",l.colorInfoBorder),document.body.style.setProperty("--colorWarningBg",l.colorWarningBg),document.body.style.setProperty("--colorWarningBorder",l.colorWarningBorder),document.body.style.setProperty("--colorText",l.colorText),document.body.style.setProperty("--colorTextDescription",l.colorTextDescription),document.body.style.setProperty("--colorBgTextHover",l.colorBgTextHover),document.body.style.setProperty("--colorSplit",l.colorSplit),document.body.style.setProperty("--borderRadiusOuter",`${l.borderRadiusOuter}px`),document.body.style.setProperty("--colorTextHeaderMenu",l.colorTextHeaderMenu),document.body.style.setProperty("--colorPrimaryText",l.colorPrimaryText),document.body.style.setProperty("--colorPrimaryTextActive",l.colorPrimaryTextActive),document.body.style.setProperty("--colorPrimaryTextHover",l.colorPrimaryTextHover),document.body.style.setProperty("--colorBgSider",l.colorBgSider),document.body.style.setProperty("--colorBgSiderMenuHover",l.colorBgSiderMenuHover),document.body.style.setProperty("--colorBgSiderMenuActive",l.colorBgSiderMenuActive),document.body.style.setProperty("--colorTextSiderMenu",l.colorTextSiderMenu),document.body.style.setProperty("--colorTextSiderMenuHover",l.colorTextSiderMenuHover),document.body.style.setProperty("--colorTextSiderMenuActive",l.colorTextSiderMenuActive),document.body.style.setProperty("--colorBgScrollTrack",o),document.body.style.setProperty("--colorBgScrollBar",n),document.body.style.setProperty("--colorBgScrollBarHover",r),document.body.style.setProperty("--colorBgScrollBarActive",a),document.body.style.setProperty("--colorSettings",l.colorSettings||S.token.colorSettings),document.body.style.setProperty("--colorBgSettingsHover",l.colorBgSettingsHover),document.body.style.setProperty("--colorTemplateBgSettingsHover",l.colorTemplateBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",l.colorBorderSettingsHover),document.body.style.setProperty("--colorBgMenuItemSelected",l.colorBgHeaderMenuActive),document.body.style.setProperty("background-color",l.colorBgContainer)},[n,a,r,o,l.colorBgContainer,l.colorBgLayout,l.colorBgSettingsHover,l.colorTemplateBgSettingsHover,l.colorBorderSettingsHover,l.colorInfoBg,l.colorInfoBorder,l.colorPrimaryText,l.colorPrimaryTextActive,l.colorPrimaryTextHover,l.colorSettings,l.colorBgTextHover,l.colorSplit,l.colorText,l.colorTextDescription,l.colorWarningBg,l.colorWarningBorder,l.borderRadiusOuter,l.controlHeightLG,l.marginLG,l.marginSM,l.marginXS,l.paddingContentVerticalSM,l.sizeXXL,l.colorTextHeaderMenu,l.colorBgSider,l.colorBgSiderMenuHover,l.colorBgSiderMenuActive,l.colorTextSiderMenu,l.colorTextSiderMenuHover,l.colorTextSiderMenuActive,l.colorBgHeaderMenuActive]),t};rb.displayName="CSSVariableProvider";let rx=rb;class rM extends ig{createApiClient(e){let t=new p({withCredentials:!0,...e.apiClient,appName:e.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)});return t.app=this,t}configureRuntimeAdapters(){this.dataSourceManager=this.flowEngine.context.dataSourceManager,this.dataSourceManager.setRequester(this.apiClient.request.bind(this.apiClient)),this.dataSourceManager.collectionFieldInterfaceManager||this.dataSourceManager.setCollectionFieldInterfaceManager(new ri(this.dataSourceManager))}createI18n(e){if(e.i18n)return e.i18n;let t=(0,__rspack_external_i18next.createInstance)();return t.use(v.initReactI18next).init({lng:"en-US",defaultNS:"client",resources:{},keySeparator:!1,nsSeparator:!1}),t}createRouterManager(e){var t;let l=new l4(e.router,this);if((null==(t=e.router)?void 0:t.basename)===void 0){let e=this.getPublicPath(),t="/"===e?void 0:e.replace(/\/$/,"");t&&l.setBasename(t)}return l}createPluginManager(e){return new ry(e.plugins||[],!!e.loadRemotePlugins,this)}createPluginSettingsManager(e){return new r_.mz(this)}async load(){try{this.hasLoadError=!1,await this.loadWebSocket(),await this.pm.load(),await this.flowEngine.flowSettings.load()}catch(i){var e,t,l,o,n;this.hasLoadError=!0,(null==i||null==(o=i.response)||null==(l=o.data)||null==(t=l.errors)||null==(e=t[0])?void 0:e.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&await new Promise(e=>{setTimeout(()=>e(null),1e3)}),this.error={code:"LOAD_ERROR",...null==(n=this.apiClient.toErrMessages(i))?void 0:n[0]},console.error(i,this.error)}this.updateFavicon()}async loadWebSocket(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",e=>{var t,l,o,n;if(!e.data)return;let i=JSON.parse(e.data);if(null==i||null==(t=i.payload)?void 0:t.refresh)return void globalThis.window.location.reload();if("notification"===i.type){let e=this.context.notification;null==(o=e[(null==(n=i.payload)?void 0:n.type)||"info"])||o.call(e,{message:null==(l=i.payload)?void 0:l.message});return}if("maintaining"===i.type&&"APP_RUNNING"!==i.payload.code)this.setMaintaining(!0),this.error=i.payload;else{this.hasLoadError&&globalThis.window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;let e=i.type;if(!e)return;let t=`ws:message:${e}`;this.eventBus.dispatchEvent(new CustomEvent(t,{detail:i.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{let e=this.apiClient.auth.token;e&&this.setTokenInWebSocket({token:e,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()}addCustomProviders(){this.use(rx)}addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.dataSourceManager.addFieldInterfaces(e)}addFieldInterfaceGroups(e){return this.dataSourceManager.addFieldInterfaceGroups(e)}addFieldInterfaceComponentOption(e,t){return this.dataSourceManager.addFieldInterfaceComponentOption(e,t)}addFieldInterfaceOperator(e,t){return this.dataSourceManager.addFieldInterfaceOperator(e,t)}registerFieldFilterOperator(e){return this.dataSourceManager.registerFieldFilterOperator(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.registerFieldFilterOperatorGroup(e,t)}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.addFieldFilterOperatorsToGroup(e,t)}registerFieldValidationConfigure(e){var t,l;return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigure)?void 0:t.call(l,e)}registerFieldValidationConfigureGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigureGroup)?void 0:t.call(l,e,o)}addFieldValidationConfiguresToGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.addFieldValidationConfiguresToGroup)?void 0:t.call(l,e,o)}constructor(...e){super(...e),this.hasLoadError=!1}}let rw=(0,i.createContext)(null);rw.displayName="ApplicationContext";class rS extends rM{constructor(e={}){super({router:{type:"memory",initialEntries:["/"]},...e}),this.apiMock=new __rspack_external_axios_mock_adapter_69845b81.default(this.apiClient.axios),this.ws=new rk(e.ws||{})}}class rk extends n8{connect(){}close(){}send(){}on(e,t,l){this.eventBus.addEventListener(e,e=>t({data:JSON.stringify(e.detail)}),l)}emit(e,t){this.eventBus.dispatchEvent(new CustomEvent(e,{detail:t}))}off(e,t,l){this.eventBus.removeEventListener(e,t,l)}removeAllListeners(){}constructor(e){super(e),this.eventBus=new EventTarget}}function rF(e){return new rS(e)}class rC{get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}get ai(){return this.app.aiManager}async afterAdd(){}async beforeLoad(){}async load(){}t(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.app.i18n.t(e,{ns:null==(t=this.options)?void 0:t.packageName,...l})}constructor(e,t){this.options=e,this.app=t,this.options=e,this.app=t}}var rA=__webpack_require__(6553),rP=__webpack_require__(4244);function rT(e){return"steps"in e&&e.steps||{}}function rj(e){let t=rT(e);for(let e of["saveResource","submit","request","apply","save"]){var l;if(Object.prototype.hasOwnProperty.call(t,e)&&(null==(l=t[e])?void 0:l.result)!=null)return t[e].result}let o=Object.entries(t).filter(e=>{let[t,l]=e;return"afterSuccess"!==t&&(null==l?void 0:l.result)!=null}).map(e=>{let[,t]=e;return t.result});return o[o.length-1]}function rI(e){if(!rL(e))return;let t=rR(e);if(t())return(0,f.createRecordMetaFactory)(t,e.t("Response record"),()=>{let l=t(),o=rj(e);if(l&&o)try{let e=l.getFilterByTK(o);if(null==e)return;return{collection:l.name,dataSourceKey:l.dataSourceKey||"main",filterByTk:e}}catch(e){return}})}function rL(e){var t;if(Object.prototype.hasOwnProperty.call(rT(e),"saveResource"))return!0;let{model:l,flowKey:o}=e;return!!l&&"function"==typeof l.getFlow&&!!o&&Object.prototype.hasOwnProperty.call((null==(t=l.getFlow(o))?void 0:t.steps)||{},"saveResource")}function rR(e){return()=>{var t,l;return(null==(t=e.blockModel)?void 0:t.collection)||e.collection||(null==(l=e.model)?void 0:l.collection)||null}}function rD(e){let t=rI(e);if(!t){var l;return(null==(l=e.getPropertyMetaTree)?void 0:l.call(e))||[]}let o=new f.FlowContext;return o.addDelegate(e),o.defineProperty("responseRecord",{get:()=>rj(e),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(rR(e),()=>rj(e)),meta:t}),o.getPropertyMetaTree()}function rE(e){let t=(0,f.useFlowSettingsContext)(),l=(0,i.useMemo)(()=>()=>rD(t),[t]);return(0,m.jsx)(rP.n,{...e,metaTree:l})}let rY=(0,f.defineAction)({name:"afterSuccess",title:(0,f.tExpr)("After successful submission"),defineProperties(e){let t=rI(e);return{responseRecord:{get:()=>rj(e),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(rR(e),()=>rj(e)),...t?{meta:t}:{}}}},uiSchema:{successMessage:{type:"string",title:(0,f.tExpr)("Popup message"),"x-decorator":"FormItem","x-component":"Input.TextArea"},manualClose:{type:"boolean",title:(0,f.tExpr)("Message popup close method"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,f.tExpr)("Automatic close"),value:!1},{label:(0,f.tExpr)("Manually close"),value:!0}]},actionAfterSuccess:{type:"string",title:(0,f.tExpr)("Action after successful submission"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,f.tExpr)("Stay on the current popup or page"),value:"stay"},{label:(0,f.tExpr)("Return to the previous popup or page"),value:"previous"},{label:(0,f.tExpr)("Close popup and redirect to"),value:"redirect"}]},redirectTo:{type:"string",title:(0,f.tExpr)("Link"),"x-decorator":"FormItem","x-component":rE,"x-reactions":{dependencies:["actionAfterSuccess"],fulfill:{state:{visible:"{{$deps[0]==='redirect'}}"}}}}},defaultParams:{successMessage:(0,f.tExpr)("Saved successfully"),manualClose:!1,actionAfterSuccess:"previous"},async handler(e,t){let{successMessage:l,manualClose:o=!1,actionAfterSuccess:n="previous",redirectTo:i}=t;"previous"===n&&e.view&&e.view.close();let r=t=>{if(e.engine){let t=e.engine;for(;t.nextEngine;)t=t.nextEngine;let l=[],o=t;for(;o;)l.push(o),o=o.previousEngine;for(let e of l)e.destroyView()}e.router.navigate(t)},a=e=>{if((0,I.isURL)(e)){window.location.href=e;return}r(e)};if(l){let t=e.t(l);if(o)return void await e.modal.success({title:t,onOk:async()=>{"redirect"===n&&i&&a(i)}});e.message.success(t)}"redirect"===n&&i&&a(i)}}),rN=(0,f.defineAction)({name:"confirm",title:(0,f.tExpr)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,f.tExpr)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,f.tExpr)("Title"),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:2}},content:{type:"string",title:(0,f.tExpr)("Content"),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:3}}},defaultParams:{enable:!1,title:(0,f.tExpr)("Please Confirm"),content:(0,f.tExpr)("Are you sure you want to perform the action?")},async handler(e,t){t.enable&&(await e.modal.confirm({title:e.t(t.title,{ns:"lm-flow-engine"}),content:e.t(t.content,{ns:"lm-flow-engine"}),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||e.exit())}});var rO=__webpack_require__(9078),rB=__webpack_require__(6859);let rV={__nocobaseDataScopeNull__:!0},rH="{{$nRole}}",rq=/^\s*\{\{\s*ctx\.role\s*\}\}\s*$/;function r$(e){return"string"==typeof e&&rq.test(e)}function rz(e){return e&&"object"==typeof e&&!Array.isArray(e)&&!0===e.__nocobaseDataScopeNull__&&1===Object.keys(e).length}function rU(e){return rz(e)?null:Array.isArray(e)?e.map(e=>rU(e)):e&&"object"==typeof e?Object.keys(e).reduce((t,l)=>(t[l]=rU(e[l]),t),{}):e}function rK(e){var t;return!!(0,f.isVariableExpression)(e)&&(null==(t=(0,f.extractPropertyPath)(e))?void 0:t[0])==="urlSearchParams"}function rG(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){if("path"in e&&"operator"in e){if(r$(e.value)){t.value=rH;return}(0,f.isVariableExpression)(e.value)&&!rK(e.value)&&(void 0===t.value||null===t.value||""===t.value)&&(t.value=rV);return}Array.isArray(e.items)&&Array.isArray(t.items)&&e.items.forEach((e,l)=>{rG(e,t.items[l])})}}function rW(e,t){let l=g.default.cloneDeep(t);return rG(e,l),rU((0,f.pruneFilter)((0,I.transformFilter)(l)))}var rJ=__webpack_require__(3728),rX=__webpack_require__(9613);function rQ(e,t){return e.length===t.length&&e.every((e,l)=>e===t[l])}function rZ(e,t){return!(e.length>t.length)&&e.every((e,l)=>e===t[l])}function r0(e){let t=new Map;for(let l of e)(null==l?void 0:l.length)&&t.set((0,rJ.Qc)(l),l);return Array.from(t.values())}function r1(e){let t=r0(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rZ(e,t)))}function r2(e){let t=Array.isArray(e)?e:[],l=[];for(let e of t){if("string"!=typeof e)continue;let[t,o]=e.split(":"),n=Number(o);!t||Number.isNaN(n)||l.push({name:t,index:n})}return l}function r5(e){var t;let l=null==e?void 0:e.model;return r2((null==l||null==(t=l.context)?void 0:t.fieldIndex)??(null==e?void 0:e.fieldIndex))}function r8(e,t){let l=e.length-1-t;if(l<0)return null;let o=[];for(let t=0;t<=l;t++)o.push(e[t].name,e[t].index);return o}function r4(e,t){let l=r8(e,t);return(null==l?void 0:l.length)?l.slice(0,-1):null}function r3(e){return(0,rJ.EA)(e).filter(e=>"object"!=typeof e)}function r6(e){return(0,rJ.c1)(e)}function r9(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=e,o=Array.isArray(null==l?void 0:l.changedPaths)?l.changedPaths:[],n=[];for(let e of o){if(Array.isArray(e)){if(1===e.length&&"string"==typeof e[0]){let t=(0,rJ.c1)(e[0]);t.length&&n.push(t);continue}let t=e.filter(e=>"string"==typeof e||"number"==typeof e);t.length&&n.push(t);continue}"string"==typeof e&&e&&n.push((0,rJ.c1)(e))}if(n.length)return n;let i=null==l?void 0:l.changedValues;if(i&&"object"==typeof i&&(t.includeArrayChangedValues||!Array.isArray(i)))for(let e of Object.keys(i)){let t=(0,rJ.c1)(e);t.length&&n.push(t)}return n}function r7(e){var t,l;let o=e;return!!o&&"object"==typeof o&&!!o.emitter&&"function"==typeof o.emitter.on&&"function"==typeof o.emitter.off&&(!!o.formValueRuntime||!!(null==(t=o.context)?void 0:t.form)||"function"==typeof(null==(l=o.context)?void 0:l.setFormValues))}function ae(e){var t;let l=[],o=e=>{e&&!l.includes(e)&&l.push(e)},n=e.model;o(null==n||null==(t=n.context)?void 0:t.blockModel),o(e.model);let i=null==n?void 0:n.parent;for(;i;)o(i),i=null==i?void 0:i.parent;return l.find(r7)||null}var at=__webpack_require__(8709);function al(e){if(Array.isArray(e)){let t=e.filter(e=>"string"==typeof e&&!!e);return t.length?t:"id"}return"string"==typeof e&&e?e:"id"}function ao(e){var t,l;return al((null==e||null==(t=e.targetCollection)?void 0:t.filterTargetKey)??(null==e||null==(l=e.targetCollection)?void 0:l.filterByTk)??(null==e?void 0:e.targetKey))}function an(e){var t,l,o,n,i,r,a,s,d,u;let c=e.model;return(null==c||null==(o=c.context)||null==(l=o.blockModel)||null==(t=l.context)?void 0:t.collection)??(null==c||null==(r=c.context)||null==(i=r.formBlock)||null==(n=i.context)?void 0:n.collection)??(null==c||null==(a=c.context)?void 0:a.rootCollection)??(null==e?void 0:e.rootCollection)??(null==e?void 0:e.collection)??(null==c||null==(d=c.context)||null==(s=d.collectionField)?void 0:s.collection)??(null==c||null==(u=c.context)?void 0:u.collection)}function ai(e){var t,l,o,n,i,r,a,s,d,u,c,p;let m=e.model;return al((null==m||null==(l=m.context)||null==(t=l.collection)?void 0:t.filterTargetKey)??(null==m||null==(n=m.context)||null==(o=n.collection)?void 0:o.filterByTk)??(null==m||null==(a=m.context)||null==(r=a.collectionField)||null==(i=r.targetCollection)?void 0:i.filterTargetKey)??(null==m||null==(u=m.context)||null==(d=u.collectionField)||null==(s=d.targetCollection)?void 0:s.filterByTk)??(null==m||null==(p=m.context)||null==(c=p.collectionField)?void 0:c.targetKey))}function ar(e,t){let l=an(e),o=ai(e);return t.map(e=>{let t=o;if(null==l?void 0:l.getField){var n;let o=l.getField(e.name);((null==o||null==(n=o.isAssociationField)?void 0:n.call(o))||(null==o?void 0:o.targetCollection)||(null==o?void 0:o.targetKey))&&(t=ao(o),l=null==o?void 0:o.targetCollection)}return{...e,filterTargetKey:t}})}function aa(e,t,l){let o=e.length-1-t;if(o<0)return;let n=e[o],i=null==n?void 0:n.filterTargetKey,r=Array.isArray(i)?i.map(e=>[e]):"string"==typeof i&&i?[[i]]:[];return{entries:e.slice(0,o+1).map(e=>({...e})),tailPath:l,identityTailPaths:r}}function as(e,t){return null!=e&&(Array.isArray(e)&&"number"==typeof t?t>=0&&t<e.length:"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t))}function ad(e,t){let l=e;for(let e of t){if(!as(l,e))return{found:!1};l=l[e]}return{found:!0,value:l}}function au(e){let t=e;return(null==t?void 0:t.allValuesSnapshot)??(null==t?void 0:t.allValues)}function ac(e,t){return e&&"object"==typeof e?(0,at.r5)(e,t):null}function ap(e){let t=[];for(let l of e.entries)t.push(l.name,l.index);return t}function am(e,t,l,o){if(null==l?void 0:l.rowDetached)return!1;let n=ap(t);if(!n.length||!t.identityTailPaths.length)return!1;let i=t.identityTailPaths.map(e=>[...n,...e]);return(o??r9(e)).some(e=>i.some(t=>rZ(t,e)))}function ah(e,t,l){return Array.isArray(e)&&t?e.findIndex(e=>ac(e,l)===t):-1}function af(e,t,l,o){let n=[],i=-1,r=[];for(let a=0;a<t.entries.length;a++){let s=t.entries[a],d=[...n,s.name],u=ad(e,d);if(!u.found||!Array.isArray(u.value))return{found:!1};let c=null==l?void 0:l[a],p=ah(u.value,c,s.filterTargetKey),m=p>=0?p:s.index;if(m<0||m>=u.value.length)return c?{found:!1,rowMissing:!0}:{found:!1};let h=u.value[m];if(c&&p<0&&!o)return{found:!1,rowMissing:!0};r.push(ac(h,s.filterTargetKey)),i=m,n=[...d,m]}return{found:!0,path:[...n,...t.tailPath],rowIndex:i,rowIdentities:r}}function ag(e,t,l){var o,n;let i=ad(au(t),l);if(i.found)return i;let r=null==e||null==(o=e.context)?void 0:o.form;return"function"==typeof(null==r?void 0:r.getFieldValue)?{found:!0,value:r.getFieldValue(l)}:ad(null==e||null==(n=e.context)?void 0:n.formValues,l)}function av(e,t,l,o,n){var i,r;let a=l.rowScope;if(!a)return ag(e,t,l.path);if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let s=am(t,a,o,n);for(let l of[au(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=af(l,a,null==o?void 0:o.rowIdentities,s);if(e.rowMissing)return{found:!1,rowMissing:!0};if(!e.found||!e.path)continue;let t=ad(l,e.path);if(t.found)return{found:!0,value:t.value,rowIdentities:e.rowIdentities}}let d=null==e||null==(r=e.context)?void 0:r.form;return"function"==typeof(null==d?void 0:d.getFieldValue)?{found:!0,value:d.getFieldValue(l.path),rowIdentities:null==o?void 0:o.rowIdentities}:{found:!1}}function ay(e){return Array.isArray(e)?e.length:e}function a_(e,t,l){var o,n;if(!Array.isArray(e))return{found:!0,value:e};let i=null==l||null==(o=l.rowIdentities)?void 0:o[l.rowIdentities.length-1],r=null==(n=t.rowScope)?void 0:n.entries[t.rowScope.entries.length-1],a=ah(e,i,null==r?void 0:r.filterTargetKey);return a>=0?{found:!0,value:a,rowIdentities:null==l?void 0:l.rowIdentities}:i?{found:!1,rowMissing:!0}:!r||r.index<0||r.index>=e.length?{found:!1}:{found:!0,value:r.index,rowIdentities:[ac(e[r.index],r.filterTargetKey)]}}function ab(e,t,l,o,n){var i,r;if("length"===l.kind){if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let r=null==o?void 0:o.rowIdentities,a=l.rowScope;if(a){let l=am(t,a,o,n);for(let n of[au(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=af(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found){r=e.rowIdentities;break}}}let s=ag(e,t,l.path);return s.found?{found:!0,value:ay(s.value),rowIdentities:r}:s}if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let a=l.rowScope;if(a){let l=am(t,a,o,n);for(let n of[au(t),null==e||null==(r=e.context)?void 0:r.formValues]){let e=af(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found&&"number"==typeof e.rowIndex)return{found:!0,value:e.rowIndex,rowIdentities:e.rowIdentities}}}let s=ag(e,t,l.path);return s.found?a_(s.value,l,o):s}function ax(e,t,l){if(e.wildcard)return null;let o={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let n of e.valuePaths){let e=(0,rJ.Qc)(n.path),i=av(t,l,n);if(i.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!i.found){o.complete=!1;continue}o.values.set(e,{value:(0,g.cloneDeep)(i.value),rowIdentities:i.rowIdentities,rowDetached:!1})}for(let n of e.structuralPaths){let e=ab(t,l,n);if(e.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!e.found){o.complete=!1;continue}o.structures.set(`${n.kind}:${(0,rJ.Qc)(n.path)}`,{value:(0,g.cloneDeep)(e.value),rowIdentities:e.rowIdentities,rowDetached:!1})}return o}function aM(e,t,l,o,n){if(e.wildcard)return null;let i={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let r of e.valuePaths){let e=(0,rJ.Qc)(r.path),a=o.values.get(e),s=av(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.values.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.values.set(e,{value:(0,g.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}for(let r of e.structuralPaths){let e=`${r.kind}:${(0,rJ.Qc)(r.path)}`,a=o.structures.get(e),s=ab(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.structures.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.structures.set(e,{value:(0,g.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}return i}function aw(e,t){if(e.size!==t.size)return!1;for(let[o,n]of e.entries()){var l;if(!t.has(o)||!(0,g.isEqual)(n.value,null==(l=t.get(o))?void 0:l.value))return!1}return!0}function aS(e,t,l,o){if(e.wildcard||!(null==o?void 0:o.complete))return{status:"unknown",snapshot:ax(e,t,l)};let n=aM(e,t,l,o,r9(l));return(null==n?void 0:n.rowMissing)?{status:"unchanged",snapshot:{...n,rowMissing:!1}}:(null==n?void 0:n.complete)?{status:aw(o.values,n.values)&&aw(o.structures,n.structures)?"unchanged":"changed",snapshot:n}:{status:"unknown",snapshot:n}}let ak="formValuesChange",aF="__formValueDrivenDataScopeClearBindings";function aC(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set((0,rJ.Qc)(o.path),o)}return Array.from(t.values())}function aA(e){let t=aC(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rZ(e.path,t.path)))}function aP(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.kind}:${(0,rJ.Qc)(o.path)}`,o)}return Array.from(t.values())}function aT(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.includeChildren?"children":"exact"}:${(0,rJ.Qc)(o.path)}`,o)}return Array.from(t.values())}function aj(){return{wildcard:!1,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function aI(){return{wildcard:!0,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function aL(e){let t=e[0];if("value"===t){let t=e.slice(1);return t.length?{wildcard:!1,valuePaths:[{path:t}],structuralPaths:[],triggerPaths:[]}:aI()}return"__is_new__"===t||"__is_stored__"===t?{wildcard:!1,valuePaths:[{path:[t]}],structuralPaths:[],triggerPaths:[]}:aj()}function aR(e,t){var l,o;let n=ar(e,r2((null==(o=e.model)||null==(l=o.context)?void 0:l.fieldIndex)??(null==e?void 0:e.fieldIndex))),i=0,r=[...t];for(;"parentItem"===r[0];)i+=1,r=r.slice(1);let a=r[0];if(!a)return aI();if(!n.length)return 0===i?aL(r):aj();if(i===n.length)return aL(r);if(i>n.length)return aI();if("value"===a){let e=r8(n,i);if(!e)return aI();let t=r4(n,i),l=r.slice(1);return{wildcard:!1,valuePaths:[{path:[...e,...l],rowScope:aa(n,i,l)}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0},...t?[{path:t,includeChildren:!1}]:[]]}}if("index"===a||"length"===a){let e=r4(n,i);return e?{wildcard:!1,valuePaths:[],structuralPaths:[{path:e,kind:a,rowScope:aa(n,i,[])}],triggerPaths:[{path:e,includeChildren:!1}]}:aI()}if("__is_new__"===a||"__is_stored__"===a){let e=r8(n,i);return e?{wildcard:!1,valuePaths:[{path:[...e,a],rowScope:aa(n,i,[a])}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0}]}:aI()}return aI()}function aD(e,t){let l={deps:new Set,wildcard:!1};(0,rX.G)(t,l);let o=[],n=[],i=[],r=l.wildcard;for(let t of l.deps){if("fv:*"===t){r=!0;continue}if(!t.startsWith("fv:")){if("ctx:item"===t||t.startsWith("ctx:item:")){let l="ctx:item"===t?"":t.slice(9),a=aR(e,l?r6(l):[]);r||(r=a.wildcard),o.push(...a.valuePaths),n.push(...a.structuralPaths),i.push(...a.triggerPaths)}continue}let l=t.slice(3);if(!l){r=!0;continue}o.push({path:r6(l)})}return{wildcard:r,valuePaths:aA(o),structuralPaths:aP(n),triggerPaths:aT(i)}}function aE(e){return e.wildcard||e.valuePaths.length>0||e.structuralPaths.length>0||e.triggerPaths.length>0}function aY(e){var t;let l=null==e||null==(t=e.props)?void 0:t.value;return null!=l&&(!Array.isArray(l)||l.length>0)}function aN(e,t){if(!aE(e))return!1;if(e.wildcard)return!0;let l=r9(t);if(!l.length)return!0;for(let t of l){for(let l of e.valuePaths)if(rZ(l.path,t)||rZ(t,l.path))return!0;for(let l of e.structuralPaths)if(rQ(l.path,t)||rZ(t,l.path))return!0;for(let l of e.triggerPaths)if(l.includeChildren&&(rZ(l.path,t)||rZ(t,l.path))||!l.includeChildren&&rQ(l.path,t))return!0}return!1}function aO(e,t){let l=e=>e.map(e=>(0,rJ.Qc)(e.path)).sort(),o=e=>e.map(e=>`${e.kind}:${(0,rJ.Qc)(e.path)}`).sort();return JSON.stringify({formBlockUid:null==t?void 0:t.uid,wildcard:e.wildcard,valuePaths:l(e.valuePaths),structuralPaths:o(e.structuralPaths),triggerPaths:e.triggerPaths.map(e=>`${e.includeChildren?"children":"exact"}:${(0,rJ.Qc)(e.path)}`).sort()})}function aB(e){var t,l;return(t=e)[l=aF]||(t[l]=new Map)}function aV(e){return ae(e)}function aH(e){var t,l;if(!aY(e))return;let o=Array.isArray(null==e||null==(t=e.props)?void 0:t.value)?[]:null;"function"==typeof e.change?e.change(o):"function"==typeof(null==e||null==(l=e.props)?void 0:l.onChange)&&e.props.onChange(o)}function aq(e){var t;return!!e&&"object"==typeof e&&"function"==typeof(null==e||null==(t=e.props)?void 0:t.onChange)}function a$(e,t){let l=aB(e).get(t);l&&l.dispose()}function az(e,t){var l,o,n,i,r,a;let s=e.model,d=null==e?void 0:e.flowKey;if(!aq(s)||!d)return;let u="dataScope",c=`${d}:${u}`,p=aD(e,t);if(!aE(p))return void a$(s,c);let m=aV(e);if(!m)return void a$(s,c);let h=aO(p,m),f=aB(s),g=f.get(c);if((null==g?void 0:g.signature)===h)return;g&&g.dispose();let v=(null==s||null==(l=s.flowEngine)?void 0:l.emitter)||(null==e||null==(o=e.engine)?void 0:o.emitter)||(null==s||null==(i=s.context)||null==(n=i.engine)?void 0:n.emitter),y={signature:h,snapshot:ax(p,m),dispose:()=>{}},_=()=>{var e,t,l,o;null==(t=m.emitter)||null==(e=t.off)||e.call(t,ak,b),null==v||null==(l=v.off)||l.call(v,"model:unmounted",x),null==v||null==(o=v.off)||o.call(v,"model:destroyed",M),f.get(c)===y&&f.delete(c)},b=e=>{var t;if(s.disposed||m.disposed)return void _();if(!aN(p,e))return;let l=aS(p,m,e,y.snapshot);(null==(t=l.snapshot)?void 0:t.complete)&&(y.snapshot=l.snapshot),"unchanged"===l.status||aY(s)&&aH(s)},x=e=>{let{model:t}=e;(t===m||t===s&&s.disposed)&&_()},M=e=>{let{model:t}=e;(t===s||t===m)&&_()};y.dispose=_,f.set(c,y),m.emitter.on(ak,b),null==v||null==(r=v.on)||r.call(v,"model:unmounted",x),null==v||null==(a=v.on)||a.call(v,"model:destroyed",M)}let aU=(0,f.defineAction)({name:"dataScope",title:(0,f.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function(e){let t=(0,f.useFlowSettingsContext)();return(0,m.jsx)(rO.I8,{value:e.value,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t.model,rightAsVariable:!0,maxAssociationFieldDepth:t.model instanceof rB.o?void 0:2})})}}},defaultParams:e=>({filter:{logic:"$and",items:[]}}),useRawParams:!0,async handler(e,t){var l;let o=null==(l=e.model)?void 0:l.resource;if(!o)return;let n=await e.resolveJsonTemplate(t.filter),i=rW(t.filter,n);az(e,t.filter),(0,I.isEmptyFilter)(i)?o.removeFilterGroup(e.model.uid):o.addFilterGroup(e.model.uid,i)}});var aK=__webpack_require__(5042),aG=__webpack_require__(8481);class aW extends f.FlowModel{static getAllParentClasses(){let e=[],t=this;for(;t&&t!==Object;)(null==(t=Object.getPrototypeOf(t))?void 0:t.currentModels)&&e.push(t);return e}static get currentModels(){return Object.prototype.hasOwnProperty.call(this,"_models")&&this._models||(this._models=new Map),this._models}static get models(){let e=new Map;for(let t of this.getAllParentClasses())for(let[l,o]of t.currentModels)e.set(l,o);for(let[t,l]of this.currentModels)e.set(t,l);return e}static registerActionModels(e){for(let[t,l]of Object.entries(e))Object.defineProperty(l,"name",{value:t}),this.currentModels.set(t,l)}static isActionModelVisible(e,t){var l;let o=t.collection||(null==(l=t.blockModel)?void 0:l.collection),n=(0,aG.GX)(e);return(0,aG.F3)(o,n)}static async defineChildren(e){let t=this.baseClass?await (0,f.buildSubModelItems)(this.baseClass)(e):[],l=[],o=t.filter(t=>{let l=e.engine.getModelClass(t.useModel);return!!this.isActionModelVisible(l,e)&&(!this.scene||l._isScene(this.scene))});for(let[t,n]of this.models){if(!this.isActionModelVisible(n,e)||o.find(e=>e.useModel===n.name))continue;let t=await (0,f.buildSubModelItem)(n,e);t&&l.push(t)}return g.default.sortBy([...o,...l],"sort")}}class aJ extends aW{}aJ.baseClass=aK.S0,aJ.scene=aK.s5.collection;class aX extends aW{}aX.baseClass=aK.S0,aX.scene=aK.s5.record;var aQ=__webpack_require__(7827);class aZ extends f.FlowModel{static defineChildren(e){let t=this.itemModelName,l=this.maxAssociationFieldDepth??2,o=function(n){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return r>=l?[]:n.getToOneAssociationFields().map(n=>{let a=i?`${i}.${n.name}`:n.name,s=r+1;return n.targetCollection?{key:`${a}-assocationField`,label:n.title,children:()=>[{key:`${a}-children-collectionField`,label:e.t("Display fields"),type:"group",children:n.targetCollection.getFields().map(o=>{var n;if(s>=l&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return;let i=`${a}.${o.name}`,r=f.DisplayItemModel.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!r)return;let d=r.modelName;return{key:`c-${a}.${o.name}`,label:o.title,useModel:t,toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===i},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:e.collection.dataSourceKey,collectionName:e.prefixFieldPath?e.blockModel.context.collection.name:e.collection.name,fieldPath:i,associationPathName:a}}},subModels:{field:{use:d}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(o(n.targetCollection,a,s)||[]).filter(Boolean)}].filter(e=>{var t;return e.key!==`${a}-children-associationField`||(null==(t=e.children)?void 0:t.length)>0})}:void console.error(`AssociationFieldGroupModel: target collection ${n.target} not found for field ${n.name}`)}).filter(Boolean)};return o(e.collection,e.prefixFieldPath)}}function a0(e){return["multipleSelect","checkboxGroup"].includes(null==e?void 0:e.interface)||["array","json","jsonb"].includes(null==e?void 0:e.type)}function a1(e){return e.context}function a2(e,t){var l;let o=e[t]||(null==(l=a1(e))?void 0:l[t]);return o&&"object"==typeof o?o:void 0}function a5(e){var t,l,o;let n=null==(t=a1(e))?void 0:t.dataSourceManager;return n||(null==(o=e.flowEngine)||null==(l=o.context)?void 0:l.dataSourceManager)}function a8(e){return{operatorGroup:e.operatorGroup,operators:Array.isArray(e.operators)?[...e.operators]:e.operators,operatorOverrides:Array.isArray(e.operatorOverrides)?[...e.operatorOverrides]:e.operatorOverrides}}function a4(e){if(!1===e)return[];if(!e||"object"!=typeof e)return;let t=iY(a8(e));return Array.isArray(null==t?void 0:t.operators)&&t.operators.length>0?t.operators:Array.isArray(null==t?void 0:t.operatorOverrides)&&t.operatorOverrides.length>0?t.operatorOverrides:void 0}function a3(e,t){var l;let o="string"==typeof(null==t?void 0:t.interface)?t.interface:void 0;if(!o)return;let n=a5(e),i=null==n?void 0:n.collectionFieldInterfaceManager,r=null==i||null==(l=i.getFieldInterface)?void 0:l.call(i,o);return null==r?void 0:r.filterable}function a6(e){let t=[null==e?void 0:e.interface,null==e?void 0:e.type].filter(e=>"string"==typeof e),l=et.II;for(let e of t){let t=l[e];if(null==t?void 0:t.length)return t}return[]}function a9(e){let t=a2(e,"collectionField"),l=a2(e,"filterField"),o=t||l;if((null==o?void 0:o.filterable)===!1)return[];let n=a4(null==o?void 0:o.filterable);if(null==n?void 0:n.length)return n;let i=a3(e,o);if(!1===i)return[];let r=a4(i);return(null==r?void 0:r.length)?r:a6(o)}function a7(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se(e);if(!t)return null;let l=a2(e,"collectionField")||a2(e,"filterField");return a9(e).find(e=>e.value===t&&(!e.visible||e.visible(l)))||null}function se(e){var t,l,o,n,i,r;let a=a9(e);return e.operator||(null==(l=e.getStepParams)||null==(t=l.call(e,"filterFormItemSettings","defaultOperator"))?void 0:t.value)||(null==(n=e.subModels)||null==(o=n.field)?void 0:o.operator)||(null==(i=a.find(e=>e.selected))?void 0:i.value)||(null==(r=a[0])?void 0:r.value)||"$includes"}function st(e){return!!(null==e||"string"==typeof e&&""===e.trim()||Array.isArray(e)&&0===e.filter(e=>null!=e&&("string"!=typeof e||""!==e.trim())).length)||"object"==typeof e&&e.constructor===Object&&0===Object.keys(e).length}function sl(e){return e.filterSubModels("items",e=>{var t;return!!(null==(t=e.resource)?void 0:t.supportsFilter)})}aZ.itemModelName="DetailsItemModel",aZ.maxAssociationFieldDepth=2,aZ.define({label:'{{t("Display fields")}}'});let so={$match:"$in",$anyOf:"$in",$notMatch:"$notIn",$noneOf:"$notIn"};function sn(e,t){var l,o,n;let i=null==e||null==(l=e.context)?void 0:l.dataSourceManager,r=null==e?void 0:e.collection;if(!i||!(null==r?void 0:r.dataSourceKey)||!(null==r?void 0:r.name)||!t)return;let a=r.name,s=t.split(".").filter(Boolean);for(let e=0;e<s.length;e+=1){let t=null==(o=i.getCollectionField)?void 0:o.call(i,`${r.dataSourceKey}.${a}.${s[e]}`);if(!t||e===s.length-1)return t;if(!(a=t.target||(null==(n=t.targetCollection)?void 0:n.name)))return}}function si(e,t,l){let o=so[e];if(!o)return e;let n=sn(t,l);return!n||a0(n)?e:o}async function sr(e){(null==e?void 0:e.loading)&&await new Promise(t=>{let l=()=>{e.loading?setTimeout(l,16):t()};l()})}function sa(e){if(e instanceof Error)return e.message;try{return String(e)}catch{return"Unknown error"}}class ss{async saveFilterConfigs(){await this.gridModel.saveStepParams()}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(e){let t=this.filterConfigs.filter(t=>t.filterId===e);if(0!==t.length)return{targets:t.map(e=>({targetId:e.targetId,filterPaths:e.filterPaths}))}}async prepareFiltersForTarget(e){let t=this.filterConfigs.filter(t=>t.targetId===e),l=new Set;return await Promise.all(t.map(async t=>{try{var o;let e=this.gridModel.flowEngine.getModel(t.filterId),n=null==e||null==(o=e.context)?void 0:o.blockModel;if(!n||"function"!=typeof n.prepareInitialFilterValues)return;let i=await n.prepareInitialFilterValues();!1!==i&&l.add(n)}catch(t){console.error(`Failed to prepare filter defaults for target "${e}": ${sa(t)}`)}})),l}async saveConnectFieldsConfig(e,t){let l=t.targets.map(t=>({filterId:e,targetId:t.targetId,filterPaths:t.filterPaths})),o=this.filterConfigs.filter(t=>t.filterId!==e);this.filterConfigs=[],this.filterConfigs.push(...o,...l),await this.saveFilterConfigs()}async addFilterConfig(e){if(!e.filterId||!e.targetId)return void console.error("FilterConfig must have filterId, targetId, and operator");if(!Array.isArray(e.filterPaths)||0===e.filterPaths.length)return void console.error("FilterConfig must have non-empty filterPaths array");let t=this.filterConfigs.findIndex(t=>t.filterId===e.filterId&&t.targetId===e.targetId);t>=0?this.filterConfigs[t]={...e}:this.filterConfigs.push({...e}),await this.saveFilterConfigs()}async removeFilterConfig(e){let{filterId:t,targetId:l,persist:o=!0}=e;if(!t&&!l)return console.error("At least one of filterId or targetId must be provided"),0;let n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(e=>t&&l?e.filterId!==t||e.targetId!==l:t?e.filterId!==t:!l||e.targetId!==l);let i=n-this.filterConfigs.length;return i>0&&o&&await this.saveFilterConfigs(),i}bindToTarget(e){if(!e||"string"!=typeof e)return void console.error("[NocoBase]: targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`[NocoBase]: Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.addFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with addFilterGroup method`);if("function"!=typeof t.resource.removeFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{let l=this.gridModel.flowEngine.getModel(e.filterId);if(!l)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" not found`);if(!l.getFilterValue)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" does not have getFilterValue method`);let n=l.getFilterValue();if(st(n)){try{t.resource.removeFilterGroup(e.filterId),o.setFilterActive(e.filterId,!1)}catch(e){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${e.message}`)}return}o.setFilterActive(e.filterId,!0);let i=e.filterPaths.map(o=>({path:o,operator:si(e.operator||se(l),t,o),value:n}));try{if(1===i.length)t.resource.addFilterGroup(e.filterId,new f.FilterItem({path:i[0].path,operator:i[0].operator,value:i[0].value}));else if(i.length>1){let l={logic:"$or",items:i};t.resource.addFilterGroup(e.filterId,new f.FilterGroup(l))}}catch(e){console.error(`Failed to bind filter configuration to target model: ${e.message}`);return}})}unbindFromTarget(e){if(!e||"string"!=typeof e)return void console.error("targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.removeFilterGroup)return void console.error(`Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{try{t.resource.removeFilterGroup(e.filterId),"function"==typeof(null==o?void 0:o.removeFilterSource)&&o.removeFilterSource(e.filterId)}catch(e){console.error(`Failed to unbind filter configuration from target model: ${e.message}`);return}})}async refreshTargetsByFilter(e,t){if(!e)return void console.error("filterId must be provided");let l=Array.isArray(e)?e:[e];if(0===l.length||l.some(e=>!e||"string"!=typeof e))return void console.error("filterId must be non-empty string(s)");let o=this.filterConfigs.filter(e=>l.includes(e.filterId));if(0===o.length)return;let n=(null==t?void 0:t.excludeTargetIds)?new Set(t.excludeTargetIds):void 0,i=[...new Set(o.map(e=>e.targetId))].filter(e=>!(null==n?void 0:n.has(e))).map(async e=>{try{var t,l;this.bindToTarget(e);let o=this.gridModel.flowEngine.getModel(e);if(!o)return void console.error(`Target model with uid "${e}" not found`);if(!o.resource||"function"!=typeof o.resource.refresh)return void console.error(`Target model with uid "${e}" does not have a valid resource with refresh method`);let n=o,i=o.resource,r=o,a=n.getDataLoadingMode();if("manual"===a&&!n.hasActiveFilters()){i.setData([]),i.setMeta({count:0,hasNext:!1}),"function"==typeof i.setPage&&i.setPage(1),i.loading=!1,null==(l=r.resetAfterFilterChange)||l.call(r);return}await sr(i),"function"==typeof i.setPage&&i.setPage(1),await i.refresh(),null==(t=r.resetAfterFilterChange)||t.call(r)}catch(t){console.error(`Failed to refresh target model "${e}": ${t.message}`);return}});await Promise.all(i)}constructor(e,t){this.gridModel=e,this.filterConfigs=t||[]}}function sd(e){let{rows:t={},sizes:l={},layout:o,renderItem:n,rowGap:i=16,colGap:r=16,dragOverlayRect:a}=e,s=o||(0,f.normalizeGridLayout)({rows:t,sizes:l});return s.rows.length?(0,m.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:i},"data-grid-root":!0,children:[a&&(0,m.jsx)(sp,{rect:a}),(0,m.jsx)(su,{rows:s.rows,renderItem:n,rowGap:i,colGap:r,parentPath:[]})]}):(0,m.jsx)("div",{style:{position:"relative"},"data-grid-root":!0,"data-grid-empty-container":!0,children:a&&(0,m.jsx)(sp,{rect:a})})}function su(e){let{rows:t,renderItem:l,rowGap:o,colGap:n,parentPath:i}=e;return(0,m.jsx)(m.Fragment,{children:t.map(e=>{let t=e.cells.length,r=e.sizes||[],a=r.some(e=>null!=e&&void 0!==e),s=[...i,{rowId:e.id}],d=e.cells.map((e,l)=>{if(!a)return 24/t;{let e=r.reduce((e,t)=>e+(t||0),0),o=t-r.filter(Boolean).length,n=o>0?(24-e)/o:0;return r[l]??n}});return(0,m.jsx)(b.Row,{gutter:n,"data-grid-row-id":e.id,"data-grid-path":JSON.stringify(s),children:e.cells.map((t,i)=>(0,m.jsx)(sc,{rowKey:e.id,columnIndex:i,span:d[i],rowGap:o,colGap:n,cell:t,path:[...s.slice(0,-1),{rowId:e.id,cellId:t.id}],renderItem:l},t.id))},e.id)})})}let sc=i.default.memo(function(e){var t;let{rowKey:l,columnIndex:o,span:n,rowGap:i,colGap:r,cell:a,path:s,renderItem:d}=e,u=a.items||[];return(0,m.jsx)(b.Col,{span:n,"data-grid-column-row-id":l,"data-grid-column-index":o,"data-grid-path":JSON.stringify(s),children:(0,m.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:[u.map((e,t)=>e===f.EMPTY_COLUMN_UID?null:(0,m.jsx)("div",{"data-grid-item-row-id":l,"data-grid-column-index":o,"data-grid-item-index":t,"data-grid-item-uid":e,"data-grid-path":JSON.stringify(s),children:d(e)},e)),(null==(t=a.rows)?void 0:t.length)?(0,m.jsx)(su,{rows:a.rows,renderItem:d,rowGap:i,colGap:r,parentPath:s}):null]})})});function sp(e){let{rect:t}=e,l={position:"absolute",top:t.top,left:t.left,width:t.width,height:t.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"item-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"}};return(0,m.jsx)("div",{style:{...l,...o[t.type]}})}sc.displayName="GridColumn";let sm=e=>{let{value:t,onChange:l,rows:o=10,...n}=e,[r,a]=(0,i.useState)(()=>t?JSON.stringify(t,null,2):""),[s,d]=(0,i.useState)(null);(0,i.useEffect)(()=>{a(t?JSON.stringify(t,null,2):"")},[t]);let u=e=>{let t=e.target.value;a(t);try{let e=t.trim()?JSON.parse(t):void 0;d(null),null==l||l(e)}catch(e){d(e.message)}};return(0,m.jsxs)("div",{children:[(0,m.jsx)(b.Input.TextArea,{value:r,autoSize:{minRows:o,maxRows:o+10},onChange:u,...n}),s&&(0,m.jsx)(b.Alert,{type:"error",message:s,showIcon:!0,style:{marginTop:8}})]})},sh=(0,lj.connect)(sm),sf="gridSettings",sg="grid",sv=new Set(["column-edge","item-edge","empty-column"]),sy=e=>e.filter(e=>!sv.has(e.type)),s_=e=>{if(!e)return null;if("number"==typeof e.clientX&&"number"==typeof e.clientY)return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){let t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){let t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class sb extends f.FlowModel{onInit(e){super.onInit(e),this.props.dragOverlayRect&&this.setProps("dragOverlayRect",null)}bindDragDocumentListeners(){var e;let t=(null==(e=this.getDragContainer())?void 0:e.ownerDocument)||("u"<typeof document?null:document);if(!t)return;let l={capture:!0,passive:!0},o={capture:!0},n=t.defaultView;return t.addEventListener("pointermove",this.updateDragPointerPosition,l),t.addEventListener("mousemove",this.updateDragPointerPosition,l),t.addEventListener("touchmove",this.updateDragPointerPosition,l),t.addEventListener("scroll",this.handleDragScroll,l),null==n||n.addEventListener("scroll",this.handleDragScroll,l),()=>{t.removeEventListener("pointermove",this.updateDragPointerPosition,o),t.removeEventListener("mousemove",this.updateDragPointerPosition,o),t.removeEventListener("touchmove",this.updateDragPointerPosition,o),t.removeEventListener("scroll",this.handleDragScroll,o),null==n||n.removeEventListener("scroll",this.handleDragScroll,o)}}deriveRowOrder(e,t){let l=[],o=new Set;return(t||Object.keys(e)).forEach(t=>{e[t]&&!o.has(t)&&(l.push(t),o.add(t))}),Object.keys(e).forEach(e=>{o.has(e)||(l.push(e),o.add(e))}),l}normalizeRowsWithOrder(e,t){let l=this.deriveRowOrder(e,t),o={};return l.forEach(t=>{e[t]&&(o[t]=e[t])}),Object.keys(e).forEach(t=>{o[t]||(o[t]=e[t])}),{rows:o,rowOrder:l}}orderSizesByRowOrder(e,t){let l={};return t.forEach(t=>{e[t]&&(l[t]=e[t])}),Object.keys(e).forEach(t=>{l[t]||(l[t]=e[t])}),l}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings={showBackground:!1,showDragHandle:!0,...this.itemFlowSettings}),this._memoItemFlowSettings}getItemUids(){return(this.subModels.items||[]).map(e=>e.uid)}normalizeLayoutFromSource(e){let t=this.getStepParams(sf,sg)||{};return(0,f.normalizeGridLayout)({layout:(null==e?void 0:e.layout)??this.props.layout??t.layout,rows:(null==e?void 0:e.rows)??this.props.rows??t.rows,sizes:(null==e?void 0:e.sizes)??this.props.sizes??t.sizes,rowOrder:(null==e?void 0:e.rowOrder)??this.props.rowOrder??t.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}getGridLayout(){return this.normalizeLayoutFromSource()}serialize(){let e=super.serialize();return e.props=g.default.omit(e.props,["dragOverlayRect"]),e}syncLayoutProps(e){let t=(0,f.projectLayoutToLegacyRows)(e);this.setProps("layout",e),this.setProps("rows",t.rows),this.setProps("sizes",t.sizes),this.setProps("rowOrder",t.rowOrder)}setGridStepLayout(e){this.setStepParams(sf,{[sg]:{layout:e}})}findLayoutRowByPath(e,t){if(!(null==t?void 0:t.length))return null;let l=e.rows;for(let e=0;e<t.length;e+=1){let o=t[e],n=l.find(e=>e.id===o.rowId);if(!n)break;if(e===t.length-1)return n;let i=n.cells.find(e=>e.id===o.cellId);l=(null==i?void 0:i.rows)||[]}return null}collectCellItemsForResize(e){return Array.isArray(e.items)?[...e.items]:(e.rows||[]).flatMap(e=>e.cells.flatMap(e=>this.collectCellItemsForResize(e)))}buildResizedCells(e,t){let l=new Set;return t.map((t,o)=>{let n=e.cells.findIndex((e,o)=>!l.has(o)&&g.default.isEqual(this.collectCellItemsForResize(e),t));if(-1!==n){l.add(n);let o=e.cells[n];return o.rows&&!o.items?g.default.cloneDeep(o):{id:o.id,items:[...t]}}return{id:`${e.id}:cell:${o}:${(0,io.uid)()}`,items:[...t]}})}getResizeRowPath(e){if(!(null==e?void 0:e.length))return[];let t=e.map(e=>({...e}));return delete t[t.length-1].cellId,t}getResizeContainerWidth(e){var t,l,o;let n=this.getResizeRowPath(e),i=(null==(t=this.gridContainerRef.current)?void 0:t.clientWidth)||0;if(!n.length)return i;let r=Array.from((null==(l=this.gridContainerRef.current)?void 0:l.querySelectorAll("[data-grid-row-id]"))||[]).find(e=>{try{return g.default.isEqual(JSON.parse(e.dataset.gridPath||"[]"),n)}catch{return!1}});return(null==r||null==(o=r.parentElement)?void 0:o.clientWidth)||i}prunePlaceholderOnlyRows(e){let t=e=>e.map(e=>{let l=e.cells.map((l,o)=>{var n,i;let r=(null==(n=e.sizes)?void 0:n[o])??1;if(null==(i=l.rows)?void 0:i.length){let e=t(l.rows);return e.length?{cell:{...l,rows:e},size:r,hasRealItem:!0}:null}let a=l.items||[],s=a.some(e=>e!==f.EMPTY_COLUMN_UID),d=a.includes(f.EMPTY_COLUMN_UID);return s||d?{cell:l,size:r,hasRealItem:s}:null}).filter(Boolean);return l.some(e=>e.hasRealItem)?{...e,cells:l.map(e=>e.cell),sizes:l.map(e=>e.size)}:null}).filter(Boolean);return(0,f.normalizeGridLayout)({layout:{...e,rows:t(e.rows||[])},itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}resizeGridLayout(e){var t;let{direction:l,resizeDistance:o,model:n}=e,i=this.getGridLayout(),r=(0,f.findModelUidLayoutPosition)(i,n.uid);if(!r)return null;let a=this.findLayoutRowByPath(i,r.path);if(!a)return null;let s=this.getResizeContainerWidth(r.path),d=a.cells.map(e=>this.collectCellItemsForResize(e)),{newRows:u,newSizes:c,moveDistance:p}=sM({position:{rowId:a.id,columnIndex:r.cellIndex,itemIndex:r.itemIndex},direction:l,resizeDistance:o,prevMoveDistance:this.prevMoveDistance,oldRows:{[a.id]:d},oldSizes:{[a.id]:a.sizes||[]},gutter:(null==(t=this.context.themeToken)?void 0:t.marginBlock)??16,gridContainerWidth:s}),m=g.default.cloneDeep(i),h=this.findLayoutRowByPath(m,r.path);return h?(h.cells=this.buildResizedCells(a,u[a.id]||[]),h.sizes=c[a.id]||[],{layout:(0,f.normalizeGridLayout)({layout:m,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}),moveDistance:p}):null}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",e=>{e.isNew&&(this.resetRows(!0),this.setGridStepLayout(this.props.layout))}),this.emitter.on("onSubModelDestroyed",e=>{var t,l;let o=e.uid;this.resetRows(!0);let n=this.prunePlaceholderOnlyRows(this.props.layout);this.setGridStepLayout(n),this.syncLayoutProps(n),null==(t=this.context.filterManager)||t.removeFilterConfig({targetId:o}),null==(l=this.context.filterManager)||l.removeFilterConfig({filterId:o}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"left",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeRight",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"right",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeBottom",e=>{let{resizeDistance:t,model:l}=e}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout(this.props.layout)})}saveGridLayout(e){let t=e&&"version"in e?(0,f.normalizeGridLayout)({layout:e,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}):this.normalizeLayoutFromSource(e);this.setGridStepLayout(t),this.syncLayoutProps(t),this.saveStepParams()}mergeRowsWithItems(e){let t=this.subModels.items||[];if(!t||0===t.length)return{};let l=new Set(t.map(e=>e.uid));l.add(f.EMPTY_COLUMN_UID);let o=new Set,n={};for(let[t,i]of Object.entries(e)){let e=i.map(e=>g.default.castArray(e).filter(e=>l.has(e))).filter(e=>e.length>0);e.length>0&&(n[t]=e,e.forEach(e=>e.forEach(e=>o.add(e))))}let i=new Set;for(let e of(Object.values(n).forEach(e=>e.forEach(e=>e.forEach(e=>i.add(e)))),t))i.has(e.uid)||(n[(0,io.uid)()]=[[e.uid]]);return n}resetRows(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getStepParams(sf,sg)||{},l=this.normalizeLayoutFromSource(t);this.setGridStepLayout(l),e&&this.syncLayoutProps(l)}computePointerPosition(e){var t;if(!this.dragState)return null;if(this.dragState.pointerPosition)return this.dragState.pointerPosition;let l=this.dragState.pointerOrigin;if(l)return{x:l.x+e.delta.x,y:l.y+e.delta.y};let o=s_(e.activatorEvent);if(o)return this.dragState.pointerOrigin=o,{x:o.x+e.delta.x,y:o.y+e.delta.y};let n=null==(t=e.over)?void 0:t.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}getDragContainer(){if(!this.dragState)return this.gridContainerRef.current;let e=this.gridContainerRef.current;return e&&this.dragState.containerEl!==e&&(this.dragState.containerEl=e),this.dragState.containerEl||e}updateLayoutSnapshot(){if(!this.dragState)return;let e=(0,f.buildLayoutSnapshot)({container:this.getDragContainer()});this.dragState.slots=this.context.isMobileLayout?sy(e.slots):e.slots,this.dragState.containerRect=e.containerRect}scheduleSnapshotRefresh(){!this.dragState||this.dragState.refreshTimer||(this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot(),this.refreshPreviewFromPointer())},16))}refreshPreviewFromPointer(){if(!this.dragState)return;let e=this.dragState.pointerPosition||this.dragState.pointerOrigin;if(!e)return;let t=this.resolveDragSlot(e);this.applyPreview(t)}computeOverlayRect(e){var t,l,o,n;let i=this.dragOverlayConfig,r=e.rect;switch(e.type){case"column":{let l=null==i||null==(t=i.columnInsert)?void 0:t[e.position],o=(null==l?void 0:l.height)??r.height,n=(null==l?void 0:l.offsetTop)??0;return{top:r.top+n,left:r.left,width:r.width,height:o}}case"column-edge":{let t=null==i||null==(l=i.columnEdge)?void 0:l[e.direction],o=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:o,height:r.height}}case"item-edge":{let t=null==i||null==(o=i.columnEdge)?void 0:o[e.direction],l=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:l,height:r.height}}case"row-gap":{let t=null==i||null==(n=i.rowGap)?void 0:n[e.position],l=(null==t?void 0:t.height)??r.height,o=(null==t?void 0:t.offsetTop)??0;return{top:r.top+o,left:r.left,width:r.width,height:l}}default:return{top:r.top,left:r.left,width:r.width,height:r.height}}}getHitTestSlot(e){return{...e,rect:this.computeOverlayRect(e)}}resolveDragSlot(e){var t;return(null==(t=this.dragState)?void 0:t.slots.length)?(0,f.resolveDropIntent)(e,this.dragState.slots.map(e=>this.getHitTestSlot(e))):null}applyPreview(e){if(!this.dragState)return;if(!e){null!==this.dragState.activeSlotKey&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}let t=(0,f.getSlotKey)(e);if(this.dragState.activeSlotKey===t&&this.dragState.previewLayout)return;let l=(0,f.simulateLayoutForSlot)({slot:e,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:io.uid,generatedIds:this.dragState.generatedIds,generateId:()=>(0,io.uid)()});if(l.layout&&this.dragState.snapshot.layout&&(0,f.isSameGridLayout)(l.layout,this.dragState.snapshot.layout))return void this.applyPreview(null);this.dragState.previewLayout={rows:g.default.cloneDeep(l.rows),sizes:g.default.cloneDeep(l.sizes),rowOrder:g.default.cloneDeep(l.rowOrder),layout:g.default.cloneDeep(l.layout)};let o=this.computeOverlayRect(e),n={top:o.top-this.dragState.containerRect.top,left:o.left-this.dragState.containerRect.left,width:o.width,height:o.height,type:e.type};this.setProps("dragOverlayRect",n),this.dragState.activeSlotKey=t}handleDragStart(e){let t=e.active.id,l=this.normalizeLayoutFromSource(),o=(0,f.projectLayoutToLegacyRows)(l);this.dragState={sourceUid:t,snapshot:{rows:g.default.cloneDeep(o.rows),sizes:g.default.cloneDeep(o.sizes),rowOrder:g.default.cloneDeep(o.rowOrder),layout:g.default.cloneDeep(l)},slots:[],containerEl:this.gridContainerRef.current,containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:s_(e.activatorEvent)??void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null,generatedIds:new Map},this.dragState.cleanupListeners=this.bindDragDocumentListeners(),this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(e){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();let t=this.computePointerPosition(e);if(!t)return void this.applyPreview(null);let l=this.resolveDragSlot(t);this.applyPreview(l)}finishDrag(){var e,t;this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),null==(e=(t=this.dragState).cleanupListeners)||e.call(t),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(e){if(!this.dragState)return;let t=this.computePointerPosition(e);if(t){let e=this.resolveDragSlot(t);this.applyPreview(e)}let l=this.dragState.previewLayout;l&&(l.layout?this.syncLayoutProps(g.default.cloneDeep(l.layout)):(this.setProps("rows",g.default.cloneDeep(l.rows)),this.setProps("sizes",g.default.cloneDeep(l.sizes)),l.rowOrder&&this.setProps("rowOrder",g.default.cloneDeep(l.rowOrder))),this.saveGridLayout(l)),this.finishDrag()}handleDragCancel(e){this.finishDrag()}renderAddSubModelButton(){throw Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var e;let t=this.normalizeLayoutFromSource(),l=this.context.isMobileLayout?(0,f.normalizeGridLayout)({rows:sx((0,f.projectLayoutToLegacyRows)(t).rows)}):t,o=(0,f.projectLayoutToLegacyRows)(l),{rows:n,rowOrder:i}=this.normalizeRowsWithOrder(o.rows,o.rowOrder),r=this.orderSizesByRowOrder(o.sizes,i);if(this.context.flowSettingsEnabled)return{layout:l,rows:n,sizes:r};let a=new Map(((null==(e=this.subModels)?void 0:e.items)||[]).map(e=>[e.uid,e])),s=e=>e.map(e=>{let t=e.cells.map((t,l)=>{var o;let n=null==(o=e.sizes)?void 0:o[l],i=Number.isFinite(n)&&n>0?n:1;if(t.rows){let e=s(t.rows);return e.length?{cell:{...t,rows:e},size:i,hasVisibleContent:!0}:null}let r=(t.items||[]).filter(e=>{var t;return e===f.EMPTY_COLUMN_UID||(null==(t=a.get(e))?void 0:t.hidden)!==!0}),d=r.some(e=>{if(e===f.EMPTY_COLUMN_UID)return!1;let t=a.get(e);return!t||!t.hidden}),u=r.includes(f.EMPTY_COLUMN_UID);return d||u?{cell:{...t,items:r},size:i,hasVisibleContent:d}:null}).filter(Boolean);return t.some(e=>e.hasVisibleContent)?{...e,cells:t.map(e=>e.cell),sizes:t.map(e=>e.size)}:null}).filter(Boolean),d=(0,f.normalizeGridLayout)({layout:{version:2,rows:s(l.rows)}}),u=(0,f.projectLayoutToLegacyRows)(d);return{layout:d,rows:u.rows,sizes:u.sizes}}render(){let{layout:e,rows:t,sizes:l}=this.getVisibleLayout(),o=Object.keys(t||{}).length>0;return(0,m.jsxs)(m.Fragment,{children:[o&&(0,m.jsx)(b.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap,display:"flex"},size:this.props.rowGap,children:(0,m.jsx)(f.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,m.jsx)(sd,{rowGap:this.props.rowGap,colGap:this.props.colGap,layout:e,rows:t,sizes:l,dragOverlayRect:this.props.dragOverlayRect,renderItem:e=>{var t,l,o,n,i;let r=this.flowEngine.getModel(e);if(!r)return this.itemFallback;let a=this.context.fieldKey,s=this.context.fieldIndex,d=this.context.getPropertyOptions("item"),u=null==(t=(l=this.context).getPropertyOptions)?void 0:t.call(l,"record"),c=null==(o=(n=this.context).getPropertyOptions)?void 0:o.call(n,"currentObject"),p=null==s?r:(()=>{let t=r.createFork({},`${a}:${e}`);t.context.defineProperty("fieldIndex",{get:()=>s}),t.context.defineProperty("fieldKey",{get:()=>a}),t.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:null==u?void 0:u.meta,resolveOnServer:null==u?void 0:u.resolveOnServer,serverOnlyWhenContextParams:null==u?void 0:u.serverOnlyWhenContextParams}),t.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:null==c?void 0:c.resolveOnServer,serverOnlyWhenContextParams:null==c?void 0:c.serverOnlyWhenContextParams});let{value:l,...o}=d||{};return t.context.defineProperty("item",{...o,get:()=>this.context.item,cache:!1}),t})();return(0,m.jsx)(f.Droppable,{model:p,children:(0,m.jsx)(f.MemoFlowModelRenderer,{model:p,fallback:r.skeleton||this.itemFallback,showFlowSettings:!!this.context.flowSettingsEnabled&&this.getItemFlowSettings(),showErrorFallback:!0,settingsMenuLevel:(null==p?void 0:p.settingsMenuLevel)??this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${p.uid}:${a}:${(null==p?void 0:p.use)||(null==p||null==(i=p.constructor)?void 0:i.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,m.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}constructor(...e){super(...e),this.subModelBaseClass="BlockModel",this.gridContainerRef=i.default.createRef(),this.prevMoveDistance=0,this.itemSettingsMenuLevel=1,this.itemFlowSettings={},this.itemFallback=(0,m.jsx)(nV,{}),this.itemExtraToolbarItems=[{key:"drag-handler",component:f.DragHandler,sort:1}],this.updateDragPointerPosition=e=>{if(!this.dragState)return;let t=s_(e);t&&(this.dragState.pointerPosition=t)},this.handleDragScroll=()=>{this.dragState&&this.scheduleSnapshotRefresh()}}}function sx(e,t){let l=(null==t?void 0:t.emptyColumnUid)??f.EMPTY_COLUMN_UID,o={},n=e=>{if(!o[e])return e;let t=1,l=`${e}:duplicate:${t}`;for(;o[l];)t+=1,l=`${e}:duplicate:${t}`;return l};return Object.keys(e).forEach(t=>{let i=e[t].map((e,t)=>({columnIndex:t,items:e.filter(e=>e!==l)})).filter(e=>e.items.length>0);if(1===i.length&&0===i[0].columnIndex){o[n(t)]=[i[0].items];return}i.forEach(e=>{o[n(`mobile:${encodeURIComponent(t)}:${e.columnIndex}`)]=[e.items]})}),o}function sM(e){var t,l;let{position:o,direction:n,resizeDistance:i,prevMoveDistance:r,oldSizes:a,oldRows:s,gridContainerWidth:d,gutter:u=16,columnCount:c=24}=e,p=g.default.cloneDeep(s),m=g.default.cloneDeep(a),h=Math.floor(i/(d-u*((m[o.rowId]||[]).length-1))*c);if(h===r)return{newRows:p,newSizes:m,moveDistance:h};(t=m)[l=o.rowId]??(t[l]=[c]);let f=m[o.rowId],v=h-r,y="left"===n&&o.columnIndex>0,_="right"===n&&o.columnIndex<f.length-1;if(!y&&!_&&v>0){let e=c-f.reduce((e,t)=>e+t,0);if(e<=0)return{newRows:p,newSizes:m,moveDistance:r};v>e&&(h=r+e,v=e)}if(m[o.rowId][o.columnIndex]+=v,"left"===n&&o.columnIndex>0&&(m[o.rowId][o.columnIndex-1]-=v,0===m[o.rowId][o.columnIndex-1]&&sS({rows:p,sizes:m,position:o,direction:"left"})),"left"===n&&0===o.columnIndex){let e=m[o.rowId].slice(1).reduce((e,t)=>e+t,0);m[o.rowId][0]<c-e&&sw({rows:p,sizes:m,position:o,direction:"left"})}if("right"===n&&o.columnIndex<m[o.rowId].length-1&&(m[o.rowId][o.columnIndex+1]-=v,0===m[o.rowId][o.columnIndex+1]&&sS({rows:p,sizes:m,position:o,direction:"right"})),"right"===n&&o.columnIndex===m[o.rowId].length-1){let e=m[o.rowId].slice(0,-1).reduce((e,t)=>e+t,0);m[o.rowId][o.columnIndex]<c-e&&sw({rows:p,sizes:m,position:o,direction:"right"})}return{newRows:p,newSizes:m,moveDistance:h}}function sw(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[f.EMPTY_COLUMN_UID]),r.splice(o.columnIndex,0,1)}if("right"===n){let e=i[o.columnIndex+1];if(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[f.EMPTY_COLUMN_UID]),r.splice(o.columnIndex+1,0,1)}}function sS(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(!(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),r.splice(o.columnIndex-1,1)}if("right"===n){let e=i[o.columnIndex+1];if(!(null==e?void 0:e.includes(f.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),r.splice(o.columnIndex+1,1)}}sb.registerFlow({key:sf,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{layout:{title:(0,f.tExpr)("Layout"),"x-decorator":"FormItem","x-component":sh,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,f.tExpr)("Configure the nested layout of the grid.")}}},async handler(e,t){let l=e.model,o=(0,f.normalizeGridLayout)({layout:t.layout,rows:t.rows,sizes:t.sizes,rowOrder:t.rowOrder,itemUids:l.getItemUids(),gridUid:l.uid,logger:console});l.setGridStepLayout(o),l.syncLayoutProps(o)}}}});let sk=["JSBlockModel","IframeBlockModel","MarkdownBlockModel"];class sF extends sb{onInit(e){super.onInit(e),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new ss(this,e.filterManager)})}onMount(){var e,t;super.onMount(),(null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.scene)!=="select"||this.viewActivatedListener||(this.viewActivatedListener=()=>{this.mapSubModels("items",e=>{var t;null==(t=e.onActive)||t.call(e)})},this.flowEngine.emitter.on(f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener))}onUnmount(){this.viewActivatedListener&&(this.flowEngine.emitter.off(f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),super.onUnmount()}get subModelBaseClasses(){var e;let t=(null==(e=this.context.view)?void 0:e.inputArgs)??{};return t.collectionName&&!t.filterByTk,["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}get addBlockItems(){var e,t;if((null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.scene)==="select")return async e=>{let t=await (0,f.buildSubModelGroups)(["DataBlockModel","FilterBlockModel"])(e),l=sk.filter(t=>!!e.engine.getModelClass(t)),o=(await Promise.all(l.map(t=>(0,f.buildSubModelItems)(t)(e)))).flat().sort((e,t)=>(e.sort??1e3)-(t.sort??1e3));return o.length>0&&t.push({key:"select-scene-other-blocks",type:"group",label:e.t("Other blocks"),sort:1e3,children:o}),t}}serialize(){let e=super.serialize();return e.filterManager=this.filterManager.getFilterConfigs(),e}renderAddSubModelButton(){let e=this.addBlockItems;return(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"items",items:e,subModelBaseClasses:e?void 0:this.subModelBaseClasses,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,m.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}constructor(...e){super(...e),this.dragOverlayConfig={columnInsert:{before:{offsetTop:-12},after:{offsetTop:12}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}}}}sF.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});var sC=__webpack_require__(3438),sA=__webpack_require__(9639),sP=__webpack_require__(146);class sT extends f.FlowModel{}var sj=__webpack_require__(2606);class sI extends sC.z{}sI.define({hide:!0,label:"Filter blocks"});var sL=__webpack_require__(2542);async function sR(e){var t,l,o,n,i;(null==(l=e.inputArgs)||null==(t=l.dirty)?void 0:t.hasDirtyForms)&&(await e.modal.confirm({title:e.t("Unsaved changes"),content:e.t("Are you sure you don't want to save?"),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||(null==(i=e.inputArgs)||null==(n=i.controller)||null==(o=n.prevent)||o.call(n),e.exitAll()))}let sD="__no_active_page_tab__";function sE(e){var t;let{hiddenTabKeys:l,hiddenActiveTabLabel:o,items:n,tabBarProps:r}=e,a=n.filter(e=>!l.has(String(e.key))).map(e=>{let{children:t,className:l,destroyInactiveTabPane:o,forceRender:n,style:i,...r}=e;return{...r,children:null}}),s=a.some(e=>e.key===r.activeKey)?r.activeKey:sD,d=null==(t=a.find(e=>!e.disabled))?void 0:t.key,u=l.has(String(r.activeKey))?String(r.activeKey):void 0,c=u&&r.id?`${r.id}-tab-${u}`:void 0,p=e=>{let t=String(e.key);if(s!==sD||t!==String(d))return e;let l=!1,o=i.default.Children.map(e.props.children,e=>l||!i.default.isValidElement(e)||"tab"!==e.props.role?e:(l=!0,i.default.cloneElement(e,{tabIndex:0})));return i.default.cloneElement(e,void 0,o)};return(0,m.jsxs)(m.Fragment,{children:[c?(0,m.jsx)("span",{id:c,hidden:!0,children:o||u}):null,(0,m.jsx)(b.Tabs,{activeKey:sD,animated:{inkBar:r.animated.inkBar,tabPane:!1},destroyInactiveTabPane:!0,id:r.id,items:a,more:r.more,onTabClick:(e,t)=>r.onTabClick(e,t),onTabScroll:r.onTabScroll,renderTabBar:(e,t)=>(0,m.jsx)(t,{...e,activeKey:s,children:p}),tabBarExtraContent:r.extra,tabBarGutter:r.tabBarGutter,tabBarStyle:r.style,tabPosition:r.tabPosition})]})}function sY(e){let{dependencyKey:t,onSync:l}=e,o=i.default.useRef(),n=i.default.useRef(!1),r=i.default.useRef();return i.default.useEffect(()=>{let e=l({previousEffectiveActiveKey:o.current,previousAllHidden:n.current,lastCorrectionSignature:r.current});o.current=e.effectiveActiveKey,n.current=e.previousAllHidden,r.current=e.lastCorrectionSignature},[t,l]),null}class sN extends f.FlowModel{getEnableTabs(){let e=this.context.currentRoute,t=this.props.routeId;return null!=t&&(null==e?void 0:e.id)!=null&&String(e.id)===String(t)&&"boolean"==typeof e.enableTabs?e.enableTabs:!!this.props.enableTabs}getAllTabs(){var e;return(null==(e=this.subModels)?void 0:e.tabs)||[]}getUnhiddenTabs(){return this.getAllTabs().filter(e=>!e.hidden)}getRequestedTabKey(){var e,t;let l=null==(t=this.context.view)||null==(e=t.navigation)?void 0:e.viewParams;if(l){let e="string"==typeof l.tabUid&&l.tabUid?l.tabUid:void 0;if(e)return this.implicitActiveKey=void 0,{key:e,source:"url"};let t="string"==typeof this.props.tabActiveKey&&this.props.tabActiveKey?this.props.tabActiveKey:void 0;return t&&t===this.implicitActiveKey?{key:t,source:"implicit"}:{source:"none"}}let o="string"==typeof this.props.tabActiveKey&&this.props.tabActiveKey?this.props.tabActiveKey:void 0;return o?{key:o,source:o===this.implicitActiveKey?"implicit":"props"}:{source:"none"}}resolveTabActiveState(){var e,t;let l=this.getAllTabs(),o=this.getUnhiddenTabs(),n=this.getRequestedTabKey();if(!n.key)return{...n,status:"unspecified",effectiveKey:null==(e=o[0])?void 0:e.uid,allTabs:l,unhiddenTabs:o};let i=l.find(e=>e.uid===n.key);return"implicit"===n.source&&(!i||i.hidden)?{...n,status:"unspecified",effectiveKey:null==(t=o[0])?void 0:t.uid,allTabs:l,unhiddenTabs:o}:i?o.some(e=>e.uid===n.key)?{...n,status:"visible",effectiveKey:n.key,allTabs:l,unhiddenTabs:o}:{...n,status:"hidden",effectiveKey:n.key,allTabs:l,unhiddenTabs:o}:{...n,status:"unknown",effectiveKey:n.key,allTabs:l,unhiddenTabs:o}}getActiveTabKey(){if(!this.getEnableTabs()){var e;let t=null==(e=this.getFirstTab())?void 0:e.uid;if(t)return t}return this.resolveTabActiveState().effectiveKey}getTabActiveKeySyncDependency(){var e,t;let l=this.getAllTabs(),o=this.getUnhiddenTabs(),n=null==(t=this.context.view)||null==(e=t.navigation)?void 0:e.viewParams;return JSON.stringify([!!this.context.flowSettingsEnabled,n&&n.tabUid||null,this.props.tabActiveKey||null,l.map(e=>e.uid),o.map(e=>e.uid),this.implicitActiveKey||null])}requestDocumentTitleUpdate(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.updateDocumentTitle(e,t).catch(e=>{console.warn("[PageModel] Failed to update document title",e)})}rememberImplicitActiveKey(e){this.implicitActiveKey=e,this.props.tabActiveKey!==e&&this.setProps("tabActiveKey",e)}commitTabActiveKey(e,t){let{previousActiveKey:l,navigate:o,preserveImplicitKey:n=!1,rememberLocalTransition:i=!1}=t;if(i&&e&&(this.locallyCommittedTabTransition={activeKey:e,previousActiveKey:l}),this.implicitActiveKey=e&&n?e:void 0,o){var r,a,s;null==(s=this.context.view)||null==(a=s.navigation)||null==(r=a.changeTo)||r.call(a,{tabUid:e})}e&&e!==l&&this.invokeTabModelLifecycleMethod(e,"onActive"),l&&l!==e&&this.invokeTabModelLifecycleMethod(l,"onInactive"),this.setProps("tabActiveKey",e),e||this.requestDocumentTitleUpdate()}consumeLocallyCommittedTabTransition(e,t){let l=this.locallyCommittedTabTransition;return!!l&&!!t&&(l.activeKey===t&&l.previousActiveKey===e?(this.locallyCommittedTabTransition=void 0,!0):(t!==l.previousActiveKey&&(this.locallyCommittedTabTransition=void 0),!1))}scheduleActiveLifecycleRefresh(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dirtyRefreshScheduled||(this.dirtyRefreshScheduled=!0,Promise.resolve().then(()=>{this.dirtyRefreshScheduled=!1,this.unmounted||!1!==(0,f.getPageActive)(this.context)&&this.activateCurrentTab(e)}).catch(()=>{}))}activateCurrentTab(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getActiveTabKey();t&&this.invokeTabModelLifecycleMethod(t,"onActive",e)}deactivateCurrentTab(){let e=this.getActiveTabKey();e&&this.invokeTabModelLifecycleMethod(e,"onInactive")}onMount(){var e,t,l,o,n,i,r,a,s;super.onMount(),this.unmounted=!1,this.implicitActiveKey=void 0,this.setProps("tabActiveKey",null==(e=this.context.view.inputArgs)?void 0:e.tabUid),(null==(t=this.context)?void 0:t.pageInfo)&&(this.context.pageInfo.version="v2"),this.requestDocumentTitleUpdate(),this.viewActivatedListener||(this.viewActivatedListener=e=>{this.activateCurrentTab()},null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.on)||o.call(n,f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener));let d=(0,f.getEmitterViewActivatedVersion)(null==(l=this.flowEngine)?void 0:l.emitter),u=d>0&&d!==this.lastSeenEmitterViewActivatedVersion;this.lastSeenEmitterViewActivatedVersion=d,u&&!1!==(0,f.getPageActive)(this.context)&&this.activateCurrentTab(),this.dataSourceDirtyListener||(this.dataSourceDirtyListener=e=>{this.scheduleActiveLifecycleRefresh()},null==(s=this.flowEngine)||null==(a=s.emitter)||null==(r=a.on)||r.call(a,f.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener))}onUnmount(){var e,t,l,o,n,i;this.unmounted=!0,this.viewActivatedListener&&(null==(l=this.flowEngine)||null==(t=l.emitter)||null==(e=t.off)||e.call(t,f.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),this.dataSourceDirtyListener&&(null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.off)||o.call(n,f.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener),this.dataSourceDirtyListener=void 0),super.onUnmount()}invokeTabModelLifecycleMethod(e,t){var l,o;let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e)return;"onActive"===t&&(null==(l=this.context)?void 0:l.pageInfo)&&(this.context.pageInfo.version="v2");let i=this.findSubModel("tabs",t=>t.uid===e)||this.flowEngine.getModel(e);if(i){if(i.context.tabActive){let e=!1!==(0,f.getPageActive)(i.context);i.context.tabActive.value=e&&"onActive"===t}null==(o=i.subModels.grid)||o.mapSubModels("items",e=>{var l;null==(l=e[t])||l.call(e,n)})}"onActive"===t&&this.requestDocumentTitleUpdate(e)}async updateDocumentTitle(e){var t,l,o,n,i,r,a,s,d,u,c,p,m,h,g,v,y,_,b,x;let M=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.unmounted||!1===(0,f.getPageActive)(this.context))return;let w=!!(null==(l=this.context)||null==(t=l.view)?void 0:t.navigation),S=null==(i=this.context)||null==(n=i.view)||null==(o=n.inputArgs)?void 0:o.viewUid,k=null==(s=this.flowEngine)||null==(a=s.context)||null==(r=a.route)?void 0:r.pathname;if(w&&S&&"string"==typeof k){let e=null==(u=this.context)||null==(d=u.layout)?void 0:d.routePath,t=null==(c=(0,f.parsePathnameToViewParams)(k,{basePath:(null==(m=this.context)||null==(p=m.layoutRoute)?void 0:p.basePathname)||((null==e?void 0:e.startsWith("/"))?e:"")}).at(-1))?void 0:c.viewUid;if(t&&t!==S)return}let F=++this.documentTitleUpdateVersion,C=async e=>{if(!e||"string"!=typeof e)return"";try{var t,l;let o=await (null==(t=(l=this.context).resolveJsonTemplate)?void 0:t.call(l,e));return null==o?"":String(o)}catch(t){return e}},A=this.getUnhiddenTabs(),P=e||this.getActiveTabKey(),T=!this.getEnableTabs()||!P&&0===A.length,j="";if(T)j=await C(null==(x=this.stepParams)||null==(b=x.pageSettings)||null==(_=b.general)?void 0:_.documentTitle)||this.props.title||"";else{let e=P?this.findSubModel("tabs",e=>e.uid===P)||this.flowEngine.getModel(P):this.getFirstTab();if(!e&&M<5)return void window.setTimeout(()=>{this.unmounted||F===this.documentTitleUpdateVersion&&this.requestDocumentTitleUpdate(P,M+1)},0);j=await C(null==e||null==(v=e.stepParams)||null==(g=v.pageTabSettings)||null==(h=g.tab)?void 0:h.documentTitle)||(null==e||null==(y=e.getTabTitle)?void 0:y.call(e))||""}F===this.documentTitleUpdateVersion&&"string"==typeof j&&""!==j&&(document.title=j)}mapTabs(){return this.mapSubModels("tabs",e=>({key:e.uid,label:(0,m.jsx)(f.Droppable,{model:e,children:(0,m.jsx)(f.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!0,showBorder:!1,toolbarPosition:"above",style:{transform:"translateY(8px)"}},extraToolbarItems:[{key:"drag-handler",component:f.DragHandler,sort:1}]})}),children:e.renderChildren()}))}getFirstTab(){var e;return null==(e=this.subModels.tabs)?void 0:e[0]}renderFirstTab(){var e;let t=this.getFirstTab();return null==t||null==(e=t.renderChildren)?void 0:e.call(t)}async handleDragEnd(e){throw Error("Method not implemented.")}renderTabs(){var e,t,l;let o=this.resolveTabActiveState(),n=this.mapTabs(),i=new Set(this.context.flowSettingsEnabled?[]:o.allTabs.filter(e=>e.hidden).map(e=>e.uid)),r="hidden"===o.status?null==(t=o.allTabs.find(e=>e.uid===o.effectiveKey))||null==(e=t.getTabTitle)?void 0:e.call(t):void 0,a=o.effectiveKey||(o.allTabs.length>0?sD:void 0),s=(null==(l=this.context.themeToken)?void 0:l.paddingLG)??16,d=void 0!==this.tabBarExtraContent.left?this.tabBarExtraContent.left:(0,m.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:s,height:1}}),u=void 0!==this.tabBarExtraContent.right?this.tabBarExtraContent.right:(0,m.jsx)("span",{style:{display:"inline-flex",marginInlineEnd:s},children:(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"tabs",items:[{key:"blank",label:this.context.t("Blank tab"),createModelOptions:this.createPageTabModelOptions}],children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.PlusOutlined,{}),children:this.context.t("Add tab")})})});return(0,m.jsxs)(f.DndProvider,{onDragEnd:this.handleDragEnd.bind(this),children:[(0,m.jsx)(sY,{dependencyKey:this.getTabActiveKeySyncDependency(),onSync:this.synchronizeTabActiveKey}),(0,m.jsx)(b.Tabs,{activeKey:a,tabBarStyle:this.props.tabBarStyle,items:n,renderTabBar:i.size>0?e=>(0,m.jsx)(sE,{hiddenTabKeys:i,hiddenActiveTabLabel:r,items:n,tabBarProps:e}):void 0,onChange:e=>{var t;let l=this.getActiveTabKey();this.implicitActiveKey=void 0,this.commitTabActiveKey(e,{previousActiveKey:l,navigate:!!(null==(t=this.context.view)?void 0:t.navigation),rememberLocalTransition:!0})},tabBarExtraContent:{left:d,right:u}})]})}render(){let e=this.context.themeToken,t={...this.props.headerStyle};e&&(t.paddingBlock=e.paddingSM,t.paddingInline=e.paddingLG);let l=this.getEnableTabs();return l&&(t.paddingBottom=0),(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:t}),l?this.renderTabs():this.renderFirstTab()]})}constructor(...e){super(...e),this.tabBarExtraContent={},this.lastSeenEmitterViewActivatedVersion=0,this.dirtyRefreshScheduled=!1,this.unmounted=!1,this.documentTitleUpdateVersion=0,this.synchronizeTabActiveKey=e=>{let t=this.resolveTabActiveState(),l=t.allTabs.length>0&&0===t.unhiddenTabs.length,o=(e,t)=>({previousEffectiveActiveKey:e,effectiveActiveKey:e,previousAllHidden:l,lastCorrectionSignature:t});if("unknown"===t.status)return o(t.effectiveKey);if("visible"===t.status){let l=t.effectiveKey;if(this.consumeLocallyCommittedTabTransition(e.previousEffectiveActiveKey,l))return o(l);let n=e.previousAllHidden&&"url"!==t.source,i=!!e.previousEffectiveActiveKey&&e.previousEffectiveActiveKey!==l;if((n||i)&&l){let n=`visible:${t.source}:${e.previousEffectiveActiveKey||""}->${l}`;return n!==e.lastCorrectionSignature&&this.commitTabActiveKey(l,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1,preserveImplicitKey:"implicit"===t.source}),o(l,n)}return o(l)}if("hidden"===t.status){let l=t.effectiveKey;if(this.consumeLocallyCommittedTabTransition(e.previousEffectiveActiveKey,l))return o(l);if(l&&e.previousEffectiveActiveKey!==l){let n=`hidden:${t.source}:${e.previousEffectiveActiveKey||""}->${l}`;return n!==e.lastCorrectionSignature&&this.commitTabActiveKey(l,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1}),o(l,n)}return o(l)}let n=t.effectiveKey;if(!n){if(!l){if("implicit"!==t.source||!t.key)return o(void 0);let l=`implicit-missing:${e.previousEffectiveActiveKey||""}`;return l!==e.lastCorrectionSignature&&this.commitTabActiveKey(void 0,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1}),o(void 0,l)}let n=`all-hidden:${e.previousEffectiveActiveKey||""}`;return e.previousAllHidden||n===e.lastCorrectionSignature||(this.implicitActiveKey=void 0,this.props.tabActiveKey||e.previousEffectiveActiveKey?this.commitTabActiveKey(void 0,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1}):this.requestDocumentTitleUpdate()),o(void 0,n)}let i=e.previousAllHidden||!!e.previousEffectiveActiveKey&&e.previousEffectiveActiveKey!==n,r=`implicit:${e.previousEffectiveActiveKey||""}->${n}`;return i&&r!==e.lastCorrectionSignature?this.commitTabActiveKey(n,{previousActiveKey:e.previousEffectiveActiveKey,navigate:!1,preserveImplicitKey:!0}):this.rememberImplicitActiveKey(n),o(n,i?r:void 0)},this.createPageTabModelOptions=()=>{let e=(0,io.uid)();return{uid:e,use:"RootPageTabModel",props:{route:{parentId:this.props.routeId,type:"tabs",schemaUid:e,tabSchemaName:(0,io.uid)(),params:[],hideInMenu:!1,enableTabs:!1}}}}}}sN.registerEvents({close:{title:(0,f.tExpr)("Close"),name:"close",hideInSettings(e){var t;return!!(null==(t=e.view)?void 0:t.preventClose)},uiSchema:{condition:{type:"object",title:(0,f.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":sL.H}},handler:sL.b}}),sN.registerFlow({key:"closeGuard",title:(0,f.tExpr)("Close guard"),on:"close",steps:{confirmUnsavedChanges:{title:(0,f.tExpr)("Unsaved changes confirmation"),handler:sR}}}),sN.registerFlow({key:"pageSettings",title:(0,f.tExpr)("Page settings"),steps:{general:{title:(0,f.tExpr)("Edit page"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},documentTitle:{type:"string",title:(0,f.tExpr)("Document title"),description:(0,f.tExpr)("Used as the browser tab title when tabs are disabled. Supports variables. Leave empty to use Page title."),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:1,maxRows:6}},displayTitle:{type:"boolean",title:(0,f.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"},enableTabs:{type:"boolean",title:(0,f.tExpr)("Enable tabs"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",e.t(t.title,{ns:"lm-desktop-routes"}));else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n,{ns:"lm-desktop-routes"}))}e.model.setProps("enableTabs",t.enableTabs),"embed"===e.view.type?(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgContainer)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgContainer)",marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgLayout)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgLayout)",marginBottom:0})),await e.model.updateDocumentTitle()}}}});class sO extends sN{renderBackButtonWhenTabsDisabled(){var e,t,l;if((null==(t=this.context)||null==(e=t.view)?void 0:e.type)!=="embed")return null;let o=null==(l=this.context)?void 0:l.themeToken,n={...this.props.tabBarStyle,paddingBlock:(null==o?void 0:o.paddingXS)??8};return(0,m.jsx)("div",{style:n,children:(0,m.jsx)(sB,{renderSpacerWhenNoBack:!1})})}async handleDragEnd(e){var t,l;if(!(null==(t=e.active)?void 0:t.id)||!(null==(l=e.over)?void 0:l.id))throw Error("Invalid drag event");e.active.id!==e.over.id&&await this.flowEngine.moveModel(e.active.id,e.over.id)}render(){return(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&this.props.title&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.props.enableTabs?this.renderTabs():(0,m.jsxs)(m.Fragment,{children:[this.renderBackButtonWhenTabsDisabled(),this.renderFirstTab()]})]})}constructor(...e){super(...e),this.tabBarExtraContent={left:(0,m.jsx)(sB,{})},this.createPageTabModelOptions=()=>({use:"ChildPageTabModel"})}}let sB=e=>{let{renderSpacerWhenNoBack:t=!0}=e,l=(0,f.useFlowContext)(),o=l.themeToken,n=32,r=(null==o?void 0:o.paddingLG)??16,a=(0,i.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:o.paddingXS,marginLeft:o.paddingLG,marginRight:n-o.paddingXS}),[o.paddingLG,o.paddingXS]);return"embed"!==l.view.type?t?(0,m.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:r,height:1}}):null:(0,m.jsx)(b.Button,{"aria-label":"back-button",type:"text",icon:(0,m.jsx)(to.ArrowLeftOutlined,{}),style:a,onClick:l.view.close})};class sV extends f.FlowModel{}sV.registerFlow({key:"pageSettings",title:(0,f.tExpr)("Page settings"),steps:{general:{title:(0,f.tExpr)("General"),uiSchema:{title:{type:"string",title:(0,f.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},displayTitle:{type:"boolean",title:(0,f.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",t.title?e.t(t.title):null);else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n))}e.model.setProps("enableTabs",t.enableTabs),e.model.context.closable?(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgLayout,paddingInline:16,marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgContainer,paddingInline:16,marginBottom:0}))}}}});class sH extends sV{renderFirstTab(){var e;return(0,m.jsx)(f.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}function sq(e){let{ctx:t,options:l}=e,{data:o,loading:n}=(0,nB.useRequest)(async()=>{let e=await t.engine.loadOrCreateModel(l,{skipSave:!t.flowSettingsEnabled});return e.context.addDelegate(t),e},{refreshDeps:[t.model.uid]}),i=(null==t?void 0:t.isMobileLayout)?8:null==t?void 0:t.themeToken.marginBlock;return!n&&(null==o?void 0:o.uid)?(0,m.jsx)(f.FlowModelRenderer,{model:o,fallback:(0,m.jsx)(nV,{style:{margin:i}})}):(0,m.jsx)(nV,{style:{margin:i}})}function s$(e){return Array.isArray(e)?e.find(e=>!!e&&"object"==typeof e):e&&"object"==typeof e?e:void 0}function sz(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function sU(e){return sz(e)}let sK=new WeakMap;async function sG(e){let t=(sK.get(e)||Promise.resolve()).catch(()=>void 0).then(()=>e.refreshAccessible());sK.set(e,t);try{await t}finally{sK.get(e)===t&&sK.delete(e)}}class sW extends f.FlowModel{onInit(e){super.onInit(e),this.context.defineProperty("tabActive",{value:f.observable.ref(!0),info:{description:"Whether current tab is active (observable.ref).",detail:"observable.ref<boolean>"}})}getTabTitle(){var e,t;let l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Untitled",o=this.context.t(l,{ns:"client"});return this.context.t(null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.title,{ns:"lm-desktop-routes"})||o}getTabIcon(){var e,t;return null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.icon}renderChildren(){return null}renderHiddenInConfig(){return(0,m.jsxs)("span",{style:{display:"inline-block",opacity:.5},children:[(0,m.jsx)(et.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}render(){return(0,m.jsxs)("span",{style:{display:"inline-block"},children:[(0,m.jsx)(et.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}}sW.registerFlow({key:"pageTabSettings",title:(0,f.tExpr)("Tab settings"),steps:{tab:{title:(0,f.tExpr)("Edit tab"),preset:!0,uiSchema:{title:{title:(0,f.tExpr)("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},documentTitle:{type:"string",title:(0,f.tExpr)("Document title"),description:(0,f.tExpr)("Used as the browser tab title when this tab is active. Supports variables. Leave empty to use Tab name."),"x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:1,maxRows:6}},icon:{title:(0,f.tExpr)("Icon"),"x-decorator":"FormItem","x-component":"IconPicker"}},async handler(e,t){var l;let o="function"==typeof(null==e?void 0:e.t)?e.t.bind(e):e=>e;e.model.setProps("title",o(t.title,{ns:"lm-desktop-routes"})),e.model.setProps("icon",t.icon);let n=e.engine.getModel(e.model.parentId);await (null==n||null==(l=n.updateDocumentTitle)?void 0:l.call(n))}},linkageRules:{use:"tabLinkageRules"}}});class sJ extends sW{onInit(e){super.onInit(e),this.shouldHydratePersistedLinkageRules()&&this.hydratePersistedLinkageRules().catch(e=>{console.warn("[RootPageTabModel] Failed to hydrate tab linkage rules",e)})}hasExplicitLinkageRulesStep(){var e;let t=null==(e=this.stepParams)?void 0:e.pageTabSettings;return sz(t)&&Object.prototype.hasOwnProperty.call(t,"linkageRules")}shouldHydratePersistedLinkageRules(){var e,t;return!!this.context.flowSettingsEnabled||(null==(t=this.props.route)||null==(e=t.options)?void 0:e.hasPersistedPageTabFlowModel)===!0}async fetchPersistedAnchor(){var e;let t=await this.context.api.request({url:"flowModels:findOne",params:{uid:this.uid}}),l=null==t||null==(e=t.data)?void 0:e.data;return sz(l)?l:void 0}async performPersistedLinkageRulesHydrate(){if(this.hasExplicitLinkageRulesStep())return;let e=await this.fetchPersistedAnchor();if(this.hasExplicitLinkageRulesStep())return;let t=sz(null==e?void 0:e.stepParams)?e.stepParams:void 0,l=sz(null==t?void 0:t.pageTabSettings)?t.pageTabSettings:void 0,o=null==l?void 0:l.linkageRules;sU(o)&&(this.setStepParams("pageTabSettings","linkageRules",g.default.cloneDeep(o)),this.invalidateFlowCache("beforeRender",!0),await this.rerender())}hydratePersistedLinkageRules(){if(this.persistedLinkageRulesHydrated)return Promise.resolve();if(this.persistedLinkageRulesHydrating)return this.persistedLinkageRulesHydrating;let e=this.performPersistedLinkageRulesHydrate();return this.persistedLinkageRulesHydrating=e,e.then(()=>{this.persistedLinkageRulesHydrating===e&&(this.persistedLinkageRulesHydrated=!0,this.persistedLinkageRulesHydrating=void 0)}).catch(()=>{this.persistedLinkageRulesHydrating===e&&(this.persistedLinkageRulesHydrating=void 0)}),e}async openFlowSettings(e){return(null==e?void 0:e.flowKey)==="pageTabSettings"&&(null==e?void 0:e.stepKey)==="linkageRules"&&await this.hydratePersistedLinkageRules(),super.openFlowSettings(e)}renderChildren(){return(0,m.jsx)(sq,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}async saveStepParams(){let e=this.hasExplicitLinkageRulesStep(),t=e?g.default.cloneDeep(this.stepParams.pageTabSettings.linkageRules):void 0;await this.save(),e&&t&&await this.persistLinkageRulesToAnchor(t)}async save(){var e,t,l,o,n,i,r,a,s,d,u,c;let p=this.serialize(),m=null==(l=this.stepParams)||null==(t=l.pageTabSettings)||null==(e=t.tab)?void 0:e.documentTitle,h=this.props.route||{},f=null!=h.id,g=f&&h.schemaUid?null==(n=this.context.routeRepository)||null==(o=n.getRouteBySchemaUid)?void 0:o.call(n,h.schemaUid):void 0,v={...f?{schemaUid:h.schemaUid}:h,title:this.getTabTitle(""),icon:this.getTabIcon(),options:{...g?g.options:h.options,flowRegistry:p.flowRegistry,documentTitle:m}},y=await this.context.api.request(f?{method:"post",url:`desktopRoutes:update?filter[id]=${h.id}`,data:v}:{method:"post",url:"desktopRoutes:updateOrCreate",params:{filterKeys:["schemaUid"]},data:v}),_=s$(null==y||null==(i=y.data)?void 0:i.data);_&&this.setProps("route",{...this.props.route,..._,options:{...null==(r=this.props.route)?void 0:r.options,..._.options}});try{(null==(a=this.context.routeRepository)?void 0:a.refreshAccessible)?await sG(this.context.routeRepository):await (null==(s=(d=this.context).refreshDesktopRoutes)?void 0:s.call(d))}catch(e){null==(c=this.context.logger)||null==(u=c.warn)||u.call(c,{err:e},"[client-v2] Failed to refresh desktop routes after saving a page tab")}}buildAnchorPayload(e,t){let l="string"==typeof(null==e?void 0:e.uid)&&e.uid.length>0?g.default.cloneDeep(e):{uid:this.uid,use:"RouteModel"};delete l.subModels;let o=sz(l.stepParams)?l.stepParams:{},n=sz(o.pageTabSettings)?o.pageTabSettings:{};return{...l,stepParams:{...o,pageTabSettings:{...n,linkageRules:g.default.cloneDeep(t)}}}}async persistLinkageRulesToAnchor(e){let t=await this.fetchPersistedAnchor(),l=this.buildAnchorPayload(t,e);await this.context.api.request({method:"post",url:"flowModels:save",data:l});let o=Array.isArray(e.value)&&e.value.length>0;await this.syncPersistedPageTabFlowModelMarker(o),this.persistedLinkageRulesHydrated=!0}async syncPersistedPageTabFlowModelMarker(e){var t,l,o;let n=this.props.route;if((null==n?void 0:n.id)==null)throw Error("Cannot persist page tab FlowModel marker before the desktop route is saved.");if("function"!=typeof(null==(t=this.context.routeRepository)?void 0:t.updateRoute))throw Error("Route repository is unavailable while persisting the page tab FlowModel marker.");let i=n.schemaUid?null==(l=(o=this.context.routeRepository).getRouteBySchemaUid)?void 0:l.call(o,n.schemaUid):void 0,r={...(null==i?void 0:i.options)||n.options||{}};e?r.hasPersistedPageTabFlowModel=!0:delete r.hasPersistedPageTabFlowModel;let a=Object.keys(r).length>0?r:void 0;await this.context.routeRepository.updateRoute(n.id,{options:a},{refreshAfterMutation:!1}),this.setProps("route",{...n,options:a})}async destroy(){return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid),await this.context.api.request({method:"post",url:"desktopRoutes:destroy",params:{filter:{schemaUid:this.uid}},data:this.props.route}),!0}constructor(...e){super(...e),this.persistedLinkageRulesHydrated=!1}}class sX extends sW{renderChildren(){return(0,m.jsx)(sq,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class sQ extends f.FlowModel{render(){return(0,m.jsx)(sq,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class sZ extends sN{syncPageSettingsEnableTabsFromRoute(){var e,t;let l=null==(t=this.context)||null==(e=t.currentRoute)?void 0:e.enableTabs;"boolean"==typeof l&&this.setStepParams("pageSettings","general",{enableTabs:l})}syncEnableTabsToCurrentPage(e){var t;let l=null==(t=this.context)?void 0:t.currentRoute,o=this.props.routeId;l&&(null==o||null==l.id||String(l.id)===String(o))&&(l.enableTabs=e),this.setProps("enableTabs",e)}async ensurePersistedRouteId(e){var t,l,o,n;let i=null==e||null==(l=e.props)||null==(t=l.route)?void 0:t.id;return null!=i?i:("function"==typeof(null==e?void 0:e.save)&&await e.save(),null==e||null==(n=e.props)||null==(o=n.route)?void 0:o.id)}onMount(){super.onMount(),(0,f.reaction)(()=>this.context.pageActive.value,()=>{var e,t;if(null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.activationControlledByLayout){this.mounted=!0;return}this.context.pageActive.value&&this.mounted&&this.activateCurrentTab(!0),!1===this.context.pageActive.value&&this.deactivateCurrentTab(),this.mounted=!0})}async openFlowSettings(e){return(null==e?void 0:e.flowKey)==="pageSettings"&&(null==e?void 0:e.stepKey)==="general"&&this.syncPageSettingsEnableTabsFromRoute(),super.openFlowSettings(e)}async saveStepParams(){if(await super.saveStepParams(),this.stepParams.pageSettings){var e,t;let l=!!this.stepParams.pageSettings.general.enableTabs;await this.context.api.request({url:`desktopRoutes:update?filter[id]=${this.props.routeId}`,method:"post",data:{enableTabs:l}}),this.syncEnableTabsToCurrentPage(l),await (null==(e=(t=this.context).refreshDesktopRoutes)?void 0:e.call(t))}}async handleDragEnd(e){var t,l;let o=this.flowEngine.getModel(null==(t=e.active)?void 0:t.id),n=this.flowEngine.getModel(null==(l=e.over)?void 0:l.id);if(!o||!n||o.uid===n.uid)return;let[i,r]=await Promise.all([this.ensurePersistedRouteId(o),this.ensurePersistedRouteId(n)]);null!=i&&null!=r&&(await this.context.api.request({url:"desktopRoutes:move",method:"post",params:{sourceId:i,targetId:r,sortField:"sort"}}),this.flowEngine.moveModel(o.uid,n.uid,{persist:!1}))}constructor(...e){super(...e),this.mounted=!1}}sZ.registerFlow({key:"rootPageSettings",steps:{init:{async handler(e,t){if(e.model.hasSubModel("tabs"))return;let l=e.routeRepository.getRouteBySchemaUid(e.model.parentId);for(let t of(e.model.setProps("routeId",null==l?void 0:l.id),g.default.castArray(null==l?void 0:l.children).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0)))){var o,n;if(t.hideInMenu)continue;let l=e.engine.createModel({parentId:e.model.uid,uid:t.schemaUid,subKey:"tabs",subType:"array",use:"RootPageTabModel",sortIndex:t.sort,props:{route:t},flowRegistry:null==(o=t.options)?void 0:o.flowRegistry,stepParams:{pageTabSettings:{tab:{title:t.title,icon:t.icon,documentTitle:null==(n=t.options)?void 0:n.documentTitle}}}});e.model.addSubModel("tabs",l)}}}}});class s0 extends sV{renderFirstTab(){var e;return(0,m.jsx)(f.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,m.jsxs)(m.Fragment,{children:[this.props.displayTitle&&(0,m.jsx)(le.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class s1 extends aQ.S0{constructor(...e){super(...e),this.defaultProps={title:(0,f.tExpr)("Popup"),icon:"ExportOutlined"}}}s1.define({label:(0,f.tExpr)("Popup")}),s1.registerFlow(H);var s2=__webpack_require__(1882);class s5 extends s1{getAclActionName(){return"create"}constructor(...e){super(...e),this.defaultPopupTitle=(0,f.tExpr)("Add new"),this.defaultProps={type:"primary",title:(0,f.tExpr)("Add new"),icon:"PlusOutlined"}}}s5.scene=aQ.s5.collection,s5.define({label:(0,f.tExpr)("Add new"),sort:10});let s8=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel);return(null==a||null==(o=a.getResourceSettingsInitParams)?void 0:o.call(a))||(null==a||null==(n=a.getStepParams)?void 0:n.call(a,"resourceSettings","init"))||(null==e||null==(r=e.model)||null==(i=r.getStepParams)?void 0:i.call(r,"resourceSettings","init"))},s4=e=>{var t;return!!(null==(t=s8(e))?void 0:t.associationName)},s3=e=>{var t,l,o,n;let i=s8(e),r=(null==e||null==(t=e.blockModel)?void 0:t.association)||(null==e||null==(n=e.model)||null==(o=n.context)||null==(l=o.blockModel)?void 0:l.association),a=null==r?void 0:r.targetCollection;return{dataSourceKey:(null==a?void 0:a.dataSourceKey)||(null==i?void 0:i.dataSourceKey),collectionName:(null==a?void 0:a.name)||(null==r?void 0:r.target)||(null==i?void 0:i.collectionName)}},s6=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel),s=null==a?void 0:a.association,d=s8(e);return{collectionField:s,sourceId:(null==a||null==(n=a.resource)||null==(o=n.getSourceId)?void 0:o.call(n))??(null==d?void 0:d.sourceId),associatedRecords:(null==a||null==(r=a.resource)||null==(i=r.getData)?void 0:i.call(r))||[]}},s9=async(e,t,l)=>{var o;return"function"==typeof(null==e?void 0:e[t])?await e[t]({values:l}):await (null==e||null==(o=e.runAction)?void 0:o.call(e,t,{data:l}))},s7=async e=>{var t,l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(t=e.blockModel)?void 0:t.resource)||(null==e?void 0:e.resource),h=(null==e||null==(l=e.blockModel)?void 0:l.collection)||(null==e?void 0:e.collection);if(!s4(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for disassociation"));return}if(!e.record){null==(p=e.message)||null==(c=p.error)||c.call(p,e.t("No record selected for disassociation"));return}let f=null==h||null==(o=h.getFilterByTK)?void 0:o.call(h,e.record);await s9(m,"remove",[f]),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record disassociated successfully"))},de=async(e,t)=>{var l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(l=e.blockModel)?void 0:l.resource)||(null==e?void 0:e.resource),h=(null==e||null==(o=e.blockModel)?void 0:o.collection)||(null==e?void 0:e.collection);if(!s4(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for association"));return}if(!(null==t?void 0:t.length)){null==(p=e.message)||null==(c=p.warning)||c.call(p,e.t("Please select at least one record"));return}let f=t.map(e=>{var t;return(null==h||null==(t=h.getFilterByTK)?void 0:t.call(h,e))??e}).filter(e=>null!=e);await s9(m,"add",f),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record associated successfully"))};function dt(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 dl(e){let{model:t}=e,l=(0,f.useFlowViewContext)(),{Header:o,Footer:n,type:i}=l.view;return(0,m.jsxs)("div",{children:[(0,m.jsx)(o,{title:"dialog"===i?(0,m.jsx)("div",{style:{padding:`${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px 0`,marginBottom:-l.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:l.t("Select record")}):l.t("Select record")}),(0,m.jsx)(dt,{options:{parentId:l.view.inputArgs.parentId,subKey:"associate-selector-grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}}),(0,m.jsx)(n,{children:"dialog"===i?(0,m.jsx)("div",{style:{padding:`0 ${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px`},children:(0,m.jsx)(b.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})}):(0,m.jsx)(b.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})})]})}class dn extends aQ.S0{getAclActionName(){return"update"}async associateSelectedRows(){await de(this.context,this.selectedRows),this.selectedRows=[]}constructor(...e){super(...e),this.defaultPopupTitle=(0,f.tExpr)("Select record"),this.selectedRows=[],this.defaultProps={title:(0,f.tExpr)("Associate"),icon:"LinkOutlined"}}}dn.scene=aQ.s5.collection,dn.capabilityActionName="update",dn.define({label:(0,f.tExpr)("Associate"),sort:15,hide:e=>!s4(e)}),dn.registerFlow({key:"associateSettings",title:(0,f.tExpr)("Associate settings"),on:"click",steps:{openSelector:{async handler(e,t){var l,o,n;let i=s3(e),r=(null==(l=e.inputArgs)?void 0:l.isMobileLayout)?"embed":(null==(o=e.inputArgs)?void 0:o.mode)||(null==t?void 0:t.mode)||"drawer",a=(null==(n=e.inputArgs)?void 0:n.size)||(null==t?void 0:t.size)||"medium",s={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}};e.model.selectedRows=[],await e.viewer.open({type:r,width:s[r][a],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"select",dataSourceKey:i.dataSourceKey,collectionName:i.collectionName,...s6(e),rowSelectionProps:{type:"checkbox",renderCell:void 0,selectedRowKeys:void 0,onChange:(t,l)=>{e.model.selectedRows=l||[]}}},content:()=>(0,m.jsx)(dl,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===r?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}});class di extends aQ.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={title:(0,f.tExpr)("Delete"),icon:"DeleteOutlined"}}}di.scene=aQ.s5.collection,di.capabilityActionName="destroyMany",di.define({label:(0,f.tExpr)("Delete")}),di.registerFlow({key:"deleteSettings",title:(0,f.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,f.tExpr)("Delete record"),content:(0,f.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){var l;if(!(null==(l=e.blockModel)?void 0:l.resource))return void e.message.error(e.t("No resource selected for deletion"));let o=e.blockModel.resource;0===o.getSelectedRows().length?e.message.warning(e.t("Please select at least one record to delete")):(await o.destroy(e.blockModel.collection.getFilterByTK(o.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully")))}}}});class dr extends aQ.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,f.tExpr)("Delete"),icon:"DeleteOutlined"}}}dr.scene=aQ.s5.record,dr.define({label:(0,f.tExpr)("Delete"),sort:60}),dr.registerFlow({key:"deleteSettings",title:(0,f.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,f.tExpr)("Delete record"),content:(0,f.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){e.resource?e.record?(await e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))):e.message.error(e.t("No resource or record selected for deletion")):e.message.error(e.t("No resource selected for deletion"))}}}});class da extends aQ.S0{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,f.tExpr)("Disassociate"),icon:"DisconnectOutlined"}}}da.scene=aQ.s5.record,da.capabilityActionName="update",da.define({label:(0,f.tExpr)("Disassociate"),sort:65,hide:e=>!s4(e)}),da.registerFlow({key:"disassociateSettings",title:(0,f.tExpr)("Disassociate settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,f.tExpr)("Disassociate record"),content:(0,f.tExpr)("Are you sure you want to disassociate it?")}},disassociate:{async handler(e){await s7(e)}}}});class ds extends s1{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultPopupTitle=(0,f.tExpr)("Edit"),this.defaultProps={title:(0,f.tExpr)("Edit"),icon:"EditOutlined"}}}ds.scene=aQ.s5.record,ds.define({label:(0,f.tExpr)("Edit"),sort:20});var dd=__webpack_require__(8442);class du extends aQ.S0{getIgnoreFieldNames(){var e;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);let t=(null==(e=this.context.blockModel.collection)?void 0:e.getFields())||[],l=dp(this.props.filterableFieldNames||[],t.map(e=>e.name));return this.map.set(this.props.filterableFieldNames,l),l}render(){return this.context.isMobileLayout?(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(f.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,m.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,m.jsx)(dd.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),(0,m.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,m.jsx)(b.Popover,{open:this.props.open,content:(0,m.jsx)(dd.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),trigger:"click",placement:"bottomLeft",onOpenChange:e=>{!1===e&&this.setProps("open",void 0)},children:super.render()})}constructor(...e){super(...e),this.map=new WeakMap,this.defaultProps={type:"default",title:(0,f.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}}}}function dc(e){for(var t,l=arguments.length,o=Array(l>1?l-1:0),n=1;n<l;n++)o[n-1]=arguments[n];return((null==e||null==(t=e.getFields)?void 0:t.call(e))||[]).filter(e=>{if(!(null==e?void 0:e.interface)||(null==e?void 0:e.filterable)===!1)return!1;let t=(0,et.w6)(e.interface,...o);return!!(null==t?void 0:t.filterable)})}function dp(e,t){return null==t?void 0:t.filter(t=>!e.includes(t))}du.scene="collection",du.define({label:(0,f.tExpr)("Filter"),toggleable:!0,sort:5}),du.registerFlow({key:"filterSettings",title:(0,f.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,f.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t;let{model:l}=(0,f.useFlowSettingsContext)(),o=dc(l.context.blockModel.collection,l.context.dataSourceManager,null==(t=l.context.app)?void 0:t.dataSourceManager).map(e=>({key:e.name,title:e.title}));return(0,m.jsx)(b.Transfer,{...e,dataSource:o,targetKeys:e.value||[],onChange:t=>{var l;return null==(l=e.onChange)?void 0:l.call(e,t)},render:e=>e.title})},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,l,o,n,i;return{filterableFieldNames:dc(e.blockModel.collection,null==(l=e.model)||null==(t=l.context)?void 0:t.dataSourceManager,null==(i=e.model)||null==(n=i.context)||null==(o=n.app)?void 0:o.dataSourceManager).map(e=>e.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,f.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{let{model:t}=(0,f.useFlowSettingsContext)();return(0,m.jsx)(rO.I8,{value:e.value||{},FilterItem:e=>(0,m.jsx)(rO.Et,{...e,model:t,maxAssociationFieldDepth:2})})}}},defaultParams:e=>({defaultFilter:e.model.defaultProps.filterValue}),handler(e,t){e.model.setProps("defaultFilterValue",g.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",g.default.cloneDeep(t.defaultFilter))}}}}),du.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;let n=(0,I.transformFilter)(e.model.props.filterValue),i=!(0,I.isEmptyFilter)(n);l.setFilterActive(e.model.uid,i),i?(o.addFilterGroup(e.model.uid,n),o.setPage(1)):o.removeFilterGroup(e.model.uid),"manual"!==l.getDataLoadingMode()||i||l.hasActiveFilters()?o.refresh():(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1)}}}}),du.registerFlow({key:"resetSettings",title:(0,f.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;o.removeFilterGroup(e.model.uid),l.setFilterActive(e.model.uid,!1);let n=l.getDataLoadingMode(),i=e.model.props.defaultFilterValue,r=!(0,I.isEmptyFilter)((0,I.transformFilter)(i));"manual"!==n||r||l.hasActiveFilters()?(r&&(o.addFilterGroup(e.model.uid,(0,I.transformFilter)(i)),l.setFilterActive(e.model.uid,!0),o.setPage(1)),o.refresh()):(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1),e.model.setProps("filterValue",g.default.cloneDeep(i))}}}}),du.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});var dm=__webpack_require__(6193);function dh(e,t){var l;let o=(null==(l=e.inputArgs)?void 0:l.preview)||{},n=(null==o?void 0:o.version)??(null==t?void 0:t.version)??"v1";return{code:("string"==typeof(null==o?void 0:o.code)?o.code:void 0)??(null==t?void 0:t.code)??"",version:n}}class df extends aQ.S0{constructor(...e){super(...e),this.defaultProps={type:"default",title:(0,f.tExpr)("JS action"),icon:"JavaScriptOutlined"}}}df.define({label:(0,f.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}}),df.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:`
803
803
  ctx.message.info('Hello JS action.');
804
804
  `}),async handler(e,t){let{code:l,version:o}=dh(e,t);await e.runjs(l,void 0,{version:o})}}}});class dg extends aQ.S0{constructor(...e){super(...e),this.defaultProps={title:(0,f.tExpr)("JS action"),icon:"JavaScriptOutlined"}}}dg.scene=aQ.s5.collection,dg.define({label:(0,f.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSCollectionActionModel"}}),dg.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:`
805
805
  const rows = ctx.resource?.getSelectedRows?.() || [];
@@ -841,7 +841,7 @@ if (!ctx.record) {
841
841
  flex-shrink: 0;
842
842
  flex: 1;
843
843
  }
844
- `},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},"x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}},openInNewWindow:{type:"boolean","x-content":t("Open in new window"),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}}}}},handler(e,t){e.model.setProps({url:t.url,searchParams:t.searchParams,openInNewWindow:t.openInNewWindow})}}}});class d$ extends aQ.S0{setTitle(e){this.setProps({title:e})}setExpandFlag(e){this.expandFlag=e}getTitle(){return this.expandFlag?this.context.t("Collapse all"):this.context.t("Expand all")}getIcon(){return this.expandFlag?"NodeCollapseOutlined":"NodeExpandOutlined"}constructor(...e){super(...e),this.defaultProps={type:"default",icon:"DownOutlined"}}}function dz(e){let{idKey:t="id",childrenKey:l="children"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=[];function n(e){if(Array.isArray(e))for(let i of e){let e=i[l];o.push(i[t]),Array.isArray(e)&&e.length>0&&n(e)}}return n(e),o}d$.scene=aQ.s5.collection;let dU=e=>dz(e);d$.registerFlow({key:"expandCollapseSettingsInit",sort:200,steps:{init:{handler(e,t){e.blockModel.props.defaultExpandAllRows?e.model.setExpandFlag(!0):e.model.setExpandFlag(!1)}}}}),d$.registerFlow({key:"expandCollapseSettings",on:"click",steps:{expandCollapse:{async handler(e,t){var l;if(!(null==(l=e.blockModel)?void 0:l.resource))return;let o=e.blockModel.resource,{treeTable:n}=e.blockModel.props;if(n)if(e.model.expandFlag)e.blockModel.setProps({expandedRowKeys:[]}),e.model.setExpandFlag(!1);else{let t=dU(o.getData());e.blockModel.setProps({expandedRowKeys:t}),e.model.setExpandFlag(!0)}}}}}),d$.define({label:(0,f.escapeT)("Expand/Collapse"),hide(e){var t;return(null==(t=e.collection)?void 0:t.template)!=="tree"||!1===e.model.props.treeTable}});class dK extends s1{getAclActionName(){return"create"}onInit(e){super.onInit(e),this.context.defineProperty("association",{get:()=>this.context.blockModel.dataSource.getAssociation(`${this.context.blockModel.collection.name}.children`)})}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,f.tExpr)("Add child"),icon:"PlusOutlined"}}}dK.capabilityActionName=null,dK.registerFlow({key:"addChildSettingsInit",steps:{addChildInit:{async handler(e,t){e.model.onClick=t=>{e.model.dispatchEvent("click",{event:t,...e.inputArgs,sourceId:e.record.id,filterByTk:null},{debounce:!0})}}}}}),dK.define({label:(0,f.tExpr)("Add child"),hide(e){var t;return(null==(t=e.collection)?void 0:t.template)!=="tree"||!1===e.blockModel.props.treeTable}}),aX.registerActionModels({AddChildActionModel:dK});var dG=__webpack_require__(3197);class dW extends dG.F4{useHooksBeforeRender(){let[e]=b.Form.useForm();this.context.defineProperty("form",{get:()=>e})}onInit(e){super.onInit(e);let t=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>{var e,t;return null==(e=(t=this).getCurrentRecord)?void 0:e.call(t)},cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>{var e,t;return null==(e=(t=this).getCurrentRecord)?void 0:e.call(t)}),meta:t}),this.context.defineProperty("filterManager",{once:!0,get:()=>new ss(this,null==e?void 0:e.filterManager)}),this.isManualRefresh=!0}createResource(e,t){let l=this.context.createResource(f.SingleRecordResource);return l.isNewRecord=!0,l}renderComponent(){var e;let{colon:t,labelAlign:l,labelWidth:o,labelWrap:n,layout:i}=this.props;return(0,m.jsx)(dG.s2,{model:this,layoutProps:{colon:t,labelAlign:l,labelWidth:o,labelWrap:n,layout:i},children:(0,m.jsx)(f.FlowModelRenderer,{model:null==(e=this.subModels)?void 0:e.grid,showFlowSettings:!1})})}setInitialAssignedValues(e){var t;let l=null==(t=this.subModels)?void 0:t.grid;Object.entries(e||{}).forEach(e=>{let[t,o]=e;l.addOrEnsureItem(t,o)})}getAssignedValues(){return this.subModels.grid.getAssignedValues()||{}}}dW.define({label:(0,f.tExpr)("Field assignments"),hide:!0,createModelOptions:{use:"AssignFormModel",subModels:{grid:{use:"AssignFormGridModel"}}}});class dJ extends sb{serialize(){return{...super.serialize(),variableContractType:{type:"formGrid",use:this.use}}}renderAddSubModelButton(){return(0,m.jsx)(f.AddSubModelButton,{subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("FormItemModel"),this.context.getModelClassName("FormAssociationFieldGroupModel"),this.context.getModelClassName("FormCustomItemModel"),this.context.getModelClassName("FormJSFieldItemModel")].filter(Boolean),model:this,keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Fields")})})}render(){var e,t;let l=null==(e=this.props)?void 0:e.height,o=null==(t=this.props)?void 0:t.heightModel,n=this.context.themeToken,i=super.render();return"defaultHeight"===o?i:(0,m.jsx)("div",{style:{height:l,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`,paddingTop:5},children:i})}constructor(...e){super(...e),this.itemFallback=(0,m.jsx)(b.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}}),this.itemSettingsMenuLevel=2,this.itemFlowSettings={showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}},this.dragOverlayConfig={columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}}}}dJ.registerFlow({key:"formFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});let dX=2;class dQ extends dJ{renderAddSubModelButton(){var e,t;let l=null==(e=this.context)?void 0:e.collection,o=(null==l||null==(t=l.getFields)?void 0:t.call(l))||[],n=this.context.prefixFieldPath?this.context.prefixFieldPath.split(".").filter(Boolean).length:0,i="function"==typeof(null==l?void 0:l.getPrimaryKey)?l.getPrimaryKey():void 0,r=null==l?void 0:l.filterTargetKey,a=e=>!!e&&!!(i&&e===i||"string"==typeof r&&e===r||Array.isArray(r)&&r.includes(e)),s=o.filter(e=>!a(null==e?void 0:e.name)).filter(e=>{var t;return n<dX||!((null==e||null==(t=e.isAssociationField)?void 0:t.call(e))||(null==e?void 0:e.target)||(null==e?void 0:e.targetCollection))}).map(e=>{let t=e.name,o=e.title||e.name,n=f.EditableItemModel.getDefaultBindingByField(this.context,e);if(!n)return;let i=n.modelName;return{key:t,label:o,toggleable:e=>{let l=e.getStepParams("fieldSettings","init")||{};return(null==l?void 0:l.fieldPath)===t},useModel:"AssignFormItemModel",createModelOptions:()=>({use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==l?void 0:l.dataSourceKey,collectionName:null==l?void 0:l.name,fieldPath:t}}},subModels:{field:{use:i,stepParams:{fieldSettings:{init:{dataSourceKey:null==l?void 0:l.dataSourceKey,collectionName:null==l?void 0:l.name,fieldPath:t}}}}}})}}).filter(Boolean);return(0,m.jsx)(f.AddSubModelButton,{subModelKey:"items",model:this,items:s,keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Fields")})})}addOrEnsureItem(e,t){var l,o,n;let i=null==(l=this.context)?void 0:l.collection,r=((null==(o=this.subModels)?void 0:o.items)||[]).find(t=>{try{let l="function"==typeof(null==t?void 0:t.getStepParams)?t.getStepParams("fieldSettings","init"):null;return(null==l?void 0:l.fieldPath)===e}catch(e){return!1}});if(r){"function"==typeof(null==r?void 0:r.setStepParams)&&r.setStepParams("fieldSettings","assignValue",{value:t}),r.assignValue=t;return}let a=((null==i||null==(n=i.getFields)?void 0:n.call(i))||[]).find(t=>t.name===e),s=f.EditableItemModel.getDefaultBindingByField(this.context,a);if(!s)return;let d=s.modelName;this.addSubModel("items",{use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==i?void 0:i.dataSourceKey,collectionName:null==i?void 0:i.name,fieldPath:e},assignValue:{value:t}}},subModels:{field:{use:d,stepParams:{fieldSettings:{init:{dataSourceKey:null==i?void 0:i.dataSourceKey,collectionName:null==i?void 0:i.name,fieldPath:e}}}}}}).assignValue=t}getAssignedValues(){var e;let t=(null==(e=this.subModels)?void 0:e.items)||[],l={};for(let e of t){let t="function"==typeof e.getAssignedEntry?e.getAssignedEntry():null;t&&Array.isArray(t)&&(l[t[0]]=t[1])}return l}}dQ.define({label:(0,f.tExpr)("Assign grid")});var dZ=__webpack_require__(9829);function d0(e){return"string"==typeof e?e:"function"==typeof e&&e.name?e.name:void 0}function d1(e){var t,l;let o=null==e||null==(l=e.stepParams)||null==(t=l.fieldBinding)?void 0:t.use;return"string"==typeof o?o:void 0}async function d2(e){var t,l,o;let{parentModel:n,targetUse:i,defaultProps:r,pattern:a,fieldSettingsInit:s}=e,d=n.subModels.field,u=null==d?void 0:d.uid,c=null==d||null==(l=d.serialize)||null==(t=l.call(d))?void 0:t.subModels;for(let e in c)!1===c[e].delegateToParent&&delete c[e];let p=d0(d1(d)||(null==d?void 0:d.use))===i&&(null==d?void 0:d.stepParams)||{},m=s??(null==(o=n.getFieldSettingsInitParams)?void 0:o.call(n)),{fieldBinding:h,...f}=p,g={...f,fieldSettings:{...f.fieldSettings||{},init:m}},v=n.flowEngine;u&&(null==d||d.invalidateFlowCache("beforeRender",!0),v.removeModelWithSubModels(u));let y=n.setSubModel("field",{uid:u,use:i,props:{...r||{},...a?{pattern:a}:{}},stepParams:g,subModels:c});await y.dispatchEvent("beforeRender",void 0,{useCache:!1}),await n.save()}var d5=__webpack_require__(9133);function d8(e,t,l){let o=(0,g.castArray)(l).filter(e=>"string"==typeof e),n=t.split(".");if(null==o?void 0:o.length){let t=[],l=0,i=0;for(;l<n.length;){let e=n[l];if(t.push(e),i<o.length){let[l,n]=o[i].split(":");l===e&&(t.push(Number(n)),i++)}l++}return(0,g.get)(e,t)}return(0,g.get)(e,n)}function d4(e){let{record:t,currentObject:l,fieldPath:o,prefixFieldPath:n,idx:i}=e,r=d8(t,o,i);if(void 0!==r||null==l)return r;if(n&&o===n)return l;let a=n&&o.startsWith(`${n}.`)?o.slice(n.length+1):o;return a?(0,g.get)(l,a):l}function d3(e,t){return!(0,d5.E4)(e)||Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.rows)?t.rows:null==t?[]:[t]}class d6 extends f.DisplayItemModel{static defineChildren(e){let t=e.collection;return t.getFields().map(l=>{let o=this.getDefaultBindingByField(e,l,{fallbackToTargetTitleField:!0});if(!o)return null;let n=o.modelName,i=e.prefixFieldPath?`${e.prefixFieldPath}.${l.name}`:l.name;return{key:i,label:l.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===i},useModel:"DetailsItemModel",createModelOptions:()=>({use:"DetailsItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:i}}},subModels:{field:{use:n,props:"function"==typeof o.defaultProps?o.defaultProps(e,l):o.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=this.context.item,i=this.context.getPropertyOptions("item"),r=this.context.prefixFieldPath,a=null!=t?(()=>{let r=e.createFork({},`${t}`);r.context.defineProperty("fieldIndex",{get:()=>t}),r.context.defineProperty("record",{get:()=>l,cache:!1}),r.context.defineProperty("currentObject",{get:()=>o,cache:!1});let{value:a,...s}=i||{};return r.context.defineProperty("item",{...s,get:()=>n,cache:!1}),this.context.pattern&&r.context.defineProperty("pattern",{get:()=>this.context.pattern}),r})():e,s=this.context.pattern?{...this.context.blockModel.props,...this.props,pattern:this.context.pattern,disabled:"readPretty"===this.context.pattern}:{...this.context.blockModel.props,...this.props},d=d3(this.collectionField,d4({record:l,currentObject:o,fieldPath:this.fieldPath,prefixFieldPath:r,idx:t}));return(0,m.jsx)(f.FormItem,{...s,value:d,children:(0,m.jsx)(f.FieldModelRenderer,{model:a})})}}d6.define({label:(0,f.tExpr)("Display fields"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),sort:100}),d6.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: ")+n}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){var l;let o={ns:"lm-flow-engine",compareWith:null==(l=e.collectionField)?void 0:l.title};e.model.setProps({label:e.t(t.title,o)})}},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}}}),d6.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});var d9=__webpack_require__(1961);function d7(e){if(!e)return!1;let t=null==e?void 0:e.type;return"belongsToMany"===t||"hasMany"===t||"belongsToArray"===t}function ue(e,t){var l;let o=!!(null==e||null==(l=e.isAssociationField)?void 0:l.call(e)),n=d7(e);return o&&!n&&Array.isArray(t)?t.length?t[0]:void 0:t}function ut(e,t){if(!(null==t?void 0:t.length))return e;let[l,o]=String(t[t.length-1]).split(":"),n=Number(o);if(!l||!Number.isFinite(n))return e;let i=0;for(let e of t){let[t]=String(e).split(":");t===l&&(i+=1)}let r=-1,a=0;for(let t=0;t<e.length;t++)if(String(e[t])===l&&(a+=1)===i){r=t;break}if(-1===r){for(let t=e.length-1;t>=0;t--)if(String(e[t])===l){r=t;break}}return -1===r?e:[n,...e.slice(r+1)]}let ul=["o2o","oho","obo","o2m","attachment","expression","point","lineString","circle","polygon","sequence","formula"],uo=2;class un extends f.EditableItemModel{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>=uo&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return;let i=this.getDefaultBindingByField(e,o);if(!i)return;let r=i.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["FormJSFieldItemModel","FormItemModel/FormJSFieldItemModel"],toggleable:e=>(0,d5.pX)(e).some(e=>e===a),useModel:"FormItemModel",createModelOptions:()=>({use:"FormItemModel",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.emitter.on("onSubModelAdded",e=>{if(this.collectionField){let t=this.collectionField.getComponentProps();e.setProps(t),this.setProps({...g.default.pick(t,"rules")||{}})}})}renderItem(){var e,t;let l=this.subModels.field,o=this.context.fieldIndex,n=this.context.fieldKey,i=(null==(e=this.parent)?void 0:e.context.fieldPathArray)||[],r=!!this.context.flowSettingsEnabled&&!!this.props.hidden&&!this.hidden&&!this.forbidden,a=null!=o||r?(()=>{let e=r?`${this.uid}:config-visible`:`${n}`,t=l.createFork({},e);if(null!=o){t.context.defineProperty("fieldIndex",{get:()=>o}),t.context.defineProperty("fieldKey",{get:()=>n}),this.context.currentObject&&t.context.defineProperty("currentObject",{get:()=>this.context.currentObject});let e=this.context.getPropertyOptions("item");if(this.context.item){let{value:l,...o}=e||{};t.context.defineProperty("item",{...o,get:()=>this.context.item,cache:!1})}this.context.pattern&&t.context.defineProperty("pattern",{get:()=>this.context.pattern})}return t.context.defineProperty("fieldPathArray",{get:()=>this.context.fieldPathArray,cache:!1}),r&&t.setProps({hidden:!1}),t})():l,{initialValue:s,hidden:d,...u}=this.context.pattern?{...this.props,pattern:this.context.pattern}:this.props,c=r?u:{hidden:d,...u},p=ut(this.props.name,o);this.context.defineProperty("fieldPathArray",{get:()=>[...i,...g.default.castArray(p)],cache:!1});let h=(null==(t=this.context.item)?void 0:t.value)||this.context.record,v=(0,m.jsx)(f.FormItem,{...c,name:p,validateFirst:!0,disabled:this.props.disabled||!g.default.isEmpty(h)&&!h.__is_new__&&this.props.aclDisabled||!g.default.isEmpty(h)&&h.__is_new__&&this.props.aclCreateDisabled,children:(0,m.jsx)(f.FieldModelRenderer,{model:a,name:p})});return r?(0,m.jsx)(b.Tooltip,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,m.jsx)("div",{style:{opacity:.3},children:v})}):v}}un.define({label:(0,f.tExpr)("Display fields"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),sort:100}),un.registerFlow({key:"editItemSettings",sort:300,title:(0,f.tExpr)("Form 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=>({label:{"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: ")+n}}}}),defaultParams:e=>{var t;return{label:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){var l;let o={ns:"lm-flow-engine",compareWith:null==(l=e.collectionField)?void 0:l.title};e.model.setProps({label:e.t(t.label,o)})}},aclCheck:{use:"aclCheck",async handler(e,t){var l,o,n,i,r,a,s,d,u,c,p,m,h;if(!e.collectionField||!e.blockModel)return;let f=e.blockModel.context.actionName,g=await e.aclCheck({dataSourceKey:null==(l=e.dataSource)?void 0:l.key,resourceName:null==(o=e.collectionField)?void 0:o.collectionName,fields:[null==(n=e.collectionField)?void 0:n.name],actionName:f});if("update"===f){let t=await e.aclCheck({dataSourceKey:null==(i=e.dataSource)?void 0:i.key,resourceName:null==(r=e.collectionField)?void 0:r.collectionName,fields:[e.collectionField.name],actionName:"view"});e.prefixFieldPath&&e.item&&(await e.aclCheck({dataSourceKey:null==(s=e.dataSource)?void 0:s.key,resourceName:null==(d=e.collectionField)?void 0:d.collectionName,fields:[e.collectionField.name],actionName:"create"})||e.model.setProps({aclCreateDisabled:!0}));let l=(null==(a=e.item)?void 0:a.__is_new__)??!1;t||l||(e.model.hidden=!0,e.model.forbidden={actionName:"view"},e.exitAll()),g||e.model.setProps({aclDisabled:!0})}else if("create"===f){let t=await e.aclCheck({dataSourceKey:null==(u=e.dataSource)?void 0:u.key,resourceName:null==(c=e.collectionField)?void 0:c.collectionName,actionName:"update"}),l=await e.aclCheck({dataSourceKey:null==(p=e.dataSource)?void 0:p.key,resourceName:null==(m=e.collectionField)?void 0:m.collectionName,fields:[e.collectionField.name],actionName:"update"}),o=(null==(h=e.item)?void 0:h.__is_stored__)??!1;g||o||(e.model.hidden=!0,e.model.forbidden={actionName:f},e.exitAll()),t&&l||e.model.setProps({aclDisabled:!0})}}},init:{async handler(e){let t=e.model.fieldPath,l=t.includes(".")?t.split("."):t;e.model.setProps({name:l})}},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","x-component-props":{autoSize:!0}}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},initialValue:{title:(0,f.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,l,o,n;if(e.model.parent.parent instanceof d9.EditFormModel||(null==(l=e.model.subModels)||null==(t=l.field)?void 0:t.updateAssociation))return;let i=null==(o=e.model.collectionField)?void 0:o.interface;if(null==ul||null==(n=ul.includes)||!n.call(ul,i))return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem"}}},defaultParams:e=>{let t=e.model.collectionField;if("nanoid"===t.interface&&!1!==t.options.autoFill){let{size:e,customAlphabet:l}=t.options||{size:21};return{defaultValue:(0,dZ.customAlphabet)(l,e)()}}return{defaultValue:t.defaultValue}},handler(e,t){var l,o;let n=null==(l=e.model.collectionField)?void 0:l.interface;if(null==ul||null==(o=ul.includes)?void 0:o.call(ul,n))return;let i=ue(e.model.collectionField,t.defaultValue);e.model.setProps({initialValue:i})}},validation:{title:(0,f.tExpr)("Validation"),use:"validation"},required:{title:(0,f.tExpr)("Required"),use:"required"},model:{use:"fieldComponent",title:(0,f.tExpr)("Field component")},pattern:{use:"pattern"},titleField:{use:"titleField",hideInSettings:e=>!(e.collectionField&&e.collectionField.isAssociationField()&&e.collectionField.isAssociationField()&&"readPretty"===e.model.getProps().pattern),defaultParams:e=>{var t,l,o;return{titleField:e.model.props.titleField||(null==(o=e.model)||null==(l=o.context)||null==(t=l.collectionField)?void 0:t.targetCollectionTitleFieldName)}},beforeParamsSave:async(e,t,l)=>{if(!(e.collectionField.isAssociationField()&&"readPretty"===e.model.getProps().pattern))return null;let o=t.titleField||t.label;if(o!==l.titleField){let t=e.collectionField.targetCollection,l=t.getField(o),n=d6.getDefaultBindingByField(e,l);if(n.modelName!==e.model.subModels.field.use){let l=e.model.subModels.field.uid;await e.engine.destroyModel(l);let i=e.model.setSubModel("field",{use:n.modelName,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:t.name,fieldPath:o}}}});await i.save()}e.model.setProps(e.collectionField.targetCollection.getField(o).getComponentProps())}},async handler(e,t){"readPretty"===e.model.props.pattern?e.model.setProps({titleField:null==t?void 0:t.label}):e.model.setProps({titleField:t.titleField})}}}}),un.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});var ui=__webpack_require__(7309),ur=__webpack_require__(9624),ua=__webpack_require__(4e3);function us(e,t){var l,o,n;let i=null==e||null==(l=e.props)?void 0:l.fieldNames,r=null==e||null==(o=e.props)?void 0:o.titleField,a=null==e||null==(n=e.getStepParams)?void 0:n.call(e,"selectSettings","fieldNames");return{stepParams:{fieldSettings:{init:t},...a?{selectSettings:{fieldNames:a}}:{}},props:{...void 0!==i?{fieldNames:i}:{},...void 0!==r?{titleField:r}:{}}}}function ud(e){try{return JSON.stringify(e)??""}catch{return String(e)}}function uu(e){var t,l,o;let n=null==e||null==(t=e.props)?void 0:t.fieldNames,i=null==e||null==(l=e.props)?void 0:l.titleField,r=null==e||null==(o=e.getStepParams)?void 0:o.call(e,"selectSettings","fieldNames");return[(null==e?void 0:e.uid)||"",ud(n),ud(i),ud(r)].join("|")}function uc(e){if(!e||"object"!=typeof e||!("target"in e))return e;let t=e.target;return t&&"value"in t?t.value:e}class up extends un{onInit(e){var t,l,o,n,i,r,a;let s=null==(t=this.getStepParams("fieldSettings","assignValue"))?void 0:t.value;void 0!==s&&(this.assignValue=s),this.context.defineProperty("collectionField",{get:()=>{var e,t;let l=this.getStepParams("fieldSettings","init")||{},o=`${null==l?void 0:l.dataSourceKey}.${null==l?void 0:l.collectionName}.${null==l?void 0:l.fieldPath}`,n=null==(e=this.context)?void 0:e.dataSourceManager;return null==n||null==(t=n.getCollectionField)?void 0:t.call(n,o)}});let d=this.context,u=null==d?void 0:d.collection,c=this.fieldInit;if(!(null==(l=this.subModels)?void 0:l.field)&&(null==u?void 0:u.getFields)){let e=(u.getFields()||[]).find(e=>(null==e?void 0:e.name)===(null==c?void 0:c.fieldPath));null==u||null==(n=u.getField)||n.call(u,null==c?void 0:c.fieldPath);let t=f.EditableItemModel.getDefaultBindingByField(d,e);if(!t)return;let l=t.modelName;null==d||null==(r=d.engine)||null==(i=r.createModel)||i.call(r,{use:l,stepParams:{fieldSettings:{init:c}},parentId:this.uid,subKey:"field"})}let p=null==(o=this.context)?void 0:o.collection,m=this.fieldPath;if(m){let e=null==p||null==(a=p.getField)?void 0:a.call(p,m),t=(null==e?void 0:e.title)||m,l=m.includes(".")?m.split("."):[m];this.setProps({label:t,name:l})}}get fieldInit(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){var e;return null==(e=this.fieldInit)?void 0:e.fieldPath}getAssignedEntry(){let e=this.fieldPath;return e?[e,this.assignValue]:null}render(){var e,t;let l=this.context,o=l.collection,n=this.fieldInit,r=(null==(e=this.props)?void 0:e.name)||(this.fieldPath?[this.fieldPath]:void 0),a=this.fieldPath,s=null==(t=this.subModels)?void 0:t.field,d=uu(s),u=()=>{var e,t,d,u,c;let[p,h]=i.default.useState(null);i.default.useEffect(()=>{var e,t,i,r,d,u,c,p,m,g,v,y,_,b,x,M,w,S,k,F,C;if(!a)return;let A=((null==o||null==(e=o.getFields)?void 0:e.call(o))||[]).find(e=>(null==e?void 0:e.name)===a);o.getField(a);let P=f.EditableItemModel.getDefaultBindingByField(l,A);if(!P)return;let T=P.modelName,j=us(s,n),I=null==l||null==(i=l.engine)||null==(t=i.createModel)?void 0:t.call(i,{use:"VariableFieldFormModel",subModels:{fields:[{use:T,...j}]}});if(!I)return;null==(d=I.context)||null==(r=d.defineProperty)||r.call(d,"collection",{value:o});let L=null==l?void 0:l.dataSource;L&&(null==(c=I.context)||null==(u=c.defineProperty)||u.call(c,"dataSource",{value:L}));let R=null==o||null==(p=o.getField)?void 0:p.call(o,null==n?void 0:n.fieldPath);R&&(null==(g=I.context)||null==(m=g.defineProperty)||m.call(g,"collectionField",{value:R}));let D=null==l?void 0:l.blockModel;D&&(null==(y=I.context)||null==(v=y.defineProperty)||v.call(y,"blockModel",{value:D}));let E=l.form;E&&(null==(F=I.context)||null==(k=F.defineProperty)||k.call(F,"form",{value:E})),I.context&&Object.defineProperty(I.context,"resource",{configurable:!0,enumerable:!0,get:()=>null==D?void 0:D.resource});let Y=null==I||null==(b=I.subModels)||null==(_=b.fields)?void 0:_[0],N=null==o||null==(x=o.getField)?void 0:x.call(o,null==n?void 0:n.fieldPath),O=null==N?void 0:N.type,B=null==N?void 0:N.interface,V="belongsToMany"===O||"hasMany"===O||"belongsToArray"===O||"m2m"===B||"o2m"===B||"mbm"===B;if(null==Y||null==(M=Y.setProps)||M.call(Y,{disabled:!1,readPretty:!1,updateAssociation:!1,multiple:V}),null==Y||null==(w=Y.dispatchEvent)||w.call(Y,"beforeRender",void 0,{sequential:!0,useCache:!0}),(0,ui.NI)(Y,N),!(null==Y||null==(S=Y.props)?void 0:S.fieldNames)&&(null==N?void 0:N.targetCollection)){let e=N.targetCollection,t=(null==N?void 0:N.targetKey)||(null==e?void 0:e.filterTargetKey)||"id";null==Y||null==(C=Y.setProps)||C.call(Y,{fieldNames:{label:null==e?void 0:e.titleField,value:t}})}return h(I),()=>{var e,t,l,o;null==I||null==(l=I.subModels)||null==(t=l.fields)||null==(e=t.forEach)||e.call(t,e=>{var t;return null==e||null==(t=e.remove)?void 0:t.call(e)}),null==I||null==(o=I.remove)||o.call(I)}},[]);let g=e=>(i.default.useEffect(()=>{var t,l,o;if(!p)return;null==(t=p.setProps)||t.call(p,{...e});let n=null==p||null==(o=p.subModels)||null==(l=o.fields)?void 0:l[0];if(n){var i,r=this;null==(i=n.setProps)||i.call(n,{value:null==e?void 0:e.value,onChange:function(){for(var t,l,o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];let s=uc(i&&i.length?i[0]:void 0);null==(t=n.setProps)||t.call(n,{value:s}),r.assignValue=s,null==e||null==(l=e.onChange)||l.call(e,s)}})}},[e]),p?(0,m.jsx)("div",{style:{width:"100%"},children:(0,m.jsx)(f.FlowModelRenderer,{model:p,showFlowSettings:!1})}):null),v=()=>{var e,t;return(0,m.jsx)(b.Input,{placeholder:`<${(null==(e=(t=this.context).t)?void 0:e.call(t,"Null"))??"Null"}>`,readOnly:!0,style:{width:"100%"}})},y=e=>(0,m.jsx)(ur.h,{t:this.context.t,value:null==e?void 0:e.value,onChange:null==e?void 0:e.onChange,containerStyle:{width:"100%"}}),_=async()=>{var e;let t=null==(e=this.context)?void 0:e.getPropertyMetaTree;return"function"==typeof t?await t():[]},x=null==o||null==(e=o.getField)?void 0:e.call(o,this.fieldPath),M=(0,ua.kB)(x),w=(0,ua.Ot)(x,null==(t=this.fieldPath)?void 0:t.split(".").slice(-1)[0]),S=w?(0,ua.cd)(x,M):ua.tS,k=(null==(d=this.props)?void 0:d.label)??this.fieldPath??"",F=null==o||null==(u=o.getField)?void 0:u.call(o,this.fieldPath);return k=(null==(c=this.props)?void 0:c.label)??(null==F?void 0:F.title)??k,(0,m.jsx)(f.FormItem,{...this.props,label:k,name:r,initialValue:this.assignValue,valuePropName:"__assign_value__",trigger:"__assign_trigger__",validateTrigger:"__assign_trigger__",children:i.default.createElement(e=>{let t=null==e?void 0:e.__assign_value__,l=void 0===t?this.assignValue:t;return(0,m.jsx)(ua.Wm,{value:l,onChange:t=>{var l;this.assignValue=t,null==e||null==(l=e.__assign_trigger__)||l.call(e,t)},baseMetaTree:_,constantComponent:g,nullComponent:v,runJSComponent:y,isDateLikeField:w,dateComponentProps:S,clearValue:""})})})};return(0,m.jsx)(u,{},d)}constructor(e){super(e),this.assignValue=void 0,(0,h.define)(this,{assignValue:h.observable})}}up.define({label:(0,f.tExpr)("Assign field")}),up.registerFlow({key:"editItemSettings",sort:300,title:(0,f.tExpr)("Form 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=>({label:{"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: ")+n}}}}),defaultParams:e=>({label:e.model.collectionField.title}),handler(e,t){var l;t.label&&t.label===(null==(l=e.model.collectionField)?void 0:l.title)?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{async handler(e){let t=e.model.collectionField;t&&e.model.setProps(t.getComponentProps());let l=e.model.fieldPath,o=l.includes(".")?l.split("."):l;e.model.setProps({name:o})}},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"})})}},validation:{title:(0,f.tExpr)("Validation"),use:"validation"},required:{title:(0,f.tExpr)("Required"),use:"required"}}});class um extends aZ{}um.itemModelName="DetailsItemModel",um.define({label:'{{t("Display association fields")}}'});let uh=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},uf=e=>{let{heightMode:t,containerRef:l,actionsRef:o,paginationRef:n,deps:r=[]}=e,[a,s]=(0,i.useState)(),d=(0,i.useCallback)(()=>{if("specifyValue"!==t&&"fullHeight"!==t)return void s(e=>void 0===e?e:void 0);let e=l.current;if(!e)return;let i=e.getBoundingClientRect().height;if(!i)return;let r=Math.max(0,Math.floor(i-uh(o.current)-uh(n.current)));s(e=>e===r?e:r)},[t,l,o,n]);return(0,i.useLayoutEffect)(()=>{d()},[d,...r]),(0,i.useEffect)(()=>{if(!l.current||"u"<typeof ResizeObserver)return;let e=l.current,t=o.current,i=n.current,r=new ResizeObserver(()=>d());return r.observe(e),t&&r.observe(t),i&&r.observe(i),()=>r.disconnect()},[d,l,o,n,...r]),a};class ug extends sP.t{createResource(e,t){var l,o;if((null==(l=this.association)?void 0:l.type)==="hasOne"||(null==(o=this.association)?void 0:o.type)==="belongsTo"||Object.keys(t).includes("filterByTk")){let e=this.context.createResource(f.SingleRecordResource);return e.isNewRecord=!1,e}let n=this.context.createResource(f.MultiRecordResource);return n.setPageSize(1),n}onInit(e){var t,l;super.onInit(e),this.hadSingleRecordData=(null==(l=this.resource)||null==(t=l.hasData)?void 0:t.call(l))??!1,this.hasMultiRefreshDispatched=!1;let o=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.getCurrentRecord()),meta:o}),this.resource.on("refresh",()=>{var e,t;if(this.isMultiRecordResource()){this.hasMultiRefreshDispatched=!0,(0,dT.Xi)(this,"paginationChange");return}let l=this.hadSingleRecordData;this.hadSingleRecordData=(null==(t=this.resource)||null==(e=t.hasData)?void 0:e.call(t))??!1,l&&(0,dT.Xi)(this,"paginationChange")})}isMultiRecordResource(){return this.resource instanceof f.MultiRecordResource}hasDispatchedMultiRefresh(){return this.hasMultiRefreshDispatched}getCurrentRecord(){let e=this.resource.getData();return Array.isArray(e)?e[0]:e}hasAvailableData(){return this.resource.hasData()}async refresh(){await this.resource.refresh()}renderPagination(){if(!this.resource.loading&&!this.hasAvailableData()){var e,t;return(0,m.jsx)("div",{style:{textAlign:"center",color:null==(t=this.context)||null==(e=t.themeToken)?void 0:e.colorTextDescription},children:this.translate("No available data currently")})}let l=this.resource;return!this.isMultiRecordResource()||!l.getPage()||1>=this.resource.getMeta("count")?null:(0,m.jsx)("div",{style:{textAlign:"center"},children:(0,m.jsx)(b.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,current:l.getPage(),total:l.getCount(),onChange:this.handlePageChange,style:{display:"inline-block"}})})}renderConfigureActions(){return(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("RecordActionGroupModel"),afterSubModelInit:async e=>{e.setStepParams("buttonSettings","general",{type:"default"})},children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Actions")})},"details-actions-add")}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n}=this.props,i=!!this.context.flowSettingsEnabled,r=!i&&!this.hasAvailableData(),{heightMode:a,height:s}=this.decoratorProps;return(0,m.jsx)(uy,{model:this,gridModel:this.subModels.grid,isConfigMode:i,heightMode:a,height:s,layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n},actions:(0,m.jsx)(f.DndProvider,{children:(0,m.jsx)("div",{style:r?{pointerEvents:"none",opacity:.45}:void 0,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.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:f.DragHandler,sort:1}]})},e.uid)}),this.renderConfigureActions()]})})})})}constructor(...e){super(...e),this.hadSingleRecordData=!1,this.hasMultiRefreshDispatched=!1,this._defaultCustomModelClasses={RecordActionGroupModel:"RecordActionGroupModel",DetailsItemModel:"DetailsItemModel",DetailsAssociationFieldGroupModel:"DetailsAssociationFieldGroupModel",DetailsCustomItemModel:"DetailsCustomItemModel"},this.customModelClasses={},this.handlePageChange=async e=>{if(this.resource instanceof f.MultiRecordResource){let t=this.resource;t.setPage(e),t.loading=!0,await this.refresh()}}}}ug.scene=sC.P.oam;let uv=(0,f.observer)(e=>{let{model:t}=e;return t.renderPagination()}),uy=e=>{let{model:t,gridModel:l,isConfigMode:o,heightMode:n,height:r,layoutProps:a,actions:s}=e,d=(0,i.useRef)(null),u=(0,i.useRef)(null),c=(0,i.useRef)(null),p="specifyValue"===n||"fullHeight"===n,h=uf({heightMode:n,containerRef:d,actionsRef:u,paginationRef:c,deps:[r]});(0,i.useEffect)(()=>{var e,t;if(!l)return;let o=p?h:void 0;((null==(e=l.props)?void 0:e.height)!==o||(null==(t=l.props)?void 0:t.heightMode)!==n)&&l.setProps({height:o,heightMode:n})},[l,h,p,n]);let g=p?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,v=p?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0;return(0,m.jsx)(dG.s2,{model:t,layoutProps:a,style:g,children:(0,m.jsxs)("div",{ref:d,style:v,children:[(0,m.jsx)("div",{ref:u,style:{textAlign:"right",lineHeight:"0px",paddingBottom:o&&t.context.themeToken.padding},children:s}),(0,m.jsx)(f.FlowModelRenderer,{model:l,showFlowSettings:!1},`${(null==l?void 0:l.uid)||"details-grid"}:${o?"design":"runtime"}`),(0,m.jsx)("div",{ref:c,children:(0,m.jsx)(uv,{model:t})})]})})};ug.registerFlow({key:"detailsSettings",title:(0,f.tExpr)("Details settings"),sort:150,steps:{refresh:{async handler(e){if(!e.resource)throw Error("Resource is not initialized");await e.model.applySubModelsBeforeRenderFlows("grid")}},layout:{use:"layout",title:(0,f.tExpr)("Layout")},dataScope:{use:"dataScope"},defaultSorting:{use:"sortingRule",title:(0,f.tExpr)("Default sorting")},linkageRules:{use:"detailsFieldLinkageRules"}}}),ug.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldslinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"detailsFieldLinkageRules",flowKey:"detailsSettings",stepKey:"linkageRules"}}}}),ug.registerFlow({key:"initialPaginationChangeRefresh",sort:10001,steps:{refreshPaginationRelatedStates:{async handler(e){if(e.model.hidden||!e.model.isMultiRecordResource()||e.model.hasDispatchedMultiRefresh())return;let t=e.model.resource;if(!t)return;let l="manual"===(t.dataLoadingMode??t.loadingMode),o="function"==typeof t.hasActiveFilters&&t.hasActiveFilters();l&&!o&&await (0,dT.Xi)(e.model,"paginationChange")}}}}),ug.define({label:(0,f.tExpr)("Details"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search"),createModelOptions:{use:"DetailsBlockModel",subModels:{grid:{use:"DetailsGridModel"}}},sort:350});class u_ extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("DetailsCustomItemModel"),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")}}u_.renderMode=f.ModelRenderMode.RenderFunction,u_.define({hide:!0,label:(0,f.tExpr)("Others")});class ub extends sb{renderAddSubModelButton(){return this.context.flowSettingsEnabled?(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("DetailsItemModel"),this.context.getModelClassName("DetailsAssociationFieldGroupModel"),this.context.getModelClassName("DetailsCustomItemModel")].filter(Boolean),keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Fields")})}):null}render(){var e,t;let l=null==(e=this.props)?void 0:e.height,o=null==(t=this.props)?void 0:t.heightMode,n=this.context.themeToken,i=super.render();return"defaultHeight"===o?i:(0,m.jsx)("div",{style:{height:l,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`},children:i})}constructor(...e){super(...e),this.itemFallback=(0,m.jsx)(b.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}}),this.itemSettingsMenuLevel=2,this.itemFlowSettings={showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}},this.dragOverlayConfig={columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}}}}function ux(e,t){let{fieldUseModel:l,refreshTargets:o}=t,n=e=>Array.isArray(e)?e.map(e=>{let t={...e};if(t.children)if("function"==typeof t.children){let e=t.children;t.children=async t=>n(await e(t))}else Array.isArray(t.children)&&(t.children=n(t.children));if(t.createModelOptions){let e=t.createModelOptions;t.createModelOptions=async(t,o)=>{let n=await ("function"==typeof e?e(t,o):e);return n.subModels=n.subModels||{},n.subModels.field={...n.subModels.field||{},use:l},n},t.refreshTargets=t.refreshTargets||o}return t}):[];return n(e)}function uM(e,t,l){let{fieldUseModel:o,refreshTargets:n}=l,i=l.key??"js-association-fields",r=l.label??(0,f.tExpr)("Display association fields");return{key:i,type:"group",label:r,searchable:l.searchable??!0,searchPlaceholder:l.searchPlaceholder??(0,f.tExpr)("Search fields"),children:async e=>ux(await t(e),{fieldUseModel:o,refreshTargets:n})}}ub.registerFlow({key:"detailFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class uw extends aZ{}async function uS(e,t){var l;let{useModel:o,fieldUseModel:n,refreshTargets:i,associationPathName:r,associationProvider:a}=t,s=(0,f.buildWrapperFieldChildren)(e,{useModel:o,fieldUseModel:n,associationPathName:r,refreshTargets:i}),d=[],u=null==s||null==(l=s[0])?void 0:l.children;if(Array.isArray(u)&&(d=u),!a)return d;let c=await a(e);return Array.isArray(c)&&0!==c.length?[...d,uM(e,a,{fieldUseModel:n,refreshTargets:i})]:d}uw.itemModelName="FormItemModel";class uk extends u_{static defineChildren(e){return uS(e,{useModel:"DetailsItemModel",fieldUseModel:"JSFieldModel",refreshTargets:["DetailsItemModel"],associationProvider:e=>um.defineChildren(e)})}}uk.define({label:(0,f.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),sort:110});class uF extends rB.o{}class uC extends rB.o{constructor(...e){super(...e),this.operator="$eq",this.updateAssociation=!1}}uC.registerFlow({key:"AssociationFieldInit",sort:800,steps:{init:{async handler(e,t){if(e.model.updateAssociation){var l,o;let t=e.model.context.blockModel,n=null==t||null==(l=t.context)?void 0:l.resource,i=null==(o=e.model.parent)?void 0:o.fieldPath;n&&i&&n.addUpdateAssociationValues(i)}}},allowCreateCheck:{async handler(e){var t;let l=await e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:null==(t=e.collectionField)?void 0:t.target,actionName:"create"});e.model.setProps({allowCreate:!!l})}}}});let uA=(e,t)=>e===t,uP=e=>{if(e&&"object"==typeof e){let t=e.data;return t&&"object"==typeof t?t:e}};function uT(e){return"string"==typeof e&&e?e:Array.isArray(e)&&1===e.length&&"string"==typeof e[0]?e[0]:void 0}function uj(e,t){var l;let o="string"==typeof(null==t||null==(l=t.titleCollectionField)?void 0:l.name)?t.titleCollectionField.name:void 0,n=uT(null==t?void 0:t.filterTargetKey)||"id",i="string"==typeof(null==e?void 0:e.value)&&e.value&&!uA(e.value,"value")?e.value:void 0,r="string"==typeof(null==e?void 0:e.label)&&e.label&&!uA(e.label,"label")?e.label:void 0,a=i||n;return{label:r||o||a,value:a}}function uI(e){var t,l,o,n,i,r;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=!!a.navigation,d=e=>{if(Array.isArray(e))return e.filter(e=>"string"==typeof e&&!!e)},u=d(null==(l=e.view)||null==(t=l.inputArgs)?void 0:t.openerUids),c=d(a.openerUids),p=u||c||[];if(s)return(c||p).filter(Boolean);let m=null==(n=e.view)||null==(o=n.inputArgs)?void 0:o.viewUid,h=null==(r=e.model.context)||null==(i=r.inputArgs)?void 0:i.viewUid;return[...p,"string"==typeof m&&m?m:"string"==typeof h&&h?h:e.model.uid].filter(Boolean)}function uL(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function uR(e){let{value:t,isMultiple:l,valueKey:o,labelKey:n,statusMap:i}=e,r=l?Array.isArray(t)?t:[]:null!=t?[t]:[],a=new Set;for(let e of r){if(!uL(e))continue;let t=e[o];if(null==t)continue;let l="object"==typeof t?JSON.stringify(t):String(t);l&&a.add(l)}for(let e of Array.from(i.keys()))a.has(e)||i.delete(e);let s=[];for(let e of r){if(!uL(e))continue;let t=e[o];if(null==t||null!=e[n])continue;let l="object"==typeof t?JSON.stringify(t):String(t);!l||i.has(l)||(i.set(l,"pending"),s.push({item:e,tk:t,tkKey:l}))}return s}function uD(e){return uL(e)&&"function"==typeof e.setFormValue}function uE(e){var t;let l=uL(e.context)?e.context:void 0;return(null==l?void 0:l.fieldPathArray)??(null==l?void 0:l.fieldPath)??(null==(t=e.props)?void 0:t.name)}function uY(e){if(uD(e.context))return e.context;let t=uL(e.context)?e.context:void 0,l=uL(null==t?void 0:t.blockModel)?t.blockModel:void 0;return uD(null==l?void 0:l.context)?l.context:void 0}function uN(e){let{model:t,value:l,isMultiple:o,fieldNames:n,onChange:r}=e,a=i.default.useRef(new Map);i.default.useEffect(()=>{let e=t.resource;if("function"!=typeof(null==e?void 0:e.get)||!n.value||!n.label)return;let i=l,s=uR({value:i,isMultiple:o,valueKey:n.value,labelKey:n.label,statusMap:a.current});if(!s.length)return;let d=uE(t),u=uY(t),c=async t=>{let{item:l,tk:s,tkKey:c}=t;try{var p;let t=await (null==(p=e.get)?void 0:p.call(e,s));if(!uL(t))return;let a={...l,...t};if(null==a[n.label])return;let c=o?(Array.isArray(i)?i:[]).map(e=>uL(e)&&e[n.value]===s?a:e):a;if("function"==typeof(null==u?void 0:u.setFormValue)&&null!=d)return void await u.setFormValue(d,c,{source:"default",markExplicit:!1,triggerEvent:!1});r(c)}catch{}finally{a.current.set(c,"done")}};s.forEach(e=>{c(e)})},[n.label,n.value,o,t,r,l])}function uO(e){if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(Array.isArray(e)){let t=e.map(e=>{if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(e&&"object"==typeof e){let t=e.label??e.name;if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return t}}).filter(e=>void 0!==e);return t.length?t.map(String).join(", "):void 0}if(e&&"object"==typeof e){let t=e.label??e.name;if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return t}}function uB(e){var t,l,o;let{option:n,fieldNames:i}=e,r=(0,f.useFlowModel)(),a=uP(n),s=uj(i,null==(t=r.context.collectionField)?void 0:t.targetCollection),d=r.subModels.field,u=uO(null==a?void 0:a[s.label])??uO(null==a?void 0:a.label)??uO(null==a?void 0:a[s.value]);if(!d)return(0,m.jsx)("span",{children:u??"N/A"});let c=String((null==a?void 0:a[s.value])??u??"association-option"),p=d.createFork({},c);p.context.defineProperty("record",{get:()=>a,cache:!1,meta:(0,f.createCurrentRecordMetaFactory)(p.context,()=>p.context.collection)});let h=null==(o=r.context.collectionField.targetCollection)||null==(l=o.getField)?void 0:l.call(o,s.label),g=h&&"function"==typeof h.getComponentProps?h.getComponentProps():{};p.setProps({value:u,clickToOpen:!1,...g});let v=null!=u&&""!==u?p.render():"N/A";return(0,m.jsx)("span",{style:{pointerEvents:"none"},children:v})}function uV(e,t){let l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"record",n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[];if(!e)return l?[]:void 0;let{value:i}=t||{},r=e=>"object"==typeof e&&null!==e,a=e=>{if(r(e))return{label:(0,m.jsx)(uB,{option:e,fieldNames:t}),value:e[i]}};if("value"===o){let t=e=>{if("object"==typeof e&&null!==e)return a(e);let t=n.find(t=>(null==t?void 0:t[i])===e);return t?a(t):{label:String(e),value:e}};return l?Array.isArray(e)?e.map(e=>t(e)).filter(Boolean):[]:Array.isArray(e)?t(e[0]):t(e)}if(l)return Array.isArray(e)?e.filter(r).map(a).filter(Boolean):[];if(Array.isArray(e)){let t=e[0];return r(t)?a(t):void 0}return r(e)?a(e):void 0}function uH(e,t,l){return(null==e?void 0:e.length)?e.map(e=>(0,g.omit)(e,"disabled","options","style")):l?Array.isArray(t)?t.filter(e=>"object"==typeof e&&null!==e):[]:t&&"object"==typeof t?[t]:[]}let uq="calc(12px + env(safe-area-inset-bottom, 0px))",u$={paddingBottom:uq};function uz(e){return{maxHeight:"60vh",overflowY:"auto",paddingBottom:e?void 0:uq}}let uU=(0,A.css)`
844
+ `},properties:{name:{type:"string","x-decorator":"FormItem","x-component":"Input","x-component-props":{placeholder:'{{t("Name")}}'}},value:{type:"string","x-decorator":"FormItem","x-component":rP.n,"x-component-props":{rows:1}},remove:{type:"void","x-decorator":"FormItem","x-component":"ArrayItems.Remove"}}}}},"x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}},properties:{add:{type:"void",title:'{{t("Add parameter")}}',"x-component":"ArrayItems.Addition"}}},openInNewWindow:{type:"boolean","x-content":t("Open in new window"),"x-decorator":"FormItem","x-component":"Checkbox","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "html"}}'}}}}}},handler(e,t){e.model.setProps({url:t.url,searchParams:t.searchParams,openInNewWindow:t.openInNewWindow})}}}});class d$ extends aQ.S0{setTitle(e){this.setProps({title:e})}setExpandFlag(e){this.expandFlag=e}getTitle(){return this.expandFlag?this.context.t("Collapse all"):this.context.t("Expand all")}getIcon(){return this.expandFlag?"NodeCollapseOutlined":"NodeExpandOutlined"}constructor(...e){super(...e),this.defaultProps={type:"default",icon:"DownOutlined"}}}function dz(e){let{idKey:t="id",childrenKey:l="children"}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=[];function n(e){if(Array.isArray(e))for(let i of e){let e=i[l];o.push(i[t]),Array.isArray(e)&&e.length>0&&n(e)}}return n(e),o}d$.scene=aQ.s5.collection;let dU=e=>dz(e);d$.registerFlow({key:"expandCollapseSettingsInit",sort:200,steps:{init:{handler(e,t){e.blockModel.props.defaultExpandAllRows?e.model.setExpandFlag(!0):e.model.setExpandFlag(!1)}}}}),d$.registerFlow({key:"expandCollapseSettings",on:"click",steps:{expandCollapse:{async handler(e,t){var l;if(!(null==(l=e.blockModel)?void 0:l.resource))return;let o=e.blockModel.resource,{treeTable:n}=e.blockModel.props;if(n)if(e.model.expandFlag)e.blockModel.setProps({expandedRowKeys:[]}),e.model.setExpandFlag(!1);else{let t=dU(o.getData());e.blockModel.setProps({expandedRowKeys:t}),e.model.setExpandFlag(!0)}}}}}),d$.define({label:(0,f.escapeT)("Expand/Collapse"),hide(e){var t;return(null==(t=e.collection)?void 0:t.template)!=="tree"||!1===e.model.props.treeTable}});class dK extends s1{getAclActionName(){return"create"}onInit(e){super.onInit(e),this.context.defineProperty("association",{get:()=>this.context.blockModel.dataSource.getAssociation(`${this.context.blockModel.collection.name}.children`)})}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,f.tExpr)("Add child"),icon:"PlusOutlined"}}}dK.capabilityActionName=null,dK.registerFlow({key:"addChildSettingsInit",steps:{addChildInit:{async handler(e,t){e.model.onClick=t=>{e.model.dispatchEvent("click",{event:t,...e.inputArgs,sourceId:e.record.id,filterByTk:null},{debounce:!0})}}}}}),dK.define({label:(0,f.tExpr)("Add child"),hide(e){var t;return(null==(t=e.collection)?void 0:t.template)!=="tree"||!1===e.blockModel.props.treeTable}}),aX.registerActionModels({AddChildActionModel:dK});var dG=__webpack_require__(3197);class dW extends dG.F4{useHooksBeforeRender(){let[e]=b.Form.useForm();this.context.defineProperty("form",{get:()=>e})}onInit(e){super.onInit(e);let t=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>{var e,t;return null==(e=(t=this).getCurrentRecord)?void 0:e.call(t)},cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>{var e,t;return null==(e=(t=this).getCurrentRecord)?void 0:e.call(t)}),meta:t}),this.context.defineProperty("filterManager",{once:!0,get:()=>new ss(this,null==e?void 0:e.filterManager)}),this.isManualRefresh=!0}createResource(e,t){let l=this.context.createResource(f.SingleRecordResource);return l.isNewRecord=!0,l}renderComponent(){var e;let{colon:t,labelAlign:l,labelWidth:o,labelWrap:n,layout:i}=this.props;return(0,m.jsx)(dG.s2,{model:this,layoutProps:{colon:t,labelAlign:l,labelWidth:o,labelWrap:n,layout:i},children:(0,m.jsx)(f.FlowModelRenderer,{model:null==(e=this.subModels)?void 0:e.grid,showFlowSettings:!1})})}setInitialAssignedValues(e){var t;let l=null==(t=this.subModels)?void 0:t.grid;Object.entries(e||{}).forEach(e=>{let[t,o]=e;l.addOrEnsureItem(t,o)})}getAssignedValues(){return this.subModels.grid.getAssignedValues()||{}}}dW.define({label:(0,f.tExpr)("Field assignments"),hide:!0,createModelOptions:{use:"AssignFormModel",subModels:{grid:{use:"AssignFormGridModel"}}}});class dJ extends sb{serialize(){return{...super.serialize(),variableContractType:{type:"formGrid",use:this.use}}}renderAddSubModelButton(){return(0,m.jsx)(f.AddSubModelButton,{subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("FormItemModel"),this.context.getModelClassName("FormAssociationFieldGroupModel"),this.context.getModelClassName("FormCustomItemModel"),this.context.getModelClassName("FormJSFieldItemModel")].filter(Boolean),model:this,keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Fields")})})}render(){var e,t;let l=null==(e=this.props)?void 0:e.height,o=null==(t=this.props)?void 0:t.heightModel,n=this.context.themeToken,i=super.render();return"defaultHeight"===o?i:(0,m.jsx)("div",{style:{height:l,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`,paddingTop:5},children:i})}constructor(...e){super(...e),this.itemFallback=(0,m.jsx)(b.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}}),this.itemSettingsMenuLevel=2,this.itemFlowSettings={showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}},this.dragOverlayConfig={columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}}}}dJ.registerFlow({key:"formFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});let dX=2;class dQ extends dJ{renderAddSubModelButton(){var e,t;let l=null==(e=this.context)?void 0:e.collection,o=(null==l||null==(t=l.getFields)?void 0:t.call(l))||[],n=this.context.prefixFieldPath?this.context.prefixFieldPath.split(".").filter(Boolean).length:0,i="function"==typeof(null==l?void 0:l.getPrimaryKey)?l.getPrimaryKey():void 0,r=null==l?void 0:l.filterTargetKey,a=e=>!!e&&!!(i&&e===i||"string"==typeof r&&e===r||Array.isArray(r)&&r.includes(e)),s=o.filter(e=>!a(null==e?void 0:e.name)).filter(e=>{var t;return n<dX||!((null==e||null==(t=e.isAssociationField)?void 0:t.call(e))||(null==e?void 0:e.target)||(null==e?void 0:e.targetCollection))}).map(e=>{let t=e.name,o=e.title||e.name,n=f.EditableItemModel.getDefaultBindingByField(this.context,e);if(!n)return;let i=n.modelName;return{key:t,label:o,toggleable:e=>{let l=e.getStepParams("fieldSettings","init")||{};return(null==l?void 0:l.fieldPath)===t},useModel:"AssignFormItemModel",createModelOptions:()=>({use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==l?void 0:l.dataSourceKey,collectionName:null==l?void 0:l.name,fieldPath:t}}},subModels:{field:{use:i,stepParams:{fieldSettings:{init:{dataSourceKey:null==l?void 0:l.dataSourceKey,collectionName:null==l?void 0:l.name,fieldPath:t}}}}}})}}).filter(Boolean);return(0,m.jsx)(f.AddSubModelButton,{subModelKey:"items",model:this,items:s,keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Fields")})})}addOrEnsureItem(e,t){var l,o,n;let i=null==(l=this.context)?void 0:l.collection,r=((null==(o=this.subModels)?void 0:o.items)||[]).find(t=>{try{let l="function"==typeof(null==t?void 0:t.getStepParams)?t.getStepParams("fieldSettings","init"):null;return(null==l?void 0:l.fieldPath)===e}catch(e){return!1}});if(r){"function"==typeof(null==r?void 0:r.setStepParams)&&r.setStepParams("fieldSettings","assignValue",{value:t}),r.assignValue=t;return}if(!i)return;let a=((null==(n=i.getFields)?void 0:n.call(i))||[]).find(t=>t.name===e);if(!a){this.addSubModel("items",{use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==i?void 0:i.dataSourceKey,collectionName:null==i?void 0:i.name,fieldPath:e},assignValue:{value:t}}}}).assignValue=t;return}let s=f.EditableItemModel.getDefaultBindingByField(this.context,a);if(!s)return;let d=s.modelName;this.addSubModel("items",{use:"AssignFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==i?void 0:i.dataSourceKey,collectionName:null==i?void 0:i.name,fieldPath:e},assignValue:{value:t}}},subModels:{field:{use:d,stepParams:{fieldSettings:{init:{dataSourceKey:null==i?void 0:i.dataSourceKey,collectionName:null==i?void 0:i.name,fieldPath:e}}}}}}).assignValue=t}getAssignedValues(){var e;let t=(null==(e=this.subModels)?void 0:e.items)||[],l={};for(let e of t){let t="function"==typeof e.getAssignedEntry?e.getAssignedEntry():null;t&&Array.isArray(t)&&(l[t[0]]=t[1])}return l}}dQ.define({label:(0,f.tExpr)("Assign grid")});var dZ=__webpack_require__(9829);function d0(e){return"string"==typeof e?e:"function"==typeof e&&e.name?e.name:void 0}function d1(e){var t,l;let o=null==e||null==(l=e.stepParams)||null==(t=l.fieldBinding)?void 0:t.use;return"string"==typeof o?o:void 0}async function d2(e){var t,l,o;let{parentModel:n,targetUse:i,defaultProps:r,pattern:a,fieldSettingsInit:s}=e,d=n.subModels.field,u=null==d?void 0:d.uid,c=null==d||null==(l=d.serialize)||null==(t=l.call(d))?void 0:t.subModels;for(let e in c)!1===c[e].delegateToParent&&delete c[e];let p=d0(d1(d)||(null==d?void 0:d.use))===i&&(null==d?void 0:d.stepParams)||{},m=s??(null==(o=n.getFieldSettingsInitParams)?void 0:o.call(n)),{fieldBinding:h,...f}=p,g={...f,fieldSettings:{...f.fieldSettings||{},init:m}},v=n.flowEngine;u&&(null==d||d.invalidateFlowCache("beforeRender",!0),v.removeModelWithSubModels(u));let y=n.setSubModel("field",{uid:u,use:i,props:{...r||{},...a?{pattern:a}:{}},stepParams:g,subModels:c});await y.dispatchEvent("beforeRender",void 0,{useCache:!1}),await n.save()}var d5=__webpack_require__(9133);function d8(e,t,l){let o=(0,g.castArray)(l).filter(e=>"string"==typeof e),n=t.split(".");if(null==o?void 0:o.length){let t=[],l=0,i=0;for(;l<n.length;){let e=n[l];if(t.push(e),i<o.length){let[l,n]=o[i].split(":");l===e&&(t.push(Number(n)),i++)}l++}return(0,g.get)(e,t)}return(0,g.get)(e,n)}function d4(e){let{record:t,currentObject:l,fieldPath:o,prefixFieldPath:n,idx:i}=e,r=d8(t,o,i);if(void 0!==r||null==l)return r;if(n&&o===n)return l;let a=n&&o.startsWith(`${n}.`)?o.slice(n.length+1):o;return a?(0,g.get)(l,a):l}function d3(e,t){return!(0,d5.E4)(e)||Array.isArray(t)?t:t&&"object"==typeof t&&Array.isArray(t.rows)?t.rows:null==t?[]:[t]}class d6 extends f.DisplayItemModel{static defineChildren(e){let t=e.collection;return t.getFields().map(l=>{let o=this.getDefaultBindingByField(e,l,{fallbackToTargetTitleField:!0});if(!o)return null;let n=o.modelName,i=e.prefixFieldPath?`${e.prefixFieldPath}.${l.name}`:l.name;return{key:i,label:l.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===i},useModel:"DetailsItemModel",createModelOptions:()=>({use:"DetailsItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:i}}},subModels:{field:{use:n,props:"function"==typeof o.defaultProps?o.defaultProps(e,l):o.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=this.context.item,i=this.context.getPropertyOptions("item"),r=this.context.prefixFieldPath,a=null!=t?(()=>{let r=e.createFork({},`${t}`);r.context.defineProperty("fieldIndex",{get:()=>t}),r.context.defineProperty("record",{get:()=>l,cache:!1}),r.context.defineProperty("currentObject",{get:()=>o,cache:!1});let{value:a,...s}=i||{};return r.context.defineProperty("item",{...s,get:()=>n,cache:!1}),this.context.pattern&&r.context.defineProperty("pattern",{get:()=>this.context.pattern}),r})():e,s=this.context.pattern?{...this.context.blockModel.props,...this.props,pattern:this.context.pattern,disabled:"readPretty"===this.context.pattern}:{...this.context.blockModel.props,...this.props},d=d3(this.collectionField,d4({record:l,currentObject:o,fieldPath:this.fieldPath,prefixFieldPath:r,idx:t}));return(0,m.jsx)(f.FormItem,{...s,value:d,children:(0,m.jsx)(f.FieldModelRenderer,{model:a})})}}d6.define({label:(0,f.tExpr)("Display fields"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),sort:100}),d6.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: ")+n}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){var l;let o={ns:"lm-flow-engine",compareWith:null==(l=e.collectionField)?void 0:l.title};e.model.setProps({label:e.t(t.title,o)})}},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}}}),d6.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});var d9=__webpack_require__(1961);function d7(e){if(!e)return!1;let t=null==e?void 0:e.type;return"belongsToMany"===t||"hasMany"===t||"belongsToArray"===t}function ue(e,t){var l;let o=!!(null==e||null==(l=e.isAssociationField)?void 0:l.call(e)),n=d7(e);return o&&!n&&Array.isArray(t)?t.length?t[0]:void 0:t}function ut(e,t){if(!(null==t?void 0:t.length))return e;let[l,o]=String(t[t.length-1]).split(":"),n=Number(o);if(!l||!Number.isFinite(n))return e;let i=0;for(let e of t){let[t]=String(e).split(":");t===l&&(i+=1)}let r=-1,a=0;for(let t=0;t<e.length;t++)if(String(e[t])===l&&(a+=1)===i){r=t;break}if(-1===r){for(let t=e.length-1;t>=0;t--)if(String(e[t])===l){r=t;break}}return -1===r?e:[n,...e.slice(r+1)]}let ul=["o2o","oho","obo","o2m","attachment","expression","point","lineString","circle","polygon","sequence","formula"],uo=2;class un extends f.EditableItemModel{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>=uo&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return;let i=this.getDefaultBindingByField(e,o);if(!i)return;let r=i.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["FormJSFieldItemModel","FormItemModel/FormJSFieldItemModel"],toggleable:e=>(0,d5.pX)(e).some(e=>e===a),useModel:"FormItemModel",createModelOptions:()=>({use:"FormItemModel",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.emitter.on("onSubModelAdded",e=>{if(this.collectionField){let t=this.collectionField.getComponentProps();e.setProps(t),this.setProps({...g.default.pick(t,"rules")||{}})}})}renderItem(){var e,t;let l=this.subModels.field,o=this.context.fieldIndex,n=this.context.fieldKey,i=(null==(e=this.parent)?void 0:e.context.fieldPathArray)||[],r=!!this.context.flowSettingsEnabled&&!!this.props.hidden&&!this.hidden&&!this.forbidden,a=null!=o||r?(()=>{let e=r?`${this.uid}:config-visible`:`${n}`,t=l.createFork({},e);if(null!=o){t.context.defineProperty("fieldIndex",{get:()=>o}),t.context.defineProperty("fieldKey",{get:()=>n}),this.context.currentObject&&t.context.defineProperty("currentObject",{get:()=>this.context.currentObject});let e=this.context.getPropertyOptions("item");if(this.context.item){let{value:l,...o}=e||{};t.context.defineProperty("item",{...o,get:()=>this.context.item,cache:!1})}this.context.pattern&&t.context.defineProperty("pattern",{get:()=>this.context.pattern})}return t.context.defineProperty("fieldPathArray",{get:()=>this.context.fieldPathArray,cache:!1}),r&&t.setProps({hidden:!1}),t})():l,{initialValue:s,hidden:d,...u}=this.context.pattern?{...this.props,pattern:this.context.pattern}:this.props,c=r?u:{hidden:d,...u},p=ut(this.props.name,o);this.context.defineProperty("fieldPathArray",{get:()=>[...i,...g.default.castArray(p)],cache:!1});let h=(null==(t=this.context.item)?void 0:t.value)||this.context.record,v=(0,m.jsx)(f.FormItem,{...c,name:p,validateFirst:!0,disabled:this.props.disabled||!g.default.isEmpty(h)&&!h.__is_new__&&this.props.aclDisabled||!g.default.isEmpty(h)&&h.__is_new__&&this.props.aclCreateDisabled,children:(0,m.jsx)(f.FieldModelRenderer,{model:a,name:p})});return r?(0,m.jsx)(b.Tooltip,{title:this.context.t("The field is hidden and only visible when the UI Editor is active"),children:(0,m.jsx)("div",{style:{opacity:.3},children:v})}):v}}un.define({label:(0,f.tExpr)("Display fields"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),sort:100}),un.registerFlow({key:"editItemSettings",sort:300,title:(0,f.tExpr)("Form 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=>({label:{"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: ")+n}}}}),defaultParams:e=>{var t;return{label:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){var l;let o={ns:"lm-flow-engine",compareWith:null==(l=e.collectionField)?void 0:l.title};e.model.setProps({label:e.t(t.label,o)})}},aclCheck:{use:"aclCheck",async handler(e,t){var l,o,n,i,r,a,s,d,u,c,p,m,h;if(!e.collectionField||!e.blockModel)return;let f=e.blockModel.context.actionName,g=await e.aclCheck({dataSourceKey:null==(l=e.dataSource)?void 0:l.key,resourceName:null==(o=e.collectionField)?void 0:o.collectionName,fields:[null==(n=e.collectionField)?void 0:n.name],actionName:f});if("update"===f){let t=await e.aclCheck({dataSourceKey:null==(i=e.dataSource)?void 0:i.key,resourceName:null==(r=e.collectionField)?void 0:r.collectionName,fields:[e.collectionField.name],actionName:"view"});e.prefixFieldPath&&e.item&&(await e.aclCheck({dataSourceKey:null==(s=e.dataSource)?void 0:s.key,resourceName:null==(d=e.collectionField)?void 0:d.collectionName,fields:[e.collectionField.name],actionName:"create"})||e.model.setProps({aclCreateDisabled:!0}));let l=(null==(a=e.item)?void 0:a.__is_new__)??!1;t||l||(e.model.hidden=!0,e.model.forbidden={actionName:"view"},e.exitAll()),g||e.model.setProps({aclDisabled:!0})}else if("create"===f){let t=await e.aclCheck({dataSourceKey:null==(u=e.dataSource)?void 0:u.key,resourceName:null==(c=e.collectionField)?void 0:c.collectionName,actionName:"update"}),l=await e.aclCheck({dataSourceKey:null==(p=e.dataSource)?void 0:p.key,resourceName:null==(m=e.collectionField)?void 0:m.collectionName,fields:[e.collectionField.name],actionName:"update"}),o=(null==(h=e.item)?void 0:h.__is_stored__)??!1;g||o||(e.model.hidden=!0,e.model.forbidden={actionName:f},e.exitAll()),t&&l||e.model.setProps({aclDisabled:!0})}}},init:{async handler(e){let t=e.model.fieldPath,l=t.includes(".")?t.split("."):t;e.model.setProps({name:l})}},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","x-component-props":{autoSize:!0}}},handler(e,t){e.model.setProps({extra:e.t(t.description,{ns:"lm-flow-engine"})})}},initialValue:{title:(0,f.tExpr)("Default value"),disabledInSettings:!0,disabledReasonInSettings:e=>`${e.t("This setting has been moved to")}: ${e.t("Form block settings")} > ${e.t("Field values")}`,uiSchema:e=>{var t,l,o,n;if(e.model.parent.parent instanceof d9.EditFormModel||(null==(l=e.model.subModels)||null==(t=l.field)?void 0:t.updateAssociation))return;let i=null==(o=e.model.collectionField)?void 0:o.interface;if(null==ul||null==(n=ul.includes)||!n.call(ul,i))return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem"}}},defaultParams:e=>{let t=e.model.collectionField;if("nanoid"===t.interface&&!1!==t.options.autoFill){let{size:e,customAlphabet:l}=t.options||{size:21};return{defaultValue:(0,dZ.customAlphabet)(l,e)()}}return{defaultValue:t.defaultValue}},handler(e,t){var l,o;let n=null==(l=e.model.collectionField)?void 0:l.interface;if(null==ul||null==(o=ul.includes)?void 0:o.call(ul,n))return;let i=ue(e.model.collectionField,t.defaultValue);e.model.setProps({initialValue:i})}},validation:{title:(0,f.tExpr)("Validation"),use:"validation"},required:{title:(0,f.tExpr)("Required"),use:"required"},model:{use:"fieldComponent",title:(0,f.tExpr)("Field component")},pattern:{use:"pattern"},titleField:{use:"titleField",hideInSettings:e=>!(e.collectionField&&e.collectionField.isAssociationField()&&e.collectionField.isAssociationField()&&"readPretty"===e.model.getProps().pattern),defaultParams:e=>{var t,l,o;return{titleField:e.model.props.titleField||(null==(o=e.model)||null==(l=o.context)||null==(t=l.collectionField)?void 0:t.targetCollectionTitleFieldName)}},beforeParamsSave:async(e,t,l)=>{if(!(e.collectionField.isAssociationField()&&"readPretty"===e.model.getProps().pattern))return null;let o=t.titleField||t.label;if(o!==l.titleField){let t=e.collectionField.targetCollection,l=t.getField(o),n=d6.getDefaultBindingByField(e,l);if(n.modelName!==e.model.subModels.field.use){let l=e.model.subModels.field.uid;await e.engine.destroyModel(l);let i=e.model.setSubModel("field",{use:n.modelName,stepParams:{fieldSettings:{init:{dataSourceKey:e.model.collectionField.dataSourceKey,collectionName:t.name,fieldPath:o}}}});await i.save()}e.model.setProps(e.collectionField.targetCollection.getField(o).getComponentProps())}},async handler(e,t){"readPretty"===e.model.props.pattern?e.model.setProps({titleField:null==t?void 0:t.label}):e.model.setProps({titleField:t.titleField})}}}}),un.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh",defaultParams:{strategy:"formItem"}}}});var ui=__webpack_require__(7309),ur=__webpack_require__(9624),ua=__webpack_require__(4e3);function us(e,t){var l,o,n;let i=null==e||null==(l=e.props)?void 0:l.fieldNames,r=null==e||null==(o=e.props)?void 0:o.titleField,a=null==e||null==(n=e.getStepParams)?void 0:n.call(e,"selectSettings","fieldNames");return{stepParams:{fieldSettings:{init:t},...a?{selectSettings:{fieldNames:a}}:{}},props:{...void 0!==i?{fieldNames:i}:{},...void 0!==r?{titleField:r}:{}}}}function ud(e){try{return JSON.stringify(e)??""}catch{return String(e)}}function uu(e){var t,l,o;let n=null==e||null==(t=e.props)?void 0:t.fieldNames,i=null==e||null==(l=e.props)?void 0:l.titleField,r=null==e||null==(o=e.getStepParams)?void 0:o.call(e,"selectSettings","fieldNames");return[(null==e?void 0:e.uid)||"",ud(n),ud(i),ud(r)].join("|")}function uc(e){if(!e||"object"!=typeof e||!("target"in e))return e;let t=e.target;return t&&"value"in t?t.value:e}class up extends un{onInit(e){var t,l,o,n,i,r,a;let s=null==(t=this.getStepParams("fieldSettings","assignValue"))?void 0:t.value;void 0!==s&&(this.assignValue=s),this.context.defineProperty("collectionField",{get:()=>{var e,t;let l=this.getStepParams("fieldSettings","init")||{},o=`${null==l?void 0:l.dataSourceKey}.${null==l?void 0:l.collectionName}.${null==l?void 0:l.fieldPath}`,n=null==(e=this.context)?void 0:e.dataSourceManager;return null==n||null==(t=n.getCollectionField)?void 0:t.call(n,o)}});let d=this.context,u=null==d?void 0:d.collection,c=this.fieldInit;if(!(null==(l=this.subModels)?void 0:l.field)&&(null==u?void 0:u.getFields)){let e=(u.getFields()||[]).find(e=>(null==e?void 0:e.name)===(null==c?void 0:c.fieldPath));null==u||null==(n=u.getField)||n.call(u,null==c?void 0:c.fieldPath);let t=f.EditableItemModel.getDefaultBindingByField(d,e);if(!t)return;let l=t.modelName;null==d||null==(r=d.engine)||null==(i=r.createModel)||i.call(r,{use:l,stepParams:{fieldSettings:{init:c}},parentId:this.uid,subKey:"field"})}let p=null==(o=this.context)?void 0:o.collection,m=this.fieldPath;if(m){let e=null==p||null==(a=p.getField)?void 0:a.call(p,m),t=(null==e?void 0:e.title)||m,l=m.includes(".")?m.split("."):[m];this.setProps({label:t,name:l})}}get fieldInit(){return this.getStepParams("fieldSettings","init")||{}}get fieldPath(){var e;return null==(e=this.fieldInit)?void 0:e.fieldPath}getAssignedEntry(){let e=this.fieldPath;return e&&this.collectionField?[e,this.assignValue]:null}render(){var e,t;if(!this.collectionField)return(0,m.jsx)(f.FieldDeletePlaceholder,{});let l=this.context,o=l.collection,n=this.fieldInit,r=(null==(e=this.props)?void 0:e.name)||(this.fieldPath?[this.fieldPath]:void 0),a=this.fieldPath,s=null==(t=this.subModels)?void 0:t.field,d=uu(s),u=()=>{var e,t,d,u,c;let[p,h]=i.default.useState(null);i.default.useEffect(()=>{var e,t,i,r,d,u,c,p,m,g,v,y,_,b,x,M,w,S,k,F,C;if(!a)return;let A=((null==o||null==(e=o.getFields)?void 0:e.call(o))||[]).find(e=>(null==e?void 0:e.name)===a);o.getField(a);let P=f.EditableItemModel.getDefaultBindingByField(l,A);if(!P)return;let T=P.modelName,j=us(s,n),I=null==l||null==(i=l.engine)||null==(t=i.createModel)?void 0:t.call(i,{use:"VariableFieldFormModel",subModels:{fields:[{use:T,...j}]}});if(!I)return;null==(d=I.context)||null==(r=d.defineProperty)||r.call(d,"collection",{value:o});let L=null==l?void 0:l.dataSource;L&&(null==(c=I.context)||null==(u=c.defineProperty)||u.call(c,"dataSource",{value:L}));let R=null==o||null==(p=o.getField)?void 0:p.call(o,null==n?void 0:n.fieldPath);R&&(null==(g=I.context)||null==(m=g.defineProperty)||m.call(g,"collectionField",{value:R}));let D=null==l?void 0:l.blockModel;D&&(null==(y=I.context)||null==(v=y.defineProperty)||v.call(y,"blockModel",{value:D}));let E=l.form;E&&(null==(F=I.context)||null==(k=F.defineProperty)||k.call(F,"form",{value:E})),I.context&&Object.defineProperty(I.context,"resource",{configurable:!0,enumerable:!0,get:()=>null==D?void 0:D.resource});let Y=null==I||null==(b=I.subModels)||null==(_=b.fields)?void 0:_[0],N=null==o||null==(x=o.getField)?void 0:x.call(o,null==n?void 0:n.fieldPath),O=null==N?void 0:N.type,B=null==N?void 0:N.interface,V="belongsToMany"===O||"hasMany"===O||"belongsToArray"===O||"m2m"===B||"o2m"===B||"mbm"===B;if(null==Y||null==(M=Y.setProps)||M.call(Y,{disabled:!1,readPretty:!1,updateAssociation:!1,multiple:V}),null==Y||null==(w=Y.dispatchEvent)||w.call(Y,"beforeRender",void 0,{sequential:!0,useCache:!0}),(0,ui.NI)(Y,N),!(null==Y||null==(S=Y.props)?void 0:S.fieldNames)&&(null==N?void 0:N.targetCollection)){let e=N.targetCollection,t=(null==N?void 0:N.targetKey)||(null==e?void 0:e.filterTargetKey)||"id";null==Y||null==(C=Y.setProps)||C.call(Y,{fieldNames:{label:null==e?void 0:e.titleField,value:t}})}return h(I),()=>{var e,t,l,o;null==I||null==(l=I.subModels)||null==(t=l.fields)||null==(e=t.forEach)||e.call(t,e=>{var t;return null==e||null==(t=e.remove)?void 0:t.call(e)}),null==I||null==(o=I.remove)||o.call(I)}},[]);let g=e=>(i.default.useEffect(()=>{var t,l,o;if(!p)return;null==(t=p.setProps)||t.call(p,{...e});let n=null==p||null==(o=p.subModels)||null==(l=o.fields)?void 0:l[0];if(n){var i,r=this;null==(i=n.setProps)||i.call(n,{value:null==e?void 0:e.value,onChange:function(){for(var t,l,o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];let s=uc(i&&i.length?i[0]:void 0);null==(t=n.setProps)||t.call(n,{value:s}),r.assignValue=s,null==e||null==(l=e.onChange)||l.call(e,s)}})}},[e]),p?(0,m.jsx)("div",{style:{width:"100%"},children:(0,m.jsx)(f.FlowModelRenderer,{model:p,showFlowSettings:!1})}):null),v=()=>{var e,t;return(0,m.jsx)(b.Input,{placeholder:`<${(null==(e=(t=this.context).t)?void 0:e.call(t,"Null"))??"Null"}>`,readOnly:!0,style:{width:"100%"}})},y=e=>(0,m.jsx)(ur.h,{t:this.context.t,value:null==e?void 0:e.value,onChange:null==e?void 0:e.onChange,containerStyle:{width:"100%"}}),_=async()=>{var e;let t=null==(e=this.context)?void 0:e.getPropertyMetaTree;return"function"==typeof t?await t():[]},x=null==o||null==(e=o.getField)?void 0:e.call(o,this.fieldPath),M=(0,ua.kB)(x),w=(0,ua.Ot)(x,null==(t=this.fieldPath)?void 0:t.split(".").slice(-1)[0]),S=w?(0,ua.cd)(x,M):ua.tS,k=(null==(d=this.props)?void 0:d.label)??this.fieldPath??"",F=null==o||null==(u=o.getField)?void 0:u.call(o,this.fieldPath);return k=(null==(c=this.props)?void 0:c.label)??(null==F?void 0:F.title)??k,(0,m.jsx)(f.FormItem,{...this.props,label:k,name:r,initialValue:this.assignValue,valuePropName:"__assign_value__",trigger:"__assign_trigger__",validateTrigger:"__assign_trigger__",children:i.default.createElement(e=>{let t=null==e?void 0:e.__assign_value__,l=void 0===t?this.assignValue:t;return(0,m.jsx)(ua.Wm,{value:l,onChange:t=>{var l;this.assignValue=t,null==e||null==(l=e.__assign_trigger__)||l.call(e,t)},baseMetaTree:_,constantComponent:g,nullComponent:v,runJSComponent:y,isDateLikeField:w,dateComponentProps:S,clearValue:""})})})};return(0,m.jsx)(u,{},d)}constructor(e){super(e),this.assignValue=void 0,(0,h.define)(this,{assignValue:h.observable})}}up.define({label:(0,f.tExpr)("Assign field")}),up.registerFlow({key:"editItemSettings",sort:300,title:(0,f.tExpr)("Form 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=>({label:{"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: ")+n}}}}),defaultParams:e=>{var t;return{label:(null==(t=e.model.collectionField)?void 0:t.title)||e.model.fieldPath}},handler(e,t){var l;t.label&&t.label===(null==(l=e.model.collectionField)?void 0:l.title)?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{async handler(e){let t=e.model.collectionField;t&&e.model.setProps(t.getComponentProps());let l=e.model.fieldPath,o=l.includes(".")?l.split("."):l;e.model.setProps({name:o})}},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"})})}},validation:{title:(0,f.tExpr)("Validation"),use:"validation"},required:{title:(0,f.tExpr)("Required"),use:"required"}}});class um extends aZ{}um.itemModelName="DetailsItemModel",um.define({label:'{{t("Display association fields")}}'});let uh=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},uf=e=>{let{heightMode:t,containerRef:l,actionsRef:o,paginationRef:n,deps:r=[]}=e,[a,s]=(0,i.useState)(),d=(0,i.useCallback)(()=>{if("specifyValue"!==t&&"fullHeight"!==t)return void s(e=>void 0===e?e:void 0);let e=l.current;if(!e)return;let i=e.getBoundingClientRect().height;if(!i)return;let r=Math.max(0,Math.floor(i-uh(o.current)-uh(n.current)));s(e=>e===r?e:r)},[t,l,o,n]);return(0,i.useLayoutEffect)(()=>{d()},[d,...r]),(0,i.useEffect)(()=>{if(!l.current||"u"<typeof ResizeObserver)return;let e=l.current,t=o.current,i=n.current,r=new ResizeObserver(()=>d());return r.observe(e),t&&r.observe(t),i&&r.observe(i),()=>r.disconnect()},[d,l,o,n,...r]),a};class ug extends sP.t{createResource(e,t){var l,o;if((null==(l=this.association)?void 0:l.type)==="hasOne"||(null==(o=this.association)?void 0:o.type)==="belongsTo"||Object.keys(t).includes("filterByTk")){let e=this.context.createResource(f.SingleRecordResource);return e.isNewRecord=!1,e}let n=this.context.createResource(f.MultiRecordResource);return n.setPageSize(1),n}onInit(e){var t,l;super.onInit(e),this.hadSingleRecordData=(null==(l=this.resource)||null==(t=l.hasData)?void 0:t.call(l))??!1,this.hasMultiRefreshDispatched=!1;let o=(0,f.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.getCurrentRecord(),cache:!1,resolveOnServer:(0,f.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.getCurrentRecord()),meta:o}),this.resource.on("refresh",()=>{var e,t;if(this.isMultiRecordResource()){this.hasMultiRefreshDispatched=!0,(0,dT.Xi)(this,"paginationChange");return}let l=this.hadSingleRecordData;this.hadSingleRecordData=(null==(t=this.resource)||null==(e=t.hasData)?void 0:e.call(t))??!1,l&&(0,dT.Xi)(this,"paginationChange")})}isMultiRecordResource(){return this.resource instanceof f.MultiRecordResource}hasDispatchedMultiRefresh(){return this.hasMultiRefreshDispatched}getCurrentRecord(){let e=this.resource.getData();return Array.isArray(e)?e[0]:e}hasAvailableData(){return this.resource.hasData()}async refresh(){await this.resource.refresh()}renderPagination(){if(!this.resource.loading&&!this.hasAvailableData()){var e,t;return(0,m.jsx)("div",{style:{textAlign:"center",color:null==(t=this.context)||null==(e=t.themeToken)?void 0:e.colorTextDescription},children:this.translate("No available data currently")})}let l=this.resource;return!this.isMultiRecordResource()||!l.getPage()||1>=this.resource.getMeta("count")?null:(0,m.jsx)("div",{style:{textAlign:"center"},children:(0,m.jsx)(b.Pagination,{simple:!0,pageSize:1,showSizeChanger:!1,current:l.getPage(),total:l.getCount(),onChange:this.handlePageChange,style:{display:"inline-block"}})})}renderConfigureActions(){return(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:this.getModelClassName("RecordActionGroupModel"),afterSubModelInit:async e=>{e.setStepParams("buttonSettings","general",{type:"default"})},children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Actions")})},"details-actions-add")}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n}=this.props,i=!!this.context.flowSettingsEnabled,r=!i&&!this.hasAvailableData(),{heightMode:a,height:s}=this.decoratorProps;return(0,m.jsx)(uy,{model:this,gridModel:this.subModels.grid,isConfigMode:i,heightMode:a,height:s,layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n},actions:(0,m.jsx)(f.DndProvider,{children:(0,m.jsx)("div",{style:r?{pointerEvents:"none",opacity:.45}:void 0,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.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:f.DragHandler,sort:1}]})},e.uid)}),this.renderConfigureActions()]})})})})}constructor(...e){super(...e),this.hadSingleRecordData=!1,this.hasMultiRefreshDispatched=!1,this._defaultCustomModelClasses={RecordActionGroupModel:"RecordActionGroupModel",DetailsItemModel:"DetailsItemModel",DetailsAssociationFieldGroupModel:"DetailsAssociationFieldGroupModel",DetailsCustomItemModel:"DetailsCustomItemModel"},this.customModelClasses={},this.handlePageChange=async e=>{if(this.resource instanceof f.MultiRecordResource){let t=this.resource;t.setPage(e),t.loading=!0,await this.refresh()}}}}ug.scene=sC.P.oam;let uv=(0,f.observer)(e=>{let{model:t}=e;return t.renderPagination()}),uy=e=>{let{model:t,gridModel:l,isConfigMode:o,heightMode:n,height:r,layoutProps:a,actions:s}=e,d=(0,i.useRef)(null),u=(0,i.useRef)(null),c=(0,i.useRef)(null),p="specifyValue"===n||"fullHeight"===n,h=uf({heightMode:n,containerRef:d,actionsRef:u,paginationRef:c,deps:[r]});(0,i.useEffect)(()=>{var e,t;if(!l)return;let o=p?h:void 0;((null==(e=l.props)?void 0:e.height)!==o||(null==(t=l.props)?void 0:t.heightMode)!==n)&&l.setProps({height:o,heightMode:n})},[l,h,p,n]);let g=p?{display:"flex",flexDirection:"column",minHeight:0,height:"100%"}:void 0,v=p?{display:"flex",flexDirection:"column",minHeight:0,flex:1}:void 0;return(0,m.jsx)(dG.s2,{model:t,layoutProps:a,style:g,children:(0,m.jsxs)("div",{ref:d,style:v,children:[(0,m.jsx)("div",{ref:u,style:{textAlign:"right",lineHeight:"0px",paddingBottom:o&&t.context.themeToken.padding},children:s}),(0,m.jsx)(f.FlowModelRenderer,{model:l,showFlowSettings:!1},`${(null==l?void 0:l.uid)||"details-grid"}:${o?"design":"runtime"}`),(0,m.jsx)("div",{ref:c,children:(0,m.jsx)(uv,{model:t})})]})})};ug.registerFlow({key:"detailsSettings",title:(0,f.tExpr)("Details settings"),sort:150,steps:{refresh:{async handler(e){if(!e.resource)throw Error("Resource is not initialized");await e.model.applySubModelsBeforeRenderFlows("grid")}},layout:{use:"layout",title:(0,f.tExpr)("Layout")},dataScope:{use:"dataScope"},defaultSorting:{use:"sortingRule",title:(0,f.tExpr)("Default sorting")},linkageRules:{use:"detailsFieldLinkageRules"}}}),ug.registerFlow({key:"paginationChange",on:"paginationChange",steps:{blockLinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"blockLinkageRules",flowKey:"cardSettings",stepKey:"linkageRules"}},fieldslinkageRulesRefresh:{use:"linkageRulesRefresh",defaultParams:{actionName:"detailsFieldLinkageRules",flowKey:"detailsSettings",stepKey:"linkageRules"}}}}),ug.registerFlow({key:"initialPaginationChangeRefresh",sort:10001,steps:{refreshPaginationRelatedStates:{async handler(e){if(e.model.hidden||!e.model.isMultiRecordResource()||e.model.hasDispatchedMultiRefresh())return;let t=e.model.resource;if(!t)return;let l="manual"===(t.dataLoadingMode??t.loadingMode),o="function"==typeof t.hasActiveFilters&&t.hasActiveFilters();l&&!o&&await (0,dT.Xi)(e.model,"paginationChange")}}}}),ug.define({label:(0,f.tExpr)("Details"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search"),createModelOptions:{use:"DetailsBlockModel",subModels:{grid:{use:"DetailsGridModel"}}},sort:350});class u_ extends f.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("DetailsCustomItemModel"),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")}}u_.renderMode=f.ModelRenderMode.RenderFunction,u_.define({hide:!0,label:(0,f.tExpr)("Others")});class ub extends sb{renderAddSubModelButton(){return this.context.flowSettingsEnabled?(0,m.jsx)(f.AddSubModelButton,{model:this,subModelKey:"items",subModelBaseClasses:[this.context.getModelClassName("DetailsItemModel"),this.context.getModelClassName("DetailsAssociationFieldGroupModel"),this.context.getModelClassName("DetailsCustomItemModel")].filter(Boolean),keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:this.translate("Fields")})}):null}render(){var e,t;let l=null==(e=this.props)?void 0:e.height,o=null==(t=this.props)?void 0:t.heightMode,n=this.context.themeToken,i=super.render();return"defaultHeight"===o?i:(0,m.jsx)("div",{style:{height:l,overflowY:"auto",marginLeft:`-${n.marginLG}px`,marginRight:`-${n.marginLG}px`,paddingLeft:`${n.marginLG}px`,paddingRight:`${n.marginLG}px`},children:i})}constructor(...e){super(...e),this.itemFallback=(0,m.jsx)(b.Skeleton.Input,{block:!0,size:"small",style:{marginBottom:"0.5rem"}}),this.itemSettingsMenuLevel=2,this.itemFlowSettings={showBackground:!0,style:{top:-6,left:-6,right:-6,bottom:-6}},this.dragOverlayConfig={columnInsert:{before:{offsetTop:-6,height:24},after:{offsetTop:3,height:24}},columnEdge:{left:{offsetLeft:-5,width:24},right:{offsetLeft:8,width:24}},rowGap:{above:{offsetTop:-2,height:24},below:{offsetTop:-12,height:24}}}}}function ux(e,t){let{fieldUseModel:l,refreshTargets:o}=t,n=e=>Array.isArray(e)?e.map(e=>{let t={...e};if(t.children)if("function"==typeof t.children){let e=t.children;t.children=async t=>n(await e(t))}else Array.isArray(t.children)&&(t.children=n(t.children));if(t.createModelOptions){let e=t.createModelOptions;t.createModelOptions=async(t,o)=>{let n=await ("function"==typeof e?e(t,o):e);return n.subModels=n.subModels||{},n.subModels.field={...n.subModels.field||{},use:l},n},t.refreshTargets=t.refreshTargets||o}return t}):[];return n(e)}function uM(e,t,l){let{fieldUseModel:o,refreshTargets:n}=l,i=l.key??"js-association-fields",r=l.label??(0,f.tExpr)("Display association fields");return{key:i,type:"group",label:r,searchable:l.searchable??!0,searchPlaceholder:l.searchPlaceholder??(0,f.tExpr)("Search fields"),children:async e=>ux(await t(e),{fieldUseModel:o,refreshTargets:n})}}ub.registerFlow({key:"detailFieldGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class uw extends aZ{}async function uS(e,t){var l;let{useModel:o,fieldUseModel:n,refreshTargets:i,associationPathName:r,associationProvider:a}=t,s=(0,f.buildWrapperFieldChildren)(e,{useModel:o,fieldUseModel:n,associationPathName:r,refreshTargets:i}),d=[],u=null==s||null==(l=s[0])?void 0:l.children;if(Array.isArray(u)&&(d=u),!a)return d;let c=await a(e);return Array.isArray(c)&&0!==c.length?[...d,uM(e,a,{fieldUseModel:n,refreshTargets:i})]:d}uw.itemModelName="FormItemModel";class uk extends u_{static defineChildren(e){return uS(e,{useModel:"DetailsItemModel",fieldUseModel:"JSFieldModel",refreshTargets:["DetailsItemModel"],associationProvider:e=>um.defineChildren(e)})}}uk.define({label:(0,f.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,f.tExpr)("Search fields"),sort:110});class uF extends rB.o{}class uC extends rB.o{constructor(...e){super(...e),this.operator="$eq",this.updateAssociation=!1}}uC.registerFlow({key:"AssociationFieldInit",sort:800,steps:{init:{async handler(e,t){if(e.model.updateAssociation){var l,o;let t=e.model.context.blockModel,n=null==t||null==(l=t.context)?void 0:l.resource,i=null==(o=e.model.parent)?void 0:o.fieldPath;n&&i&&n.addUpdateAssociationValues(i)}}},allowCreateCheck:{async handler(e){var t;let l=await e.aclCheck({dataSourceKey:e.collectionField.dataSourceKey,resourceName:null==(t=e.collectionField)?void 0:t.target,actionName:"create"});e.model.setProps({allowCreate:!!l})}}}});let uA=(e,t)=>e===t,uP=e=>{if(e&&"object"==typeof e){let t=e.data;return t&&"object"==typeof t?t:e}};function uT(e){return"string"==typeof e&&e?e:Array.isArray(e)&&1===e.length&&"string"==typeof e[0]?e[0]:void 0}function uj(e,t){var l;let o="string"==typeof(null==t||null==(l=t.titleCollectionField)?void 0:l.name)?t.titleCollectionField.name:void 0,n=uT(null==t?void 0:t.filterTargetKey)||"id",i="string"==typeof(null==e?void 0:e.value)&&e.value&&!uA(e.value,"value")?e.value:void 0,r="string"==typeof(null==e?void 0:e.label)&&e.label&&!uA(e.label,"label")?e.label:void 0,a=i||n;return{label:r||o||a,value:a}}function uI(e){var t,l,o,n,i,r;let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=!!a.navigation,d=e=>{if(Array.isArray(e))return e.filter(e=>"string"==typeof e&&!!e)},u=d(null==(l=e.view)||null==(t=l.inputArgs)?void 0:t.openerUids),c=d(a.openerUids),p=u||c||[];if(s)return(c||p).filter(Boolean);let m=null==(n=e.view)||null==(o=n.inputArgs)?void 0:o.viewUid,h=null==(r=e.model.context)||null==(i=r.inputArgs)?void 0:i.viewUid;return[...p,"string"==typeof m&&m?m:"string"==typeof h&&h?h:e.model.uid].filter(Boolean)}function uL(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function uR(e){let{value:t,isMultiple:l,valueKey:o,labelKey:n,statusMap:i}=e,r=l?Array.isArray(t)?t:[]:null!=t?[t]:[],a=new Set;for(let e of r){if(!uL(e))continue;let t=e[o];if(null==t)continue;let l="object"==typeof t?JSON.stringify(t):String(t);l&&a.add(l)}for(let e of Array.from(i.keys()))a.has(e)||i.delete(e);let s=[];for(let e of r){if(!uL(e))continue;let t=e[o];if(null==t||null!=e[n])continue;let l="object"==typeof t?JSON.stringify(t):String(t);!l||i.has(l)||(i.set(l,"pending"),s.push({item:e,tk:t,tkKey:l}))}return s}function uD(e){return uL(e)&&"function"==typeof e.setFormValue}function uE(e){var t;let l=uL(e.context)?e.context:void 0;return(null==l?void 0:l.fieldPathArray)??(null==l?void 0:l.fieldPath)??(null==(t=e.props)?void 0:t.name)}function uY(e){if(uD(e.context))return e.context;let t=uL(e.context)?e.context:void 0,l=uL(null==t?void 0:t.blockModel)?t.blockModel:void 0;return uD(null==l?void 0:l.context)?l.context:void 0}function uN(e){let{model:t,value:l,isMultiple:o,fieldNames:n,onChange:r}=e,a=i.default.useRef(new Map);i.default.useEffect(()=>{let e=t.resource;if("function"!=typeof(null==e?void 0:e.get)||!n.value||!n.label)return;let i=l,s=uR({value:i,isMultiple:o,valueKey:n.value,labelKey:n.label,statusMap:a.current});if(!s.length)return;let d=uE(t),u=uY(t),c=async t=>{let{item:l,tk:s,tkKey:c}=t;try{var p;let t=await (null==(p=e.get)?void 0:p.call(e,s));if(!uL(t))return;let a={...l,...t};if(null==a[n.label])return;let c=o?(Array.isArray(i)?i:[]).map(e=>uL(e)&&e[n.value]===s?a:e):a;if("function"==typeof(null==u?void 0:u.setFormValue)&&null!=d)return void await u.setFormValue(d,c,{source:"default",markExplicit:!1,triggerEvent:!1});r(c)}catch{}finally{a.current.set(c,"done")}};s.forEach(e=>{c(e)})},[n.label,n.value,o,t,r,l])}function uO(e){if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(Array.isArray(e)){let t=e.map(e=>{if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return e;if(e&&"object"==typeof e){let t=e.label??e.name;if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return t}}).filter(e=>void 0!==e);return t.length?t.map(String).join(", "):void 0}if(e&&"object"==typeof e){let t=e.label??e.name;if("string"==typeof t||"number"==typeof t||"boolean"==typeof t)return t}}function uB(e){var t,l,o;let{option:n,fieldNames:i}=e,r=(0,f.useFlowModel)(),a=uP(n),s=uj(i,null==(t=r.context.collectionField)?void 0:t.targetCollection),d=r.subModels.field,u=uO(null==a?void 0:a[s.label])??uO(null==a?void 0:a.label)??uO(null==a?void 0:a[s.value]);if(!d)return(0,m.jsx)("span",{children:u??"N/A"});let c=String((null==a?void 0:a[s.value])??u??"association-option"),p=d.createFork({},c);p.context.defineProperty("record",{get:()=>a,cache:!1,meta:(0,f.createCurrentRecordMetaFactory)(p.context,()=>p.context.collection)});let h=null==(o=r.context.collectionField.targetCollection)||null==(l=o.getField)?void 0:l.call(o,s.label),g=h&&"function"==typeof h.getComponentProps?h.getComponentProps():{};p.setProps({value:u,clickToOpen:!1,...g});let v=null!=u&&""!==u?p.render():"N/A";return(0,m.jsx)("span",{style:{pointerEvents:"none"},children:v})}function uV(e,t){let l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"record",n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[];if(!e)return l?[]:void 0;let{value:i}=t||{},r=e=>"object"==typeof e&&null!==e,a=e=>{if(r(e))return{label:(0,m.jsx)(uB,{option:e,fieldNames:t}),value:e[i]}};if("value"===o){let t=e=>{if("object"==typeof e&&null!==e)return a(e);let t=n.find(t=>(null==t?void 0:t[i])===e);return t?a(t):{label:String(e),value:e}};return l?Array.isArray(e)?e.map(e=>t(e)).filter(Boolean):[]:Array.isArray(e)?t(e[0]):t(e)}if(l)return Array.isArray(e)?e.filter(r).map(a).filter(Boolean):[];if(Array.isArray(e)){let t=e[0];return r(t)?a(t):void 0}return r(e)?a(e):void 0}function uH(e,t,l){return(null==e?void 0:e.length)?e.map(e=>(0,g.omit)(e,"disabled","options","style")):l?Array.isArray(t)?t.filter(e=>"object"==typeof e&&null!==e):[]:t&&"object"==typeof t?[t]:[]}let uq="calc(12px + env(safe-area-inset-bottom, 0px))",u$={paddingBottom:uq};function uz(e){return{maxHeight:"60vh",overflowY:"auto",paddingBottom:e?void 0:uq}}let uU=(0,A.css)`
845
845
  div {
846
846
  white-space: nowrap !important;
847
847
  overflow: hidden;
@@ -885,7 +885,7 @@ if (!ctx.record) {
885
885
  text-overflow: ellipsis;
886
886
  white-space: nowrap !important;
887
887
  }
888
- `,u5=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=u0(_,h);return(0,m.jsxs)(b.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(b.Select,{style:{width:"100%"},...y,className:[u1,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})}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:u2,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 u8 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)(u5,{...this.props})}}let u4={page:1,pageSize:40,loading:!1,hasMore:!0},u3=e=>`__search__${e}`,u6=e=>`__assoc__${e}`;async function u9(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(u3(r)):(c.setPage(1),c.addFilterGroup(u3(r),{[p]:u})),await c.refresh();let m=c.getData();e.model.setDataSource(m),m.length<u4.pageSize?u4.hasMore=!1:(u4.hasMore=!0,u4.page++),e.model.setProps({searchText:u})}catch(t){console.error("AssociationSelectField search flow error:",t),e.model.setDataSource([])}}u8.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){var l;let o=u3(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),u4.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})}}}}}),u8.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<u4.pageSize?u4.hasMore=!1:(u4.hasMore=!0,u4.page++))}}}}),u8.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)&&!u4.loading&&u4.hasMore){u4.loading=!0;try{let t=e.model.resource;t.setPage(u4.page),await t.refresh();let l=t.getData(),o=e.model.getDataSource()||[];e.model.setDataSource([...o,...l]),l.length<u4.pageSize?(u4.hasMore=!1,u4.page=1):u4.page++}catch(e){console.error("Scroll pagination request failed:",e)}finally{u4.loading=!1}}}}}});let u7=(0,g.debounce)(u9,500);u8.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:u7}}}),u8.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(u4.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(u6(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})}}}}}),u8.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})}}}}),u8.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}))}}}}),u8.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)(uZ,{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}}})}}}}),u8.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 ce extends u8{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"})}}ce.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})}}}}),ce.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 ct=__webpack_require__(6832);class cl extends uF{render(){return(0,m.jsx)(ct.DateFilterDynamicComponent,{...this.props})}}let co=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)(ct.DateFilterDynamicComponent,{...r})};class cn extends cl{setProps(e){super.setProps({...e,showTime:!1,utc:!1})}render(){return(0,m.jsx)(co,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});let ci=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)(ct.DateFilterDynamicComponent,{...i,value:t,format:r,picker:n,showTime:o})};class cr extends cl{render(){return(0,m.jsx)(ci,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});let ca=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)(ct.DateFilterDynamicComponent,{...a})};class cs extends cl{setProps(e){super.setProps({...e,utc:!0})}render(){return(0,m.jsx)(ca,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});let cd="recordSelectDataSourceKey",cu="recordSelectTargetCollection",cc="recordSelectTitleField",cp="recordSelectValueField",cm="allowMultiple",ch="multiple",cf="valueMode",cg=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),cv=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[cd])||(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[cd]=_.dataSourceKey||v,w[cu]=_.target,w[cc]=_.targetCollectionTitleFieldName||(null==e||null==(r=e.titleCollectionField)?void 0:r.name)||w[cc],w[cp]=w[cp]||(null==e?void 0:e.filterTargetKey)||"id",void 0===w[cm]&&void 0===w[ch]&&(w[cm]=!0,w[ch]=!0),w[cf]||(w[cf]="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[cd])||(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[cu],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!cg.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[cc]))return;let t=null==I||null==(e=I.titleCollectionField)?void 0:e.name;t&&d.setValue({...M(),[cc]:t})},[a,p,j,I,c]),(0,i.useEffect)(()=>{if("FilterFormCustomRecordSelectFieldModel"!==p||!j)return;let e=null==c?void 0:c[cp],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(),[cp]:o})},[a,p,j,I,c,E]),(0,i.useEffect)(()=>{"FilterFormCustomRecordSelectFieldModel"!==p||(null==c?void 0:c[cm])===void 0&&(null==c?void 0:c[ch])===void 0&&d.setValue({...M(),[cm]:!0,[ch]:!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))}})]},`${t.value}-${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,[cd]:e,[cu]:void 0,[cc]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Target collection"),asterisk:!0,...F(cu),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,[cu]:e,[cc]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Title field"),asterisk:!0,...F(cc),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cc],options:D,onChange:e=>w(cc,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(cp),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cp],options:E,onChange:e=>w(cp,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[cm])!==!1,onChange:e=>{let t=e.target.checked;d.setValue({...c,[cm]:t,[ch]:t})},children:u("Allow multiple selection")})})]}):null};function cy(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 c_={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},cb=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),cx={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cM={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cw={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 cS(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=c_[e];return l?"function"==typeof l?l(t)||[]:l||[]:[]}function ck(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 cF(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&&cw[e.interface]?cw[e.interface]:(null===et.II||void 0===et.II?void 0:et.II[e.type])||[]}function cC(){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 cA(){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 cP(){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=>cb.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(cx),r&&a.push(cM),cA([...a,...o])}function cT(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=ck(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 cj(e){let{flowEngine:t,fieldModelProps:l={},source:o=[]}=e,n=cT(t,l,o),i=cF(n);return{operatorList:cC(l)?cP(i):i,meta:n}}function cI(e){let{flowEngine:t,fieldModel:l,fieldModelProps:o={},source:n=[]}=e;if("FilterFormCustomRecordSelectFieldModel"===l)return cj(e);let i=ck(t,n);if("SelectFieldModel"===l&&(null==o?void 0:o.mode)==="multiple"&&i){let e=cF(i);return{operatorList:a0(i)?cS(l,o):cP(e),meta:i}}let r=cS(l,o);return r.length>0?{operatorList:r,meta:{fieldModel:l}}:{operatorList:cF(i),meta:i}}function cL(e){let{operatorList:t,meta:l}=cI(e);return cA((t||[]).filter(e=>!(null==e?void 0:e.visible)||e.visible(l)))}function cR(e){var t,l;let{fieldModel:o,fieldModelProps:n={}}=e,i=cL(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 cD(){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 cE=(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)(()=>cL({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v}),[u,h,y,_,b,x,M,w,S]),F=(0,i.useMemo)(()=>cD(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=cR({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 cY 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 cN(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})}cY.renderMode=f.ModelRenderMode.RenderFunction,cY.define({hide:!0,label:(0,f.tExpr)("Others")});var cO=__webpack_require__(6175);let cB=(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 cV extends cY{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,cO.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=cL({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())}}}cV.define({label:'{{t("Custom field")}}',sort:1}),cV.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":cN,"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":cy,"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":cv,properties:{recordSelectTargetCollection:{type:"string","x-validator":cB},recordSelectTitleField:{type:"string","x-validator":cB},recordSelectValueField:{type:"string","x-validator":cB}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,f.tExpr)("Operator"),"x-component":cE,"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=!!cL({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}).find(e=>e.value===u);e.model.operator=(p?u:void 0)||cR({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}),e.model.customFieldProps=c}},connectFields:{use:"connectFields"}}});let cH="__filter_form_value_options__",cq=(e,t)=>null!=e&&""!==e&&("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&(!t||!/(int|big)/i.test(t)||/^-?\d+$/.test(e))),c$=(e,t)=>{if("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},cz=(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:c$(n,i)}if(o===l)return e;let t=r.get(e);return null!=t?t:c$(e,i)};return(n&&Array.isArray(e)?e:[e]).map(e=>a(e)).filter(e=>cq(e,i))},cU=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())},cK=(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},cG=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=cK(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
+ `,u5=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=u0(_,h);return(0,m.jsxs)(b.Space.Compact,{style:{width:"100%"},children:[(0,m.jsx)(b.Select,{style:{width:"100%"},...y,className:[u1,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})}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:u2,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 u8 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)(u5,{...this.props})}}let u4={page:1,pageSize:40,loading:!1,hasMore:!0},u3=e=>`__search__${e}`,u6=e=>`__assoc__${e}`;async function u9(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(u3(r)):(c.setPage(1),c.addFilterGroup(u3(r),{[p]:u})),await c.refresh();let m=c.getData();e.model.setDataSource(m),m.length<u4.pageSize?u4.hasMore=!1:(u4.hasMore=!0,u4.page++),e.model.setProps({searchText:u})}catch(t){console.error("AssociationSelectField search flow error:",t),e.model.setDataSource([])}}u8.registerFlow({key:"eventSettings",sort:900,steps:{bindEvent:{handler(e,t){var l;let o=u3(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),u4.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})}}}}}),u8.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<u4.pageSize?u4.hasMore=!1:(u4.hasMore=!0,u4.page++))}}}}),u8.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)&&!u4.loading&&u4.hasMore){u4.loading=!0;try{let t=e.model.resource;t.setPage(u4.page),await t.refresh();let l=t.getData(),o=e.model.getDataSource()||[];e.model.setDataSource([...o,...l]),l.length<u4.pageSize?(u4.hasMore=!1,u4.page=1):u4.page++}catch(e){console.error("Scroll pagination request failed:",e)}finally{u4.loading=!1}}}}}});let u7=(0,g.debounce)(u9,500);u8.registerFlow({key:"searchSettings",on:"search",steps:{step1:{handler:u7}}}),u8.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(u4.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(u6(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})}}}}}),u8.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})}}}}),u8.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}))}}}}),u8.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)(uZ,{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}}})}}}}),u8.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 ce extends u8{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"})}}ce.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})}}}}),ce.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 ct=__webpack_require__(6832);class cl extends uF{render(){return(0,m.jsx)(ct.DateFilterDynamicComponent,{...this.props})}}let co=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)(ct.DateFilterDynamicComponent,{...r})};class cn extends cl{setProps(e){super.setProps({...e,showTime:!1,utc:!1})}render(){return(0,m.jsx)(co,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateOnlyFilterFieldModel",["date"],{isDefault:!0});let ci=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)(ct.DateFilterDynamicComponent,{...i,value:t,format:r,picker:n,showTime:o})};class cr extends cl{render(){return(0,m.jsx)(ci,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeNoTzFilterFieldModel",["datetimeNoTz"],{isDefault:!0});let ca=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)(ct.DateFilterDynamicComponent,{...a})};class cs extends cl{setProps(e){super.setProps({...e,utc:!0})}render(){return(0,m.jsx)(ca,{...this.props})}}f.FilterableItemModel.bindModelToInterface("DateTimeTzFilterFieldModel",["createdAt","datetime","updatedAt","unixTimestamp"],{isDefault:!0});let cd="recordSelectDataSourceKey",cu="recordSelectTargetCollection",cc="recordSelectTitleField",cp="recordSelectValueField",cm="allowMultiple",ch="multiple",cf="valueMode",cg=new Set(["belongsTo","belongsToMany","hasOne","hasMany","belongsToArray"]),cv=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[cd])||(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[cd]=_.dataSourceKey||v,w[cu]=_.target,w[cc]=_.targetCollectionTitleFieldName||(null==e||null==(r=e.titleCollectionField)?void 0:r.name)||w[cc],w[cp]=w[cp]||(null==e?void 0:e.filterTargetKey)||"id",void 0===w[cm]&&void 0===w[ch]&&(w[cm]=!0,w[ch]=!0),w[cf]||(w[cf]="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[cd])||(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[cu],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!cg.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[cc]))return;let t=null==I||null==(e=I.titleCollectionField)?void 0:e.name;t&&d.setValue({...M(),[cc]:t})},[a,p,j,I,c]),(0,i.useEffect)(()=>{if("FilterFormCustomRecordSelectFieldModel"!==p||!j)return;let e=null==c?void 0:c[cp],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(),[cp]:o})},[a,p,j,I,c,E]),(0,i.useEffect)(()=>{"FilterFormCustomRecordSelectFieldModel"!==p||(null==c?void 0:c[cm])===void 0&&(null==c?void 0:c[ch])===void 0&&d.setValue({...M(),[cm]:!0,[ch]:!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,[cd]:e,[cu]:void 0,[cc]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Target collection"),asterisk:!0,...F(cu),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,[cu]:e,[cc]:void 0})}})}),(0,m.jsx)(il.FormItem,{label:u("Title field"),asterisk:!0,...F(cc),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cc],options:D,onChange:e=>w(cc,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(cp),children:(0,m.jsx)(b.Select,{allowClear:!0,showSearch:!0,optionFilterProp:"label",placeholder:u("Please select"),value:null==c?void 0:c[cp],options:E,onChange:e=>w(cp,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[cm])!==!1,onChange:e=>{let t=e.target.checked;d.setValue({...c,[cm]:t,[ch]:t})},children:u("Allow multiple selection")})})]}):null};function cy(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 c_={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},cb=new Set(["$in","$notIn","$empty","$notEmpty","$includes","$notIncludes"]),cx={label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cM={label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},cw={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 cS(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=c_[e];return l?"function"==typeof l?l(t)||[]:l||[]:[]}function ck(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 cF(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&&cw[e.interface]?cw[e.interface]:(null===et.II||void 0===et.II?void 0:et.II[e.type])||[]}function cC(){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 cA(){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 cP(){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=>cb.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(cx),r&&a.push(cM),cA([...a,...o])}function cT(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=ck(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 cj(e){let{flowEngine:t,fieldModelProps:l={},source:o=[]}=e,n=cT(t,l,o),i=cF(n);return{operatorList:cC(l)?cP(i):i,meta:n}}function cI(e){let{flowEngine:t,fieldModel:l,fieldModelProps:o={},source:n=[]}=e;if("FilterFormCustomRecordSelectFieldModel"===l)return cj(e);let i=ck(t,n);if("SelectFieldModel"===l&&(null==o?void 0:o.mode)==="multiple"&&i){let e=cF(i);return{operatorList:a0(i)?cS(l,o):cP(e),meta:i}}let r=cS(l,o);return r.length>0?{operatorList:r,meta:{fieldModel:l}}:{operatorList:cF(i),meta:i}}function cL(e){let{operatorList:t,meta:l}=cI(e);return cA((t||[]).filter(e=>!(null==e?void 0:e.visible)||e.visible(l)))}function cR(e){var t,l;let{fieldModel:o,fieldModelProps:n={}}=e,i=cL(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 cD(){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 cE=(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)(()=>cL({flowEngine:u,fieldModel:h,source:g,fieldModelProps:v}),[u,h,y,_,b,x,M,w,S]),F=(0,i.useMemo)(()=>cD(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=cR({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 cY 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 cN(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})}cY.renderMode=f.ModelRenderMode.RenderFunction,cY.define({hide:!0,label:(0,f.tExpr)("Others")});var cO=__webpack_require__(6175);let cB=(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 cV extends cY{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,cO.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=cL({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())}}}cV.define({label:'{{t("Custom field")}}',sort:1}),cV.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":cN,"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":cy,"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":cv,properties:{recordSelectTargetCollection:{type:"string","x-validator":cB},recordSelectTitleField:{type:"string","x-validator":cB},recordSelectValueField:{type:"string","x-validator":cB}},"x-reactions":[{dependencies:["fieldModel","source"],fulfill:{state:{componentProps:{fieldModel:"{{$deps[0]}}",source:"{{$deps[1]}}"}}}}]},operator:{type:"string",title:(0,f.tExpr)("Operator"),"x-component":cE,"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=!!cL({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}).find(e=>e.value===u);e.model.operator=(p?u:void 0)||cR({flowEngine:e.model.flowEngine,fieldModel:i,source:d,fieldModelProps:c}),e.model.customFieldProps=c}},connectFields:{use:"connectFields"}}});let cH="__filter_form_value_options__",cq=(e,t)=>null!=e&&""!==e&&("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&(!t||!/(int|big)/i.test(t)||/^-?\d+$/.test(e))),c$=(e,t)=>{if("number"==typeof e||"bigint"==typeof e||"string"==typeof e&&/(int|big)/i.test(t||"")&&/^-?\d+$/.test(e))return e},cz=(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:c$(n,i)}if(o===l)return e;let t=r.get(e);return null!=t?t:c$(e,i)};return(n&&Array.isArray(e)?e:[e]).map(e=>a(e)).filter(e=>cq(e,i))},cU=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())},cK=(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},cG=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=cK(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;
@@ -1290,7 +1290,7 @@ ctx.render(<JsItem />);
1290
1290
  overflow-y: auto;
1291
1291
  padding: 10px;
1292
1292
  }
1293
- `,color:"#fff"}},style:{...n||{},whiteSpace:"wrap"===l?"normal":"nowrap",width:o||"auto"}};if(!a)return(0,m.jsx)(b.Typography.Text,{...s,children:this.renderInDisplayStyle(e)});{let t=(0,g.castArray)(e).flatMap((t,l)=>{let o=this.renderInDisplayStyle(null==t?void 0:t[a],t,Array.isArray(e)),n=i.default.isValidElement(o)?i.default.cloneElement(o,{key:`item-${l}`}):o;return 0===l?[n]:[(0,m.jsx)("span",{children:", "},`sep-${l}`),n]});return(0,m.jsx)(b.Typography.Text,{...s,children:t})}}}v4.registerFlow({key:"displayFieldSettings",title:(0,f.tExpr)("Display Field settings"),sort:200,steps:{overflowMode:{use:"overflowMode"},clickToOpen:{title:(0,f.tExpr)("Enable click-to-open"),uiMode:{type:"switch",key:"clickToOpen"},defaultParams:e=>{var t,l;return e.disableFieldClickToOpen?{clickToOpen:!1}:{clickToOpen:(null==(l=e.collectionField)||null==(t=l.isAssociationField)?void 0:t.call(l))||v8(e)}},hideInSettings:e=>e.disableFieldClickToOpen,async afterParamsSave(e,t){await fK(e,t)},handler(e,t){fz(e,t)}}}}),v4.registerFlow(H);let v3=i.default.memo(e=>{let t=(0,f.useFlowEngine)(),l=e=>{let{active:l,over:o}=e;l.id&&(null==o?void 0:o.id)&&l.id!==o.id&&t.moveModel(l.id,o.id)};return(0,m.jsx)(f.DndProvider,{onDragEnd:l,children:(0,m.jsx)("thead",{...e})})}),v6=(0,f.observer)(e=>{let{className:t,title:l,editable:o,width:n,record:i,recordIndex:r,dataIndex:a,children:s,model:d,...u}=e;return(0,m.jsx)("td",{className:(0,mP.default)(t),...u,children:(0,m.jsxs)("div",{style:{width:n},children:[" ",s]})})}),v9=e=>{let{model:t}=e;return(0,m.jsx)(f.AddSubModelButton,{model:t,subModelKey:"columns",subModelBaseClasses:["TableColumnModel","TableAssociationFieldGroupModel"],keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:t.translate("Fields")})})},v7=e=>{let{pageSize:t,value:l,size:o,collection:n,baseColumns:r,enableIndexColumn:a=!0,model:s}=e,[d,u]=(0,i.useState)(1),[c,p]=(0,i.useState)(t),{t:h}=(0,v.useTranslation)();(0,i.useEffect)(()=>{p(t)},[t]);let f=(0,i.useMemo)(()=>({current:d,pageSize:c,total:null==l?void 0:l.length,onChange:(e,t)=>{u(e),p(t)},showSizeChanger:!0,showTotal:e=>h("Total {{count}} items",{count:e})}),[d,c,l]),y=()=>{let e=mj([a&&{key:"__index__",width:48,align:"center",fixed:"left",render:(e,t,l)=>(d-1)*c+l+1},...r.concat({key:"empty"})].filter(Boolean));return s.context.flowSettingsEnabled&&e.push({key:"addColumn",fixed:"right",width:100,title:(0,m.jsx)(v9,{model:s})}),e},_=(0,i.useCallback)(async(e,t,l)=>{if(!(0,g.isEmpty)(l)){let e=s.context.blockModel.resource,t=s.props.globalSort,o=s.context.collectionField.name,n=l.order?"ascend"===l.order?[l.field]:[`-${l.field}`]:t,i=n?`${o}(sort=${n})`:o,r=e.getAppends().map(e=>RegExp(`^${o}\\(sort=[^)]+\\)$`).test(e)||e===o?i:e);l&&e.setAppends(r),await e.refresh()}},[s]);return(0,m.jsx)(b.Table,{tableLayout:"fixed",size:o,rowKey:n.filterTargetKey,scroll:{x:"max-content"},dataSource:l,columns:y(),pagination:f,onChange:_,className:(0,A.css)`
1293
+ `,color:"#fff"}},style:{...n||{},whiteSpace:"wrap"===l?"normal":"nowrap",width:o||"auto"}};if(!a)return(0,m.jsx)(b.Typography.Text,{...s,children:this.renderInDisplayStyle(e)});{let t=(0,g.castArray)(e).flatMap((t,l)=>{let o=this.renderInDisplayStyle(null==t?void 0:t[a],t,Array.isArray(e)),n=i.default.isValidElement(o)?i.default.cloneElement(o,{key:`item-${l}`}):o;return 0===l?[n]:[(0,m.jsx)("span",{children:", "},`sep-${l}`),n]});return(0,m.jsx)(b.Typography.Text,{...s,children:t})}}}v4.registerFlow({key:"displayFieldSettings",title:(0,f.tExpr)("Display Field settings"),sort:200,steps:{overflowMode:{use:"overflowMode"},clickToOpen:{title:(0,f.tExpr)("Enable click-to-open"),uiMode:{type:"switch",key:"clickToOpen"},defaultParams:e=>{var t,l;return e.disableFieldClickToOpen?{clickToOpen:!1}:{clickToOpen:(null==(l=e.collectionField)||null==(t=l.isAssociationField)?void 0:t.call(l))||v8(e)}},hideInSettings:e=>e.disableFieldClickToOpen,async afterParamsSave(e,t){await fK(e,t)},handler(e,t){fz(e,t)}}}}),v4.registerFlow(H);let v3=i.default.memo(e=>{let t=(0,f.useFlowEngine)(),l=e=>{let{active:l,over:o}=e;l.id&&(null==o?void 0:o.id)&&l.id!==o.id&&t.moveModel(l.id,o.id)};return(0,m.jsx)(f.DndProvider,{onDragEnd:l,children:(0,m.jsx)("thead",{...e})})}),v6=(0,f.observer)(e=>{let{className:t,title:l,editable:o,width:n,record:i,recordIndex:r,dataIndex:a,children:s,model:d,...u}=e;return(0,m.jsx)("td",{className:(0,mP.default)(t),...u,children:(0,m.jsxs)("div",{style:{width:n},children:[" ",s]})})}),v9=e=>{let{model:t}=e;return(0,m.jsx)(f.AddSubModelButton,{model:t,subModelKey:"columns",subModelBaseClasses:["TableColumnModel","TableAssociationFieldGroupModel"],keepDropdownOpen:!0,children:(0,m.jsx)(f.FlowSettingsButton,{icon:(0,m.jsx)(to.SettingOutlined,{}),children:t.translate("Fields")})})},v7=e=>{let{pageSize:t,value:l,size:o,collection:n,baseColumns:r,enableIndexColumn:a=!0,model:s}=e,d=s.parent instanceof mv,[u,c]=(0,i.useState)(1),[p,h]=(0,i.useState)(t),[f,y]=(0,i.useState)(),{t:_}=(0,v.useTranslation)(),x=(0,i.useMemo)(()=>!d||Array.isArray(l)?l:l&&Array.isArray(l.rows)?l.rows:l&&"object"==typeof l?[l]:[],[d,l]),M=(0,i.useMemo)(()=>d&&f?(0,g.orderBy)(x,[e=>(0,g.get)(e,f.field)],[f.order]):x,[d,f,x]);(0,i.useEffect)(()=>{d&&c(1)},[d,l]),(0,i.useEffect)(()=>{h(t)},[t]);let w=(0,i.useMemo)(()=>({current:u,pageSize:p,total:null==x?void 0:x.length,onChange:(e,t)=>{c(e),h(t)},showSizeChanger:!0,showTotal:e=>_("Total {{count}} items",{count:e})}),[u,p,x,_]),S=()=>{let e=mj([a&&{key:"__index__",width:48,align:"center",fixed:"left",render:(e,t,l)=>(u-1)*p+l+1},...r.concat({key:"empty"})].filter(Boolean));return s.context.flowSettingsEnabled&&e.push({key:"addColumn",fixed:"right",width:100,title:(0,m.jsx)(v9,{model:s})}),e},k=(0,i.useCallback)(async(e,t,l,o)=>{let n=Array.isArray(l)?l[0]:l;if(d){if("sort"!==o.action)return;let e=null==n?void 0:n.column,t=(null==e?void 0:e.sortField)||(null==n?void 0:n.field),l=Array.isArray(t)?t.join("."):String(t??""),i=`${s.context.fieldPath}.`,r=l.startsWith(i)?l.slice(i.length):l;y((null==n?void 0:n.order)&&r?{field:r,order:"ascend"===n.order?"asc":"desc"}:void 0),c(1);return}if(!(0,g.isEmpty)(n)){let e=s.context.blockModel.resource,t=s.props.globalSort,l=s.context.collectionField.name,o=n.order?"ascend"===n.order?[n.field]:[`-${n.field}`]:t,i=o?`${l}(sort=${o})`:l,r=e.getAppends().map(e=>RegExp(`^${l}\\(sort=[^)]+\\)$`).test(e)||e===l?i:e);n&&e.setAppends(r),await e.refresh()}},[d,s]);return(0,m.jsx)(b.Table,{tableLayout:"fixed",size:o,rowKey:n.filterTargetKey,scroll:{x:"max-content"},dataSource:M,columns:S(),pagination:w,onChange:k,className:(0,A.css)`
1294
1294
  .ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content {
1295
1295
  display: inline;
1296
1296
  }
@@ -1300,7 +1300,7 @@ ctx.render(<JsItem />);
1300
1300
  .ant-table-column-sorters .ant-table-column-title {
1301
1301
  overflow: visible;
1302
1302
  }
1303
- `,components:{header:{wrapper:v3},body:{cell:v6}}})};class ye extends rB.o{get collection(){return this.context.collection}get collectionField(){return this.context.collectionField}onInit(e){super.onInit(e),this.context.defineProperty("resourceName",{get:()=>this.context.collectionField.target,cache:!1}),this.context.defineProperty("collection",{get:()=>this.context.collectionField.targetCollection}),this.context.defineProperty("prefixFieldPath",{get:()=>this.context.fieldPath}),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}async afterAddAsSubModel(){await super.afterAddAsSubModel(),await this.dispatchEvent("beforeRender")}getBaseColumns(){return this.mapSubModels("columns",e=>"TableColumnModel"===e.use&&e.getColumnProps()).filter(e=>e&&!(null==e?void 0:e.hidden))}render(){return(0,m.jsx)(v7,{...this.props,collection:this.collection,baseColumns:this.getBaseColumns(),model:this})}constructor(...e){super(...e),this.disableTitleField=!0,this.defaultOverflowMode="ellipsis"}}ye.registerFlow({key:"TableAssociation",title:(0,f.tExpr)("Association table settings"),steps:{init:{async handler(e){await e.model.applySubModelsBeforeRenderFlows("columns")}},pageSize:{title:(0,f.tExpr)("Page size"),uiMode:{type:"select",key:"pageSize",props:{options:[{label:"5",value:5},{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100},{label:"200",value:200}]}},defaultParams:{pageSize:10},handler(e,t){e.model.setProps({pageSize:t.pageSize})}}}}),ye.define({label:(0,f.tExpr)("Sub-table")}),d6.bindModelToInterface("DisplaySubTableFieldModel",["m2m","o2m","mbm"]);class yt extends rB.o{getAddSubModelButtonProps(e){let t=this.subModelBaseClasses[e];return Array.isArray(t)?{subModelBaseClasses:t}:{subModelBaseClass:t}}onInit(e){super.onInit(e),this.context.defineProperty("collection",{get:()=>this.context.collectionField.targetCollection}),this.context.defineProperty("prefixFieldPath",{get:()=>this.parent.fieldPath})}render(){return(0,m.jsx)(fj,{...this.props})}constructor(...e){super(...e),this.disableTitleField=!0,this.subModelBaseClasses={action:"RecordActionGroupModel",field:["DetailsItemModel"]}}}yt.define({label:(0,f.tExpr)("Sub-detail"),createModelOptions:{use:"DisplaySubItemFieldModel",subModels:{grid:{use:"DetailsGridModel"}}}}),d6.bindModelToInterface("DisplaySubItemFieldModel",["m2o","o2o","oho","obo","updatedBy","createdBy"]);let yl=e=>(0,g.castArray)(e).filter(e=>null!=e&&""!==e).map(e=>String(e)),yo=e=>{let{parentFieldIndex:t,index:l,blockPage:o}=e,n=t.length>0?t.join("|"):"root";return`row_${n}_${l}_${o}`},yn=e=>{var t;let{name:l,value:o=[]}=e,n=(0,f.useFlowModel)(),r=n.subModels.grid,a=yl(n.context.fieldIndex),s=n.context.record,d=n.context.collectionField.name,u=n.context.flowSettingsEnabled&&0===o.length?[{}]:o,c=n.context.blockModel.resource,p=(null==c||null==(t=c.getPage)?void 0:t.call(c))||0;return u.length>0&&(0,m.jsx)(b.Card,{bordered:!0,style:{position:"relative"},className:(0,A.css)`
1303
+ `,components:{header:{wrapper:v3},body:{cell:v6}}})};class ye extends rB.o{get collection(){return this.context.collection}get collectionField(){return this.context.collectionField}onInit(e){super.onInit(e),this.context.defineProperty("resourceName",{get:()=>this.context.collectionField.target,cache:!1}),this.context.defineProperty("collection",{get:()=>this.context.collectionField.targetCollection}),this.context.defineProperty("prefixFieldPath",{get:()=>this.context.fieldPath}),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}async afterAddAsSubModel(){await super.afterAddAsSubModel(),await this.dispatchEvent("beforeRender")}getBaseColumns(){return this.mapSubModels("columns",e=>"TableColumnModel"===e.use&&e.getColumnProps()).filter(e=>e&&!(null==e?void 0:e.hidden))}render(){return(0,m.jsx)(v7,{...this.props,collection:this.collection,baseColumns:this.getBaseColumns(),model:this})}constructor(...e){super(...e),this.disableTitleField=!0,this.defaultOverflowMode="ellipsis"}}ye.registerFlow({key:"TableAssociation",title:(0,f.tExpr)("Association table settings"),steps:{init:{async handler(e){await e.model.applySubModelsBeforeRenderFlows("columns")}},pageSize:{title:(0,f.tExpr)("Page size"),uiMode:{type:"select",key:"pageSize",props:{options:[{label:"5",value:5},{label:"10",value:10},{label:"20",value:20},{label:"50",value:50},{label:"100",value:100},{label:"200",value:200}]}},defaultParams:{pageSize:10},handler(e,t){e.model.setProps({pageSize:t.pageSize})}}}}),ye.define({label:(0,f.tExpr)("Sub-table")}),d6.bindModelToInterface("DisplaySubTableFieldModel",["m2m","o2m","mbm"]),mv.bindModelToInterface("DisplaySubTableFieldModel",["m2m","o2m","mbm"]);class yt extends rB.o{getAddSubModelButtonProps(e){let t=this.subModelBaseClasses[e];return Array.isArray(t)?{subModelBaseClasses:t}:{subModelBaseClass:t}}onInit(e){super.onInit(e),this.context.defineProperty("collection",{get:()=>this.context.collectionField.targetCollection}),this.context.defineProperty("prefixFieldPath",{get:()=>this.parent.fieldPath})}render(){return(0,m.jsx)(fj,{...this.props})}constructor(...e){super(...e),this.disableTitleField=!0,this.subModelBaseClasses={action:"RecordActionGroupModel",field:["DetailsItemModel"]}}}yt.define({label:(0,f.tExpr)("Sub-detail"),createModelOptions:{use:"DisplaySubItemFieldModel",subModels:{grid:{use:"DetailsGridModel"}}}}),d6.bindModelToInterface("DisplaySubItemFieldModel",["m2o","o2o","oho","obo","updatedBy","createdBy"]);let yl=e=>(0,g.castArray)(e).filter(e=>null!=e&&""!==e).map(e=>String(e)),yo=e=>{let{parentFieldIndex:t,index:l,blockPage:o}=e,n=t.length>0?t.join("|"):"root";return`row_${n}_${l}_${o}`},yn=e=>{var t;let{name:l,value:o=[]}=e,n=(0,f.useFlowModel)(),r=n.subModels.grid,a=yl(n.context.fieldIndex),s=n.context.record,d=n.context.collectionField.name,u=n.context.flowSettingsEnabled&&0===o.length?[{}]:o,c=n.context.blockModel.resource,p=(null==c||null==(t=c.getPage)?void 0:t.call(c))||0;return u.length>0&&(0,m.jsx)(b.Card,{bordered:!0,style:{position:"relative"},className:(0,A.css)`
1304
1304
  > .ant-card-body > .ant-divider:last-child {
1305
1305
  display: none;
1306
1306
  }