@nocobase/client-v2 2.1.20 → 2.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -98,6 +98,7 @@ export declare abstract class CollectionFieldInterface {
98
98
  titleUsable?: boolean;
99
99
  usePathOptions?(field: any): any;
100
100
  hidden?: boolean;
101
+ creatable?: boolean;
101
102
  addComponentOption(componentOption: CollectionFieldInterfaceComponentOption): void;
102
103
  getConfigureFormProperties(collectionInfo?: any): Record<string, ISchema>;
103
104
  getDefaultValueProperty(): {
@@ -15,6 +15,7 @@ interface FieldInterfaceLike {
15
15
  title?: ReactNode;
16
16
  group?: string;
17
17
  order?: number;
18
+ creatable?: boolean;
18
19
  isAssociation?: boolean;
19
20
  supportDataSourceType?: string[];
20
21
  notSupportDataSourceType?: string[];
package/es/index.mjs CHANGED
@@ -209,7 +209,7 @@ import*as __rspack_external__ant_design_icons_a8184985 from"@ant-design/icons";i
209
209
  & > .ant-space-item {
210
210
  flex: 1;
211
211
  }
212
- `,p=e=>{let t=(0,i.default)();return(0,o.jsxs)("div",{style:{display:"inline-flex"},children:[(0,o.jsx)("span",{children:e.format}),(0,o.jsx)(m,{content:t.format(e.format)})]})},m=e=>{let{content:t}=e,{token:l}=s.theme.useToken();return(0,o.jsx)("span",{style:{display:"inline-block",background:l.colorBgTextHover,marginLeft:l.marginMD,lineHeight:"1",padding:l.paddingXXS,borderRadius:l.borderRadiusOuter},children:t})},h=e=>{let{onChange:t,defaultValue:l,formats:n,picker:i}=e,[r,{setFalse:p,setTrue:h}]=(0,a.useBoolean)(e.value&&!n.includes(e.value)),[f,g]=(0,d.useState)(e.value&&!n.includes(e.value)?e.value:l),[v,y]=(0,d.useState)(f?u.format(f):null),_=e=>{"custom"===e.target.value?(h(),t(f)):(p(),t(e.target.value))};return(0,d.useEffect)(()=>{n.includes(e.value)?p():h(),g(e.value&&!n.includes(e.value)?e.value:l)},[e.value]),(0,d.useEffect)(()=>{y(f?u.format(f):null)},[f]),(0,o.jsx)(s.Space,{className:c,children:(0,o.jsx)(s.Radio.Group,{value:r?"custom":e.value,onChange:_,children:(0,o.jsx)(s.Space,{direction:"vertical",children:e.options.map(e=>"custom"===e.value?(0,o.jsxs)(s.Radio,{value:e.value,children:[(0,o.jsx)(s.Input,{style:{width:"150px"},value:f,onChange:e=>{e.target.value?y(u.format(e.target.value)):y(null),r&&t(e.target.value),g(e.target.value)}}),(0,o.jsx)(m,{content:v})]},e.value):i&&"date"!==i?void 0:(0,o.jsx)(s.Radio,{value:e.value,"aria-label":e.value,children:(0,o.jsx)("span",{role:"button","aria-label":e.value,children:e.label})},e.value))})})})},f=(0,r.connect)(h,(0,r.mapProps)({dataSource:"options"},e=>({...e})))},1793(e,t,l){l.d(t,{mD:()=>G,zv:()=>em});var o=l(1178),n=l(1649),i=l(691),r=l(2793),a=l(3526),s=l(504),d=l(7309),u=l(9133),c=l(9624),p=l(7720),m=l(4881),h=l(6175),f=l(6305);let g=e=>e?e.replace(/\s*HH?:mm(?::ss)?(?:\.SSS)?/g,"").trim():e;function v(e,t){return t?Array.isArray(e)?e[0]:void 0:e}function y(e,t){return"string"==typeof e?(0,f.Pn)(e,t):t}function _(e,t){let l=String(e||"").trim();if(!l)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(l)){let e=(0,a.dayjs)(l);if(e.isValid())return e}if(t){let e=(0,a.dayjs)(l,t,!0);if(e.isValid())return e}let o=(0,a.dayjs)(l);if(o.isValid())return o;if(t){let e=(0,a.dayjs)(l,t);if(e.isValid())return e}return null}function b(e,t){if(a.dayjs.isDayjs(e))return e;if(e instanceof Date){let t=(0,a.dayjs)(e);return t.isValid()?t:null}return"string"==typeof e?_(e,t):null}function x(e,t){if(!Array.isArray(e))return null;let l=b(e[0],t),o=b(e[1],t);return l&&o?[l,o]:null}let M=e=>{let{picker:t="date",format:l,showTime:i,timeFormat:d,value:u,isRange:c=!1,onChange:p,style:m}=e,h=(0,s.useFlowContext)(),f=h.model.translate.bind(h.model),_=(0,n.useMemo)(()=>v(u,c),[c,u]),[M,w]=(0,n.useState)(()=>y(_,t)),S=e=>{let o=e===t&&l?l:(0,a.getPickerFormat)(e),n="date"===e?g(o):o;return(0,a.getDateTimeFormat)(e,n,i,d)},k=(0,n.useMemo)(()=>S(M),[M,l,t,i,d]),F=(0,n.useMemo)(()=>c?null:b(u,k),[c,u,k]),C=(0,n.useMemo)(()=>c?x(u,k):null,[c,u,k]),A=(0,n.useMemo)(()=>[{label:f("Date"),value:"date"},{label:f("Month"),value:"month"},{label:f("Quarter"),value:"quarter"},{label:f("Year"),value:"year"}],[f]),P=e=>{if(w(e),p){if(c){C&&p(C);return}F&&p(F)}},T={utc:!0,underFilter:!0,format:k,picker:M,inputReadOnly:h.isMobileLayout,showTime:!!i&&{defaultValue:(0,a.dayjs)("00:00:00","HH:mm:ss")},value:F,onChange:e=>{if(e&&a.dayjs.isDayjs(e)){null==p||p(e);return}null==p||p(null)},style:{flex:1}},j={utc:!0,underFilter:!0,format:k,picker:M,inputReadOnly:h.isMobileLayout,showTime:!!i&&{defaultValue:[(0,a.dayjs)("00:00:00","HH:mm:ss"),(0,a.dayjs)("23:59:59","HH:mm:ss")]},value:C,onChange:e=>{if(Array.isArray(e)&&e[0]&&e[1]){null==p||p([e[0],e[1]]);return}null==p||p(null)},style:{flex:1}};return(0,o.jsxs)(r.Space.Compact,{style:{width:"100%",...m||{}},children:[(0,o.jsx)(r.Select,{style:{width:100},popupMatchSelectWidth:!1,value:M,options:A,onChange:P}),c?(0,o.jsx)(r.DatePicker.RangePicker,{...j}):(0,o.jsx)(r.DatePicker,{...T})]})};var w=l(9210);let S=new Set(["date","datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"]),k=new Set(["datetime","createdAt","updatedAt","unixTimestamp"]),F="YYYY-MM-DD",C="YYYY-MM-DD HH:mm:ss",A=["exact","past","next","today","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"],P={exact:"Exact day",past:"Past",next:"Next",today:"Today",yesterday:"Yesterday",tomorrow:"Tomorrow",thisWeek:"This Week",lastWeek:"Last Week",nextWeek:"Next Week",thisMonth:"This Month",lastMonth:"Last Month",nextMonth:"Next Month",thisQuarter:"This Quarter",lastQuarter:"Last Quarter",nextQuarter:"Next Quarter",thisYear:"This Year",lastYear:"Last Year",nextYear:"Next Year"};function T(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=A.map(t=>({value:t,label:(null==e?void 0:e(P[t]))??P[t]}));return t&&l.splice(3,0,{value:"now",label:(null==e?void 0:e("Now"))??"Now"}),l}function j(e,t){let l=String(e||"").trim();if(!l)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(l)){let e=(0,a.dayjs)(l);if(e.isValid())return e}if(t){let e=(0,a.dayjs)(l,t,!0);if(e.isValid())return e}let o=(0,a.dayjs)(l);if(o.isValid())return o;if(t){let e=(0,a.dayjs)(l,t);if(e.isValid())return e}return null}function I(e,t){if(a.dayjs.isDayjs(e))return e;if(e instanceof Date){let t=(0,a.dayjs)(e);return t.isValid()?t:null}return"string"==typeof e?j(e,t):null}function L(e,t){let l=I(e,t.format);if(!(null==l?void 0:l.isValid()))return e;switch(t.exactNormalizeMode){case"date":return l.format(F);case"datetimeNoTz":return l.format(t.showTime?C:F);case"iso":return l.toISOString();default:return e}}function D(e,t){let l=I(e,t);return(null==l?void 0:l.isValid())?l:null}function R(e,t){if(!Array.isArray(e))return null;let l=D(e[0],t),o=D(e[1],t);return l&&o?[l,o]:null}function E(e,t){return t.isRange?R(e,t.format):D(e,t.format)}function Y(e){return"date"===e?"date":"datetimeNoTz"===e?"datetimeNoTz":k.has(e)?"iso":"none"}function N(e,t){return"none"===t.exactNormalizeMode?e:"string"==typeof e||a.dayjs.isDayjs(e)||e instanceof Date?L(e,t):Array.isArray(e)?e.map(e=>"string"==typeof e||a.dayjs.isDayjs(e)||e instanceof Date?L(e,t):e):e}function O(e){return"year"===e||"quarter"===e||"month"===e||"date"===e?e:"date"}let B={picker:"date",showTime:!1,timeFormat:"HH:mm:ss",format:"YYYY-MM-DD",exactNormalizeMode:"none"};function V(e){return"string"==typeof(null==e?void 0:e.interface)?e.interface:""}function H(e){var t;return("function"==typeof(null==e?void 0:e.getComponentProps)?e.getComponentProps():null)||(null==e||null==(t=e.uiSchema)?void 0:t["x-component-props"])||{}}function q(e,t){if(null===e||(0,s.isRunJSValue)(e)||"string"==typeof e&&(0,s.isVariableExpression)(e)&&!(0,s.isCtxDateExpression)(e))return e;if(""===e||void 0===e)return"";let l=N(e,{exactNormalizeMode:t.exactNormalizeMode,format:t.format||"YYYY-MM-DD HH:mm:ss",showTime:t.showTime});return(0,s.serializeCtxDateValue)(l)||l}function $(e){return{...e,width:"100%",minWidth:0}}function z(e){var t;e&&(e._reactiveWrapperCache=void 0,null==(t=e.setupReactiveRender)||t.call(e))}function K(e,t,l){let o=Array.isArray(null==e?void 0:e.paths)?e.paths.map(e=>String(e)):[],n=o;t.length&&o.length>=t.length&&t.every((e,t)=>o[t]===e)&&(n=[...l,...o.slice(t.length)]);let i=e=>Array.isArray(e)?e.map(e=>K(e,t,l)):"function"==typeof e?async()=>{let o=await e();return Array.isArray(o)?o.map(e=>K(e,t,l)):[]}:e;return{...e,paths:n,children:(null==e?void 0:e.children)?i(e.children):void 0}}function U(e,t){var l;if(!t)return e;let o=K(t,["item"],["item","parentItem"]),n={...o,name:"parentItem",title:(null==(l=o.title)?void 0:l.replace("Current item","Parent item"))||"Parent item"},i=e=>{let t=Array.isArray(e.children)?e.children:[];if(!t.some(e=>(null==e?void 0:e.name)==="parentItem"))return{...e,children:[...t,n]};let l=t.map(e=>(null==e?void 0:e.name)!=="parentItem"?e:i(e));return{...e,children:l}};return i(e)}function G(e,t){let l=Array.isArray(e)?e:[],o=Array.isArray(t)?t:[];if(!o.length)return l;let n=l.find(e=>(null==e?void 0:e.name)==="item"),i=o.find(e=>(null==e?void 0:e.name)==="item");if(!i)return l;let r=U(i,n),a=[],s=!1;for(let e of l){if(!s&&(null==e?void 0:e.name)==="item"){a.push(r),s=!0;continue}a.push(e)}return s||a.push(r),a}function W(e){var t;if(!e)return;let l=(null==e||null==(t=e.getStepParams)?void 0:t.call(e,"fieldSettings","init"))||{};return(null==l?void 0:l.fieldPath)||(0,u.Gj)(e)}function J(e){var t;let l=null==e||null==(t=e.subModels)?void 0:t.field;return l&&!Array.isArray(l)?l:void 0}let X=new Set(["value","defaultValue","hidden","onChange","onClick","open","searchText","dropdownRender","popupRender","optionRender"]),Q="RecordSelectFieldModel",Z=new Set(["FieldModel","SubFormFieldModel","SubFormListFieldModel","SubTableFieldModel","PopupSubTableFieldModel","RecordPickerFieldModel"]);function ee(e){return(null==e?void 0:e.customFieldModelInstance)||J(e)}function et(){for(var e=arguments.length,t=Array(e),l=0;l<e;l++)t[l]=arguments[l];return t.find(e=>"string"==typeof e&&!!e)}function el(){for(var e=arguments.length,t=Array(e),l=0;l<e;l++)t[l]=arguments[l];return t.find(e=>"boolean"==typeof e)}function eo(e){return!!e&&Z.has(e)}function en(e){return(null==e?void 0:e.endsWith("RecordSelectFieldModel"))??!1}function ei(e){var t,l,o,n,i,r,a,s,d;let u=J(e),c=(null==e||null==(t=e.getStepParams)?void 0:t.call(e,"formItemSettings","fieldSettings"))??{},p=ee(e),m=(null==p?void 0:p.props)??{},h=(null==e?void 0:e.customFieldProps)??(null==c?void 0:c.fieldModelProps)??{};return{originFieldModel:p,originProps:m,customFieldName:et(null==c?void 0:c.name),customFieldProps:h,currentAllowMultiple:el(null==p||null==(o=p.getStepParams)||null==(l=o.call(p,"selectSettings","allowMultiple"))?void 0:l.allowMultiple,null==p||null==(r=p.stepParams)||null==(i=r.selectSettings)||null==(n=i.allowMultiple)?void 0:n.allowMultiple,null==m?void 0:m.allowMultiple,null==m?void 0:m.multiple,null==h?void 0:h.allowMultiple,null==h?void 0:h.multiple),currentFieldModelUse:et(null==u||null==(s=u.stepParams)||null==(a=s.fieldBinding)?void 0:a.use,null==u?void 0:u.use,null==c?void 0:c.fieldModel,null==e||null==(d=e.customFieldModelInstance)?void 0:d.use)}}function er(e){let{collection:t,customFieldName:l,fieldPath:o,fieldName:n}=e;if(!(null==t?void 0:t.name)||!o)return;let i=o.startsWith(`${u.a_}:`)&&(l||n)||o;return{dataSourceKey:t.dataSourceKey,collectionName:t.name,fieldPath:i}}function ea(e){let t={};for(let[l,o]of Object.entries(e??{}))X.has(l)||/^on[A-Z]/.test(l)||(t[l]=o);return t}function es(e){var t;let{placeholder:l,originProps:o,customFieldProps:n,collectionField:i}=e,r=ea(o),a=ea(n),s={placeholder:l,...r,...a};return(null==i||null==(t=i.isAssociationField)?void 0:t.call(i))&&(delete s.mode,s.quickCreate="none"),s}function ed(e){return eo(e)?void 0:e}function eu(e){let{currentFieldModelUse:t,defaultBindingUse:l,preferFormItemFieldModel:o}=e,n=ed(t),i=ed(l);return eo(t)?i??Q:o?n??i??Q:i??n??Q}function ec(e){var t,l,o;let{fieldModelUse:n,collectionField:i}=e,r=null==i||null==(l=i.uiSchema)||null==(t=l["x-component-props"])?void 0:t.mode;return(null==i||null==(o=i.isAssociationField)?void 0:o.call(i))&&en(n)?"Select":(null==i?void 0:i.interface)==="multipleSelect"?r??"multiple":r}function ep(e){var t,l;let{itemModel:o,defaultBindingUse:n,collectionField:i,preferFormItemFieldModel:r,fieldSettingsInit:a}=e,{currentFieldModelUse:s,originFieldModel:d}=e.fieldSource??ei(o),u=(null==i||null==(t=i.isAssociationField)?void 0:t.call(i))?eu({currentFieldModelUse:s,defaultBindingUse:n,preferFormItemFieldModel:r}):r?s??n:n??s,{fieldBinding:c,...p}=(null==d?void 0:d.stepParams)??{},m={...p};return a&&(m.fieldSettings={...m.fieldSettings,init:{...null==(l=m.fieldSettings)?void 0:l.init,...a}}),{use:u,stepParams:m}}let em=e=>{var t,l,a;let{targetPath:f,value:g,onChange:v,placeholder:y,extraMetaTree:_,operator:b,operatorMetaList:x,preferFormItemFieldModel:k,associationFieldNamesOverride:F,enableDateVariableAsConstant:C=!1,maxAssociationFieldDepth:A=2}=e,P=(0,s.useFlowContext)(),j=n.default.useCallback(e=>{if(!e||"object"!=typeof e||!("target"in e))return e;let t=e.target;return t&&"object"==typeof t&&"value"in t?t.value:e},[]),I=n.default.useRef(_);n.default.useEffect(()=>{I.current=_},[_]);let L=n.default.useMemo(()=>f?(0,u.eo)(P.model,f):null,[P.model,f]),D=n.default.useCallback((e,t)=>{if(!e||"string"!=typeof t||!t.includes("."))return null;let l=t.split(".").filter(Boolean);if(l.length<2)return null;let o=e;for(let e=0;e<l.length;e++){var n;let t=l[e],i=e===l.length-1,r="function"==typeof(null==o?void 0:o.getField)?o.getField(t):void 0;if(!r)break;if(i)return{collection:o,fieldName:t,collectionField:r};if(!(null==r||null==(n=r.isAssociationField)?void 0:n.call(r))||!(null==r?void 0:r.targetCollection))break;o=r.targetCollection}return null},[]),R=n.default.useMemo(()=>{var e,t,l,o,n,i,r,a,s,d,c,p,m,h,g,v,y,_;if(L){let e=L,{collection:t,dataSource:l,blockModel:o}=L.context,n=(null==L||null==(i=L.getStepParams)?void 0:i.call(L,"fieldSettings","init"))||{},f=(null==L||null==(r=L.context)?void 0:r.dataSourceManager)||(null==(s=P.model)||null==(a=s.context)?void 0:a.dataSourceManager),v=(0,u.w7)(P.model),y=t||((null==n?void 0:n.dataSourceKey)&&(null==n?void 0:n.collectionName)?null==f||null==(d=f.getCollection)?void 0:d.call(f,n.dataSourceKey,n.collectionName):void 0)||v,_=l||((null==n?void 0:n.dataSourceKey)?null==f||null==(c=f.getDataSource)?void 0:c.call(f,n.dataSourceKey):void 0)||((null==y?void 0:y.dataSourceKey)?null==f||null==(p=f.getDataSource)?void 0:p.call(f,y.dataSourceKey):void 0),b=W(L),x=null==b?void 0:b.split(".").slice(-1)[0],M=x?null==y||null==(m=y.getField)?void 0:m.call(y,x):void 0,w=null==e||null==(g=e.customFieldModelInstance)||null==(h=g.context)?void 0:h.collectionField;return{itemModel:L,collection:y||null,dataSource:_||null,blockModel:o,fieldPath:b||null,fieldName:x||null,collectionField:M||w||null}}let b=(0,u.w7)(P.model),x=(null==(t=P.model)||null==(e=t.context)?void 0:e.blockModel)||P.model,M={itemModel:null,collection:null,dataSource:null,blockModel:x,fieldPath:null,fieldName:null,collectionField:null},w="function"==typeof(null==b?void 0:b.getField)?b.getField(f):null;if(w){let e=String((null==w?void 0:w.name)||f||""),t=null==(y=P.model)||null==(v=y.context)?void 0:v.dataSourceManager,l=((null==b?void 0:b.dataSourceKey)?null==t||null==(_=t.getDataSource)?void 0:_.call(t,b.dataSourceKey):void 0)||null;return{...M,collection:b,dataSource:l,blockModel:x,fieldPath:e,fieldName:e,collectionField:w||null}}let S=D(b,f);if(!S)return M;let k=S.collection,F=S.fieldName,C=null==(o=P.model)||null==(l=o.context)?void 0:l.dataSourceManager,A=((null==k?void 0:k.dataSourceKey)?null==C||null==(n=C.getDataSource)?void 0:n.call(C,k.dataSourceKey):void 0)||null;return{...M,collection:k,dataSource:A,blockModel:x,fieldPath:F,fieldName:F,collectionField:S.collectionField||null}},[P,L,D,f]),{collection:N,dataSource:K,blockModel:U,fieldPath:J,fieldName:X,collectionField:Q}=R,Z=null==R||null==(l=R.itemModel)||null==(t=l.context)?void 0:t.collectionField,ee=n.default.useMemo(()=>ei(L),[L]),et=n.default.useMemo(()=>{var e;let t=Q||Z||null;if((null==t||null==(e=t.isAssociationField)?void 0:e.call(t))&&(0,u.E4)(t))return ee.currentAllowMultiple},[Q,ee.currentAllowMultiple,Z]),el=n.default.useMemo(()=>V(Q)||V(Z),[Q,Z]),eo=Q||Z,ea=n.default.useMemo(()=>{var e,t,l;if((null==Q||null==(e=Q.isAssociationField)?void 0:e.call(Q))||(null==Z||null==(t=Z.isAssociationField)?void 0:t.call(Z))){let e=Q||Z||null;if(e&&(0,u.E4)(e))return et??!0}let o=V(Q);return"multipleSelect"===o||"checkboxGroup"===o||"array"===(null==Q||null==(l=Q.uiSchema)?void 0:l.type)},[Q,et,Z]),ed=n.default.useMemo(()=>{if(el&&S.has(el))return!0;let e="string"==typeof X&&X||("string"==typeof f?f.split(".").filter(Boolean).slice(-1)[0]:"");return"createdAt"===e||"updatedAt"===e},[X,el,f]),eu=C&&ed,em=n.default.useMemo(()=>{if(!eu)return B;let e=H(eo),t=O(null==e?void 0:e.picker),l=["datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"].includes(el),o="boolean"==typeof(null==e?void 0:e.showTime)?e.showTime:l,n="string"==typeof(null==e?void 0:e.dateFormat)&&e.dateFormat?e.dateFormat:"string"==typeof(null==e?void 0:e.format)&&e.format?e.format.split(" ")[0]:"YYYY-MM-DD",i="string"==typeof(null==e?void 0:e.timeFormat)&&e.timeFormat?e.timeFormat:"HH:mm:ss",r="string"==typeof(null==e?void 0:e.format)&&e.format?e.format:o?`${n} ${i}`:n;return{picker:t,showTime:o,timeFormat:i,format:r,exactNormalizeMode:Y(el)}},[eo,el,eu]),eh=n.default.useMemo(()=>{let{exactNormalizeMode:e,...t}=em;return t},[em]),ef=n.default.useRef(eh);ef.current=eh;let eg=n.default.useRef(P.t);eg.current=P.t;let ev=n.default.useCallback(e=>{let t=e;if(b&&(t=(0,h.S)(b,t)),ea){if(null==t||""===t)return[];if(!Array.isArray(t))return[t]}return t},[ea,b]),[ey,e_]=n.default.useState(null);n.default.useEffect(()=>{var e,t,l,o,n,i,r,a,c,m,h,f,g,v,_,b,x,M,w,S,C,A,T,j,I,D,E,Y,O,B,V,H;if(!J||!X)return;let q=L,z=(null==R||null==(t=R.itemModel)||null==(e=t.context)?void 0:e.engine)||(null==(o=P.model)||null==(l=o.context)?void 0:l.engine);if(!z)return;let G=(null==q||null==(n=q.context)?void 0:n.dataSourceManager)||(null==(r=P.model)||null==(i=r.context)?void 0:i.dataSourceManager),W=N||(0,u.w7)(q)||(0,u.w7)(P.model),{customFieldName:Z,customFieldProps:et,currentAllowMultiple:el,originFieldModel:eo,originProps:ei}=ee,ea=null==eo||null==(a=eo.context)?void 0:a.collectionField,ed=Q||ea||void 0,eu=K||((null==W?void 0:W.dataSourceKey)?null==G||null==(c=G.getDataSource)?void 0:c.call(G,W.dataSourceKey):null),em=("function"==typeof(null==W?void 0:W.getFields)&&W.getFields()||[]).find(e=>(null==e?void 0:e.name)===X)||("function"==typeof(null==W?void 0:W.getField)?W.getField(X):void 0)||ed,eh=em?s.EditableItemModel.getDefaultBindingByField((null==R||null==(m=R.itemModel)?void 0:m.context)||(null==(h=P.model)?void 0:h.context),em):null,{use:ef,stepParams:eg}=ep({itemModel:L,defaultBindingUse:null==eh?void 0:eh.modelName,collectionField:ed,fieldSource:ee,preferFormItemFieldModel:k,fieldSettingsInit:er({collection:W,customFieldName:Z,fieldPath:J,fieldName:X})});if(!ef)return;let ev=es({placeholder:y,originProps:ei,customFieldProps:et,collectionField:ed}),ey=null==z||null==(f=z.createModel)?void 0:f.call(z,{use:"VariableFieldFormModel",subModels:{fields:[{use:ef,stepParams:eg,props:ev}]}});if(!ey)return;W&&(null==(v=ey.context)||null==(g=v.defineProperty)||g.call(v,"collection",{value:W})),eu&&(null==(b=ey.context)||null==(_=b.defineProperty)||_.call(b,"dataSource",{value:eu})),ed&&(null==(M=ey.context)||null==(x=M.defineProperty)||x.call(M,"collectionField",{value:ed})),U&&(null==(S=ey.context)||null==(w=S.defineProperty)||w.call(S,"blockModel",{value:U})),ey.context&&Object.defineProperty(ey.context,"resource",{configurable:!0,enumerable:!0,get:()=>null==U?void 0:U.resource});let eb=null==ey||null==(A=ey.subModels)||null==(C=A.fields)?void 0:C[0],ex=(null==ed||null==(T=ed.isAssociationField)?void 0:T.call(ed))&&(0,u.E4)(ed)?el??!0:void 0,eM=ex??((null==ed||null==(j=ed.isAssociationField)?void 0:j.call(ed))?(0,u.E4)(ed):void 0),ew=$((0,p.VS)(null==eb||null==(I=eb.props)?void 0:I.style)),eS=null==F?void 0:F.label;eS&&"function"==typeof(null==eb?void 0:eb.setStepParams)&&eb.setStepParams("selectSettings","fieldNames",{label:eS}),null==eb||null==(D=eb.setProps)||D.call(eb,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,style:ew,...void 0!==eM?{multiple:eM}:{},...void 0!==ex?{allowMultiple:ex}:{}}),null==eb||null==(E=eb.dispatchEvent)||E.call(eb,"beforeRender",void 0,{sequential:!0,useCache:!0}),(0,d.NI)(eb,ed);let ek=ec({fieldModelUse:ef,collectionField:ed});if(((null==ed||null==(Y=ed.isAssociationField)?void 0:Y.call(ed))&&en(ef)||(null==eb||null==(O=eb.props)?void 0:O.mode)===void 0)&&ek&&(null==eb||null==(B=eb.setProps)||B.call(eb,{mode:ek})),null==ed?void 0:ed.targetCollection){let e=ed.targetCollection,t=(null==eb||null==(V=eb.props)?void 0:V.fieldNames)||{},l=(null==F?void 0:F.value)??(null==t?void 0:t.value)??(null==ed?void 0:ed.targetKey)??(null==e?void 0:e.filterTargetKey)??"id",o=(null==F?void 0:F.label)??(null==t?void 0:t.label)??(null==ed?void 0:ed.targetCollectionTitleFieldName);null==eb||null==(H=eb.setProps)||H.call(eb,{fieldNames:{...t,...o?{label:o}:{},value:l}})}return e_(ey),()=>{var e,t;null==(e=(t=ey.subModels.fields).forEach)||e.call(t,e=>e.remove()),ey.remove()}},[N,K,U,J,X,P,y,R,Q,L,ee,k,null==F?void 0:F.label,null==F?void 0:F.value]),n.default.useEffect(()=>{var e,t,l,n,i,r,a,s;let d=null==ey||null==(t=ey.subModels)||null==(e=t.fields)?void 0:e[0];if(!d||!b||!Array.isArray(x)||0===x.length)return;let u=x.find(e=>(null==e?void 0:e.value)===b),c=null==u||null==(l=u.schema)?void 0:l["x-component-props"];if(c&&"function"==typeof(null==d?void 0:d.setProps)){let e=$((0,p.VS)(null==c?void 0:c.style)||(0,p.VS)(null==d||null==(s=d.props)?void 0:s.style));d.setProps({...c,style:e})}let h=(null==R||null==(i=R.itemModel)||null==(n=i.context)?void 0:n.app)||(null==P||null==(a=P.model)||null==(r=a.context)?void 0:r.app),f=(0,p._H)(h,b,x);if(f&&d instanceof m.m){let e=d.__originalRender||d.render;d.__originalRender=e;let{Comp:t,props:l}=f;d.render=()=>{var e;return(0,o.jsx)(t,{...d.props,...l,style:{width:"100%",...(0,p.VS)(null==(e=d.props)?void 0:e.style),...(0,p.VS)(null==l?void 0:l.style)}})},z(d)}else"function"==typeof d.__originalRender&&(d.render=d.__originalRender,z(d))},[b,x,ey,P,R]);let eb=n.default.useMemo(()=>e=>{let t=(0,p.VS)(null==e?void 0:e.style);return(n.default.useEffect(()=>{var t,l,o,n;let i=ev(null==e?void 0:e.value),r=t=>{var l,o,n,i,r;let a=j(t),s=b?(0,h.S)(b,a):a,d=ev(s);null==ey||null==(l=ey.setProps)||l.call(ey,{value:d});let u=null==ey||null==(n=ey.subModels)||null==(o=n.fields)?void 0:o[0];null==u||null==(i=u.setProps)||i.call(u,{value:d}),null==e||null==(r=e.onChange)||r.call(e,s)},a=null==ey||null==(l=ey.subModels)||null==(t=l.fields)?void 0:t[0];null==a||null==(o=a.setProps)||o.call(a,{value:i,onChange:r,onCompositionStart:null==e?void 0:e.onCompositionStart,onCompositionUpdate:null==e?void 0:e.onCompositionUpdate,onCompositionEnd:null==e?void 0:e.onCompositionEnd}),null==ey||null==(n=ey.setProps)||n.call(ey,{...e,value:i,onChange:r})},[e]),ey)?(0,o.jsx)("div",{style:{...$(t),flex:1},children:(0,o.jsx)(s.FlowModelRenderer,{model:ey,showFlowSettings:!1})}):(0,o.jsx)(r.Input,{value:null==e?void 0:e.value,onChange:t=>{var l;return null==e||null==(l=e.onChange)?void 0:l.call(e,j(t))},placeholder:y,style:$(t)})},[y,ey,ev,j,b]),ex=n.default.useMemo(()=>e=>{let t=(0,p.VS)(null==e?void 0:e.style),l=null==e?void 0:e.value,a=(0,s.isCtxDateExpression)(l)?(0,s.parseCtxDateExpression)(l):l,d=void 0===a?void 0:a,{token:u}=r.theme.useToken(),[c,m]=n.default.useState(!1),h=eg.current,f=ef.current,g=n.default.useMemo(()=>T(h,!0),[h]),v=d&&"object"==typeof d&&!Array.isArray(d)?null==d?void 0:d.type:void 0,y="string"==typeof v&&v?v:"exact",_=Array.isArray(d),b=E(d,{format:f.format,isRange:!1}),x=E(d,{format:f.format,isRange:!0}),w=t=>{var l,o;if(m(!1),"exact"===t){null==e||null==(o=e.onChange)||o.call(e,"");return}let n={type:t};("past"===t||"next"===t)&&(n.number=1,n.unit="day"),null==e||null==(l=e.onChange)||l.call(e,n)},S=t=>{var l;null==e||null==(l=e.onChange)||l.call(e,t||"")},k=t=>{var l;null==e||null==(l=e.onChange)||l.call(e,t||"")},F=()=>{let e=g.slice(0,3),t=g.slice(3),l=(0,i.css)`
212
+ `,p=e=>{let t=(0,i.default)();return(0,o.jsxs)("div",{style:{display:"inline-flex"},children:[(0,o.jsx)("span",{children:e.format}),(0,o.jsx)(m,{content:t.format(e.format)})]})},m=e=>{let{content:t}=e,{token:l}=s.theme.useToken();return(0,o.jsx)("span",{style:{display:"inline-block",background:l.colorBgTextHover,marginLeft:l.marginMD,lineHeight:"1",padding:l.paddingXXS,borderRadius:l.borderRadiusOuter},children:t})},h=e=>{let{onChange:t,defaultValue:l,formats:n,picker:i}=e,[r,{setFalse:p,setTrue:h}]=(0,a.useBoolean)(e.value&&!n.includes(e.value)),[f,g]=(0,d.useState)(e.value&&!n.includes(e.value)?e.value:l),[v,y]=(0,d.useState)(f?u.format(f):null),_=e=>{"custom"===e.target.value?(h(),t(f)):(p(),t(e.target.value))};return(0,d.useEffect)(()=>{n.includes(e.value)?p():h(),g(e.value&&!n.includes(e.value)?e.value:l)},[e.value]),(0,d.useEffect)(()=>{y(f?u.format(f):null)},[f]),(0,o.jsx)(s.Space,{className:c,children:(0,o.jsx)(s.Radio.Group,{value:r?"custom":e.value,onChange:_,children:(0,o.jsx)(s.Space,{direction:"vertical",children:e.options.map(e=>"custom"===e.value?(0,o.jsxs)(s.Radio,{value:e.value,children:[(0,o.jsx)(s.Input,{style:{width:"150px"},value:f,onChange:e=>{e.target.value?y(u.format(e.target.value)):y(null),r&&t(e.target.value),g(e.target.value)}}),(0,o.jsx)(m,{content:v})]},e.value):i&&"date"!==i?void 0:(0,o.jsx)(s.Radio,{value:e.value,"aria-label":e.value,children:(0,o.jsx)("span",{role:"button","aria-label":e.value,children:e.label})},e.value))})})})},f=(0,r.connect)(h,(0,r.mapProps)({dataSource:"options"},e=>({...e})))},1793(e,t,l){l.d(t,{mD:()=>G,zv:()=>em});var o=l(1178),n=l(1649),i=l(691),r=l(2793),a=l(3526),s=l(504),d=l(7309),u=l(9133),c=l(9624),p=l(7720),m=l(4881),h=l(6175),f=l(6305);let g=e=>e?e.replace(/\s*HH?:mm(?::ss)?(?:\.SSS)?/g,"").trim():e;function v(e,t){return t?Array.isArray(e)?e[0]:void 0:e}function y(e,t){return"string"==typeof e?(0,f.Pn)(e,t):t}function _(e,t){let l=String(e||"").trim();if(!l)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(l)){let e=(0,a.dayjs)(l);if(e.isValid())return e}if(t){let e=(0,a.dayjs)(l,t,!0);if(e.isValid())return e}let o=(0,a.dayjs)(l);if(o.isValid())return o;if(t){let e=(0,a.dayjs)(l,t);if(e.isValid())return e}return null}function b(e,t){if(a.dayjs.isDayjs(e))return e;if(e instanceof Date){let t=(0,a.dayjs)(e);return t.isValid()?t:null}return"string"==typeof e?_(e,t):null}function x(e,t){if(!Array.isArray(e))return null;let l=b(e[0],t),o=b(e[1],t);return l&&o?[l,o]:null}let M=e=>{let{picker:t="date",format:l,showTime:i,timeFormat:d,value:u,isRange:c=!1,onChange:p,style:m}=e,h=(0,s.useFlowContext)(),f=h.model.translate.bind(h.model),_=(0,n.useMemo)(()=>v(u,c),[c,u]),[M,w]=(0,n.useState)(()=>y(_,t)),S=e=>{let o=e===t&&l?l:(0,a.getPickerFormat)(e),n="date"===e?g(o):o;return(0,a.getDateTimeFormat)(e,n,i,d)},k=(0,n.useMemo)(()=>S(M),[M,l,t,i,d]),F=(0,n.useMemo)(()=>c?null:b(u,k),[c,u,k]),C=(0,n.useMemo)(()=>c?x(u,k):null,[c,u,k]),A=(0,n.useMemo)(()=>[{label:f("Date"),value:"date"},{label:f("Month"),value:"month"},{label:f("Quarter"),value:"quarter"},{label:f("Year"),value:"year"}],[f]),P=e=>{if(w(e),p){if(c){C&&p(C);return}F&&p(F)}},T={utc:!0,underFilter:!0,format:k,picker:M,inputReadOnly:h.isMobileLayout,showTime:!!i&&{defaultValue:(0,a.dayjs)("00:00:00","HH:mm:ss")},value:F,onChange:e=>{if(e&&a.dayjs.isDayjs(e)){null==p||p(e);return}null==p||p(null)},style:{flex:1}},j={utc:!0,underFilter:!0,format:k,picker:M,inputReadOnly:h.isMobileLayout,showTime:!!i&&{defaultValue:[(0,a.dayjs)("00:00:00","HH:mm:ss"),(0,a.dayjs)("23:59:59","HH:mm:ss")]},value:C,onChange:e=>{if(Array.isArray(e)&&e[0]&&e[1]){null==p||p([e[0],e[1]]);return}null==p||p(null)},style:{flex:1}};return(0,o.jsxs)(r.Space.Compact,{style:{width:"100%",...m||{}},children:[(0,o.jsx)(r.Select,{style:{width:100},popupMatchSelectWidth:!1,value:M,options:A,onChange:P}),c?(0,o.jsx)(r.DatePicker.RangePicker,{...j}):(0,o.jsx)(r.DatePicker,{...T})]})};var w=l(9210);let S=new Set(["date","datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"]),k=new Set(["datetime","createdAt","updatedAt","unixTimestamp"]),F="YYYY-MM-DD",C="YYYY-MM-DD HH:mm:ss",A=["exact","past","next","today","yesterday","tomorrow","thisWeek","lastWeek","nextWeek","thisMonth","lastMonth","nextMonth","thisQuarter","lastQuarter","nextQuarter","thisYear","lastYear","nextYear"],P={exact:"Exact day",past:"Past",next:"Next",today:"Today",yesterday:"Yesterday",tomorrow:"Tomorrow",thisWeek:"This Week",lastWeek:"Last Week",nextWeek:"Next Week",thisMonth:"This Month",lastMonth:"Last Month",nextMonth:"Next Month",thisQuarter:"This Quarter",lastQuarter:"Last Quarter",nextQuarter:"Next Quarter",thisYear:"This Year",lastYear:"Last Year",nextYear:"Next Year"};function T(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=A.map(t=>({value:t,label:(null==e?void 0:e(P[t]))??P[t]}));return t&&l.splice(3,0,{value:"now",label:(null==e?void 0:e("Now"))??"Now"}),l}function j(e,t){let l=String(e||"").trim();if(!l)return null;if(/(?:Z|[+-]\d{2}:\d{2})$/i.test(l)){let e=(0,a.dayjs)(l);if(e.isValid())return e}if(t){let e=(0,a.dayjs)(l,t,!0);if(e.isValid())return e}let o=(0,a.dayjs)(l);if(o.isValid())return o;if(t){let e=(0,a.dayjs)(l,t);if(e.isValid())return e}return null}function I(e,t){if(a.dayjs.isDayjs(e))return e;if(e instanceof Date){let t=(0,a.dayjs)(e);return t.isValid()?t:null}return"string"==typeof e?j(e,t):null}function L(e,t){let l=I(e,t.format);if(!(null==l?void 0:l.isValid()))return e;switch(t.exactNormalizeMode){case"date":return l.format(F);case"datetimeNoTz":return l.format(t.showTime?C:F);case"iso":return l.toISOString();default:return e}}function D(e,t){let l=I(e,t);return(null==l?void 0:l.isValid())?l:null}function R(e,t){if(!Array.isArray(e))return null;let l=D(e[0],t),o=D(e[1],t);return l&&o?[l,o]:null}function E(e,t){return t.isRange?R(e,t.format):D(e,t.format)}function Y(e){return"date"===e?"date":"datetimeNoTz"===e?"datetimeNoTz":k.has(e)?"iso":"none"}function N(e,t){return"none"===t.exactNormalizeMode?e:"string"==typeof e||a.dayjs.isDayjs(e)||e instanceof Date?L(e,t):Array.isArray(e)?e.map(e=>"string"==typeof e||a.dayjs.isDayjs(e)||e instanceof Date?L(e,t):e):e}function O(e){return"year"===e||"quarter"===e||"month"===e||"date"===e?e:"date"}let B={picker:"date",showTime:!1,timeFormat:"HH:mm:ss",format:"YYYY-MM-DD",exactNormalizeMode:"none"};function V(e){return"string"==typeof(null==e?void 0:e.interface)?e.interface:""}function H(e){var t;return("function"==typeof(null==e?void 0:e.getComponentProps)?e.getComponentProps():null)||(null==e||null==(t=e.uiSchema)?void 0:t["x-component-props"])||{}}function q(e,t){if(null===e||(0,s.isRunJSValue)(e)||"string"==typeof e&&(0,s.isVariableExpression)(e)&&!(0,s.isCtxDateExpression)(e))return e;if(""===e||void 0===e)return"";let l=N(e,{exactNormalizeMode:t.exactNormalizeMode,format:t.format||"YYYY-MM-DD HH:mm:ss",showTime:t.showTime});return(0,s.serializeCtxDateValue)(l)||l}function $(e){return{...e,width:"100%",minWidth:0}}function z(e){var t;e&&(e._reactiveWrapperCache=void 0,null==(t=e.setupReactiveRender)||t.call(e))}function K(e,t,l){let o=Array.isArray(null==e?void 0:e.paths)?e.paths.map(e=>String(e)):[],n=o;t.length&&o.length>=t.length&&t.every((e,t)=>o[t]===e)&&(n=[...l,...o.slice(t.length)]);let i=e=>Array.isArray(e)?e.map(e=>K(e,t,l)):"function"==typeof e?async()=>{let o=await e();return Array.isArray(o)?o.map(e=>K(e,t,l)):[]}:e;return{...e,paths:n,children:(null==e?void 0:e.children)?i(e.children):void 0}}function U(e,t){var l;if(!t)return e;let o=K(t,["item"],["item","parentItem"]),n={...o,name:"parentItem",title:(null==(l=o.title)?void 0:l.replace("Current item","Parent item"))||"Parent item"},i=e=>{let t=Array.isArray(e.children)?e.children:[];if(!t.some(e=>(null==e?void 0:e.name)==="parentItem"))return{...e,children:[...t,n]};let l=t.map(e=>(null==e?void 0:e.name)!=="parentItem"?e:i(e));return{...e,children:l}};return i(e)}function G(e,t){let l=Array.isArray(e)?e:[],o=Array.isArray(t)?t:[];if(!o.length)return l;let n=l.find(e=>(null==e?void 0:e.name)==="item"),i=o.find(e=>(null==e?void 0:e.name)==="item");if(!i)return l;let r=U(i,n),a=[],s=!1;for(let e of l){if(!s&&(null==e?void 0:e.name)==="item"){a.push(r),s=!0;continue}a.push(e)}return s||a.push(r),a}function W(e){var t;if(!e)return;let l=(null==e||null==(t=e.getStepParams)?void 0:t.call(e,"fieldSettings","init"))||{};return(null==l?void 0:l.fieldPath)||(0,u.Gj)(e)}function J(e){var t;let l=null==e||null==(t=e.subModels)?void 0:t.field;return l&&!Array.isArray(l)?l:void 0}let X=new Set(["value","defaultValue","hidden","onChange","onClick","open","searchText","dropdownRender","popupRender","optionRender"]),Q="RecordSelectFieldModel",Z=new Set(["FieldModel","SubFormFieldModel","SubFormListFieldModel","SubTableFieldModel","PopupSubTableFieldModel","RecordPickerFieldModel"]);function ee(e){return(null==e?void 0:e.customFieldModelInstance)||J(e)}function et(){for(var e=arguments.length,t=Array(e),l=0;l<e;l++)t[l]=arguments[l];return t.find(e=>"string"==typeof e&&!!e)}function el(){for(var e=arguments.length,t=Array(e),l=0;l<e;l++)t[l]=arguments[l];return t.find(e=>"boolean"==typeof e)}function eo(e){return!!e&&Z.has(e)}function en(e){return(null==e?void 0:e.endsWith("RecordSelectFieldModel"))??!1}function ei(e){var t,l,o,n,i,r,a,s,d;let u=J(e),c=(null==e||null==(t=e.getStepParams)?void 0:t.call(e,"formItemSettings","fieldSettings"))??{},p=ee(e),m=(null==p?void 0:p.props)??{},h=(null==e?void 0:e.customFieldProps)??(null==c?void 0:c.fieldModelProps)??{};return{originFieldModel:p,originProps:m,customFieldName:et(null==c?void 0:c.name),customFieldProps:h,currentAllowMultiple:el(null==p||null==(o=p.getStepParams)||null==(l=o.call(p,"selectSettings","allowMultiple"))?void 0:l.allowMultiple,null==p||null==(r=p.stepParams)||null==(i=r.selectSettings)||null==(n=i.allowMultiple)?void 0:n.allowMultiple,null==m?void 0:m.allowMultiple,null==m?void 0:m.multiple,null==h?void 0:h.allowMultiple,null==h?void 0:h.multiple),currentFieldModelUse:et(null==u||null==(s=u.stepParams)||null==(a=s.fieldBinding)?void 0:a.use,null==u?void 0:u.use,null==c?void 0:c.fieldModel,null==e||null==(d=e.customFieldModelInstance)?void 0:d.use)}}function er(e){let{collection:t,customFieldName:l,fieldPath:o,fieldName:n}=e;if(!(null==t?void 0:t.name)||!o)return;let i=o.startsWith(`${u.a_}:`)&&(l||n)||o;return{dataSourceKey:t.dataSourceKey,collectionName:t.name,fieldPath:i}}function ea(e){let t={};for(let[l,o]of Object.entries(e??{}))X.has(l)||/^on[A-Z]/.test(l)||(t[l]=o);return t}function es(e){var t;let{placeholder:l,originProps:o,customFieldProps:n,collectionField:i}=e,r=ea(o),a=ea(n),s={placeholder:l,...r,...a};return(null==i||null==(t=i.isAssociationField)?void 0:t.call(i))&&(delete s.mode,s.quickCreate="none"),s}function ed(e){return eo(e)?void 0:e}function eu(e){let{currentFieldModelUse:t,defaultBindingUse:l,preferFormItemFieldModel:o}=e,n=ed(t),i=ed(l);return eo(t)?i??Q:o?n??i??Q:i??n??Q}function ec(e){var t,l,o;let{fieldModelUse:n,collectionField:i}=e,r=null==i||null==(l=i.uiSchema)||null==(t=l["x-component-props"])?void 0:t.mode;return(null==i||null==(o=i.isAssociationField)?void 0:o.call(i))&&en(n)?"Select":(null==i?void 0:i.interface)==="multipleSelect"?r??"multiple":r}function ep(e){var t,l;let{itemModel:o,defaultBindingUse:n,collectionField:i,preferFormItemFieldModel:r,fieldSettingsInit:a}=e,{currentFieldModelUse:s,originFieldModel:d}=e.fieldSource??ei(o),u=(null==i||null==(t=i.isAssociationField)?void 0:t.call(i))?eu({currentFieldModelUse:s,defaultBindingUse:n,preferFormItemFieldModel:r}):r?s??n:n??s,{fieldBinding:c,...p}=(null==d?void 0:d.stepParams)??{},m={...p};return a&&(m.fieldSettings={...m.fieldSettings,init:{...null==(l=m.fieldSettings)?void 0:l.init,...a}}),{use:u,stepParams:m}}let em=e=>{var t,l,a;let{targetPath:f,value:g,onChange:v,placeholder:y,extraMetaTree:_,operator:b,operatorMetaList:x,preferFormItemFieldModel:k,associationFieldNamesOverride:F,enableDateVariableAsConstant:C=!1,maxAssociationFieldDepth:A=2}=e,P=(0,s.useFlowContext)(),j=n.default.useCallback(e=>{if(!e||"object"!=typeof e||!("target"in e))return e;let t=e.target;return t&&"object"==typeof t&&"value"in t?t.value:e},[]),I=n.default.useRef(_);n.default.useEffect(()=>{I.current=_},[_]);let L=n.default.useMemo(()=>f?(0,u.eo)(P.model,f):null,[P.model,f]),D=n.default.useCallback((e,t)=>{if(!e||"string"!=typeof t||!t.includes("."))return null;let l=t.split(".").filter(Boolean);if(l.length<2)return null;let o=e;for(let e=0;e<l.length;e++){var n;let t=l[e],i=e===l.length-1,r="function"==typeof(null==o?void 0:o.getField)?o.getField(t):void 0;if(!r)break;if(i)return{collection:o,fieldName:t,collectionField:r};if(!(null==r||null==(n=r.isAssociationField)?void 0:n.call(r))||!(null==r?void 0:r.targetCollection))break;o=r.targetCollection}return null},[]),R=n.default.useMemo(()=>{var e,t,l,o,n,i,r,a,s,d,c,p,m,h,g,v,y,_;if(L){let e=L,{collection:t,dataSource:l,blockModel:o}=L.context,n=(null==L||null==(i=L.getStepParams)?void 0:i.call(L,"fieldSettings","init"))||{},f=(null==L||null==(r=L.context)?void 0:r.dataSourceManager)||(null==(s=P.model)||null==(a=s.context)?void 0:a.dataSourceManager),v=(0,u.w7)(P.model),y=t||((null==n?void 0:n.dataSourceKey)&&(null==n?void 0:n.collectionName)?null==f||null==(d=f.getCollection)?void 0:d.call(f,n.dataSourceKey,n.collectionName):void 0)||v,_=l||((null==n?void 0:n.dataSourceKey)?null==f||null==(c=f.getDataSource)?void 0:c.call(f,n.dataSourceKey):void 0)||((null==y?void 0:y.dataSourceKey)?null==f||null==(p=f.getDataSource)?void 0:p.call(f,y.dataSourceKey):void 0),b=W(L),x=null==b?void 0:b.split(".").slice(-1)[0],M=x?null==y||null==(m=y.getField)?void 0:m.call(y,x):void 0,w=null==e||null==(g=e.customFieldModelInstance)||null==(h=g.context)?void 0:h.collectionField;return{itemModel:L,collection:y||null,dataSource:_||null,blockModel:o,fieldPath:b||null,fieldName:x||null,collectionField:M||w||null}}let b=(0,u.w7)(P.model),x=(null==(t=P.model)||null==(e=t.context)?void 0:e.blockModel)||P.model,M={itemModel:null,collection:null,dataSource:null,blockModel:x,fieldPath:null,fieldName:null,collectionField:null},w="function"==typeof(null==b?void 0:b.getField)?b.getField(f):null;if(w){let e=String((null==w?void 0:w.name)||f||""),t=null==(y=P.model)||null==(v=y.context)?void 0:v.dataSourceManager,l=((null==b?void 0:b.dataSourceKey)?null==t||null==(_=t.getDataSource)?void 0:_.call(t,b.dataSourceKey):void 0)||null;return{...M,collection:b,dataSource:l,blockModel:x,fieldPath:e,fieldName:e,collectionField:w||null}}let S=D(b,f);if(!S)return M;let k=S.collection,F=S.fieldName,C=null==(o=P.model)||null==(l=o.context)?void 0:l.dataSourceManager,A=((null==k?void 0:k.dataSourceKey)?null==C||null==(n=C.getDataSource)?void 0:n.call(C,k.dataSourceKey):void 0)||null;return{...M,collection:k,dataSource:A,blockModel:x,fieldPath:F,fieldName:F,collectionField:S.collectionField||null}},[P,L,D,f]),{collection:N,dataSource:K,blockModel:U,fieldPath:J,fieldName:X,collectionField:Q}=R,Z=null==R||null==(l=R.itemModel)||null==(t=l.context)?void 0:t.collectionField,ee=n.default.useMemo(()=>ei(L),[L]),et=n.default.useMemo(()=>{var e;let t=Q||Z||null;if((null==t||null==(e=t.isAssociationField)?void 0:e.call(t))&&(0,u.E4)(t))return ee.currentAllowMultiple},[Q,ee.currentAllowMultiple,Z]),el=n.default.useMemo(()=>V(Q)||V(Z),[Q,Z]),eo=Q||Z,ea=n.default.useMemo(()=>{var e,t,l;if((null==Q||null==(e=Q.isAssociationField)?void 0:e.call(Q))||(null==Z||null==(t=Z.isAssociationField)?void 0:t.call(Z))){let e=Q||Z||null;if(e&&(0,u.E4)(e))return et??!0}let o=V(Q);return"multipleSelect"===o||"checkboxGroup"===o||"array"===(null==Q||null==(l=Q.uiSchema)?void 0:l.type)},[Q,et,Z]),ed=n.default.useMemo(()=>{if(el&&S.has(el))return!0;let e="string"==typeof X&&X||("string"==typeof f?f.split(".").filter(Boolean).slice(-1)[0]:"");return"createdAt"===e||"updatedAt"===e},[X,el,f]),eu=C&&ed,em=n.default.useMemo(()=>{if(!eu)return B;let e=H(eo),t=O(null==e?void 0:e.picker),l=["datetime","datetimeNoTz","createdAt","updatedAt","unixTimestamp"].includes(el),o="boolean"==typeof(null==e?void 0:e.showTime)?e.showTime:l,n="string"==typeof(null==e?void 0:e.dateFormat)&&e.dateFormat?e.dateFormat:"string"==typeof(null==e?void 0:e.format)&&e.format?e.format.split(" ")[0]:"YYYY-MM-DD",i="string"==typeof(null==e?void 0:e.timeFormat)&&e.timeFormat?e.timeFormat:"HH:mm:ss",r="string"==typeof(null==e?void 0:e.format)&&e.format?e.format:o?`${n} ${i}`:n;return{picker:t,showTime:o,timeFormat:i,format:r,exactNormalizeMode:Y(el)}},[eo,el,eu]),eh=n.default.useMemo(()=>{let{exactNormalizeMode:e,...t}=em;return t},[em]),ef=n.default.useRef(eh);ef.current=eh;let eg=n.default.useRef(P.t);eg.current=P.t;let ev=n.default.useCallback(e=>{let t=e;if(b&&(t=(0,h.S)(b,t)),ea){if(null==t||""===t)return[];if(!Array.isArray(t))return[t]}return t},[ea,b]),[ey,e_]=n.default.useState(null);n.default.useEffect(()=>{var e,t,l,o,n,i,r,a,c,m,h,f,g,v,_,b,x,M,w,S,C,A,T,j,I,D,E,Y,O,B,V,H,q,z;if(!J||!X)return;let G=L,W=(null==R||null==(t=R.itemModel)||null==(e=t.context)?void 0:e.engine)||(null==(o=P.model)||null==(l=o.context)?void 0:l.engine);if(!W)return;let Z=(null==G||null==(n=G.context)?void 0:n.dataSourceManager)||(null==(r=P.model)||null==(i=r.context)?void 0:i.dataSourceManager),et=N||(0,u.w7)(G)||(0,u.w7)(P.model),{customFieldName:el,customFieldProps:eo,currentAllowMultiple:ei,originFieldModel:ea,originProps:ed}=ee,eu=null==ea||null==(a=ea.context)?void 0:a.collectionField,em=Q||eu||void 0,eh=K||((null==et?void 0:et.dataSourceKey)?null==Z||null==(c=Z.getDataSource)?void 0:c.call(Z,et.dataSourceKey):null),ef=("function"==typeof(null==et?void 0:et.getFields)&&et.getFields()||[]).find(e=>(null==e?void 0:e.name)===X)||("function"==typeof(null==et?void 0:et.getField)?et.getField(X):void 0)||em,eg=ef?s.EditableItemModel.getDefaultBindingByField((null==R||null==(m=R.itemModel)?void 0:m.context)||(null==(h=P.model)?void 0:h.context),ef):null,{use:ev,stepParams:ey}=ep({itemModel:L,defaultBindingUse:null==eg?void 0:eg.modelName,collectionField:em,fieldSource:ee,preferFormItemFieldModel:k,fieldSettingsInit:er({collection:et,customFieldName:el,fieldPath:J,fieldName:X})});if(!ev)return;let eb=es({placeholder:y,originProps:ed,customFieldProps:eo,collectionField:em}),ex=(null==R||null==(f=R.itemModel)?void 0:f.context)||(null==(g=P.model)?void 0:g.context),eM=null==W||null==(v=W.createModel)?void 0:v.call(W,{use:"VariableFieldFormModel",subModels:{fields:[{use:ev,stepParams:ey,props:eb}]}},ex?{delegate:ex}:void 0);if(!eM)return;et&&(null==(b=eM.context)||null==(_=b.defineProperty)||_.call(b,"collection",{value:et})),eh&&(null==(M=eM.context)||null==(x=M.defineProperty)||x.call(M,"dataSource",{value:eh})),em&&(null==(S=eM.context)||null==(w=S.defineProperty)||w.call(S,"collectionField",{value:em})),U&&(null==(A=eM.context)||null==(C=A.defineProperty)||C.call(A,"blockModel",{value:U})),eM.context&&Object.defineProperty(eM.context,"resource",{configurable:!0,enumerable:!0,get:()=>null==U?void 0:U.resource});let ew=null==eM||null==(j=eM.subModels)||null==(T=j.fields)?void 0:T[0],eS=(null==em||null==(I=em.isAssociationField)?void 0:I.call(em))&&(0,u.E4)(em)?ei??!0:void 0,ek=eS??((null==em||null==(D=em.isAssociationField)?void 0:D.call(em))?(0,u.E4)(em):void 0),eF=$((0,p.VS)(null==ew||null==(E=ew.props)?void 0:E.style)),eC=null==F?void 0:F.label;eC&&"function"==typeof(null==ew?void 0:ew.setStepParams)&&ew.setStepParams("selectSettings","fieldNames",{label:eC}),null==ew||null==(Y=ew.setProps)||Y.call(ew,{disabled:!1,readPretty:!1,pattern:"editable",updateAssociation:!1,style:eF,...void 0!==ek?{multiple:ek}:{},...void 0!==eS?{allowMultiple:eS}:{}}),null==ew||null==(O=ew.dispatchEvent)||O.call(ew,"beforeRender",void 0,{sequential:!0,useCache:!0}),(0,d.NI)(ew,em);let eA=ec({fieldModelUse:ev,collectionField:em});if(((null==em||null==(B=em.isAssociationField)?void 0:B.call(em))&&en(ev)||(null==ew||null==(V=ew.props)?void 0:V.mode)===void 0)&&eA&&(null==ew||null==(H=ew.setProps)||H.call(ew,{mode:eA})),null==em?void 0:em.targetCollection){let e=em.targetCollection,t=(null==ew||null==(q=ew.props)?void 0:q.fieldNames)||{},l=(null==F?void 0:F.value)??(null==t?void 0:t.value)??(null==em?void 0:em.targetKey)??(null==e?void 0:e.filterTargetKey)??"id",o=(null==F?void 0:F.label)??(null==t?void 0:t.label)??(null==em?void 0:em.targetCollectionTitleFieldName);null==ew||null==(z=ew.setProps)||z.call(ew,{fieldNames:{...t,...o?{label:o}:{},value:l}})}return e_(eM),()=>{var e,t;null==(e=(t=eM.subModels.fields).forEach)||e.call(t,e=>e.remove()),eM.remove()}},[N,K,U,J,X,P,y,R,Q,L,ee,k,null==F?void 0:F.label,null==F?void 0:F.value]),n.default.useEffect(()=>{var e,t,l,n,i,r,a,s;let d=null==ey||null==(t=ey.subModels)||null==(e=t.fields)?void 0:e[0];if(!d||!b||!Array.isArray(x)||0===x.length)return;let u=x.find(e=>(null==e?void 0:e.value)===b),c=null==u||null==(l=u.schema)?void 0:l["x-component-props"];if(c&&"function"==typeof(null==d?void 0:d.setProps)){let e=$((0,p.VS)(null==c?void 0:c.style)||(0,p.VS)(null==d||null==(s=d.props)?void 0:s.style));d.setProps({...c,style:e})}let h=(null==R||null==(i=R.itemModel)||null==(n=i.context)?void 0:n.app)||(null==P||null==(a=P.model)||null==(r=a.context)?void 0:r.app),f=(0,p._H)(h,b,x);if(f&&d instanceof m.m){let e=d.__originalRender||d.render;d.__originalRender=e;let{Comp:t,props:l}=f;d.render=()=>{var e;return(0,o.jsx)(t,{...d.props,...l,style:{width:"100%",...(0,p.VS)(null==(e=d.props)?void 0:e.style),...(0,p.VS)(null==l?void 0:l.style)}})},z(d)}else"function"==typeof d.__originalRender&&(d.render=d.__originalRender,z(d))},[b,x,ey,P,R]);let eb=n.default.useMemo(()=>e=>{let t=(0,p.VS)(null==e?void 0:e.style);return(n.default.useEffect(()=>{var t,l,o,n;let i=ev(null==e?void 0:e.value),r=t=>{var l,o,n,i,r;let a=j(t),s=b?(0,h.S)(b,a):a,d=ev(s);null==ey||null==(l=ey.setProps)||l.call(ey,{value:d});let u=null==ey||null==(n=ey.subModels)||null==(o=n.fields)?void 0:o[0];null==u||null==(i=u.setProps)||i.call(u,{value:d}),null==e||null==(r=e.onChange)||r.call(e,s)},a=null==ey||null==(l=ey.subModels)||null==(t=l.fields)?void 0:t[0];null==a||null==(o=a.setProps)||o.call(a,{value:i,onChange:r,onCompositionStart:null==e?void 0:e.onCompositionStart,onCompositionUpdate:null==e?void 0:e.onCompositionUpdate,onCompositionEnd:null==e?void 0:e.onCompositionEnd}),null==ey||null==(n=ey.setProps)||n.call(ey,{...e,value:i,onChange:r})},[e]),ey)?(0,o.jsx)("div",{style:{...$(t),flex:1},children:(0,o.jsx)(s.FlowModelRenderer,{model:ey,showFlowSettings:!1})}):(0,o.jsx)(r.Input,{value:null==e?void 0:e.value,onChange:t=>{var l;return null==e||null==(l=e.onChange)?void 0:l.call(e,j(t))},placeholder:y,style:$(t)})},[y,ey,ev,j,b]),ex=n.default.useMemo(()=>e=>{let t=(0,p.VS)(null==e?void 0:e.style),l=null==e?void 0:e.value,a=(0,s.isCtxDateExpression)(l)?(0,s.parseCtxDateExpression)(l):l,d=void 0===a?void 0:a,{token:u}=r.theme.useToken(),[c,m]=n.default.useState(!1),h=eg.current,f=ef.current,g=n.default.useMemo(()=>T(h,!0),[h]),v=d&&"object"==typeof d&&!Array.isArray(d)?null==d?void 0:d.type:void 0,y="string"==typeof v&&v?v:"exact",_=Array.isArray(d),b=E(d,{format:f.format,isRange:!1}),x=E(d,{format:f.format,isRange:!0}),w=t=>{var l,o;if(m(!1),"exact"===t){null==e||null==(o=e.onChange)||o.call(e,"");return}let n={type:t};("past"===t||"next"===t)&&(n.number=1,n.unit="day"),null==e||null==(l=e.onChange)||l.call(e,n)},S=t=>{var l;null==e||null==(l=e.onChange)||l.call(e,t||"")},k=t=>{var l;null==e||null==(l=e.onChange)||l.call(e,t||"")},F=()=>{let e=g.slice(0,3),t=g.slice(3),l=(0,i.css)`
213
213
  padding: 3px 10px;
214
214
  cursor: pointer;
215
215
  white-space: nowrap;
@@ -849,7 +849,7 @@ if (!ctx.record) {
849
849
  overflow: hidden;
850
850
  text-overflow: ellipsis;
851
851
  }
852
- `,children:e.label}),dropdownRender:e=>{let t=y.some(e=>e[l.label]===f.searchText);return(0,s.jsx)(s.Fragment,{children:"quickAdd"===a&&c&&p&&f.searchText?(0,s.jsxs)(s.Fragment,{children:[!(0===y.length&&f.searchText)&&e,y.length>0&&f.searchText&&!t&&(0,s.jsx)(g.Divider,{style:{margin:0}}),!t&&(0,s.jsx)(M,{searchText:f.searchText})]}):e})}}),"modalAdd"===a&&(c&&p||b)&&(c&&p?(0,s.jsx)(g.Button,{onClick:f.onModalAddClick,children:x("Add new")}):(0,s.jsx)(au._T,{forbidden:{actionName:"create"},collection:null==_||null==(t=_.collectionField)?void 0:t.targetCollection,message:w,children:(0,s.jsx)(g.Button,{onClick:f.onModalAddClick,disabled:!p,style:{opacity:"0.3"},children:x("Add new")})}))]})};class u1 extends ue{buildValueOptionsSyncKey(){var e,t,l,o,n,i,r,a,s,d,u,c,p;if("value"!==((null==(e=this.props)?void 0:e.valueMode)||"record"))return null;let m=(null==(t=this.props)?void 0:t.fieldNames)||{},h=(null==(o=this.context.collectionField)||null==(l=o.targetCollection)?void 0:l.filterTargetKey)||"id",f=(null==m?void 0:m.value)||"id",g=!!((null==(n=this.props)?void 0:n.multiple)&&(null==(i=this.props)?void 0:i.allowMultiple)),v=dK(null==(r=this.props)?void 0:r.options,null==(a=this.props)?void 0:a.value,g),y=null==(c=this.context.collectionField)||null==(u=c.targetCollection)||null==(d=u.getField)||null==(s=d.call(u,h))?void 0:s.type,_=uX(null==(p=this.props)?void 0:p.value,v,h,f,g,y);if(!_.length)return null;let b=new Set(v.map(e=>null==e?void 0:e[h]).filter(e=>null!=e)),x=_.filter(e=>!b.has(e));return x.length?`${h}::${x.slice().sort().join(",")}`:null}ensureValueOptionsSynced(){let e=this.buildValueOptionsSyncKey();!e||e===this.valueOptionsSyncedKey||this.valueOptionsSyncTask&&this.valueOptionsSyncKey===e||(this.valueOptionsSyncKey=e,this.valueOptionsSyncTask=this.applyFlow("syncValueOptions").then(()=>{this.valueOptionsSyncedKey=e}).finally(()=>{this.valueOptionsSyncKey===e&&(this.valueOptionsSyncTask=null)}))}async onDispatchEventStart(e){"beforeRender"===e&&this.ensureValueOptionsSynced()}getFilterValue(){if("value"===(this.props.valueMode||"record")){var e,t;let l=(null==(t=this.props)||null==(e=t.fieldNames)?void 0:e.value)||"id",o=e=>null==e?e:"object"==typeof e?(null==e?void 0:e[l])??(null==e?void 0:e.value):e;return Array.isArray(this.props.value)?this.props.value.map(e=>o(e)).filter(e=>null!=e&&""!==e):o(this.props.value)}return super.getFilterValue()}render(){return this.context.isMobileLayout?(0,s.jsx)(dX,{...this.props,loading:this.resource.loading}):(0,s.jsx)(u0,{...this.props})}constructor(...e){super(...e),this.valueOptionsSyncKey=null,this.valueOptionsSyncedKey=null,this.valueOptionsSyncTask=null}}u1.registerFlow({key:"syncValueOptions",sort:780,steps:{syncByValue:{async handler(e){var t,l,o,n,i,r,a,s,d,u,c,p,m,h,f;if("value"!==((null==(t=e.model.props)?void 0:t.valueMode)||"record"))return;let g=(null==(l=e.model.props)?void 0:l.fieldNames)||{},v=(null==(n=e.model.context.collectionField)||null==(o=n.targetCollection)?void 0:o.filterTargetKey)||"id",y=(null==g?void 0:g.value)||"id",_=!!((null==(i=e.model.props)?void 0:i.multiple)&&(null==(r=e.model.props)?void 0:r.allowMultiple)),b=dK(null==(a=e.model.props)?void 0:a.options,null==(s=e.model.props)?void 0:s.value,_),x=null==(p=e.model.context.collectionField)||null==(c=p.targetCollection)||null==(u=c.getField)||null==(d=u.call(c,v))?void 0:d.type,M=uX(null==(m=e.model.props)?void 0:m.value,b,v,y,_,x);if(!M.length)return;let w=new Set(b.map(e=>null==e?void 0:e[v]).filter(e=>null!=e)),S=M.filter(e=>!w.has(e));if(!S.length)return;let k=e.model.resource;if(!k||"function"!=typeof(null==k?void 0:k.addFilterGroup)||"function"!=typeof(null==k?void 0:k.refresh))return;let F=1===S.length?{[`${v}.$eq`]:S[0]}:{[`${v}.$in`]:S};try{k.addFilterGroup(uG,F),await k.refresh();let t=(null==(h=k.getData)?void 0:h.call(k))||[];if(!Array.isArray(t)||!t.length)return;let l=uQ(b,t,v);if(!(l.length!==b.length||l.some((e,t)=>{var l;return(null==e?void 0:e[v])!==(null==b||null==(l=b[t])?void 0:l[v])})))return;e.model.setDataSource(l)}finally{null==(f=k.removeFilterGroup)||f.call(k,uG)}}}}}),u1.registerFlow({key:"selectSettings",title:(0,u.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},valueFieldOverride:{handler(e){let t=e.model.props.recordSelectValueField;if(!t)return;let l={...e.model.props.fieldNames||{},value:t};e.model.setProps({fieldNames:l})}},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,u.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings:e=>!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type),defaultParams:e=>"boolean"==typeof e.model.props.allowMultiple?{allowMultiple:e.model.props.allowMultiple}:{allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)},handler(e,t){var l,o;let n=(null==e||null==(o=e.blockModel)||null==(l=o.constructor)?void 0:l.scene)===aU.P.filter,i="boolean"==typeof e.model.props.allowMultiple?e.model.props.allowMultiple:null==t?void 0:t.allowMultiple;n&&"boolean"==typeof i?e.model.setProps({allowMultiple:i,multiple:i}):e.model.setProps({allowMultiple:null==t?void 0:t.allowMultiple,multiple:null==t?void 0:t.allowMultiple})}},quickCreate:{title:(0,u.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)===aU.P.filter},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}});class u2 extends au.S0{}class u5 extends aa{}u5.baseClass=u2;var u8=__webpack_require__(544),u4=__webpack_require__(9413),u3=__webpack_require__(1022),u6=__webpack_require__(3341);let u9=["filterFormItemSettings"],u7=(0,u6.li)(u9),ce=(0,u6.u4)(u9);function ct(e){return(0,u6.TE)(e,u7)}function cl(e){return(0,u6.Co)(e,u7,ce)}let co=["belongsTo","hasOne","hasMany","belongsToMany","belongsToArray"],cn=["integer","float","double","decimal"];function ci(e){if(co.includes(e.type))return"object";if(cn.includes(e.type))return"number";switch(e.type){case"boolean":return"boolean";case"json":return"object";case"array":return"array";default:return"string"}}function cr(e){return!!(null==e?void 0:e.interface)}function ca(e){var t;let l={title:e.title||e.name,interface:e.interface,options:e.options,uiSchema:e.uiSchema||{}};if(!(null==(t=e.isAssociationField)?void 0:t.call(e)))return{type:ci(e),...l};let o=e.targetCollection;return o?{type:"object",...l,properties:async()=>{let e={};return o.fields.forEach(t=>{cr(t)&&(e[t.name]=ca(t))}),e}}:{type:"object",...l}}function cs(e){var t;let l=null==e||null==(t=e.props)?void 0:t.name;return"string"==typeof l&&l?l:(null==e?void 0:e.fieldPath)&&(null==e?void 0:e.uid)?`${e.fieldPath}_${e.uid}`:void 0}function cd(e,t){if(null==e)return;if(Array.isArray(t)){if("object"!=typeof e)return;let l={};for(let o of t){let t=null==e?void 0:e[o];if(null==t)return;l[o]=t}return l}if("object"!=typeof e)return e;let l=Array.isArray(t)?t[0]:t;return l?null==e?void 0:e[l]:null==e?void 0:e.id}function cu(e,t,l){let o=t.split(".").filter(Boolean);if(!o.length)return;let n=e;o.forEach((e,t)=>{if(t===o.length-1){n[e]=l;return}(!n[e]||"object"!=typeof n[e]||Array.isArray(n[e]))&&(n[e]={}),n=n[e]})}function cc(e,t,l){let o=t.split(".").filter(Boolean);if(!o.length)return;let n=e;o.forEach((e,t)=>{if(t===o.length-1){n[e]=l;return}let i=n[e];i&&"object"==typeof i||(n[e]={type:"object",title:e,properties:{}});let r=n[e].properties;r&&"function"!=typeof r||(n[e].properties={}),n=n[e].properties})}function cp(e,t){var l;let o=(null==e||null==(l=e.getFieldsValue)?void 0:l.call(e))||{},n={...o};for(let e of t){let t=cs(e);t&&t.includes(".")&&t in o&&cu(n,t,o[t])}return n}function cm(e,t){return t===e||t.startsWith(`${e}.`)||t.startsWith(`${e}[`)}function ch(e,t){return t.startsWith(`${e}.`)||t.startsWith(`${e}[`)}function cf(e,t){return t&&e.find(e=>{let l=cs(e);return l&&cm(l,t)})||null}class cg extends aQ{get form(){return this.context.form}get title(){return"Filter form"}createFormValuesMetaFactory(){let e=async()=>({type:"object",title:this.translate("Current form"),properties:async()=>{var e,t,l,o,n,i;let r={};for(let a of(null==(l=this.subModels)||null==(t=l.grid)||null==(e=t.subModels)?void 0:e.items)||[]){let e=cs(a),t=(null==a||null==(i=a.subModels)||null==(n=i.field)||null==(o=n.context)?void 0:o.collectionField)||(null==a?void 0:a.collectionField);e&&t&&cr(t)&&cc(r,e,ca(t))}return r},buildVariablesParams:()=>{var e,t,l,o,n,i,r,a,s;let d=(null==(t=this.form)||null==(e=t.getFieldsValue)?void 0:e.call(t))||{},u=(null==(n=this.subModels)||null==(o=n.grid)||null==(l=o.subModels)?void 0:l.items)||[],c={};for(let e of u){let t=cs(e),l=(null==e||null==(a=e.subModels)||null==(r=a.field)||null==(i=r.context)?void 0:i.collectionField)||(null==e?void 0:e.collectionField);if(!t||!(null==l||null==(s=l.isAssociationField)?void 0:s.call(l)))continue;let o=l.targetCollection,n=l.target;if(!o||!n)continue;let u=d[t],p=o.filterTargetKey;if(Array.isArray(u)){let e=u.map(e=>cd(e,p)).filter(e=>null!=e);e.length&&cu(c,t,{collection:n,dataSourceKey:o.dataSourceKey,filterByTk:e});continue}let m=cd(u,p);null!=m&&cu(c,t,{collection:n,dataSourceKey:o.dataSourceKey,filterByTk:m})}return c}});return e.title=this.translate("Current form"),e}useHooksBeforeRender(){let[e]=g.Form.useForm();this.context.defineProperty("form",{get:()=>e,cache:!1}),this.context.defineProperty("formValues",{get:()=>{var e,t,l;return cp(this.form,(null==(l=this.subModels)||null==(t=l.grid)||null==(e=t.subModels)?void 0:e.items)||[])},cache:!1,meta:this.createFormValuesMetaFactory(),resolveOnServer:e=>{var t,l,o,n,i,r,a;let s=cf((null==(o=this.subModels)||null==(l=o.grid)||null==(t=l.subModels)?void 0:t.items)||[],e);if(!s)return!1;let d=cs(s),u=(null==s||null==(r=s.subModels)||null==(i=r.field)||null==(n=i.context)?void 0:n.collectionField)||(null==s?void 0:s.collectionField);return!!(d&&ch(d,e)&&(null==u||null==(a=u.isAssociationField)?void 0:a.call(u))&&(null==u?void 0:u.targetCollection))},serverOnlyWhenContextParams:!0})}async saveStepParams(){return await (0,u8.ON)(this,async()=>await super.saveStepParams())}addAppends(){}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this}),this.context.defineMethod("refreshTargets",async e=>{let t=this.subModels.grid.subModels.items,l=null==t?void 0:t.map(e=>null==e?void 0:e.uid).filter(Boolean);if(null==l?void 0:l.length){let t=this.context.filterManager;await t.refreshTargetsByFilter(l,e)}})}onMount(){super.onMount(),this.context.defineProperty("filterFormGridModel",{value:this.subModels.grid}),this.applyDefaultsAndInitialFilter();let e=this.context.blockGridModel;if(null==e?void 0:e.emitter){let t=e=>{(null==e?void 0:e.uid)&&e.uid!==this.uid&&this.handleTargetBlockRemoved(e.uid).catch(e=>{console.error("Failed to handle destroyed target block in FilterFormBlockModel:",e)})};e.emitter.on("onSubModelDestroyed",t),this.removeTargetBlockListener=()=>e.emitter.off("onSubModelDestroyed",t)}}onUnmount(){var e,t;null==(e=(t=this).removeTargetBlockListener)||e.call(t),super.onUnmount()}async applyDefaultsAndInitialFilter(){if(await this.prepareInitialFilterValues()){var e,t;await (null==(e=(t=this.context).refreshTargets)?void 0:e.call(t,{excludeTargetIds:this.initialRefreshHandledTargetIds}))}}async prepareInitialFilterValues(){return!!this.form&&(this.initialDefaultsPromise||(this.initialDefaultsPromise=(async()=>{await this.ensureFilterItemsBeforeRender(),await this.applyFormDefaultValues()})()),await this.initialDefaultsPromise,!0)}markInitialTargetRefreshHandled(e){e&&this.initialRefreshHandledTargetIds.add(e)}async ensureFilterItemsBeforeRender(){var e,t;let l=null==(e=this.subModels)?void 0:e.grid,o=(null==l||null==(t=l.subModels)?void 0:t.items)||[];if(Array.isArray(o)&&0!==o.length)for(let e of o)"function"==typeof(null==e?void 0:e.dispatchEvent)&&await e.dispatchEvent("beforeRender")}canApplyFormDefaultValue(e,t,l){return!!(l||(0,u3.Po)(t))||!!this.lastDefaultValueByFieldName.has(e)&&(0,c.isEqual)(t,this.lastDefaultValueByFieldName.get(e))}canApplyFormOverrideValue(e,t){return!!t||!this.userEditedFieldNames.has(e)}normalizeFieldValueMode(e){return"assign"===e?"assign":"override"===e?"override":"default"}markFilterFormUserEditedFields(e){if(!(!e||"object"!=typeof e||Array.isArray(e)))for(let t of Object.keys(e))this.userEditedFieldNames.add(String(t))}resetFilterFormUserEditedFields(){this.userEditedFieldNames.clear()}async matchDefaultValueCondition(e){if(!e)return!0;let t=e;try{var l,o;let n=await (null==(l=(o=this.context).resolveJsonTemplate)?void 0:l.call(o,e));void 0!==n&&(t=n)}catch{t=e}return(0,u4.F)(this.context,t)}async applyFormDefaultValues(e){var t,l,o,n,i,r,a;let s={},d=this.form;if(!d)return s;let p=(null==e?void 0:e.force)===!0;p&&this.resetFilterFormUserEditedFields();let m=null==(t=(l=this).getStepParams)?void 0:t.call(l,"formFilterBlockModelSettings","defaultValues"),h=(null==m?void 0:m.value)||[];if(!Array.isArray(h)||0===h.length)return s;let f=async e=>{var t,l;if((0,u.isRunJSValue)(e)){let{code:t,version:l}=(0,u.normalizeRunJSValue)(e),o=await (0,u.runjsWithSafeGlobals)(this.context,t,{version:l});return(null==o?void 0:o.success)?o.value:void 0}return await (null==(t=(l=this.context).resolveJsonTemplate)?void 0:t.call(l,e))};for(let t of h){if(!t||"object"!=typeof t||!1===t.enable||!await this.matchDefaultValueCondition(t.condition))continue;if((null==e?void 0:e.refreshSeq)&&e.refreshSeq!==this.defaultValuesRefreshSeq)break;let l=t.targetPath?String(t.targetPath).trim():"",u=t.field?String(t.field).trim():"",m=(l?(0,di.eo)(this,l):null)??(u?null==(i=this.context)||null==(n=i.engine)||null==(o=n.getModel)?void 0:o.call(n,u):null);if(!m)continue;let h="function"==typeof m.getProps?m.getProps():m.props,g=(null==h?void 0:h.name)??(m.fieldPath?`${m.fieldPath}_${m.uid}`:void 0);if(!g)continue;let v=null==(r=d.getFieldValue)?void 0:r.call(d,g),y=await f(t.value);if((null==e?void 0:e.refreshSeq)&&e.refreshSeq!==this.defaultValuesRefreshSeq)break;if(void 0===y)continue;let _=aM(m),b=(0,uz.S)(_,y),x=this.normalizeFieldValueMode(t.mode);if(("default"!==x||this.canApplyFormDefaultValue(String(g),v,p))&&("override"!==x||this.canApplyFormOverrideValue(String(g),p))){if((0,c.isEqual)(v,b)){"default"===x?this.lastDefaultValueByFieldName.set(String(g),b):this.lastDefaultValueByFieldName.delete(String(g));continue}"function"==typeof d.setFieldValue?d.setFieldValue(g,b):null==(a=d.setFieldsValue)||a.call(d,{[String(g)]:b}),"default"===x?this.lastDefaultValueByFieldName.set(String(g),b):this.lastDefaultValueByFieldName.delete(String(g)),s[String(g)]=b}}return s}handleFilterFormValuesChange(e,t){this.markFilterFormUserEditedFields(e);let l=++this.defaultValuesRefreshSeq;(async()=>{var o,n;let i=await this.applyFormDefaultValues({refreshSeq:l});if(l!==this.defaultValuesRefreshSeq)return;let r={changedValues:{...e||{},...i||{}},allValues:(null==(n=this.form)||null==(o=n.getFieldsValue)?void 0:o.call(n))||t};this.dispatchEvent("formValuesChange",r,{debounce:!0}),this.emitter.emit("formValuesChange",r)})().catch(e=>{console.error("Failed to refresh filter form default values:",e)})}async handleTargetBlockRemoved(e){let t=this.context.filterManager;for(let l of[...this.subModels.grid.subModels.items||[]]){let o=t.getConnectFieldsConfig(l.uid),n=(null==o?void 0:o.targets)||[],i=n.some(t=>t.targetId===e),r=l.defaultTargetUid===e;if(!i&&!r)continue;let a=n.filter(t=>t.targetId!==e);if(a.length>0){await t.saveConnectFieldsConfig(l.uid,{targets:a});continue}await t.removeFilterConfig({filterId:l.uid}),await l.destroy()}}async destroy(){var e;let t=this.context.filterManager;return null==(e=this.subModels.grid.subModels.items)||e.map(e=>{t.removeFilterConfig({filterId:e.uid,persist:!1})}),await super.destroy()}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n}=this.props,i=!!this.context.flowSettingsEnabled;return(0,s.jsxs)(s4.s2,{model:this,onFinish:()=>{this.context.refreshTargets()},onValuesChange:(e,t)=>this.handleFilterFormValuesChange(e,t),layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n},children:[(0,s.jsx)(u.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),(0,s.jsx)(u.DndProvider,{children:(0,s.jsxs)(nb.FormButtonGroup,{align:"right",children:[this.mapSubModels("actions",e=>{if(!e.hidden||i)return(0,s.jsx)(u.Droppable,{model:e,children:(0,s.jsx)(u.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:u.DragHandler,sort:1}]},e.uid)},e.uid)}),(0,s.jsx)(u.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:"FilterFormActionGroupModel",children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.SettingOutlined,{}),children:this.translate("Actions")})},"filter-form-actions-add")]})})]})}constructor(...e){super(...e),this.autoTriggerFilter=!0,this.initialRefreshHandledTargetIds=new Set,this.lastDefaultValueByFieldName=new Map,this.userEditedFieldNames=new Set,this.defaultValuesRefreshSeq=0}}cg.scene=aU.P.filter,cg.define({label:(0,u.tExpr)("Form"),createModelOptions:{use:"FilterFormBlockModel",subModels:{grid:{use:"FilterFormGridModel"}}}}),cg.registerFlow({key:"formFilterBlockModelSettings",title:(0,u.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,u.tExpr)("Layout")},defaultValues:{use:"filterFormDefaultValues",title:(0,u.tExpr)("Field values"),beforeParamsSave(e){let t=cl(e.model);Array.isArray(t)&&t.length&&(0,u8.jI)(e.model)},afterParamsSave(e){var t,l;null==(l=e.model)||null==(t=l.applyFormDefaultValues)||t.call(l,{force:!0}).then(()=>{var t,l,o;return null==(o=e.model)||null==(l=o.context)||null==(t=l.refreshTargets)?void 0:t.call(l)})}}}}),cg.registerEvents({formValuesChange:{title:(0,u.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,u.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":aZ.H}},handler:aZ.b}});let cv=(0,d.observable)({collapsed:!1}),cy=(0,u.observer)(()=>{let e=(0,u.useFlowModel)(),t={...e.defaultProps,...e.props},l=()=>{e.dispatchEvent("collapseToggle")};return(0,s.jsx)(g.Button,{...t,onClick:l,icon:(0,s.jsx)(e1.DownOutlined,{rotate:180*!cv.collapsed}),iconPosition:"end",children:cv.collapsed?e.translate("Expand button"):e.translate("Collapse button")})});class c_ extends u2{onMount(){var e,t;super.onMount();let l=(null==(e=this.getStepParams("collapseSettings","defaultCollapsed"))?void 0:e.value)||!1,o=(null==(t=this.getStepParams("collapseSettings","toggle"))?void 0:t.collapsedRows)||1;cv.collapsed=l,this.context.filterFormGridModel.toggleFormFieldsCollapse(cv.collapsed,o)}render(){return(0,s.jsx)(cy,{})}constructor(...e){super(...e),this.defaultProps={type:"link"},this.enableEditTitle=!1,this.enableEditIcon=!1}}c_.registerFlow({key:"collapseSettings",title:(0,u.tExpr)("Collapse settings"),on:"collapseToggle",steps:{toggle:{title:(0,u.tExpr)("Collapsed rows"),uiSchema:{collapsedRows:{type:"number","x-decorator":"FormItem","x-component":g.InputNumber,"x-component-props":{min:1,max:10,placeholder:(0,u.tExpr)("Enter number of rows to display")},default:1}},async handler(e,t){let l=t.collapsedRows||1;cv.collapsed=!cv.collapsed,e.model.context.filterFormGridModel.toggleFormFieldsCollapse(cv.collapsed,l)}},defaultCollapsed:{title:(0,u.tExpr)("Default collapsed"),uiSchema:{value:{type:"boolean","x-decorator":"FormItem","x-component":"Switch"}},beforeParamsSave(e,t){var l;cv.collapsed=t.value||!1;let o=(null==(l=e.model.getStepParams("collapseSettings","toggle"))?void 0:l.collapsedRows)||1;e.model.context.filterFormGridModel.toggleFormFieldsCollapse(cv.collapsed,o)},handler(e,t){}}}}),c_.define({label:(0,u.tExpr)("Collapse button"),toggleable:!0,sort:300}),c_.registerEvents({collapseToggle:{title:(0,u.tExpr)("Collapse / Expand toggle"),name:"collapseToggle",uiSchema:{condition:{type:"object",title:(0,u.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":aZ.H}},handler:aZ.b}});let cb=(e,t,l)=>{var o,n,i;if(null==e?void 0:e.targetCollection)return e.targetCollection;let r=null==e?void 0:e.target;if(!r)return;if(null==t||null==(o=t.dataSource)?void 0:o.getCollection)return t.dataSource.getCollection(r);let a=null==t?void 0:t.dataSourceKey;if(a&&(null==l||null==(i=l.context)||null==(n=i.dataSourceManager)?void 0:n.getCollection))return l.context.dataSourceManager.getCollection(a,r)},cx=(e,t,l)=>{let o=cb(e,t,l);return(null==o?void 0:o.getFields)?(o.getFields()||[]).filter(e=>null==e?void 0:e.filterable):[]},cM=2;function cw(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}let cS=(e,t)=>{var l,o,n;let i=null==t||null==(l=t.context)?void 0:l.collectionField;if(!(null==i||null==(o=i.isAssociationField)?void 0:o.call(i)))return e;let r=dV((null==t||null==(n=t.props)?void 0:n.fieldNames)||(null==i?void 0:i.fieldNames),null==i?void 0:i.targetCollection).value,a=e=>{let t=e&&"object"==typeof e&&void 0!==(null==e?void 0:e.data)?e.data:e;return t&&"object"==typeof t?void 0!==(null==t?void 0:t[r])?t[r]:void 0!==(null==t?void 0:t.id)?t.id:void 0!==(null==t?void 0:t.value)?t.value:t:t};return Array.isArray(e)?e.map(a):a(e)},ck=e=>{let t=e=>{let t=e&&"object"==typeof e&&void 0!==(null==e?void 0:e.data)?e.data:e;return!!t&&"object"==typeof t};return Array.isArray(e)?e.some(t):t(e)},cF=e=>["belongsTo","hasOne"].includes(null==e?void 0:e.type)||["m2o","o2o","oho","obo","updatedBy","createdBy"].includes(null==e?void 0:e.interface),cC=(e,t)=>{var l,o;return(null==e||null==(l=e.props)?void 0:l.allowMultiple)===!0||(null==e||null==(o=e.props)?void 0:o.multiple)===!0||!cF(t)},cA=(e,t)=>{var l,o,n;if(!t)return;let i=(null==t?void 0:t.title)||(null==t?void 0:t.name),r=null==t?void 0:t.interface,a=r?null==e||null==(n=e.dataSourceManager)||null==(o=n.collectionFieldInterfaceManager)||null==(l=o.getFieldInterface)?void 0:l.call(o,r):void 0;return{...t,title:i,uiSchema:{...(null==t?void 0:t.uiSchema)||{},title:i},filterable:(null==t?void 0:t.filterable)||(null==a?void 0:a.filterable),isAssociationField:"function"==typeof(null==t?void 0:t.isAssociationField)?t.isAssociationField:()=>!!(null==t?void 0:t.target),getComponentProps:"function"==typeof(null==t?void 0:t.getComponentProps)?t.getComponentProps:()=>({})}},cP=e=>{var t,l;let{model:o,collection:n,ctxWithFlags:i,field:r,fieldPath:a,labelPrefix:s}=e,d=u.FilterableItemModel.getDefaultBindingByField(i,r);if(!d)return;let p=("function"==typeof(null==r?void 0:r.isAssociationField)?r.isAssociationField():!!(null==r?void 0:r.target))&&(null==(l=i.engine)||null==(t=l.getModelClass)?void 0:t.call(l,"FilterFormRecordSelectFieldModel"))?"FilterFormRecordSelectFieldModel":d.modelName,m=r.title||r.name;return{key:a,label:s?`${s} / ${m}`:m,useModel:"FilterFormItemModel",refreshTargets:["FilterFormCustomItemModel"],createModelOptions:()=>({use:"FilterFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==n?void 0:n.dataSourceKey,collectionName:null==n?void 0:n.name,fieldPath:a}},filterFormItemSettings:{init:{filterField:c.default.pick(r,["name","title","interface","type"]),defaultTargetUid:o.uid}}},subModels:{field:{use:p,props:"function"==typeof d.defaultProps?d.defaultProps(o.context,r):d.defaultProps}}})}},cT=e=>{var t;let{model:l,collection:o,ctxWithFlags:n,field:i,fieldPath:r,depth:a}=e;if(!cb(i,o,l)||a>cM)return;let d=i.title||i.name,u=(null==(t=l.context)?void 0:t.t)||(null==n?void 0:n.t)||(e=>e);return{key:`${r}-associationField`,label:d,children:async()=>{let e=cx(i,o,l),t=[],d=[];e.forEach(e=>{let i=`${r}.${e.name}`;if(null==e?void 0:e.targetCollection){let t=cT({model:l,collection:o,ctxWithFlags:n,field:e,fieldPath:i,depth:a+1});t&&d.push(t);return}let s=cP({model:l,collection:o,ctxWithFlags:n,field:e,fieldPath:i});s&&t.push(s)});let c=[];return(t.length&&c.push({key:`${r}-fields`,label:u("Fields"),type:"group",searchable:!0,searchPlaceholder:u("Search fields"),children:t}),d.length&&c.push({key:`${r}-relation-fields`,label:u("Association fields"),type:"group",searchable:!0,searchPlaceholder:u("Search association fields"),children:d}),c.length)?c:[{key:`${r}-empty`,label:(0,s.jsx)(g.Empty,{style:{width:140},description:u("No data"),image:g.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]}}},cj=async e=>{var t,l;let o=e.collection||e.context.collection,n=await (null==e||null==(t=e.getFilterFields)?void 0:t.call(e))||[],i=new u.FlowModelContext(e);i.addDelegate(e.context),i.defineProperty("flags",{value:{...null==(l=e.context)?void 0:l.flags,isInFilterFormBlock:!0}});let r=[],a=[];return n.forEach(t=>{let l=t.name,n=cP({model:e,collection:o,ctxWithFlags:i,field:t,fieldPath:l});if(n&&r.push(n),null==t?void 0:t.targetCollection){let n=cT({model:e,collection:o,ctxWithFlags:i,field:t,fieldPath:l,depth:1});n&&a.push(n)}}),{baseItems:r.filter(Boolean),relationItems:a.filter(Boolean)}};class cI extends u.FilterableItemModel{static defineChildren(e){let t=e.blockGridModel;if(!t)return[];let l=aS(t);return 0===l.length?[{key:"no-data-blocks",label:(0,s.jsx)(g.Empty,{style:{width:140},description:e.t("Please add a data block on the page first"),image:g.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]:l.map(t=>({key:t.uid,label:(0,s.jsx)("span",{style:{margin:"-5px -24px -5px -12px",padding:"5px 24px 5px 12px"},onMouseEnter:()=>{var e;let l=null==(e=t.context.ref)?void 0:e.current;l instanceof HTMLElement&&(l.style.outline=`2px solid ${t.context.themeToken.colorPrimaryBorder}`)},onMouseLeave:()=>{var e;let l=null==(e=t.context.ref)?void 0:e.current;l instanceof HTMLElement&&(l.style.outline="none")},children:`${t.title} #${t.uid.substring(0,4)}`}),children:async()=>{let{baseItems:l,relationItems:o}=await cj(t),n=[{key:"fields",label:e.t("Fields"),type:"group",searchable:!0,searchPlaceholder:e.t("Search fields"),children:l}];return o.length&&n.push({key:"relation-fields",label:e.t("Association fields"),type:"group",searchable:!0,searchPlaceholder:e.t("Search association fields"),children:o}),[...n]}}))}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}getCurrentOperatorMeta(){return ax(this,aM(this))}onInit(e){var t;super.onInit(e),this.debouncedDoFilter=(0,c.debounce)(this.doFilter.bind(this),300);let l=null==(t=this.getStepParams("filterFormItemSettings","init"))?void 0:t.filterField;l&&this.context.defineProperty("filterField",{value:{...l,title:(null==l?void 0:l.title)||(null==l?void 0:l.name)}})}onMount(){super.onMount(),this.mounted=!0}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=this.subModels.field,i=null==(e=this.context.form)?void 0:e.getFieldValue(this.props.name),r=n.getFilterValue?n.getFilterValue():i,a=null==n||null==(t=n.context)?void 0:t.collectionField,s=("function"==typeof(null==a?void 0:a.isAssociationField)?a.isAssociationField():!!(null==a?void 0:a.target))&&!this.mounted&&!aw(i)&&ck(i)&&!ck(r),d=aw(r)&&!aw(i),u=s||d?i:r,p=u;this.mounted||(p=cS(c.default.isEmpty(u)?this.getDefaultValue():u,null==(l=this.subModels)?void 0:l.field));let m=aM(this);p=this.normalizeAssociationFilterValue(p,n);let h=this.getCurrentOperatorMeta();if(null==h?void 0:h.noValue){let e=null==h||null==(o=h.schema)?void 0:o["x-component-props"];return!Array.isArray(cw(e)?e.options:void 0)||p}return(0,uz.S)(m,p)}normalizeAssociationFilterValue(e,t){var l,o;if(null==e)return e;let n=null==t||null==(l=t.context)?void 0:l.collectionField;if(!("function"==typeof(null==n?void 0:n.isAssociationField)?n.isAssociationField():!!(null==n?void 0:n.target)))return e;let i=dV((null==t||null==(o=t.props)?void 0:o.fieldNames)||(null==n?void 0:n.fieldNames),null==n?void 0:n.targetCollection).value;if(Array.isArray(e)){if(0===e.length)return e;let l=e.map(e=>e&&"object"==typeof e?e[i]:e);return cC(t,n)?l:l[0]}return"object"==typeof e?null==e?void 0:e[i]:e}getDefaultValue(){var e;return null==(e=this.getStepParams("filterFormItemSettings","initialValue"))?void 0:e.defaultValue}getValueProps(e){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,c.isEqual)(this.lastAutoTriggerValue,e)||(this.lastAutoTriggerValue=(0,c.cloneDeep)(e),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,c.cloneDeep)(e))),{value:e,onKeyDown:this.handleEnterPress.bind(this),isRange:"$dateBetween"===this.operator}}renderItem(){let e=this.subModels.field;return(0,s.jsx)(u.FormItem,{...this.props,getValueProps:this.getValueProps.bind(this),children:(0,s.jsx)(u.FieldModelRenderer,{model:e})})}constructor(...e){super(...e),this.mounted=!1,this.autoTriggerInitialized=!1,this.handleEnterPress=e=>{("Enter"===e.key||13===e.keyCode)&&(e.preventDefault(),this.doFilter())}}}cI.define({label:(0,u.tExpr)("Block list")}),cI.registerFlow({key:"filterFormItemSettings",sort:300,title:(0,u.tExpr)("Form item settings"),steps:{label:{title:(0,u.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l,o,n;let i=e.model,r=(null==(l=i.collectionField)?void 0:l.title)||(null==(o=e.filterField)?void 0:o.title)||(null==(n=e.filterField)?void 0:n.name)||i.fieldPath;t.decoratorProps={...t.decoratorProps,extra:i.context.t("Original field title: ")+r}}}}),defaultParams:e=>{var t,l,o;return{label:(null==(t=e.collectionField)?void 0:t.title)||(null==(l=e.filterField)?void 0:l.title)||(null==(o=e.filterField)?void 0:o.name)}},handler(e,t){var l,o,n;let i=(null==(l=e.collectionField)?void 0:l.title)||(null==(o=e.filterField)?void 0:o.title)||(null==(n=e.filterField)?void 0:n.name);t.label&&t.label===i?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{async handler(e,t){var l,o,n,i;let r=e.model,a=t.filterField?{...t.filterField,title:(null==(l=t.filterField)?void 0:l.title)||(null==(o=t.filterField)?void 0:o.name)}:t.filterField;e.model.context.defineProperty("filterField",{value:a}),e.model.setProps({name:`${r.fieldPath}_${e.model.uid}`});let s=r.collectionField,d=(null==(n=r.getFieldSettingsInitParams)?void 0:n.call(r))||{};if(!((null==d?void 0:d.dataSourceKey)&&(null==d?void 0:d.collectionName))&&!s&&a){let t=cA(e,a);t&&(e.model.context.defineProperty("collectionField",{value:t}),s=t)}if(null==s?void 0:s.getComponentProps){let t=s.getComponentProps(),l=(null==(i=e.model.subModels)?void 0:i.field)instanceof ue,{rules:o,required:n,multiple:r,allowMultiple:a,maxCount:d,...u}=t||{};e.model.setProps({...l?u:{...u,multiple:r,allowMultiple:a,maxCount:d},rules:void 0,required:void 0})}}},showLabel:{title:(0,u.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},tooltip:{title:(0,u.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,u.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"})})}},initialValue:{title:(0,u.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;return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem","x-component-props":{flags:{...(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.flags)||{},isInSetDefaultValueDialog:!0}}}}},handler(e,t){e.model.setProps({initialValue:t.defaultValue})}},model:{use:"fieldComponent",title:(0,u.tExpr)("Field component"),uiMode(e){let t=u.FilterableItemModel.getBindingsByField(e,e.collectionField),l=e.t;return{type:"select",key:"use",props:{options:t.map(e=>({label:l(e.modelName),value:e.modelName}))}}},hideInSettings(e){if(1===u.FilterableItemModel.getBindingsByField(e,e.collectionField).length)return!0}},connectFields:{use:"connectFields"},defaultOperator:{use:"defaultOperator"},operatorComponentProps:{use:"operatorComponentProps"},customizeFilterRender:{use:"customizeFilterRender"}}}),cI.registerFlow({key:"fieldSettings",title:(0,u.tExpr)("Field settings"),steps:{init:{handler(e,t){}}}});class cL extends aB{getAssociationFilterTargetKey(e){var t;let l=null==e||null==(t=e.targetCollection)?void 0:t.filterTargetKey;return Array.isArray(l)?l[0]||"id":l||"id"}normalizeFilterFormLayout(e,t){let l=this.getStepParams(aY,aN)||{},o=(null==t?void 0:t.useVisibleItemUids)!==!1;return(0,u.normalizeGridLayout)({layout:(null==e?void 0:e.layout)??this.props.layout??l.layout,rows:(null==e?void 0:e.rows)??this.props.rows??l.rows,sizes:(null==e?void 0:e.sizes)??this.props.sizes??l.sizes,rowOrder:(null==e?void 0:e.rowOrder)??this.props.rowOrder??l.rowOrder,itemUids:o?this.normalizedItemUidsOverride??this.getItemUids():this.getItemUids(),gridUid:this.uid,logger:console})}normalizeStoredFullLayout(){let e=this.getStepParams(aY,aN)||{};return(0,u.normalizeGridLayout)({layout:this.fullLayoutBeforeCollapse??e.layout??this.props.layout,rows:e.rows??this.props.rows,sizes:e.sizes??this.props.sizes,rowOrder:e.rowOrder??this.props.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}normalizeLayoutFromSource(e){return!e&&this.readingFullLayoutForSettingsInteraction?this.normalizeStoredFullLayout():this.normalizeFilterFormLayout(e,{useVisibleItemUids:!e&&!this.readingFullLayoutForSettingsInteraction})}getGridLayout(){return this.context.flowSettingsEnabled&&this.normalizedItemUidsOverride?this.normalizeStoredFullLayout():super.getGridLayout()}saveGridLayout(e){if(super.saveGridLayout(e),this.context.flowSettingsEnabled&&this.normalizedItemUidsOverride){let e=this.getStepParams(aY,aN)||{};this.fullLayoutBeforeCollapse=(0,u.normalizeGridLayout)({layout:e.layout??this.props.layout,rows:e.rows??this.props.rows,sizes:e.sizes??this.props.sizes,rowOrder:e.rowOrder??this.props.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}}handleDragStart(e){this.readingFullLayoutForSettingsInteraction=!!(this.context.flowSettingsEnabled&&this.normalizedItemUidsOverride);try{super.handleDragStart(e)}finally{this.readingFullLayoutForSettingsInteraction=!1}}collectLayoutItemUids(e){let t=new Set,l=e=>{e.forEach(e=>{e.cells.forEach(e=>{var o,n;null==(o=e.items)||o.forEach(e=>{e&&this.flowEngine.getModel(e)&&t.add(e)}),(null==(n=e.rows)?void 0:n.length)&&l(e.rows)})})};return l(e),Array.from(t)}getCellVisibleRowCount(e){var t,l;return(null==(t=e.rows)?void 0:t.length)?e.rows.reduce((e,t)=>e+this.getRowVisibleRowCount(t),0):(null==(l=e.items)?void 0:l.length)||0}getRowVisibleRowCount(e){return e.cells.reduce((e,t)=>Math.max(e,this.getCellVisibleRowCount(t)),0)}limitCellByVisibleCount(e,t){var l;if(t<=0)return null;if(null==(l=e.rows)?void 0:l.length){let l=this.limitLayoutRowsByVisibleCount(e.rows,t);return l.length?{id:e.id,rows:l}:null}if(e.items){let l=e.items.slice(0,t);return l.length?{id:e.id,items:l}:null}return null}limitRowByVisibleCount(e,t){let l=e.cells.map((l,o)=>{var n;let i=this.limitCellByVisibleCount(l,t);return i?{cell:i,size:null==(n=e.sizes)?void 0:n[o]}:null}).filter(Boolean);return l.length?{id:e.id,cells:l.map(e=>e.cell),sizes:l.map(e=>e.size??1)}:null}limitLayoutRowsByVisibleCount(e,t){let l=[],o=t;return e.forEach(e=>{if(o<=0)return;let t=this.getRowVisibleRowCount(e),n=this.limitRowByVisibleCount(e,Math.min(t,o));n&&(l.push(n),o-=Math.min(t,o))}),l}getFullLayout(){let e=this.getStepParams(aY,aN)||{},t=this.props.layout?this.normalizeFilterFormLayout(void 0,{useVisibleItemUids:!1}):void 0,l=e.layout?this.normalizeFilterFormLayout(e,{useVisibleItemUids:!1}):void 0,o=t?(0,u.projectLayoutToLegacyRows)(t):{rows:this.props.rows||{},rowOrder:this.props.rowOrder},n=l?(0,u.projectLayoutToLegacyRows)(l):{rows:e.rows||{},rowOrder:e.rowOrder},i=o.rows,r=n.rows||{},a=Object.keys(i).length,s=Object.keys(r).length,d=e=>Object.values(e).reduce((e,t)=>e+t.reduce((e,t)=>e+t.length,0),0),c=d(i),p=d(r),m=a>s||a===s&&c>=p,h=this.mergeRowsWithItems(m?i:r),f=m?o.rowOrder||this.props.rowOrder||e.rowOrder:n.rowOrder||e.rowOrder||this.props.rowOrder;return{...this.normalizeRowsWithOrder(h,f),layout:m?t:l}}toggleFormFieldsCollapse(e,t){let{rows:l,rowOrder:o,layout:n}=this.getFullLayout();if(!e){this.normalizedItemUidsOverride=void 0;let e=this.fullLayoutBeforeCollapse||n;e?this.syncLayoutProps(e):(this.setProps("rows",l),this.setProps("rowOrder",o)),this.fullLayoutBeforeCollapse=void 0;return}this.fullLayoutBeforeCollapse||(this.fullLayoutBeforeCollapse=n||(0,u.normalizeGridLayout)({rows:l,rowOrder:o,itemUids:this.getItemUids()}));let i=n||(0,u.normalizeGridLayout)({rows:l,rowOrder:o,itemUids:this.getItemUids()}),r=(0,u.normalizeGridLayout)({layout:{version:2,rows:this.limitLayoutRowsByVisibleCount(i.rows,t)}});this.normalizedItemUidsOverride=this.collectLayoutItemUids(r.rows),this.syncLayoutProps(r),this.setProps("rowOrder",o)}async onModelCreated(e){if(!(e instanceof cI))return;let{fieldPath:t}=e.getFieldSettingsInitParams(),l=aS(e.context.blockGridModel).filter(t=>{var l;return!!(null==(l=t.resource)?void 0:l.supportsFilter)&&t.uid===e.defaultTargetUid});if(l.length>0){let o=l.map(e=>{let l=e.collection||e.context.collection;if(l){var o,n,i;let r;if(null==t?void 0:t.includes(".")){let i=`${l.dataSourceKey}.${l.name}.${t}`;r=null==(n=e.context.dataSourceManager)||null==(o=n.getCollectionField)?void 0:o.call(n,i)}if(r||(r=null==(i=l.getField)?void 0:i.call(l,t)),null==r?void 0:r.target)return{targetId:e.uid,filterPaths:[`${t}.${this.getAssociationFilterTargetKey(r)}`]}}return{targetId:e.uid,filterPaths:[t]}});await this.context.filterManager.saveConnectFieldsConfig(e.uid,{targets:o})}}renderAddSubModelButton(){var e,t,l;return this.loading.value?null:(0,s.jsx)(u.AddSubModelButton,{subModelKey:"items",model:this,afterSubModelInit:this.onModelCreated.bind(this),keepDropdownOpen:!0,subModelBaseClasses:["FilterFormItemModel","FilterFormCustomItemModel"],children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.SettingOutlined,{}),children:this.translate("Fields")})},null==(l=this.context.blockGridModel)||null==(t=l.subModels)||null==(e=t.items)?void 0:e.length)}constructor(...e){super(...e),this.readingFullLayoutForSettingsInteraction=!1,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}}},this.loading=u.observable.ref(!1)}}cL.registerFlow({key:"filterFormGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class cD extends u2{}cD.define({label:(0,u.tExpr)("JS action"),sort:9999}),cD.registerFlow({key:"clickSettings",on:"click",title:(0,u.tExpr)("Click settings"),steps:{runJs:{title:(0,u.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":sk.BY,"x-component-props":{minHeight:"400px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:""}),async handler(e,t){let{code:l,version:o}=sF(e,t),n=(0,u.createSafeNavigator)();await e.runjs(l,{window:(0,u.createSafeWindow)({navigator:n}),document:(0,u.createSafeDocument)(),navigator:n},{version:o})}}}});class cR extends u2{constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Reset")}}}cR.registerFlow({key:"resetSettings",on:{eventName:"click"},steps:{doReset:{async handler(e,t){let l=e.model.context.blockModel,o=l.subModels.grid.subModels.items;e.form.resetFields(),setTimeout(()=>{var e;null==(e=l.applyFormDefaultValues)||e.call(l,{force:!0}).finally(()=>{o.forEach(e=>{e.doReset()})})})}}}}),cR.define({label:(0,u.tExpr)("Reset"),toggleable:!0,sort:200});class cE extends u2{onInit(e){super.onInit(e),this.context.blockModel.autoTriggerFilter=!1}onUnmount(){super.onUnmount(),this.context.blockModel.autoTriggerFilter=!0}constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Filter"),type:"primary"}}}cE.registerFlow({key:"submitSettings",on:{eventName:"click"},steps:{doFilter:{async handler(e,t){e.form.submit()}}}}),cE.define({label:(0,u.tExpr)("Filter"),toggleable:!0,sort:100});let cY=(0,u.defineAction)({name:"connectFields",title:(0,u.tExpr)("Connect fields"),uiSchema:e=>({value:{type:"object","x-component":cV}}),beforeParamsSave(e,t){c.default.isEmpty(t.value)||e.model.context.filterManager.saveConnectFieldsConfig(e.model.uid,t.value),e.exit()},handler(e,t){}}),cN=2,cO=e=>!!((null==e?void 0:e.target)||(null==e?void 0:e.targetCollection)),cB=function(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=o.filter(Boolean);return t.map(t=>{let a=l?`${l}.${t.name}`:t.name,s=t.title||t.name,d=n?`${n} / ${s}`:s,u=cO(t),c=i+ +!!u;if(u&&c>cN)return null;let p=!u,m={label:s,value:t.name,isLeaf:p,disableCheckbox:!p,meta:{field:t,fullPath:a,fullLabel:d,associationDepth:c}};if(!p&&r.some(e=>e&&e.startsWith(a+"."))){var h,f,g;if(null==(f=t.filterable)||null==(h=f.children)?void 0:h.length)m.children=cB(e,t.filterable.children,a,o,d,c);else{let l=t.targetCollection;l&&(m.children=cB(e,(null==(g=l.getFields)?void 0:g.call(l))||[],a,o,d,c))}}return m}).filter(Boolean).sort((e,t)=>e.isLeaf&&!t.isLeaf?-1:!e.isLeaf&&t.isLeaf?1:0)};function cV(e){let t=(0,u.useFlowSettingsContext)(),l=(0,p.useMemo)(()=>aS(t.blockGridModel),[t.blockGridModel]),[o,n]=(0,p.useState)(()=>t.model.context.filterManager.getConnectFieldsConfig(t.model.uid)),[i,r]=(0,p.useState)({}),[a,d]=(0,p.useState)({});p.default.useEffect(()=>{(async()=>{let e={},t=((null==o?void 0:o.targets)||[]).map(e=>e.targetId);for(let o of l.filter(e=>t.includes(e.uid))){var n;let t=await (null==(n=o.getFilterFields)?void 0:n.call(o))||[];e[o.uid]=t}r(e)})()},[null==o?void 0:o.targets,l]);let c=(e,t)=>{d(l=>({...l,[e]:t}))},m=e=>a[e]||"field-select",h=(t,l)=>{var i;let r={};((null==o?void 0:o.targets)||[]).forEach(e=>{r[e.targetId]=e}),r[t]={targetId:t,filterPaths:l};let a=Object.values(r);null==(i=e.onChange)||i.call(e,{targets:a}),n({targets:a})},f=(t,l)=>{var i;let r={};((null==o?void 0:o.targets)||[]).forEach(e=>{r[e.targetId]=e}),l?r[t]={targetId:t,filterPaths:[]}:delete r[t];let a=Object.values(r);null==(i=e.onChange)||i.call(e,{targets:a}),n({targets:a})},v=t=>{var l;let i={};((null==o?void 0:o.targets)||[]).forEach(e=>{e.targetId!==t&&(i[e.targetId]=e)});let r=Object.values(i);null==(l=e.onChange)||l.call(e,{targets:r}),n({targets:r})},y=((null==o?void 0:o.targets)||[]).map(e=>e.targetId),_=l.filter(e=>{var t;return null==(t=e.resource)?void 0:t.supportsFilter}).map(e=>{let t=y.includes(e.uid);return{key:e.uid,label:(0,s.jsxs)("button",{type:"button",style:{display:"flex",justifyContent:"space-between",alignItems:"center",minWidth:"200px",border:"none",background:"none",padding:"0",width:"100%",cursor:"pointer"},onClick:l=>{l.stopPropagation(),f(e.uid,!t)},children:[(0,s.jsxs)("span",{style:{marginRight:"16px"},children:[e.title," #",e.uid.substring(0,4)]}),(0,s.jsx)(g.Switch,{size:"small",checked:t})]})}});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{marginBottom:"16px",padding:"12px",backgroundColor:"#f0f9ff",border:"1px solid #bae6fd",borderRadius:"6px",fontSize:"14px",color:"#0369a1"},children:[(0,s.jsx)("div",{style:{fontWeight:500,marginBottom:"8px"},children:t.t("Configuration:")}),(0,s.jsxs)("ul",{style:{margin:0,paddingLeft:"16px"},children:[(0,s.jsx)("li",{children:t.t('Available "target blocks" are all data blocks on the current page')}),(0,s.jsx)("li",{children:t.t("Support filtering multiple blocks simultaneously, support selection of relationship fields up to two levels (e.g.: User/Department/Name)")})]})]}),l.filter(e=>y.includes(e.uid)&&i[e.uid]).sort((e,t)=>((null==o?void 0:o.targets)||[]).findIndex(t=>t.targetId===e.uid)-((null==o?void 0:o.targets)||[]).findIndex(e=>e.targetId===t.uid)).map(e=>{var l,n;let r=i[e.uid]||[],a=(null==o||null==(n=o.targets)||null==(l=n.find(t=>t.targetId===e.uid))?void 0:l.filterPaths)||[],d=cB(t,r,"",a,""),u=a.map(e=>e.split(".")),p=m(e.uid);return(0,s.jsx)(nb.FormItem,{label:`${e.title} #${e.uid.substring(0,4)}`,children:(0,s.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[(0,s.jsx)("div",{style:{flex:1},children:"field-select"===p?(0,s.jsx)(cH,{options:d,value:u,onChange:t=>{let l=(t||[]).map(e=>e.join("."));h(e.uid,l)},multiple:!0,allowClear:!0,placeholder:t.t("Please select fields to filter"),style:{width:"100%"},showSearch:{filter:(e,t)=>t.some(t=>(t.label||"").toString().toLowerCase().includes(e.toLowerCase()))}}):(0,s.jsx)(g.Select,{mode:"tags",value:a,onChange:t=>h(e.uid,t),placeholder:t.t("Separate multiple values with comma or Enter"),style:{width:"100%"},allowClear:!0,tokenSeparators:[","],open:!1,suffixIcon:null})}),(0,s.jsx)(g.Segmented,{value:p,onChange:t=>c(e.uid,t),options:[{label:t.t("Dropdown select"),value:"field-select"},{label:t.t("Text input"),value:"text-input"}]}),(0,s.jsx)(g.Button,{type:"text",icon:(0,s.jsx)(e1.DeleteOutlined,{}),onClick:()=>v(e.uid),style:{color:"#8c8c8c"},title:t.t("Delete this target block")})]})},e.uid)}),(0,s.jsx)("div",{style:{marginTop:"16px"},children:(0,s.jsx)(g.Dropdown,{menu:{items:_},trigger:["hover"],autoFocus:!1,children:(0,s.jsx)(g.Button,{type:"dashed",icon:(0,s.jsx)(e1.PlusOutlined,{}),style:{width:"100%"},children:t.t("Add target block")})})})]})}function cH(e){let t=(0,u.useFlowSettingsContext)(),[l,o]=p.default.useState(e.options||[]),n=p.default.useMemo(()=>(e.options||[]).map(e=>{var t;return(null==e||null==(t=e.meta)?void 0:t.fullPath)||(null==e?void 0:e.value)}).filter(Boolean).join("|"),[e.options]),i=(0,S.cx)(e.popupClassName,(0,S.css)`
852
+ `,children:e.label}),dropdownRender:e=>{let t=y.some(e=>e[l.label]===f.searchText);return(0,s.jsx)(s.Fragment,{children:"quickAdd"===a&&c&&p&&f.searchText?(0,s.jsxs)(s.Fragment,{children:[!(0===y.length&&f.searchText)&&e,y.length>0&&f.searchText&&!t&&(0,s.jsx)(g.Divider,{style:{margin:0}}),!t&&(0,s.jsx)(M,{searchText:f.searchText})]}):e})}}),"modalAdd"===a&&(c&&p||b)&&(c&&p?(0,s.jsx)(g.Button,{onClick:f.onModalAddClick,children:x("Add new")}):(0,s.jsx)(au._T,{forbidden:{actionName:"create"},collection:null==_||null==(t=_.collectionField)?void 0:t.targetCollection,message:w,children:(0,s.jsx)(g.Button,{onClick:f.onModalAddClick,disabled:!p,style:{opacity:"0.3"},children:x("Add new")})}))]})};class u1 extends ue{buildValueOptionsSyncKey(){var e,t,l,o,n,i,r,a,s,d,u,c,p;if("value"!==((null==(e=this.props)?void 0:e.valueMode)||"record"))return null;let m=(null==(t=this.props)?void 0:t.fieldNames)||{},h=(null==(o=this.context.collectionField)||null==(l=o.targetCollection)?void 0:l.filterTargetKey)||"id",f=(null==m?void 0:m.value)||"id",g=!!((null==(n=this.props)?void 0:n.multiple)&&(null==(i=this.props)?void 0:i.allowMultiple)),v=dK(null==(r=this.props)?void 0:r.options,null==(a=this.props)?void 0:a.value,g),y=null==(c=this.context.collectionField)||null==(u=c.targetCollection)||null==(d=u.getField)||null==(s=d.call(u,h))?void 0:s.type,_=uX(null==(p=this.props)?void 0:p.value,v,h,f,g,y);if(!_.length)return null;let b=new Set(v.map(e=>null==e?void 0:e[h]).filter(e=>null!=e)),x=_.filter(e=>!b.has(e));return x.length?`${h}::${x.slice().sort().join(",")}`:null}ensureValueOptionsSynced(){let e=this.buildValueOptionsSyncKey();!e||e===this.valueOptionsSyncedKey||this.valueOptionsSyncTask&&this.valueOptionsSyncKey===e||(this.valueOptionsSyncKey=e,this.valueOptionsSyncTask=this.applyFlow("syncValueOptions").then(()=>{this.valueOptionsSyncedKey=e}).finally(()=>{this.valueOptionsSyncKey===e&&(this.valueOptionsSyncTask=null)}))}async onDispatchEventStart(e){"beforeRender"===e&&this.ensureValueOptionsSynced()}getFilterValue(){if("value"===(this.props.valueMode||"record")){var e,t;let l=(null==(t=this.props)||null==(e=t.fieldNames)?void 0:e.value)||"id",o=e=>null==e?e:"object"==typeof e?(null==e?void 0:e[l])??(null==e?void 0:e.value):e;return Array.isArray(this.props.value)?this.props.value.map(e=>o(e)).filter(e=>null!=e&&""!==e):o(this.props.value)}return super.getFilterValue()}render(){return this.context.isMobileLayout?(0,s.jsx)(dX,{...this.props,loading:this.resource.loading}):(0,s.jsx)(u0,{...this.props})}constructor(...e){super(...e),this.valueOptionsSyncKey=null,this.valueOptionsSyncedKey=null,this.valueOptionsSyncTask=null}}u1.registerFlow({key:"syncValueOptions",sort:780,steps:{syncByValue:{async handler(e){var t,l,o,n,i,r,a,s,d,u,c,p,m,h,f;if("value"!==((null==(t=e.model.props)?void 0:t.valueMode)||"record"))return;let g=(null==(l=e.model.props)?void 0:l.fieldNames)||{},v=(null==(n=e.model.context.collectionField)||null==(o=n.targetCollection)?void 0:o.filterTargetKey)||"id",y=(null==g?void 0:g.value)||"id",_=!!((null==(i=e.model.props)?void 0:i.multiple)&&(null==(r=e.model.props)?void 0:r.allowMultiple)),b=dK(null==(a=e.model.props)?void 0:a.options,null==(s=e.model.props)?void 0:s.value,_),x=null==(p=e.model.context.collectionField)||null==(c=p.targetCollection)||null==(u=c.getField)||null==(d=u.call(c,v))?void 0:d.type,M=uX(null==(m=e.model.props)?void 0:m.value,b,v,y,_,x);if(!M.length)return;let w=new Set(b.map(e=>null==e?void 0:e[v]).filter(e=>null!=e)),S=M.filter(e=>!w.has(e));if(!S.length)return;let k=e.model.resource;if(!k||"function"!=typeof(null==k?void 0:k.addFilterGroup)||"function"!=typeof(null==k?void 0:k.refresh))return;let F=1===S.length?{[`${v}.$eq`]:S[0]}:{[`${v}.$in`]:S};try{k.addFilterGroup(uG,F),await k.refresh();let t=(null==(h=k.getData)?void 0:h.call(k))||[];if(!Array.isArray(t)||!t.length)return;let l=uQ(b,t,v);if(!(l.length!==b.length||l.some((e,t)=>{var l;return(null==e?void 0:e[v])!==(null==b||null==(l=b[t])?void 0:l[v])})))return;e.model.setDataSource(l)}finally{null==(f=k.removeFilterGroup)||f.call(k,uG)}}}}}),u1.registerFlow({key:"selectSettings",title:(0,u.tExpr)("Association select settings"),sort:800,steps:{fieldNames:{use:"titleField"},valueFieldOverride:{handler(e){let t=e.model.props.recordSelectValueField;if(!t)return;let l={...e.model.props.fieldNames||{},value:t};e.model.setProps({fieldNames:l})}},dataScope:{use:"dataScope"},sortingRule:{use:"sortingRule"},allowMultiple:{title:(0,u.tExpr)("Multiple"),uiMode:{type:"switch",key:"allowMultiple"},hideInSettings:e=>!e.collectionField||!["belongsToMany","hasMany","belongsToArray"].includes(e.collectionField.type),defaultParams:e=>"boolean"==typeof e.model.props.allowMultiple?{allowMultiple:e.model.props.allowMultiple}:{allowMultiple:e.collectionField&&["belongsToMany","hasMany","belongsToArray"].includes(e.model.context.collectionField.type)},handler(e,t){var l,o;let n=(null==e||null==(o=e.blockModel)||null==(l=o.constructor)?void 0:l.scene)===aU.P.filter,i="boolean"==typeof e.model.props.allowMultiple?e.model.props.allowMultiple:null==t?void 0:t.allowMultiple;n&&"boolean"==typeof i?e.model.setProps({allowMultiple:i,multiple:i}):e.model.setProps({allowMultiple:null==t?void 0:t.allowMultiple,multiple:null==t?void 0:t.allowMultiple})}},quickCreate:{title:(0,u.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)===aU.P.filter},defaultParams:{quickCreate:"none"},handler(e,t){e.model.setProps({quickCreate:t.quickCreate})}}}});class u2 extends au.S0{}class u5 extends aa{}u5.baseClass=u2;var u8=__webpack_require__(544),u4=__webpack_require__(9413),u3=__webpack_require__(1022),u6=__webpack_require__(3341);let u9=["filterFormItemSettings"],u7=(0,u6.li)(u9),ce=(0,u6.u4)(u9);function ct(e){return(0,u6.TE)(e,u7)}function cl(e){return(0,u6.Co)(e,u7,ce)}let co=["belongsTo","hasOne","hasMany","belongsToMany","belongsToArray"],cn=["integer","float","double","decimal"];function ci(e){if(co.includes(e.type))return"object";if(cn.includes(e.type))return"number";switch(e.type){case"boolean":return"boolean";case"json":return"object";case"array":return"array";default:return"string"}}function cr(e){return!!(null==e?void 0:e.interface)}function ca(e){var t;let l={title:e.title||e.name,interface:e.interface,options:e.options,uiSchema:e.uiSchema||{}};if(!(null==(t=e.isAssociationField)?void 0:t.call(e)))return{type:ci(e),...l};let o=e.targetCollection;return o?{type:"object",...l,properties:async()=>{let e={};return o.fields.forEach(t=>{cr(t)&&(e[t.name]=ca(t))}),e}}:{type:"object",...l}}function cs(e){var t;let l=null==e||null==(t=e.props)?void 0:t.name;return"string"==typeof l&&l?l:(null==e?void 0:e.fieldPath)&&(null==e?void 0:e.uid)?`${e.fieldPath}_${e.uid}`:void 0}function cd(e,t){if(null==e)return;if(Array.isArray(t)){if("object"!=typeof e)return;let l={};for(let o of t){let t=null==e?void 0:e[o];if(null==t)return;l[o]=t}return l}if("object"!=typeof e)return e;let l=Array.isArray(t)?t[0]:t;return l?null==e?void 0:e[l]:null==e?void 0:e.id}function cu(e,t,l){let o=t.split(".").filter(Boolean);if(!o.length)return;let n=e;o.forEach((e,t)=>{if(t===o.length-1){n[e]=l;return}(!n[e]||"object"!=typeof n[e]||Array.isArray(n[e]))&&(n[e]={}),n=n[e]})}function cc(e,t,l){let o=t.split(".").filter(Boolean);if(!o.length)return;let n=e;o.forEach((e,t)=>{if(t===o.length-1){n[e]=l;return}let i=n[e];i&&"object"==typeof i||(n[e]={type:"object",title:e,properties:{}});let r=n[e].properties;r&&"function"!=typeof r||(n[e].properties={}),n=n[e].properties})}function cp(e,t){var l;let o=(null==e||null==(l=e.getFieldsValue)?void 0:l.call(e))||{},n={...o};for(let e of t){let t=cs(e);t&&t.includes(".")&&t in o&&cu(n,t,o[t])}return n}function cm(e,t){return t===e||t.startsWith(`${e}.`)||t.startsWith(`${e}[`)}function ch(e,t){return t.startsWith(`${e}.`)||t.startsWith(`${e}[`)}function cf(e,t){return t&&e.find(e=>{let l=cs(e);return l&&cm(l,t)})||null}class cg extends aQ{get form(){return this.context.form}get title(){return"Filter form"}createFormValuesMetaFactory(){let e=async()=>({type:"object",title:this.translate("Current form"),properties:async()=>{var e,t,l,o,n,i;let r={};for(let a of(null==(l=this.subModels)||null==(t=l.grid)||null==(e=t.subModels)?void 0:e.items)||[]){let e=cs(a),t=(null==a||null==(i=a.subModels)||null==(n=i.field)||null==(o=n.context)?void 0:o.collectionField)||(null==a?void 0:a.collectionField);e&&t&&cr(t)&&cc(r,e,ca(t))}return r},buildVariablesParams:()=>{var e,t,l,o,n,i,r,a,s;let d=(null==(t=this.form)||null==(e=t.getFieldsValue)?void 0:e.call(t))||{},u=(null==(n=this.subModels)||null==(o=n.grid)||null==(l=o.subModels)?void 0:l.items)||[],c={};for(let e of u){let t=cs(e),l=(null==e||null==(a=e.subModels)||null==(r=a.field)||null==(i=r.context)?void 0:i.collectionField)||(null==e?void 0:e.collectionField);if(!t||!(null==l||null==(s=l.isAssociationField)?void 0:s.call(l)))continue;let o=l.targetCollection,n=l.target;if(!o||!n)continue;let u=d[t],p=o.filterTargetKey;if(Array.isArray(u)){let e=u.map(e=>cd(e,p)).filter(e=>null!=e);e.length&&cu(c,t,{collection:n,dataSourceKey:o.dataSourceKey,filterByTk:e});continue}let m=cd(u,p);null!=m&&cu(c,t,{collection:n,dataSourceKey:o.dataSourceKey,filterByTk:m})}return c}});return e.title=this.translate("Current form"),e}useHooksBeforeRender(){let[e]=g.Form.useForm();this.context.defineProperty("form",{get:()=>e,cache:!1}),this.context.defineProperty("formValues",{get:()=>{var e,t,l;return cp(this.form,(null==(l=this.subModels)||null==(t=l.grid)||null==(e=t.subModels)?void 0:e.items)||[])},cache:!1,meta:this.createFormValuesMetaFactory(),resolveOnServer:e=>{var t,l,o,n,i,r,a;let s=cf((null==(o=this.subModels)||null==(l=o.grid)||null==(t=l.subModels)?void 0:t.items)||[],e);if(!s)return!1;let d=cs(s),u=(null==s||null==(r=s.subModels)||null==(i=r.field)||null==(n=i.context)?void 0:n.collectionField)||(null==s?void 0:s.collectionField);return!!(d&&ch(d,e)&&(null==u||null==(a=u.isAssociationField)?void 0:a.call(u))&&(null==u?void 0:u.targetCollection))},serverOnlyWhenContextParams:!0})}async saveStepParams(){return await (0,u8.ON)(this,async()=>await super.saveStepParams())}addAppends(){}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this}),this.context.defineMethod("refreshTargets",async e=>{let t=this.subModels.grid.subModels.items,l=null==t?void 0:t.map(e=>null==e?void 0:e.uid).filter(Boolean);if(null==l?void 0:l.length){let t=this.context.filterManager;await t.refreshTargetsByFilter(l,e)}})}onMount(){super.onMount(),this.context.defineProperty("filterFormGridModel",{value:this.subModels.grid}),this.applyDefaultsAndInitialFilter();let e=this.context.blockGridModel;if(null==e?void 0:e.emitter){let t=e=>{(null==e?void 0:e.uid)&&e.uid!==this.uid&&this.handleTargetBlockRemoved(e.uid).catch(e=>{console.error("Failed to handle destroyed target block in FilterFormBlockModel:",e)})};e.emitter.on("onSubModelDestroyed",t),this.removeTargetBlockListener=()=>e.emitter.off("onSubModelDestroyed",t)}}onUnmount(){var e,t;null==(e=(t=this).removeTargetBlockListener)||e.call(t),super.onUnmount()}async applyDefaultsAndInitialFilter(){if(await this.prepareInitialFilterValues()){var e,t;await (null==(e=(t=this.context).refreshTargets)?void 0:e.call(t,{excludeTargetIds:this.initialRefreshHandledTargetIds}))}}async prepareInitialFilterValues(){return!!this.form&&(this.initialDefaultsPromise||(this.initialDefaultsPromise=(async()=>{await this.ensureFilterItemsBeforeRender(),await this.applyFormDefaultValues()})()),await this.initialDefaultsPromise,!0)}markInitialTargetRefreshHandled(e){e&&this.initialRefreshHandledTargetIds.add(e)}async ensureFilterItemsBeforeRender(){var e,t;let l=null==(e=this.subModels)?void 0:e.grid,o=(null==l||null==(t=l.subModels)?void 0:t.items)||[];if(Array.isArray(o)&&0!==o.length)for(let e of o)"function"==typeof(null==e?void 0:e.dispatchEvent)&&await e.dispatchEvent("beforeRender")}canApplyFormDefaultValue(e,t,l){return!!l||!this.userEditedFieldNames.has(e)&&(!!(0,u3.Po)(t)||!!this.lastDefaultValueByFieldName.has(e)&&(0,c.isEqual)(t,this.lastDefaultValueByFieldName.get(e)))}canApplyFormOverrideValue(e,t){return!!t||!this.userEditedFieldNames.has(e)}normalizeFieldValueMode(e){return"assign"===e?"assign":"override"===e?"override":"default"}markFilterFormUserEditedFields(e){if(!(!e||"object"!=typeof e||Array.isArray(e)))for(let t of Object.keys(e))this.userEditedFieldNames.add(String(t))}resetFilterFormUserEditedFields(){this.userEditedFieldNames.clear()}async matchDefaultValueCondition(e){if(!e)return!0;let t=e;try{var l,o;let n=await (null==(l=(o=this.context).resolveJsonTemplate)?void 0:l.call(o,e));void 0!==n&&(t=n)}catch{t=e}return(0,u4.F)(this.context,t)}async applyFormDefaultValues(e){var t,l,o,n,i,r,a;let s={},d=this.form;if(!d)return s;let p=(null==e?void 0:e.force)===!0;p&&this.resetFilterFormUserEditedFields();let m=null==(t=(l=this).getStepParams)?void 0:t.call(l,"formFilterBlockModelSettings","defaultValues"),h=(null==m?void 0:m.value)||[];if(!Array.isArray(h)||0===h.length)return s;let f=async e=>{var t,l;if((0,u.isRunJSValue)(e)){let{code:t,version:l}=(0,u.normalizeRunJSValue)(e),o=await (0,u.runjsWithSafeGlobals)(this.context,t,{version:l});return(null==o?void 0:o.success)?o.value:void 0}return await (null==(t=(l=this.context).resolveJsonTemplate)?void 0:t.call(l,e))};for(let t of h){if(!t||"object"!=typeof t||!1===t.enable||!await this.matchDefaultValueCondition(t.condition))continue;if((null==e?void 0:e.refreshSeq)&&e.refreshSeq!==this.defaultValuesRefreshSeq)break;let l=t.targetPath?String(t.targetPath).trim():"",u=t.field?String(t.field).trim():"",m=(l?(0,di.eo)(this,l):null)??(u?null==(i=this.context)||null==(n=i.engine)||null==(o=n.getModel)?void 0:o.call(n,u):null);if(!m)continue;let h="function"==typeof m.getProps?m.getProps():m.props,g=(null==h?void 0:h.name)??(m.fieldPath?`${m.fieldPath}_${m.uid}`:void 0);if(!g)continue;let v=null==(r=d.getFieldValue)?void 0:r.call(d,g),y=await f(t.value);if((null==e?void 0:e.refreshSeq)&&e.refreshSeq!==this.defaultValuesRefreshSeq)break;if(void 0===y)continue;let _=aM(m),b=(0,uz.S)(_,y),x=this.normalizeFieldValueMode(t.mode);if(("default"!==x||this.canApplyFormDefaultValue(String(g),v,p))&&("override"!==x||this.canApplyFormOverrideValue(String(g),p))){if((0,c.isEqual)(v,b)){"default"===x?this.lastDefaultValueByFieldName.set(String(g),b):this.lastDefaultValueByFieldName.delete(String(g));continue}"function"==typeof d.setFieldValue?d.setFieldValue(g,b):null==(a=d.setFieldsValue)||a.call(d,{[String(g)]:b}),"default"===x?this.lastDefaultValueByFieldName.set(String(g),b):this.lastDefaultValueByFieldName.delete(String(g)),s[String(g)]=b}}return s}handleFilterFormValuesChange(e,t){this.markFilterFormUserEditedFields(e);let l=++this.defaultValuesRefreshSeq;(async()=>{var o,n;let i=await this.applyFormDefaultValues({refreshSeq:l});if(l!==this.defaultValuesRefreshSeq)return;let r={changedValues:{...e||{},...i||{}},allValues:(null==(n=this.form)||null==(o=n.getFieldsValue)?void 0:o.call(n))||t};this.dispatchEvent("formValuesChange",r,{debounce:!0}),this.emitter.emit("formValuesChange",r)})().catch(e=>{console.error("Failed to refresh filter form default values:",e)})}async handleTargetBlockRemoved(e){let t=this.context.filterManager;for(let l of[...this.subModels.grid.subModels.items||[]]){let o=t.getConnectFieldsConfig(l.uid),n=(null==o?void 0:o.targets)||[],i=n.some(t=>t.targetId===e),r=l.defaultTargetUid===e;if(!i&&!r)continue;let a=n.filter(t=>t.targetId!==e);if(a.length>0){await t.saveConnectFieldsConfig(l.uid,{targets:a});continue}await t.removeFilterConfig({filterId:l.uid}),await l.destroy()}}async destroy(){var e;let t=this.context.filterManager;return null==(e=this.subModels.grid.subModels.items)||e.map(e=>{t.removeFilterConfig({filterId:e.uid,persist:!1})}),await super.destroy()}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n}=this.props,i=!!this.context.flowSettingsEnabled;return(0,s.jsxs)(s4.s2,{model:this,onFinish:()=>{this.context.refreshTargets()},onValuesChange:(e,t)=>this.handleFilterFormValuesChange(e,t),layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n},children:[(0,s.jsx)(u.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),(0,s.jsx)(u.DndProvider,{children:(0,s.jsxs)(nb.FormButtonGroup,{align:"right",children:[this.mapSubModels("actions",e=>{if(!e.hidden||i)return(0,s.jsx)(u.Droppable,{model:e,children:(0,s.jsx)(u.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!1,showBorder:!1,toolbarPosition:"above"},extraToolbarItems:[{key:"drag-handler",component:u.DragHandler,sort:1}]},e.uid)},e.uid)}),(0,s.jsx)(u.AddSubModelButton,{model:this,subModelKey:"actions",subModelBaseClass:"FilterFormActionGroupModel",children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.SettingOutlined,{}),children:this.translate("Actions")})},"filter-form-actions-add")]})})]})}constructor(...e){super(...e),this.autoTriggerFilter=!0,this.initialRefreshHandledTargetIds=new Set,this.lastDefaultValueByFieldName=new Map,this.userEditedFieldNames=new Set,this.defaultValuesRefreshSeq=0}}cg.scene=aU.P.filter,cg.define({label:(0,u.tExpr)("Form"),createModelOptions:{use:"FilterFormBlockModel",subModels:{grid:{use:"FilterFormGridModel"}}}}),cg.registerFlow({key:"formFilterBlockModelSettings",title:(0,u.tExpr)("Form settings"),steps:{layout:{use:"layout",title:(0,u.tExpr)("Layout")},defaultValues:{use:"filterFormDefaultValues",title:(0,u.tExpr)("Field values"),beforeParamsSave(e){let t=cl(e.model);Array.isArray(t)&&t.length&&(0,u8.jI)(e.model)},afterParamsSave(e){var t,l;null==(l=e.model)||null==(t=l.applyFormDefaultValues)||t.call(l,{force:!0}).then(()=>{var t,l,o;return null==(o=e.model)||null==(l=o.context)||null==(t=l.refreshTargets)?void 0:t.call(l)})}}}}),cg.registerEvents({formValuesChange:{title:(0,u.tExpr)("Form values change"),name:"formValuesChange",uiSchema:{condition:{type:"object",title:(0,u.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":aZ.H}},handler:aZ.b}});let cv=(0,d.observable)({collapsed:!1}),cy=(0,u.observer)(()=>{let e=(0,u.useFlowModel)(),t={...e.defaultProps,...e.props},l=()=>{e.dispatchEvent("collapseToggle")};return(0,s.jsx)(g.Button,{...t,onClick:l,icon:(0,s.jsx)(e1.DownOutlined,{rotate:180*!cv.collapsed}),iconPosition:"end",children:cv.collapsed?e.translate("Expand button"):e.translate("Collapse button")})});class c_ extends u2{onMount(){var e,t;super.onMount();let l=(null==(e=this.getStepParams("collapseSettings","defaultCollapsed"))?void 0:e.value)||!1,o=(null==(t=this.getStepParams("collapseSettings","toggle"))?void 0:t.collapsedRows)||1;cv.collapsed=l,this.context.filterFormGridModel.toggleFormFieldsCollapse(cv.collapsed,o)}render(){return(0,s.jsx)(cy,{})}constructor(...e){super(...e),this.defaultProps={type:"link"},this.enableEditTitle=!1,this.enableEditIcon=!1}}c_.registerFlow({key:"collapseSettings",title:(0,u.tExpr)("Collapse settings"),on:"collapseToggle",steps:{toggle:{title:(0,u.tExpr)("Collapsed rows"),uiSchema:{collapsedRows:{type:"number","x-decorator":"FormItem","x-component":g.InputNumber,"x-component-props":{min:1,max:10,placeholder:(0,u.tExpr)("Enter number of rows to display")},default:1}},async handler(e,t){let l=t.collapsedRows||1;cv.collapsed=!cv.collapsed,e.model.context.filterFormGridModel.toggleFormFieldsCollapse(cv.collapsed,l)}},defaultCollapsed:{title:(0,u.tExpr)("Default collapsed"),uiSchema:{value:{type:"boolean","x-decorator":"FormItem","x-component":"Switch"}},beforeParamsSave(e,t){var l;cv.collapsed=t.value||!1;let o=(null==(l=e.model.getStepParams("collapseSettings","toggle"))?void 0:l.collapsedRows)||1;e.model.context.filterFormGridModel.toggleFormFieldsCollapse(cv.collapsed,o)},handler(e,t){}}}}),c_.define({label:(0,u.tExpr)("Collapse button"),toggleable:!0,sort:300}),c_.registerEvents({collapseToggle:{title:(0,u.tExpr)("Collapse / Expand toggle"),name:"collapseToggle",uiSchema:{condition:{type:"object",title:(0,u.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":aZ.H}},handler:aZ.b}});let cb=(e,t,l)=>{var o,n,i;if(null==e?void 0:e.targetCollection)return e.targetCollection;let r=null==e?void 0:e.target;if(!r)return;if(null==t||null==(o=t.dataSource)?void 0:o.getCollection)return t.dataSource.getCollection(r);let a=null==t?void 0:t.dataSourceKey;if(a&&(null==l||null==(i=l.context)||null==(n=i.dataSourceManager)?void 0:n.getCollection))return l.context.dataSourceManager.getCollection(a,r)},cx=(e,t,l)=>{let o=cb(e,t,l);return(null==o?void 0:o.getFields)?(o.getFields()||[]).filter(e=>null==e?void 0:e.filterable):[]},cM=2;function cw(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}let cS=(e,t)=>{var l,o,n;let i=null==t||null==(l=t.context)?void 0:l.collectionField;if(!(null==i||null==(o=i.isAssociationField)?void 0:o.call(i)))return e;let r=dV((null==t||null==(n=t.props)?void 0:n.fieldNames)||(null==i?void 0:i.fieldNames),null==i?void 0:i.targetCollection).value,a=e=>{let t=e&&"object"==typeof e&&void 0!==(null==e?void 0:e.data)?e.data:e;return t&&"object"==typeof t?void 0!==(null==t?void 0:t[r])?t[r]:void 0!==(null==t?void 0:t.id)?t.id:void 0!==(null==t?void 0:t.value)?t.value:t:t};return Array.isArray(e)?e.map(a):a(e)},ck=e=>{let t=e=>{let t=e&&"object"==typeof e&&void 0!==(null==e?void 0:e.data)?e.data:e;return!!t&&"object"==typeof t};return Array.isArray(e)?e.some(t):t(e)},cF=e=>["belongsTo","hasOne"].includes(null==e?void 0:e.type)||["m2o","o2o","oho","obo","updatedBy","createdBy"].includes(null==e?void 0:e.interface),cC=(e,t)=>{var l,o;return(null==e||null==(l=e.props)?void 0:l.allowMultiple)===!0||(null==e||null==(o=e.props)?void 0:o.multiple)===!0||!cF(t)},cA=(e,t)=>{var l,o,n;if(!t)return;let i=(null==t?void 0:t.title)||(null==t?void 0:t.name),r=null==t?void 0:t.interface,a=r?null==e||null==(n=e.dataSourceManager)||null==(o=n.collectionFieldInterfaceManager)||null==(l=o.getFieldInterface)?void 0:l.call(o,r):void 0;return{...t,title:i,uiSchema:{...(null==t?void 0:t.uiSchema)||{},title:i},filterable:(null==t?void 0:t.filterable)||(null==a?void 0:a.filterable),isAssociationField:"function"==typeof(null==t?void 0:t.isAssociationField)?t.isAssociationField:()=>!!(null==t?void 0:t.target),getComponentProps:"function"==typeof(null==t?void 0:t.getComponentProps)?t.getComponentProps:()=>({})}},cP=e=>{var t,l;let{model:o,collection:n,ctxWithFlags:i,field:r,fieldPath:a,labelPrefix:s}=e,d=u.FilterableItemModel.getDefaultBindingByField(i,r);if(!d)return;let p=("function"==typeof(null==r?void 0:r.isAssociationField)?r.isAssociationField():!!(null==r?void 0:r.target))&&(null==(l=i.engine)||null==(t=l.getModelClass)?void 0:t.call(l,"FilterFormRecordSelectFieldModel"))?"FilterFormRecordSelectFieldModel":d.modelName,m=r.title||r.name;return{key:a,label:s?`${s} / ${m}`:m,useModel:"FilterFormItemModel",refreshTargets:["FilterFormCustomItemModel"],createModelOptions:()=>({use:"FilterFormItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:null==n?void 0:n.dataSourceKey,collectionName:null==n?void 0:n.name,fieldPath:a}},filterFormItemSettings:{init:{filterField:c.default.pick(r,["name","title","interface","type"]),defaultTargetUid:o.uid}}},subModels:{field:{use:p,props:"function"==typeof d.defaultProps?d.defaultProps(o.context,r):d.defaultProps}}})}},cT=e=>{var t;let{model:l,collection:o,ctxWithFlags:n,field:i,fieldPath:r,depth:a}=e;if(!cb(i,o,l)||a>cM)return;let d=i.title||i.name,u=(null==(t=l.context)?void 0:t.t)||(null==n?void 0:n.t)||(e=>e);return{key:`${r}-associationField`,label:d,children:async()=>{let e=cx(i,o,l),t=[],d=[];e.forEach(e=>{let i=`${r}.${e.name}`;if(null==e?void 0:e.targetCollection){let t=cT({model:l,collection:o,ctxWithFlags:n,field:e,fieldPath:i,depth:a+1});t&&d.push(t);return}let s=cP({model:l,collection:o,ctxWithFlags:n,field:e,fieldPath:i});s&&t.push(s)});let c=[];return(t.length&&c.push({key:`${r}-fields`,label:u("Fields"),type:"group",searchable:!0,searchPlaceholder:u("Search fields"),children:t}),d.length&&c.push({key:`${r}-relation-fields`,label:u("Association fields"),type:"group",searchable:!0,searchPlaceholder:u("Search association fields"),children:d}),c.length)?c:[{key:`${r}-empty`,label:(0,s.jsx)(g.Empty,{style:{width:140},description:u("No data"),image:g.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]}}},cj=async e=>{var t,l;let o=e.collection||e.context.collection,n=await (null==e||null==(t=e.getFilterFields)?void 0:t.call(e))||[],i=new u.FlowModelContext(e);i.addDelegate(e.context),i.defineProperty("flags",{value:{...null==(l=e.context)?void 0:l.flags,isInFilterFormBlock:!0}});let r=[],a=[];return n.forEach(t=>{let l=t.name,n=cP({model:e,collection:o,ctxWithFlags:i,field:t,fieldPath:l});if(n&&r.push(n),null==t?void 0:t.targetCollection){let n=cT({model:e,collection:o,ctxWithFlags:i,field:t,fieldPath:l,depth:1});n&&a.push(n)}}),{baseItems:r.filter(Boolean),relationItems:a.filter(Boolean)}};class cI extends u.FilterableItemModel{static defineChildren(e){let t=e.blockGridModel;if(!t)return[];let l=aS(t);return 0===l.length?[{key:"no-data-blocks",label:(0,s.jsx)(g.Empty,{style:{width:140},description:e.t("Please add a data block on the page first"),image:g.Empty.PRESENTED_IMAGE_SIMPLE}),disabled:!0}]:l.map(t=>({key:t.uid,label:(0,s.jsx)("span",{style:{margin:"-5px -24px -5px -12px",padding:"5px 24px 5px 12px"},onMouseEnter:()=>{var e;let l=null==(e=t.context.ref)?void 0:e.current;l instanceof HTMLElement&&(l.style.outline=`2px solid ${t.context.themeToken.colorPrimaryBorder}`)},onMouseLeave:()=>{var e;let l=null==(e=t.context.ref)?void 0:e.current;l instanceof HTMLElement&&(l.style.outline="none")},children:`${t.title} #${t.uid.substring(0,4)}`}),children:async()=>{let{baseItems:l,relationItems:o}=await cj(t),n=[{key:"fields",label:e.t("Fields"),type:"group",searchable:!0,searchPlaceholder:e.t("Search fields"),children:l}];return o.length&&n.push({key:"relation-fields",label:e.t("Association fields"),type:"group",searchable:!0,searchPlaceholder:e.t("Search association fields"),children:o}),[...n]}}))}get defaultTargetUid(){return this.getStepParams("filterFormItemSettings","init").defaultTargetUid}getCurrentOperatorMeta(){return ax(this,aM(this))}onInit(e){var t;super.onInit(e),this.debouncedDoFilter=(0,c.debounce)(this.doFilter.bind(this),300);let l=null==(t=this.getStepParams("filterFormItemSettings","init"))?void 0:t.filterField;l&&this.context.defineProperty("filterField",{value:{...l,title:(null==l?void 0:l.title)||(null==l?void 0:l.name)}})}onMount(){super.onMount(),this.mounted=!0}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=this.subModels.field,i=null==(e=this.context.form)?void 0:e.getFieldValue(this.props.name),r=n.getFilterValue?n.getFilterValue():i,a=null==n||null==(t=n.context)?void 0:t.collectionField,s=("function"==typeof(null==a?void 0:a.isAssociationField)?a.isAssociationField():!!(null==a?void 0:a.target))&&!this.mounted&&!aw(i)&&ck(i)&&!ck(r),d=aw(r)&&!aw(i),u=s||d?i:r,p=u;this.mounted||(p=cS(c.default.isEmpty(u)?this.getDefaultValue():u,null==(l=this.subModels)?void 0:l.field));let m=aM(this);p=this.normalizeAssociationFilterValue(p,n);let h=this.getCurrentOperatorMeta();if(null==h?void 0:h.noValue){let e=null==h||null==(o=h.schema)?void 0:o["x-component-props"];return!Array.isArray(cw(e)?e.options:void 0)||p}return(0,uz.S)(m,p)}normalizeAssociationFilterValue(e,t){var l,o;if(null==e)return e;let n=null==t||null==(l=t.context)?void 0:l.collectionField;if(!("function"==typeof(null==n?void 0:n.isAssociationField)?n.isAssociationField():!!(null==n?void 0:n.target)))return e;let i=dV((null==t||null==(o=t.props)?void 0:o.fieldNames)||(null==n?void 0:n.fieldNames),null==n?void 0:n.targetCollection).value;if(Array.isArray(e)){if(0===e.length)return e;let l=e.map(e=>e&&"object"==typeof e?e[i]:e);return cC(t,n)?l:l[0]}return"object"==typeof e?null==e?void 0:e[i]:e}getDefaultValue(){var e;return null==(e=this.getStepParams("filterFormItemSettings","initialValue"))?void 0:e.defaultValue}getValueProps(e){return this.context.blockModel.autoTriggerFilter&&(this.autoTriggerInitialized?(0,c.isEqual)(this.lastAutoTriggerValue,e)||(this.lastAutoTriggerValue=(0,c.cloneDeep)(e),this.debouncedDoFilter()):(this.autoTriggerInitialized=!0,this.lastAutoTriggerValue=(0,c.cloneDeep)(e))),{value:e,onKeyDown:this.handleEnterPress.bind(this),isRange:"$dateBetween"===this.operator}}renderItem(){let e=this.subModels.field;return(0,s.jsx)(u.FormItem,{...this.props,getValueProps:this.getValueProps.bind(this),children:(0,s.jsx)(u.FieldModelRenderer,{model:e})})}constructor(...e){super(...e),this.mounted=!1,this.autoTriggerInitialized=!1,this.handleEnterPress=e=>{("Enter"===e.key||13===e.keyCode)&&(e.preventDefault(),this.doFilter())}}}cI.define({label:(0,u.tExpr)("Block list")}),cI.registerFlow({key:"filterFormItemSettings",sort:300,title:(0,u.tExpr)("Form item settings"),steps:{label:{title:(0,u.tExpr)("Label"),uiSchema:e=>({label:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l,o,n;let i=e.model,r=(null==(l=i.collectionField)?void 0:l.title)||(null==(o=e.filterField)?void 0:o.title)||(null==(n=e.filterField)?void 0:n.name)||i.fieldPath;t.decoratorProps={...t.decoratorProps,extra:i.context.t("Original field title: ")+r}}}}),defaultParams:e=>{var t,l,o;return{label:(null==(t=e.collectionField)?void 0:t.title)||(null==(l=e.filterField)?void 0:l.title)||(null==(o=e.filterField)?void 0:o.name)}},handler(e,t){var l,o,n;let i=(null==(l=e.collectionField)?void 0:l.title)||(null==(o=e.filterField)?void 0:o.title)||(null==(n=e.filterField)?void 0:n.name);t.label&&t.label===i?e.model.setProps({label:t.label}):e.model.setProps({label:e.t(t.label,{ns:"lm-flow-engine"})})}},init:{async handler(e,t){var l,o,n,i;let r=e.model,a=t.filterField?{...t.filterField,title:(null==(l=t.filterField)?void 0:l.title)||(null==(o=t.filterField)?void 0:o.name)}:t.filterField;e.model.context.defineProperty("filterField",{value:a}),e.model.setProps({name:`${r.fieldPath}_${e.model.uid}`});let s=r.collectionField,d=(null==(n=r.getFieldSettingsInitParams)?void 0:n.call(r))||{};if(!((null==d?void 0:d.dataSourceKey)&&(null==d?void 0:d.collectionName))&&!s&&a){let t=cA(e,a);t&&(e.model.context.defineProperty("collectionField",{value:t}),s=t)}if(null==s?void 0:s.getComponentProps){let t=s.getComponentProps(),l=(null==(i=e.model.subModels)?void 0:i.field)instanceof ue,{rules:o,required:n,multiple:r,allowMultiple:a,maxCount:d,...u}=t||{};e.model.setProps({...l?u:{...u,multiple:r,allowMultiple:a,maxCount:d},rules:void 0,required:void 0})}}},showLabel:{title:(0,u.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},tooltip:{title:(0,u.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,u.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"})})}},initialValue:{title:(0,u.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;return{defaultValue:{"x-component":"DefaultValue","x-decorator":"FormItem","x-component-props":{flags:{...(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.flags)||{},isInSetDefaultValueDialog:!0}}}}},handler(e,t){e.model.setProps({initialValue:t.defaultValue})}},model:{use:"fieldComponent",title:(0,u.tExpr)("Field component"),uiMode(e){let t=u.FilterableItemModel.getBindingsByField(e,e.collectionField),l=e.t;return{type:"select",key:"use",props:{options:t.map(e=>({label:l(e.modelName),value:e.modelName}))}}},hideInSettings(e){if(1===u.FilterableItemModel.getBindingsByField(e,e.collectionField).length)return!0}},connectFields:{use:"connectFields"},defaultOperator:{use:"defaultOperator"},operatorComponentProps:{use:"operatorComponentProps"},customizeFilterRender:{use:"customizeFilterRender"}}}),cI.registerFlow({key:"fieldSettings",title:(0,u.tExpr)("Field settings"),steps:{init:{handler(e,t){}}}});class cL extends aB{getAssociationFilterTargetKey(e){var t;let l=null==e||null==(t=e.targetCollection)?void 0:t.filterTargetKey;return Array.isArray(l)?l[0]||"id":l||"id"}normalizeFilterFormLayout(e,t){let l=this.getStepParams(aY,aN)||{},o=(null==t?void 0:t.useVisibleItemUids)!==!1;return(0,u.normalizeGridLayout)({layout:(null==e?void 0:e.layout)??this.props.layout??l.layout,rows:(null==e?void 0:e.rows)??this.props.rows??l.rows,sizes:(null==e?void 0:e.sizes)??this.props.sizes??l.sizes,rowOrder:(null==e?void 0:e.rowOrder)??this.props.rowOrder??l.rowOrder,itemUids:o?this.normalizedItemUidsOverride??this.getItemUids():this.getItemUids(),gridUid:this.uid,logger:console})}normalizeStoredFullLayout(){let e=this.getStepParams(aY,aN)||{};return(0,u.normalizeGridLayout)({layout:this.fullLayoutBeforeCollapse??e.layout??this.props.layout,rows:e.rows??this.props.rows,sizes:e.sizes??this.props.sizes,rowOrder:e.rowOrder??this.props.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}normalizeLayoutFromSource(e){return!e&&this.readingFullLayoutForSettingsInteraction?this.normalizeStoredFullLayout():this.normalizeFilterFormLayout(e,{useVisibleItemUids:!e&&!this.readingFullLayoutForSettingsInteraction})}getGridLayout(){return this.context.flowSettingsEnabled&&this.normalizedItemUidsOverride?this.normalizeStoredFullLayout():super.getGridLayout()}saveGridLayout(e){if(super.saveGridLayout(e),this.context.flowSettingsEnabled&&this.normalizedItemUidsOverride){let e=this.getStepParams(aY,aN)||{};this.fullLayoutBeforeCollapse=(0,u.normalizeGridLayout)({layout:e.layout??this.props.layout,rows:e.rows??this.props.rows,sizes:e.sizes??this.props.sizes,rowOrder:e.rowOrder??this.props.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}}handleDragStart(e){this.readingFullLayoutForSettingsInteraction=!!(this.context.flowSettingsEnabled&&this.normalizedItemUidsOverride);try{super.handleDragStart(e)}finally{this.readingFullLayoutForSettingsInteraction=!1}}collectLayoutItemUids(e){let t=new Set,l=e=>{e.forEach(e=>{e.cells.forEach(e=>{var o,n;null==(o=e.items)||o.forEach(e=>{e&&this.flowEngine.getModel(e)&&t.add(e)}),(null==(n=e.rows)?void 0:n.length)&&l(e.rows)})})};return l(e),Array.from(t)}getCellVisibleRowCount(e){var t,l;return(null==(t=e.rows)?void 0:t.length)?e.rows.reduce((e,t)=>e+this.getRowVisibleRowCount(t),0):(null==(l=e.items)?void 0:l.length)||0}getRowVisibleRowCount(e){return e.cells.reduce((e,t)=>Math.max(e,this.getCellVisibleRowCount(t)),0)}limitCellByVisibleCount(e,t){var l;if(t<=0)return null;if(null==(l=e.rows)?void 0:l.length){let l=this.limitLayoutRowsByVisibleCount(e.rows,t);return l.length?{id:e.id,rows:l}:null}if(e.items){let l=e.items.slice(0,t);return l.length?{id:e.id,items:l}:null}return null}limitRowByVisibleCount(e,t){let l=e.cells.map((l,o)=>{var n;let i=this.limitCellByVisibleCount(l,t);return i?{cell:i,size:null==(n=e.sizes)?void 0:n[o]}:null}).filter(Boolean);return l.length?{id:e.id,cells:l.map(e=>e.cell),sizes:l.map(e=>e.size??1)}:null}limitLayoutRowsByVisibleCount(e,t){let l=[],o=t;return e.forEach(e=>{if(o<=0)return;let t=this.getRowVisibleRowCount(e),n=this.limitRowByVisibleCount(e,Math.min(t,o));n&&(l.push(n),o-=Math.min(t,o))}),l}getFullLayout(){let e=this.getStepParams(aY,aN)||{},t=this.props.layout?this.normalizeFilterFormLayout(void 0,{useVisibleItemUids:!1}):void 0,l=e.layout?this.normalizeFilterFormLayout(e,{useVisibleItemUids:!1}):void 0,o=t?(0,u.projectLayoutToLegacyRows)(t):{rows:this.props.rows||{},rowOrder:this.props.rowOrder},n=l?(0,u.projectLayoutToLegacyRows)(l):{rows:e.rows||{},rowOrder:e.rowOrder},i=o.rows,r=n.rows||{},a=Object.keys(i).length,s=Object.keys(r).length,d=e=>Object.values(e).reduce((e,t)=>e+t.reduce((e,t)=>e+t.length,0),0),c=d(i),p=d(r),m=a>s||a===s&&c>=p,h=this.mergeRowsWithItems(m?i:r),f=m?o.rowOrder||this.props.rowOrder||e.rowOrder:n.rowOrder||e.rowOrder||this.props.rowOrder;return{...this.normalizeRowsWithOrder(h,f),layout:m?t:l}}toggleFormFieldsCollapse(e,t){let{rows:l,rowOrder:o,layout:n}=this.getFullLayout();if(!e){this.normalizedItemUidsOverride=void 0;let e=this.fullLayoutBeforeCollapse||n;e?this.syncLayoutProps(e):(this.setProps("rows",l),this.setProps("rowOrder",o)),this.fullLayoutBeforeCollapse=void 0;return}this.fullLayoutBeforeCollapse||(this.fullLayoutBeforeCollapse=n||(0,u.normalizeGridLayout)({rows:l,rowOrder:o,itemUids:this.getItemUids()}));let i=n||(0,u.normalizeGridLayout)({rows:l,rowOrder:o,itemUids:this.getItemUids()}),r=(0,u.normalizeGridLayout)({layout:{version:2,rows:this.limitLayoutRowsByVisibleCount(i.rows,t)}});this.normalizedItemUidsOverride=this.collectLayoutItemUids(r.rows),this.syncLayoutProps(r),this.setProps("rowOrder",o)}async onModelCreated(e){if(!(e instanceof cI))return;let{fieldPath:t}=e.getFieldSettingsInitParams(),l=aS(e.context.blockGridModel).filter(t=>{var l;return!!(null==(l=t.resource)?void 0:l.supportsFilter)&&t.uid===e.defaultTargetUid});if(l.length>0){let o=l.map(e=>{let l=e.collection||e.context.collection;if(l){var o,n,i;let r;if(null==t?void 0:t.includes(".")){let i=`${l.dataSourceKey}.${l.name}.${t}`;r=null==(n=e.context.dataSourceManager)||null==(o=n.getCollectionField)?void 0:o.call(n,i)}if(r||(r=null==(i=l.getField)?void 0:i.call(l,t)),null==r?void 0:r.target)return{targetId:e.uid,filterPaths:[`${t}.${this.getAssociationFilterTargetKey(r)}`]}}return{targetId:e.uid,filterPaths:[t]}});await this.context.filterManager.saveConnectFieldsConfig(e.uid,{targets:o})}}renderAddSubModelButton(){var e,t,l;return this.loading.value?null:(0,s.jsx)(u.AddSubModelButton,{subModelKey:"items",model:this,afterSubModelInit:this.onModelCreated.bind(this),keepDropdownOpen:!0,subModelBaseClasses:["FilterFormItemModel","FilterFormCustomItemModel"],children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.SettingOutlined,{}),children:this.translate("Fields")})},null==(l=this.context.blockGridModel)||null==(t=l.subModels)||null==(e=t.items)?void 0:e.length)}constructor(...e){super(...e),this.readingFullLayoutForSettingsInteraction=!1,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}}},this.loading=u.observable.ref(!1)}}cL.registerFlow({key:"filterFormGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",0),e.model.setProps("colGap",16)}}}});class cD extends u2{}cD.define({label:(0,u.tExpr)("JS action"),sort:9999}),cD.registerFlow({key:"clickSettings",on:"click",title:(0,u.tExpr)("Click settings"),steps:{runJs:{title:(0,u.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-component":sk.BY,"x-component-props":{minHeight:"400px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:""}),async handler(e,t){let{code:l,version:o}=sF(e,t),n=(0,u.createSafeNavigator)();await e.runjs(l,{window:(0,u.createSafeWindow)({navigator:n}),document:(0,u.createSafeDocument)(),navigator:n},{version:o})}}}});class cR extends u2{constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Reset")}}}cR.registerFlow({key:"resetSettings",on:{eventName:"click"},steps:{doReset:{async handler(e,t){let l=e.model.context.blockModel,o=l.subModels.grid.subModels.items;e.form.resetFields(),setTimeout(()=>{var e;null==(e=l.applyFormDefaultValues)||e.call(l,{force:!0}).finally(()=>{o.forEach(e=>{e.doReset()})})})}}}}),cR.define({label:(0,u.tExpr)("Reset"),toggleable:!0,sort:200});class cE extends u2{onInit(e){super.onInit(e),this.context.blockModel.autoTriggerFilter=!1}onUnmount(){super.onUnmount(),this.context.blockModel.autoTriggerFilter=!0}constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Filter"),type:"primary"}}}cE.registerFlow({key:"submitSettings",on:{eventName:"click"},steps:{doFilter:{async handler(e,t){e.form.submit()}}}}),cE.define({label:(0,u.tExpr)("Filter"),toggleable:!0,sort:100});let cY=(0,u.defineAction)({name:"connectFields",title:(0,u.tExpr)("Connect fields"),uiSchema:e=>({value:{type:"object","x-component":cV}}),beforeParamsSave(e,t){c.default.isEmpty(t.value)||e.model.context.filterManager.saveConnectFieldsConfig(e.model.uid,t.value),e.exit()},handler(e,t){}}),cN=2,cO=e=>!!((null==e?void 0:e.target)||(null==e?void 0:e.targetCollection)),cB=function(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=o.filter(Boolean);return t.map(t=>{let a=l?`${l}.${t.name}`:t.name,s=t.title||t.name,d=n?`${n} / ${s}`:s,u=cO(t),c=i+ +!!u;if(u&&c>cN)return null;let p=!u,m={label:s,value:t.name,isLeaf:p,disableCheckbox:!p,meta:{field:t,fullPath:a,fullLabel:d,associationDepth:c}};if(!p&&r.some(e=>e&&e.startsWith(a+"."))){var h,f,g;if(null==(f=t.filterable)||null==(h=f.children)?void 0:h.length)m.children=cB(e,t.filterable.children,a,o,d,c);else{let l=t.targetCollection;l&&(m.children=cB(e,(null==(g=l.getFields)?void 0:g.call(l))||[],a,o,d,c))}}return m}).filter(Boolean).sort((e,t)=>e.isLeaf&&!t.isLeaf?-1:!e.isLeaf&&t.isLeaf?1:0)};function cV(e){let t=(0,u.useFlowSettingsContext)(),l=(0,p.useMemo)(()=>aS(t.blockGridModel),[t.blockGridModel]),[o,n]=(0,p.useState)(()=>t.model.context.filterManager.getConnectFieldsConfig(t.model.uid)),[i,r]=(0,p.useState)({}),[a,d]=(0,p.useState)({});p.default.useEffect(()=>{(async()=>{let e={},t=((null==o?void 0:o.targets)||[]).map(e=>e.targetId);for(let o of l.filter(e=>t.includes(e.uid))){var n;let t=await (null==(n=o.getFilterFields)?void 0:n.call(o))||[];e[o.uid]=t}r(e)})()},[null==o?void 0:o.targets,l]);let c=(e,t)=>{d(l=>({...l,[e]:t}))},m=e=>a[e]||"field-select",h=(t,l)=>{var i;let r={};((null==o?void 0:o.targets)||[]).forEach(e=>{r[e.targetId]=e}),r[t]={targetId:t,filterPaths:l};let a=Object.values(r);null==(i=e.onChange)||i.call(e,{targets:a}),n({targets:a})},f=(t,l)=>{var i;let r={};((null==o?void 0:o.targets)||[]).forEach(e=>{r[e.targetId]=e}),l?r[t]={targetId:t,filterPaths:[]}:delete r[t];let a=Object.values(r);null==(i=e.onChange)||i.call(e,{targets:a}),n({targets:a})},v=t=>{var l;let i={};((null==o?void 0:o.targets)||[]).forEach(e=>{e.targetId!==t&&(i[e.targetId]=e)});let r=Object.values(i);null==(l=e.onChange)||l.call(e,{targets:r}),n({targets:r})},y=((null==o?void 0:o.targets)||[]).map(e=>e.targetId),_=l.filter(e=>{var t;return null==(t=e.resource)?void 0:t.supportsFilter}).map(e=>{let t=y.includes(e.uid);return{key:e.uid,label:(0,s.jsxs)("button",{type:"button",style:{display:"flex",justifyContent:"space-between",alignItems:"center",minWidth:"200px",border:"none",background:"none",padding:"0",width:"100%",cursor:"pointer"},onClick:l=>{l.stopPropagation(),f(e.uid,!t)},children:[(0,s.jsxs)("span",{style:{marginRight:"16px"},children:[e.title," #",e.uid.substring(0,4)]}),(0,s.jsx)(g.Switch,{size:"small",checked:t})]})}});return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{marginBottom:"16px",padding:"12px",backgroundColor:"#f0f9ff",border:"1px solid #bae6fd",borderRadius:"6px",fontSize:"14px",color:"#0369a1"},children:[(0,s.jsx)("div",{style:{fontWeight:500,marginBottom:"8px"},children:t.t("Configuration:")}),(0,s.jsxs)("ul",{style:{margin:0,paddingLeft:"16px"},children:[(0,s.jsx)("li",{children:t.t('Available "target blocks" are all data blocks on the current page')}),(0,s.jsx)("li",{children:t.t("Support filtering multiple blocks simultaneously, support selection of relationship fields up to two levels (e.g.: User/Department/Name)")})]})]}),l.filter(e=>y.includes(e.uid)&&i[e.uid]).sort((e,t)=>((null==o?void 0:o.targets)||[]).findIndex(t=>t.targetId===e.uid)-((null==o?void 0:o.targets)||[]).findIndex(e=>e.targetId===t.uid)).map(e=>{var l,n;let r=i[e.uid]||[],a=(null==o||null==(n=o.targets)||null==(l=n.find(t=>t.targetId===e.uid))?void 0:l.filterPaths)||[],d=cB(t,r,"",a,""),u=a.map(e=>e.split(".")),p=m(e.uid);return(0,s.jsx)(nb.FormItem,{label:`${e.title} #${e.uid.substring(0,4)}`,children:(0,s.jsxs)("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[(0,s.jsx)("div",{style:{flex:1},children:"field-select"===p?(0,s.jsx)(cH,{options:d,value:u,onChange:t=>{let l=(t||[]).map(e=>e.join("."));h(e.uid,l)},multiple:!0,allowClear:!0,placeholder:t.t("Please select fields to filter"),style:{width:"100%"},showSearch:{filter:(e,t)=>t.some(t=>(t.label||"").toString().toLowerCase().includes(e.toLowerCase()))}}):(0,s.jsx)(g.Select,{mode:"tags",value:a,onChange:t=>h(e.uid,t),placeholder:t.t("Separate multiple values with comma or Enter"),style:{width:"100%"},allowClear:!0,tokenSeparators:[","],open:!1,suffixIcon:null})}),(0,s.jsx)(g.Segmented,{value:p,onChange:t=>c(e.uid,t),options:[{label:t.t("Dropdown select"),value:"field-select"},{label:t.t("Text input"),value:"text-input"}]}),(0,s.jsx)(g.Button,{type:"text",icon:(0,s.jsx)(e1.DeleteOutlined,{}),onClick:()=>v(e.uid),style:{color:"#8c8c8c"},title:t.t("Delete this target block")})]})},e.uid)}),(0,s.jsx)("div",{style:{marginTop:"16px"},children:(0,s.jsx)(g.Dropdown,{menu:{items:_},trigger:["hover"],autoFocus:!1,children:(0,s.jsx)(g.Button,{type:"dashed",icon:(0,s.jsx)(e1.PlusOutlined,{}),style:{width:"100%"},children:t.t("Add target block")})})})]})}function cH(e){let t=(0,u.useFlowSettingsContext)(),[l,o]=p.default.useState(e.options||[]),n=p.default.useMemo(()=>(e.options||[]).map(e=>{var t;return(null==e||null==(t=e.meta)?void 0:t.fullPath)||(null==e?void 0:e.value)}).filter(Boolean).join("|"),[e.options]),i=(0,S.cx)(e.popupClassName,(0,S.css)`
853
853
  .ant-cascader-checkbox {
854
854
  display: none;
855
855
  }
@@ -1273,7 +1273,7 @@ ctx.render(<JsItem />);
1273
1273
  font-size: 90%;
1274
1274
  background: none !important;
1275
1275
  border: none !important;
1276
- `,g0=e=>{let{content:t,style:l,className:o}=e,n=(0,p.useRef)(null),[i,r]=(0,p.useState)(!1);(0,p.useEffect)(()=>{let e=n.current;e&&r(e.scrollWidth>e.clientWidth)},[t]);let a=(0,s.jsx)("div",{ref:n,style:{...l,whiteSpace:"nowrap",fontFamily:"Consolas, Monaco, monospace",overflow:"hidden",textOverflow:"ellipsis"},children:t});return i?(0,s.jsx)(g.Tooltip,{title:(0,s.jsx)("pre",{style:{margin:0,maxHeight:400},className:o,children:t}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)",maxWidth:500},color:"#fff",overlayStyle:{maxWidth:500,whiteSpace:"pre-wrap"},children:a}):a};class g1 extends gj{renderComponent(e){let{space:t,style:l,className:o,overflowMode:n}=this.props,i="";if(null!=e)try{i=JSON.stringify(e,null,t??2)}catch(e){i=this.flowEngine.translate("Invalid JSON format")}return"ellipsis"===n?(0,s.jsx)(g0,{content:i,style:l,className:(0,S.cx)(o,gZ)}):(0,s.jsx)("pre",{className:(0,S.cx)(o,gZ),style:l,children:i})}render(){return this.renderComponent(this.props.value)}}function g2(e){let t=(0,c.toString)(e);return t.includes(".")?t.split(".")[1].replace(/0+$/,"").length:0}u.DisplayItemModel.bindModelToInterface("DisplayJSONFieldModel",["json"],{isDefault:!0});let g5={"0,0.00":{thousands:",",decimal:"."},"0.0,00":{thousands:".",decimal:","},"0 0,00":{thousands:" ",decimal:"."},"0.00":{thousands:"",decimal:"."}};function g8(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0.00",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3?arguments[3]:void 0;if(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)return g4(e,t,l,o);let n=e;o&&(n=Number(e));let i="";if(g5[t]){let{thousands:e,decimal:o}=g5[t];i=n.toLocaleString("en-US",{style:"decimal",minimumFractionDigits:l,maximumFractionDigits:l}).replace(/,/g,"comma_placeholder").replace(/\./g,"dot_placeholder").replace(/comma_placeholder/g,e).replace(/dot_placeholder/g,o)}else i=n.toString();return i}function g4(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0.00",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3?arguments[3]:void 0,n=e;o&&(n=new __rspack_external_bignumber_js_b933f7e9.default(e).toString());let i="";if(g5[t]){let{thousands:e,decimal:o}=g5[t],[r,a]=n.toString().split("."),s=a,d=r.replace(/\B(?=(\d{3})+(?!\d))/g,e);s&&l?(s=s.substring(0,l),i=`${d}${o}${s}`):i=d}else i=n.toString();return i}function g3(e){let t,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"*",o=arguments.length>2?arguments[2]:void 0;if(!o)return e;if("*"===l)t=e*o;else{if("/"!==l)return console.error("Error: Invalid operator. Use '*' for multiplication or '/' for division."),null;if(0===o)return console.error("Error: Division by zero."),null;t=e/o}return __rspack_external_mathjs.round(t,9)}function g6(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";return(0,__rspack_external_d3_format_e0459777.format)(`.${t}e`)(e).replace(".",l).replace(/e([+-]?\d+)/,(e,t)=>t.startsWith("+")?`\xd710<sup>${t.slice(1)}</sup>`:`\xd710<sup>-${t.slice(1)}</sup>`)}function g9(e){let t,{step:l,formatStyle:o="normal",value:n,unitConversion:i,unitConversionType:r,separator:a="0,0.00"}=e;if(!(0,nx.isValid)(n))return null;let s=g3(n,r,i);if(t=g8((0,A.toFixedByStep)(s,l),a,g2(l),o),"scientifix"===o){var d;t=g6(Number(s),g2(l),null==g5||null==(d=g5[a])?void 0:d.decimal)}return"NaN"===t&&(t=n),t}let g7=e=>{let{numberStep:t,formatStyle:l,value:o,unitConversion:n,unitConversionType:i,separator:r}=e;return g9({step:t,formatStyle:l,value:o,unitConversion:n,unitConversionType:i,separator:r})};class ve extends hj{renderComponent(e){let{addonBefore:t,addonAfter:l,style:o,className:n}=this.props,i=g7({...this.props,value:e});return i?(0,s.jsxs)("span",{className:n,style:o,children:[t,(0,s.jsx)("span",{dangerouslySetInnerHTML:{__html:i}}),l]}):null}}ve.define({label:(0,u.tExpr)("Number")});let vt=()=>{let e=(0,ly.useForm)(),{unitConversionType:t}=e.values,{t:l}=(0,m.useTranslation)();return(0,s.jsxs)(g.Select,{defaultValue:t||"*",style:{width:160},onChange:t=>{e.setValuesIn("unitConversionType",t)},children:[(0,s.jsx)(g.Select.Option,{value:"*",children:l("Multiply by")}),(0,s.jsx)(g.Select.Option,{value:"/",children:l("Divide by")})]})};ve.registerFlow({key:"numberSettings",sort:500,title:(0,u.tExpr)("Number settings"),steps:{format:{title:(0,u.tExpr)("Number format"),use:"numberFormat"}}}),u.DisplayItemModel.bindModelToInterface("DisplayNumberFieldModel",["number","integer","id","snowflakeId"],{isDefault:!0});class vl extends i9.o{render(){let{value:e,style:t,className:l}=this.props;return e?(0,s.jsx)("div",{className:l,style:t,children:"********"}):(0,s.jsx)("div",{className:l,style:t})}}u.DisplayItemModel.bindModelToInterface("DisplayPasswordFieldModel",["password"],{isDefault:!0});class vo extends hj{renderComponent(e){let{addonBefore:t="",addonAfter:l="%",numberStep:o,style:n,className:i}=this.props,r=__rspack_external_mathjs.round(100*e,9);if(null==e)return;let a=g7({...this.props,value:r,numberStep:o});return a?(0,s.jsxs)("div",{className:i,style:n,children:[t,(0,s.jsx)("span",{dangerouslySetInnerHTML:{__html:a}}),l]}):null}}vo.registerFlow({key:"numberSettings",sort:500,title:(0,u.tExpr)("Number settings"),steps:{format:{title:(0,u.tExpr)("Number format"),uiSchema:e=>({formatStyle:{type:"string",enum:[{value:"normal",label:(0,u.tExpr)("Normal")},{value:"scientifix",label:(0,u.tExpr)("Scientifix notation")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Style')}}"},unitConversion:{type:"number","x-decorator":"FormItem","x-component":"NumberPicker",title:"{{t('Unit conversion')}}","x-component-props":{style:{width:"100%"},addonBefore:(0,s.jsx)(vt,{})}},separator:{type:"string",enum:[{value:"0,0.00",label:"100,000.00"},{value:"0.0,00",label:"100.000,00"},{value:"0 0,00",label:"100 000.00"},{value:"0.00",label:"100000.00"}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Separator')}}"},numberStep:{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",enum:[{value:"1",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"},{value:"0.000001",label:"1.000000"},{value:"0.0000001",label:"1.0000000"},{value:"0.00000001",label:"1.00000000"}]},addonBefore:{type:"string",title:'{{t("Prefix")}}',"x-component":"Input","x-decorator":"FormItem"},addonAfter:{type:"string",title:'{{t("Suffix")}}',"x-component":"Input","x-decorator":"FormItem","x-disabled":!0}}),defaultParams:e=>{let{formatStyle:t,unitConversion:l,unitConversionType:o,separator:n,step:i,addonBefore:r,addonAfter:a}=e.collectionField.getComponentProps();return{formatStyle:t||"normal",unitConversion:l,unitConversionType:o,separator:n||"0,0.00",numberStep:i||"1",addonBefore:r,addonAfter:a||"%"}},handler(e,t){let{formatStyle:l,unitConversion:o,unitConversionType:n,separator:i,numberStep:r,addonBefore:a,addonAfter:s}=t;e.model.setProps({formatStyle:l,unitConversion:o,unitConversionType:n,separator:i,numberStep:r,addonBefore:a,addonAfter:s})}}}}),vo.define({label:(0,u.tExpr)("Percent")}),u.DisplayItemModel.bindModelToInterface("DisplayPercentFieldModel",["percent"],{isDefault:!0});class vn extends hj{t(e){return"string"!=typeof e?e:e.startsWith("{{")&&e.endsWith("}}")?this.translate(e):e}renderComponent(e,t){let{prefix:l,suffix:o,overflowMode:n,style:i,className:r}=this.props;return(0,s.jsxs)("span",{className:r,style:{...i||{},whiteSpace:"wrap"===n||t?"pre-line":"nowrap"},children:[l,this.t(e),o]})}}vn.define({label:(0,u.tExpr)("Text")}),u.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["input","email","phone","uuid","textarea","nanoid"],{isDefault:!0});class vi extends gj{renderComponent(e){let{style:t,className:l}=this.props,o=e&&(0,s.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:e,className:l,style:{...t||{},overflowWrap:"anywhere"},children:e});return(0,s.jsx)(s.Fragment,{children:o})}}vi.define({label:(0,u.tExpr)("URL")}),u.DisplayItemModel.bindModelToInterface("DisplayURLFieldModel",["url"],{isDefault:!0,when:e=>!0});class vr extends hj{renderComponent(e){let{prefix:t,suffix:l,style:o,className:n}=this.props,i=this.props.timeFormat||this.props.format||"HH:mm:ss",r=e&&(0,fv.default)(e,"HH:mm:ss").format(i);return(0,s.jsxs)("span",{className:n,style:o,children:[t,r,l]})}}vr.registerFlow({key:"timeSettings",sort:1e3,title:(0,u.tExpr)("Time settings"),steps:{dateFormat:{title:(0,u.tExpr)("Time format"),use:"dateDisplayFormat"}}}),vr.define({label:(0,u.tExpr)("Time")}),u.DisplayItemModel.bindModelToInterface("DisplayTimeFieldModel",["time"],{isDefault:!0});class va extends i9.o{render(){let{value:e,showUnchecked:t,style:l,className:o}=this.props;return e?(0,s.jsx)(e1.CheckOutlined,{className:o,style:{color:"#52c41a",...l||{}}}):t?(0,s.jsx)(e1.CloseOutlined,{className:o,style:{color:"#ff4d4f",...l||{}}}):(0,s.jsx)(g.Checkbox,{className:o,style:l,disabled:!0})}}va.define({label:(0,u.tExpr)("Checkbox")}),u.DisplayItemModel.bindModelToInterface("DisplayCheckboxFieldModel",["checkbox"],{isDefault:!0});let vs={showBackground:!1,showBorder:!1};function vd(e){var t;let{uid:l,showFlowSettings:o,...n}=e,i=(0,u.useFlowModelById)(l),r=o??(null==i||null==(t=i.props)?void 0:t.showFlowSettings)??vs;return(0,s.jsx)(u.FlowModelRenderer,{model:i,fallback:(0,s.jsx)(o4,{style:{margin:(null==i?void 0:i.context.isMobileLayout)?8:null==i?void 0:i.context.themeToken.marginBlock}}),hideRemoveInSettings:!0,showFlowSettings:r,...n})}let vu=(e,t)=>{var l,o;let n="boolean"==typeof(null==t||null==(o=t.view)||null==(l=o.inputArgs)?void 0:l.isMobileLayout),i="boolean"==typeof(null==t?void 0:t.isMobileLayout);(n||i)&&e.context.defineProperty("isMobileLayout",{get:()=>{var e,l;return"boolean"==typeof(null==t?void 0:t.isMobileLayout)?t.isMobileLayout:!!(null==t||null==(l=t.view)||null==(e=l.inputArgs)?void 0:e.isMobileLayout)},cache:!1})},vc=p.default.memo(e=>{let{pageModelClass:t="ChildPageModel",parentId:l,onModelLoaded:o,defaultTabTitle:n,...i}=e,r=(0,u.useFlowEngine)(),a=(0,u.useFlowViewContext)(),{loading:d,data:c,error:p}=(0,o8.useRequest)(async()=>{let e=await r.getModelClassAsync(t);if(!e)throw Error(`[NocoBase] Page model class '${t}' is not registered.`);let i=e===a2||(0,u.isInheritedFrom)(e,a2),s={async:!0,parentId:l,subKey:"page",subType:"object",use:t};if(i){var d;s.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:n||(null==(d=r.translate)?void 0:d.call(r,"Details"))}}}}]},s.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}}}let c=await r.loadOrCreateModel(s,{skipSave:!r.context.flowSettingsEnabled});return(null==c?void 0:c.uid)&&o&&(c.context.addDelegate(a),vu(c,a),c.removeParentDelegate(),o(c.uid,c)),c},{refreshDeps:[l,t,n]});if(p)throw p;return!d&&(null==c?void 0:c.uid)?(0,s.jsx)(vd,{uid:c.uid,...i}):(0,s.jsx)(o4,{style:{margin:(null==a?void 0:a.isMobileLayout)?8:null==a?void 0:a.themeToken.marginBlock}})});vc.displayName="FlowPage";let vp=e=>{let{uid:t,parentId:l,subKey:o,...n}=e,i=(0,u.useFlowEngine)(),{loading:r,data:a}=(0,o8.useRequest)(async()=>await i.loadModel({uid:t,parentId:l,subKey:o}),{refreshDeps:[t,l,o]});return!r&&(null==a?void 0:a.uid)?(0,s.jsx)(vd,{uid:a.uid,...n}):(0,s.jsx)(o4,{style:{margin:16}})},vm=e=>c.default.pickBy({formData:e.formData},e=>void 0!==e);function vh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];let l=new Set,o=[],n=t.length?new Set(t):null,i=e=>{var t;if(!(null==e?void 0:e.uid)||l.has(e.uid))return;l.add(e.uid);let r=null==(t=e.getUserModifiedFields)?void 0:t.call(e);(null==r?void 0:r.size)&&!(null==n?void 0:n.has(e.uid))&&o.push(e.uid),Object.values(e.subModels||{}).forEach(e=>{c.default.castArray(e).forEach(e=>{e&&"object"==typeof e&&i(e)})})};return i(e),o}function vf(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=vh(e,t);return{hasDirtyForms:l.length>0,formModelUids:l}}function vg(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e||!t.length)return;let l=new Set,o=new Set(t),n=e=>{if(!(!(null==e?void 0:e.uid)||l.has(e.uid))){if(l.add(e.uid),o.has(e.uid)){var t;null==(t=e.resetUserModifiedFields)||t.call(e)}Object.values(e.subModels||{}).forEach(e=>{c.default.castArray(e).forEach(e=>{e&&"object"==typeof e&&n(e)})})}};n(e)}function vv(e){return async t=>{let{result:l,force:o,ignoredDirtyFormModelUids:n}=t;if(o)return!0;let i=vf(e,n),r=!1,a=await e.dispatchEvent("close",{result:l,force:!1,dirty:i,controller:{prevent(){r=!0}}}),s=(null==a?void 0:a.__abortedByExitAll)===!0||!!Array.isArray(a)&&a.some(e=>e instanceof u.FlowExitAllException),d=!r&&!s;return d&&i.hasDirtyForms&&vg(e,i.formModelUids),d}}let vy=(0,u.defineAction)({name:"openView",title:(0,u.tExpr)("Edit popup"),uiSchema:{mode:{type:"string",title:(0,u.tExpr)("Open mode"),enum:[{label:(0,u.tExpr)("Drawer"),value:"drawer"},{label:(0,u.tExpr)("Dialog"),value:"dialog"},{label:(0,u.tExpr)("Page"),value:"embed"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,u.tExpr)("Popup size"),enum:[{label:(0,u.tExpr)("Small"),value:"small"},{label:(0,u.tExpr)("Medium"),value:"medium"},{label:(0,u.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "embed"}}'}}}}},hideInSettings:async e=>{var t,l,o,n;if(!e.model.getFlow("displayFieldSettings"))return!1;let i=null==(l=(o=e.model).getStepParams)||null==(t=l.call(o,"displayFieldSettings","clickToOpen"))?void 0:t.clickToOpen;return void 0===i?!(null==(n=e.collectionField)?void 0:n.isAssociationField()):!1===i},defaultParams:async e=>{var t,l,o,n,i,r,a,s,d,u,c;let p,m=e.getPropertyMetaTree()||[],h=Array.isArray(m)&&m.some(e=>"record"===String(null==e?void 0:e.name)),f=(null==(t=e.collection)?void 0:t.filterTargetKey)||"id";if(null==(o=e.blockModel)||null==(l=o.resource)?void 0:l.resourceName){let t=e.collection.dataSource.collectionManager.getAssociation(null==(d=e.blockModel)||null==(s=d.resource)?void 0:s.resourceName);(null==t?void 0:t.interface)!=="m2m"&&(f=(null==t?void 0:t.targetKey)||f)}let g=h?`{{ ctx.record.${f} }}`:void 0;try{let t=null==(c=e.resource)||null==(u=c.getSourceId)?void 0:u.call(c);null!=t&&""!==String(t)&&(p="{{ ctx.resource.sourceId }}")}catch(e){}let v=null==(n=e.collection)?void 0:n.dataSourceKey,y=null==(i=e.collection)?void 0:i.name;return{mode:"drawer",size:"medium",pageModelClass:(null==(r=e.layout)?void 0:r.childPageModelClass)||"ChildPageModel",uid:null==(a=e.model)?void 0:a.uid,...g?{filterByTk:g}:{},...p?{sourceId:p}:{},...v?{dataSourceKey:v}:{},...y?{collectionName:y}:{}}},async beforeParamsSave(e,t){if(null==t?void 0:t.uid){let l=e.engine;if(!(l.getModel(t.uid)||await l.loadModel({uid:t.uid})))throw Error(e.t("Popup UID not exists"))}},async handler(e,t){var l,o,n,i,r,a,d,p,m,h,f,g,v,y,_,b,x,M,w,S,k;let F=e.inputArgs||{},C=F.defineProperties??(null==(o=e.model.context)||null==(l=o.inputArgs)?void 0:l.defineProperties)??void 0,A=F.defineMethods??(null==(i=e.model.context)||null==(n=i.inputArgs)?void 0:n.defineMethods)??void 0,P=(null==(a=e.model)||null==(r=a.getInputArgs)?void 0:r.call(a))||{},T=(null==F?void 0:F.defaultInputKeys)||[],j=e=>{let l=void 0!==(null==F?void 0:F[e]),o=T.includes(e);return l&&!o?F[e]:void 0!==(null==t?void 0:t[e])?t[e]:l?F[e]:null==P?void 0:P[e]},I=(()=>{var t,l;let o=j("filterByTk");return(null==(t=e.collection)?void 0:t.template)==="sql"&&Array.isArray(null==(l=e.collection)?void 0:l.filterTargetKey)&&1===e.collection.filterTargetKey.length&&null!=o&&"object"!=typeof o?{[e.collection.filterTargetKey[0]]:o}:o})(),L=j("sourceId"),D=void 0!==(null==F?void 0:F.dataSourceKey)?F.dataSourceKey:null==t?void 0:t.dataSourceKey,R=void 0!==(null==F?void 0:F.collectionName)?F.collectionName:null==t?void 0:t.collectionName,E=void 0!==(null==F?void 0:F.associationName)?F.associationName:null==t?void 0:t.associationName,Y=void 0!==F.tabUid?F.tabUid:t.tabUid,N=Object.prototype.hasOwnProperty.call(F,u.RUNJS_OPEN_VIEW_ROUTE_STATE),O=F[u.RUNJS_OPEN_VIEW_ROUTE_STATE],B=N?(0,u.createOpenViewRouteState)(O&&"object"==typeof O?O:{mode:F.mode,size:F.size}):void 0,V=F.openViewRouteState,H=V&&"object"==typeof V?(0,u.createOpenViewRouteState)(V):void 0,$=B||H,z=(null==(d=e.inputArgs)?void 0:d.isMobileLayout)?"embed":(null==$?void 0:$.mode)||(null==(p=e.inputArgs)?void 0:p.mode)||t.mode||"drawer",K=B&&(null==(m=e.inputArgs)?void 0:m.isMobileLayout)?(0,u.createOpenViewRouteState)({...B,mode:z}):B,U=void 0!==F.navigation?F.navigation:t.navigation;if((C||A)&&(U=!1),!1!==U&&!1!==e.isNavigationEnabled&&!e.inputArgs.navigation&&(null==(b=e.view)?void 0:b.navigation)){let l={type:z,inputArgs:{...e.inputArgs,dataSourceKey:D,collectionName:R,associationName:E,filterByTk:I,sourceId:L,tabUid:Y,viewUid:(null==(M=e.model.context)||null==(x=M.inputArgs)?void 0:x.viewUid)||e.model.uid,...K?{openViewRouteState:K}:{}},navigation:null==(w=e.view)?void 0:w.navigation,preventClose:!!(null==t?void 0:t.preventClose),engineCtx:e.engine.context};e.model.context.defineProperty("view",{value:l});let o={viewUid:(null==(k=e.model.context)||null==(S=k.inputArgs)?void 0:S.viewUid)||e.model.uid,filterByTk:I,sourceId:L,tabUid:Y,...K?{openViewRouteState:K}:{}},n=vm(F),i=Object.keys(n).length?{state:{[q]:{[o.viewUid]:n}}}:void 0;e.view.navigation.navigateTo(o,i);return}if((null==t?void 0:t.uid)&&t.uid!==e.model.uid)return void await e.openView(t.uid,{...F,...t||{},navigation:U,target:e.inputArgs.target||e.layoutContentElement,dataSourceKey:D??P.dataSourceKey,collectionName:R??P.collectionName,associationName:void 0!==E?E:P.associationName,filterByTk:I,sourceId:L,tabUid:Y,...C?{defineProperties:C}:{},...A?{defineMethods:A}:{}});let G={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},W=e.inputArgs.pageModelClass||t.pageModelClass||(null==(h=e.layout)?void 0:h.childPageModelClass)||"ChildPageModel",J=(null==$?void 0:$.size)||e.inputArgs.size||t.size||"medium",X=null,Q=null,Z=e.model.uid;if(t.subModelKey){let l=await e.engine.loadOrCreateModel({async:!0,parentId:e.model.uid,subKey:t.subModelKey,subType:"object",use:"FlowModel"},{skipSave:!e.flowSettingsEnabled});(null==l?void 0:l.uid)&&(Z=l.uid)}let ee=!!(null==(f=e.inputArgs)?void 0:f.navigation),et=(null==(v=e.view)||null==(g=v.inputArgs)?void 0:g.openerUids)||F.openerUids||[],el=ee?F.openerUids||et:[...et,(null==(_=e.model.context)||null==(y=_.inputArgs)?void 0:y.viewUid)||e.model.uid],eo=void 0!==F.preventClose?!!F.preventClose:!!t.preventClose,en={viewUid:e.model.uid,...e.inputArgs,...F,dataSourceKey:D,collectionName:R,associationName:E,tabUid:Y,openerUids:el,pageActive:"boolean"==typeof F.pageActive?F.pageActive:"boolean"!=typeof e.inputArgs.pageActive||e.inputArgs.pageActive};en.filterByTk=I,en.sourceId=L,await e.viewer.open({type:z,triggerByRouter:en.triggerByRouter,inputArgs:c.default.omit(en,"triggerByRouter"),preventClose:eo,destroyOnClose:!0,inheritContext:!1,target:e.inputArgs.target||e.layoutContentElement,width:G[z][J],content:t=>(e.inputArgs.destroyRef&&(e.inputArgs.destroyRef.current=t.destroy),e.inputArgs.updateRef&&(e.inputArgs.updateRef.current=t.update),(0,s.jsx)(vc,{parentId:Z,pageModelClass:W,onModelLoaded:(l,o)=>{var n,i,r,a;X=l;let s=o||e.engine.getModel(X);if(Q=s||null,!s)return;t.beforeClose=vv(s);let d=F.defineProperties??(null==(i=e.model.context)||null==(n=i.inputArgs)?void 0:n.defineProperties)??{},u=F.defineMethods??(null==(a=e.model.context)||null==(r=a.inputArgs)?void 0:r.defineMethods)??{};s.context.defineProperty("currentView",{get:()=>t}),s.context.defineProperty("flowSettingsEnabled",{get:()=>e.flowSettingsEnabled,cache:!1}),s.context.defineProperty("view",{get:()=>t}),s.context.defineProperty("closable",{get:()=>"embed"!==z}),s instanceof sl&&s.context.defineProperty("pageActive",{get:()=>e.pageActive}),e.inputArgs.activateRef&&(e.inputArgs.activateRef.current=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t.inputArgs.pageActive=!0,s instanceof a1&&s.activateCurrentTab(e)}),e.inputArgs.deactivateRef&&(e.inputArgs.deactivateRef.current=()=>{t.inputArgs.pageActive=!1,s instanceof a1&&s.deactivateCurrentTab()}),Object.entries(d).forEach(e=>{let[t,l]=e;s.context.defineProperty(t,l)}),Object.entries(u).forEach(e=>{let[t,l]=e;s.context.defineMethod(t,l)}),s.invalidateFlowCache("beforeRender",!0),s._rerunLastAutoRun()},defaultTabTitle:e.model.defaultPopupTitle})),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===z?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}},onClose:()=>{if(X){let t=Q||e.model.flowEngine.getModel(X);null==t||t.invalidateFlowCache("beforeRender",!0)}},onOpen:e.inputArgs.onOpen})}}),v_=(0,u.defineAction)({name:"runjs",title:(0,u.tExpr)("Execute JavaScript"),scene:[u.ActionScene.DYNAMIC_EVENT_FLOW],sort:1e4,useRawParams:!0,uiSchema:{code:{type:"string","x-component":sk.BY,"x-component-props":{enableLinter:!0,height:"200px",scene:"eventFlow"}}},async handler(e,t){var l;if(null==(l=e.inputArgs)?void 0:l.navigation)return;let o=(0,u.createSafeNavigator)();return e.runjs(t.code,{window:(0,u.createSafeWindow)({navigator:o}),document:(0,u.createSafeDocument)(),navigator:o})}}),vb=3;function vx(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:vb;if(null==e)return t;let l=Number(e);return Number.isNaN(l)?t:Math.max(0,Math.trunc(l))}let vM=(0,u.defineAction)({name:"showMessage",title:(0,u.tExpr)("Show message"),scene:u.ActionScene.DYNAMIC_EVENT_FLOW,sort:500,uiSchema:{value:{type:"object","x-component":e=>{let{value:t={},onChange:l}=e,o=(0,u.useFlowContext)(),n=o.model.translate.bind(o.model),i={type:t.type??"info",content:t.content||"",duration:vx(t.duration)},r=e=>{l({...i,...e})},a=e=>{r({type:e.target.value})},d=e=>{r({content:e.target.value})},c=e=>{r({duration:vx(e)})},p=e=>(0,s.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:e});return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,s.jsxs)("div",{children:[p(n("Message type")),(0,s.jsxs)(g.Radio.Group,{value:i.type,onChange:a,children:[(0,s.jsx)(g.Radio,{value:"success",children:n("Success")}),(0,s.jsx)(g.Radio,{value:"error",children:n("Error")}),(0,s.jsx)(g.Radio,{value:"info",children:n("Info")}),(0,s.jsx)(g.Radio,{value:"warning",children:n("Warning")}),(0,s.jsx)(g.Radio,{value:"loading",children:n("Loading")})]})]}),(0,s.jsxs)("div",{children:[p(n("Message content")),(0,s.jsx)(g.Input.TextArea,{value:i.content,onChange:d,placeholder:n("Please input message content"),rows:3,style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[p(n("Duration (seconds, 0 = no auto close)")),(0,s.jsx)(g.InputNumber,{value:i.duration,onChange:c,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:async(e,t)=>{let{value:l}=t,{type:o="info",content:n,duration:i=vb}=l||{type:"info",content:"",duration:vb},r=vx(i);if(!n)return;let a=`flow-message-${(0,A.uid)()}`,d=0===r?(0,s.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[(0,s.jsx)("span",{children:n}),(0,s.jsx)(e1.CloseOutlined,{role:"button","aria-label":"close message",style:{color:"rgba(0, 0, 0, 0.45)",cursor:"pointer",fontSize:"12px"},onClick:()=>{var t,l;return null==(t=(l=e.message).destroy)?void 0:t.call(l,a)}})]}):n,u={key:a,type:o,content:d,duration:r};e.message.open(u)}}),vw=5;function vS(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:vw;if(null==e)return t;let l=Number(e);return Number.isNaN(l)?t:Math.max(0,Math.trunc(l))}let vk=(0,u.defineAction)({name:"showNotification",title:(0,u.tExpr)("Show notification"),scene:u.ActionScene.DYNAMIC_EVENT_FLOW,sort:600,uiSchema:{value:{type:"object","x-component":e=>{let{value:t={},onChange:l}=e,o=(0,u.useFlowContext)(),n=o.model.translate.bind(o.model),i={type:t.type??"info",title:t.title||"",description:t.description||"",duration:vS(t.duration),placement:t.placement??"topRight"},r=e=>{l({...i,...e})},a=e=>{r({type:e.target.value})},d=e=>{r({title:e.target.value})},c=e=>{r({description:e.target.value})},p=e=>{r({duration:vS(e)})},m=e=>{r({placement:e})},h=[{label:n("Top left"),value:"topLeft"},{label:n("Top right"),value:"topRight"},{label:n("Bottom left"),value:"bottomLeft"},{label:n("Bottom right"),value:"bottomRight"}],f=e=>(0,s.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:e});return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,s.jsxs)("div",{children:[f(n("Notification type")),(0,s.jsxs)(g.Radio.Group,{value:i.type,onChange:a,children:[(0,s.jsx)(g.Radio,{value:"success",children:n("Success")}),(0,s.jsx)(g.Radio,{value:"error",children:n("Error")}),(0,s.jsx)(g.Radio,{value:"info",children:n("Info")}),(0,s.jsx)(g.Radio,{value:"warning",children:n("Warning")})]})]}),(0,s.jsxs)("div",{children:[f(n("Notification title")),(0,s.jsx)(g.Input,{value:i.title,onChange:d,placeholder:n("Please input notification title"),style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[f(n("Notification description")),(0,s.jsx)(g.Input.TextArea,{value:i.description,onChange:c,placeholder:n("Please input notification description"),rows:3,style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[f(n("Placement")),(0,s.jsx)(g.Select,{value:i.placement,onChange:m,options:h,style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[f(n("Duration (seconds, 0 = no auto close)")),(0,s.jsx)(g.InputNumber,{value:i.duration,onChange:p,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:async(e,t)=>{let{value:l}=t,{type:o="info",title:n,description:i,duration:r=vw,placement:a="topRight"}=l||{type:"info",title:"",description:"",duration:vw,placement:"topRight"},s=vS(r);(n||i)&&e.notification.open({type:o,message:n,description:i,duration:s,placement:a})}}),vF=(0,u.defineAction)({name:"navigateToURL",title:(0,u.tExpr)("Navigate to URL"),scene:u.ActionScene.DYNAMIC_EVENT_FLOW,sort:400,uiSchema:{value:{type:"object",properties:{url:{title:(0,u.tExpr)("URL"),type:"string","x-decorator":"FormItem","x-component":iX.n,description:'{{t("Do not concatenate search params in the URL")}}',required:!0},searchParams:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{t("Search parameters")}}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:(0,S.css)`
1276
+ `,g0=e=>{let{content:t,style:l,className:o}=e,n=(0,p.useRef)(null),[i,r]=(0,p.useState)(!1);(0,p.useEffect)(()=>{let e=n.current;e&&r(e.scrollWidth>e.clientWidth)},[t]);let a=(0,s.jsx)("div",{ref:n,style:{...l,whiteSpace:"nowrap",fontFamily:"Consolas, Monaco, monospace",overflow:"hidden",textOverflow:"ellipsis"},children:t});return i?(0,s.jsx)(g.Tooltip,{title:(0,s.jsx)("pre",{style:{margin:0,maxHeight:400},className:o,children:t}),overlayInnerStyle:{background:"#fff",color:"#000",boxShadow:"0 2px 8px rgba(0,0,0,0.15)",maxWidth:500},color:"#fff",overlayStyle:{maxWidth:500,whiteSpace:"pre-wrap"},children:a}):a};class g1 extends gj{renderComponent(e){let{space:t,style:l,className:o,overflowMode:n}=this.props,i="";if(null!=e)try{i=JSON.stringify(e,null,t??2)}catch(e){i=this.flowEngine.translate("Invalid JSON format")}return"ellipsis"===n?(0,s.jsx)(g0,{content:i,style:l,className:(0,S.cx)(o,gZ)}):(0,s.jsx)("pre",{className:(0,S.cx)(o,gZ),style:l,children:i})}render(){return this.renderComponent(this.props.value)}}function g2(e){let t=(0,c.toString)(e);return t.includes(".")?t.split(".")[1].replace(/0+$/,"").length:0}u.DisplayItemModel.bindModelToInterface("DisplayJSONFieldModel",["json"],{isDefault:!0});let g5={"0,0.00":{thousands:",",decimal:"."},"0.0,00":{thousands:".",decimal:","},"0 0,00":{thousands:" ",decimal:"."},"0.00":{thousands:"",decimal:"."}};function g8(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0.00",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3?arguments[3]:void 0;if(e>Number.MAX_SAFE_INTEGER||e<Number.MIN_SAFE_INTEGER)return g4(e,t,l,o);let n=e;o&&(n=Number(e));let i="";if(g5[t]){let{thousands:e,decimal:o}=g5[t];i=n.toLocaleString("en-US",{style:"decimal",minimumFractionDigits:l,maximumFractionDigits:l}).replace(/,/g,"comma_placeholder").replace(/\./g,"dot_placeholder").replace(/comma_placeholder/g,e).replace(/dot_placeholder/g,o)}else i=n.toString();return i}function g4(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"0.00",l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=arguments.length>3?arguments[3]:void 0,n=e;o&&(n=new __rspack_external_bignumber_js_b933f7e9.default(e).toString());let i="";if(g5[t]){let{thousands:e,decimal:o}=g5[t],[r,a]=n.toString().split("."),s=a,d=r.replace(/\B(?=(\d{3})+(?!\d))/g,e);s&&l?(s=s.substring(0,l),i=`${d}${o}${s}`):i=d}else i=n.toString();return i}function g3(e){let t,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"*",o=arguments.length>2?arguments[2]:void 0;if(!o)return e;if("*"===l)t=e*o;else{if("/"!==l)return console.error("Error: Invalid operator. Use '*' for multiplication or '/' for division."),null;if(0===o)return console.error("Error: Division by zero."),null;t=e/o}return __rspack_external_mathjs.round(t,9)}function g6(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";return(0,__rspack_external_d3_format_e0459777.format)(`.${t}e`)(e).replace(".",l).replace(/e([+-]?\d+)/,(e,t)=>t.startsWith("+")?`\xd710<sup>${t.slice(1)}</sup>`:`\xd710<sup>-${t.slice(1)}</sup>`)}function g9(e){let t,{step:l,formatStyle:o="normal",value:n,unitConversion:i,unitConversionType:r,separator:a="0,0.00"}=e;if(!(0,nx.isValid)(n))return null;let s=g3(n,r,i);if(t=g8((0,A.toFixedByStep)(s,l),a,g2(l),o),"scientifix"===o){var d;t=g6(Number(s),g2(l),null==g5||null==(d=g5[a])?void 0:d.decimal)}return"NaN"===t&&(t=n),t}let g7=e=>{let{numberStep:t,formatStyle:l,value:o,unitConversion:n,unitConversionType:i,separator:r}=e;return g9({step:t,formatStyle:l,value:o,unitConversion:n,unitConversionType:i,separator:r})};class ve extends hj{renderComponent(e){let{addonBefore:t,addonAfter:l,style:o,className:n}=this.props,i=g7({...this.props,value:e});return i?(0,s.jsxs)("span",{className:n,style:o,children:[t,(0,s.jsx)("span",{dangerouslySetInnerHTML:{__html:i}}),l]}):null}}ve.define({label:(0,u.tExpr)("Number")});let vt=()=>{let e=(0,ly.useForm)(),{unitConversionType:t}=e.values,{t:l}=(0,m.useTranslation)();return(0,s.jsxs)(g.Select,{defaultValue:t||"*",style:{width:160},onChange:t=>{e.setValuesIn("unitConversionType",t)},children:[(0,s.jsx)(g.Select.Option,{value:"*",children:l("Multiply by")}),(0,s.jsx)(g.Select.Option,{value:"/",children:l("Divide by")})]})};ve.registerFlow({key:"numberSettings",sort:500,title:(0,u.tExpr)("Number settings"),steps:{format:{title:(0,u.tExpr)("Number format"),use:"numberFormat"}}}),u.DisplayItemModel.bindModelToInterface("DisplayNumberFieldModel",["number","integer","id","snowflakeId"],{isDefault:!0});class vl extends i9.o{render(){let{value:e,style:t,className:l}=this.props;return e?(0,s.jsx)("div",{className:l,style:t,children:"********"}):(0,s.jsx)("div",{className:l,style:t})}}u.DisplayItemModel.bindModelToInterface("DisplayPasswordFieldModel",["password"],{isDefault:!0});class vo extends hj{renderComponent(e){let{addonBefore:t="",addonAfter:l="%",numberStep:o,style:n,className:i}=this.props,r=__rspack_external_mathjs.round(100*e,9);if(null==e)return;let a=g7({...this.props,value:r,numberStep:o});return a?(0,s.jsxs)("div",{className:i,style:n,children:[t,(0,s.jsx)("span",{dangerouslySetInnerHTML:{__html:a}}),l]}):null}}vo.registerFlow({key:"numberSettings",sort:500,title:(0,u.tExpr)("Number settings"),steps:{format:{title:(0,u.tExpr)("Number format"),uiSchema:e=>({formatStyle:{type:"string",enum:[{value:"normal",label:(0,u.tExpr)("Normal")},{value:"scientifix",label:(0,u.tExpr)("Scientifix notation")}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Style')}}"},unitConversion:{type:"number","x-decorator":"FormItem","x-component":"NumberPicker",title:"{{t('Unit conversion')}}","x-component-props":{style:{width:"100%"},addonBefore:(0,s.jsx)(vt,{})}},separator:{type:"string",enum:[{value:"0,0.00",label:"100,000.00"},{value:"0.0,00",label:"100.000,00"},{value:"0 0,00",label:"100 000.00"},{value:"0.00",label:"100000.00"}],"x-decorator":"FormItem","x-component":"Select",title:"{{t('Separator')}}"},numberStep:{type:"string",title:'{{t("Precision")}}',"x-component":"Select","x-decorator":"FormItem",enum:[{value:"1",label:"1"},{value:"0.1",label:"1.0"},{value:"0.01",label:"1.00"},{value:"0.001",label:"1.000"},{value:"0.0001",label:"1.0000"},{value:"0.00001",label:"1.00000"},{value:"0.000001",label:"1.000000"},{value:"0.0000001",label:"1.0000000"},{value:"0.00000001",label:"1.00000000"}]},addonBefore:{type:"string",title:'{{t("Prefix")}}',"x-component":"Input","x-decorator":"FormItem"},addonAfter:{type:"string",title:'{{t("Suffix")}}',"x-component":"Input","x-decorator":"FormItem","x-disabled":!0}}),defaultParams:e=>{let{formatStyle:t,unitConversion:l,unitConversionType:o,separator:n,step:i,addonBefore:r,addonAfter:a}=e.collectionField.getComponentProps();return{formatStyle:t||"normal",unitConversion:l,unitConversionType:o,separator:n||"0,0.00",numberStep:i||"1",addonBefore:r,addonAfter:a||"%"}},handler(e,t){let{formatStyle:l,unitConversion:o,unitConversionType:n,separator:i,numberStep:r,addonBefore:a,addonAfter:s}=t;e.model.setProps({formatStyle:l,unitConversion:o,unitConversionType:n,separator:i,numberStep:r,addonBefore:a,addonAfter:s})}}}}),vo.define({label:(0,u.tExpr)("Percent")}),u.DisplayItemModel.bindModelToInterface("DisplayPercentFieldModel",["percent"],{isDefault:!0});class vn extends hj{t(e){return"string"!=typeof e?e:e.startsWith("{{")&&e.endsWith("}}")?this.translate(e):e}renderComponent(e,t){let{prefix:l,suffix:o,overflowMode:n,style:i,className:r}=this.props;return(0,s.jsxs)("span",{className:r,style:{...i||{},whiteSpace:"wrap"===n||t?"pre-line":"nowrap"},children:[l,this.t(e),o]})}}vn.define({label:(0,u.tExpr)("Text")}),u.DisplayItemModel.bindModelToInterface("DisplayTextFieldModel",["input","email","phone","uuid","textarea","nanoid"],{isDefault:!0});class vi extends gj{renderComponent(e){let{style:t,className:l}=this.props,o=e&&(0,s.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:e,className:l,style:{...t||{},overflowWrap:"anywhere"},children:e});return(0,s.jsx)(s.Fragment,{children:o})}}vi.define({label:(0,u.tExpr)("URL")}),u.DisplayItemModel.bindModelToInterface("DisplayURLFieldModel",["url"],{isDefault:!0,when:e=>!0});class vr extends hj{renderComponent(e){let{prefix:t,suffix:l,style:o,className:n}=this.props,i=this.props.timeFormat||this.props.format||"HH:mm:ss",r=e&&(0,fv.default)(e,"HH:mm:ss").format(i);return(0,s.jsxs)("span",{className:n,style:o,children:[t,r,l]})}}vr.registerFlow({key:"timeSettings",sort:1e3,title:(0,u.tExpr)("Time settings"),steps:{dateFormat:{title:(0,u.tExpr)("Time format"),use:"dateDisplayFormat"}}}),vr.define({label:(0,u.tExpr)("Time")}),u.DisplayItemModel.bindModelToInterface("DisplayTimeFieldModel",["time"],{isDefault:!0});class va extends i9.o{render(){let{value:e,showUnchecked:t,style:l,className:o}=this.props;return e?(0,s.jsx)(e1.CheckOutlined,{className:o,style:{color:"#52c41a",...l||{}}}):t?(0,s.jsx)(e1.CloseOutlined,{className:o,style:{color:"#ff4d4f",...l||{}}}):(0,s.jsx)(g.Checkbox,{className:o,style:l,disabled:!0})}}va.define({label:(0,u.tExpr)("Checkbox")}),u.DisplayItemModel.bindModelToInterface("DisplayCheckboxFieldModel",["checkbox"],{isDefault:!0});let vs={showBackground:!1,showBorder:!1};function vd(e){var t;let{uid:l,showFlowSettings:o,...n}=e,i=(0,u.useFlowModelById)(l),r=o??(null==i||null==(t=i.props)?void 0:t.showFlowSettings)??vs;return(0,s.jsx)(u.FlowModelRenderer,{model:i,fallback:(0,s.jsx)(o4,{style:{margin:(null==i?void 0:i.context.isMobileLayout)?8:null==i?void 0:i.context.themeToken.marginBlock}}),hideRemoveInSettings:!0,showFlowSettings:r,...n})}let vu=(e,t)=>{var l,o;let n="boolean"==typeof(null==t||null==(o=t.view)||null==(l=o.inputArgs)?void 0:l.isMobileLayout),i="boolean"==typeof(null==t?void 0:t.isMobileLayout);(n||i)&&e.context.defineProperty("isMobileLayout",{get:()=>{var e,l;return"boolean"==typeof(null==t?void 0:t.isMobileLayout)?t.isMobileLayout:!!(null==t||null==(l=t.view)||null==(e=l.inputArgs)?void 0:e.isMobileLayout)},cache:!1})},vc=p.default.memo(e=>{let{pageModelClass:t="ChildPageModel",parentId:l,onModelLoaded:o,defaultTabTitle:n,...i}=e,r=(0,u.useFlowEngine)(),a=(0,u.useFlowViewContext)(),{loading:d,data:c,error:p}=(0,o8.useRequest)(async()=>{var e,i,s,d,c;let p=await r.getModelClassAsync(t);if(!p)throw Error(`[NocoBase] Page model class '${t}' is not registered.`);let m=p===a2||(0,u.isInheritedFrom)(p,a2),h={async:!0,parentId:l,subKey:"page",subType:"object",use:t},f=!r.context.flowSettingsEnabled&&(void 0!==(null==a||null==(i=a.view)||null==(e=i.inputArgs)?void 0:e.filterByTk)||void 0!==(null==a||null==(d=a.view)||null==(s=d.inputArgs)?void 0:s.sourceId));m&&(h.subModels={tabs:[{use:"ChildPageTabModel",stepParams:{pageTabSettings:{tab:{title:n||(null==(c=r.translate)?void 0:c.call(r,"Details"))}}}}]},h.stepParams={pageSettings:{general:{displayTitle:!1,enableTabs:!0}}});let g=f&&await r.loadModel({...h,refresh:!0})||await r.loadOrCreateModel(h,{skipSave:!r.context.flowSettingsEnabled});return(null==g?void 0:g.uid)&&o&&(g.context.addDelegate(a),vu(g,a),g.removeParentDelegate(),o(g.uid,g)),g},{refreshDeps:[l,t,n]});if(p)throw p;return!d&&(null==c?void 0:c.uid)?(0,s.jsx)(vd,{uid:c.uid,...i}):(0,s.jsx)(o4,{style:{margin:(null==a?void 0:a.isMobileLayout)?8:null==a?void 0:a.themeToken.marginBlock}})});vc.displayName="FlowPage";let vp=e=>{let{uid:t,parentId:l,subKey:o,...n}=e,i=(0,u.useFlowEngine)(),{loading:r,data:a}=(0,o8.useRequest)(async()=>await i.loadModel({uid:t,parentId:l,subKey:o}),{refreshDeps:[t,l,o]});return!r&&(null==a?void 0:a.uid)?(0,s.jsx)(vd,{uid:a.uid,...n}):(0,s.jsx)(o4,{style:{margin:16}})},vm=e=>c.default.pickBy({formData:e.formData},e=>void 0!==e);function vh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return[];let l=new Set,o=[],n=t.length?new Set(t):null,i=e=>{var t;if(!(null==e?void 0:e.uid)||l.has(e.uid))return;l.add(e.uid);let r=null==(t=e.getUserModifiedFields)?void 0:t.call(e);(null==r?void 0:r.size)&&!(null==n?void 0:n.has(e.uid))&&o.push(e.uid),Object.values(e.subModels||{}).forEach(e=>{c.default.castArray(e).forEach(e=>{e&&"object"==typeof e&&i(e)})})};return i(e),o}function vf(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=vh(e,t);return{hasDirtyForms:l.length>0,formModelUids:l}}function vg(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e||!t.length)return;let l=new Set,o=new Set(t),n=e=>{if(!(!(null==e?void 0:e.uid)||l.has(e.uid))){if(l.add(e.uid),o.has(e.uid)){var t;null==(t=e.resetUserModifiedFields)||t.call(e)}Object.values(e.subModels||{}).forEach(e=>{c.default.castArray(e).forEach(e=>{e&&"object"==typeof e&&n(e)})})}};n(e)}function vv(e){return async t=>{let{result:l,force:o,ignoredDirtyFormModelUids:n}=t;if(o)return!0;let i=vf(e,n),r=!1,a=await e.dispatchEvent("close",{result:l,force:!1,dirty:i,controller:{prevent(){r=!0}}}),s=(null==a?void 0:a.__abortedByExitAll)===!0||!!Array.isArray(a)&&a.some(e=>e instanceof u.FlowExitAllException),d=!r&&!s;return d&&i.hasDirtyForms&&vg(e,i.formModelUids),d}}let vy=(0,u.defineAction)({name:"openView",title:(0,u.tExpr)("Edit popup"),uiSchema:{mode:{type:"string",title:(0,u.tExpr)("Open mode"),enum:[{label:(0,u.tExpr)("Drawer"),value:"drawer"},{label:(0,u.tExpr)("Dialog"),value:"dialog"},{label:(0,u.tExpr)("Page"),value:"embed"}],"x-decorator":"FormItem","x-component":"Radio.Group"},size:{type:"string",title:(0,u.tExpr)("Popup size"),enum:[{label:(0,u.tExpr)("Small"),value:"small"},{label:(0,u.tExpr)("Medium"),value:"medium"},{label:(0,u.tExpr)("Large"),value:"large"}],"x-decorator":"FormItem","x-component":"Radio.Group","x-reactions":{dependencies:["mode"],fulfill:{state:{hidden:'{{$deps[0] === "embed"}}'}}}}},hideInSettings:async e=>{var t,l,o,n;if(!e.model.getFlow("displayFieldSettings"))return!1;let i=null==(l=(o=e.model).getStepParams)||null==(t=l.call(o,"displayFieldSettings","clickToOpen"))?void 0:t.clickToOpen;return void 0===i?!(null==(n=e.collectionField)?void 0:n.isAssociationField()):!1===i},defaultParams:async e=>{var t,l,o,n,i,r,a,s,d,u,c;let p,m=e.getPropertyMetaTree()||[],h=Array.isArray(m)&&m.some(e=>"record"===String(null==e?void 0:e.name)),f=(null==(t=e.collection)?void 0:t.filterTargetKey)||"id";if(null==(o=e.blockModel)||null==(l=o.resource)?void 0:l.resourceName){let t=e.collection.dataSource.collectionManager.getAssociation(null==(d=e.blockModel)||null==(s=d.resource)?void 0:s.resourceName);(null==t?void 0:t.interface)!=="m2m"&&(f=(null==t?void 0:t.targetKey)||f)}let g=h?`{{ ctx.record.${f} }}`:void 0;try{let t=null==(c=e.resource)||null==(u=c.getSourceId)?void 0:u.call(c);null!=t&&""!==String(t)&&(p="{{ ctx.resource.sourceId }}")}catch(e){}let v=null==(n=e.collection)?void 0:n.dataSourceKey,y=null==(i=e.collection)?void 0:i.name;return{mode:"drawer",size:"medium",pageModelClass:(null==(r=e.layout)?void 0:r.childPageModelClass)||"ChildPageModel",uid:null==(a=e.model)?void 0:a.uid,...g?{filterByTk:g}:{},...p?{sourceId:p}:{},...v?{dataSourceKey:v}:{},...y?{collectionName:y}:{}}},async beforeParamsSave(e,t){if(null==t?void 0:t.uid){let l=e.engine;if(!(l.getModel(t.uid)||await l.loadModel({uid:t.uid})))throw Error(e.t("Popup UID not exists"))}},async handler(e,t){var l,o,n,i,r,a,d,p,m,h,f,g,v,y,_,b,x,M,w,S,k;let F=e.inputArgs||{},C=F.defineProperties??(null==(o=e.model.context)||null==(l=o.inputArgs)?void 0:l.defineProperties)??void 0,A=F.defineMethods??(null==(i=e.model.context)||null==(n=i.inputArgs)?void 0:n.defineMethods)??void 0,P=(null==(a=e.model)||null==(r=a.getInputArgs)?void 0:r.call(a))||{},T=(null==F?void 0:F.defaultInputKeys)||[],j=e=>{let l=void 0!==(null==F?void 0:F[e]),o=T.includes(e);return l&&!o?F[e]:void 0!==(null==t?void 0:t[e])?t[e]:l?F[e]:null==P?void 0:P[e]},I=(()=>{var t,l;let o=j("filterByTk");return(null==(t=e.collection)?void 0:t.template)==="sql"&&Array.isArray(null==(l=e.collection)?void 0:l.filterTargetKey)&&1===e.collection.filterTargetKey.length&&null!=o&&"object"!=typeof o?{[e.collection.filterTargetKey[0]]:o}:o})(),L=j("sourceId"),D=void 0!==(null==F?void 0:F.dataSourceKey)?F.dataSourceKey:null==t?void 0:t.dataSourceKey,R=void 0!==(null==F?void 0:F.collectionName)?F.collectionName:null==t?void 0:t.collectionName,E=void 0!==(null==F?void 0:F.associationName)?F.associationName:null==t?void 0:t.associationName,Y=void 0!==F.tabUid?F.tabUid:t.tabUid,N=Object.prototype.hasOwnProperty.call(F,u.RUNJS_OPEN_VIEW_ROUTE_STATE),O=F[u.RUNJS_OPEN_VIEW_ROUTE_STATE],B=N?(0,u.createOpenViewRouteState)(O&&"object"==typeof O?O:{mode:F.mode,size:F.size}):void 0,V=F.openViewRouteState,H=V&&"object"==typeof V?(0,u.createOpenViewRouteState)(V):void 0,$=B||H,z=(null==(d=e.inputArgs)?void 0:d.isMobileLayout)?"embed":(null==$?void 0:$.mode)||(null==(p=e.inputArgs)?void 0:p.mode)||t.mode||"drawer",K=B&&(null==(m=e.inputArgs)?void 0:m.isMobileLayout)?(0,u.createOpenViewRouteState)({...B,mode:z}):B,U=void 0!==F.navigation?F.navigation:t.navigation;if((C||A)&&(U=!1),!1!==U&&!1!==e.isNavigationEnabled&&!e.inputArgs.navigation&&(null==(b=e.view)?void 0:b.navigation)){let l={type:z,inputArgs:{...e.inputArgs,dataSourceKey:D,collectionName:R,associationName:E,filterByTk:I,sourceId:L,tabUid:Y,viewUid:(null==(M=e.model.context)||null==(x=M.inputArgs)?void 0:x.viewUid)||e.model.uid,...K?{openViewRouteState:K}:{}},navigation:null==(w=e.view)?void 0:w.navigation,preventClose:!!(null==t?void 0:t.preventClose),engineCtx:e.engine.context};e.model.context.defineProperty("view",{value:l});let o={viewUid:(null==(k=e.model.context)||null==(S=k.inputArgs)?void 0:S.viewUid)||e.model.uid,filterByTk:I,sourceId:L,tabUid:Y,...K?{openViewRouteState:K}:{}},n=vm(F),i=Object.keys(n).length?{state:{[q]:{[o.viewUid]:n}}}:void 0;e.view.navigation.navigateTo(o,i);return}if((null==t?void 0:t.uid)&&t.uid!==e.model.uid)return void await e.openView(t.uid,{...F,...t||{},navigation:U,target:e.inputArgs.target||e.layoutContentElement,dataSourceKey:D??P.dataSourceKey,collectionName:R??P.collectionName,associationName:void 0!==E?E:P.associationName,filterByTk:I,sourceId:L,tabUid:Y,...C?{defineProperties:C}:{},...A?{defineMethods:A}:{}});let G={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}},W=e.inputArgs.pageModelClass||t.pageModelClass||(null==(h=e.layout)?void 0:h.childPageModelClass)||"ChildPageModel",J=(null==$?void 0:$.size)||e.inputArgs.size||t.size||"medium",X=null,Q=null,Z=e.model.uid;if(t.subModelKey){let l=await e.engine.loadOrCreateModel({async:!0,parentId:e.model.uid,subKey:t.subModelKey,subType:"object",use:"FlowModel"},{skipSave:!e.flowSettingsEnabled});(null==l?void 0:l.uid)&&(Z=l.uid)}let ee=!!(null==(f=e.inputArgs)?void 0:f.navigation),et=(null==(v=e.view)||null==(g=v.inputArgs)?void 0:g.openerUids)||F.openerUids||[],el=ee?F.openerUids||et:[...et,(null==(_=e.model.context)||null==(y=_.inputArgs)?void 0:y.viewUid)||e.model.uid],eo=void 0!==F.preventClose?!!F.preventClose:!!t.preventClose,en={viewUid:e.model.uid,...e.inputArgs,...F,dataSourceKey:D,collectionName:R,associationName:E,tabUid:Y,openerUids:el,pageActive:"boolean"==typeof F.pageActive?F.pageActive:"boolean"!=typeof e.inputArgs.pageActive||e.inputArgs.pageActive};en.filterByTk=I,en.sourceId=L,await e.viewer.open({type:z,triggerByRouter:en.triggerByRouter,inputArgs:c.default.omit(en,"triggerByRouter"),preventClose:eo,destroyOnClose:!0,inheritContext:!1,target:e.inputArgs.target||e.layoutContentElement,width:G[z][J],content:t=>(e.inputArgs.destroyRef&&(e.inputArgs.destroyRef.current=t.destroy),e.inputArgs.updateRef&&(e.inputArgs.updateRef.current=t.update),(0,s.jsx)(vc,{parentId:Z,pageModelClass:W,onModelLoaded:(l,o)=>{var n,i,r,a;X=l;let s=o||e.engine.getModel(X);if(Q=s||null,!s)return;t.beforeClose=vv(s);let d=F.defineProperties??(null==(i=e.model.context)||null==(n=i.inputArgs)?void 0:n.defineProperties)??{},u=F.defineMethods??(null==(a=e.model.context)||null==(r=a.inputArgs)?void 0:r.defineMethods)??{};s.context.defineProperty("currentView",{get:()=>t}),s.context.defineProperty("flowSettingsEnabled",{get:()=>e.flowSettingsEnabled,cache:!1}),s.context.defineProperty("view",{get:()=>t}),s.context.defineProperty("closable",{get:()=>"embed"!==z}),s instanceof sl&&s.context.defineProperty("pageActive",{get:()=>e.pageActive}),e.inputArgs.activateRef&&(e.inputArgs.activateRef.current=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t.inputArgs.pageActive=!0,s instanceof a1&&s.activateCurrentTab(e)}),e.inputArgs.deactivateRef&&(e.inputArgs.deactivateRef.current=()=>{t.inputArgs.pageActive=!1,s instanceof a1&&s.deactivateCurrentTab()}),Object.entries(d).forEach(e=>{let[t,l]=e;s.context.defineProperty(t,l)}),Object.entries(u).forEach(e=>{let[t,l]=e;s.context.defineMethod(t,l)}),s.invalidateFlowCache("beforeRender",!0),s._rerunLastAutoRun()},defaultTabTitle:e.model.defaultPopupTitle})),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===z?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}},onClose:()=>{if(X){let t=Q||e.model.flowEngine.getModel(X);null==t||t.invalidateFlowCache("beforeRender",!0)}},onOpen:e.inputArgs.onOpen})}}),v_=(0,u.defineAction)({name:"runjs",title:(0,u.tExpr)("Execute JavaScript"),scene:[u.ActionScene.DYNAMIC_EVENT_FLOW],sort:1e4,useRawParams:!0,uiSchema:{code:{type:"string","x-component":sk.BY,"x-component-props":{enableLinter:!0,height:"200px",scene:"eventFlow"}}},async handler(e,t){var l;if(null==(l=e.inputArgs)?void 0:l.navigation)return;let o=(0,u.createSafeNavigator)();return e.runjs(t.code,{window:(0,u.createSafeWindow)({navigator:o}),document:(0,u.createSafeDocument)(),navigator:o})}}),vb=3;function vx(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:vb;if(null==e)return t;let l=Number(e);return Number.isNaN(l)?t:Math.max(0,Math.trunc(l))}let vM=(0,u.defineAction)({name:"showMessage",title:(0,u.tExpr)("Show message"),scene:u.ActionScene.DYNAMIC_EVENT_FLOW,sort:500,uiSchema:{value:{type:"object","x-component":e=>{let{value:t={},onChange:l}=e,o=(0,u.useFlowContext)(),n=o.model.translate.bind(o.model),i={type:t.type??"info",content:t.content||"",duration:vx(t.duration)},r=e=>{l({...i,...e})},a=e=>{r({type:e.target.value})},d=e=>{r({content:e.target.value})},c=e=>{r({duration:vx(e)})},p=e=>(0,s.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:e});return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,s.jsxs)("div",{children:[p(n("Message type")),(0,s.jsxs)(g.Radio.Group,{value:i.type,onChange:a,children:[(0,s.jsx)(g.Radio,{value:"success",children:n("Success")}),(0,s.jsx)(g.Radio,{value:"error",children:n("Error")}),(0,s.jsx)(g.Radio,{value:"info",children:n("Info")}),(0,s.jsx)(g.Radio,{value:"warning",children:n("Warning")}),(0,s.jsx)(g.Radio,{value:"loading",children:n("Loading")})]})]}),(0,s.jsxs)("div",{children:[p(n("Message content")),(0,s.jsx)(g.Input.TextArea,{value:i.content,onChange:d,placeholder:n("Please input message content"),rows:3,style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[p(n("Duration (seconds, 0 = no auto close)")),(0,s.jsx)(g.InputNumber,{value:i.duration,onChange:c,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:async(e,t)=>{let{value:l}=t,{type:o="info",content:n,duration:i=vb}=l||{type:"info",content:"",duration:vb},r=vx(i);if(!n)return;let a=`flow-message-${(0,A.uid)()}`,d=0===r?(0,s.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:"8px"},children:[(0,s.jsx)("span",{children:n}),(0,s.jsx)(e1.CloseOutlined,{role:"button","aria-label":"close message",style:{color:"rgba(0, 0, 0, 0.45)",cursor:"pointer",fontSize:"12px"},onClick:()=>{var t,l;return null==(t=(l=e.message).destroy)?void 0:t.call(l,a)}})]}):n,u={key:a,type:o,content:d,duration:r};e.message.open(u)}}),vw=5;function vS(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:vw;if(null==e)return t;let l=Number(e);return Number.isNaN(l)?t:Math.max(0,Math.trunc(l))}let vk=(0,u.defineAction)({name:"showNotification",title:(0,u.tExpr)("Show notification"),scene:u.ActionScene.DYNAMIC_EVENT_FLOW,sort:600,uiSchema:{value:{type:"object","x-component":e=>{let{value:t={},onChange:l}=e,o=(0,u.useFlowContext)(),n=o.model.translate.bind(o.model),i={type:t.type??"info",title:t.title||"",description:t.description||"",duration:vS(t.duration),placement:t.placement??"topRight"},r=e=>{l({...i,...e})},a=e=>{r({type:e.target.value})},d=e=>{r({title:e.target.value})},c=e=>{r({description:e.target.value})},p=e=>{r({duration:vS(e)})},m=e=>{r({placement:e})},h=[{label:n("Top left"),value:"topLeft"},{label:n("Top right"),value:"topRight"},{label:n("Bottom left"),value:"bottomLeft"},{label:n("Bottom right"),value:"bottomRight"}],f=e=>(0,s.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:e});return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[(0,s.jsxs)("div",{children:[f(n("Notification type")),(0,s.jsxs)(g.Radio.Group,{value:i.type,onChange:a,children:[(0,s.jsx)(g.Radio,{value:"success",children:n("Success")}),(0,s.jsx)(g.Radio,{value:"error",children:n("Error")}),(0,s.jsx)(g.Radio,{value:"info",children:n("Info")}),(0,s.jsx)(g.Radio,{value:"warning",children:n("Warning")})]})]}),(0,s.jsxs)("div",{children:[f(n("Notification title")),(0,s.jsx)(g.Input,{value:i.title,onChange:d,placeholder:n("Please input notification title"),style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[f(n("Notification description")),(0,s.jsx)(g.Input.TextArea,{value:i.description,onChange:c,placeholder:n("Please input notification description"),rows:3,style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[f(n("Placement")),(0,s.jsx)(g.Select,{value:i.placement,onChange:m,options:h,style:{width:"100%"}})]}),(0,s.jsxs)("div",{children:[f(n("Duration (seconds, 0 = no auto close)")),(0,s.jsx)(g.InputNumber,{value:i.duration,onChange:p,min:0,step:1,precision:0,style:{width:"100%"}})]})]})}}},handler:async(e,t)=>{let{value:l}=t,{type:o="info",title:n,description:i,duration:r=vw,placement:a="topRight"}=l||{type:"info",title:"",description:"",duration:vw,placement:"topRight"},s=vS(r);(n||i)&&e.notification.open({type:o,message:n,description:i,duration:s,placement:a})}}),vF=(0,u.defineAction)({name:"navigateToURL",title:(0,u.tExpr)("Navigate to URL"),scene:u.ActionScene.DYNAMIC_EVENT_FLOW,sort:400,uiSchema:{value:{type:"object",properties:{url:{title:(0,u.tExpr)("URL"),type:"string","x-decorator":"FormItem","x-component":iX.n,description:'{{t("Do not concatenate search params in the URL")}}',required:!0},searchParams:{type:"array","x-component":"ArrayItems","x-decorator":"FormItem",title:'{{t("Search parameters")}}',items:{type:"object",properties:{space:{type:"void","x-component":"Space","x-component-props":{style:{flexWrap:"nowrap",maxWidth:"100%",display:"flex"},className:(0,S.css)`
1277
1277
  & > .ant-space-item:first-child {
1278
1278
  flex: 3;
1279
1279
  }