@nocobase/client-v2 2.1.19 → 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.
- package/es/BaseApplication.d.ts +1 -0
- package/es/collection-field-interface/CollectionFieldInterface.d.ts +1 -0
- package/es/collection-field-interface/CollectionFieldInterfaceManager.d.ts +1 -0
- package/es/flow/models/blocks/form/QuickEditFormModel.d.ts +0 -1
- package/es/index.mjs +6 -6
- package/lib/index.js +25 -25
- package/package.json +7 -7
- package/src/BaseApplication.tsx +4 -0
- package/src/collection-field-interface/CollectionFieldInterface.ts +1 -0
- package/src/collection-field-interface/CollectionFieldInterfaceManager.ts +1 -0
- package/src/flow/FlowPage.tsx +9 -1
- package/src/flow/__tests__/FlowPage.test.tsx +50 -3
- package/src/flow/components/FieldAssignValueInput.tsx +15 -11
- package/src/flow/components/__tests__/FieldAssignValueInput.context.test.tsx +134 -0
- package/src/flow/models/blocks/filter-form/FilterFormBlockModel.tsx +1 -0
- package/src/flow/models/blocks/filter-form/__tests__/defaultValues.wiring.test.ts +34 -0
- package/src/flow/models/blocks/form/QuickEditFormModel.tsx +13 -18
- package/src/flow/models/blocks/form/__tests__/QuickEditFormModel.quickEdit.test.ts +30 -1
- package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/PopupSubTableFieldModel.tsx +1 -0
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;
|
|
@@ -757,7 +757,7 @@ ${n}`,u)}}let o=T(e.issues.filter(e=>"runtime"===e.type)),n=o?`Key runtime issue
|
|
|
757
757
|
padding: 0;
|
|
758
758
|
overflow: hidden;
|
|
759
759
|
}
|
|
760
|
-
`,oN={token:{colorSplit:"rgba(255, 255, 255, 0.1)"}};function oO(e,t){return e.map((e,t)=>({action:e,index:t})).filter(e=>{let{action:l}=e;return!l.isHidden()&&(!l.aclSnippet||t(l.aclSnippet))}).sort((e,t)=>(e.action.sort||0)!==(t.action.sort||0)?(e.action.sort||0)-(t.action.sort||0):e.index-t.index).map(e=>{let{action:t}=e;return t})}let oB=e=>({"--nb-topbar-action-color":e.colorTextHeaderMenu||"rgba(255, 255, 255, 0.65)","--nb-topbar-action-hover-bg":e.colorBgHeaderMenuHover||"rgba(255, 255, 255, 0.1)"}),oV=()=>null,oH=e=>"function"==typeof(null==e?void 0:e.getActionId)?e.getActionId():(null==e?void 0:e.actionId)||(null==e?void 0:e.uid)||"",oq=p.default.memo(e=>{let{allow:t}=(0,oR.K)(),{token:l}=g.theme.useToken(),o=l,n=(0,p.useMemo)(()=>oO(e.actions,t),[t,e.actions]),i=n.filter(e=>oH(e)!==lU),r=n.find(e=>oH(e)===lU);return(0,s.jsxs)("div",{className:oE,style:oB(o),children:[(0,s.jsx)("div",{className:"nb-topbar-actions-list",onClick:e.onActionClick,children:i.map(e=>(0,s.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:oV,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,s.jsx)(u.FlowModelRenderer,{model:e})},e.uid))}),(0,s.jsx)(g.ConfigProvider,{theme:oN,children:(0,s.jsx)(g.Divider,{type:"vertical"})}),(0,s.jsx)(lT,{}),r?(0,s.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:oV,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,s.jsx)(u.FlowModelRenderer,{model:r})},r.uid):null]})});oq.displayName="TopbarActionsContent";let o$=p.default.memo(e=>{let{token:t}=g.theme.useToken(),l=t,[o,n]=(0,p.useState)(!1),i=(0,p.useCallback)(()=>{n(!1)},[]);return e.isMobile?(0,s.jsx)(g.Popover,{rootClassName:oY,content:(0,s.jsx)(oq,{actions:e.actions,onActionClick:i}),color:l.colorBgHeader,trigger:"click",open:o,onOpenChange:n,children:(0,s.jsx)("div",{style:{padding:"0 16px",display:"flex",alignItems:"center",height:"100%",marginRight:-16},children:(0,s.jsx)(e1.EllipsisOutlined,{style:{color:l.colorTextHeaderMenu,fontSize:20}})})}):(0,s.jsx)(oq,{actions:e.actions})});o$.displayName="TopbarActionsBar";let oz=e=>{let{children:t}=e,l=(0,u.useFlowEngine)(),o=(0,f.n)(),n=(0,h.useNavigate)(),i=(0,h.useLocation)(),r=(0,h.useMatches)(),[a,d]=(0,p.useState)(!1),c=(0,p.useRef)(!1),m=l.context.routeRepository,g=(0,p.useMemo)(()=>"/admin"===eH(i.pathname,o.router.getBasename()),[o,i.pathname]),v=(0,p.useMemo)(()=>{var e,t;let l=r[r.length-1];if(!et("admin",null==l?void 0:l.id))return"";let o=r.find(e=>"admin"===e.id);return(null==(e=l.params)?void 0:e.name)||(null==(t=(0,u.parsePathnameToViewParams)(i.pathname,{basePath:(null==o?void 0:o.pathname)||"/admin"})[0])?void 0:t.viewUid)||""},[i.pathname,r]);return((0,p.useEffect)(()=>{c.current=!1},[i.pathname,i.search,i.hash,v]),(0,p.useEffect)(()=>{let e=!0;return(async()=>{var t,l,i,r;if(d(!1),!g&&!v){e&&d(!0);return}if(!(null==m||null==(t=m.isAccessibleLoaded)?void 0:t.call(m)))try{await (null==m||null==(i=m.ensureAccessibleLoaded)?void 0:i.call(m))}catch(t){e&&d(!0);return}if(!e||c.current)return;if(v){let t=null==m||null==(r=m.getRouteBySchemaUid)?void 0:r.call(m,v);if((null==t?void 0:t.type)==="page"){let e=eQ({app:o,route:t,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===e.navigationMode&&e.runtimePath){c.current=!0,window.location.replace(e.runtimePath);return}}e&&d(!0);return}let a=eW((null==m||null==(l=m.listAccessible)?void 0:l.call(m))||[]);if(!a){e&&d(!0);return}let s=eQ({app:o,route:a});if(!s.runtimePath){e&&d(!0);return}(c.current=!0,"document"===s.navigationMode)?window.location.replace(s.runtimePath):n(eH(s.runtimePath,o.router.getBasename()),{replace:!0})})(),()=>{e=!1}},[o,l,g,i.hash,i.pathname,i.search,n,v,m]),a)?(0,s.jsx)(s.Fragment,{children:t}):null};class oK extends eu{refreshMenuRouteTree(){this.menuRouteRefreshVersion+=1}syncMenuRoutes(e){tI(this,Array.isArray(e)?e:[])}toProLayoutRoute(e){let t=(this.subModels.menuItems||[]).map(t=>t.toProLayoutRoute({...e,depth:0})).filter(Boolean)||[];return e.designable&&(e.isMobile?t.push(tq("schema-initializer-Menu-header",this)):t.unshift(tq("schema-initializer-Menu-header",this))),{path:"/",children:t}}createRouteCoordinator(){return new eZ(this.flowEngine,this.getRouteCoordinatorOptions())}render(){return(0,s.jsx)(oz,{children:(0,s.jsx)(oD,{...this.props,model:this})})}constructor(e){super(e),this.menuRouteRefreshVersion=0,(0,d.define)(this,{menuRouteRefreshVersion:d.observable.ref})}}function oU(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=ec(e,e0,{...t,use:t.use||oK});if(!l&&t.required)throw Error("[NocoBase] FlowRoute requires admin-layout-model. Please render FlowRoute under AdminLayout.");return l}function oG(e){let{flowEngine:t,pageUid:l,active:o,refreshDesktopRoutes:n,layoutContentRef:i,getLayoutModel:r}=e,a=r(t),s=(0,p.useRef)(o),d=(0,p.useRef)(n);if(!a)throw Error("[NocoBase] FlowRoute requires layout model. Please render FlowRoute under Layout.");return s.current=o,d.current=n,(0,p.useEffect)(()=>(a.registerRoutePage(l,{active:s.current??!1,refreshDesktopRoutes:d.current,layoutContentElement:i.current}),()=>{a.unregisterRoutePage(l)}),[a,l,i]),(0,p.useEffect)(()=>{a.updateRoutePage(l,{active:o,refreshDesktopRoutes:n,layoutContentElement:i.current})},[o,a,l,n,i]),a}oK.registerFlow({key:"topbarAction",steps:{step1:{handler:async(e,t)=>{let l=[...(await e.engine.getSubclassesOfAsync("TopbarActionModel")).keys()].map(t=>{let l=e.engine.createModel({use:t,uid:`topbar-action-${t}`});return l.setParent(e.model),l});e.model.props.actionsRender=e=>[(0,s.jsx)(o$,{actions:l,isMobile:null==e?void 0:e.isMobile},"topbar-actions")]}}}});let oW=e=>oU(e,{required:!0}),oJ=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.uid)?ec(e,l.uid,{required:!0}):oW(e)},oX=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.routeName)&&"admin"!==l.routeName?"notFound":"redirect"},oQ=async(e,t)=>{var l;if(e.getModel(t))return!0;let o=await (null==(l=e.modelRepository)?void 0:l.findOne({uid:t}).catch(()=>null));if(null==o?void 0:o.uid)return!0;let n=await e.loadModel({uid:t}).catch(()=>null);return n&&e.getModel(t)===n&&e.removeModelWithSubModels(t),!!n},oZ=e=>{let{pageUid:t,active:l,getLayoutModel:o}=e,n=(0,u.useFlowEngine)(),{active:i}=li(),r=n.context.routeRepository,a=p.default.useMemo(()=>null==r?void 0:r.refreshAccessible.bind(r),[r]),d=(0,p.useRef)(null);return(0,p.useEffect)(()=>{n.context.defineProperty("deviceType",{get:()=>"browser"===__rspack_external_react_device_detect_2985bda2.deviceType?"computer":__rspack_external_react_device_detect_2985bda2.deviceType,cache:!1,meta:{type:"string",title:n.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:n.translate("Computer"),value:"computer"},{label:n.translate("Mobile"),value:"mobile"},{label:n.translate("Tablet"),value:"tablet"},{label:n.translate("SmartTv"),value:"smarttv"},{label:n.translate("Console"),value:"console"},{label:n.translate("Wearable"),value:"wearable"},{label:n.translate("Embedded"),value:"embedded"}],"x-component":"Select"}},info:{description:"Current device type (computer/mobile/tablet/...).",detail:"string"}})},[n]),oG({flowEngine:n,pageUid:t,active:l??i,refreshDesktopRoutes:a,layoutContentRef:d,getLayoutModel:o}),(0,s.jsx)("div",{ref:d})},o0=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,u.useFlowEngine)(),l=(0,u.useFlowContext)(),o=null==l?void 0:l.layout,n=(0,p.useMemo)(()=>e.getLayoutModel||(e=>oJ(e,o)),[o,e.getLayoutModel]),i=e.legacyPageBehavior||oX(t,o),r=(0,f.n)(),a=t.context.routeRepository,d=(0,h.useParams)(),c=e.pageUid||(null==d?void 0:d.name),m=!a,[g,v]=(0,p.useState)({pending:!0,allowBridge:!1,notFound:!1}),y=(0,p.useRef)(!1),_=(0,p.useRef)(0);if(!c)throw Error("[NocoBase] FlowRoute requires pageUid or route.params.name.");return(0,p.useEffect)(()=>{let e=!0,l=++_.current;return(async()=>{var o,n,s;if(v({pending:!0,allowBridge:!1,notFound:!1}),!m&&!(null==a||null==(o=a.isAccessibleLoaded)?void 0:o.call(a)))try{await (null==a||null==(s=a.ensureAccessibleLoaded)?void 0:s.call(a))}catch(t){e&&l===_.current&&v({pending:!1,allowBridge:!0,notFound:!1});return}if(!e||l!==_.current)return;let d=m||null==a||null==(n=a.getRouteBySchemaUid)?void 0:n.call(a,c);if(!d&&"notFound"===i){let o=await oQ(t,c);e&&l===_.current&&v({pending:!1,allowBridge:o,notFound:!o});return}if((null==d?void 0:d.type)==="page"){if("notFound"===i)return v({pending:!1,allowBridge:!1,notFound:!0});if("bridge"===i)return v({pending:!1,allowBridge:!0,notFound:!1});let t=eQ({app:r,route:d,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===t.navigationMode&&t.runtimePath&&!y.current){y.current=!0,window.location.replace(t.runtimePath);return}if("unsupportedV2Runtime"===t.reason){e&&l===_.current&&v({pending:!1,allowBridge:!1,notFound:!0});return}}e&&l===_.current&&v({pending:!1,allowBridge:!0,notFound:!1})})(),()=>{e=!1}},[r,t,i,c,a,m]),(0,p.useMemo)(()=>g.pending?null:g.notFound?(0,s.jsx)(I.bM,{}):g.allowBridge?(0,s.jsx)(oZ,{pageUid:c,active:e.active,getLayoutModel:n}):null,[n,g.allowBridge,g.notFound,g.pending,c,e.active])};o0.displayName="FlowRoute";let o1=o0,o2=e=>e.current,o5=e=>{let{layoutRouteName:t}=e,l=(0,f.n)(),o=(0,u.useFlowEngine)(),n=l.layoutManager.getLayout(t),i=(0,h.useLocation)(),r=(0,h.useMatches)(),a=ec(o,n.uid,{required:!0}),d="admin"===n.routeName?"redirect":"notFound",c=(0,p.useRef)(0),m=(0,p.useMemo)(()=>{let e=r[r.length-1],t=r.find(e=>e.id===n.routeName);return{id:null==e?void 0:e.id,name:null==e?void 0:e.id,pathname:i.pathname,params:(null==e?void 0:e.params)||{},layoutRouteName:n.routeName,layoutBasePathname:null==t?void 0:t.pathname}},[n.routeName,i.pathname,r]);if(!a)throw Error(`[NocoBase] Layout '${n.routeName}' model '${n.uid}' is not mounted.`);let g=a.resolveLayoutRoute(m),v=(0,p.useMemo)(()=>e=>ec(e,n.uid,{required:!0}),[n.uid]);return((0,p.useEffect)(()=>{let e=++c.current;return a.syncLayoutRoute(m),()=>{Promise.resolve().then(()=>{o2(c)===e&&a.clearLayoutRoute(m)}).catch(()=>{})}},[a,m]),"root"===g.type)?null:"notFound"===g.type?(0,s.jsx)(I.bM,{}):(0,s.jsx)(o1,{pageUid:g.pageUid,getLayoutModel:v,legacyPageBehavior:d})};var o8=__webpack_require__(1883);function o4(e){return(0,s.jsx)(g.Card,{...e,children:(0,s.jsx)(g.Skeleton,{paragraph:{rows:3}})})}let o3=e=>e.current;function o6(e){return e===eu||(0,u.isInheritedFrom)(e,eu)}function o9(e,t){if(!(e instanceof eu))throw Error(`[NocoBase] Layout '${t.routeName}' requires model '${t.uid}' to be an instance of BaseLayoutModel.`)}async function o7(e,t){let l=await e.getModelClassAsync(t.layoutModelClass);if(!l)throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' is not registered.`);if(!o6(l))throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' must extend BaseLayoutModel.`)}let ne=e=>{let{layoutRouteName:t}=e,l=(0,f.n)(),o=(0,u.useFlowEngine)(),n=l.layoutManager.getLayout(t),i=(0,h.useLocation)(),r=(0,h.useMatches)(),a=r[r.length-1],d=r.find(e=>e.id===n.routeName),c=JSON.stringify((null==a?void 0:a.params)||{}),m=(0,p.useMemo)(()=>JSON.parse(c),[c]),g=(0,p.useRef)(0),v=(0,p.useMemo)(()=>({id:null==a?void 0:a.id,name:null==a?void 0:a.id,pathname:i.pathname,params:m,layoutRouteName:n.routeName,layoutBasePathname:null==d?void 0:d.pathname}),[null==a?void 0:a.id,m,n.routeName,null==d?void 0:d.pathname,i.pathname]),{loading:y,data:_,error:b}=(0,o8.useRequest)(async()=>{let e=o.getModel(n.uid);if(e)return o9(e,n),e.setProps({layout:n}),e;await o7(o,n);let t=await o.createModelAsync({uid:n.uid,use:n.layoutModelClass,props:{layout:n}});return o9(t,n),t},{refreshDeps:[o,n]});if((0,p.useEffect)(()=>{if(!_)return;let e=++g.current;return _.syncLayoutRoute(v),()=>{Promise.resolve().then(()=>{o3(g)===e&&_.clearLayoutRoute(v)}).catch(()=>{})}},[_,v]),b)throw b;return y||!_?(0,s.jsx)(o4,{style:{margin:16}}):(0,s.jsx)(u.FlowModelRenderer,{model:_})},nt="RootPageModel",nl="ChildPageModel",no=(e,t)=>{if("string"!=typeof e||""===e.trim())throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a non-empty string.`)},nn=(e,t)=>{if("string"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a string.`)},ni=(e,t)=>{void 0!==e&&no(e,t)},nr=(e,t)=>{if(void 0!==e&&"boolean"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a boolean.`)};function na(e){if(e.includes("..")||e.startsWith(".")||e.endsWith("."))throw Error(`[NocoBase] layoutManager.registerLayout() received invalid routeName '${e}'.`)}function ns(e,t){let l=t.trim(),o=e.includes(".");if(o&&l.startsWith("/"))throw Error(`[NocoBase] nested layout routePath '${t}' must be relative.`);let n=o?l.replace(/^\/+/,"").replace(/\/+$/,""):`/${l.replace(/^\/+/,"").replace(/\/+$/,"")}`;if(!o&&(!n||"/"===n))throw Error("[NocoBase] layoutManager.registerLayout() does not support root routePath '/'.");if(n.includes("*"))throw Error(`[NocoBase] layoutManager.registerLayout() does not support wildcard routePath '${t}'.`);return n}function nd(e){no(e.routeName,"routeName"),nn(e.routePath,"routePath"),no(e.uid,"uid"),no(e.layoutModelClass,"layoutModelClass"),ni(e.rootPageModelClass,"rootPageModelClass"),ni(e.childPageModelClass,"childPageModelClass"),nr(e.authCheck,"authCheck"),na(e.routeName);let t=ns(e.routeName,e.routePath);return{routeName:e.routeName,rootRouteName:e.routeName.split(".")[0],routePath:t,uid:e.uid,layoutModelClass:e.layoutModelClass,rootPageModelClass:e.rootPageModelClass||nt,childPageModelClass:e.childPageModelClass||nl,authCheck:e.authCheck??!0}}class nu{registerLayout(e){let t=nd(e);if(this.layouts.has(t.routeName))throw Error(`[NocoBase] Layout '${t.routeName}' has already been registered.`);let l=this.uidIndex.get(t.uid);if(l)throw Error(`[NocoBase] Layout uid '${t.uid}' has already been registered by '${l}'.`);return this.layouts.set(t.routeName,t),this.uidIndex.set(t.uid,t.routeName),this.addStandardRoutes(t),t}getLayout(e){let t=this.layouts.get(e);if(!t)throw Error(`[NocoBase] Layout '${e}' is not registered.`);return t}hasLayout(e){return this.layouts.has(e)}listLayouts(){return Array.from(this.layouts.values())}addStandardRoutes(e){let t=e.routeName,l=e.authCheck,o=!1===l;this.app.router.add(t,{path:e.routePath,authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(ne,{layoutRouteName:e.routeName})}),this.app.router.add(J(t),{path:":name",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})}),this.app.router.add(X(t),{path:":name/tab/:tabUid",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})}),this.app.router.add(Q(t),{path:":name/view/*",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})}),this.app.router.add(Z(t),{path:":name/tab/:tabUid/view/*",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})})}constructor(e){this.layouts=new Map,this.uidIndex=new Map,this.app=e}}class nc{setRoutes(e){this.routes=e,this.accessibleLoaded=!0,this.emitChange()}listAccessible(){return this.routes}isAccessibleLoaded(){return this.accessibleLoaded}async refreshAccessible(){var e;let t=await this.getAPIClient().request({url:"/desktopRoutes:listAccessible",params:{tree:!0,sort:"sort"}}),l=(null==t||null==(e=t.data)?void 0:e.data)||[];return this.setRoutes(l),l}async ensureAccessibleLoaded(){return this.accessibleLoaded?this.routes:(this.accessibleLoadingPromise||(this.accessibleLoadingPromise=this.refreshAccessible().finally(()=>{this.accessibleLoadingPromise=null})),this.accessibleLoadingPromise)}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}unsubscribe(e){this.subscribers.delete(e)}async createRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").create({values:e});return l&&await this.refreshAccessible(),o}async updateRoute(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{refreshAfterMutation:o=!0}=l,n=await this.getResource("desktopRoutes").update(Array.isArray(e)?{filter:{id:{$in:e}},values:t}:{filterByTk:e,values:t});return o&&await this.refreshAccessible(),n}async deleteRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").destroy({filterByTk:e});return l&&await this.refreshAccessible(),o}async moveRoute(e){let{refreshAfterMove:t=!0,...l}=e,o=await this.getResource("desktopRoutes").move(l);return t&&await this.refreshAccessible(),o}getRouteBySchemaUid(e){return this.findRoute(this.routes,e)}getAPIClient(){var e;if(!(null==(e=this.ctx)?void 0:e.api))throw Error("[NocoBase] RouteRepository requires context.api.");return this.ctx.api}getResource(e){return this.getAPIClient().resource(e)}emitChange(){this.subscribers.forEach(e=>{e()})}findRoute(e,t){for(let l of e){if(l.schemaUid===t)return l;if(l.children){let e=this.findRoute(l.children,t);if(e)return e}}}constructor(e){this.ctx=e,this.routes=[],this.subscribers=new Set,this.accessibleLoaded=!1,this.accessibleLoadingPromise=null}}class np{getURL(){if(!this.app)return;let e=this.app.getApiUrl();if(!e)return;let t="";if(this.getSubAppName(this.app))t=`?_app=${this.getSubAppName(this.app)}`;else{let e=(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.app.getPublicPath());t=e?`?__appName=${e}`:""}let l=this.options.basename||"/ws";if(this.options.url){let e=new URL(this.options.url);if("localhost"===e.hostname){let o="https:"===location.protocol?"wss":"ws";return`${o}://${location.hostname}:${e.port}${l}${t}`}return`${this.options.url}${t}`}try{let o=new URL(e);return`${"https:"===o.protocol?"wss":"ws"}://${o.host}${l}${t}`}catch(e){return`${"https:"===location.protocol?"wss":"ws"}://${location.host}${l}${t}`}}get reconnectAttempts(){var e;return(null==(e=this.options)?void 0:e.reconnectAttempts)||30}get reconnectInterval(){var e;return(null==(e=this.options)?void 0:e.reconnectInterval)||1e3}get pingInterval(){var e;return(null==(e=this.options)?void 0:e.pingInterval)||3e5}get readyState(){return this._ws?this._ws.readyState:-1}createWebSocket(){return new WebSocket(this.getURL(),this.options.protocols)}connect(){let e;if(!this.enabled||(0===this._reconnectTimes&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts||this.readyState===WebSocket.OPEN))return;this._reconnectTimes++;let t=this.createWebSocket();t.onopen=()=>{for(let{type:e,listener:l,options:o}of(console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t,this.events))this._ws.addEventListener(e,l,o);e=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=async()=>{console.log("onerror",this.readyState,this._reconnectTimes)},t.onclose=async t=>{setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(e)}}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(e){if(this._ws)return this._ws.send(e)}on(e,t,l){this.events.push({type:e,listener:t,options:l}),this._ws&&this._ws.addEventListener(e,t,l)}emit(e,t){for(let l of this.events)l.type===e&&l.listener(t)}off(e,t,l){let o=0;for(let l of this.events){if(l.type===e&&l.listener===t){this.events.splice(o,1);break}o++}this._ws&&this._ws.removeEventListener(e,t,l)}removeAllListeners(){if(this._ws)for(let{type:e,listener:t,options:l}of this.events)this._ws.removeEventListener(e,t,l)}constructor(e){if(this._reconnectTimes=0,this.events=[],this.connected=!1,this.serverDown=!1,this.lastMessage={},this.getSubAppName=e=>{let t=e.getPublicPath(),l=`^${t}_app/([^/]*)/`,o=location.pathname.match(new RegExp(l));return o?o[1]:null},!e){this.enabled=!1;return}this.options=!0===e?{}:e,this.enabled=!0,(0,d.define)(this,{serverDown:d.observable.ref,connected:d.observable.ref,lastMessage:d.observable.ref})}}function nm(){"use strict";function e(e){for(var t=[],l=0,o=e.length;l<o;l++)-1===t.indexOf(e[l])&&t.push(e[l]);return t}function t(e,t){return JSON.stringify(e)===JSON.stringify(t)}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var l={},o={$is:function(e,t){return e===t},$match:function(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>(null==e?void 0:e.length)===t.length&&(null==e?void 0:e.every((e,l)=>e===t[l]))):JSON.stringify(e)===JSON.stringify(t)},$eq:function(e,l){return Array.isArray(e)&&Array.isArray(l)?t(e,l):Array.isArray(e)?e.includes(l):e==l},$ne:function(e,t){return e!=t},"!==":function(e,t){return e!==t},$gt:function(e,t){return Array.isArray(e)?e.some(e=>e>t):e>t},$gte:function(e,t){return e>=t},$lt:function(e,t,l){return Array.isArray(e)?e.some(e=>e<t):void 0===l?e<t:e<t&&t<l},$lte:function(e,t,l){return void 0===l?e<=t:e<=t&&t<=l},$exists:function(e){return l.truthy(e)},$notEmpty:function(e){return!o.$empty(e)},$empty:function(e){return Array.isArray(e)||"string"==typeof e?0===e.length:null==e},$notExists:function(e){return!l.truthy(e)},"%":function(e,t){return e%t},log:function(e){return e},$in:function(e,t){return!!t&&void 0!==t.indexOf&&(Array.isArray(e)&&Array.isArray(t)?t.some(t=>e.includes(t)):-1!==t.indexOf(e))},$notIn:function(e,t){return!!t&&void 0!==t.indexOf&&-1===t.indexOf(e)},$includes:function(e,t){return!!e&&void 0!==e.indexOf&&(Array.isArray(e)?e.some(e=>null==e?void 0:e.includes(t)):-1!==e.indexOf(t))},$notIncludes:function(e,t){return Array.isArray(e)?!e.some(e=>(e||"").includes(t)):!(e=e||"").includes(t)},$anyOf:function(e,t){return null!=e&&0!==e.length&&(Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>e.some(e=>t.includes(e))):e.some(e=>t.includes(e)))},$noneOf:function(e,t){return!e||0===e.length||!t||0===t.length||(Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),!t.some(t=>e.includes(t)))},$notMatch:function(e,t){if((null==e?void 0:e.length)!==(null==t?void 0:t.length))return!0;for(let l=0;l<((null==e?void 0:e.length)||0);l++)if((null==e?void 0:e[l])!==(null==t?void 0:t[l]))return!0;return!1},$dateOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t))return o.$dateBetween(e,t);let l=ny(e),n=ny(t);return!!l&&!!n&&l.getTime()===n.getTime()},$dateBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ny(e),o=ny(t);return!!l&&!!o&&l.getTime()<o.getTime()},$dateNotBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ny(e),o=ny(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()>=o.getTime()},$dateAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ny(e),o=ny(t);return l.getTime()>o.getTime()},$dateNotAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ny(e),o=ny(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()<=o.getTime()},$dateBetween:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t));let l=ny(e),o=nh(t[0]),n=nh(t[1]);if(!l||!o||!n)throw Error("Invalid date format");return l.getTime()>=o.getTime()&&l.getTime()<=n.getTime()},$dateNotOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t))return!o.$dateBetween(e,t);let l=ny(e),n=ny(t);return l.getTime()!==n.getTime()},$isTruly:function(e){return Array.isArray(e)?e.some(e=>!0===e||1===e):!0===e||1===e},$isFalsy:function(e){return Array.isArray(e)?e.some(e=>!l.truthy(e)):!l.truthy(e)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(e,t,l){if(l<0){var o=String(e).substr(t);return o.substr(0,o.length+l)}return String(e).substr(t,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)+parseFloat(t,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)*parseFloat(t,10)})},"-":function(e,t){return void 0===t?-e:e-t},"/":function(e,t){return e/t},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(e,t){return e.concat(t)},[])},var:function(e,t){var l=void 0===t?null:t,o=this;if(void 0===e||""===e||null===e)return o;for(var n=String(e).split("."),i=0;i<n.length;i++)if(null==o||void 0===(o=o[n[i]]))return l;return o},missing:function(){for(var e=[],t=Array.isArray(arguments[0])?arguments[0]:arguments,o=0;o<t.length;o++){var n=t[o],i=l.apply({var:n},this);(null===i||""===i)&&e.push(n)}return e},missing_some:function(e,t){var o=l.apply({missing:t},this);return t.length-o.length>=e?[]:o}};return l.is_logic=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&1===Object.keys(e).length&&!e.type},l.truthy=function(e){return(!Array.isArray(e)||0!==e.length)&&!!e},l.getOperator=function(e){return Object.keys(e)[0]},l.getValues=function(e){return e[l.getOperator(e)]},l.apply=function(e,t){if(Array.isArray(e))return e.map(function(e){return l.apply(e,t)});if(!l.is_logic(e))return e;var n,i,r,a,s,d=l.getOperator(e),u=e[d];if(Array.isArray(u)||(u=[u]),"if"===d||"?:"==d){for(n=0;n<u.length-1;n+=2)if(l.truthy(l.apply(u[n],t)))return l.apply(u[n+1],t);return u.length===n+1?l.apply(u[n],t):null}if("$and"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),l.truthy(i));n+=1);return i}if("or"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),!l.truthy(i));n+=1);return i}if("filter"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.filter(function(e){return l.truthy(l.apply(r,e))}):[];if("map"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.map(function(e){return l.apply(r,e)}):[];else if("reduce"===d)return(a=l.apply(u[0],t),r=u[1],s=void 0!==u[2]?u[2]:null,Array.isArray(a))?a.reduce(function(e,t){return l.apply(r,{current:t,accumulator:e})},s):s;else if("all"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(!l.truthy(l.apply(r,a[n])))return!1;return!0}else if("none"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!0;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!1;return!0}else if("some"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!0;return!1}if(u=u.map(function(e){return l.apply(e,t)}),Object.prototype.hasOwnProperty.call(o,d)&&"function"==typeof o[d])return o[d].apply(t,u);if(d.indexOf(".")>0){var c=String(d).split("."),p=o;for(n=0;n<c.length;n++){if(!Object.prototype.hasOwnProperty.call(p,c[n]))throw Error("Unrecognized operation "+d+" (failed at "+c.slice(0,n+1).join(".")+")");p=p[c[n]]}return p.apply(t,u)}throw Error("Unrecognized operation "+d)},l.uses_data=function(t){var o=[];if(l.is_logic(t)){var n=l.getOperator(t),i=t[n];Array.isArray(i)||(i=[i]),"var"===n?o.push(i[0]):i.forEach(function(e){o.push.apply(o,l.uses_data(e))})}return e(o)},l.addOperation=function(e,t){o[e]=t},l.rmOperation=function(e){delete o[e]},l.rule_like=function(e,t){if(t===e||"@"===t)return!0;if("number"===t)return"number"==typeof e;if("string"===t)return"string"==typeof e;if("array"===t)return Array.isArray(e)&&!l.is_logic(e);if(l.is_logic(t)){if(l.is_logic(e)){var o=l.getOperator(t),n=l.getOperator(e);if("@"===o||o===n)return l.rule_like(l.get_values(e,!1),l.get_values(t,!1))}return!1}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(var i=0;i<t.length;i+=1)if(!l.rule_like(e[i],t[i]))return!1;return!0}return!1},l}function nh(e){return new Date(e.includes("T")&&e.endsWith("Z")?e:e.includes(" ")?e.replace(" ","T"):`${e}T00:00:00`)}function nf(e){let[t,l]=e.split("-").map(Number);return new Date(t,l-1)}function ng(e){return new Date(parseInt(e.slice(0,4)),(parseInt(e.slice(5,6))-1)*3)}function nv(e){return new Date(parseInt(e),0)}function ny(e){let t=Array.isArray(e)?e[1]??e[0]:e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(t))return new Date(t);if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(t))return new Date(t.replace(" ","T"));if(/^\d{4}-\d{2}-\d{2}$/.test(t))return nh(t);if(/^\d{4}-\d{2}$/.test(t))return nf(t);if(/^\d{4}Q[1-4]$/.test(t))return ng(t);else if(/^\d{4}$/.test(t))return nv(t);return null}var n_=__webpack_require__(2741),nb=__webpack_require__(6220),nx=__webpack_require__(7404),nM=__webpack_require__(8198);function nw(e,t,l){e.define(t,()=>l),window.__nocobase_app_dev__&&(window.__nocobase_app_dev_deps__=window.__nocobase_app_dev_deps__||{},window.__nocobase_app_dev_deps__[t]=l)}function nS(e){nw(e,"react",p.default),nw(e,"react-dom",tU.default),nw(e,"react/jsx-runtime",s.default),nw(e,"react-router",__rspack_external_react_router_65608a1a),nw(e,"react-router-dom",h),nw(e,"antd",g),nw(e,"@ant-design/icons",e1),nw(e,"@ant-design/cssinjs",__rspack_external__ant_design_cssinjs_c619260f),nw(e,"antd-style",__rspack_external_antd_style_1dcbd21e),nw(e,"i18next",__rspack_external_i18next),nw(e,"react-i18next",m),nw(e,"@formily/antd-v5",nb),nw(e,"@formily/core",__rspack_external__formily_core_1e27a7e0),nw(e,"@formily/react",ly),nw(e,"@formily/reactive",d),nw(e,"@formily/shared",nx),nw(e,"@nocobase/utils",A),nw(e,"@nocobase/utils/client",A),nw(e,"@nocobase/client-v2",n),nw(e,"@nocobase/client-v2/client-v2",n),nw(e,"@nocobase/flow-engine",u),nw(e,"@nocobase/evaluators",__rspack_external__nocobase_evaluators_client_1caf2629),nw(e,"@nocobase/evaluators/client",__rspack_external__nocobase_evaluators_client_1caf2629),nw(e,"@dnd-kit/core",tK),nw(e,"@dnd-kit/sortable",nM),nw(e,"@ctrl/tinycolor",n_),nw(e,"ahooks",o8),nw(e,"axios",__rspack_external_axios.default),nw(e,"dayjs",A.dayjs),nw(e,"lodash",c.default),nw(e,"@emotion/css",S),nw(e,"file-saver",__rspack_external_file_saver_8b74c2e4)}var nk=__webpack_require__(6104);let nF=/^\/+/,nC=/\/+$/,nA=e=>{let t=nF.exec(e);return t?e.slice(t[0].length):e},nP=e=>{let t=nC.exec(e);return t?e.slice(0,-t[0].length):e},nT=e=>(0,__rspack_external_react_is_98317e95.isValidElementType)(e);class nj{get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}setDocumentLanguage(e){"u">typeof document&&(e?document.documentElement.lang=e:document.documentElement.removeAttribute("lang"))}defineObservableState(){(0,d.define)(this,{maintained:d.observable.ref,maintaining:d.observable.ref,error:d.observable.ref,apps:d.observable})}initializeExtendedState(){this.systemSettings=new L.o(this.apiClient)}afterManagersInitialized(){this.aiManager=new T(this),this.jsonLogic=nm()}configureContext(){}configureRuntimeAdapters(){}addCustomProviders(){}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",e=>{let t=e.detail;(null==t?void 0:t.token)&&this.setTokenInWebSocket(t)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(e){let{token:t,authenticator:l}=e;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:t,authenticator:l}}))}initRequireJs(){if(void 0===globalThis.window)return;let e=globalThis.window;if(e.requirejs){this.requirejs=e.requirejs;return}e.requirejs=this.requirejs=(0,nk.b)(),nS(this.requirejs),e.define=this.requirejs.define}configureBaseContext(){this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.flowEngine.context.defineProperty("routeRepository",{value:new nc(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:async()=>{var e;return(null==(e=(await this.apiClient.request({url:"app:getInfo"})).data)?void 0:e.data)||{}}}),this.flowEngine.context.defineProperty("pageInfo",{value:(0,d.observable)({version:void 0})}),this.flowEngine.context.defineProperty("systemSettings",{get:()=>this.systemSettings})}addBaseProviders(){this.use(m.I18nextProvider,{i18n:this.i18n}),this.use(u.FlowEngineProvider,{engine:this.flowEngine}),this.use(C),this.use(_)}addFinalProviders(){this.use(u.FlowEngineGlobalsContextProvider)}addReactRouterComponents(){this.addComponents({Link:h.Link,Navigate:h.Navigate,NavLink:h.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:()=>null})}updateFavicon(e){let t=document.querySelector('link[rel="shortcut icon"]');arguments.length>0&&(this.favicon=e||"");let l=this.favicon||"/favicon/favicon.ico";t?t.href=l:((t=document.createElement("link")).rel="shortcut icon",t.href=l,document.head.appendChild(t))}setWsAuthorized(e){this.wsAuthorized=e}setMaintaining(e){this.maintaining!==e&&(this.maintaining=e,e||this.eventBus.dispatchEvent(new Event("maintaining:end")))}getOptions(){return this.options}getName(){return(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.getPublicPath())||null}getPublicPath(){let e=this.options.publicPath||"/";return e.endsWith("/")||(e+="/"),e}getApiUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.apiClient.axios.defaults.baseURL??"";if(!t.startsWith("http://")&&!t.startsWith("https://")){let{protocol:e,host:l}=globalThis.window.location;t=`${e}//${l}${t}`}return`${nP(t)}/${nA(e)}`}getRouteUrl(e){return this.getPublicPath()+nA(e)}getHref(e){let t=this.name;return t&&"main"!==t?`${this.getPublicPath()}apps/${t}/${nA(e)}`:this.getPublicPath()+nA(e)}getComposeProviders(){let e=lC(...this.providers)(I.ct);return e.displayName="Providers",e}use(e,t){return this.addProvider(e,t)}addProvider(e,t){return this.providers.push([e,t])}addProviders(e){e.forEach(e=>{Array.isArray(e)?this.addProvider(e[0],e[1]):this.addProvider(e)})}getComponent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],l=e=>t&&console.error(e);if(!e)return void l(`getComponent called with ${e}`);if("string"==typeof e){let t=(0,c.get)(this.components,e);return t||void l(`Component ${e} not found`)}if(nT(e))return e;l(`Component ${e} should be a string or a React component`)}renderComponent(e,t,l){let o=this.getComponent(e);return o?p.default.createElement(o,t,l):null}addComponent(e,t){let l=e,o=t||l.displayName||l.name;o?(0,c.set)(this.components,o,e):console.error("Component must have a displayName or pass name as second argument")}addComponents(e){Object.keys(e).forEach(t=>{this.addComponent(e[t],t)})}setAppsComponent(e){let{Component:t}=e;this.apps.Component=t}setAppsProvider(e){let{loadAppList:t}=e;this.apps.loadAppList=t}getRootFallback(){return this.renderComponent("AppSpin")}getRootComponent(){let e=this.model,t=this.flowEngine,l=()=>this.getRootFallback();return o=>{let{children:n}=o;return(0,p.useLayoutEffect)(()=>{e.setProps({children:n})},[n]),(0,s.jsx)(u.FlowEngineProvider,{engine:t,children:(0,s.jsx)(u.FlowModelRenderer,{fallback:l(),model:e})})}}mount(e){let t=lF(e);if(t){let e=this.getRootComponent(),l=(0,__rspack_external_react_dom_client_76b1397c.createRoot)(t);return l.render((0,s.jsx)(e,{})),l}}createLayoutManager(e){return new nu(this)}createWebSocketClient(e){return new np(e.ws??!1)}getDefaultComponents(){return{AppNotFound:I.bM,AppError:I.uV,AppSpin:I.gv,AppMaintaining:I.be,AppMaintainingDialog:I.tp}}constructor(e={}){this.options=e,this.eventBus=new EventTarget,this.providers=[],this.scopes={},this.components={},this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null,loadAppList:null},this.initRequireJs(),this.defineObservableState(),this.devDynamicImport=e.devDynamicImport,this.scopes=(0,c.merge)(this.scopes,e.scopes),this.components=(0,c.merge)(this.getDefaultComponents(),e.components),this.name=this.options.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)||"main",this.apiClient=this.createApiClient(e),this.initializeExtendedState(),this.i18n=this.createI18n(e),this.router=this.createRouterManager(e),this.layoutManager=this.createLayoutManager(e),this.pluginManager=this.createPluginManager(e),this.flowEngine=new u.FlowEngine,this.flowEngine.registerModels({ApplicationModel:nD}),this.model=this.flowEngine.createModel({use:"ApplicationModel",uid:"__app_model__"}),this.context=this.flowEngine.context,this.configureRuntimeAdapters(),this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.configureBaseContext(),this.configureContext(),this.addBaseProviders(),this.addCustomProviders(),this.addFinalProviders(),this.addReactRouterComponents(),this.addProviders(e.providers||[]),this.ws=this.createWebSocketClient(e),this.ws.app=this,this.pluginSettingsManager=this.createPluginSettingsManager(e),this.addRoutes(),this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e,this.setDocumentLanguage(e)}),this.initListeners(),this.afterManagersInitialized()}}var nI=new WeakMap,nL=new WeakMap;class nD extends u.FlowModel{get app(){return this.context.app}getProviders(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,nI,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nI)||this.app.getComposeProviders()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nI)}getRouter(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,nL,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nL)||this.app.router.getRouterComponent()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nL)}render(){return this.app.maintaining&&!this.app.maintained?(0,s.jsx)(s.Fragment,{children:this.renderMaintaining()}):this.app.error&&!this.app.maintaining?(0,s.jsx)(s.Fragment,{children:this.renderError()}):(0,s.jsxs)(s.Fragment,{children:[this.renderContent(),this.app.maintaining&&this.app.maintained?this.renderMaintainingDialog():null]})}renderMaintaining(){return this.app.renderComponent("AppMaintaining",{app:this.app,error:this.app.error})}renderMaintainingDialog(){return this.app.renderComponent("AppMaintainingDialog",{app:this.app,error:this.app.error})}renderError(){return this.app.renderComponent("AppError",{app:this.app,error:this.app.error})}renderContent(){let e=this.app.getComponent("AppError",!1),t=this.getRouter(),l=this.getProviders(),o=(0,s.jsx)(t,{BaseLayout:l});if(!e)return o;let n=(e,t)=>{var l;console.error(e);let o=null==(l=t.componentStack)?void 0:l.trim();if(!o)return;let n=Error("React component stack");n.stack=o,console.error(n)};return(0,s.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:t=>(0,s.jsx)(e,{app:this.app,...t}),onError:n,children:o})}constructor(...e){super(...e),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,nI,{writable:!0,value:void 0}),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,nL,{writable:!0,value:void 0})}}nD.registerFlow({key:"appFlow",steps:{init:{async handler(e){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}});let nR=[{label:'{{t("contains")}}',value:"$includes",selected:!0},{label:'{{t("does not contain")}}',value:"$notIncludes"},{label:'{{t("is")}}',value:"$eq"},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nE=[{label:'{{t("is")}}',value:"$match",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is not")}}',value:"$notMatch",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is any of")}}',value:"$anyOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$noneOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nY=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"}],nN=[{label:"{{ t('is') }}",value:"$dateOn",selected:!0,schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is not') }}",value:"$dateNotOn",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is before') }}",value:"$dateBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is after') }}",value:"$dateAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or after') }}",value:"$dateNotBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or before') }}",value:"$dateNotAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is between') }}",value:"$dateBetween",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!0}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],nO=[{label:'{{t("=")}}',value:"$eq",selected:!0},{label:'{{t("≠")}}',value:"$ne"},{label:'{{t(">")}}',value:"$gt"},{label:'{{t("≥")}}',value:"$gte"},{label:'{{t("<")}}',value:"$lt"},{label:'{{t("≤")}}',value:"$lte"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nB=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("exists")}}',value:"$exists",noValue:!0},{label:'{{t("not exists")}}',value:"$notExists",noValue:!0}],nV=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nH=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$neq"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nq=[{label:'{{t("Yes")}}',value:"$isTruly",selected:!0,noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:'{{t("No")}}',value:"$isFalsy",noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],n$=[{label:'{{t("is any of")}}',value:"$childIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$childNotIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}}],nz=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nK=[{label:'{{t("contains")}}',value:"$includes",selected:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("does not contain")}}',value:"$notIncludes",schema:{type:"string","x-component":"Input"}},{label:'{{t("is")}}',value:"$eq",schema:{type:"string","x-component":"Input"}},{label:'{{t("is not")}}',value:"$ne",schema:{type:"string","x-component":"Input"}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0,schema:{type:"string","x-component":"Input"}}];class nU{register(e){return this.operators[e.value]=e,this}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.forEach(e=>{this.register(e)}),this}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]=l,this}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]||(this.groups[e]=[]),l.forEach(t=>{this.groups[e].some(e=>e.value===t.value)||this.groups[e].push(t)}),this}get(e){return this.operators[e]}getGroup(e){return this.groups[e]||[]}getGroups(){return this.groups}resolveOperators(e){return e?"string"==typeof e?this.getGroup(e):e:[]}resolveOperatorReferences(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(e=>"string"==typeof e?this.get(e):e).filter(e=>!!e)}constructor(e={}){this.operators={},this.groups={},Object.entries(e).forEach(e=>{let[t,l]=e;this.registerGroup(t,l)})}}let nG=new nU(e),nW=nG.getGroups(),nJ=nW;function nX(e){return nG.resolveOperators(e)}function nQ(e){if(!e)return e;let t=Array.isArray(e.operatorOverrides)?e.operatorOverrides:[];e.operatorGroup&&(e.operators=nZ(nX(e.operatorGroup),t));let l=e.operators;return"string"==typeof l?(e.operatorGroup=l,e.operators=nZ(nX(l),t)):Array.isArray(l)?e.operators=nZ(l,t):t.length>0&&(e.operators=[...t]),Array.isArray(e.children)&&e.children.forEach(e=>{e&&"object"==typeof e&&nQ(e)}),e}function nZ(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0===t.length)return e;let l=[...e];return t.forEach(e=>{let t=l.findIndex(t=>t.value===e.value);-1===t?l.push(e):l[t]=e}),l}function n0(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...t,operatorGroup:e,operators:nX(e)}}function n1(e,t){return{operators:e.flatMap(e=>{let{types:l,operators:o}=e;return nX(o).map(e=>({...e,visible:o=>{let n=l.includes(t(o));return"function"==typeof e.visible?e.visible(o)&&n:n}}))})}}let n2="CollectionSelect",n5=new Set(["name","uiSchema.title"]),n8=new Set(["Grid","Grid.Row","Grid.Col","div"]);function n4(e){return{...e.context,...e.values}}function n3(e,t){if("boolean"==typeof e)return e;if("string"!=typeof e)return!1;let l=e.replace(/^\s*\{\{\s*/,"").replace(/\s*\}\}\s*$/,""),o=n4(t),n=e=>{let t=e.trim().replace(/^\$/,"");if(!t)return!1;if(t.startsWith("!"))return!n(t.slice(1).trim());if("true"===t)return!0;if("false"===t)return!1;let l=t.match(/^([A-Za-z_$][\w$]*)\((.*)\)$/);if(l){let[,e,t]=l,n=(0,c.get)(o,e);return"function"==typeof n&&!!n(...t.split(",").map(e=>e.trim()).filter(Boolean).map(e=>e.replace(/^['"]|['"]$/g,"")))}return!!(0,c.get)(o,t)};return l.split("||").some(e=>e.split("&&").every(e=>n(e)))}function n6(e){return"string"==typeof e?t=>n3(e,t):e}function n9(e){return(null==e?void 0:e["x-hidden"])!==void 0?n6(e["x-hidden"]):(null==e?void 0:e["x-visible"])!==void 0?t=>!n3(e["x-visible"],t):void 0}function n7(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2?arguments[2]:void 0;return Object.entries(e||{}).flatMap(e=>{let[o,n]=e,i=t?`${t}.${o}`:o,r=null==n?void 0:n.properties,a=null==n?void 0:n["x-component"];if(r&&"Grid.Row"===a){let e=Object.entries(r).filter(e=>{let[,t]=e;return(null==t?void 0:t["x-component"])==="Grid.Col"}),l=e.length>0?Math.floor(24/e.length):24;return e.flatMap((e,o)=>{let[n,r]=e;return n7((null==r?void 0:r.properties)||{},t,{row:i,column:n,columnIndex:o,span:l})})}return r&&(!a||n8.has(a))?n7(r,t,l):[{name:i,schema:n,layout:l}]})}function ie(e,t){return!n5.has(e)&&(!!(null==t?void 0:t["x-component"])||(null==t?void 0:t.default)!==void 0||(null==t?void 0:t["x-hidden"])!==void 0)}function it(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n7(e).filter(e=>{let{name:t,schema:l}=e;return ie(t,l)}).map(e=>{var l;let{name:o,schema:n,layout:i}=e,r=null==n?void 0:n["x-component"];return{name:o,title:(null==n?void 0:n.title)||(null==n?void 0:n["x-content"]),component:r,Component:r?null==(l=t.components)?void 0:l[r]:void 0,componentProps:null==n?void 0:n["x-component-props"],defaultValue:null==n?void 0:n.default,description:null==n?void 0:n.description,hidden:n9(n),disabled:n6(null==n?void 0:n["x-disabled"]),options:Array.isArray(null==n?void 0:n.enum)?n.enum:void 0,required:null==n?void 0:n.required,schema:n,layout:i}})}let il=[{label:"MMMM Do YYYY",value:"MMMM Do YYYY"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"},{label:"MM/DD/YY",value:"MM/DD/YY"},{label:"YYYY/MM/DD",value:"YYYY/MM/DD"},{label:"DD/MM/YYYY",value:"DD/MM/YYYY"},{label:'{{t("Custom")}}',value:"custom"}],io=[{label:'{{t("12 hour")}}',value:"hh:mm:ss a"},{label:'{{t("24 hour")}}',value:"HH:mm:ss"}];function ii(e){return(0,c.get)(e,"uiSchema.x-component-props.picker")||"date"}function ir(e){return(0,c.get)(e,"uiSchema.x-component-props.showTime")}function ia(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("unique"===e||"primaryKey"===e)return{disabled:!l.createMainOnly||!!l.primaryKeyOnly};if("autoIncrement"===e)return{disabled:!l.createMainOnly};if(e.startsWith("reverseField."))return{disabled:!l.showReverseFieldConfig,hidden:!l.showReverseFieldConfig};if("autoCreateReverseField"===e&&(0,c.get)(t,"reverseField.key"))return{disabled:!0};if("uiSchema.x-component-props.dateFormat"===e)return{componentProps:{picker:ii(t)}};if("uiSchema.x-component-props.showTime"===e)return{hidden:"date"!==ii(t)};if("uiSchema.x-component-props.timeFormat"===e)return{hidden:"date"!==ii(t)||!1===ir(t)};if("defaultValue"===e){let e=!!(0,c.get)(t,"primaryKey")||!!(0,c.get)(t,"unique")||!!(0,c.get)(t,"autoIncrement")||!!(0,c.get)(t,"defaultToCurrentTime");return{hidden:e,...e?{value:null,hasValue:!0}:null,componentProps:{gmt:(0,c.get)(t,"uiSchema.x-component-props.gmt"),showTime:(0,c.get)(t,"uiSchema.x-component-props.showTime"),dateFormat:(0,c.get)(t,"uiSchema.x-component-props.dateFormat"),timeFormat:(0,c.get)(t,"uiSchema.x-component-props.timeFormat"),picker:(0,c.get)(t,"uiSchema.x-component-props.picker"),format:(0,c.get)(t,"uiSchema.x-component-props.format")},dataSource:(0,c.get)(t,"uiSchema.enum")}}return("precision"===e||"scale"===e)&&"decimal"!==(0,c.get)(t,"type")?{hidden:!0}:{}}function is(e){let{context:t,getValue:l,setValue:o,values:n}=e,i=!!l("primaryKey"),r=!!l("unique");if(t.createMainOnly&&i&&(!e.changedName||"primaryKey"===e.changedName)&&(!1!==l("unique")&&o("unique",!1),(0,c.has)(n,"autoIncrement")&&!0!==l("autoIncrement")&&o("autoIncrement",!0)),t.createMainOnly&&r&&i&&"unique"===e.changedName&&o("primaryKey",!1),(0,c.get)(n,"reverseField.key")&&!0!==l("autoCreateReverseField")&&o("autoCreateReverseField",!0),("uiSchema.x-component-props.picker"===e.changedName||["primaryKey","unique","autoIncrement","defaultToCurrentTime"].includes(e.changedName||""))&&null!=l("defaultValue")&&(l("primaryKey")||l("unique")||l("autoIncrement")||l("defaultToCurrentTime")||"uiSchema.x-component-props.picker"===e.changedName)&&o("defaultValue",null),!((0,c.has)(n,"uiSchema.x-component-props.picker")||(0,c.has)(n,"uiSchema.x-component-props.dateFormat")||(0,c.has)(n,"uiSchema.x-component-props.showTime")||(0,c.has)(n,"uiSchema.x-component-props.timeFormat")))return;let a=ii(n);"uiSchema.x-component-props.picker"===e.changedName&&(0,c.has)(n,"uiSchema.x-component-props.dateFormat")&&(0,c.get)(n,"uiSchema.x-component-props.dateFormat")!==(0,A.getPickerFormat)(a)&&o("uiSchema.x-component-props.dateFormat",(0,A.getPickerFormat)(a)),(0,c.has)(n,"uiSchema.x-component-props.showTime")&&"date"!==a&&!1!==ir(n)&&o("uiSchema.x-component-props.showTime",!1),(0,c.has)(n,"uiSchema.x-component-props.timeFormat")&&ir(n)&&!(0,c.get)(n,"uiSchema.x-component-props.timeFormat")&&o("uiSchema.x-component-props.timeFormat","HH:mm:ss")}function id(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[{name:"primaryKey",title:'{{t("Primary")}}',component:"Checkbox"},{name:"unique",title:'{{t("Unique")}}',component:"Checkbox"}];return e.autoIncrement&&t.push({name:"autoIncrement",title:'{{t("Auto increment")}}',component:"Checkbox"}),t}function iu(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];return!1!==e.includePicker&&t.push({name:"uiSchema.x-component-props.picker",title:'{{t("Picker")}}',component:"Radio.Group",defaultValue:"date",options:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}],hidden:e.hidden}),t.push({name:"uiSchema.x-component-props.dateFormat",title:'{{t("Date format")}}',component:"ExpiresRadio",defaultValue:"YYYY-MM-DD",options:il,componentProps:{defaultValue:"dddd",formats:["MMMM Do YYYY","YYYY-MM-DD","MM/DD/YY","YYYY/MM/DD","DD/MM/YYYY"]},hidden:e.hidden},{name:"uiSchema.x-component-props.showTime",title:'{{t("Show time")}}',component:"Checkbox",defaultValue:e.showTimeDefault,hidden:e.hidden},{name:"uiSchema.x-component-props.timeFormat",title:'{{t("Time format")}}',component:"Radio.Group",defaultValue:"HH:mm:ss",options:io,hidden:t=>!!("function"==typeof e.hidden&&e.hidden(t))||("boolean"==typeof e.hidden?e.hidden:!1===ir(t.values))}),t}function ic(){return[{name:"autoCreateReverseField",title:'{{t("Create inverse field in the target collection")}}',component:"Checkbox",defaultValue:!1},{name:"reverseField.type",title:'{{t("Inverse relationship type")}}',component:"Select",required:!0,options:[{label:"{{t('HasOne')}}",value:"hasOne"},{label:"{{t('HasMany')}}",value:"hasMany"},{label:"{{t('BelongsTo')}}",value:"belongsTo"},{label:"{{t('BelongsToMany')}}",value:"belongsToMany"}],hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,c.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.uiSchema.title",title:'{{t("Inverse field display name")}}',component:"Input",required:!0,hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,c.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.name",title:'{{t("Inverse field name")}}',component:"Input",required:!0,description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.')}}",hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,c.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}}]}let ip=ic;function im(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:e.name||"uiSchema.enum",title:e.title||'{{t("Options")}}',component:"ArrayTable"}}let ih={key:"required",label:"Required",hasValue:!1,params:[]};function ig(e){let t="date"===e?"datePicker":"inputNumber",l="date"===e?"date":"limit";return[{key:"greater",label:"Greater than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"less",label:"Less than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"max",label:"Max value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"min",label:"Min value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]}]}class iv{register(e){this.items.set(e.key,(0,c.cloneDeep)(e))}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.forEach(e=>this.register(e))}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,t)}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,[...this.groups.get(e)||[],...t])}get(e){return(0,c.cloneDeep)(this.items.get(e))}getGroup(e){return(this.groups.get(e)||[]).map(e=>"string"==typeof e?this.get(e):(0,c.cloneDeep)(e)).filter(Boolean)}constructor(){this.items=new Map,this.groups=new Map}}let iy=new iv;function i_(e){iy.register(e)}function ib(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iy.registerGroup(e,t)}function ix(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iy.addToGroup(e,t)}iy.registerMany([ih,{key:"pattern",label:"Pattern",hasValue:!0,params:[{key:"regex",label:"Regular Expression",componentType:"text",required:!0}]},{key:"email",label:"Email",hasValue:!1,params:[],paramsType:"object"},{key:"uuid",label:"UUID",hasValue:!1,params:[],paramsType:"object"},{key:"length",label:"Length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"uri",label:"URI",hasValue:!1,params:[],paramsType:"object"},{key:"multiple",label:"Multiple",hasValue:!0,params:[{key:"base",label:"Base",componentType:"inputNumber",required:!0}]},{key:"integer",label:"Integer",hasValue:!1,params:[]},{key:"precision",label:"Precision",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"unsafe",label:"Unsafe integer",hasValue:!1,params:[]},{key:"timestamp",label:"Timestamp",hasValue:!0,params:[{key:"type",label:"Type",componentType:"singleSelect",options:[{label:"JavaScript",value:"javascript"},{label:"Unix",value:"unix"}],defaultValue:"javascript"}]}]),iy.registerGroup("string",["required",{key:"max",label:"Max length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"min",label:"Min length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},"pattern","email","uuid","length","uri"]),iy.registerGroup("number",["required",...ig("number"),"multiple","integer","precision","unsafe"]),iy.registerGroup("date",["required",...ig("date"),"timestamp"]),iy.registerGroup("object",["required"]);class iM{addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.reduce((e,t)=>{if("function"!=typeof t)return e;let l=new t(this);return(null==l?void 0:l.name)&&(nQ(l.filterable),e[l.name]=l,Array.isArray(this.actionList[l.name])&&(this.actionList[l.name].forEach(e=>{var t,o;if("addComponentOption"===e.type){null==(o=l.addComponentOption)||o.call(l,e.data);return}if("registerConfigure"===e.type){l.configure=this.mergeFieldInterfaceConfigure(l.configure,e.data);return}null==(t=l.addOperator)||t.call(l,e.data)}),delete this.actionList[l.name])),e},{});Object.assign(this.collectionFieldInterfaceInstances,t)}addFieldInterfaceComponentOption(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addComponentOption)||l.call(o,t):this.enqueueAction(e,{type:"addComponentOption",data:t})}addFieldInterfaceOperator(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addOperator)||l.call(o,t):this.enqueueAction(e,{type:"addOperator",data:t})}registerFieldFilterOperator(e){nG.register(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];nG.registerGroup(e,t),this.normalizeFieldInterfaceFilterables()}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];nG.addToGroup(e,t),this.normalizeFieldInterfaceFilterables()}registerFieldValidationConfigure(e){i_(e)}registerFieldValidationConfigureGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ib(e,t)}addFieldValidationConfiguresToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ix(e,t)}getFieldValidationConfigureGroup(e){return iy.getGroup(e)}registerFieldInterfaceConfigure(e){let t=this.getFieldInterface(e.name);t?t.configure=this.mergeFieldInterfaceConfigure(t.configure,e):this.enqueueAction(e.name,{type:"registerConfigure",data:e})}getFieldInterface(e){return this.collectionFieldInterfaceInstances[e]}getFieldInterfaces(e){return Object.values(this.collectionFieldInterfaceInstances).filter(t=>!e||!t.supportDataSourceType&&!t.notSupportDataSourceType||(t.supportDataSourceType?t.supportDataSourceType.includes(e):!t.notSupportDataSourceType||!t.notSupportDataSourceType.includes(e)))}getFieldInterfaceConfigureProperties(e,t){var l;let o=this.getFieldInterfaceConfigure(e,t);return(null==o||null==(l=o.getConfigureFormProperties)?void 0:l.call(o,t))||(null==o?void 0:o.properties)||{}}getFieldInterfaceConfigure(e,t){var l,o,n;let i=this.getFieldInterface(e);if(!i)return;let r=(null==(l=i.getConfigureFormProperties)?void 0:l.call(i,t))||i.properties||{},a={name:i.name,title:i.title,group:i.group,order:i.order,default:i.default,titleUsable:i.titleUsable,isAssociation:i.isAssociation,supportDataSourceType:i.supportDataSourceType,notSupportDataSourceType:i.notSupportDataSourceType,properties:r,items:it(r,{components:null==(o=i.configure)?void 0:o.components}),getConfigureFormProperties:null==(n=i.getConfigureFormProperties)?void 0:n.bind(i)};return this.mergeFieldInterfaceConfigure(a,i.configure)}addFieldInterfaceGroups(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this.collectionFieldGroups,e)}getFieldInterfaceGroups(){return this.collectionFieldGroups}getFieldInterfaceGroup(e){return this.collectionFieldGroups[e]}enqueueAction(e,t){this.actionList[e]||(this.actionList[e]=[]),this.actionList[e].push(t)}normalizeFieldInterfaceFilterables(){Object.values(this.collectionFieldInterfaceInstances).forEach(e=>{nQ(e.filterable)})}mergeFieldInterfaceConfigure(e,t){return e?t?{...e,...t,default:t.default||e.default,properties:{...e.properties||{},...t.properties||{}},items:this.mergeFieldConfigureItems(e.items,t.items),components:{...e.components||{},...t.components||{}}}:e:t}mergeFieldConfigureItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Map;return e.forEach(e=>l.set(e.name,e)),t.forEach(e=>l.set(e.name,e)),Array.from(l.values())}constructor(e){this.dataSourceManager=e,this.collectionFieldInterfaceInstances={},this.collectionFieldGroups={},this.actionList={}}}function iw(e){return`${e}/client-v2`}function iS(e){return("default"in e?e.default:void 0)||e}function ik(e,t){window.__nocobase_app_dev_plugins__=window.__nocobase_app_dev_plugins__||{},window.__nocobase_app_dev_plugins__[e]=t}function iF(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=iw(t);window.define(o,()=>l),ik(o,l)})}function iC(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=iw(t);window.define(o,()=>l),ik(o,l)})}function iA(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[iw(t.packageName)]=t.url,e),{})})}function iP(e,t){return function(){for(var l=arguments.length,o=Array(l),n=0;n<l;n++)o[n]=arguments[n];o.forEach((t,l)=>{t&&ik(iw(e[l].packageName),t)}),t(o.map((t,l)=>[e[l].name,(null==t?void 0:t.default)||t]).filter(e=>e[1]));let i=o.map((e,t)=>e?null:t).filter(e=>null!==e).map(t=>e[t].packageName);i.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",i.join(", \r\n"))}}function iT(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iA(e,t);let l=t.map(e=>iw(e.packageName));return new Promise((o,n)=>{e.requirejs(l,iP(t,o),n)})}async function ij(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];for(let l of iI(e)){let e=await import(l.url),o=iS(e);o&&(t.push([l.name,o]),iC({[l.packageName]:e}))}return t}function iI(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Map(e.map(e=>[e.packageName,e])),l=[],o=new Set,n=new Set,i=e=>{if(!n.has(e.packageName)&&!o.has(e.packageName)){for(let l of(o.add(e.packageName),e.appDevDependencies||[])){let e=t.get(l);e&&i(e)}o.delete(e.packageName),n.add(e.packageName),l.push(e)}};return e.forEach(i),l}async function iL(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=[],o=[],n=async()=>{if(0===o.length)return;let t=await iT(e,o);l.push(...t),o=[]};for(let e of iI(t)){if("esm"===e.devMode){await n();let t=await ij([e]);l.push(...t);continue}o.push(e)}return await n(),l}async function iD(e){let{requirejs:t,pluginData:l,devDynamicImport:o}=e;if(0===l.length)return[];let n=[],i={},r={};if(o){for await(let e of l){let t=await o(e.packageName);if(t){let l=iS(t);n.push([e.name,l]),i[e.packageName]=l,r[e.packageName]=t}}iF(r)}let a=l.filter(e=>!i[e.packageName]),s=a.filter(e=>"esm"===e.devMode),d=a.filter(e=>"esm"!==e.devMode);if(0===s.length){if(0===d.length)return n;let e=await iT(t,d);return n.push(...e),n}let u=await iL(t,a);return n.push(...u),n}class iR{async init(e){await this.initStaticPlugins(e),this.loadRemotePlugins&&await this.initRemotePlugins()}getRemotePluginsRequestUrl(){return"pm:listEnabledV2"}async initStaticPlugins(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for await(let t of e){let e=Array.isArray(t)?t[0]:t,l=Array.isArray(t)?t[1]:void 0;await this.add(e,l)}}async initRemotePlugins(){var e;let t=await this.app.apiClient.request({url:this.getRemotePluginsRequestUrl()}),l=(null==t||null==(e=t.data)?void 0:e.data)||[];for await(let[e,t]of(await iD({requirejs:this.app.requirejs,pluginData:l,devDynamicImport:this.app.devDynamicImport}))){let o=l.find(t=>t.name===e);await this.add(t,o)}}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=this.getInstance(e,t);this.pluginInstances.set(e,l),t.name&&(this.pluginsAliases[t.name]=l),t.packageName&&(this.pluginsAliases[t.packageName]=l),await l.afterAdd()}get(e){return"string"==typeof e?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new e(t,this.app)}async load(){for(let e of(await this.initPlugins,this.pluginInstances.values()))await e.beforeLoad();for(let e of this.pluginInstances.values())await e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))}constructor(e,t,l){this._plugins=e,this.loadRemotePlugins=t,this.app=l,this.pluginInstances=new Map,this.pluginsAliases={},this.app=l,this.initPlugins=this.init(e||[]),this.loadRemotePlugins=t}}var iE=__webpack_require__(3939);function iY(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Set(e.map(e=>e.routeName));for(let e=t.length-1;e>=0;e-=1){let o=t[e];if(l.has(o.id))return o}return null}function iN(e){let t=(0,h.useParams)(),l=(0,h.useLocation)(),o=(0,h.useMatches)(),n=e.flowEngine;(0,p.useEffect)(()=>{var l,i,r;let a=o[o.length-1];if(!a)return;let s=iY(null==(i=e.layoutManager)||null==(l=i.listLayouts)?void 0:l.call(i),o);n.context._observableCache.route={name:a.id,pathname:a.pathname,path:(null==(r=a.handle)?void 0:r.path)||null,params:t,layoutRouteName:null==s?void 0:s.id,layoutBasePathname:null==s?void 0:s.pathname}},[e,n.context,t,o]),(0,p.useEffect)(()=>{n.context._observableCache.location=l},[n.context,l])}function iO(e){let{app:t}=e;return iN(t),null}function iB(e,t){if(!t||"/"===t)return e;let l=t.replace(/\/$/,"");return e===l?"/":e.startsWith(`${l}/`)?e.slice(l.length)||"/":e}class iV{get basename(){return this.router.basename}get state(){return this.router.state}get navigate(){return this.router.navigate}resolveLoadedComponent(e){if(e)return"function"==typeof e||"string"==typeof e?e:e.default||e.Component}createRouteLazyComponent(e){let t=p.default.lazy(()=>e().then(e=>{let t=this.resolveLoadedComponent(e);if(!t)throw Error("componentLoader must resolve to a React component or component module.");return"string"==typeof t?{default:e=>this.app.renderComponent(t,e)}:{default:t}}));return function(e){return(0,s.jsx)(p.default.Suspense,{fallback:null,children:(0,s.jsx)(t,{...e})})}}getRoutesTree(){let e={};for(let[t,l]of Object.entries(this.routes))(0,c.set)(e,t.split(".").join(".children."),{...(0,c.get)(e,t.split(".").join(".children.")),...l});let t=e=>Object.values(e).reduce((e,l)=>{if(1===Object.keys(l).length&&l.children)e.push(...t(l.children));else{let{Component:o,componentLoader:n,element:i,children:r,...a}=l,s=i;n?s=p.default.createElement(this.createRouteLazyComponent(n)):o&&(s="string"==typeof o?this.app.renderComponent(o):p.default.createElement(o));let d={...a,element:s,children:r?t(r):void 0};e.push(d)}return e},[]);return t(e)}getRoutes(){return this.routes}setType(e){this.options.type=e}getBasename(){return this.options.basename}setBasename(e){this.options.basename=e}matchRoutes(e){var t;let l=this.getRoutesTree(),o=(null==(t=this.router)?void 0:t.basename)||this.getBasename();return(0,__rspack_external_react_router_65608a1a.matchRoutes)(l,iB(e,o))}isSkippedAuthCheckRoute(e){return(this.matchRoutes(e)||[]).some(e=>{var t;return(null==e||null==(t=e.route)?void 0:t.skipAuthCheck)===!0})}getRouterComponent(e){let{type:t="browser",...l}=this.options,o={hash:h.createHashRouter,browser:h.createBrowserRouter,memory:h.createMemoryRouter},n=this.getRoutesTree(),i=(0,p.createContext)(e=>e.children),r=()=>{let t=(0,p.useContext)(i);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(iO,{app:this.app}),(0,s.jsxs)(t,{children:[(0,s.jsx)(h.Outlet,{}),e]})]})},a=()=>{throw(0,h.useRouteError)()};return this.router=o[t]([{element:(0,s.jsx)(r,{}),errorElement:(0,s.jsx)(a,{}),children:n}],l),e=>{let{BaseLayout:t=I.ct}=e;return(0,s.jsx)(i.Provider,{value:t,children:(0,s.jsx)(I.PK,{children:(0,s.jsx)(h.RouterProvider,{future:{v7_startTransition:!0},router:this.router})})})}}add(e,t){this.routes[e]={id:e,...t,handle:{path:t.path}}}get(e){return this.routes[e]}has(e){return!!this.get(e)}remove(e){delete this.routes[e]}constructor(e={},t){this.routes={},this.options=e,this.app=t,this.routes=e.routes||{}}}let iH=e=>{let{children:t}=e,{token:l}=g.theme.useToken(),o=l.colorFillTertiary,n=new n_.TinyColor(l.colorFill).onBackground(l.colorFillSecondary).toHexShortString(),i=new n_.TinyColor(l.colorFill).onBackground(l.colorFill).toHexShortString(),r=new n_.TinyColor(l.colorFill).onBackground(l.colorFill).onBackground(l.colorFill).toHexShortString();return(0,p.useEffect)(()=>{document.body.style.setProperty("--nb-spacing",`${l.marginLG}px`),document.body.style.setProperty("--nb-designer-offset",`${l.marginXS}px`),document.body.style.setProperty("--nb-header-height",`${l.sizeXXL-2}px`),document.body.style.setProperty("--nb-box-bg",l.colorBgLayout),document.body.style.setProperty("--colorBgLayout",l.colorBgLayout),document.body.style.setProperty("--colorBgContainer",l.colorBgContainer),document.body.style.setProperty("--controlHeightLG",`${l.controlHeightLG}px`),document.body.style.setProperty("--paddingContentVerticalSM",`${l.paddingContentVerticalSM}px`),document.body.style.setProperty("--marginSM",`${l.marginSM}px`),document.body.style.setProperty("--colorInfoBg",l.colorInfoBg),document.body.style.setProperty("--colorInfoBorder",l.colorInfoBorder),document.body.style.setProperty("--colorWarningBg",l.colorWarningBg),document.body.style.setProperty("--colorWarningBorder",l.colorWarningBorder),document.body.style.setProperty("--colorText",l.colorText),document.body.style.setProperty("--colorTextDescription",l.colorTextDescription),document.body.style.setProperty("--colorBgTextHover",l.colorBgTextHover),document.body.style.setProperty("--colorSplit",l.colorSplit),document.body.style.setProperty("--borderRadiusOuter",`${l.borderRadiusOuter}px`),document.body.style.setProperty("--colorTextHeaderMenu",l.colorTextHeaderMenu),document.body.style.setProperty("--colorPrimaryText",l.colorPrimaryText),document.body.style.setProperty("--colorPrimaryTextActive",l.colorPrimaryTextActive),document.body.style.setProperty("--colorPrimaryTextHover",l.colorPrimaryTextHover),document.body.style.setProperty("--colorBgSider",l.colorBgSider),document.body.style.setProperty("--colorBgSiderMenuHover",l.colorBgSiderMenuHover),document.body.style.setProperty("--colorBgSiderMenuActive",l.colorBgSiderMenuActive),document.body.style.setProperty("--colorTextSiderMenu",l.colorTextSiderMenu),document.body.style.setProperty("--colorTextSiderMenuHover",l.colorTextSiderMenuHover),document.body.style.setProperty("--colorTextSiderMenuActive",l.colorTextSiderMenuActive),document.body.style.setProperty("--colorBgScrollTrack",o),document.body.style.setProperty("--colorBgScrollBar",n),document.body.style.setProperty("--colorBgScrollBarHover",i),document.body.style.setProperty("--colorBgScrollBarActive",r),document.body.style.setProperty("--colorSettings",l.colorSettings||b.token.colorSettings),document.body.style.setProperty("--colorBgSettingsHover",l.colorBgSettingsHover),document.body.style.setProperty("--colorTemplateBgSettingsHover",l.colorTemplateBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",l.colorBorderSettingsHover),document.body.style.setProperty("--colorBgMenuItemSelected",l.colorBgHeaderMenuActive),document.body.style.setProperty("background-color",l.colorBgContainer)},[n,r,i,o,l.colorBgContainer,l.colorBgLayout,l.colorBgSettingsHover,l.colorTemplateBgSettingsHover,l.colorBorderSettingsHover,l.colorInfoBg,l.colorInfoBorder,l.colorPrimaryText,l.colorPrimaryTextActive,l.colorPrimaryTextHover,l.colorSettings,l.colorBgTextHover,l.colorSplit,l.colorText,l.colorTextDescription,l.colorWarningBg,l.colorWarningBorder,l.borderRadiusOuter,l.controlHeightLG,l.marginLG,l.marginSM,l.marginXS,l.paddingContentVerticalSM,l.sizeXXL,l.colorTextHeaderMenu,l.colorBgSider,l.colorBgSiderMenuHover,l.colorBgSiderMenuActive,l.colorTextSiderMenu,l.colorTextSiderMenuHover,l.colorTextSiderMenuActive,l.colorBgHeaderMenuActive]),t};iH.displayName="CSSVariableProvider";let iq=iH;class i$ extends nj{createApiClient(e){return new a({...e.apiClient,appName:e.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)})}configureRuntimeAdapters(){this.dataSourceManager=this.flowEngine.context.dataSourceManager,this.dataSourceManager.setRequester(this.apiClient.request.bind(this.apiClient)),this.dataSourceManager.collectionFieldInterfaceManager||this.dataSourceManager.setCollectionFieldInterfaceManager(new iM(this.dataSourceManager))}createI18n(e){if(e.i18n)return e.i18n;let t=(0,__rspack_external_i18next.createInstance)();return t.use(m.initReactI18next).init({lng:"en-US",defaultNS:"client",resources:{},keySeparator:!1,nsSeparator:!1}),t}createRouterManager(e){var t;let l=new iV(e.router,this);if((null==(t=e.router)?void 0:t.basename)===void 0){let e=this.getPublicPath(),t="/"===e?void 0:e.replace(/\/$/,"");t&&l.setBasename(t)}return l}createPluginManager(e){return new iR(e.plugins||[],!!e.loadRemotePlugins,this)}createPluginSettingsManager(e){return new iE.mz(this)}async load(){try{this.hasLoadError=!1,await this.loadWebSocket(),await this.pm.load(),await this.flowEngine.flowSettings.load()}catch(i){var e,t,l,o,n;this.hasLoadError=!0,(null==i||null==(o=i.response)||null==(l=o.data)||null==(t=l.errors)||null==(e=t[0])?void 0:e.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&await new Promise(e=>{setTimeout(()=>e(null),1e3)}),this.error={code:"LOAD_ERROR",...null==(n=this.apiClient.toErrMessages(i))?void 0:n[0]},console.error(i,this.error)}this.updateFavicon()}async loadWebSocket(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",e=>{var t,l,o,n;if(!e.data)return;let i=JSON.parse(e.data);if(null==i||null==(t=i.payload)?void 0:t.refresh)return void globalThis.window.location.reload();if("notification"===i.type){let e=this.context.notification;null==(o=e[(null==(n=i.payload)?void 0:n.type)||"info"])||o.call(e,{message:null==(l=i.payload)?void 0:l.message});return}if("maintaining"===i.type&&"APP_RUNNING"!==i.payload.code)this.setMaintaining(!0),this.error=i.payload;else{this.hasLoadError&&globalThis.window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;let e=i.type;if(!e)return;let t=`ws:message:${e}`;this.eventBus.dispatchEvent(new CustomEvent(t,{detail:i.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{let e=this.apiClient.auth.token;e&&this.setTokenInWebSocket({token:e,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()}addCustomProviders(){this.use(iq)}addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.dataSourceManager.addFieldInterfaces(e)}addFieldInterfaceGroups(e){return this.dataSourceManager.addFieldInterfaceGroups(e)}addFieldInterfaceComponentOption(e,t){return this.dataSourceManager.addFieldInterfaceComponentOption(e,t)}addFieldInterfaceOperator(e,t){return this.dataSourceManager.addFieldInterfaceOperator(e,t)}registerFieldFilterOperator(e){return this.dataSourceManager.registerFieldFilterOperator(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.registerFieldFilterOperatorGroup(e,t)}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.addFieldFilterOperatorsToGroup(e,t)}registerFieldValidationConfigure(e){var t,l;return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigure)?void 0:t.call(l,e)}registerFieldValidationConfigureGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigureGroup)?void 0:t.call(l,e,o)}addFieldValidationConfiguresToGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.addFieldValidationConfiguresToGroup)?void 0:t.call(l,e,o)}constructor(...e){super(...e),this.hasLoadError=!1}}let iz=(0,p.createContext)(null);iz.displayName="ApplicationContext";class iK extends i${constructor(e={}){super({router:{type:"memory",initialEntries:["/"]},...e}),this.apiMock=new __rspack_external_axios_mock_adapter_69845b81.default(this.apiClient.axios),this.ws=new iU(e.ws||{})}}class iU extends np{connect(){}close(){}send(){}on(e,t,l){this.eventBus.addEventListener(e,e=>t({data:JSON.stringify(e.detail)}),l)}emit(e,t){this.eventBus.dispatchEvent(new CustomEvent(e,{detail:t}))}off(e,t,l){this.eventBus.removeEventListener(e,t,l)}removeAllListeners(){}constructor(e){super(e),this.eventBus=new EventTarget}}function iG(e){return new iK(e)}class iW{get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}get ai(){return this.app.aiManager}async afterAdd(){}async beforeLoad(){}async load(){}t(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.app.i18n.t(e,{ns:null==(t=this.options)?void 0:t.packageName,...l})}constructor(e,t){this.options=e,this.app=t,this.options=e,this.app=t}}var iJ=__webpack_require__(6553),iX=__webpack_require__(4244);function iQ(e){return"steps"in e&&e.steps||{}}function iZ(e){let t=iQ(e);for(let e of["saveResource","submit","request","apply","save"]){var l;if(Object.prototype.hasOwnProperty.call(t,e)&&(null==(l=t[e])?void 0:l.result)!=null)return t[e].result}let o=Object.entries(t).filter(e=>{let[t,l]=e;return"afterSuccess"!==t&&(null==l?void 0:l.result)!=null}).map(e=>{let[,t]=e;return t.result});return o[o.length-1]}function i0(e){if(!i1(e))return;let t=i2(e);if(t())return(0,u.createRecordMetaFactory)(t,e.t("Response record"),()=>{let l=t(),o=iZ(e);if(l&&o)try{let e=l.getFilterByTK(o);if(null==e)return;return{collection:l.name,dataSourceKey:l.dataSourceKey||"main",filterByTk:e}}catch(e){return}})}function i1(e){var t;if(Object.prototype.hasOwnProperty.call(iQ(e),"saveResource"))return!0;let{model:l,flowKey:o}=e;return!!l&&"function"==typeof l.getFlow&&!!o&&Object.prototype.hasOwnProperty.call((null==(t=l.getFlow(o))?void 0:t.steps)||{},"saveResource")}function i2(e){return()=>{var t,l;return(null==(t=e.blockModel)?void 0:t.collection)||e.collection||(null==(l=e.model)?void 0:l.collection)||null}}function i5(e){let t=i0(e);if(!t){var l;return(null==(l=e.getPropertyMetaTree)?void 0:l.call(e))||[]}let o=new u.FlowContext;return o.addDelegate(e),o.defineProperty("responseRecord",{get:()=>iZ(e),cache:!1,resolveOnServer:(0,u.createRecordResolveOnServerWithLocal)(i2(e),()=>iZ(e)),meta:t}),o.getPropertyMetaTree()}function i8(e){let t=(0,u.useFlowSettingsContext)(),l=(0,p.useMemo)(()=>()=>i5(t),[t]);return(0,s.jsx)(iX.n,{...e,metaTree:l})}let i4=(0,u.defineAction)({name:"afterSuccess",title:(0,u.tExpr)("After successful submission"),defineProperties(e){let t=i0(e);return{responseRecord:{get:()=>iZ(e),cache:!1,resolveOnServer:(0,u.createRecordResolveOnServerWithLocal)(i2(e),()=>iZ(e)),...t?{meta:t}:{}}}},uiSchema:{successMessage:{type:"string",title:(0,u.tExpr)("Popup message"),"x-decorator":"FormItem","x-component":"Input.TextArea"},manualClose:{type:"boolean",title:(0,u.tExpr)("Message popup close method"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,u.tExpr)("Automatic close"),value:!1},{label:(0,u.tExpr)("Manually close"),value:!0}]},actionAfterSuccess:{type:"string",title:(0,u.tExpr)("Action after successful submission"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,u.tExpr)("Stay on the current popup or page"),value:"stay"},{label:(0,u.tExpr)("Return to the previous popup or page"),value:"previous"},{label:(0,u.tExpr)("Close popup and redirect to"),value:"redirect"}]},redirectTo:{type:"string",title:(0,u.tExpr)("Link"),"x-decorator":"FormItem","x-component":i8,"x-reactions":{dependencies:["actionAfterSuccess"],fulfill:{state:{visible:"{{$deps[0]==='redirect'}}"}}}}},defaultParams:{successMessage:(0,u.tExpr)("Saved successfully"),manualClose:!1,actionAfterSuccess:"previous"},async handler(e,t){let{successMessage:l,manualClose:o=!1,actionAfterSuccess:n="previous",redirectTo:i}=t;"previous"===n&&e.view&&e.view.close();let r=t=>{if(e.engine){let t=e.engine;for(;t.nextEngine;)t=t.nextEngine;let l=[],o=t;for(;o;)l.push(o),o=o.previousEngine;for(let e of l)e.destroyView()}e.router.navigate(t)},a=e=>{if((0,A.isURL)(e)){window.location.href=e;return}r(e)};if(l){let t=e.t(l);if(o)return void await e.modal.success({title:t,onOk:async()=>{"redirect"===n&&i&&a(i)}});e.message.success(t)}"redirect"===n&&i&&a(i)}}),i3=(0,u.defineAction)({name:"confirm",title:(0,u.tExpr)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,u.tExpr)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,u.tExpr)("Title"),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:2}},content:{type:"string",title:(0,u.tExpr)("Content"),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:3}}},defaultParams:{enable:!1,title:(0,u.tExpr)("Please Confirm"),content:(0,u.tExpr)("Are you sure you want to perform the action?")},async handler(e,t){t.enable&&(await e.modal.confirm({title:e.t(t.title,{ns:"lm-flow-engine"}),content:e.t(t.content,{ns:"lm-flow-engine"}),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||e.exit())}});var i6=__webpack_require__(9078),i9=__webpack_require__(6859);let i7={__nocobaseDataScopeNull__:!0},re="{{$nRole}}",rt=/^\s*\{\{\s*ctx\.role\s*\}\}\s*$/;function rl(e){return"string"==typeof e&&rt.test(e)}function ro(e){return e&&"object"==typeof e&&!Array.isArray(e)&&!0===e.__nocobaseDataScopeNull__&&1===Object.keys(e).length}function rn(e){return ro(e)?null:Array.isArray(e)?e.map(e=>rn(e)):e&&"object"==typeof e?Object.keys(e).reduce((t,l)=>(t[l]=rn(e[l]),t),{}):e}function ri(e){var t;return!!(0,u.isVariableExpression)(e)&&(null==(t=(0,u.extractPropertyPath)(e))?void 0:t[0])==="urlSearchParams"}function rr(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){if("path"in e&&"operator"in e){if(rl(e.value)){t.value=re;return}(0,u.isVariableExpression)(e.value)&&!ri(e.value)&&(void 0===t.value||null===t.value||""===t.value)&&(t.value=i7);return}Array.isArray(e.items)&&Array.isArray(t.items)&&e.items.forEach((e,l)=>{rr(e,t.items[l])})}}function ra(e,t){let l=c.default.cloneDeep(t);return rr(e,l),rn((0,u.pruneFilter)((0,A.transformFilter)(l)))}var rs=__webpack_require__(3728),rd=__webpack_require__(9613);function ru(e,t){return e.length===t.length&&e.every((e,l)=>e===t[l])}function rc(e,t){return!(e.length>t.length)&&e.every((e,l)=>e===t[l])}function rp(e){let t=new Map;for(let l of e)(null==l?void 0:l.length)&&t.set((0,rs.Qc)(l),l);return Array.from(t.values())}function rm(e){let t=rp(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rc(e,t)))}function rh(e){let t=Array.isArray(e)?e:[],l=[];for(let e of t){if("string"!=typeof e)continue;let[t,o]=e.split(":"),n=Number(o);!t||Number.isNaN(n)||l.push({name:t,index:n})}return l}function rf(e){var t;let l=null==e?void 0:e.model;return rh((null==l||null==(t=l.context)?void 0:t.fieldIndex)??(null==e?void 0:e.fieldIndex))}function rg(e,t){let l=e.length-1-t;if(l<0)return null;let o=[];for(let t=0;t<=l;t++)o.push(e[t].name,e[t].index);return o}function rv(e,t){let l=rg(e,t);return(null==l?void 0:l.length)?l.slice(0,-1):null}function ry(e){return(0,rs.EA)(e).filter(e=>"object"!=typeof e)}function r_(e){return(0,rs.c1)(e)}function rb(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=e,o=Array.isArray(null==l?void 0:l.changedPaths)?l.changedPaths:[],n=[];for(let e of o){if(Array.isArray(e)){if(1===e.length&&"string"==typeof e[0]){let t=(0,rs.c1)(e[0]);t.length&&n.push(t);continue}let t=e.filter(e=>"string"==typeof e||"number"==typeof e);t.length&&n.push(t);continue}"string"==typeof e&&e&&n.push((0,rs.c1)(e))}if(n.length)return n;let i=null==l?void 0:l.changedValues;if(i&&"object"==typeof i&&(t.includeArrayChangedValues||!Array.isArray(i)))for(let e of Object.keys(i)){let t=(0,rs.c1)(e);t.length&&n.push(t)}return n}function rx(e){var t,l;let o=e;return!!o&&"object"==typeof o&&!!o.emitter&&"function"==typeof o.emitter.on&&"function"==typeof o.emitter.off&&(!!o.formValueRuntime||!!(null==(t=o.context)?void 0:t.form)||"function"==typeof(null==(l=o.context)?void 0:l.setFormValues))}function rM(e){var t;let l=[],o=e=>{e&&!l.includes(e)&&l.push(e)},n=e.model;o(null==n||null==(t=n.context)?void 0:t.blockModel),o(e.model);let i=null==n?void 0:n.parent;for(;i;)o(i),i=null==i?void 0:i.parent;return l.find(rx)||null}var rw=__webpack_require__(8709);function rS(e){if(Array.isArray(e)){let t=e.filter(e=>"string"==typeof e&&!!e);return t.length?t:"id"}return"string"==typeof e&&e?e:"id"}function rk(e){var t,l;return rS((null==e||null==(t=e.targetCollection)?void 0:t.filterTargetKey)??(null==e||null==(l=e.targetCollection)?void 0:l.filterByTk)??(null==e?void 0:e.targetKey))}function rF(e){var t,l,o,n,i,r,a,s,d,u;let c=e.model;return(null==c||null==(o=c.context)||null==(l=o.blockModel)||null==(t=l.context)?void 0:t.collection)??(null==c||null==(r=c.context)||null==(i=r.formBlock)||null==(n=i.context)?void 0:n.collection)??(null==c||null==(a=c.context)?void 0:a.rootCollection)??(null==e?void 0:e.rootCollection)??(null==e?void 0:e.collection)??(null==c||null==(d=c.context)||null==(s=d.collectionField)?void 0:s.collection)??(null==c||null==(u=c.context)?void 0:u.collection)}function rC(e){var t,l,o,n,i,r,a,s,d,u,c,p;let m=e.model;return rS((null==m||null==(l=m.context)||null==(t=l.collection)?void 0:t.filterTargetKey)??(null==m||null==(n=m.context)||null==(o=n.collection)?void 0:o.filterByTk)??(null==m||null==(a=m.context)||null==(r=a.collectionField)||null==(i=r.targetCollection)?void 0:i.filterTargetKey)??(null==m||null==(u=m.context)||null==(d=u.collectionField)||null==(s=d.targetCollection)?void 0:s.filterByTk)??(null==m||null==(p=m.context)||null==(c=p.collectionField)?void 0:c.targetKey))}function rA(e,t){let l=rF(e),o=rC(e);return t.map(e=>{let t=o;if(null==l?void 0:l.getField){var n;let o=l.getField(e.name);((null==o||null==(n=o.isAssociationField)?void 0:n.call(o))||(null==o?void 0:o.targetCollection)||(null==o?void 0:o.targetKey))&&(t=rk(o),l=null==o?void 0:o.targetCollection)}return{...e,filterTargetKey:t}})}function rP(e,t,l){let o=e.length-1-t;if(o<0)return;let n=e[o],i=null==n?void 0:n.filterTargetKey,r=Array.isArray(i)?i.map(e=>[e]):"string"==typeof i&&i?[[i]]:[];return{entries:e.slice(0,o+1).map(e=>({...e})),tailPath:l,identityTailPaths:r}}function rT(e,t){return null!=e&&(Array.isArray(e)&&"number"==typeof t?t>=0&&t<e.length:"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t))}function rj(e,t){let l=e;for(let e of t){if(!rT(l,e))return{found:!1};l=l[e]}return{found:!0,value:l}}function rI(e){let t=e;return(null==t?void 0:t.allValuesSnapshot)??(null==t?void 0:t.allValues)}function rL(e,t){return e&&"object"==typeof e?(0,rw.r5)(e,t):null}function rD(e){let t=[];for(let l of e.entries)t.push(l.name,l.index);return t}function rR(e,t,l,o){if(null==l?void 0:l.rowDetached)return!1;let n=rD(t);if(!n.length||!t.identityTailPaths.length)return!1;let i=t.identityTailPaths.map(e=>[...n,...e]);return(o??rb(e)).some(e=>i.some(t=>rc(t,e)))}function rE(e,t,l){return Array.isArray(e)&&t?e.findIndex(e=>rL(e,l)===t):-1}function rY(e,t,l,o){let n=[],i=-1,r=[];for(let a=0;a<t.entries.length;a++){let s=t.entries[a],d=[...n,s.name],u=rj(e,d);if(!u.found||!Array.isArray(u.value))return{found:!1};let c=null==l?void 0:l[a],p=rE(u.value,c,s.filterTargetKey),m=p>=0?p:s.index;if(m<0||m>=u.value.length)return c?{found:!1,rowMissing:!0}:{found:!1};let h=u.value[m];if(c&&p<0&&!o)return{found:!1,rowMissing:!0};r.push(rL(h,s.filterTargetKey)),i=m,n=[...d,m]}return{found:!0,path:[...n,...t.tailPath],rowIndex:i,rowIdentities:r}}function rN(e,t,l){var o,n;let i=rj(rI(t),l);if(i.found)return i;let r=null==e||null==(o=e.context)?void 0:o.form;return"function"==typeof(null==r?void 0:r.getFieldValue)?{found:!0,value:r.getFieldValue(l)}:rj(null==e||null==(n=e.context)?void 0:n.formValues,l)}function rO(e,t,l,o,n){var i,r;let a=l.rowScope;if(!a)return rN(e,t,l.path);if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let s=rR(t,a,o,n);for(let l of[rI(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=rY(l,a,null==o?void 0:o.rowIdentities,s);if(e.rowMissing)return{found:!1,rowMissing:!0};if(!e.found||!e.path)continue;let t=rj(l,e.path);if(t.found)return{found:!0,value:t.value,rowIdentities:e.rowIdentities}}let d=null==e||null==(r=e.context)?void 0:r.form;return"function"==typeof(null==d?void 0:d.getFieldValue)?{found:!0,value:d.getFieldValue(l.path),rowIdentities:null==o?void 0:o.rowIdentities}:{found:!1}}function rB(e){return Array.isArray(e)?e.length:e}function rV(e,t,l){var o,n;if(!Array.isArray(e))return{found:!0,value:e};let i=null==l||null==(o=l.rowIdentities)?void 0:o[l.rowIdentities.length-1],r=null==(n=t.rowScope)?void 0:n.entries[t.rowScope.entries.length-1],a=rE(e,i,null==r?void 0:r.filterTargetKey);return a>=0?{found:!0,value:a,rowIdentities:null==l?void 0:l.rowIdentities}:i?{found:!1,rowMissing:!0}:!r||r.index<0||r.index>=e.length?{found:!1}:{found:!0,value:r.index,rowIdentities:[rL(e[r.index],r.filterTargetKey)]}}function rH(e,t,l,o,n){var i,r;if("length"===l.kind){if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let r=null==o?void 0:o.rowIdentities,a=l.rowScope;if(a){let l=rR(t,a,o,n);for(let n of[rI(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=rY(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found){r=e.rowIdentities;break}}}let s=rN(e,t,l.path);return s.found?{found:!0,value:rB(s.value),rowIdentities:r}:s}if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let a=l.rowScope;if(a){let l=rR(t,a,o,n);for(let n of[rI(t),null==e||null==(r=e.context)?void 0:r.formValues]){let e=rY(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found&&"number"==typeof e.rowIndex)return{found:!0,value:e.rowIndex,rowIdentities:e.rowIdentities}}}let s=rN(e,t,l.path);return s.found?rV(s.value,l,o):s}function rq(e,t,l){if(e.wildcard)return null;let o={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let n of e.valuePaths){let e=(0,rs.Qc)(n.path),i=rO(t,l,n);if(i.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!i.found){o.complete=!1;continue}o.values.set(e,{value:(0,c.cloneDeep)(i.value),rowIdentities:i.rowIdentities,rowDetached:!1})}for(let n of e.structuralPaths){let e=rH(t,l,n);if(e.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!e.found){o.complete=!1;continue}o.structures.set(`${n.kind}:${(0,rs.Qc)(n.path)}`,{value:(0,c.cloneDeep)(e.value),rowIdentities:e.rowIdentities,rowDetached:!1})}return o}function r$(e,t,l,o,n){if(e.wildcard)return null;let i={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let r of e.valuePaths){let e=(0,rs.Qc)(r.path),a=o.values.get(e),s=rO(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.values.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.values.set(e,{value:(0,c.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}for(let r of e.structuralPaths){let e=`${r.kind}:${(0,rs.Qc)(r.path)}`,a=o.structures.get(e),s=rH(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.structures.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.structures.set(e,{value:(0,c.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}return i}function rz(e,t){if(e.size!==t.size)return!1;for(let[o,n]of e.entries()){var l;if(!t.has(o)||!(0,c.isEqual)(n.value,null==(l=t.get(o))?void 0:l.value))return!1}return!0}function rK(e,t,l,o){if(e.wildcard||!(null==o?void 0:o.complete))return{status:"unknown",snapshot:rq(e,t,l)};let n=r$(e,t,l,o,rb(l));return(null==n?void 0:n.rowMissing)?{status:"unchanged",snapshot:{...n,rowMissing:!1}}:(null==n?void 0:n.complete)?{status:rz(o.values,n.values)&&rz(o.structures,n.structures)?"unchanged":"changed",snapshot:n}:{status:"unknown",snapshot:n}}let rU="formValuesChange",rG="__formValueDrivenDataScopeClearBindings";function rW(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set((0,rs.Qc)(o.path),o)}return Array.from(t.values())}function rJ(e){let t=rW(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rc(e.path,t.path)))}function rX(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.kind}:${(0,rs.Qc)(o.path)}`,o)}return Array.from(t.values())}function rQ(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.includeChildren?"children":"exact"}:${(0,rs.Qc)(o.path)}`,o)}return Array.from(t.values())}function rZ(){return{wildcard:!1,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function r0(){return{wildcard:!0,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function r1(e){let t=e[0];if("value"===t){let t=e.slice(1);return t.length?{wildcard:!1,valuePaths:[{path:t}],structuralPaths:[],triggerPaths:[]}:r0()}return"__is_new__"===t||"__is_stored__"===t?{wildcard:!1,valuePaths:[{path:[t]}],structuralPaths:[],triggerPaths:[]}:rZ()}function r2(e,t){var l,o;let n=rA(e,rh((null==(o=e.model)||null==(l=o.context)?void 0:l.fieldIndex)??(null==e?void 0:e.fieldIndex)));if(!n.length)return r0();let i=0,r=[...t];for(;"parentItem"===r[0];)i+=1,r=r.slice(1);let a=r[0];if(!a)return r0();if(i===n.length)return r1(r);if(i>n.length)return r0();if("value"===a){let e=rg(n,i);if(!e)return r0();let t=rv(n,i),l=r.slice(1);return{wildcard:!1,valuePaths:[{path:[...e,...l],rowScope:rP(n,i,l)}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0},...t?[{path:t,includeChildren:!1}]:[]]}}if("index"===a||"length"===a){let e=rv(n,i);return e?{wildcard:!1,valuePaths:[],structuralPaths:[{path:e,kind:a,rowScope:rP(n,i,[])}],triggerPaths:[{path:e,includeChildren:!1}]}:r0()}if("__is_new__"===a||"__is_stored__"===a){let e=rg(n,i);return e?{wildcard:!1,valuePaths:[{path:[...e,a],rowScope:rP(n,i,[a])}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0}]}:r0()}return r0()}function r5(e,t){let l={deps:new Set,wildcard:!1};(0,rd.G)(t,l);let o=[],n=[],i=[],r=l.wildcard;for(let t of l.deps){if("fv:*"===t){r=!0;continue}if(!t.startsWith("fv:")){if("ctx:item"===t||t.startsWith("ctx:item:")){let l="ctx:item"===t?"":t.slice(9),a=r2(e,l?r_(l):[]);r||(r=a.wildcard),o.push(...a.valuePaths),n.push(...a.structuralPaths),i.push(...a.triggerPaths)}continue}let l=t.slice(3);if(!l){r=!0;continue}o.push({path:r_(l)})}return{wildcard:r,valuePaths:rJ(o),structuralPaths:rX(n),triggerPaths:rQ(i)}}function r8(e){return e.wildcard||e.valuePaths.length>0||e.structuralPaths.length>0||e.triggerPaths.length>0}function r4(e){var t;let l=null==e||null==(t=e.props)?void 0:t.value;return null!=l&&(!Array.isArray(l)||l.length>0)}function r3(e,t){if(!r8(e))return!1;if(e.wildcard)return!0;let l=rb(t);if(!l.length)return!0;for(let t of l){for(let l of e.valuePaths)if(rc(l.path,t)||rc(t,l.path))return!0;for(let l of e.structuralPaths)if(ru(l.path,t)||rc(t,l.path))return!0;for(let l of e.triggerPaths)if(l.includeChildren&&(rc(l.path,t)||rc(t,l.path))||!l.includeChildren&&ru(l.path,t))return!0}return!1}function r6(e,t){let l=e=>e.map(e=>(0,rs.Qc)(e.path)).sort(),o=e=>e.map(e=>`${e.kind}:${(0,rs.Qc)(e.path)}`).sort();return JSON.stringify({formBlockUid:null==t?void 0:t.uid,wildcard:e.wildcard,valuePaths:l(e.valuePaths),structuralPaths:o(e.structuralPaths),triggerPaths:e.triggerPaths.map(e=>`${e.includeChildren?"children":"exact"}:${(0,rs.Qc)(e.path)}`).sort()})}function r9(e){var t,l;return(t=e)[l=rG]||(t[l]=new Map)}function r7(e){return rM(e)}function ae(e){var t,l;if(!r4(e))return;let o=Array.isArray(null==e||null==(t=e.props)?void 0:t.value)?[]:null;"function"==typeof e.change?e.change(o):"function"==typeof(null==e||null==(l=e.props)?void 0:l.onChange)&&e.props.onChange(o)}function at(e){var t;return!!e&&"object"==typeof e&&"function"==typeof(null==e||null==(t=e.props)?void 0:t.onChange)}function al(e,t){let l=r9(e).get(t);l&&l.dispose()}function ao(e,t){var l,o,n,i,r,a;let s=e.model,d=null==e?void 0:e.flowKey;if(!at(s)||!d)return;let u="dataScope",c=`${d}:${u}`,p=r5(e,t);if(!r8(p))return void al(s,c);let m=r7(e);if(!m)return void al(s,c);let h=r6(p,m),f=r9(s),g=f.get(c);if((null==g?void 0:g.signature)===h)return;g&&g.dispose();let v=(null==s||null==(l=s.flowEngine)?void 0:l.emitter)||(null==e||null==(o=e.engine)?void 0:o.emitter)||(null==s||null==(i=s.context)||null==(n=i.engine)?void 0:n.emitter),y={signature:h,snapshot:rq(p,m),dispose:()=>{}},_=()=>{var e,t,l,o;null==(t=m.emitter)||null==(e=t.off)||e.call(t,rU,b),null==v||null==(l=v.off)||l.call(v,"model:unmounted",x),null==v||null==(o=v.off)||o.call(v,"model:destroyed",M),f.get(c)===y&&f.delete(c)},b=e=>{var t;if(s.disposed||m.disposed)return void _();if(!r3(p,e))return;let l=rK(p,m,e,y.snapshot);(null==(t=l.snapshot)?void 0:t.complete)&&(y.snapshot=l.snapshot),"unchanged"===l.status||r4(s)&&ae(s)},x=e=>{let{model:t}=e;(t===m||t===s&&s.disposed)&&_()},M=e=>{let{model:t}=e;(t===s||t===m)&&_()};y.dispose=_,f.set(c,y),m.emitter.on(rU,b),null==v||null==(r=v.on)||r.call(v,"model:unmounted",x),null==v||null==(a=v.on)||a.call(v,"model:destroyed",M)}let an=(0,u.defineAction)({name:"dataScope",title:(0,u.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function(e){let t=(0,u.useFlowSettingsContext)();return(0,s.jsx)(i6.I8,{value:e.value,FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:t.model,rightAsVariable:!0,maxAssociationFieldDepth:t.model instanceof i9.o?void 0:2})})}}},defaultParams:e=>({filter:{logic:"$and",items:[]}}),useRawParams:!0,async handler(e,t){var l;let o=null==(l=e.model)?void 0:l.resource;if(!o)return;let n=await e.resolveJsonTemplate(t.filter),i=ra(t.filter,n);ao(e,t.filter),(0,A.isEmptyFilter)(i)?o.removeFilterGroup(e.model.uid):o.addFilterGroup(e.model.uid,i)}});var ai=__webpack_require__(5042),ar=__webpack_require__(8481);class aa extends u.FlowModel{static getAllParentClasses(){let e=[],t=this;for(;t&&t!==Object;)(null==(t=Object.getPrototypeOf(t))?void 0:t.currentModels)&&e.push(t);return e}static get currentModels(){return Object.prototype.hasOwnProperty.call(this,"_models")&&this._models||(this._models=new Map),this._models}static get models(){let e=new Map;for(let t of this.getAllParentClasses())for(let[l,o]of t.currentModels)e.set(l,o);for(let[t,l]of this.currentModels)e.set(t,l);return e}static registerActionModels(e){for(let[t,l]of Object.entries(e))Object.defineProperty(l,"name",{value:t}),this.currentModels.set(t,l)}static isActionModelVisible(e,t){var l;let o=t.collection||(null==(l=t.blockModel)?void 0:l.collection),n=(0,ar.GX)(e);return(0,ar.F3)(o,n)}static async defineChildren(e){let t=this.baseClass?await (0,u.buildSubModelItems)(this.baseClass)(e):[],l=[],o=t.filter(t=>{let l=e.engine.getModelClass(t.useModel);return!!this.isActionModelVisible(l,e)&&(!this.scene||l._isScene(this.scene))});for(let[t,n]of this.models){if(!this.isActionModelVisible(n,e)||o.find(e=>e.useModel===n.name))continue;let t=await (0,u.buildSubModelItem)(n,e);t&&l.push(t)}return c.default.sortBy([...o,...l],"sort")}}class as extends aa{}as.baseClass=ai.S0,as.scene=ai.s5.collection;class ad extends aa{}ad.baseClass=ai.S0,ad.scene=ai.s5.record;var au=__webpack_require__(7827);class ac extends u.FlowModel{static defineChildren(e){let t=this.itemModelName,l=this.maxAssociationFieldDepth??2,o=function(n){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return r>=l?[]:n.getToOneAssociationFields().map(n=>{let a=i?`${i}.${n.name}`:n.name,s=r+1;return n.targetCollection?{key:`${a}-assocationField`,label:n.title,children:()=>[{key:`${a}-children-collectionField`,label:e.t("Display fields"),type:"group",children:n.targetCollection.getFields().map(o=>{var n;if(s>=l&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return;let i=`${a}.${o.name}`,r=u.DisplayItemModel.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!r)return;let d=r.modelName;return{key:`c-${a}.${o.name}`,label:o.title,useModel:t,toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===i},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:e.collection.dataSourceKey,collectionName:e.prefixFieldPath?e.blockModel.context.collection.name:e.collection.name,fieldPath:i,associationPathName:a}}},subModels:{field:{use:d}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(o(n.targetCollection,a,s)||[]).filter(Boolean)}].filter(e=>{var t;return e.key!==`${a}-children-associationField`||(null==(t=e.children)?void 0:t.length)>0})}:void console.error(`AssociationFieldGroupModel: target collection ${n.target} not found for field ${n.name}`)}).filter(Boolean)};return o(e.collection,e.prefixFieldPath)}}function ap(e){return["multipleSelect","checkboxGroup"].includes(null==e?void 0:e.interface)||["array","json","jsonb"].includes(null==e?void 0:e.type)}function am(e){return e.context}function ah(e,t){var l;let o=e[t]||(null==(l=am(e))?void 0:l[t]);return o&&"object"==typeof o?o:void 0}function af(e){var t,l,o;let n=null==(t=am(e))?void 0:t.dataSourceManager;return n||(null==(o=e.flowEngine)||null==(l=o.context)?void 0:l.dataSourceManager)}function ag(e){return{operatorGroup:e.operatorGroup,operators:Array.isArray(e.operators)?[...e.operators]:e.operators,operatorOverrides:Array.isArray(e.operatorOverrides)?[...e.operatorOverrides]:e.operatorOverrides}}function av(e){if(!1===e)return[];if(!e||"object"!=typeof e)return;let t=nQ(ag(e));return Array.isArray(null==t?void 0:t.operators)&&t.operators.length>0?t.operators:Array.isArray(null==t?void 0:t.operatorOverrides)&&t.operatorOverrides.length>0?t.operatorOverrides:void 0}function ay(e,t){var l;let o="string"==typeof(null==t?void 0:t.interface)?t.interface:void 0;if(!o)return;let n=af(e),i=null==n?void 0:n.collectionFieldInterfaceManager,r=null==i||null==(l=i.getFieldInterface)?void 0:l.call(i,o);return null==r?void 0:r.filterable}function a_(e){let t=[null==e?void 0:e.interface,null==e?void 0:e.type].filter(e=>"string"==typeof e),l=ep.II;for(let e of t){let t=l[e];if(null==t?void 0:t.length)return t}return[]}function ab(e){let t=ah(e,"collectionField"),l=ah(e,"filterField"),o=t||l;if((null==o?void 0:o.filterable)===!1)return[];let n=av(null==o?void 0:o.filterable);if(null==n?void 0:n.length)return n;let i=ay(e,o);if(!1===i)return[];let r=av(i);return(null==r?void 0:r.length)?r:a_(o)}function ax(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:aM(e);if(!t)return null;let l=ah(e,"collectionField")||ah(e,"filterField");return ab(e).find(e=>e.value===t&&(!e.visible||e.visible(l)))||null}function aM(e){var t,l,o,n,i,r;let a=ab(e);return e.operator||(null==(l=e.getStepParams)||null==(t=l.call(e,"filterFormItemSettings","defaultOperator"))?void 0:t.value)||(null==(n=e.subModels)||null==(o=n.field)?void 0:o.operator)||(null==(i=a.find(e=>e.selected))?void 0:i.value)||(null==(r=a[0])?void 0:r.value)||"$includes"}function aw(e){return!!(null==e||"string"==typeof e&&""===e.trim()||Array.isArray(e)&&0===e.filter(e=>null!=e&&("string"!=typeof e||""!==e.trim())).length)||"object"==typeof e&&e.constructor===Object&&0===Object.keys(e).length}function aS(e){return e.filterSubModels("items",e=>{var t;return!!(null==(t=e.resource)?void 0:t.supportsFilter)})}ac.itemModelName="DetailsItemModel",ac.maxAssociationFieldDepth=2,ac.define({label:'{{t("Display fields")}}'});let ak={$match:"$in",$anyOf:"$in",$notMatch:"$notIn",$noneOf:"$notIn"};function aF(e,t){var l,o,n;let i=null==e||null==(l=e.context)?void 0:l.dataSourceManager,r=null==e?void 0:e.collection;if(!i||!(null==r?void 0:r.dataSourceKey)||!(null==r?void 0:r.name)||!t)return;let a=r.name,s=t.split(".").filter(Boolean);for(let e=0;e<s.length;e+=1){let t=null==(o=i.getCollectionField)?void 0:o.call(i,`${r.dataSourceKey}.${a}.${s[e]}`);if(!t||e===s.length-1)return t;if(!(a=t.target||(null==(n=t.targetCollection)?void 0:n.name)))return}}function aC(e,t,l){let o=ak[e];if(!o)return e;let n=aF(t,l);return!n||ap(n)?e:o}async function aA(e){(null==e?void 0:e.loading)&&await new Promise(t=>{let l=()=>{e.loading?setTimeout(l,16):t()};l()})}function aP(e){if(e instanceof Error)return e.message;try{return String(e)}catch{return"Unknown error"}}class aT{async saveFilterConfigs(){await this.gridModel.saveStepParams()}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(e){let t=this.filterConfigs.filter(t=>t.filterId===e);if(0!==t.length)return{targets:t.map(e=>({targetId:e.targetId,filterPaths:e.filterPaths}))}}async prepareFiltersForTarget(e){let t=this.filterConfigs.filter(t=>t.targetId===e),l=new Set;return await Promise.all(t.map(async t=>{try{var o;let e=this.gridModel.flowEngine.getModel(t.filterId),n=null==e||null==(o=e.context)?void 0:o.blockModel;if(!n||"function"!=typeof n.prepareInitialFilterValues)return;let i=await n.prepareInitialFilterValues();!1!==i&&l.add(n)}catch(t){console.error(`Failed to prepare filter defaults for target "${e}": ${aP(t)}`)}})),l}async saveConnectFieldsConfig(e,t){let l=t.targets.map(t=>({filterId:e,targetId:t.targetId,filterPaths:t.filterPaths})),o=this.filterConfigs.filter(t=>t.filterId!==e);this.filterConfigs=[],this.filterConfigs.push(...o,...l),await this.saveFilterConfigs()}async addFilterConfig(e){if(!e.filterId||!e.targetId)return void console.error("FilterConfig must have filterId, targetId, and operator");if(!Array.isArray(e.filterPaths)||0===e.filterPaths.length)return void console.error("FilterConfig must have non-empty filterPaths array");let t=this.filterConfigs.findIndex(t=>t.filterId===e.filterId&&t.targetId===e.targetId);t>=0?this.filterConfigs[t]={...e}:this.filterConfigs.push({...e}),await this.saveFilterConfigs()}async removeFilterConfig(e){let{filterId:t,targetId:l,persist:o=!0}=e;if(!t&&!l)return console.error("At least one of filterId or targetId must be provided"),0;let n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(e=>t&&l?e.filterId!==t||e.targetId!==l:t?e.filterId!==t:!l||e.targetId!==l);let i=n-this.filterConfigs.length;return i>0&&o&&await this.saveFilterConfigs(),i}bindToTarget(e){if(!e||"string"!=typeof e)return void console.error("[NocoBase]: targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`[NocoBase]: Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.addFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with addFilterGroup method`);if("function"!=typeof t.resource.removeFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{let l=this.gridModel.flowEngine.getModel(e.filterId);if(!l)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" not found`);if(!l.getFilterValue)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" does not have getFilterValue method`);let n=l.getFilterValue();if(aw(n)){try{t.resource.removeFilterGroup(e.filterId),o.setFilterActive(e.filterId,!1)}catch(e){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${e.message}`)}return}o.setFilterActive(e.filterId,!0);let i=e.filterPaths.map(o=>({path:o,operator:aC(e.operator||aM(l),t,o),value:n}));try{if(1===i.length)t.resource.addFilterGroup(e.filterId,new u.FilterItem({path:i[0].path,operator:i[0].operator,value:i[0].value}));else if(i.length>1){let l={logic:"$or",items:i};t.resource.addFilterGroup(e.filterId,new u.FilterGroup(l))}}catch(e){console.error(`Failed to bind filter configuration to target model: ${e.message}`);return}})}unbindFromTarget(e){if(!e||"string"!=typeof e)return void console.error("targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.removeFilterGroup)return void console.error(`Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{try{t.resource.removeFilterGroup(e.filterId),"function"==typeof(null==o?void 0:o.removeFilterSource)&&o.removeFilterSource(e.filterId)}catch(e){console.error(`Failed to unbind filter configuration from target model: ${e.message}`);return}})}async refreshTargetsByFilter(e,t){if(!e)return void console.error("filterId must be provided");let l=Array.isArray(e)?e:[e];if(0===l.length||l.some(e=>!e||"string"!=typeof e))return void console.error("filterId must be non-empty string(s)");let o=this.filterConfigs.filter(e=>l.includes(e.filterId));if(0===o.length)return;let n=(null==t?void 0:t.excludeTargetIds)?new Set(t.excludeTargetIds):void 0,i=[...new Set(o.map(e=>e.targetId))].filter(e=>!(null==n?void 0:n.has(e))).map(async e=>{try{this.bindToTarget(e);let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.refresh)return void console.error(`Target model with uid "${e}" does not have a valid resource with refresh method`);let l=t,o=t.resource,n=l.getDataLoadingMode();if("manual"===n&&!l.hasActiveFilters()){o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1;return}await aA(o),"function"==typeof o.setPage&&o.setPage(1),await o.refresh()}catch(t){console.error(`Failed to refresh target model "${e}": ${t.message}`);return}});await Promise.all(i)}constructor(e,t){this.gridModel=e,this.filterConfigs=t||[]}}function aj(e){let{rows:t={},sizes:l={},layout:o,renderItem:n,rowGap:i=16,colGap:r=16,dragOverlayRect:a}=e,d=o||(0,u.normalizeGridLayout)({rows:t,sizes:l});return d.rows.length?(0,s.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:i},"data-grid-root":!0,children:[a&&(0,s.jsx)(aD,{rect:a}),(0,s.jsx)(aI,{rows:d.rows,renderItem:n,rowGap:i,colGap:r,parentPath:[]})]}):(0,s.jsx)("div",{style:{position:"relative"},"data-grid-root":!0,"data-grid-empty-container":!0,children:a&&(0,s.jsx)(aD,{rect:a})})}function aI(e){let{rows:t,renderItem:l,rowGap:o,colGap:n,parentPath:i}=e;return(0,s.jsx)(s.Fragment,{children:t.map(e=>{let t=e.cells.length,r=e.sizes||[],a=r.some(e=>null!=e&&void 0!==e),d=[...i,{rowId:e.id}],u=e.cells.map((e,l)=>{if(!a)return 24/t;{let e=r.reduce((e,t)=>e+(t||0),0),o=t-r.filter(Boolean).length,n=o>0?(24-e)/o:0;return r[l]??n}});return(0,s.jsx)(g.Row,{gutter:n,"data-grid-row-id":e.id,"data-grid-path":JSON.stringify(d),children:e.cells.map((t,i)=>(0,s.jsx)(aL,{rowKey:e.id,columnIndex:i,span:u[i],rowGap:o,colGap:n,cell:t,path:[...d.slice(0,-1),{rowId:e.id,cellId:t.id}],renderItem:l},t.id))},e.id)})})}let aL=p.default.memo(function(e){var t;let{rowKey:l,columnIndex:o,span:n,rowGap:i,colGap:r,cell:a,path:d,renderItem:c}=e,p=a.items||[];return(0,s.jsx)(g.Col,{span:n,"data-grid-column-row-id":l,"data-grid-column-index":o,"data-grid-path":JSON.stringify(d),children:(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:[p.map((e,t)=>e===u.EMPTY_COLUMN_UID?null:(0,s.jsx)("div",{"data-grid-item-row-id":l,"data-grid-column-index":o,"data-grid-item-index":t,"data-grid-item-uid":e,"data-grid-path":JSON.stringify(d),children:c(e)},e)),(null==(t=a.rows)?void 0:t.length)?(0,s.jsx)(aI,{rows:a.rows,renderItem:c,rowGap:i,colGap:r,parentPath:d}):null]})})});function aD(e){let{rect:t}=e,l={position:"absolute",top:t.top,left:t.left,width:t.width,height:t.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"item-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"}};return(0,s.jsx)("div",{style:{...l,...o[t.type]}})}aL.displayName="GridColumn";let aR=e=>{let{value:t,onChange:l,rows:o=10,...n}=e,[i,r]=(0,p.useState)(()=>t?JSON.stringify(t,null,2):""),[a,d]=(0,p.useState)(null);(0,p.useEffect)(()=>{r(t?JSON.stringify(t,null,2):"")},[t]);let u=e=>{let t=e.target.value;r(t);try{let e=t.trim()?JSON.parse(t):void 0;d(null),null==l||l(e)}catch(e){d(e.message)}};return(0,s.jsxs)("div",{children:[(0,s.jsx)(g.Input.TextArea,{value:i,autoSize:{minRows:o,maxRows:o+10},onChange:u,...n}),a&&(0,s.jsx)(g.Alert,{type:"error",message:a,showIcon:!0,style:{marginTop:8}})]})},aE=(0,ly.connect)(aR),aY="gridSettings",aN="grid",aO=e=>{if(!e)return null;if("number"==typeof e.clientX&&"number"==typeof e.clientY)return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){let t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){let t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class aB extends u.FlowModel{onInit(e){super.onInit(e),this.props.dragOverlayRect&&this.setProps("dragOverlayRect",null)}bindDragDocumentListeners(){var e;let t=(null==(e=this.getDragContainer())?void 0:e.ownerDocument)||("u"<typeof document?null:document);if(!t)return;let l={capture:!0,passive:!0},o={capture:!0},n=t.defaultView;return t.addEventListener("pointermove",this.updateDragPointerPosition,l),t.addEventListener("mousemove",this.updateDragPointerPosition,l),t.addEventListener("touchmove",this.updateDragPointerPosition,l),t.addEventListener("scroll",this.handleDragScroll,l),null==n||n.addEventListener("scroll",this.handleDragScroll,l),()=>{t.removeEventListener("pointermove",this.updateDragPointerPosition,o),t.removeEventListener("mousemove",this.updateDragPointerPosition,o),t.removeEventListener("touchmove",this.updateDragPointerPosition,o),t.removeEventListener("scroll",this.handleDragScroll,o),null==n||n.removeEventListener("scroll",this.handleDragScroll,o)}}deriveRowOrder(e,t){let l=[],o=new Set;return(t||Object.keys(e)).forEach(t=>{e[t]&&!o.has(t)&&(l.push(t),o.add(t))}),Object.keys(e).forEach(e=>{o.has(e)||(l.push(e),o.add(e))}),l}normalizeRowsWithOrder(e,t){let l=this.deriveRowOrder(e,t),o={};return l.forEach(t=>{e[t]&&(o[t]=e[t])}),Object.keys(e).forEach(t=>{o[t]||(o[t]=e[t])}),{rows:o,rowOrder:l}}orderSizesByRowOrder(e,t){let l={};return t.forEach(t=>{e[t]&&(l[t]=e[t])}),Object.keys(e).forEach(t=>{l[t]||(l[t]=e[t])}),l}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings={showBackground:!1,showDragHandle:!0,...this.itemFlowSettings}),this._memoItemFlowSettings}getItemUids(){return(this.subModels.items||[]).map(e=>e.uid)}normalizeLayoutFromSource(e){let t=this.getStepParams(aY,aN)||{};return(0,u.normalizeGridLayout)({layout:(null==e?void 0:e.layout)??this.props.layout??t.layout,rows:(null==e?void 0:e.rows)??this.props.rows??t.rows,sizes:(null==e?void 0:e.sizes)??this.props.sizes??t.sizes,rowOrder:(null==e?void 0:e.rowOrder)??this.props.rowOrder??t.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}getGridLayout(){return this.normalizeLayoutFromSource()}serialize(){let e=super.serialize();return e.props=c.default.omit(e.props,["dragOverlayRect"]),e}syncLayoutProps(e){let t=(0,u.projectLayoutToLegacyRows)(e);this.setProps("layout",e),this.setProps("rows",t.rows),this.setProps("sizes",t.sizes),this.setProps("rowOrder",t.rowOrder)}setGridStepLayout(e){this.setStepParams(aY,{[aN]:{layout:e}})}findLayoutRowByPath(e,t){if(!(null==t?void 0:t.length))return null;let l=e.rows;for(let e=0;e<t.length;e+=1){let o=t[e],n=l.find(e=>e.id===o.rowId);if(!n)break;if(e===t.length-1)return n;let i=n.cells.find(e=>e.id===o.cellId);l=(null==i?void 0:i.rows)||[]}return null}collectCellItemsForResize(e){return Array.isArray(e.items)?[...e.items]:(e.rows||[]).flatMap(e=>e.cells.flatMap(e=>this.collectCellItemsForResize(e)))}buildResizedCells(e,t){let l=new Set;return t.map((t,o)=>{let n=e.cells.findIndex((e,o)=>!l.has(o)&&c.default.isEqual(this.collectCellItemsForResize(e),t));if(-1!==n){l.add(n);let o=e.cells[n];return o.rows&&!o.items?c.default.cloneDeep(o):{id:o.id,items:[...t]}}return{id:`${e.id}:cell:${o}:${(0,nx.uid)()}`,items:[...t]}})}getResizeRowPath(e){if(!(null==e?void 0:e.length))return[];let t=e.map(e=>({...e}));return delete t[t.length-1].cellId,t}getResizeContainerWidth(e){var t,l,o;let n=this.getResizeRowPath(e),i=(null==(t=this.gridContainerRef.current)?void 0:t.clientWidth)||0;if(!n.length)return i;let r=Array.from((null==(l=this.gridContainerRef.current)?void 0:l.querySelectorAll("[data-grid-row-id]"))||[]).find(e=>{try{return c.default.isEqual(JSON.parse(e.dataset.gridPath||"[]"),n)}catch{return!1}});return(null==r||null==(o=r.parentElement)?void 0:o.clientWidth)||i}prunePlaceholderOnlyRows(e){let t=e=>e.map(e=>{let l=e.cells.map((l,o)=>{var n,i;let r=(null==(n=e.sizes)?void 0:n[o])??1;if(null==(i=l.rows)?void 0:i.length){let e=t(l.rows);return e.length?{cell:{...l,rows:e},size:r,hasRealItem:!0}:null}let a=l.items||[],s=a.some(e=>e!==u.EMPTY_COLUMN_UID),d=a.includes(u.EMPTY_COLUMN_UID);return s||d?{cell:l,size:r,hasRealItem:s}:null}).filter(Boolean);return l.some(e=>e.hasRealItem)?{...e,cells:l.map(e=>e.cell),sizes:l.map(e=>e.size)}:null}).filter(Boolean);return(0,u.normalizeGridLayout)({layout:{...e,rows:t(e.rows||[])},itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}resizeGridLayout(e){var t;let{direction:l,resizeDistance:o,model:n}=e,i=this.getGridLayout(),r=(0,u.findModelUidLayoutPosition)(i,n.uid);if(!r)return null;let a=this.findLayoutRowByPath(i,r.path);if(!a)return null;let s=this.getResizeContainerWidth(r.path),d=a.cells.map(e=>this.collectCellItemsForResize(e)),{newRows:p,newSizes:m,moveDistance:h}=aH({position:{rowId:a.id,columnIndex:r.cellIndex,itemIndex:r.itemIndex},direction:l,resizeDistance:o,prevMoveDistance:this.prevMoveDistance,oldRows:{[a.id]:d},oldSizes:{[a.id]:a.sizes||[]},gutter:(null==(t=this.context.themeToken)?void 0:t.marginBlock)??16,gridContainerWidth:s}),f=c.default.cloneDeep(i),g=this.findLayoutRowByPath(f,r.path);return g?(g.cells=this.buildResizedCells(a,p[a.id]||[]),g.sizes=m[a.id]||[],{layout:(0,u.normalizeGridLayout)({layout:f,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}),moveDistance:h}):null}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",e=>{e.isNew&&(this.resetRows(!0),this.setGridStepLayout(this.props.layout))}),this.emitter.on("onSubModelDestroyed",e=>{var t,l;let o=e.uid;this.resetRows(!0);let n=this.prunePlaceholderOnlyRows(this.props.layout);this.setGridStepLayout(n),this.syncLayoutProps(n),null==(t=this.context.filterManager)||t.removeFilterConfig({targetId:o}),null==(l=this.context.filterManager)||l.removeFilterConfig({filterId:o}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"left",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeRight",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"right",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeBottom",e=>{let{resizeDistance:t,model:l}=e}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout(this.props.layout)})}saveGridLayout(e){let t=e&&"version"in e?(0,u.normalizeGridLayout)({layout:e,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}):this.normalizeLayoutFromSource(e);this.setGridStepLayout(t),this.syncLayoutProps(t),this.saveStepParams()}mergeRowsWithItems(e){let t=this.subModels.items||[];if(!t||0===t.length)return{};let l=new Set(t.map(e=>e.uid));l.add(u.EMPTY_COLUMN_UID);let o=new Set,n={};for(let[t,i]of Object.entries(e)){let e=i.map(e=>c.default.castArray(e).filter(e=>l.has(e))).filter(e=>e.length>0);e.length>0&&(n[t]=e,e.forEach(e=>e.forEach(e=>o.add(e))))}let i=new Set;for(let e of(Object.values(n).forEach(e=>e.forEach(e=>e.forEach(e=>i.add(e)))),t))i.has(e.uid)||(n[(0,nx.uid)()]=[[e.uid]]);return n}resetRows(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getStepParams(aY,aN)||{},l=this.normalizeLayoutFromSource(t);this.setGridStepLayout(l),e&&this.syncLayoutProps(l)}computePointerPosition(e){var t;if(!this.dragState)return null;if(this.dragState.pointerPosition)return this.dragState.pointerPosition;let l=this.dragState.pointerOrigin;if(l)return{x:l.x+e.delta.x,y:l.y+e.delta.y};let o=aO(e.activatorEvent);if(o)return this.dragState.pointerOrigin=o,{x:o.x+e.delta.x,y:o.y+e.delta.y};let n=null==(t=e.over)?void 0:t.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}getDragContainer(){if(!this.dragState)return this.gridContainerRef.current;let e=this.gridContainerRef.current;return e&&this.dragState.containerEl!==e&&(this.dragState.containerEl=e),this.dragState.containerEl||e}updateLayoutSnapshot(){if(!this.dragState)return;let e=(0,u.buildLayoutSnapshot)({container:this.getDragContainer()});this.dragState.slots=e.slots,this.dragState.containerRect=e.containerRect}scheduleSnapshotRefresh(){!this.dragState||this.dragState.refreshTimer||(this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot(),this.refreshPreviewFromPointer())},16))}refreshPreviewFromPointer(){if(!this.dragState)return;let e=this.dragState.pointerPosition||this.dragState.pointerOrigin;if(!e)return;let t=this.resolveDragSlot(e);this.applyPreview(t)}computeOverlayRect(e){var t,l,o,n;let i=this.dragOverlayConfig,r=e.rect;switch(e.type){case"column":{let l=null==i||null==(t=i.columnInsert)?void 0:t[e.position],o=(null==l?void 0:l.height)??r.height,n=(null==l?void 0:l.offsetTop)??0;return{top:r.top+n,left:r.left,width:r.width,height:o}}case"column-edge":{let t=null==i||null==(l=i.columnEdge)?void 0:l[e.direction],o=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:o,height:r.height}}case"item-edge":{let t=null==i||null==(o=i.columnEdge)?void 0:o[e.direction],l=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:l,height:r.height}}case"row-gap":{let t=null==i||null==(n=i.rowGap)?void 0:n[e.position],l=(null==t?void 0:t.height)??r.height,o=(null==t?void 0:t.offsetTop)??0;return{top:r.top+o,left:r.left,width:r.width,height:l}}default:return{top:r.top,left:r.left,width:r.width,height:r.height}}}getHitTestSlot(e){return{...e,rect:this.computeOverlayRect(e)}}resolveDragSlot(e){var t;return(null==(t=this.dragState)?void 0:t.slots.length)?(0,u.resolveDropIntent)(e,this.dragState.slots.map(e=>this.getHitTestSlot(e))):null}applyPreview(e){if(!this.dragState)return;if(!e){null!==this.dragState.activeSlotKey&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}let t=(0,u.getSlotKey)(e);if(this.dragState.activeSlotKey===t&&this.dragState.previewLayout)return;let l=(0,u.simulateLayoutForSlot)({slot:e,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:nx.uid,generatedIds:this.dragState.generatedIds,generateId:()=>(0,nx.uid)()});if(l.layout&&this.dragState.snapshot.layout&&(0,u.isSameGridLayout)(l.layout,this.dragState.snapshot.layout))return void this.applyPreview(null);this.dragState.previewLayout={rows:c.default.cloneDeep(l.rows),sizes:c.default.cloneDeep(l.sizes),rowOrder:c.default.cloneDeep(l.rowOrder),layout:c.default.cloneDeep(l.layout)};let o=this.computeOverlayRect(e),n={top:o.top-this.dragState.containerRect.top,left:o.left-this.dragState.containerRect.left,width:o.width,height:o.height,type:e.type};this.setProps("dragOverlayRect",n),this.dragState.activeSlotKey=t}handleDragStart(e){let t=e.active.id,l=this.normalizeLayoutFromSource(),o=(0,u.projectLayoutToLegacyRows)(l);this.dragState={sourceUid:t,snapshot:{rows:c.default.cloneDeep(o.rows),sizes:c.default.cloneDeep(o.sizes),rowOrder:c.default.cloneDeep(o.rowOrder),layout:c.default.cloneDeep(l)},slots:[],containerEl:this.gridContainerRef.current,containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:aO(e.activatorEvent)??void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null,generatedIds:new Map},this.dragState.cleanupListeners=this.bindDragDocumentListeners(),this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(e){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();let t=this.computePointerPosition(e);if(!t)return void this.applyPreview(null);let l=this.resolveDragSlot(t);this.applyPreview(l)}finishDrag(){var e,t;this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),null==(e=(t=this.dragState).cleanupListeners)||e.call(t),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(e){if(!this.dragState)return;let t=this.computePointerPosition(e);if(t){let e=this.resolveDragSlot(t);this.applyPreview(e)}let l=this.dragState.previewLayout;l&&(l.layout?this.syncLayoutProps(c.default.cloneDeep(l.layout)):(this.setProps("rows",c.default.cloneDeep(l.rows)),this.setProps("sizes",c.default.cloneDeep(l.sizes)),l.rowOrder&&this.setProps("rowOrder",c.default.cloneDeep(l.rowOrder))),this.saveGridLayout(l)),this.finishDrag()}handleDragCancel(e){this.finishDrag()}renderAddSubModelButton(){throw Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var e;let t=this.normalizeLayoutFromSource(),l=this.context.isMobileLayout?(0,u.normalizeGridLayout)({rows:aV((0,u.projectLayoutToLegacyRows)(t).rows),itemUids:this.getItemUids()}):t,o=(0,u.projectLayoutToLegacyRows)(l),{rows:n,rowOrder:i}=this.normalizeRowsWithOrder(o.rows,o.rowOrder),r=this.orderSizesByRowOrder(o.sizes,i);if(this.context.flowSettingsEnabled)return{layout:l,rows:n,sizes:r};let a=new Map(((null==(e=this.subModels)?void 0:e.items)||[]).map(e=>[e.uid,e])),s=e=>e.map(e=>{let t=e.cells.map((t,l)=>{var o;let n=null==(o=e.sizes)?void 0:o[l],i=Number.isFinite(n)&&n>0?n:1;if(t.rows){let e=s(t.rows);return e.length?{cell:{...t,rows:e},size:i,hasVisibleContent:!0}:null}let r=(t.items||[]).filter(e=>{var t;return e===u.EMPTY_COLUMN_UID||(null==(t=a.get(e))?void 0:t.hidden)!==!0}),d=r.some(e=>{if(e===u.EMPTY_COLUMN_UID)return!1;let t=a.get(e);return!t||!t.hidden}),c=r.includes(u.EMPTY_COLUMN_UID);return d||c?{cell:{...t,items:r},size:i,hasVisibleContent:d}:null}).filter(Boolean);return t.some(e=>e.hasVisibleContent)?{...e,cells:t.map(e=>e.cell),sizes:t.map(e=>e.size)}:null}).filter(Boolean),d=(0,u.normalizeGridLayout)({layout:{version:2,rows:s(l.rows)}}),c=(0,u.projectLayoutToLegacyRows)(d);return{layout:d,rows:c.rows,sizes:c.sizes}}render(){let{layout:e,rows:t,sizes:l}=this.getVisibleLayout(),o=Object.keys(t||{}).length>0;return(0,s.jsxs)(s.Fragment,{children:[o&&(0,s.jsx)(g.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap,display:"flex"},size:this.props.rowGap,children:(0,s.jsx)(u.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,s.jsx)(aj,{rowGap:this.props.rowGap,colGap:this.props.colGap,layout:e,rows:t,sizes:l,dragOverlayRect:this.props.dragOverlayRect,renderItem:e=>{var t,l,o,n,i;let r=this.flowEngine.getModel(e);if(!r)return this.itemFallback;let a=this.context.fieldKey,d=this.context.fieldIndex,c=this.context.getPropertyOptions("item"),p=null==(t=(l=this.context).getPropertyOptions)?void 0:t.call(l,"record"),m=null==(o=(n=this.context).getPropertyOptions)?void 0:o.call(n,"currentObject"),h=null==d?r:(()=>{let t=r.createFork({},`${a}:${e}`);t.context.defineProperty("fieldIndex",{get:()=>d}),t.context.defineProperty("fieldKey",{get:()=>a}),t.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:null==p?void 0:p.meta,resolveOnServer:null==p?void 0:p.resolveOnServer,serverOnlyWhenContextParams:null==p?void 0:p.serverOnlyWhenContextParams}),t.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:null==m?void 0:m.resolveOnServer,serverOnlyWhenContextParams:null==m?void 0:m.serverOnlyWhenContextParams});let{value:l,...o}=c||{};return t.context.defineProperty("item",{...o,get:()=>this.context.item,cache:!1}),t})();return(0,s.jsx)(u.Droppable,{model:h,children:(0,s.jsx)(u.MemoFlowModelRenderer,{model:h,fallback:r.skeleton||this.itemFallback,showFlowSettings:!!this.context.flowSettingsEnabled&&this.getItemFlowSettings(),showErrorFallback:!0,settingsMenuLevel:(null==h?void 0:h.settingsMenuLevel)??this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${h.uid}:${a}:${(null==h?void 0:h.use)||(null==h||null==(i=h.constructor)?void 0:i.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,s.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}constructor(...e){super(...e),this.subModelBaseClass="BlockModel",this.gridContainerRef=p.default.createRef(),this.prevMoveDistance=0,this.itemSettingsMenuLevel=1,this.itemFlowSettings={},this.itemFallback=(0,s.jsx)(o4,{}),this.itemExtraToolbarItems=[{key:"drag-handler",component:u.DragHandler,sort:1}],this.updateDragPointerPosition=e=>{if(!this.dragState)return;let t=aO(e);t&&(this.dragState.pointerPosition=t)},this.handleDragScroll=()=>{this.dragState&&this.scheduleSnapshotRefresh()}}}function aV(e,t){let l=(null==t?void 0:t.emptyColumnUid)??u.EMPTY_COLUMN_UID,o={};return Object.keys(e).forEach(t=>{e[t].forEach(e=>{let t=e.filter(e=>e!==l);t.length>0&&(o[(0,nx.uid)()]=[t])})}),o}function aH(e){var t,l;let{position:o,direction:n,resizeDistance:i,prevMoveDistance:r,oldSizes:a,oldRows:s,gridContainerWidth:d,gutter:u=16,columnCount:p=24}=e,m=c.default.cloneDeep(s),h=c.default.cloneDeep(a),f=Math.floor(i/(d-u*((h[o.rowId]||[]).length-1))*p);if(f===r)return{newRows:m,newSizes:h,moveDistance:f};(t=h)[l=o.rowId]??(t[l]=[p]);let g=h[o.rowId],v=f-r,y="left"===n&&o.columnIndex>0,_="right"===n&&o.columnIndex<g.length-1;if(!y&&!_&&v>0){let e=p-g.reduce((e,t)=>e+t,0);if(e<=0)return{newRows:m,newSizes:h,moveDistance:r};v>e&&(f=r+e,v=e)}if(h[o.rowId][o.columnIndex]+=v,"left"===n&&o.columnIndex>0&&(h[o.rowId][o.columnIndex-1]-=v,0===h[o.rowId][o.columnIndex-1]&&a$({rows:m,sizes:h,position:o,direction:"left"})),"left"===n&&0===o.columnIndex){let e=h[o.rowId].slice(1).reduce((e,t)=>e+t,0);h[o.rowId][0]<p-e&&aq({rows:m,sizes:h,position:o,direction:"left"})}if("right"===n&&o.columnIndex<h[o.rowId].length-1&&(h[o.rowId][o.columnIndex+1]-=v,0===h[o.rowId][o.columnIndex+1]&&a$({rows:m,sizes:h,position:o,direction:"right"})),"right"===n&&o.columnIndex===h[o.rowId].length-1){let e=h[o.rowId].slice(0,-1).reduce((e,t)=>e+t,0);h[o.rowId][o.columnIndex]<p-e&&aq({rows:m,sizes:h,position:o,direction:"right"})}return{newRows:m,newSizes:h,moveDistance:f}}function aq(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[u.EMPTY_COLUMN_UID]),r.splice(o.columnIndex,0,1)}if("right"===n){let e=i[o.columnIndex+1];if(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[u.EMPTY_COLUMN_UID]),r.splice(o.columnIndex+1,0,1)}}function a$(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(!(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),r.splice(o.columnIndex-1,1)}if("right"===n){let e=i[o.columnIndex+1];if(!(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),r.splice(o.columnIndex+1,1)}}aB.registerFlow({key:aY,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{layout:{title:(0,u.tExpr)("Layout"),"x-decorator":"FormItem","x-component":aE,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,u.tExpr)("Configure the nested layout of the grid.")}}},async handler(e,t){let l=e.model,o=(0,u.normalizeGridLayout)({layout:t.layout,rows:t.rows,sizes:t.sizes,rowOrder:t.rowOrder,itemUids:l.getItemUids(),gridUid:l.uid,logger:console});l.setGridStepLayout(o),l.syncLayoutProps(o)}}}});let az=["JSBlockModel","IframeBlockModel","MarkdownBlockModel"];class aK extends aB{onInit(e){super.onInit(e),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new aT(this,e.filterManager)})}get subModelBaseClasses(){var e;let t=(null==(e=this.context.view)?void 0:e.inputArgs)??{};return t.collectionName&&!t.filterByTk,["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}get addBlockItems(){var e,t;if((null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.scene)==="select")return async e=>{let t=await (0,u.buildSubModelGroups)(["DataBlockModel","FilterBlockModel"])(e),l=az.filter(t=>!!e.engine.getModelClass(t)),o=(await Promise.all(l.map(t=>(0,u.buildSubModelItems)(t)(e)))).flat().sort((e,t)=>(e.sort??1e3)-(t.sort??1e3));return o.length>0&&t.push({key:"select-scene-other-blocks",type:"group",label:e.t("Other blocks"),sort:1e3,children:o}),t}}serialize(){let e=super.serialize();return e.filterManager=this.filterManager.getFilterConfigs(),e}renderAddSubModelButton(){let e=this.addBlockItems;return(0,s.jsx)(u.AddSubModelButton,{model:this,subModelKey:"items",items:e,subModelBaseClasses:e?void 0:this.subModelBaseClasses,children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,s.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}constructor(...e){super(...e),this.dragOverlayConfig={columnInsert:{before:{offsetTop:-12},after:{offsetTop:12}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}}}}aK.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});var aU=__webpack_require__(3890),aG=__webpack_require__(9639),aW=__webpack_require__(146);class aJ extends u.FlowModel{}var aX=__webpack_require__(2606);class aQ extends aU.z{}aQ.define({hide:!0,label:"Filter blocks"});var aZ=__webpack_require__(2542);async function a0(e){var t,l,o,n,i;(null==(l=e.inputArgs)||null==(t=l.dirty)?void 0:t.hasDirtyForms)&&(await e.modal.confirm({title:e.t("Unsaved changes"),content:e.t("Are you sure you don't want to save?"),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||(null==(i=e.inputArgs)||null==(n=i.controller)||null==(o=n.prevent)||o.call(n),e.exitAll()))}class a1 extends u.FlowModel{getEnableTabs(){let e=this.context.currentRoute,t=this.props.routeId;return null!=t&&(null==e?void 0:e.id)!=null&&String(e.id)===String(t)&&"boolean"==typeof e.enableTabs?e.enableTabs:!!this.props.enableTabs}getActiveTabKey(){var e,t,l,o;let n=null==(t=this.context.view)||null==(e=t.navigation)?void 0:e.viewParams;return n?n.tabUid||(null==(o=this.getFirstTab())?void 0:o.uid):this.props.tabActiveKey||(null==(l=this.getFirstTab())?void 0:l.uid)}scheduleActiveLifecycleRefresh(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dirtyRefreshScheduled||(this.dirtyRefreshScheduled=!0,Promise.resolve().then(()=>{this.dirtyRefreshScheduled=!1,this.unmounted||!1!==(0,u.getPageActive)(this.context)&&this.activateCurrentTab(e)}).catch(()=>{}))}activateCurrentTab(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getActiveTabKey();t&&this.invokeTabModelLifecycleMethod(t,"onActive",e)}deactivateCurrentTab(){var e;let t=this.props.tabActiveKey||(null==(e=this.getFirstTab())?void 0:e.uid);t&&this.invokeTabModelLifecycleMethod(t,"onInactive")}onMount(){var e,t,l,o,n,i,r,a,s;super.onMount(),this.unmounted=!1,this.setProps("tabActiveKey",null==(e=this.context.view.inputArgs)?void 0:e.tabUid),(null==(t=this.context)?void 0:t.pageInfo)&&(this.context.pageInfo.version="v2"),this.updateDocumentTitle(),this.viewActivatedListener||(this.viewActivatedListener=e=>{this.activateCurrentTab()},null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.on)||o.call(n,u.VIEW_ACTIVATED_EVENT,this.viewActivatedListener));let d=(0,u.getEmitterViewActivatedVersion)(null==(l=this.flowEngine)?void 0:l.emitter),c=d>0&&d!==this.lastSeenEmitterViewActivatedVersion;this.lastSeenEmitterViewActivatedVersion=d,c&&!1!==(0,u.getPageActive)(this.context)&&this.activateCurrentTab(),this.dataSourceDirtyListener||(this.dataSourceDirtyListener=e=>{this.scheduleActiveLifecycleRefresh()},null==(s=this.flowEngine)||null==(a=s.emitter)||null==(r=a.on)||r.call(a,u.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener))}onUnmount(){var e,t,l,o,n,i;this.unmounted=!0,this.viewActivatedListener&&(null==(l=this.flowEngine)||null==(t=l.emitter)||null==(e=t.off)||e.call(t,u.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),this.dataSourceDirtyListener&&(null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.off)||o.call(n,u.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener),this.dataSourceDirtyListener=void 0),super.onUnmount()}invokeTabModelLifecycleMethod(e,t){var l,o;let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e)return;"onActive"===t&&(null==(l=this.context)?void 0:l.pageInfo)&&(this.context.pageInfo.version="v2");let i=this.findSubModel("tabs",t=>t.uid===e)||this.flowEngine.getModel(e);if(i){if(i.context.tabActive){let e=!1!==(0,u.getPageActive)(i.context);i.context.tabActive.value=e&&"onActive"===t}null==(o=i.subModels.grid)||o.mapSubModels("items",e=>{var l;null==(l=e[t])||l.call(e,n)})}"onActive"===t&&this.updateDocumentTitle(e)}async updateDocumentTitle(e){var t,l,o,n,i,r,a,s,d,c,p,m,h,f,g,v,y,_,b,x;let M=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.unmounted||!1===(0,u.getPageActive)(this.context))return;let w=!!(null==(l=this.context)||null==(t=l.view)?void 0:t.navigation),S=null==(i=this.context)||null==(n=i.view)||null==(o=n.inputArgs)?void 0:o.viewUid,k=null==(s=this.flowEngine)||null==(a=s.context)||null==(r=a.route)?void 0:r.pathname;if(w&&S&&"string"==typeof k){let e=null==(c=this.context)||null==(d=c.layout)?void 0:d.routePath,t=null==(p=(0,u.parsePathnameToViewParams)(k,{basePath:(null==(h=this.context)||null==(m=h.layoutRoute)?void 0:m.basePathname)||((null==e?void 0:e.startsWith("/"))?e:"")}).at(-1))?void 0:p.viewUid;if(t&&t!==S)return}let F=++this.documentTitleUpdateVersion,C=async e=>{if(!e||"string"!=typeof e)return"";try{var t,l;let o=await (null==(t=(l=this.context).resolveJsonTemplate)?void 0:t.call(l,e));return null==o?"":String(o)}catch(t){return e}},A="";if(this.getEnableTabs()){let t=e||this.getActiveTabKey(),l=t?this.flowEngine.getModel(t):this.getFirstTab();if(!l&&M<5)return void window.setTimeout(()=>{this.unmounted||F===this.documentTitleUpdateVersion&&this.updateDocumentTitle(t,M+1)},0);A=await C(null==l||null==(v=l.stepParams)||null==(g=v.pageTabSettings)||null==(f=g.tab)?void 0:f.documentTitle)||(null==l||null==(y=l.getTabTitle)?void 0:y.call(l))||""}else A=await C(null==(x=this.stepParams)||null==(b=x.pageSettings)||null==(_=b.general)?void 0:_.documentTitle)||this.props.title||"";F===this.documentTitleUpdateVersion&&"string"==typeof A&&""!==A&&(document.title=A)}mapTabs(){return this.mapSubModels("tabs",e=>!this.context.flowSettingsEnabled&&e.hidden?null:{key:e.uid,label:(0,s.jsx)(u.Droppable,{model:e,children:(0,s.jsx)(u.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!0,showBorder:!1,toolbarPosition:"above",style:{transform:"translateY(8px)"}},extraToolbarItems:[{key:"drag-handler",component:u.DragHandler,sort:1}]})}),children:e.renderChildren()}).filter(Boolean)}getFirstTab(){var e;return null==(e=this.subModels.tabs)?void 0:e[0]}renderFirstTab(){var e;let t=this.getFirstTab();return null==t||null==(e=t.renderChildren)?void 0:e.call(t)}async handleDragEnd(e){throw Error("Method not implemented.")}renderTabs(){var e,t,l,o;let n=(null==(e=this.context.themeToken)?void 0:e.paddingLG)??16,i=void 0!==this.tabBarExtraContent.left?this.tabBarExtraContent.left:(0,s.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:n,height:1}}),r=void 0!==this.tabBarExtraContent.right?this.tabBarExtraContent.right:(0,s.jsx)("span",{style:{display:"inline-flex",marginInlineEnd:n},children:(0,s.jsx)(u.AddSubModelButton,{model:this,subModelKey:"tabs",items:[{key:"blank",label:this.context.t("Blank tab"),createModelOptions:this.createPageTabModelOptions}],children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.PlusOutlined,{}),children:this.context.t("Add tab")})})});return(0,s.jsx)(u.DndProvider,{onDragEnd:this.handleDragEnd.bind(this),children:(0,s.jsx)(g.Tabs,{activeKey:(null==(l=this.context.view)||null==(t=l.navigation)?void 0:t.viewParams)?this.context.view.navigation.viewParams.tabUid||(null==(o=this.getFirstTab())?void 0:o.uid):this.props.tabActiveKey,tabBarStyle:this.props.tabBarStyle,items:this.mapTabs(),onChange:e=>{var t,l;let o=this.props.tabActiveKey||this.getActiveTabKey();null==(l=this.context.view.navigation)||null==(t=l.changeTo)||t.call(l,{tabUid:e}),this.invokeTabModelLifecycleMethod(e,"onActive"),o&&o!==e&&this.invokeTabModelLifecycleMethod(o,"onInactive"),this.setProps("tabActiveKey",e)},tabBarExtraContent:{left:i,right:r}})})}render(){let e=this.context.themeToken,t={...this.props.headerStyle};e&&(t.paddingBlock=e.paddingSM,t.paddingInline=e.paddingLG);let l=this.getEnableTabs();return l&&(t.paddingBottom=0),(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:t}),l?this.renderTabs():this.renderFirstTab()]})}constructor(...e){super(...e),this.tabBarExtraContent={},this.lastSeenEmitterViewActivatedVersion=0,this.dirtyRefreshScheduled=!1,this.unmounted=!1,this.documentTitleUpdateVersion=0,this.createPageTabModelOptions=()=>{let e=(0,nx.uid)();return{uid:e,use:"RootPageTabModel",props:{route:{parentId:this.props.routeId,type:"tabs",schemaUid:e,tabSchemaName:(0,nx.uid)(),params:[],hideInMenu:!1,enableTabs:!1}}}}}}a1.registerEvents({close:{title:(0,u.tExpr)("Close"),name:"close",hideInSettings(e){var t;return!!(null==(t=e.view)?void 0:t.preventClose)},uiSchema:{condition:{type:"object",title:(0,u.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":aZ.H}},handler:aZ.b}}),a1.registerFlow({key:"closeGuard",title:(0,u.tExpr)("Close guard"),on:"close",steps:{confirmUnsavedChanges:{title:(0,u.tExpr)("Unsaved changes confirmation"),handler:a0}}}),a1.registerFlow({key:"pageSettings",title:(0,u.tExpr)("Page settings"),steps:{general:{title:(0,u.tExpr)("Edit page"),uiSchema:{title:{type:"string",title:(0,u.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},documentTitle:{type:"string",title:(0,u.tExpr)("Document title"),description:(0,u.tExpr)("Used as the browser tab title when tabs are disabled. Supports variables. Leave empty to use Page title."),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:1,maxRows:6}},displayTitle:{type:"boolean",title:(0,u.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"},enableTabs:{type:"boolean",title:(0,u.tExpr)("Enable tabs"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",e.t(t.title,{ns:"lm-desktop-routes"}));else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n,{ns:"lm-desktop-routes"}))}e.model.setProps("enableTabs",t.enableTabs),"embed"===e.view.type?(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgContainer)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgContainer)",marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgLayout)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgLayout)",marginBottom:0})),e.model.updateDocumentTitle()}}}});class a2 extends a1{renderBackButtonWhenTabsDisabled(){var e,t,l;if((null==(t=this.context)||null==(e=t.view)?void 0:e.type)!=="embed")return null;let o=null==(l=this.context)?void 0:l.themeToken,n={...this.props.tabBarStyle,paddingBlock:(null==o?void 0:o.paddingXS)??8};return(0,s.jsx)("div",{style:n,children:(0,s.jsx)(a5,{renderSpacerWhenNoBack:!1})})}async handleDragEnd(e){var t,l;if(!(null==(t=e.active)?void 0:t.id)||!(null==(l=e.over)?void 0:l.id))throw Error("Invalid drag event");e.active.id!==e.over.id&&await this.flowEngine.moveModel(e.active.id,e.over.id)}render(){return(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&this.props.title&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.props.enableTabs?this.renderTabs():(0,s.jsxs)(s.Fragment,{children:[this.renderBackButtonWhenTabsDisabled(),this.renderFirstTab()]})]})}constructor(...e){super(...e),this.tabBarExtraContent={left:(0,s.jsx)(a5,{})},this.createPageTabModelOptions=()=>({use:"ChildPageTabModel"})}}let a5=e=>{let{renderSpacerWhenNoBack:t=!0}=e,l=(0,u.useFlowContext)(),o=l.themeToken,n=32,i=(null==o?void 0:o.paddingLG)??16,r=(0,p.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:o.paddingXS,marginLeft:o.paddingLG,marginRight:n-o.paddingXS}),[o.paddingLG,o.paddingXS]);return"embed"!==l.view.type?t?(0,s.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:i,height:1}}):null:(0,s.jsx)(g.Button,{"aria-label":"back-button",type:"text",icon:(0,s.jsx)(e1.ArrowLeftOutlined,{}),style:r,onClick:l.view.close})};class a8 extends u.FlowModel{}a8.registerFlow({key:"pageSettings",title:(0,u.tExpr)("Page settings"),steps:{general:{title:(0,u.tExpr)("General"),uiSchema:{title:{type:"string",title:(0,u.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},displayTitle:{type:"boolean",title:(0,u.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",t.title?e.t(t.title):null);else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n))}e.model.setProps("enableTabs",t.enableTabs),e.model.context.closable?(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgLayout,paddingInline:16,marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgContainer,paddingInline:16,marginBottom:0}))}}}});class a4 extends a8{renderFirstTab(){var e;return(0,s.jsx)(u.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}function a3(e){let{ctx:t,options:l}=e,{data:o,loading:n}=(0,o8.useRequest)(async()=>{let e=await t.engine.loadOrCreateModel(l,{skipSave:!t.flowSettingsEnabled});return e.context.addDelegate(t),e},{refreshDeps:[t.model.uid]}),i=(null==t?void 0:t.isMobileLayout)?8:null==t?void 0:t.themeToken.marginBlock;return!n&&(null==o?void 0:o.uid)?(0,s.jsx)(u.FlowModelRenderer,{model:o,fallback:(0,s.jsx)(o4,{style:{margin:i}})}):(0,s.jsx)(o4,{style:{margin:i}})}function a6(e){return Array.isArray(e)?e.find(e=>!!e&&"object"==typeof e):e&&"object"==typeof e?e:void 0}class a9 extends u.FlowModel{onInit(e){super.onInit(e),this.context.defineProperty("tabActive",{value:u.observable.ref(!0),info:{description:"Whether current tab is active (observable.ref).",detail:"observable.ref<boolean>"}})}getTabTitle(){var e,t;let l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Untitled",o=this.context.t(l,{ns:"client"});return this.context.t(null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.title,{ns:"lm-desktop-routes"})||o}getTabIcon(){var e,t;return null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.icon}renderChildren(){return null}renderHiddenInConfig(){return(0,s.jsxs)("span",{style:{display:"inline-block",opacity:.5},children:[(0,s.jsx)(ep.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}render(){return(0,s.jsxs)("span",{style:{display:"inline-block"},children:[(0,s.jsx)(ep.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}}a9.registerFlow({key:"pageTabSettings",title:(0,u.tExpr)("Tab settings"),steps:{tab:{title:(0,u.tExpr)("Edit tab"),preset:!0,uiSchema:{title:{title:(0,u.tExpr)("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},documentTitle:{type:"string",title:(0,u.tExpr)("Document title"),description:(0,u.tExpr)("Used as the browser tab title when this tab is active. Supports variables. Leave empty to use Tab name."),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:1,maxRows:6}},icon:{title:(0,u.tExpr)("Icon"),"x-decorator":"FormItem","x-component":"IconPicker"}},async handler(e,t){var l;let o="function"==typeof(null==e?void 0:e.t)?e.t.bind(e):e=>e;e.model.setProps("title",o(t.title,{ns:"lm-desktop-routes"})),e.model.setProps("icon",t.icon);let n=e.engine.getModel(e.model.parentId);null==n||null==(l=n.updateDocumentTitle)||l.call(n)}}}});class a7 extends a9{renderChildren(){return(0,s.jsx)(a3,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}async saveStepParams(){return this.save()}async save(){var e,t,l,o,n;let i=this.serialize(),r=null==(l=this.stepParams)||null==(t=l.pageTabSettings)||null==(e=t.tab)?void 0:e.documentTitle,a=await this.context.api.request({method:"post",url:"desktopRoutes:updateOrCreate",params:{filterKeys:["schemaUid"]},data:{...this.props.route,title:this.getTabTitle(""),icon:this.getTabIcon(),options:{flowRegistry:i.flowRegistry,documentTitle:r}}}),s=a6(null==a||null==(o=a.data)?void 0:o.data);s&&this.setProps("route",{...this.props.route,...s,options:{...null==(n=this.props.route)?void 0:n.options,...s.options}})}async destroy(){return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid),await this.context.api.request({method:"post",url:"desktopRoutes:destroy",params:{filter:{schemaUid:this.uid}},data:this.props.route}),!0}}class se extends a9{renderChildren(){return(0,s.jsx)(a3,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class st extends u.FlowModel{render(){return(0,s.jsx)(a3,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class sl extends a1{syncPageSettingsEnableTabsFromRoute(){var e,t;let l=null==(t=this.context)||null==(e=t.currentRoute)?void 0:e.enableTabs;"boolean"==typeof l&&this.setStepParams("pageSettings","general",{enableTabs:l})}syncEnableTabsToCurrentPage(e){var t;let l=null==(t=this.context)?void 0:t.currentRoute,o=this.props.routeId;l&&(null==o||null==l.id||String(l.id)===String(o))&&(l.enableTabs=e),this.setProps("enableTabs",e)}async ensurePersistedRouteId(e){var t,l,o,n;let i=null==e||null==(l=e.props)||null==(t=l.route)?void 0:t.id;return null!=i?i:("function"==typeof(null==e?void 0:e.save)&&await e.save(),null==e||null==(n=e.props)||null==(o=n.route)?void 0:o.id)}onMount(){super.onMount(),(0,u.reaction)(()=>this.context.pageActive.value,()=>{var e,t;if(null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.activationControlledByLayout){this.mounted=!0;return}this.context.pageActive.value&&this.mounted&&this.activateCurrentTab(!0),!1===this.context.pageActive.value&&this.deactivateCurrentTab(),this.mounted=!0})}async openFlowSettings(e){return(null==e?void 0:e.flowKey)==="pageSettings"&&(null==e?void 0:e.stepKey)==="general"&&this.syncPageSettingsEnableTabsFromRoute(),super.openFlowSettings(e)}async saveStepParams(){if(await super.saveStepParams(),this.stepParams.pageSettings){var e,t;let l=!!this.stepParams.pageSettings.general.enableTabs;await this.context.api.request({url:`desktopRoutes:update?filter[id]=${this.props.routeId}`,method:"post",data:{enableTabs:l}}),this.syncEnableTabsToCurrentPage(l),await (null==(e=(t=this.context).refreshDesktopRoutes)?void 0:e.call(t))}}async handleDragEnd(e){var t,l;let o=this.flowEngine.getModel(null==(t=e.active)?void 0:t.id),n=this.flowEngine.getModel(null==(l=e.over)?void 0:l.id);if(!o||!n||o.uid===n.uid)return;let[i,r]=await Promise.all([this.ensurePersistedRouteId(o),this.ensurePersistedRouteId(n)]);null!=i&&null!=r&&(await this.context.api.request({url:"desktopRoutes:move",method:"post",params:{sourceId:i,targetId:r,sortField:"sort"}}),this.flowEngine.moveModel(o.uid,n.uid,{persist:!1}))}constructor(...e){super(...e),this.mounted=!1}}sl.registerFlow({key:"rootPageSettings",steps:{init:{async handler(e,t){if(e.model.hasSubModel("tabs"))return;let l=e.routeRepository.getRouteBySchemaUid(e.model.parentId);for(let t of(e.model.setProps("routeId",null==l?void 0:l.id),c.default.castArray(null==l?void 0:l.children).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0)))){var o,n;if(t.hideInMenu)continue;let l=e.engine.createModel({parentId:e.model.uid,uid:t.schemaUid,subKey:"tabs",subType:"array",use:"RootPageTabModel",sortIndex:t.sort,props:{route:t},flowRegistry:null==(o=t.options)?void 0:o.flowRegistry,stepParams:{pageTabSettings:{tab:{title:t.title,icon:t.icon,documentTitle:null==(n=t.options)?void 0:n.documentTitle}}}});e.model.addSubModel("tabs",l)}}}}});class so extends a8{renderFirstTab(){var e;return(0,s.jsx)(u.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class sn extends au.S0{constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Popup"),icon:"ExportOutlined"}}}sn.define({label:(0,u.tExpr)("Popup")}),sn.registerFlow(Y);var si=__webpack_require__(1882);class sr extends sn{getAclActionName(){return"create"}constructor(...e){super(...e),this.defaultPopupTitle=(0,u.tExpr)("Add new"),this.defaultProps={type:"primary",title:(0,u.tExpr)("Add new"),icon:"PlusOutlined"}}}sr.scene=au.s5.collection,sr.define({label:(0,u.tExpr)("Add new"),sort:10});let sa=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel);return(null==a||null==(o=a.getResourceSettingsInitParams)?void 0:o.call(a))||(null==a||null==(n=a.getStepParams)?void 0:n.call(a,"resourceSettings","init"))||(null==e||null==(r=e.model)||null==(i=r.getStepParams)?void 0:i.call(r,"resourceSettings","init"))},ss=e=>{var t;return!!(null==(t=sa(e))?void 0:t.associationName)},sd=e=>{var t,l,o,n;let i=sa(e),r=(null==e||null==(t=e.blockModel)?void 0:t.association)||(null==e||null==(n=e.model)||null==(o=n.context)||null==(l=o.blockModel)?void 0:l.association),a=null==r?void 0:r.targetCollection;return{dataSourceKey:(null==a?void 0:a.dataSourceKey)||(null==i?void 0:i.dataSourceKey),collectionName:(null==a?void 0:a.name)||(null==r?void 0:r.target)||(null==i?void 0:i.collectionName)}},su=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel),s=null==a?void 0:a.association,d=sa(e);return{collectionField:s,sourceId:(null==a||null==(n=a.resource)||null==(o=n.getSourceId)?void 0:o.call(n))??(null==d?void 0:d.sourceId),associatedRecords:(null==a||null==(r=a.resource)||null==(i=r.getData)?void 0:i.call(r))||[]}},sc=async(e,t,l)=>{var o;return"function"==typeof(null==e?void 0:e[t])?await e[t]({values:l}):await (null==e||null==(o=e.runAction)?void 0:o.call(e,t,{data:l}))},sp=async e=>{var t,l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(t=e.blockModel)?void 0:t.resource)||(null==e?void 0:e.resource),h=(null==e||null==(l=e.blockModel)?void 0:l.collection)||(null==e?void 0:e.collection);if(!ss(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for disassociation"));return}if(!e.record){null==(p=e.message)||null==(c=p.error)||c.call(p,e.t("No record selected for disassociation"));return}let f=null==h||null==(o=h.getFilterByTK)?void 0:o.call(h,e.record);await sc(m,"remove",[f]),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record disassociated successfully"))},sm=async(e,t)=>{var l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(l=e.blockModel)?void 0:l.resource)||(null==e?void 0:e.resource),h=(null==e||null==(o=e.blockModel)?void 0:o.collection)||(null==e?void 0:e.collection);if(!ss(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for association"));return}if(!(null==t?void 0:t.length)){null==(p=e.message)||null==(c=p.warning)||c.call(p,e.t("Please select at least one record"));return}let f=t.map(e=>{var t;return(null==h||null==(t=h.getFilterByTK)?void 0:t.call(h,e))??e}).filter(e=>null!=e);await sc(m,"add",f),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record associated successfully"))};function sh(e){let{options:t}=e,l=(0,u.useFlowViewContext)(),{data:o,loading:n}=(0,o8.useRequest)(async()=>await l.engine.loadOrCreateModel(t,{delegateToParent:!1,delegate:l,skipSave:!l.flowSettingsEnabled}),{refreshDeps:[l,t]});return!n&&(null==o?void 0:o.uid)?(0,s.jsx)(u.FlowModelRenderer,{model:o,fallback:(0,s.jsx)(o4,{style:{margin:16}})}):(0,s.jsx)(o4,{style:{margin:16}})}function sf(e){let{model:t}=e,l=(0,u.useFlowViewContext)(),{Header:o,Footer:n,type:i}=l.view;return(0,s.jsxs)("div",{children:[(0,s.jsx)(o,{title:"dialog"===i?(0,s.jsx)("div",{style:{padding:`${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px 0`,marginBottom:-l.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:l.t("Select record")}):l.t("Select record")}),(0,s.jsx)(sh,{options:{parentId:l.view.inputArgs.parentId,subKey:"associate-selector-grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}}),(0,s.jsx)(n,{children:"dialog"===i?(0,s.jsx)("div",{style:{padding:`0 ${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px`},children:(0,s.jsx)(g.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})}):(0,s.jsx)(g.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})})]})}class sg extends au.S0{getAclActionName(){return"update"}async associateSelectedRows(){await sm(this.context,this.selectedRows),this.selectedRows=[]}constructor(...e){super(...e),this.defaultPopupTitle=(0,u.tExpr)("Select record"),this.selectedRows=[],this.defaultProps={title:(0,u.tExpr)("Associate"),icon:"LinkOutlined"}}}sg.scene=au.s5.collection,sg.capabilityActionName="update",sg.define({label:(0,u.tExpr)("Associate"),sort:15,hide:e=>!ss(e)}),sg.registerFlow({key:"associateSettings",title:(0,u.tExpr)("Associate settings"),on:"click",steps:{openSelector:{async handler(e,t){var l,o,n;let i=sd(e),r=(null==(l=e.inputArgs)?void 0:l.isMobileLayout)?"embed":(null==(o=e.inputArgs)?void 0:o.mode)||(null==t?void 0:t.mode)||"drawer",a=(null==(n=e.inputArgs)?void 0:n.size)||(null==t?void 0:t.size)||"medium",d={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}};e.model.selectedRows=[],await e.viewer.open({type:r,width:d[r][a],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"select",dataSourceKey:i.dataSourceKey,collectionName:i.collectionName,...su(e),rowSelectionProps:{type:"checkbox",renderCell:void 0,selectedRowKeys:void 0,onChange:(t,l)=>{e.model.selectedRows=l||[]}}},content:()=>(0,s.jsx)(sf,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===r?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}});class sv extends au.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Delete"),icon:"DeleteOutlined"}}}sv.scene=au.s5.collection,sv.capabilityActionName="destroyMany",sv.define({label:(0,u.tExpr)("Delete")}),sv.registerFlow({key:"deleteSettings",title:(0,u.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,u.tExpr)("Delete record"),content:(0,u.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){var l;if(!(null==(l=e.blockModel)?void 0:l.resource))return void e.message.error(e.t("No resource selected for deletion"));let o=e.blockModel.resource;0===o.getSelectedRows().length?e.message.warning(e.t("Please select at least one record to delete")):(await o.destroy(e.blockModel.collection.getFilterByTK(o.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully")))}}}});class sy extends au.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,u.tExpr)("Delete"),icon:"DeleteOutlined"}}}sy.scene=au.s5.record,sy.define({label:(0,u.tExpr)("Delete"),sort:60}),sy.registerFlow({key:"deleteSettings",title:(0,u.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,u.tExpr)("Delete record"),content:(0,u.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){e.resource?e.record?(await e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))):e.message.error(e.t("No resource or record selected for deletion")):e.message.error(e.t("No resource selected for deletion"))}}}});class s_ extends au.S0{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,u.tExpr)("Disassociate"),icon:"DisconnectOutlined"}}}s_.scene=au.s5.record,s_.capabilityActionName="update",s_.define({label:(0,u.tExpr)("Disassociate"),sort:65,hide:e=>!ss(e)}),s_.registerFlow({key:"disassociateSettings",title:(0,u.tExpr)("Disassociate settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,u.tExpr)("Disassociate record"),content:(0,u.tExpr)("Are you sure you want to disassociate it?")}},disassociate:{async handler(e){await sp(e)}}}});class sb extends sn{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultPopupTitle=(0,u.tExpr)("Edit"),this.defaultProps={title:(0,u.tExpr)("Edit"),icon:"EditOutlined"}}}sb.scene=au.s5.record,sb.define({label:(0,u.tExpr)("Edit"),sort:20});var sx=__webpack_require__(8442);class sM extends au.S0{getIgnoreFieldNames(){var e;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);let t=(null==(e=this.context.blockModel.collection)?void 0:e.getFields())||[],l=sS(this.props.filterableFieldNames||[],t.map(e=>e.name));return this.map.set(this.props.filterableFieldNames,l),l}render(){return this.context.isMobileLayout?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,s.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,s.jsx)(sx.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),(0,s.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,s.jsx)(g.Popover,{open:this.props.open,content:(0,s.jsx)(sx.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),trigger:"click",placement:"bottomLeft",onOpenChange:e=>{!1===e&&this.setProps("open",void 0)},children:super.render()})}constructor(...e){super(...e),this.map=new WeakMap,this.defaultProps={type:"default",title:(0,u.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}}}}function sw(e){for(var t,l=arguments.length,o=Array(l>1?l-1:0),n=1;n<l;n++)o[n-1]=arguments[n];return((null==e||null==(t=e.getFields)?void 0:t.call(e))||[]).filter(e=>{if(!(null==e?void 0:e.interface)||(null==e?void 0:e.filterable)===!1)return!1;let t=(0,ep.w6)(e.interface,...o);return!!(null==t?void 0:t.filterable)})}function sS(e,t){return null==t?void 0:t.filter(t=>!e.includes(t))}sM.scene="collection",sM.define({label:(0,u.tExpr)("Filter"),toggleable:!0,sort:5}),sM.registerFlow({key:"filterSettings",title:(0,u.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,u.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t;let{model:l}=(0,u.useFlowSettingsContext)(),o=sw(l.context.blockModel.collection,l.context.dataSourceManager,null==(t=l.context.app)?void 0:t.dataSourceManager).map(e=>({key:e.name,title:e.title}));return(0,s.jsx)(g.Transfer,{...e,dataSource:o,targetKeys:e.value||[],onChange:t=>{var l;return null==(l=e.onChange)?void 0:l.call(e,t)},render:e=>e.title})},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,l,o,n,i;return{filterableFieldNames:sw(e.blockModel.collection,null==(l=e.model)||null==(t=l.context)?void 0:t.dataSourceManager,null==(i=e.model)||null==(n=i.context)||null==(o=n.app)?void 0:o.dataSourceManager).map(e=>e.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,u.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{let{model:t}=(0,u.useFlowSettingsContext)();return(0,s.jsx)(i6.I8,{value:e.value||{},FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:t,maxAssociationFieldDepth:2})})}}},defaultParams:e=>({defaultFilter:e.model.defaultProps.filterValue}),handler(e,t){e.model.setProps("defaultFilterValue",c.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",c.default.cloneDeep(t.defaultFilter))}}}}),sM.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;let n=(0,A.transformFilter)(e.model.props.filterValue),i=!(0,A.isEmptyFilter)(n);l.setFilterActive(e.model.uid,i),i?(o.addFilterGroup(e.model.uid,n),o.setPage(1)):o.removeFilterGroup(e.model.uid),"manual"!==l.getDataLoadingMode()||i||l.hasActiveFilters()?o.refresh():(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1)}}}}),sM.registerFlow({key:"resetSettings",title:(0,u.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;o.removeFilterGroup(e.model.uid),l.setFilterActive(e.model.uid,!1);let n=l.getDataLoadingMode(),i=e.model.props.defaultFilterValue,r=!(0,A.isEmptyFilter)((0,A.transformFilter)(i));"manual"!==n||r||l.hasActiveFilters()?(r&&(o.addFilterGroup(e.model.uid,(0,A.transformFilter)(i)),l.setFilterActive(e.model.uid,!0),o.setPage(1)),o.refresh()):(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1),e.model.setProps("filterValue",c.default.cloneDeep(i))}}}}),sM.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});var sk=__webpack_require__(9253);function sF(e,t){var l;let o=(null==(l=e.inputArgs)?void 0:l.preview)||{},n=(null==o?void 0:o.version)??(null==t?void 0:t.version)??"v1";return{code:("string"==typeof(null==o?void 0:o.code)?o.code:void 0)??(null==t?void 0:t.code)??"",version:n}}class sC extends au.S0{constructor(...e){super(...e),this.defaultProps={type:"default",title:(0,u.tExpr)("JS action"),icon:"JavaScriptOutlined"}}}sC.define({label:(0,u.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}}),sC.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:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`
|
|
760
|
+
`,oN={token:{colorSplit:"rgba(255, 255, 255, 0.1)"}};function oO(e,t){return e.map((e,t)=>({action:e,index:t})).filter(e=>{let{action:l}=e;return!l.isHidden()&&(!l.aclSnippet||t(l.aclSnippet))}).sort((e,t)=>(e.action.sort||0)!==(t.action.sort||0)?(e.action.sort||0)-(t.action.sort||0):e.index-t.index).map(e=>{let{action:t}=e;return t})}let oB=e=>({"--nb-topbar-action-color":e.colorTextHeaderMenu||"rgba(255, 255, 255, 0.65)","--nb-topbar-action-hover-bg":e.colorBgHeaderMenuHover||"rgba(255, 255, 255, 0.1)"}),oV=()=>null,oH=e=>"function"==typeof(null==e?void 0:e.getActionId)?e.getActionId():(null==e?void 0:e.actionId)||(null==e?void 0:e.uid)||"",oq=p.default.memo(e=>{let{allow:t}=(0,oR.K)(),{token:l}=g.theme.useToken(),o=l,n=(0,p.useMemo)(()=>oO(e.actions,t),[t,e.actions]),i=n.filter(e=>oH(e)!==lU),r=n.find(e=>oH(e)===lU);return(0,s.jsxs)("div",{className:oE,style:oB(o),children:[(0,s.jsx)("div",{className:"nb-topbar-actions-list",onClick:e.onActionClick,children:i.map(e=>(0,s.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:oV,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,s.jsx)(u.FlowModelRenderer,{model:e})},e.uid))}),(0,s.jsx)(g.ConfigProvider,{theme:oN,children:(0,s.jsx)(g.Divider,{type:"vertical"})}),(0,s.jsx)(lT,{}),r?(0,s.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:oV,onError:e=>{console.error("[NocoBase] Topbar action render failed.",e)},children:(0,s.jsx)(u.FlowModelRenderer,{model:r})},r.uid):null]})});oq.displayName="TopbarActionsContent";let o$=p.default.memo(e=>{let{token:t}=g.theme.useToken(),l=t,[o,n]=(0,p.useState)(!1),i=(0,p.useCallback)(()=>{n(!1)},[]);return e.isMobile?(0,s.jsx)(g.Popover,{rootClassName:oY,content:(0,s.jsx)(oq,{actions:e.actions,onActionClick:i}),color:l.colorBgHeader,trigger:"click",open:o,onOpenChange:n,children:(0,s.jsx)("div",{style:{padding:"0 16px",display:"flex",alignItems:"center",height:"100%",marginRight:-16},children:(0,s.jsx)(e1.EllipsisOutlined,{style:{color:l.colorTextHeaderMenu,fontSize:20}})})}):(0,s.jsx)(oq,{actions:e.actions})});o$.displayName="TopbarActionsBar";let oz=e=>{let{children:t}=e,l=(0,u.useFlowEngine)(),o=(0,f.n)(),n=(0,h.useNavigate)(),i=(0,h.useLocation)(),r=(0,h.useMatches)(),[a,d]=(0,p.useState)(!1),c=(0,p.useRef)(!1),m=l.context.routeRepository,g=(0,p.useMemo)(()=>"/admin"===eH(i.pathname,o.router.getBasename()),[o,i.pathname]),v=(0,p.useMemo)(()=>{var e,t;let l=r[r.length-1];if(!et("admin",null==l?void 0:l.id))return"";let o=r.find(e=>"admin"===e.id);return(null==(e=l.params)?void 0:e.name)||(null==(t=(0,u.parsePathnameToViewParams)(i.pathname,{basePath:(null==o?void 0:o.pathname)||"/admin"})[0])?void 0:t.viewUid)||""},[i.pathname,r]);return((0,p.useEffect)(()=>{c.current=!1},[i.pathname,i.search,i.hash,v]),(0,p.useEffect)(()=>{let e=!0;return(async()=>{var t,l,i,r;if(d(!1),!g&&!v){e&&d(!0);return}if(!(null==m||null==(t=m.isAccessibleLoaded)?void 0:t.call(m)))try{await (null==m||null==(i=m.ensureAccessibleLoaded)?void 0:i.call(m))}catch(t){e&&d(!0);return}if(!e||c.current)return;if(v){let t=null==m||null==(r=m.getRouteBySchemaUid)?void 0:r.call(m,v);if((null==t?void 0:t.type)==="page"){let e=eQ({app:o,route:t,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===e.navigationMode&&e.runtimePath){c.current=!0,window.location.replace(e.runtimePath);return}}e&&d(!0);return}let a=eW((null==m||null==(l=m.listAccessible)?void 0:l.call(m))||[]);if(!a){e&&d(!0);return}let s=eQ({app:o,route:a});if(!s.runtimePath){e&&d(!0);return}(c.current=!0,"document"===s.navigationMode)?window.location.replace(s.runtimePath):n(eH(s.runtimePath,o.router.getBasename()),{replace:!0})})(),()=>{e=!1}},[o,l,g,i.hash,i.pathname,i.search,n,v,m]),a)?(0,s.jsx)(s.Fragment,{children:t}):null};class oK extends eu{refreshMenuRouteTree(){this.menuRouteRefreshVersion+=1}syncMenuRoutes(e){tI(this,Array.isArray(e)?e:[])}toProLayoutRoute(e){let t=(this.subModels.menuItems||[]).map(t=>t.toProLayoutRoute({...e,depth:0})).filter(Boolean)||[];return e.designable&&(e.isMobile?t.push(tq("schema-initializer-Menu-header",this)):t.unshift(tq("schema-initializer-Menu-header",this))),{path:"/",children:t}}createRouteCoordinator(){return new eZ(this.flowEngine,this.getRouteCoordinatorOptions())}render(){return(0,s.jsx)(oz,{children:(0,s.jsx)(oD,{...this.props,model:this})})}constructor(e){super(e),this.menuRouteRefreshVersion=0,(0,d.define)(this,{menuRouteRefreshVersion:d.observable.ref})}}function oU(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=ec(e,e0,{...t,use:t.use||oK});if(!l&&t.required)throw Error("[NocoBase] FlowRoute requires admin-layout-model. Please render FlowRoute under AdminLayout.");return l}function oG(e){let{flowEngine:t,pageUid:l,active:o,refreshDesktopRoutes:n,layoutContentRef:i,getLayoutModel:r}=e,a=r(t),s=(0,p.useRef)(o),d=(0,p.useRef)(n);if(!a)throw Error("[NocoBase] FlowRoute requires layout model. Please render FlowRoute under Layout.");return s.current=o,d.current=n,(0,p.useEffect)(()=>(a.registerRoutePage(l,{active:s.current??!1,refreshDesktopRoutes:d.current,layoutContentElement:i.current}),()=>{a.unregisterRoutePage(l)}),[a,l,i]),(0,p.useEffect)(()=>{a.updateRoutePage(l,{active:o,refreshDesktopRoutes:n,layoutContentElement:i.current})},[o,a,l,n,i]),a}oK.registerFlow({key:"topbarAction",steps:{step1:{handler:async(e,t)=>{let l=[...(await e.engine.getSubclassesOfAsync("TopbarActionModel")).keys()].map(t=>{let l=e.engine.createModel({use:t,uid:`topbar-action-${t}`});return l.setParent(e.model),l});e.model.props.actionsRender=e=>[(0,s.jsx)(o$,{actions:l,isMobile:null==e?void 0:e.isMobile},"topbar-actions")]}}}});let oW=e=>oU(e,{required:!0}),oJ=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.uid)?ec(e,l.uid,{required:!0}):oW(e)},oX=(e,t)=>{let l=t||e.context.layout;return(null==l?void 0:l.routeName)&&"admin"!==l.routeName?"notFound":"redirect"},oQ=async(e,t)=>{var l;if(e.getModel(t))return!0;let o=await (null==(l=e.modelRepository)?void 0:l.findOne({uid:t}).catch(()=>null));if(null==o?void 0:o.uid)return!0;let n=await e.loadModel({uid:t}).catch(()=>null);return n&&e.getModel(t)===n&&e.removeModelWithSubModels(t),!!n},oZ=e=>{let{pageUid:t,active:l,getLayoutModel:o}=e,n=(0,u.useFlowEngine)(),{active:i}=li(),r=n.context.routeRepository,a=p.default.useMemo(()=>null==r?void 0:r.refreshAccessible.bind(r),[r]),d=(0,p.useRef)(null);return(0,p.useEffect)(()=>{n.context.defineProperty("deviceType",{get:()=>"browser"===__rspack_external_react_device_detect_2985bda2.deviceType?"computer":__rspack_external_react_device_detect_2985bda2.deviceType,cache:!1,meta:{type:"string",title:n.translate("Current device type"),interface:"select",uiSchema:{enum:[{label:n.translate("Computer"),value:"computer"},{label:n.translate("Mobile"),value:"mobile"},{label:n.translate("Tablet"),value:"tablet"},{label:n.translate("SmartTv"),value:"smarttv"},{label:n.translate("Console"),value:"console"},{label:n.translate("Wearable"),value:"wearable"},{label:n.translate("Embedded"),value:"embedded"}],"x-component":"Select"}},info:{description:"Current device type (computer/mobile/tablet/...).",detail:"string"}})},[n]),oG({flowEngine:n,pageUid:t,active:l??i,refreshDesktopRoutes:a,layoutContentRef:d,getLayoutModel:o}),(0,s.jsx)("div",{ref:d})},o0=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,u.useFlowEngine)(),l=(0,u.useFlowContext)(),o=null==l?void 0:l.layout,n=(0,p.useMemo)(()=>e.getLayoutModel||(e=>oJ(e,o)),[o,e.getLayoutModel]),i=e.legacyPageBehavior||oX(t,o),r=(0,f.n)(),a=t.context.routeRepository,d=(0,h.useParams)(),c=e.pageUid||(null==d?void 0:d.name),m=!a,[g,v]=(0,p.useState)({pending:!0,allowBridge:!1,notFound:!1}),y=(0,p.useRef)(!1),_=(0,p.useRef)(0);if(!c)throw Error("[NocoBase] FlowRoute requires pageUid or route.params.name.");return(0,p.useEffect)(()=>{let e=!0,l=++_.current;return(async()=>{var o,n,s;if(v({pending:!0,allowBridge:!1,notFound:!1}),!m&&!(null==a||null==(o=a.isAccessibleLoaded)?void 0:o.call(a)))try{await (null==a||null==(s=a.ensureAccessibleLoaded)?void 0:s.call(a))}catch(t){e&&l===_.current&&v({pending:!1,allowBridge:!0,notFound:!1});return}if(!e||l!==_.current)return;let d=m||null==a||null==(n=a.getRouteBySchemaUid)?void 0:n.call(a,c);if(!d&&"notFound"===i){let o=await oQ(t,c);e&&l===_.current&&v({pending:!1,allowBridge:o,notFound:!o});return}if((null==d?void 0:d.type)==="page"){if("notFound"===i)return v({pending:!1,allowBridge:!1,notFound:!0});if("bridge"===i)return v({pending:!1,allowBridge:!0,notFound:!1});let t=eQ({app:r,route:d,location:{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash},preserveLocationState:!0});if("document"===t.navigationMode&&t.runtimePath&&!y.current){y.current=!0,window.location.replace(t.runtimePath);return}if("unsupportedV2Runtime"===t.reason){e&&l===_.current&&v({pending:!1,allowBridge:!1,notFound:!0});return}}e&&l===_.current&&v({pending:!1,allowBridge:!0,notFound:!1})})(),()=>{e=!1}},[r,t,i,c,a,m]),(0,p.useMemo)(()=>g.pending?null:g.notFound?(0,s.jsx)(I.bM,{}):g.allowBridge?(0,s.jsx)(oZ,{pageUid:c,active:e.active,getLayoutModel:n}):null,[n,g.allowBridge,g.notFound,g.pending,c,e.active])};o0.displayName="FlowRoute";let o1=o0,o2=e=>e.current,o5=e=>{let{layoutRouteName:t}=e,l=(0,f.n)(),o=(0,u.useFlowEngine)(),n=l.layoutManager.getLayout(t),i=(0,h.useLocation)(),r=(0,h.useMatches)(),a=ec(o,n.uid,{required:!0}),d="admin"===n.routeName?"redirect":"notFound",c=(0,p.useRef)(0),m=(0,p.useMemo)(()=>{let e=r[r.length-1],t=r.find(e=>e.id===n.routeName);return{id:null==e?void 0:e.id,name:null==e?void 0:e.id,pathname:i.pathname,params:(null==e?void 0:e.params)||{},layoutRouteName:n.routeName,layoutBasePathname:null==t?void 0:t.pathname}},[n.routeName,i.pathname,r]);if(!a)throw Error(`[NocoBase] Layout '${n.routeName}' model '${n.uid}' is not mounted.`);let g=a.resolveLayoutRoute(m),v=(0,p.useMemo)(()=>e=>ec(e,n.uid,{required:!0}),[n.uid]);return((0,p.useEffect)(()=>{let e=++c.current;return a.syncLayoutRoute(m),()=>{Promise.resolve().then(()=>{o2(c)===e&&a.clearLayoutRoute(m)}).catch(()=>{})}},[a,m]),"root"===g.type)?null:"notFound"===g.type?(0,s.jsx)(I.bM,{}):(0,s.jsx)(o1,{pageUid:g.pageUid,getLayoutModel:v,legacyPageBehavior:d})};var o8=__webpack_require__(1883);function o4(e){return(0,s.jsx)(g.Card,{...e,children:(0,s.jsx)(g.Skeleton,{paragraph:{rows:3}})})}let o3=e=>e.current;function o6(e){return e===eu||(0,u.isInheritedFrom)(e,eu)}function o9(e,t){if(!(e instanceof eu))throw Error(`[NocoBase] Layout '${t.routeName}' requires model '${t.uid}' to be an instance of BaseLayoutModel.`)}async function o7(e,t){let l=await e.getModelClassAsync(t.layoutModelClass);if(!l)throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' is not registered.`);if(!o6(l))throw Error(`[NocoBase] Layout '${t.routeName}' model class '${t.layoutModelClass}' must extend BaseLayoutModel.`)}let ne=e=>{let{layoutRouteName:t}=e,l=(0,f.n)(),o=(0,u.useFlowEngine)(),n=l.layoutManager.getLayout(t),i=(0,h.useLocation)(),r=(0,h.useMatches)(),a=r[r.length-1],d=r.find(e=>e.id===n.routeName),c=JSON.stringify((null==a?void 0:a.params)||{}),m=(0,p.useMemo)(()=>JSON.parse(c),[c]),g=(0,p.useRef)(0),v=(0,p.useMemo)(()=>({id:null==a?void 0:a.id,name:null==a?void 0:a.id,pathname:i.pathname,params:m,layoutRouteName:n.routeName,layoutBasePathname:null==d?void 0:d.pathname}),[null==a?void 0:a.id,m,n.routeName,null==d?void 0:d.pathname,i.pathname]),{loading:y,data:_,error:b}=(0,o8.useRequest)(async()=>{let e=o.getModel(n.uid);if(e)return o9(e,n),e.setProps({layout:n}),e;await o7(o,n);let t=await o.createModelAsync({uid:n.uid,use:n.layoutModelClass,props:{layout:n}});return o9(t,n),t},{refreshDeps:[o,n]});if((0,p.useEffect)(()=>{if(!_)return;let e=++g.current;return _.syncLayoutRoute(v),()=>{Promise.resolve().then(()=>{o3(g)===e&&_.clearLayoutRoute(v)}).catch(()=>{})}},[_,v]),b)throw b;return y||!_?(0,s.jsx)(o4,{style:{margin:16}}):(0,s.jsx)(u.FlowModelRenderer,{model:_})},nt="RootPageModel",nl="ChildPageModel",no=(e,t)=>{if("string"!=typeof e||""===e.trim())throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a non-empty string.`)},nn=(e,t)=>{if("string"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a string.`)},ni=(e,t)=>{void 0!==e&&no(e,t)},nr=(e,t)=>{if(void 0!==e&&"boolean"!=typeof e)throw Error(`[NocoBase] layoutManager.registerLayout() requires '${t}' to be a boolean.`)};function na(e){if(e.includes("..")||e.startsWith(".")||e.endsWith("."))throw Error(`[NocoBase] layoutManager.registerLayout() received invalid routeName '${e}'.`)}function ns(e,t){let l=t.trim(),o=e.includes(".");if(o&&l.startsWith("/"))throw Error(`[NocoBase] nested layout routePath '${t}' must be relative.`);let n=o?l.replace(/^\/+/,"").replace(/\/+$/,""):`/${l.replace(/^\/+/,"").replace(/\/+$/,"")}`;if(!o&&(!n||"/"===n))throw Error("[NocoBase] layoutManager.registerLayout() does not support root routePath '/'.");if(n.includes("*"))throw Error(`[NocoBase] layoutManager.registerLayout() does not support wildcard routePath '${t}'.`);return n}function nd(e){no(e.routeName,"routeName"),nn(e.routePath,"routePath"),no(e.uid,"uid"),no(e.layoutModelClass,"layoutModelClass"),ni(e.rootPageModelClass,"rootPageModelClass"),ni(e.childPageModelClass,"childPageModelClass"),nr(e.authCheck,"authCheck"),na(e.routeName);let t=ns(e.routeName,e.routePath);return{routeName:e.routeName,rootRouteName:e.routeName.split(".")[0],routePath:t,uid:e.uid,layoutModelClass:e.layoutModelClass,rootPageModelClass:e.rootPageModelClass||nt,childPageModelClass:e.childPageModelClass||nl,authCheck:e.authCheck??!0}}class nu{registerLayout(e){let t=nd(e);if(this.layouts.has(t.routeName))throw Error(`[NocoBase] Layout '${t.routeName}' has already been registered.`);let l=this.uidIndex.get(t.uid);if(l)throw Error(`[NocoBase] Layout uid '${t.uid}' has already been registered by '${l}'.`);return this.layouts.set(t.routeName,t),this.uidIndex.set(t.uid,t.routeName),this.addStandardRoutes(t),t}getLayout(e){let t=this.layouts.get(e);if(!t)throw Error(`[NocoBase] Layout '${e}' is not registered.`);return t}hasLayout(e){return this.layouts.has(e)}listLayouts(){return Array.from(this.layouts.values())}addStandardRoutes(e){let t=e.routeName,l=e.authCheck,o=!1===l;this.app.router.add(t,{path:e.routePath,authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(ne,{layoutRouteName:e.routeName})}),this.app.router.add(J(t),{path:":name",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})}),this.app.router.add(X(t),{path:":name/tab/:tabUid",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})}),this.app.router.add(Q(t),{path:":name/view/*",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})}),this.app.router.add(Z(t),{path:":name/tab/:tabUid/view/*",authCheck:l,skipAuthCheck:o,element:(0,s.jsx)(o5,{layoutRouteName:e.routeName})})}constructor(e){this.layouts=new Map,this.uidIndex=new Map,this.app=e}}class nc{setRoutes(e){this.routes=e,this.accessibleLoaded=!0,this.emitChange()}listAccessible(){return this.routes}isAccessibleLoaded(){return this.accessibleLoaded}async refreshAccessible(){var e;let t=await this.getAPIClient().request({url:"/desktopRoutes:listAccessible",params:{tree:!0,sort:"sort"}}),l=(null==t||null==(e=t.data)?void 0:e.data)||[];return this.setRoutes(l),l}async ensureAccessibleLoaded(){return this.accessibleLoaded?this.routes:(this.accessibleLoadingPromise||(this.accessibleLoadingPromise=this.refreshAccessible().finally(()=>{this.accessibleLoadingPromise=null})),this.accessibleLoadingPromise)}subscribe(e){return this.subscribers.add(e),()=>{this.subscribers.delete(e)}}unsubscribe(e){this.subscribers.delete(e)}async createRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").create({values:e});return l&&await this.refreshAccessible(),o}async updateRoute(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},{refreshAfterMutation:o=!0}=l,n=await this.getResource("desktopRoutes").update(Array.isArray(e)?{filter:{id:{$in:e}},values:t}:{filterByTk:e,values:t});return o&&await this.refreshAccessible(),n}async deleteRoute(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{refreshAfterMutation:l=!0}=t,o=await this.getResource("desktopRoutes").destroy({filterByTk:e});return l&&await this.refreshAccessible(),o}async moveRoute(e){let{refreshAfterMove:t=!0,...l}=e,o=await this.getResource("desktopRoutes").move(l);return t&&await this.refreshAccessible(),o}getRouteBySchemaUid(e){return this.findRoute(this.routes,e)}getAPIClient(){var e;if(!(null==(e=this.ctx)?void 0:e.api))throw Error("[NocoBase] RouteRepository requires context.api.");return this.ctx.api}getResource(e){return this.getAPIClient().resource(e)}emitChange(){this.subscribers.forEach(e=>{e()})}findRoute(e,t){for(let l of e){if(l.schemaUid===t)return l;if(l.children){let e=this.findRoute(l.children,t);if(e)return e}}}constructor(e){this.ctx=e,this.routes=[],this.subscribers=new Set,this.accessibleLoaded=!1,this.accessibleLoadingPromise=null}}class np{getURL(){if(!this.app)return;let e=this.app.getApiUrl();if(!e)return;let t="";if(this.getSubAppName(this.app))t=`?_app=${this.getSubAppName(this.app)}`;else{let e=(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.app.getPublicPath());t=e?`?__appName=${e}`:""}let l=this.options.basename||"/ws";if(this.options.url){let e=new URL(this.options.url);if("localhost"===e.hostname){let o="https:"===location.protocol?"wss":"ws";return`${o}://${location.hostname}:${e.port}${l}${t}`}return`${this.options.url}${t}`}try{let o=new URL(e);return`${"https:"===o.protocol?"wss":"ws"}://${o.host}${l}${t}`}catch(e){return`${"https:"===location.protocol?"wss":"ws"}://${location.host}${l}${t}`}}get reconnectAttempts(){var e;return(null==(e=this.options)?void 0:e.reconnectAttempts)||30}get reconnectInterval(){var e;return(null==(e=this.options)?void 0:e.reconnectInterval)||1e3}get pingInterval(){var e;return(null==(e=this.options)?void 0:e.pingInterval)||3e5}get readyState(){return this._ws?this._ws.readyState:-1}createWebSocket(){return new WebSocket(this.getURL(),this.options.protocols)}connect(){let e;if(!this.enabled||(0===this._reconnectTimes&&console.log("[nocobase-ws]: connecting..."),this._reconnectTimes>=this.reconnectAttempts||this.readyState===WebSocket.OPEN))return;this._reconnectTimes++;let t=this.createWebSocket();t.onopen=()=>{for(let{type:e,listener:l,options:o}of(console.log("[nocobase-ws]: connected."),this.serverDown=!1,this._ws&&this.removeAllListeners(),this._reconnectTimes=0,this._ws=t,this.events))this._ws.addEventListener(e,l,o);e=setInterval(()=>this.send("ping"),this.pingInterval),this.connected=!0,this.emit("open",{})},t.onerror=async()=>{console.log("onerror",this.readyState,this._reconnectTimes)},t.onclose=async t=>{setTimeout(()=>this.connect(),this.reconnectInterval),console.log("onclose",this.readyState,this._reconnectTimes,this.serverDown),this.connected=!1,clearInterval(e)}}reconnect(){this._reconnectTimes=0,this.connect()}close(){if(this._ws)return this._reconnectTimes=this.reconnectAttempts,this._ws.close()}send(e){if(this._ws)return this._ws.send(e)}on(e,t,l){this.events.push({type:e,listener:t,options:l}),this._ws&&this._ws.addEventListener(e,t,l)}emit(e,t){for(let l of this.events)l.type===e&&l.listener(t)}off(e,t,l){let o=0;for(let l of this.events){if(l.type===e&&l.listener===t){this.events.splice(o,1);break}o++}this._ws&&this._ws.removeEventListener(e,t,l)}removeAllListeners(){if(this._ws)for(let{type:e,listener:t,options:l}of this.events)this._ws.removeEventListener(e,t,l)}constructor(e){if(this._reconnectTimes=0,this.events=[],this.connected=!1,this.serverDown=!1,this.lastMessage={},this.getSubAppName=e=>{let t=e.getPublicPath(),l=`^${t}_app/([^/]*)/`,o=location.pathname.match(new RegExp(l));return o?o[1]:null},!e){this.enabled=!1;return}this.options=!0===e?{}:e,this.enabled=!0,(0,d.define)(this,{serverDown:d.observable.ref,connected:d.observable.ref,lastMessage:d.observable.ref})}}function nm(){"use strict";function e(e){for(var t=[],l=0,o=e.length;l<o;l++)-1===t.indexOf(e[l])&&t.push(e[l]);return t}function t(e,t){return JSON.stringify(e)===JSON.stringify(t)}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var l={},o={$is:function(e,t){return e===t},$match:function(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>(null==e?void 0:e.length)===t.length&&(null==e?void 0:e.every((e,l)=>e===t[l]))):JSON.stringify(e)===JSON.stringify(t)},$eq:function(e,l){return Array.isArray(e)&&Array.isArray(l)?t(e,l):Array.isArray(e)?e.includes(l):e==l},$ne:function(e,t){return e!=t},"!==":function(e,t){return e!==t},$gt:function(e,t){return Array.isArray(e)?e.some(e=>e>t):e>t},$gte:function(e,t){return e>=t},$lt:function(e,t,l){return Array.isArray(e)?e.some(e=>e<t):void 0===l?e<t:e<t&&t<l},$lte:function(e,t,l){return void 0===l?e<=t:e<=t&&t<=l},$exists:function(e){return l.truthy(e)},$notEmpty:function(e){return!o.$empty(e)},$empty:function(e){return Array.isArray(e)||"string"==typeof e?0===e.length:null==e},$notExists:function(e){return!l.truthy(e)},"%":function(e,t){return e%t},log:function(e){return e},$in:function(e,t){return!!t&&void 0!==t.indexOf&&(Array.isArray(e)&&Array.isArray(t)?t.some(t=>e.includes(t)):-1!==t.indexOf(e))},$notIn:function(e,t){return!!t&&void 0!==t.indexOf&&-1===t.indexOf(e)},$includes:function(e,t){return!!e&&void 0!==e.indexOf&&(Array.isArray(e)?e.some(e=>null==e?void 0:e.includes(t)):-1!==e.indexOf(t))},$notIncludes:function(e,t){return Array.isArray(e)?!e.some(e=>(e||"").includes(t)):!(e=e||"").includes(t)},$anyOf:function(e,t){return null!=e&&0!==e.length&&(Array.isArray(e)&&Array.isArray(t)&&e.some(e=>Array.isArray(e))?e.some(e=>e.some(e=>t.includes(e))):e.some(e=>t.includes(e)))},$noneOf:function(e,t){return!e||0===e.length||!t||0===t.length||(Array.isArray(e)||(e=[e]),Array.isArray(t)||(t=[t]),!t.some(t=>e.includes(t)))},$notMatch:function(e,t){if((null==e?void 0:e.length)!==(null==t?void 0:t.length))return!0;for(let l=0;l<((null==e?void 0:e.length)||0);l++)if((null==e?void 0:e[l])!==(null==t?void 0:t[l]))return!0;return!1},$dateOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t))return o.$dateBetween(e,t);let l=ny(e),n=ny(t);return!!l&&!!n&&l.getTime()===n.getTime()},$dateBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ny(e),o=ny(t);return!!l&&!!o&&l.getTime()<o.getTime()},$dateNotBefore:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[0]);let l=ny(e),o=ny(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()>=o.getTime()},$dateAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ny(e),o=ny(t);return l.getTime()>o.getTime()},$dateNotAfter:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t)&&(t=t[1]);let l=ny(e),o=ny(t);if(!l||!o)throw Error("Invalid date format");return l.getTime()<=o.getTime()},$dateBetween:function(e,t){if(!e||!t)return!1;t.type&&(t=(0,A.getDayRangeByParams)(t));let l=ny(e),o=nh(t[0]),n=nh(t[1]);if(!l||!o||!n)throw Error("Invalid date format");return l.getTime()>=o.getTime()&&l.getTime()<=n.getTime()},$dateNotOn:function(e,t){if(!e||!t)return!1;if(t.type&&(t=(0,A.getDayRangeByParams)(t)),Array.isArray(t))return!o.$dateBetween(e,t);let l=ny(e),n=ny(t);return l.getTime()!==n.getTime()},$isTruly:function(e){return Array.isArray(e)?e.some(e=>!0===e||1===e):!0===e||1===e},$isFalsy:function(e){return Array.isArray(e)?e.some(e=>!l.truthy(e)):!l.truthy(e)},cat:function(){return Array.prototype.join.call(arguments,"")},substr:function(e,t,l){if(l<0){var o=String(e).substr(t);return o.substr(0,o.length+l)}return String(e).substr(t,l)},"+":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)+parseFloat(t,10)},0)},"*":function(){return Array.prototype.reduce.call(arguments,function(e,t){return parseFloat(e,10)*parseFloat(t,10)})},"-":function(e,t){return void 0===t?-e:e-t},"/":function(e,t){return e/t},min:function(){return Math.min.apply(this,arguments)},max:function(){return Math.max.apply(this,arguments)},merge:function(){return Array.prototype.reduce.call(arguments,function(e,t){return e.concat(t)},[])},var:function(e,t){var l=void 0===t?null:t,o=this;if(void 0===e||""===e||null===e)return o;for(var n=String(e).split("."),i=0;i<n.length;i++)if(null==o||void 0===(o=o[n[i]]))return l;return o},missing:function(){for(var e=[],t=Array.isArray(arguments[0])?arguments[0]:arguments,o=0;o<t.length;o++){var n=t[o],i=l.apply({var:n},this);(null===i||""===i)&&e.push(n)}return e},missing_some:function(e,t){var o=l.apply({missing:t},this);return t.length-o.length>=e?[]:o}};return l.is_logic=function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&1===Object.keys(e).length&&!e.type},l.truthy=function(e){return(!Array.isArray(e)||0!==e.length)&&!!e},l.getOperator=function(e){return Object.keys(e)[0]},l.getValues=function(e){return e[l.getOperator(e)]},l.apply=function(e,t){if(Array.isArray(e))return e.map(function(e){return l.apply(e,t)});if(!l.is_logic(e))return e;var n,i,r,a,s,d=l.getOperator(e),u=e[d];if(Array.isArray(u)||(u=[u]),"if"===d||"?:"==d){for(n=0;n<u.length-1;n+=2)if(l.truthy(l.apply(u[n],t)))return l.apply(u[n+1],t);return u.length===n+1?l.apply(u[n],t):null}if("$and"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),l.truthy(i));n+=1);return i}if("or"===d){for(n=0;n<u.length&&(i=l.apply(u[n],t),!l.truthy(i));n+=1);return i}if("filter"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.filter(function(e){return l.truthy(l.apply(r,e))}):[];if("map"===d)return(a=l.apply(u[0],t),r=u[1],Array.isArray(a))?a.map(function(e){return l.apply(r,e)}):[];else if("reduce"===d)return(a=l.apply(u[0],t),r=u[1],s=void 0!==u[2]?u[2]:null,Array.isArray(a))?a.reduce(function(e,t){return l.apply(r,{current:t,accumulator:e})},s):s;else if("all"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(!l.truthy(l.apply(r,a[n])))return!1;return!0}else if("none"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!0;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!1;return!0}else if("some"===d){if(a=l.apply(u[0],t),r=u[1],!Array.isArray(a)||!a.length)return!1;for(n=0;n<a.length;n+=1)if(l.truthy(l.apply(r,a[n])))return!0;return!1}if(u=u.map(function(e){return l.apply(e,t)}),Object.prototype.hasOwnProperty.call(o,d)&&"function"==typeof o[d])return o[d].apply(t,u);if(d.indexOf(".")>0){var c=String(d).split("."),p=o;for(n=0;n<c.length;n++){if(!Object.prototype.hasOwnProperty.call(p,c[n]))throw Error("Unrecognized operation "+d+" (failed at "+c.slice(0,n+1).join(".")+")");p=p[c[n]]}return p.apply(t,u)}throw Error("Unrecognized operation "+d)},l.uses_data=function(t){var o=[];if(l.is_logic(t)){var n=l.getOperator(t),i=t[n];Array.isArray(i)||(i=[i]),"var"===n?o.push(i[0]):i.forEach(function(e){o.push.apply(o,l.uses_data(e))})}return e(o)},l.addOperation=function(e,t){o[e]=t},l.rmOperation=function(e){delete o[e]},l.rule_like=function(e,t){if(t===e||"@"===t)return!0;if("number"===t)return"number"==typeof e;if("string"===t)return"string"==typeof e;if("array"===t)return Array.isArray(e)&&!l.is_logic(e);if(l.is_logic(t)){if(l.is_logic(e)){var o=l.getOperator(t),n=l.getOperator(e);if("@"===o||o===n)return l.rule_like(l.get_values(e,!1),l.get_values(t,!1))}return!1}if(Array.isArray(t)&&Array.isArray(e)){if(t.length!==e.length)return!1;for(var i=0;i<t.length;i+=1)if(!l.rule_like(e[i],t[i]))return!1;return!0}return!1},l}function nh(e){return new Date(e.includes("T")&&e.endsWith("Z")?e:e.includes(" ")?e.replace(" ","T"):`${e}T00:00:00`)}function nf(e){let[t,l]=e.split("-").map(Number);return new Date(t,l-1)}function ng(e){return new Date(parseInt(e.slice(0,4)),(parseInt(e.slice(5,6))-1)*3)}function nv(e){return new Date(parseInt(e),0)}function ny(e){let t=Array.isArray(e)?e[1]??e[0]:e;if(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(t))return new Date(t);if(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(t))return new Date(t.replace(" ","T"));if(/^\d{4}-\d{2}-\d{2}$/.test(t))return nh(t);if(/^\d{4}-\d{2}$/.test(t))return nf(t);if(/^\d{4}Q[1-4]$/.test(t))return ng(t);else if(/^\d{4}$/.test(t))return nv(t);return null}var n_=__webpack_require__(2741),nb=__webpack_require__(6220),nx=__webpack_require__(7404),nM=__webpack_require__(8198);function nw(e,t,l){e.define(t,()=>l),window.__nocobase_app_dev__&&(window.__nocobase_app_dev_deps__=window.__nocobase_app_dev_deps__||{},window.__nocobase_app_dev_deps__[t]=l)}function nS(e){nw(e,"react",p.default),nw(e,"react-dom",tU.default),nw(e,"react/jsx-runtime",s.default),nw(e,"react-router",__rspack_external_react_router_65608a1a),nw(e,"react-router-dom",h),nw(e,"antd",g),nw(e,"@ant-design/icons",e1),nw(e,"@ant-design/cssinjs",__rspack_external__ant_design_cssinjs_c619260f),nw(e,"antd-style",__rspack_external_antd_style_1dcbd21e),nw(e,"i18next",__rspack_external_i18next),nw(e,"react-i18next",m),nw(e,"@formily/antd-v5",nb),nw(e,"@formily/core",__rspack_external__formily_core_1e27a7e0),nw(e,"@formily/react",ly),nw(e,"@formily/reactive",d),nw(e,"@formily/shared",nx),nw(e,"@nocobase/utils",A),nw(e,"@nocobase/utils/client",A),nw(e,"@nocobase/client-v2",n),nw(e,"@nocobase/client-v2/client-v2",n),nw(e,"@nocobase/flow-engine",u),nw(e,"@nocobase/evaluators",__rspack_external__nocobase_evaluators_client_1caf2629),nw(e,"@nocobase/evaluators/client",__rspack_external__nocobase_evaluators_client_1caf2629),nw(e,"@dnd-kit/core",tK),nw(e,"@dnd-kit/sortable",nM),nw(e,"@ctrl/tinycolor",n_),nw(e,"ahooks",o8),nw(e,"axios",__rspack_external_axios.default),nw(e,"dayjs",A.dayjs),nw(e,"lodash",c.default),nw(e,"@emotion/css",S),nw(e,"file-saver",__rspack_external_file_saver_8b74c2e4)}var nk=__webpack_require__(6104);let nF=/^\/+/,nC=/\/+$/,nA=e=>{let t=nF.exec(e);return t?e.slice(t[0].length):e},nP=e=>{let t=nC.exec(e);return t?e.slice(0,-t[0].length):e},nT=e=>(0,__rspack_external_react_is_98317e95.isValidElementType)(e);class nj{get pm(){return this.pluginManager}get disableAcl(){return this.options.disableAcl}get isWsAuthorized(){return this.wsAuthorized}setDocumentLanguage(e){"u">typeof document&&(e?document.documentElement.lang=e:document.documentElement.removeAttribute("lang"))}defineObservableState(){(0,d.define)(this,{maintained:d.observable.ref,maintaining:d.observable.ref,error:d.observable.ref,apps:d.observable})}initializeExtendedState(){this.systemSettings=new L.o(this.apiClient)}afterManagersInitialized(){this.aiManager=new T(this),this.jsonLogic=nm()}configureContext(){}configureRuntimeAdapters(){}addCustomProviders(){}initListeners(){this.eventBus.addEventListener("auth:tokenChanged",e=>{let t=e.detail;(null==t?void 0:t.token)&&this.setTokenInWebSocket(t)}),this.eventBus.addEventListener("maintaining:end",()=>{this.apiClient.auth.token&&this.setTokenInWebSocket({token:this.apiClient.auth.token,authenticator:this.apiClient.auth.getAuthenticator()})})}setTokenInWebSocket(e){let{token:t,authenticator:l}=e;this.maintaining||this.ws.send(JSON.stringify({type:"auth:token",payload:{token:t,authenticator:l}}))}initRequireJs(){if(void 0===globalThis.window)return;let e=globalThis.window;if(e.requirejs){this.requirejs=e.requirejs;return}e.requirejs=this.requirejs=(0,nk.b)(),nS(this.requirejs),e.define=this.requirejs.define}configureBaseContext(){this.flowEngine.context.defineProperty("app",{value:this}),this.flowEngine.context.defineProperty("api",{value:this.apiClient}),this.flowEngine.context.defineProperty("i18n",{value:this.i18n}),this.flowEngine.context.defineProperty("router",{get:()=>this.router.router,cache:!1}),this.flowEngine.context.defineProperty("documentTitle",{get:()=>document.title}),this.flowEngine.context.defineProperty("route",{get:()=>{},observable:!0}),this.flowEngine.context.defineProperty("location",{get:()=>location,observable:!0}),this.flowEngine.context.defineProperty("routeRepository",{value:new nc(this.flowEngine.context)}),this.flowEngine.context.defineProperty("appInfo",{get:async()=>{var e;return(null==(e=(await this.apiClient.request({url:"app:getInfo"})).data)?void 0:e.data)||{}}}),this.flowEngine.context.defineProperty("pageInfo",{value:(0,d.observable)({version:void 0})}),this.flowEngine.context.defineProperty("systemSettings",{get:()=>this.systemSettings})}addBaseProviders(){this.use(m.I18nextProvider,{i18n:this.i18n}),this.use(u.FlowEngineProvider,{engine:this.flowEngine}),this.use(C),this.use(_)}addFinalProviders(){this.use(u.FlowEngineGlobalsContextProvider)}addReactRouterComponents(){this.addComponents({Link:h.Link,Navigate:h.Navigate,NavLink:h.NavLink})}addRoutes(){this.router.add("not-found",{path:"*",Component:()=>null})}updateFavicon(e){let t=document.querySelector('link[rel="shortcut icon"]');arguments.length>0&&(this.favicon=e||"");let l=this.favicon||"/favicon/favicon.ico";t?t.href=l:((t=document.createElement("link")).rel="shortcut icon",t.href=l,document.head.appendChild(t))}setWsAuthorized(e){this.wsAuthorized=e}setMaintaining(e){this.maintaining!==e&&(this.maintaining=e,e||this.eventBus.dispatchEvent(new Event("maintaining:end")))}getOptions(){return this.options}getName(){return(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(this.getPublicPath())||null}getCdnUrl(){return window.__webpack_public_path__||this.getPublicPath()}getPublicPath(){let e=this.options.publicPath||"/";return e.endsWith("/")||(e+="/"),e}getApiUrl(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.apiClient.axios.defaults.baseURL??"";if(!t.startsWith("http://")&&!t.startsWith("https://")){let{protocol:e,host:l}=globalThis.window.location;t=`${e}//${l}${t}`}return`${nP(t)}/${nA(e)}`}getRouteUrl(e){return this.getPublicPath()+nA(e)}getHref(e){let t=this.name;return t&&"main"!==t?`${this.getPublicPath()}apps/${t}/${nA(e)}`:this.getPublicPath()+nA(e)}getComposeProviders(){let e=lC(...this.providers)(I.ct);return e.displayName="Providers",e}use(e,t){return this.addProvider(e,t)}addProvider(e,t){return this.providers.push([e,t])}addProviders(e){e.forEach(e=>{Array.isArray(e)?this.addProvider(e[0],e[1]):this.addProvider(e)})}getComponent(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],l=e=>t&&console.error(e);if(!e)return void l(`getComponent called with ${e}`);if("string"==typeof e){let t=(0,c.get)(this.components,e);return t||void l(`Component ${e} not found`)}if(nT(e))return e;l(`Component ${e} should be a string or a React component`)}renderComponent(e,t,l){let o=this.getComponent(e);return o?p.default.createElement(o,t,l):null}addComponent(e,t){let l=e,o=t||l.displayName||l.name;o?(0,c.set)(this.components,o,e):console.error("Component must have a displayName or pass name as second argument")}addComponents(e){Object.keys(e).forEach(t=>{this.addComponent(e[t],t)})}setAppsComponent(e){let{Component:t}=e;this.apps.Component=t}setAppsProvider(e){let{loadAppList:t}=e;this.apps.loadAppList=t}getRootFallback(){return this.renderComponent("AppSpin")}getRootComponent(){let e=this.model,t=this.flowEngine,l=()=>this.getRootFallback();return o=>{let{children:n}=o;return(0,p.useLayoutEffect)(()=>{e.setProps({children:n})},[n]),(0,s.jsx)(u.FlowEngineProvider,{engine:t,children:(0,s.jsx)(u.FlowModelRenderer,{fallback:l(),model:e})})}}mount(e){let t=lF(e);if(t){let e=this.getRootComponent(),l=(0,__rspack_external_react_dom_client_76b1397c.createRoot)(t);return l.render((0,s.jsx)(e,{})),l}}createLayoutManager(e){return new nu(this)}createWebSocketClient(e){return new np(e.ws??!1)}getDefaultComponents(){return{AppNotFound:I.bM,AppError:I.uV,AppSpin:I.gv,AppMaintaining:I.be,AppMaintainingDialog:I.tp}}constructor(e={}){this.options=e,this.eventBus=new EventTarget,this.providers=[],this.scopes={},this.components={},this.maintained=!1,this.maintaining=!1,this.error=null,this.wsAuthorized=!1,this.apps={Component:null,loadAppList:null},this.initRequireJs(),this.defineObservableState(),this.devDynamicImport=e.devDynamicImport,this.scopes=(0,c.merge)(this.scopes,e.scopes),this.components=(0,c.merge)(this.getDefaultComponents(),e.components),this.name=this.options.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)||"main",this.apiClient=this.createApiClient(e),this.initializeExtendedState(),this.i18n=this.createI18n(e),this.router=this.createRouterManager(e),this.layoutManager=this.createLayoutManager(e),this.pluginManager=this.createPluginManager(e),this.flowEngine=new u.FlowEngine,this.flowEngine.registerModels({ApplicationModel:nD}),this.model=this.flowEngine.createModel({use:"ApplicationModel",uid:"__app_model__"}),this.context=this.flowEngine.context,this.configureRuntimeAdapters(),this.context.defineProperty("pluginManager",{get:()=>this.pluginManager}),this.configureBaseContext(),this.configureContext(),this.addBaseProviders(),this.addCustomProviders(),this.addFinalProviders(),this.addReactRouterComponents(),this.addProviders(e.providers||[]),this.ws=this.createWebSocketClient(e),this.ws.app=this,this.pluginSettingsManager=this.createPluginSettingsManager(e),this.addRoutes(),this.i18n.on("languageChanged",e=>{this.apiClient.auth.locale=e,this.setDocumentLanguage(e)}),this.initListeners(),this.afterManagersInitialized()}}var nI=new WeakMap,nL=new WeakMap;class nD extends u.FlowModel{get app(){return this.context.app}getProviders(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,nI,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nI)||this.app.getComposeProviders()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nI)}getRouter(){return(0,__rspack_external__swc_helpers_class_private_field_set_77a3a28f._)(this,nL,(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nL)||this.app.router.getRouterComponent()),(0,__rspack_external__swc_helpers_class_private_field_get_6a9332d2._)(this,nL)}render(){return this.app.maintaining&&!this.app.maintained?(0,s.jsx)(s.Fragment,{children:this.renderMaintaining()}):this.app.error&&!this.app.maintaining?(0,s.jsx)(s.Fragment,{children:this.renderError()}):(0,s.jsxs)(s.Fragment,{children:[this.renderContent(),this.app.maintaining&&this.app.maintained?this.renderMaintainingDialog():null]})}renderMaintaining(){return this.app.renderComponent("AppMaintaining",{app:this.app,error:this.app.error})}renderMaintainingDialog(){return this.app.renderComponent("AppMaintainingDialog",{app:this.app,error:this.app.error})}renderError(){return this.app.renderComponent("AppError",{app:this.app,error:this.app.error})}renderContent(){let e=this.app.getComponent("AppError",!1),t=this.getRouter(),l=this.getProviders(),o=(0,s.jsx)(t,{BaseLayout:l});if(!e)return o;let n=(e,t)=>{var l;console.error(e);let o=null==(l=t.componentStack)?void 0:l.trim();if(!o)return;let n=Error("React component stack");n.stack=o,console.error(n)};return(0,s.jsx)(__rspack_external_react_error_boundary_ac55bb72.ErrorBoundary,{FallbackComponent:t=>(0,s.jsx)(e,{app:this.app,...t}),onError:n,children:o})}constructor(...e){super(...e),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,nI,{writable:!0,value:void 0}),(0,__rspack_external__swc_helpers_class_private_field_init_bfcd6df5._)(this,nL,{writable:!0,value:void 0})}}nD.registerFlow({key:"appFlow",steps:{init:{async handler(e){try{await e.app.load()}catch(t){e.model.app.error=t,console.error(t)}}}}});let nR=[{label:'{{t("contains")}}',value:"$includes",selected:!0},{label:'{{t("does not contain")}}',value:"$notIncludes"},{label:'{{t("is")}}',value:"$eq"},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nE=[{label:'{{t("is")}}',value:"$match",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is not")}}',value:"$notMatch",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is any of")}}',value:"$anyOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$noneOf",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nY=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"}],nN=[{label:"{{ t('is') }}",value:"$dateOn",selected:!0,schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is not') }}",value:"$dateNotOn",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is before') }}",value:"$dateBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is after') }}",value:"$dateAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or after') }}",value:"$dateNotBefore",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is on or before') }}",value:"$dateNotAfter",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!1}},onlyFilterAction:!0},{label:"{{ t('is between') }}",value:"$dateBetween",schema:{"x-component":"DateFilterDynamicComponent","x-component-props":{isRange:!0}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],nO=[{label:'{{t("=")}}',value:"$eq",selected:!0},{label:'{{t("≠")}}',value:"$ne"},{label:'{{t(">")}}',value:"$gt"},{label:'{{t("≥")}}',value:"$gte"},{label:'{{t("<")}}',value:"$lt"},{label:'{{t("≤")}}',value:"$lte"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nB=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$ne"},{label:'{{t("exists")}}',value:"$exists",noValue:!0},{label:'{{t("not exists")}}',value:"$notExists",noValue:!0}],nV=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"Select","x-component-props":{mode:null}}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"Select","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nH=[{label:'{{t("is")}}',value:"$eq",selected:!0},{label:'{{t("is not")}}',value:"$neq"},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nq=[{label:'{{t("Yes")}}',value:"$isTruly",selected:!0,noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:'{{t("No")}}',value:"$isFalsy",noValue:!0,schema:{"x-component":"Select","x-component-props":{multiple:!1,options:[{label:'{{t("Yes")}}',value:!0},{label:'{{t("No")}}',value:!1}]}}},{label:"{{ t('is empty') }}",value:"$empty",noValue:!0},{label:"{{ t('is not empty') }}",value:"$notEmpty",noValue:!0}],n$=[{label:'{{t("is any of")}}',value:"$childIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$childNotIn",schema:{"x-component":"CollectionSelect","x-component-props":{mode:"tags"}}}],nz=[{label:'{{t("is")}}',value:"$eq",selected:!0,schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is not")}}',value:"$ne",schema:{"x-component":"DataSourceCollectionCascader"}},{label:'{{t("is any of")}}',value:"$in",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is none of")}}',value:"$notIn",schema:{"x-component":"DataSourceCollectionCascader","x-component-props":{mode:"tags"}}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0}],nK=[{label:'{{t("contains")}}',value:"$includes",selected:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("does not contain")}}',value:"$notIncludes",schema:{type:"string","x-component":"Input"}},{label:'{{t("is")}}',value:"$eq",schema:{type:"string","x-component":"Input"}},{label:'{{t("is not")}}',value:"$ne",schema:{type:"string","x-component":"Input"}},{label:'{{t("is empty")}}',value:"$empty",noValue:!0,schema:{type:"string","x-component":"Input"}},{label:'{{t("is not empty")}}',value:"$notEmpty",noValue:!0,schema:{type:"string","x-component":"Input"}}];class nU{register(e){return this.operators[e.value]=e,this}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.forEach(e=>{this.register(e)}),this}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]=l,this}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=this.resolveOperatorReferences(t);return this.registerMany(l),this.groups[e]||(this.groups[e]=[]),l.forEach(t=>{this.groups[e].some(e=>e.value===t.value)||this.groups[e].push(t)}),this}get(e){return this.operators[e]}getGroup(e){return this.groups[e]||[]}getGroups(){return this.groups}resolveOperators(e){return e?"string"==typeof e?this.getGroup(e):e:[]}resolveOperatorReferences(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.map(e=>"string"==typeof e?this.get(e):e).filter(e=>!!e)}constructor(e={}){this.operators={},this.groups={},Object.entries(e).forEach(e=>{let[t,l]=e;this.registerGroup(t,l)})}}let nG=new nU(e),nW=nG.getGroups(),nJ=nW;function nX(e){return nG.resolveOperators(e)}function nQ(e){if(!e)return e;let t=Array.isArray(e.operatorOverrides)?e.operatorOverrides:[];e.operatorGroup&&(e.operators=nZ(nX(e.operatorGroup),t));let l=e.operators;return"string"==typeof l?(e.operatorGroup=l,e.operators=nZ(nX(l),t)):Array.isArray(l)?e.operators=nZ(l,t):t.length>0&&(e.operators=[...t]),Array.isArray(e.children)&&e.children.forEach(e=>{e&&"object"==typeof e&&nQ(e)}),e}function nZ(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0===t.length)return e;let l=[...e];return t.forEach(e=>{let t=l.findIndex(t=>t.value===e.value);-1===t?l.push(e):l[t]=e}),l}function n0(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{...t,operatorGroup:e,operators:nX(e)}}function n1(e,t){return{operators:e.flatMap(e=>{let{types:l,operators:o}=e;return nX(o).map(e=>({...e,visible:o=>{let n=l.includes(t(o));return"function"==typeof e.visible?e.visible(o)&&n:n}}))})}}let n2="CollectionSelect",n5=new Set(["name","uiSchema.title"]),n8=new Set(["Grid","Grid.Row","Grid.Col","div"]);function n4(e){return{...e.context,...e.values}}function n3(e,t){if("boolean"==typeof e)return e;if("string"!=typeof e)return!1;let l=e.replace(/^\s*\{\{\s*/,"").replace(/\s*\}\}\s*$/,""),o=n4(t),n=e=>{let t=e.trim().replace(/^\$/,"");if(!t)return!1;if(t.startsWith("!"))return!n(t.slice(1).trim());if("true"===t)return!0;if("false"===t)return!1;let l=t.match(/^([A-Za-z_$][\w$]*)\((.*)\)$/);if(l){let[,e,t]=l,n=(0,c.get)(o,e);return"function"==typeof n&&!!n(...t.split(",").map(e=>e.trim()).filter(Boolean).map(e=>e.replace(/^['"]|['"]$/g,"")))}return!!(0,c.get)(o,t)};return l.split("||").some(e=>e.split("&&").every(e=>n(e)))}function n6(e){return"string"==typeof e?t=>n3(e,t):e}function n9(e){return(null==e?void 0:e["x-hidden"])!==void 0?n6(e["x-hidden"]):(null==e?void 0:e["x-visible"])!==void 0?t=>!n3(e["x-visible"],t):void 0}function n7(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",l=arguments.length>2?arguments[2]:void 0;return Object.entries(e||{}).flatMap(e=>{let[o,n]=e,i=t?`${t}.${o}`:o,r=null==n?void 0:n.properties,a=null==n?void 0:n["x-component"];if(r&&"Grid.Row"===a){let e=Object.entries(r).filter(e=>{let[,t]=e;return(null==t?void 0:t["x-component"])==="Grid.Col"}),l=e.length>0?Math.floor(24/e.length):24;return e.flatMap((e,o)=>{let[n,r]=e;return n7((null==r?void 0:r.properties)||{},t,{row:i,column:n,columnIndex:o,span:l})})}return r&&(!a||n8.has(a))?n7(r,t,l):[{name:i,schema:n,layout:l}]})}function ie(e,t){return!n5.has(e)&&(!!(null==t?void 0:t["x-component"])||(null==t?void 0:t.default)!==void 0||(null==t?void 0:t["x-hidden"])!==void 0)}function it(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n7(e).filter(e=>{let{name:t,schema:l}=e;return ie(t,l)}).map(e=>{var l;let{name:o,schema:n,layout:i}=e,r=null==n?void 0:n["x-component"];return{name:o,title:(null==n?void 0:n.title)||(null==n?void 0:n["x-content"]),component:r,Component:r?null==(l=t.components)?void 0:l[r]:void 0,componentProps:null==n?void 0:n["x-component-props"],defaultValue:null==n?void 0:n.default,description:null==n?void 0:n.description,hidden:n9(n),disabled:n6(null==n?void 0:n["x-disabled"]),options:Array.isArray(null==n?void 0:n.enum)?n.enum:void 0,required:null==n?void 0:n.required,schema:n,layout:i}})}let il=[{label:"MMMM Do YYYY",value:"MMMM Do YYYY"},{label:"YYYY-MM-DD",value:"YYYY-MM-DD"},{label:"MM/DD/YY",value:"MM/DD/YY"},{label:"YYYY/MM/DD",value:"YYYY/MM/DD"},{label:"DD/MM/YYYY",value:"DD/MM/YYYY"},{label:'{{t("Custom")}}',value:"custom"}],io=[{label:'{{t("12 hour")}}',value:"hh:mm:ss a"},{label:'{{t("24 hour")}}',value:"HH:mm:ss"}];function ii(e){return(0,c.get)(e,"uiSchema.x-component-props.picker")||"date"}function ir(e){return(0,c.get)(e,"uiSchema.x-component-props.showTime")}function ia(e,t){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("unique"===e||"primaryKey"===e)return{disabled:!l.createMainOnly||!!l.primaryKeyOnly};if("autoIncrement"===e)return{disabled:!l.createMainOnly};if(e.startsWith("reverseField."))return{disabled:!l.showReverseFieldConfig,hidden:!l.showReverseFieldConfig};if("autoCreateReverseField"===e&&(0,c.get)(t,"reverseField.key"))return{disabled:!0};if("uiSchema.x-component-props.dateFormat"===e)return{componentProps:{picker:ii(t)}};if("uiSchema.x-component-props.showTime"===e)return{hidden:"date"!==ii(t)};if("uiSchema.x-component-props.timeFormat"===e)return{hidden:"date"!==ii(t)||!1===ir(t)};if("defaultValue"===e){let e=!!(0,c.get)(t,"primaryKey")||!!(0,c.get)(t,"unique")||!!(0,c.get)(t,"autoIncrement")||!!(0,c.get)(t,"defaultToCurrentTime");return{hidden:e,...e?{value:null,hasValue:!0}:null,componentProps:{gmt:(0,c.get)(t,"uiSchema.x-component-props.gmt"),showTime:(0,c.get)(t,"uiSchema.x-component-props.showTime"),dateFormat:(0,c.get)(t,"uiSchema.x-component-props.dateFormat"),timeFormat:(0,c.get)(t,"uiSchema.x-component-props.timeFormat"),picker:(0,c.get)(t,"uiSchema.x-component-props.picker"),format:(0,c.get)(t,"uiSchema.x-component-props.format")},dataSource:(0,c.get)(t,"uiSchema.enum")}}return("precision"===e||"scale"===e)&&"decimal"!==(0,c.get)(t,"type")?{hidden:!0}:{}}function is(e){let{context:t,getValue:l,setValue:o,values:n}=e,i=!!l("primaryKey"),r=!!l("unique");if(t.createMainOnly&&i&&(!e.changedName||"primaryKey"===e.changedName)&&(!1!==l("unique")&&o("unique",!1),(0,c.has)(n,"autoIncrement")&&!0!==l("autoIncrement")&&o("autoIncrement",!0)),t.createMainOnly&&r&&i&&"unique"===e.changedName&&o("primaryKey",!1),(0,c.get)(n,"reverseField.key")&&!0!==l("autoCreateReverseField")&&o("autoCreateReverseField",!0),("uiSchema.x-component-props.picker"===e.changedName||["primaryKey","unique","autoIncrement","defaultToCurrentTime"].includes(e.changedName||""))&&null!=l("defaultValue")&&(l("primaryKey")||l("unique")||l("autoIncrement")||l("defaultToCurrentTime")||"uiSchema.x-component-props.picker"===e.changedName)&&o("defaultValue",null),!((0,c.has)(n,"uiSchema.x-component-props.picker")||(0,c.has)(n,"uiSchema.x-component-props.dateFormat")||(0,c.has)(n,"uiSchema.x-component-props.showTime")||(0,c.has)(n,"uiSchema.x-component-props.timeFormat")))return;let a=ii(n);"uiSchema.x-component-props.picker"===e.changedName&&(0,c.has)(n,"uiSchema.x-component-props.dateFormat")&&(0,c.get)(n,"uiSchema.x-component-props.dateFormat")!==(0,A.getPickerFormat)(a)&&o("uiSchema.x-component-props.dateFormat",(0,A.getPickerFormat)(a)),(0,c.has)(n,"uiSchema.x-component-props.showTime")&&"date"!==a&&!1!==ir(n)&&o("uiSchema.x-component-props.showTime",!1),(0,c.has)(n,"uiSchema.x-component-props.timeFormat")&&ir(n)&&!(0,c.get)(n,"uiSchema.x-component-props.timeFormat")&&o("uiSchema.x-component-props.timeFormat","HH:mm:ss")}function id(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[{name:"primaryKey",title:'{{t("Primary")}}',component:"Checkbox"},{name:"unique",title:'{{t("Unique")}}',component:"Checkbox"}];return e.autoIncrement&&t.push({name:"autoIncrement",title:'{{t("Auto increment")}}',component:"Checkbox"}),t}function iu(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[];return!1!==e.includePicker&&t.push({name:"uiSchema.x-component-props.picker",title:'{{t("Picker")}}',component:"Radio.Group",defaultValue:"date",options:[{label:'{{t("Date")}}',value:"date"},{label:'{{t("Month")}}',value:"month"},{label:'{{t("Quarter")}}',value:"quarter"},{label:'{{t("Year")}}',value:"year"}],hidden:e.hidden}),t.push({name:"uiSchema.x-component-props.dateFormat",title:'{{t("Date format")}}',component:"ExpiresRadio",defaultValue:"YYYY-MM-DD",options:il,componentProps:{defaultValue:"dddd",formats:["MMMM Do YYYY","YYYY-MM-DD","MM/DD/YY","YYYY/MM/DD","DD/MM/YYYY"]},hidden:e.hidden},{name:"uiSchema.x-component-props.showTime",title:'{{t("Show time")}}',component:"Checkbox",defaultValue:e.showTimeDefault,hidden:e.hidden},{name:"uiSchema.x-component-props.timeFormat",title:'{{t("Time format")}}',component:"Radio.Group",defaultValue:"HH:mm:ss",options:io,hidden:t=>!!("function"==typeof e.hidden&&e.hidden(t))||("boolean"==typeof e.hidden?e.hidden:!1===ir(t.values))}),t}function ic(){return[{name:"autoCreateReverseField",title:'{{t("Create inverse field in the target collection")}}',component:"Checkbox",defaultValue:!1},{name:"reverseField.type",title:'{{t("Inverse relationship type")}}',component:"Select",required:!0,options:[{label:"{{t('HasOne')}}",value:"hasOne"},{label:"{{t('HasMany')}}",value:"hasMany"},{label:"{{t('BelongsTo')}}",value:"belongsTo"},{label:"{{t('BelongsToMany')}}",value:"belongsToMany"}],hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,c.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.uiSchema.title",title:'{{t("Inverse field display name")}}',component:"Input",required:!0,hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,c.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}},{name:"reverseField.name",title:'{{t("Inverse field name")}}',component:"Input",required:!0,description:"{{t('Randomly generated and can be modified. Support letters, numbers and underscores, must start with a letter.')}}",hidden:e=>{let{context:t,values:l}=e;return!t.showReverseFieldConfig&&!(0,c.get)(l,"autoCreateReverseField")},disabled:e=>{let{context:t}=e;return!t.showReverseFieldConfig}}]}let ip=ic;function im(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{name:e.name||"uiSchema.enum",title:e.title||'{{t("Options")}}',component:"ArrayTable"}}let ih={key:"required",label:"Required",hasValue:!1,params:[]};function ig(e){let t="date"===e?"datePicker":"inputNumber",l="date"===e?"date":"limit";return[{key:"greater",label:"Greater than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"less",label:"Less than",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"max",label:"Max value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]},{key:"min",label:"Min value",hasValue:!0,params:[{key:l,label:"date"===e?"Date":"Limit",componentType:t,required:!0}]}]}class iv{register(e){this.items.set(e.key,(0,c.cloneDeep)(e))}registerMany(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];e.forEach(e=>this.register(e))}registerGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,t)}addToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.groups.set(e,[...this.groups.get(e)||[],...t])}get(e){return(0,c.cloneDeep)(this.items.get(e))}getGroup(e){return(this.groups.get(e)||[]).map(e=>"string"==typeof e?this.get(e):(0,c.cloneDeep)(e)).filter(Boolean)}constructor(){this.items=new Map,this.groups=new Map}}let iy=new iv;function i_(e){iy.register(e)}function ib(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iy.registerGroup(e,t)}function ix(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iy.addToGroup(e,t)}iy.registerMany([ih,{key:"pattern",label:"Pattern",hasValue:!0,params:[{key:"regex",label:"Regular Expression",componentType:"text",required:!0}]},{key:"email",label:"Email",hasValue:!1,params:[],paramsType:"object"},{key:"uuid",label:"UUID",hasValue:!1,params:[],paramsType:"object"},{key:"length",label:"Length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"uri",label:"URI",hasValue:!1,params:[],paramsType:"object"},{key:"multiple",label:"Multiple",hasValue:!0,params:[{key:"base",label:"Base",componentType:"inputNumber",required:!0}]},{key:"integer",label:"Integer",hasValue:!1,params:[]},{key:"precision",label:"Precision",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"unsafe",label:"Unsafe integer",hasValue:!1,params:[]},{key:"timestamp",label:"Timestamp",hasValue:!0,params:[{key:"type",label:"Type",componentType:"singleSelect",options:[{label:"JavaScript",value:"javascript"},{label:"Unix",value:"unix"}],defaultValue:"javascript"}]}]),iy.registerGroup("string",["required",{key:"max",label:"Max length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},{key:"min",label:"Min length",hasValue:!0,params:[{key:"limit",label:"Limit",componentType:"inputNumber",required:!0}]},"pattern","email","uuid","length","uri"]),iy.registerGroup("number",["required",...ig("number"),"multiple","integer","precision","unsafe"]),iy.registerGroup("date",["required",...ig("date"),"timestamp"]),iy.registerGroup("object",["required"]);class iM{addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=e.reduce((e,t)=>{if("function"!=typeof t)return e;let l=new t(this);return(null==l?void 0:l.name)&&(nQ(l.filterable),e[l.name]=l,Array.isArray(this.actionList[l.name])&&(this.actionList[l.name].forEach(e=>{var t,o;if("addComponentOption"===e.type){null==(o=l.addComponentOption)||o.call(l,e.data);return}if("registerConfigure"===e.type){l.configure=this.mergeFieldInterfaceConfigure(l.configure,e.data);return}null==(t=l.addOperator)||t.call(l,e.data)}),delete this.actionList[l.name])),e},{});Object.assign(this.collectionFieldInterfaceInstances,t)}addFieldInterfaceComponentOption(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addComponentOption)||l.call(o,t):this.enqueueAction(e,{type:"addComponentOption",data:t})}addFieldInterfaceOperator(e,t){var l;let o=this.getFieldInterface(e);o?null==(l=o.addOperator)||l.call(o,t):this.enqueueAction(e,{type:"addOperator",data:t})}registerFieldFilterOperator(e){nG.register(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];nG.registerGroup(e,t),this.normalizeFieldInterfaceFilterables()}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];nG.addToGroup(e,t),this.normalizeFieldInterfaceFilterables()}registerFieldValidationConfigure(e){i_(e)}registerFieldValidationConfigureGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ib(e,t)}addFieldValidationConfiguresToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];ix(e,t)}getFieldValidationConfigureGroup(e){return iy.getGroup(e)}registerFieldInterfaceConfigure(e){let t=this.getFieldInterface(e.name);t?t.configure=this.mergeFieldInterfaceConfigure(t.configure,e):this.enqueueAction(e.name,{type:"registerConfigure",data:e})}getFieldInterface(e){return this.collectionFieldInterfaceInstances[e]}getFieldInterfaces(e){return Object.values(this.collectionFieldInterfaceInstances).filter(t=>!e||!t.supportDataSourceType&&!t.notSupportDataSourceType||(t.supportDataSourceType?t.supportDataSourceType.includes(e):!t.notSupportDataSourceType||!t.notSupportDataSourceType.includes(e)))}getFieldInterfaceConfigureProperties(e,t){var l;let o=this.getFieldInterfaceConfigure(e,t);return(null==o||null==(l=o.getConfigureFormProperties)?void 0:l.call(o,t))||(null==o?void 0:o.properties)||{}}getFieldInterfaceConfigure(e,t){var l,o,n;let i=this.getFieldInterface(e);if(!i)return;let r=(null==(l=i.getConfigureFormProperties)?void 0:l.call(i,t))||i.properties||{},a={name:i.name,title:i.title,group:i.group,order:i.order,default:i.default,titleUsable:i.titleUsable,isAssociation:i.isAssociation,supportDataSourceType:i.supportDataSourceType,notSupportDataSourceType:i.notSupportDataSourceType,properties:r,items:it(r,{components:null==(o=i.configure)?void 0:o.components}),getConfigureFormProperties:null==(n=i.getConfigureFormProperties)?void 0:n.bind(i)};return this.mergeFieldInterfaceConfigure(a,i.configure)}addFieldInterfaceGroups(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(this.collectionFieldGroups,e)}getFieldInterfaceGroups(){return this.collectionFieldGroups}getFieldInterfaceGroup(e){return this.collectionFieldGroups[e]}enqueueAction(e,t){this.actionList[e]||(this.actionList[e]=[]),this.actionList[e].push(t)}normalizeFieldInterfaceFilterables(){Object.values(this.collectionFieldInterfaceInstances).forEach(e=>{nQ(e.filterable)})}mergeFieldInterfaceConfigure(e,t){return e?t?{...e,...t,default:t.default||e.default,properties:{...e.properties||{},...t.properties||{}},items:this.mergeFieldConfigureItems(e.items,t.items),components:{...e.components||{},...t.components||{}}}:e:t}mergeFieldConfigureItems(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Map;return e.forEach(e=>l.set(e.name,e)),t.forEach(e=>l.set(e.name,e)),Array.from(l.values())}constructor(e){this.dataSourceManager=e,this.collectionFieldInterfaceInstances={},this.collectionFieldGroups={},this.actionList={}}}function iw(e){return`${e}/client-v2`}function iS(e){return("default"in e?e.default:void 0)||e}function ik(e,t){window.__nocobase_app_dev_plugins__=window.__nocobase_app_dev_plugins__||{},window.__nocobase_app_dev_plugins__[e]=t}function iF(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=iw(t);window.define(o,()=>l),ik(o,l)})}function iC(e){Object.entries(e).forEach(e=>{let[t,l]=e,o=iw(t);window.define(o,()=>l),ik(o,l)})}function iA(e,t){e.requirejs.config({waitSeconds:120,paths:t.reduce((e,t)=>(e[iw(t.packageName)]=t.url,e),{})})}function iP(e,t){return function(){for(var l=arguments.length,o=Array(l),n=0;n<l;n++)o[n]=arguments[n];o.forEach((t,l)=>{t&&ik(iw(e[l].packageName),t)}),t(o.map((t,l)=>[e[l].name,(null==t?void 0:t.default)||t]).filter(e=>e[1]));let i=o.map((e,t)=>e?null:t).filter(e=>null!==e).map(t=>e[t].packageName);i.length>0&&console.error("[nocobase load plugin error]: These plugins do not have an `export.default` exported content or there is an error in the plugins. error plugins: \r\n%s",i.join(", \r\n"))}}function iT(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];iA(e,t);let l=t.map(e=>iw(e.packageName));return new Promise((o,n)=>{e.requirejs(l,iP(t,o),n)})}async function ij(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];for(let l of iI(e)){let e=await import(l.url),o=iS(e);o&&(t.push([l.name,o]),iC({[l.packageName]:e}))}return t}function iI(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=new Map(e.map(e=>[e.packageName,e])),l=[],o=new Set,n=new Set,i=e=>{if(!n.has(e.packageName)&&!o.has(e.packageName)){for(let l of(o.add(e.packageName),e.appDevDependencies||[])){let e=t.get(l);e&&i(e)}o.delete(e.packageName),n.add(e.packageName),l.push(e)}};return e.forEach(i),l}async function iL(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=[],o=[],n=async()=>{if(0===o.length)return;let t=await iT(e,o);l.push(...t),o=[]};for(let e of iI(t)){if("esm"===e.devMode){await n();let t=await ij([e]);l.push(...t);continue}o.push(e)}return await n(),l}async function iD(e){let{requirejs:t,pluginData:l,devDynamicImport:o}=e;if(0===l.length)return[];let n=[],i={},r={};if(o){for await(let e of l){let t=await o(e.packageName);if(t){let l=iS(t);n.push([e.name,l]),i[e.packageName]=l,r[e.packageName]=t}}iF(r)}let a=l.filter(e=>!i[e.packageName]),s=a.filter(e=>"esm"===e.devMode),d=a.filter(e=>"esm"!==e.devMode);if(0===s.length){if(0===d.length)return n;let e=await iT(t,d);return n.push(...e),n}let u=await iL(t,a);return n.push(...u),n}class iR{async init(e){await this.initStaticPlugins(e),this.loadRemotePlugins&&await this.initRemotePlugins()}getRemotePluginsRequestUrl(){return"pm:listEnabledV2"}async initStaticPlugins(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];for await(let t of e){let e=Array.isArray(t)?t[0]:t,l=Array.isArray(t)?t[1]:void 0;await this.add(e,l)}}async initRemotePlugins(){var e;let t=await this.app.apiClient.request({url:this.getRemotePluginsRequestUrl()}),l=(null==t||null==(e=t.data)?void 0:e.data)||[];for await(let[e,t]of(await iD({requirejs:this.app.requirejs,pluginData:l,devDynamicImport:this.app.devDynamicImport}))){let o=l.find(t=>t.name===e);await this.add(t,o)}}async add(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=this.getInstance(e,t);this.pluginInstances.set(e,l),t.name&&(this.pluginsAliases[t.name]=l),t.packageName&&(this.pluginsAliases[t.packageName]=l),await l.afterAdd()}get(e){return"string"==typeof e?this.pluginsAliases[e]:this.pluginInstances.get(e.default||e)}getInstance(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new e(t,this.app)}async load(){for(let e of(await this.initPlugins,this.pluginInstances.values()))await e.beforeLoad();for(let e of this.pluginInstances.values())await e.load(),this.app.eventBus.dispatchEvent(new CustomEvent(`plugin:${e.options.name}:loaded`,{detail:e}))}constructor(e,t,l){this._plugins=e,this.loadRemotePlugins=t,this.app=l,this.pluginInstances=new Map,this.pluginsAliases={},this.app=l,this.initPlugins=this.init(e||[]),this.loadRemotePlugins=t}}var iE=__webpack_require__(3939);function iY(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=new Set(e.map(e=>e.routeName));for(let e=t.length-1;e>=0;e-=1){let o=t[e];if(l.has(o.id))return o}return null}function iN(e){let t=(0,h.useParams)(),l=(0,h.useLocation)(),o=(0,h.useMatches)(),n=e.flowEngine;(0,p.useEffect)(()=>{var l,i,r;let a=o[o.length-1];if(!a)return;let s=iY(null==(i=e.layoutManager)||null==(l=i.listLayouts)?void 0:l.call(i),o);n.context._observableCache.route={name:a.id,pathname:a.pathname,path:(null==(r=a.handle)?void 0:r.path)||null,params:t,layoutRouteName:null==s?void 0:s.id,layoutBasePathname:null==s?void 0:s.pathname}},[e,n.context,t,o]),(0,p.useEffect)(()=>{n.context._observableCache.location=l},[n.context,l])}function iO(e){let{app:t}=e;return iN(t),null}function iB(e,t){if(!t||"/"===t)return e;let l=t.replace(/\/$/,"");return e===l?"/":e.startsWith(`${l}/`)?e.slice(l.length)||"/":e}class iV{get basename(){return this.router.basename}get state(){return this.router.state}get navigate(){return this.router.navigate}resolveLoadedComponent(e){if(e)return"function"==typeof e||"string"==typeof e?e:e.default||e.Component}createRouteLazyComponent(e){let t=p.default.lazy(()=>e().then(e=>{let t=this.resolveLoadedComponent(e);if(!t)throw Error("componentLoader must resolve to a React component or component module.");return"string"==typeof t?{default:e=>this.app.renderComponent(t,e)}:{default:t}}));return function(e){return(0,s.jsx)(p.default.Suspense,{fallback:null,children:(0,s.jsx)(t,{...e})})}}getRoutesTree(){let e={};for(let[t,l]of Object.entries(this.routes))(0,c.set)(e,t.split(".").join(".children."),{...(0,c.get)(e,t.split(".").join(".children.")),...l});let t=e=>Object.values(e).reduce((e,l)=>{if(1===Object.keys(l).length&&l.children)e.push(...t(l.children));else{let{Component:o,componentLoader:n,element:i,children:r,...a}=l,s=i;n?s=p.default.createElement(this.createRouteLazyComponent(n)):o&&(s="string"==typeof o?this.app.renderComponent(o):p.default.createElement(o));let d={...a,element:s,children:r?t(r):void 0};e.push(d)}return e},[]);return t(e)}getRoutes(){return this.routes}setType(e){this.options.type=e}getBasename(){return this.options.basename}setBasename(e){this.options.basename=e}matchRoutes(e){var t;let l=this.getRoutesTree(),o=(null==(t=this.router)?void 0:t.basename)||this.getBasename();return(0,__rspack_external_react_router_65608a1a.matchRoutes)(l,iB(e,o))}isSkippedAuthCheckRoute(e){return(this.matchRoutes(e)||[]).some(e=>{var t;return(null==e||null==(t=e.route)?void 0:t.skipAuthCheck)===!0})}getRouterComponent(e){let{type:t="browser",...l}=this.options,o={hash:h.createHashRouter,browser:h.createBrowserRouter,memory:h.createMemoryRouter},n=this.getRoutesTree(),i=(0,p.createContext)(e=>e.children),r=()=>{let t=(0,p.useContext)(i);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(iO,{app:this.app}),(0,s.jsxs)(t,{children:[(0,s.jsx)(h.Outlet,{}),e]})]})},a=()=>{throw(0,h.useRouteError)()};return this.router=o[t]([{element:(0,s.jsx)(r,{}),errorElement:(0,s.jsx)(a,{}),children:n}],l),e=>{let{BaseLayout:t=I.ct}=e;return(0,s.jsx)(i.Provider,{value:t,children:(0,s.jsx)(I.PK,{children:(0,s.jsx)(h.RouterProvider,{future:{v7_startTransition:!0},router:this.router})})})}}add(e,t){this.routes[e]={id:e,...t,handle:{path:t.path}}}get(e){return this.routes[e]}has(e){return!!this.get(e)}remove(e){delete this.routes[e]}constructor(e={},t){this.routes={},this.options=e,this.app=t,this.routes=e.routes||{}}}let iH=e=>{let{children:t}=e,{token:l}=g.theme.useToken(),o=l.colorFillTertiary,n=new n_.TinyColor(l.colorFill).onBackground(l.colorFillSecondary).toHexShortString(),i=new n_.TinyColor(l.colorFill).onBackground(l.colorFill).toHexShortString(),r=new n_.TinyColor(l.colorFill).onBackground(l.colorFill).onBackground(l.colorFill).toHexShortString();return(0,p.useEffect)(()=>{document.body.style.setProperty("--nb-spacing",`${l.marginLG}px`),document.body.style.setProperty("--nb-designer-offset",`${l.marginXS}px`),document.body.style.setProperty("--nb-header-height",`${l.sizeXXL-2}px`),document.body.style.setProperty("--nb-box-bg",l.colorBgLayout),document.body.style.setProperty("--colorBgLayout",l.colorBgLayout),document.body.style.setProperty("--colorBgContainer",l.colorBgContainer),document.body.style.setProperty("--controlHeightLG",`${l.controlHeightLG}px`),document.body.style.setProperty("--paddingContentVerticalSM",`${l.paddingContentVerticalSM}px`),document.body.style.setProperty("--marginSM",`${l.marginSM}px`),document.body.style.setProperty("--colorInfoBg",l.colorInfoBg),document.body.style.setProperty("--colorInfoBorder",l.colorInfoBorder),document.body.style.setProperty("--colorWarningBg",l.colorWarningBg),document.body.style.setProperty("--colorWarningBorder",l.colorWarningBorder),document.body.style.setProperty("--colorText",l.colorText),document.body.style.setProperty("--colorTextDescription",l.colorTextDescription),document.body.style.setProperty("--colorBgTextHover",l.colorBgTextHover),document.body.style.setProperty("--colorSplit",l.colorSplit),document.body.style.setProperty("--borderRadiusOuter",`${l.borderRadiusOuter}px`),document.body.style.setProperty("--colorTextHeaderMenu",l.colorTextHeaderMenu),document.body.style.setProperty("--colorPrimaryText",l.colorPrimaryText),document.body.style.setProperty("--colorPrimaryTextActive",l.colorPrimaryTextActive),document.body.style.setProperty("--colorPrimaryTextHover",l.colorPrimaryTextHover),document.body.style.setProperty("--colorBgSider",l.colorBgSider),document.body.style.setProperty("--colorBgSiderMenuHover",l.colorBgSiderMenuHover),document.body.style.setProperty("--colorBgSiderMenuActive",l.colorBgSiderMenuActive),document.body.style.setProperty("--colorTextSiderMenu",l.colorTextSiderMenu),document.body.style.setProperty("--colorTextSiderMenuHover",l.colorTextSiderMenuHover),document.body.style.setProperty("--colorTextSiderMenuActive",l.colorTextSiderMenuActive),document.body.style.setProperty("--colorBgScrollTrack",o),document.body.style.setProperty("--colorBgScrollBar",n),document.body.style.setProperty("--colorBgScrollBarHover",i),document.body.style.setProperty("--colorBgScrollBarActive",r),document.body.style.setProperty("--colorSettings",l.colorSettings||b.token.colorSettings),document.body.style.setProperty("--colorBgSettingsHover",l.colorBgSettingsHover),document.body.style.setProperty("--colorTemplateBgSettingsHover",l.colorTemplateBgSettingsHover),document.body.style.setProperty("--colorBorderSettingsHover",l.colorBorderSettingsHover),document.body.style.setProperty("--colorBgMenuItemSelected",l.colorBgHeaderMenuActive),document.body.style.setProperty("background-color",l.colorBgContainer)},[n,r,i,o,l.colorBgContainer,l.colorBgLayout,l.colorBgSettingsHover,l.colorTemplateBgSettingsHover,l.colorBorderSettingsHover,l.colorInfoBg,l.colorInfoBorder,l.colorPrimaryText,l.colorPrimaryTextActive,l.colorPrimaryTextHover,l.colorSettings,l.colorBgTextHover,l.colorSplit,l.colorText,l.colorTextDescription,l.colorWarningBg,l.colorWarningBorder,l.borderRadiusOuter,l.controlHeightLG,l.marginLG,l.marginSM,l.marginXS,l.paddingContentVerticalSM,l.sizeXXL,l.colorTextHeaderMenu,l.colorBgSider,l.colorBgSiderMenuHover,l.colorBgSiderMenuActive,l.colorTextSiderMenu,l.colorTextSiderMenuHover,l.colorTextSiderMenuActive,l.colorBgHeaderMenuActive]),t};iH.displayName="CSSVariableProvider";let iq=iH;class i$ extends nj{createApiClient(e){return new a({...e.apiClient,appName:e.name||(0,__rspack_external__nocobase_sdk_cafaf92c.getSubAppName)(e.publicPath)})}configureRuntimeAdapters(){this.dataSourceManager=this.flowEngine.context.dataSourceManager,this.dataSourceManager.setRequester(this.apiClient.request.bind(this.apiClient)),this.dataSourceManager.collectionFieldInterfaceManager||this.dataSourceManager.setCollectionFieldInterfaceManager(new iM(this.dataSourceManager))}createI18n(e){if(e.i18n)return e.i18n;let t=(0,__rspack_external_i18next.createInstance)();return t.use(m.initReactI18next).init({lng:"en-US",defaultNS:"client",resources:{},keySeparator:!1,nsSeparator:!1}),t}createRouterManager(e){var t;let l=new iV(e.router,this);if((null==(t=e.router)?void 0:t.basename)===void 0){let e=this.getPublicPath(),t="/"===e?void 0:e.replace(/\/$/,"");t&&l.setBasename(t)}return l}createPluginManager(e){return new iR(e.plugins||[],!!e.loadRemotePlugins,this)}createPluginSettingsManager(e){return new iE.mz(this)}async load(){try{this.hasLoadError=!1,await this.loadWebSocket(),await this.pm.load(),await this.flowEngine.flowSettings.load()}catch(i){var e,t,l,o,n;this.hasLoadError=!0,(null==i||null==(o=i.response)||null==(l=o.data)||null==(t=l.errors)||null==(e=t[0])?void 0:e.code)==="BLOCKED_IP"&&(this.hasLoadError=!1),this.ws.enabled&&await new Promise(e=>{setTimeout(()=>e(null),1e3)}),this.error={code:"LOAD_ERROR",...null==(n=this.apiClient.toErrMessages(i))?void 0:n[0]},console.error(i,this.error)}this.updateFavicon()}async loadWebSocket(){this.eventBus.addEventListener("ws:message:authorized",()=>{this.setWsAuthorized(!0)}),this.ws.on("message",e=>{var t,l,o,n;if(!e.data)return;let i=JSON.parse(e.data);if(null==i||null==(t=i.payload)?void 0:t.refresh)return void globalThis.window.location.reload();if("notification"===i.type){let e=this.context.notification;null==(o=e[(null==(n=i.payload)?void 0:n.type)||"info"])||o.call(e,{message:null==(l=i.payload)?void 0:l.message});return}if("maintaining"===i.type&&"APP_RUNNING"!==i.payload.code)this.setMaintaining(!0),this.error=i.payload;else{this.hasLoadError&&globalThis.window.location.reload(),this.setMaintaining(!1),this.maintained=!0,this.error=null;let e=i.type;if(!e)return;let t=`ws:message:${e}`;this.eventBus.dispatchEvent(new CustomEvent(t,{detail:i.payload}))}}),this.ws.on("serverDown",()=>{this.maintaining=!0,this.maintained=!1}),this.ws.on("open",()=>{let e=this.apiClient.auth.token;e&&this.setTokenInWebSocket({token:e,authenticator:this.apiClient.auth.getAuthenticator()})}),this.ws.connect()}addCustomProviders(){this.use(iq)}addFieldInterfaces(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return this.dataSourceManager.addFieldInterfaces(e)}addFieldInterfaceGroups(e){return this.dataSourceManager.addFieldInterfaceGroups(e)}addFieldInterfaceComponentOption(e,t){return this.dataSourceManager.addFieldInterfaceComponentOption(e,t)}addFieldInterfaceOperator(e,t){return this.dataSourceManager.addFieldInterfaceOperator(e,t)}registerFieldFilterOperator(e){return this.dataSourceManager.registerFieldFilterOperator(e)}registerFieldFilterOperatorGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.registerFieldFilterOperatorGroup(e,t)}addFieldFilterOperatorsToGroup(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return this.dataSourceManager.addFieldFilterOperatorsToGroup(e,t)}registerFieldValidationConfigure(e){var t,l;return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigure)?void 0:t.call(l,e)}registerFieldValidationConfigureGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.registerFieldValidationConfigureGroup)?void 0:t.call(l,e,o)}addFieldValidationConfiguresToGroup(e){var t,l;let o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return null==(l=this.dataSourceManager.collectionFieldInterfaceManager)||null==(t=l.addFieldValidationConfiguresToGroup)?void 0:t.call(l,e,o)}constructor(...e){super(...e),this.hasLoadError=!1}}let iz=(0,p.createContext)(null);iz.displayName="ApplicationContext";class iK extends i${constructor(e={}){super({router:{type:"memory",initialEntries:["/"]},...e}),this.apiMock=new __rspack_external_axios_mock_adapter_69845b81.default(this.apiClient.axios),this.ws=new iU(e.ws||{})}}class iU extends np{connect(){}close(){}send(){}on(e,t,l){this.eventBus.addEventListener(e,e=>t({data:JSON.stringify(e.detail)}),l)}emit(e,t){this.eventBus.dispatchEvent(new CustomEvent(e,{detail:t}))}off(e,t,l){this.eventBus.removeEventListener(e,t,l)}removeAllListeners(){}constructor(e){super(e),this.eventBus=new EventTarget}}function iG(e){return new iK(e)}class iW{get pluginManager(){return this.app.pluginManager}get context(){return this.app.context}get flowEngine(){return this.app.flowEngine}get engine(){return this.app.flowEngine}get pm(){return this.app.pm}get router(){return this.app.router}get pluginSettingsManager(){return this.app.pluginSettingsManager}get schemaInitializerManager(){return this.app.schemaInitializerManager}get schemaSettingsManager(){return this.app.schemaSettingsManager}get dataSourceManager(){return this.app.dataSourceManager}get ai(){return this.app.aiManager}async afterAdd(){}async beforeLoad(){}async load(){}t(e){var t;let l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.app.i18n.t(e,{ns:null==(t=this.options)?void 0:t.packageName,...l})}constructor(e,t){this.options=e,this.app=t,this.options=e,this.app=t}}var iJ=__webpack_require__(6553),iX=__webpack_require__(4244);function iQ(e){return"steps"in e&&e.steps||{}}function iZ(e){let t=iQ(e);for(let e of["saveResource","submit","request","apply","save"]){var l;if(Object.prototype.hasOwnProperty.call(t,e)&&(null==(l=t[e])?void 0:l.result)!=null)return t[e].result}let o=Object.entries(t).filter(e=>{let[t,l]=e;return"afterSuccess"!==t&&(null==l?void 0:l.result)!=null}).map(e=>{let[,t]=e;return t.result});return o[o.length-1]}function i0(e){if(!i1(e))return;let t=i2(e);if(t())return(0,u.createRecordMetaFactory)(t,e.t("Response record"),()=>{let l=t(),o=iZ(e);if(l&&o)try{let e=l.getFilterByTK(o);if(null==e)return;return{collection:l.name,dataSourceKey:l.dataSourceKey||"main",filterByTk:e}}catch(e){return}})}function i1(e){var t;if(Object.prototype.hasOwnProperty.call(iQ(e),"saveResource"))return!0;let{model:l,flowKey:o}=e;return!!l&&"function"==typeof l.getFlow&&!!o&&Object.prototype.hasOwnProperty.call((null==(t=l.getFlow(o))?void 0:t.steps)||{},"saveResource")}function i2(e){return()=>{var t,l;return(null==(t=e.blockModel)?void 0:t.collection)||e.collection||(null==(l=e.model)?void 0:l.collection)||null}}function i5(e){let t=i0(e);if(!t){var l;return(null==(l=e.getPropertyMetaTree)?void 0:l.call(e))||[]}let o=new u.FlowContext;return o.addDelegate(e),o.defineProperty("responseRecord",{get:()=>iZ(e),cache:!1,resolveOnServer:(0,u.createRecordResolveOnServerWithLocal)(i2(e),()=>iZ(e)),meta:t}),o.getPropertyMetaTree()}function i8(e){let t=(0,u.useFlowSettingsContext)(),l=(0,p.useMemo)(()=>()=>i5(t),[t]);return(0,s.jsx)(iX.n,{...e,metaTree:l})}let i4=(0,u.defineAction)({name:"afterSuccess",title:(0,u.tExpr)("After successful submission"),defineProperties(e){let t=i0(e);return{responseRecord:{get:()=>iZ(e),cache:!1,resolveOnServer:(0,u.createRecordResolveOnServerWithLocal)(i2(e),()=>iZ(e)),...t?{meta:t}:{}}}},uiSchema:{successMessage:{type:"string",title:(0,u.tExpr)("Popup message"),"x-decorator":"FormItem","x-component":"Input.TextArea"},manualClose:{type:"boolean",title:(0,u.tExpr)("Message popup close method"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,u.tExpr)("Automatic close"),value:!1},{label:(0,u.tExpr)("Manually close"),value:!0}]},actionAfterSuccess:{type:"string",title:(0,u.tExpr)("Action after successful submission"),"x-decorator":"FormItem","x-component":"Radio.Group",enum:[{label:(0,u.tExpr)("Stay on the current popup or page"),value:"stay"},{label:(0,u.tExpr)("Return to the previous popup or page"),value:"previous"},{label:(0,u.tExpr)("Close popup and redirect to"),value:"redirect"}]},redirectTo:{type:"string",title:(0,u.tExpr)("Link"),"x-decorator":"FormItem","x-component":i8,"x-reactions":{dependencies:["actionAfterSuccess"],fulfill:{state:{visible:"{{$deps[0]==='redirect'}}"}}}}},defaultParams:{successMessage:(0,u.tExpr)("Saved successfully"),manualClose:!1,actionAfterSuccess:"previous"},async handler(e,t){let{successMessage:l,manualClose:o=!1,actionAfterSuccess:n="previous",redirectTo:i}=t;"previous"===n&&e.view&&e.view.close();let r=t=>{if(e.engine){let t=e.engine;for(;t.nextEngine;)t=t.nextEngine;let l=[],o=t;for(;o;)l.push(o),o=o.previousEngine;for(let e of l)e.destroyView()}e.router.navigate(t)},a=e=>{if((0,A.isURL)(e)){window.location.href=e;return}r(e)};if(l){let t=e.t(l);if(o)return void await e.modal.success({title:t,onOk:async()=>{"redirect"===n&&i&&a(i)}});e.message.success(t)}"redirect"===n&&i&&a(i)}}),i3=(0,u.defineAction)({name:"confirm",title:(0,u.tExpr)("Confirmation"),uiSchema:{enable:{type:"boolean",title:(0,u.tExpr)("Enable secondary confirmation"),"x-decorator":"FormItem","x-component":"Switch"},title:{type:"string",title:(0,u.tExpr)("Title"),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:2}},content:{type:"string",title:(0,u.tExpr)("Content"),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:3}}},defaultParams:{enable:!1,title:(0,u.tExpr)("Please Confirm"),content:(0,u.tExpr)("Are you sure you want to perform the action?")},async handler(e,t){t.enable&&(await e.modal.confirm({title:e.t(t.title,{ns:"lm-flow-engine"}),content:e.t(t.content,{ns:"lm-flow-engine"}),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||e.exit())}});var i6=__webpack_require__(9078),i9=__webpack_require__(6859);let i7={__nocobaseDataScopeNull__:!0},re="{{$nRole}}",rt=/^\s*\{\{\s*ctx\.role\s*\}\}\s*$/;function rl(e){return"string"==typeof e&&rt.test(e)}function ro(e){return e&&"object"==typeof e&&!Array.isArray(e)&&!0===e.__nocobaseDataScopeNull__&&1===Object.keys(e).length}function rn(e){return ro(e)?null:Array.isArray(e)?e.map(e=>rn(e)):e&&"object"==typeof e?Object.keys(e).reduce((t,l)=>(t[l]=rn(e[l]),t),{}):e}function ri(e){var t;return!!(0,u.isVariableExpression)(e)&&(null==(t=(0,u.extractPropertyPath)(e))?void 0:t[0])==="urlSearchParams"}function rr(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){if("path"in e&&"operator"in e){if(rl(e.value)){t.value=re;return}(0,u.isVariableExpression)(e.value)&&!ri(e.value)&&(void 0===t.value||null===t.value||""===t.value)&&(t.value=i7);return}Array.isArray(e.items)&&Array.isArray(t.items)&&e.items.forEach((e,l)=>{rr(e,t.items[l])})}}function ra(e,t){let l=c.default.cloneDeep(t);return rr(e,l),rn((0,u.pruneFilter)((0,A.transformFilter)(l)))}var rs=__webpack_require__(3728),rd=__webpack_require__(9613);function ru(e,t){return e.length===t.length&&e.every((e,l)=>e===t[l])}function rc(e,t){return!(e.length>t.length)&&e.every((e,l)=>e===t[l])}function rp(e){let t=new Map;for(let l of e)(null==l?void 0:l.length)&&t.set((0,rs.Qc)(l),l);return Array.from(t.values())}function rm(e){let t=rp(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rc(e,t)))}function rh(e){let t=Array.isArray(e)?e:[],l=[];for(let e of t){if("string"!=typeof e)continue;let[t,o]=e.split(":"),n=Number(o);!t||Number.isNaN(n)||l.push({name:t,index:n})}return l}function rf(e){var t;let l=null==e?void 0:e.model;return rh((null==l||null==(t=l.context)?void 0:t.fieldIndex)??(null==e?void 0:e.fieldIndex))}function rg(e,t){let l=e.length-1-t;if(l<0)return null;let o=[];for(let t=0;t<=l;t++)o.push(e[t].name,e[t].index);return o}function rv(e,t){let l=rg(e,t);return(null==l?void 0:l.length)?l.slice(0,-1):null}function ry(e){return(0,rs.EA)(e).filter(e=>"object"!=typeof e)}function r_(e){return(0,rs.c1)(e)}function rb(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=e,o=Array.isArray(null==l?void 0:l.changedPaths)?l.changedPaths:[],n=[];for(let e of o){if(Array.isArray(e)){if(1===e.length&&"string"==typeof e[0]){let t=(0,rs.c1)(e[0]);t.length&&n.push(t);continue}let t=e.filter(e=>"string"==typeof e||"number"==typeof e);t.length&&n.push(t);continue}"string"==typeof e&&e&&n.push((0,rs.c1)(e))}if(n.length)return n;let i=null==l?void 0:l.changedValues;if(i&&"object"==typeof i&&(t.includeArrayChangedValues||!Array.isArray(i)))for(let e of Object.keys(i)){let t=(0,rs.c1)(e);t.length&&n.push(t)}return n}function rx(e){var t,l;let o=e;return!!o&&"object"==typeof o&&!!o.emitter&&"function"==typeof o.emitter.on&&"function"==typeof o.emitter.off&&(!!o.formValueRuntime||!!(null==(t=o.context)?void 0:t.form)||"function"==typeof(null==(l=o.context)?void 0:l.setFormValues))}function rM(e){var t;let l=[],o=e=>{e&&!l.includes(e)&&l.push(e)},n=e.model;o(null==n||null==(t=n.context)?void 0:t.blockModel),o(e.model);let i=null==n?void 0:n.parent;for(;i;)o(i),i=null==i?void 0:i.parent;return l.find(rx)||null}var rw=__webpack_require__(8709);function rS(e){if(Array.isArray(e)){let t=e.filter(e=>"string"==typeof e&&!!e);return t.length?t:"id"}return"string"==typeof e&&e?e:"id"}function rk(e){var t,l;return rS((null==e||null==(t=e.targetCollection)?void 0:t.filterTargetKey)??(null==e||null==(l=e.targetCollection)?void 0:l.filterByTk)??(null==e?void 0:e.targetKey))}function rF(e){var t,l,o,n,i,r,a,s,d,u;let c=e.model;return(null==c||null==(o=c.context)||null==(l=o.blockModel)||null==(t=l.context)?void 0:t.collection)??(null==c||null==(r=c.context)||null==(i=r.formBlock)||null==(n=i.context)?void 0:n.collection)??(null==c||null==(a=c.context)?void 0:a.rootCollection)??(null==e?void 0:e.rootCollection)??(null==e?void 0:e.collection)??(null==c||null==(d=c.context)||null==(s=d.collectionField)?void 0:s.collection)??(null==c||null==(u=c.context)?void 0:u.collection)}function rC(e){var t,l,o,n,i,r,a,s,d,u,c,p;let m=e.model;return rS((null==m||null==(l=m.context)||null==(t=l.collection)?void 0:t.filterTargetKey)??(null==m||null==(n=m.context)||null==(o=n.collection)?void 0:o.filterByTk)??(null==m||null==(a=m.context)||null==(r=a.collectionField)||null==(i=r.targetCollection)?void 0:i.filterTargetKey)??(null==m||null==(u=m.context)||null==(d=u.collectionField)||null==(s=d.targetCollection)?void 0:s.filterByTk)??(null==m||null==(p=m.context)||null==(c=p.collectionField)?void 0:c.targetKey))}function rA(e,t){let l=rF(e),o=rC(e);return t.map(e=>{let t=o;if(null==l?void 0:l.getField){var n;let o=l.getField(e.name);((null==o||null==(n=o.isAssociationField)?void 0:n.call(o))||(null==o?void 0:o.targetCollection)||(null==o?void 0:o.targetKey))&&(t=rk(o),l=null==o?void 0:o.targetCollection)}return{...e,filterTargetKey:t}})}function rP(e,t,l){let o=e.length-1-t;if(o<0)return;let n=e[o],i=null==n?void 0:n.filterTargetKey,r=Array.isArray(i)?i.map(e=>[e]):"string"==typeof i&&i?[[i]]:[];return{entries:e.slice(0,o+1).map(e=>({...e})),tailPath:l,identityTailPaths:r}}function rT(e,t){return null!=e&&(Array.isArray(e)&&"number"==typeof t?t>=0&&t<e.length:"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t))}function rj(e,t){let l=e;for(let e of t){if(!rT(l,e))return{found:!1};l=l[e]}return{found:!0,value:l}}function rI(e){let t=e;return(null==t?void 0:t.allValuesSnapshot)??(null==t?void 0:t.allValues)}function rL(e,t){return e&&"object"==typeof e?(0,rw.r5)(e,t):null}function rD(e){let t=[];for(let l of e.entries)t.push(l.name,l.index);return t}function rR(e,t,l,o){if(null==l?void 0:l.rowDetached)return!1;let n=rD(t);if(!n.length||!t.identityTailPaths.length)return!1;let i=t.identityTailPaths.map(e=>[...n,...e]);return(o??rb(e)).some(e=>i.some(t=>rc(t,e)))}function rE(e,t,l){return Array.isArray(e)&&t?e.findIndex(e=>rL(e,l)===t):-1}function rY(e,t,l,o){let n=[],i=-1,r=[];for(let a=0;a<t.entries.length;a++){let s=t.entries[a],d=[...n,s.name],u=rj(e,d);if(!u.found||!Array.isArray(u.value))return{found:!1};let c=null==l?void 0:l[a],p=rE(u.value,c,s.filterTargetKey),m=p>=0?p:s.index;if(m<0||m>=u.value.length)return c?{found:!1,rowMissing:!0}:{found:!1};let h=u.value[m];if(c&&p<0&&!o)return{found:!1,rowMissing:!0};r.push(rL(h,s.filterTargetKey)),i=m,n=[...d,m]}return{found:!0,path:[...n,...t.tailPath],rowIndex:i,rowIdentities:r}}function rN(e,t,l){var o,n;let i=rj(rI(t),l);if(i.found)return i;let r=null==e||null==(o=e.context)?void 0:o.form;return"function"==typeof(null==r?void 0:r.getFieldValue)?{found:!0,value:r.getFieldValue(l)}:rj(null==e||null==(n=e.context)?void 0:n.formValues,l)}function rO(e,t,l,o,n){var i,r;let a=l.rowScope;if(!a)return rN(e,t,l.path);if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let s=rR(t,a,o,n);for(let l of[rI(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=rY(l,a,null==o?void 0:o.rowIdentities,s);if(e.rowMissing)return{found:!1,rowMissing:!0};if(!e.found||!e.path)continue;let t=rj(l,e.path);if(t.found)return{found:!0,value:t.value,rowIdentities:e.rowIdentities}}let d=null==e||null==(r=e.context)?void 0:r.form;return"function"==typeof(null==d?void 0:d.getFieldValue)?{found:!0,value:d.getFieldValue(l.path),rowIdentities:null==o?void 0:o.rowIdentities}:{found:!1}}function rB(e){return Array.isArray(e)?e.length:e}function rV(e,t,l){var o,n;if(!Array.isArray(e))return{found:!0,value:e};let i=null==l||null==(o=l.rowIdentities)?void 0:o[l.rowIdentities.length-1],r=null==(n=t.rowScope)?void 0:n.entries[t.rowScope.entries.length-1],a=rE(e,i,null==r?void 0:r.filterTargetKey);return a>=0?{found:!0,value:a,rowIdentities:null==l?void 0:l.rowIdentities}:i?{found:!1,rowMissing:!0}:!r||r.index<0||r.index>=e.length?{found:!1}:{found:!0,value:r.index,rowIdentities:[rL(e[r.index],r.filterTargetKey)]}}function rH(e,t,l,o,n){var i,r;if("length"===l.kind){if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let r=null==o?void 0:o.rowIdentities,a=l.rowScope;if(a){let l=rR(t,a,o,n);for(let n of[rI(t),null==e||null==(i=e.context)?void 0:i.formValues]){let e=rY(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found){r=e.rowIdentities;break}}}let s=rN(e,t,l.path);return s.found?{found:!0,value:rB(s.value),rowIdentities:r}:s}if(null==o?void 0:o.rowDetached)return{found:!1,rowMissing:!0};let a=l.rowScope;if(a){let l=rR(t,a,o,n);for(let n of[rI(t),null==e||null==(r=e.context)?void 0:r.formValues]){let e=rY(n,a,null==o?void 0:o.rowIdentities,l);if(e.rowMissing)return{found:!1,rowMissing:!0};if(e.found&&"number"==typeof e.rowIndex)return{found:!0,value:e.rowIndex,rowIdentities:e.rowIdentities}}}let s=rN(e,t,l.path);return s.found?rV(s.value,l,o):s}function rq(e,t,l){if(e.wildcard)return null;let o={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let n of e.valuePaths){let e=(0,rs.Qc)(n.path),i=rO(t,l,n);if(i.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!i.found){o.complete=!1;continue}o.values.set(e,{value:(0,c.cloneDeep)(i.value),rowIdentities:i.rowIdentities,rowDetached:!1})}for(let n of e.structuralPaths){let e=rH(t,l,n);if(e.rowMissing){o.rowMissing=!0,o.complete=!1;continue}if(!e.found){o.complete=!1;continue}o.structures.set(`${n.kind}:${(0,rs.Qc)(n.path)}`,{value:(0,c.cloneDeep)(e.value),rowIdentities:e.rowIdentities,rowDetached:!1})}return o}function r$(e,t,l,o,n){if(e.wildcard)return null;let i={complete:!0,rowDetached:!1,rowMissing:!1,values:new Map,structures:new Map};for(let r of e.valuePaths){let e=(0,rs.Qc)(r.path),a=o.values.get(e),s=rO(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.values.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.values.set(e,{value:(0,c.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}for(let r of e.structuralPaths){let e=`${r.kind}:${(0,rs.Qc)(r.path)}`,a=o.structures.get(e),s=rH(t,l,r,a,n);if(s.rowMissing){i.rowMissing=!0,i.rowDetached=!0,a?i.structures.set(e,{...a,rowDetached:!0}):i.complete=!1;continue}if(!s.found){i.complete=!1;continue}i.structures.set(e,{value:(0,c.cloneDeep)(s.value),rowIdentities:s.rowIdentities??(null==a?void 0:a.rowIdentities),rowDetached:!1})}return i}function rz(e,t){if(e.size!==t.size)return!1;for(let[o,n]of e.entries()){var l;if(!t.has(o)||!(0,c.isEqual)(n.value,null==(l=t.get(o))?void 0:l.value))return!1}return!0}function rK(e,t,l,o){if(e.wildcard||!(null==o?void 0:o.complete))return{status:"unknown",snapshot:rq(e,t,l)};let n=r$(e,t,l,o,rb(l));return(null==n?void 0:n.rowMissing)?{status:"unchanged",snapshot:{...n,rowMissing:!1}}:(null==n?void 0:n.complete)?{status:rz(o.values,n.values)&&rz(o.structures,n.structures)?"unchanged":"changed",snapshot:n}:{status:"unknown",snapshot:n}}let rU="formValuesChange",rG="__formValueDrivenDataScopeClearBindings";function rW(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set((0,rs.Qc)(o.path),o)}return Array.from(t.values())}function rJ(e){let t=rW(e);return t.filter((e,l)=>!t.some((t,o)=>o!==l&&rc(e.path,t.path)))}function rX(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.kind}:${(0,rs.Qc)(o.path)}`,o)}return Array.from(t.values())}function rQ(e){let t=new Map;for(let o of e){var l;(null==o||null==(l=o.path)?void 0:l.length)&&t.set(`${o.includeChildren?"children":"exact"}:${(0,rs.Qc)(o.path)}`,o)}return Array.from(t.values())}function rZ(){return{wildcard:!1,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function r0(){return{wildcard:!0,valuePaths:[],structuralPaths:[],triggerPaths:[]}}function r1(e){let t=e[0];if("value"===t){let t=e.slice(1);return t.length?{wildcard:!1,valuePaths:[{path:t}],structuralPaths:[],triggerPaths:[]}:r0()}return"__is_new__"===t||"__is_stored__"===t?{wildcard:!1,valuePaths:[{path:[t]}],structuralPaths:[],triggerPaths:[]}:rZ()}function r2(e,t){var l,o;let n=rA(e,rh((null==(o=e.model)||null==(l=o.context)?void 0:l.fieldIndex)??(null==e?void 0:e.fieldIndex)));if(!n.length)return r0();let i=0,r=[...t];for(;"parentItem"===r[0];)i+=1,r=r.slice(1);let a=r[0];if(!a)return r0();if(i===n.length)return r1(r);if(i>n.length)return r0();if("value"===a){let e=rg(n,i);if(!e)return r0();let t=rv(n,i),l=r.slice(1);return{wildcard:!1,valuePaths:[{path:[...e,...l],rowScope:rP(n,i,l)}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0},...t?[{path:t,includeChildren:!1}]:[]]}}if("index"===a||"length"===a){let e=rv(n,i);return e?{wildcard:!1,valuePaths:[],structuralPaths:[{path:e,kind:a,rowScope:rP(n,i,[])}],triggerPaths:[{path:e,includeChildren:!1}]}:r0()}if("__is_new__"===a||"__is_stored__"===a){let e=rg(n,i);return e?{wildcard:!1,valuePaths:[{path:[...e,a],rowScope:rP(n,i,[a])}],structuralPaths:[],triggerPaths:[{path:e,includeChildren:!0}]}:r0()}return r0()}function r5(e,t){let l={deps:new Set,wildcard:!1};(0,rd.G)(t,l);let o=[],n=[],i=[],r=l.wildcard;for(let t of l.deps){if("fv:*"===t){r=!0;continue}if(!t.startsWith("fv:")){if("ctx:item"===t||t.startsWith("ctx:item:")){let l="ctx:item"===t?"":t.slice(9),a=r2(e,l?r_(l):[]);r||(r=a.wildcard),o.push(...a.valuePaths),n.push(...a.structuralPaths),i.push(...a.triggerPaths)}continue}let l=t.slice(3);if(!l){r=!0;continue}o.push({path:r_(l)})}return{wildcard:r,valuePaths:rJ(o),structuralPaths:rX(n),triggerPaths:rQ(i)}}function r8(e){return e.wildcard||e.valuePaths.length>0||e.structuralPaths.length>0||e.triggerPaths.length>0}function r4(e){var t;let l=null==e||null==(t=e.props)?void 0:t.value;return null!=l&&(!Array.isArray(l)||l.length>0)}function r3(e,t){if(!r8(e))return!1;if(e.wildcard)return!0;let l=rb(t);if(!l.length)return!0;for(let t of l){for(let l of e.valuePaths)if(rc(l.path,t)||rc(t,l.path))return!0;for(let l of e.structuralPaths)if(ru(l.path,t)||rc(t,l.path))return!0;for(let l of e.triggerPaths)if(l.includeChildren&&(rc(l.path,t)||rc(t,l.path))||!l.includeChildren&&ru(l.path,t))return!0}return!1}function r6(e,t){let l=e=>e.map(e=>(0,rs.Qc)(e.path)).sort(),o=e=>e.map(e=>`${e.kind}:${(0,rs.Qc)(e.path)}`).sort();return JSON.stringify({formBlockUid:null==t?void 0:t.uid,wildcard:e.wildcard,valuePaths:l(e.valuePaths),structuralPaths:o(e.structuralPaths),triggerPaths:e.triggerPaths.map(e=>`${e.includeChildren?"children":"exact"}:${(0,rs.Qc)(e.path)}`).sort()})}function r9(e){var t,l;return(t=e)[l=rG]||(t[l]=new Map)}function r7(e){return rM(e)}function ae(e){var t,l;if(!r4(e))return;let o=Array.isArray(null==e||null==(t=e.props)?void 0:t.value)?[]:null;"function"==typeof e.change?e.change(o):"function"==typeof(null==e||null==(l=e.props)?void 0:l.onChange)&&e.props.onChange(o)}function at(e){var t;return!!e&&"object"==typeof e&&"function"==typeof(null==e||null==(t=e.props)?void 0:t.onChange)}function al(e,t){let l=r9(e).get(t);l&&l.dispose()}function ao(e,t){var l,o,n,i,r,a;let s=e.model,d=null==e?void 0:e.flowKey;if(!at(s)||!d)return;let u="dataScope",c=`${d}:${u}`,p=r5(e,t);if(!r8(p))return void al(s,c);let m=r7(e);if(!m)return void al(s,c);let h=r6(p,m),f=r9(s),g=f.get(c);if((null==g?void 0:g.signature)===h)return;g&&g.dispose();let v=(null==s||null==(l=s.flowEngine)?void 0:l.emitter)||(null==e||null==(o=e.engine)?void 0:o.emitter)||(null==s||null==(i=s.context)||null==(n=i.engine)?void 0:n.emitter),y={signature:h,snapshot:rq(p,m),dispose:()=>{}},_=()=>{var e,t,l,o;null==(t=m.emitter)||null==(e=t.off)||e.call(t,rU,b),null==v||null==(l=v.off)||l.call(v,"model:unmounted",x),null==v||null==(o=v.off)||o.call(v,"model:destroyed",M),f.get(c)===y&&f.delete(c)},b=e=>{var t;if(s.disposed||m.disposed)return void _();if(!r3(p,e))return;let l=rK(p,m,e,y.snapshot);(null==(t=l.snapshot)?void 0:t.complete)&&(y.snapshot=l.snapshot),"unchanged"===l.status||r4(s)&&ae(s)},x=e=>{let{model:t}=e;(t===m||t===s&&s.disposed)&&_()},M=e=>{let{model:t}=e;(t===s||t===m)&&_()};y.dispose=_,f.set(c,y),m.emitter.on(rU,b),null==v||null==(r=v.on)||r.call(v,"model:unmounted",x),null==v||null==(a=v.on)||a.call(v,"model:destroyed",M)}let an=(0,u.defineAction)({name:"dataScope",title:(0,u.tExpr)("Data scope"),uiMode:{type:"dialog",props:{width:800}},uiSchema:{filter:{type:"object","x-decorator":"FormItem","x-component":function(e){let t=(0,u.useFlowSettingsContext)();return(0,s.jsx)(i6.I8,{value:e.value,FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:t.model,rightAsVariable:!0,maxAssociationFieldDepth:t.model instanceof i9.o?void 0:2})})}}},defaultParams:e=>({filter:{logic:"$and",items:[]}}),useRawParams:!0,async handler(e,t){var l;let o=null==(l=e.model)?void 0:l.resource;if(!o)return;let n=await e.resolveJsonTemplate(t.filter),i=ra(t.filter,n);ao(e,t.filter),(0,A.isEmptyFilter)(i)?o.removeFilterGroup(e.model.uid):o.addFilterGroup(e.model.uid,i)}});var ai=__webpack_require__(5042),ar=__webpack_require__(8481);class aa extends u.FlowModel{static getAllParentClasses(){let e=[],t=this;for(;t&&t!==Object;)(null==(t=Object.getPrototypeOf(t))?void 0:t.currentModels)&&e.push(t);return e}static get currentModels(){return Object.prototype.hasOwnProperty.call(this,"_models")&&this._models||(this._models=new Map),this._models}static get models(){let e=new Map;for(let t of this.getAllParentClasses())for(let[l,o]of t.currentModels)e.set(l,o);for(let[t,l]of this.currentModels)e.set(t,l);return e}static registerActionModels(e){for(let[t,l]of Object.entries(e))Object.defineProperty(l,"name",{value:t}),this.currentModels.set(t,l)}static isActionModelVisible(e,t){var l;let o=t.collection||(null==(l=t.blockModel)?void 0:l.collection),n=(0,ar.GX)(e);return(0,ar.F3)(o,n)}static async defineChildren(e){let t=this.baseClass?await (0,u.buildSubModelItems)(this.baseClass)(e):[],l=[],o=t.filter(t=>{let l=e.engine.getModelClass(t.useModel);return!!this.isActionModelVisible(l,e)&&(!this.scene||l._isScene(this.scene))});for(let[t,n]of this.models){if(!this.isActionModelVisible(n,e)||o.find(e=>e.useModel===n.name))continue;let t=await (0,u.buildSubModelItem)(n,e);t&&l.push(t)}return c.default.sortBy([...o,...l],"sort")}}class as extends aa{}as.baseClass=ai.S0,as.scene=ai.s5.collection;class ad extends aa{}ad.baseClass=ai.S0,ad.scene=ai.s5.record;var au=__webpack_require__(7827);class ac extends u.FlowModel{static defineChildren(e){let t=this.itemModelName,l=this.maxAssociationFieldDepth??2,o=function(n){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return r>=l?[]:n.getToOneAssociationFields().map(n=>{let a=i?`${i}.${n.name}`:n.name,s=r+1;return n.targetCollection?{key:`${a}-assocationField`,label:n.title,children:()=>[{key:`${a}-children-collectionField`,label:e.t("Display fields"),type:"group",children:n.targetCollection.getFields().map(o=>{var n;if(s>=l&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return;let i=`${a}.${o.name}`,r=u.DisplayItemModel.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!r)return;let d=r.modelName;return{key:`c-${a}.${o.name}`,label:o.title,useModel:t,toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===i},createModelOptions:{stepParams:{fieldSettings:{init:{dataSourceKey:e.collection.dataSourceKey,collectionName:e.prefixFieldPath?e.blockModel.context.collection.name:e.collection.name,fieldPath:i,associationPathName:a}}},subModels:{field:{use:d}}}}}).filter(Boolean)},{key:`${a}-children-associationField`,label:"Display association fields",type:"group",children:(o(n.targetCollection,a,s)||[]).filter(Boolean)}].filter(e=>{var t;return e.key!==`${a}-children-associationField`||(null==(t=e.children)?void 0:t.length)>0})}:void console.error(`AssociationFieldGroupModel: target collection ${n.target} not found for field ${n.name}`)}).filter(Boolean)};return o(e.collection,e.prefixFieldPath)}}function ap(e){return["multipleSelect","checkboxGroup"].includes(null==e?void 0:e.interface)||["array","json","jsonb"].includes(null==e?void 0:e.type)}function am(e){return e.context}function ah(e,t){var l;let o=e[t]||(null==(l=am(e))?void 0:l[t]);return o&&"object"==typeof o?o:void 0}function af(e){var t,l,o;let n=null==(t=am(e))?void 0:t.dataSourceManager;return n||(null==(o=e.flowEngine)||null==(l=o.context)?void 0:l.dataSourceManager)}function ag(e){return{operatorGroup:e.operatorGroup,operators:Array.isArray(e.operators)?[...e.operators]:e.operators,operatorOverrides:Array.isArray(e.operatorOverrides)?[...e.operatorOverrides]:e.operatorOverrides}}function av(e){if(!1===e)return[];if(!e||"object"!=typeof e)return;let t=nQ(ag(e));return Array.isArray(null==t?void 0:t.operators)&&t.operators.length>0?t.operators:Array.isArray(null==t?void 0:t.operatorOverrides)&&t.operatorOverrides.length>0?t.operatorOverrides:void 0}function ay(e,t){var l;let o="string"==typeof(null==t?void 0:t.interface)?t.interface:void 0;if(!o)return;let n=af(e),i=null==n?void 0:n.collectionFieldInterfaceManager,r=null==i||null==(l=i.getFieldInterface)?void 0:l.call(i,o);return null==r?void 0:r.filterable}function a_(e){let t=[null==e?void 0:e.interface,null==e?void 0:e.type].filter(e=>"string"==typeof e),l=ep.II;for(let e of t){let t=l[e];if(null==t?void 0:t.length)return t}return[]}function ab(e){let t=ah(e,"collectionField"),l=ah(e,"filterField"),o=t||l;if((null==o?void 0:o.filterable)===!1)return[];let n=av(null==o?void 0:o.filterable);if(null==n?void 0:n.length)return n;let i=ay(e,o);if(!1===i)return[];let r=av(i);return(null==r?void 0:r.length)?r:a_(o)}function ax(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:aM(e);if(!t)return null;let l=ah(e,"collectionField")||ah(e,"filterField");return ab(e).find(e=>e.value===t&&(!e.visible||e.visible(l)))||null}function aM(e){var t,l,o,n,i,r;let a=ab(e);return e.operator||(null==(l=e.getStepParams)||null==(t=l.call(e,"filterFormItemSettings","defaultOperator"))?void 0:t.value)||(null==(n=e.subModels)||null==(o=n.field)?void 0:o.operator)||(null==(i=a.find(e=>e.selected))?void 0:i.value)||(null==(r=a[0])?void 0:r.value)||"$includes"}function aw(e){return!!(null==e||"string"==typeof e&&""===e.trim()||Array.isArray(e)&&0===e.filter(e=>null!=e&&("string"!=typeof e||""!==e.trim())).length)||"object"==typeof e&&e.constructor===Object&&0===Object.keys(e).length}function aS(e){return e.filterSubModels("items",e=>{var t;return!!(null==(t=e.resource)?void 0:t.supportsFilter)})}ac.itemModelName="DetailsItemModel",ac.maxAssociationFieldDepth=2,ac.define({label:'{{t("Display fields")}}'});let ak={$match:"$in",$anyOf:"$in",$notMatch:"$notIn",$noneOf:"$notIn"};function aF(e,t){var l,o,n;let i=null==e||null==(l=e.context)?void 0:l.dataSourceManager,r=null==e?void 0:e.collection;if(!i||!(null==r?void 0:r.dataSourceKey)||!(null==r?void 0:r.name)||!t)return;let a=r.name,s=t.split(".").filter(Boolean);for(let e=0;e<s.length;e+=1){let t=null==(o=i.getCollectionField)?void 0:o.call(i,`${r.dataSourceKey}.${a}.${s[e]}`);if(!t||e===s.length-1)return t;if(!(a=t.target||(null==(n=t.targetCollection)?void 0:n.name)))return}}function aC(e,t,l){let o=ak[e];if(!o)return e;let n=aF(t,l);return!n||ap(n)?e:o}async function aA(e){(null==e?void 0:e.loading)&&await new Promise(t=>{let l=()=>{e.loading?setTimeout(l,16):t()};l()})}function aP(e){if(e instanceof Error)return e.message;try{return String(e)}catch{return"Unknown error"}}class aT{async saveFilterConfigs(){await this.gridModel.saveStepParams()}getFilterConfigs(){return this.filterConfigs}getConnectFieldsConfig(e){let t=this.filterConfigs.filter(t=>t.filterId===e);if(0!==t.length)return{targets:t.map(e=>({targetId:e.targetId,filterPaths:e.filterPaths}))}}async prepareFiltersForTarget(e){let t=this.filterConfigs.filter(t=>t.targetId===e),l=new Set;return await Promise.all(t.map(async t=>{try{var o;let e=this.gridModel.flowEngine.getModel(t.filterId),n=null==e||null==(o=e.context)?void 0:o.blockModel;if(!n||"function"!=typeof n.prepareInitialFilterValues)return;let i=await n.prepareInitialFilterValues();!1!==i&&l.add(n)}catch(t){console.error(`Failed to prepare filter defaults for target "${e}": ${aP(t)}`)}})),l}async saveConnectFieldsConfig(e,t){let l=t.targets.map(t=>({filterId:e,targetId:t.targetId,filterPaths:t.filterPaths})),o=this.filterConfigs.filter(t=>t.filterId!==e);this.filterConfigs=[],this.filterConfigs.push(...o,...l),await this.saveFilterConfigs()}async addFilterConfig(e){if(!e.filterId||!e.targetId)return void console.error("FilterConfig must have filterId, targetId, and operator");if(!Array.isArray(e.filterPaths)||0===e.filterPaths.length)return void console.error("FilterConfig must have non-empty filterPaths array");let t=this.filterConfigs.findIndex(t=>t.filterId===e.filterId&&t.targetId===e.targetId);t>=0?this.filterConfigs[t]={...e}:this.filterConfigs.push({...e}),await this.saveFilterConfigs()}async removeFilterConfig(e){let{filterId:t,targetId:l,persist:o=!0}=e;if(!t&&!l)return console.error("At least one of filterId or targetId must be provided"),0;let n=this.filterConfigs.length;this.filterConfigs=this.filterConfigs.filter(e=>t&&l?e.filterId!==t||e.targetId!==l:t?e.filterId!==t:!l||e.targetId!==l);let i=n-this.filterConfigs.length;return i>0&&o&&await this.saveFilterConfigs(),i}bindToTarget(e){if(!e||"string"!=typeof e)return void console.error("[NocoBase]: targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`[NocoBase]: Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.addFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with addFilterGroup method`);if("function"!=typeof t.resource.removeFilterGroup)return void console.error(`[NocoBase]: Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{let l=this.gridModel.flowEngine.getModel(e.filterId);if(!l)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" not found`);if(!l.getFilterValue)return void console.error(`[NocoBase]: Filter model with uid "${e.filterId}" does not have getFilterValue method`);let n=l.getFilterValue();if(aw(n)){try{t.resource.removeFilterGroup(e.filterId),o.setFilterActive(e.filterId,!1)}catch(e){console.error(`[NocoBase]: Failed to remove filter configuration from target model: ${e.message}`)}return}o.setFilterActive(e.filterId,!0);let i=e.filterPaths.map(o=>({path:o,operator:aC(e.operator||aM(l),t,o),value:n}));try{if(1===i.length)t.resource.addFilterGroup(e.filterId,new u.FilterItem({path:i[0].path,operator:i[0].operator,value:i[0].value}));else if(i.length>1){let l={logic:"$or",items:i};t.resource.addFilterGroup(e.filterId,new u.FilterGroup(l))}}catch(e){console.error(`Failed to bind filter configuration to target model: ${e.message}`);return}})}unbindFromTarget(e){if(!e||"string"!=typeof e)return void console.error("targetId must be a non-empty string");let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.removeFilterGroup)return void console.error(`Target model with uid "${e}" does not have a valid resource with removeFilterGroup method`);let l=this.filterConfigs.filter(t=>t.targetId===e);if(0===l.length)return;let o=t;l.forEach(e=>{try{t.resource.removeFilterGroup(e.filterId),"function"==typeof(null==o?void 0:o.removeFilterSource)&&o.removeFilterSource(e.filterId)}catch(e){console.error(`Failed to unbind filter configuration from target model: ${e.message}`);return}})}async refreshTargetsByFilter(e,t){if(!e)return void console.error("filterId must be provided");let l=Array.isArray(e)?e:[e];if(0===l.length||l.some(e=>!e||"string"!=typeof e))return void console.error("filterId must be non-empty string(s)");let o=this.filterConfigs.filter(e=>l.includes(e.filterId));if(0===o.length)return;let n=(null==t?void 0:t.excludeTargetIds)?new Set(t.excludeTargetIds):void 0,i=[...new Set(o.map(e=>e.targetId))].filter(e=>!(null==n?void 0:n.has(e))).map(async e=>{try{this.bindToTarget(e);let t=this.gridModel.flowEngine.getModel(e);if(!t)return void console.error(`Target model with uid "${e}" not found`);if(!t.resource||"function"!=typeof t.resource.refresh)return void console.error(`Target model with uid "${e}" does not have a valid resource with refresh method`);let l=t,o=t.resource,n=l.getDataLoadingMode();if("manual"===n&&!l.hasActiveFilters()){o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1;return}await aA(o),"function"==typeof o.setPage&&o.setPage(1),await o.refresh()}catch(t){console.error(`Failed to refresh target model "${e}": ${t.message}`);return}});await Promise.all(i)}constructor(e,t){this.gridModel=e,this.filterConfigs=t||[]}}function aj(e){let{rows:t={},sizes:l={},layout:o,renderItem:n,rowGap:i=16,colGap:r=16,dragOverlayRect:a}=e,d=o||(0,u.normalizeGridLayout)({rows:t,sizes:l});return d.rows.length?(0,s.jsxs)("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:i},"data-grid-root":!0,children:[a&&(0,s.jsx)(aD,{rect:a}),(0,s.jsx)(aI,{rows:d.rows,renderItem:n,rowGap:i,colGap:r,parentPath:[]})]}):(0,s.jsx)("div",{style:{position:"relative"},"data-grid-root":!0,"data-grid-empty-container":!0,children:a&&(0,s.jsx)(aD,{rect:a})})}function aI(e){let{rows:t,renderItem:l,rowGap:o,colGap:n,parentPath:i}=e;return(0,s.jsx)(s.Fragment,{children:t.map(e=>{let t=e.cells.length,r=e.sizes||[],a=r.some(e=>null!=e&&void 0!==e),d=[...i,{rowId:e.id}],u=e.cells.map((e,l)=>{if(!a)return 24/t;{let e=r.reduce((e,t)=>e+(t||0),0),o=t-r.filter(Boolean).length,n=o>0?(24-e)/o:0;return r[l]??n}});return(0,s.jsx)(g.Row,{gutter:n,"data-grid-row-id":e.id,"data-grid-path":JSON.stringify(d),children:e.cells.map((t,i)=>(0,s.jsx)(aL,{rowKey:e.id,columnIndex:i,span:u[i],rowGap:o,colGap:n,cell:t,path:[...d.slice(0,-1),{rowId:e.id,cellId:t.id}],renderItem:l},t.id))},e.id)})})}let aL=p.default.memo(function(e){var t;let{rowKey:l,columnIndex:o,span:n,rowGap:i,colGap:r,cell:a,path:d,renderItem:c}=e,p=a.items||[];return(0,s.jsx)(g.Col,{span:n,"data-grid-column-row-id":l,"data-grid-column-index":o,"data-grid-path":JSON.stringify(d),children:(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:i},children:[p.map((e,t)=>e===u.EMPTY_COLUMN_UID?null:(0,s.jsx)("div",{"data-grid-item-row-id":l,"data-grid-column-index":o,"data-grid-item-index":t,"data-grid-item-uid":e,"data-grid-path":JSON.stringify(d),children:c(e)},e)),(null==(t=a.rows)?void 0:t.length)?(0,s.jsx)(aI,{rows:a.rows,renderItem:c,rowGap:i,colGap:r,parentPath:d}):null]})})});function aD(e){let{rect:t}=e,l={position:"absolute",top:t.top,left:t.left,width:t.width,height:t.height,borderRadius:6,pointerEvents:"none",transition:"all 60ms ease-out",zIndex:100},o={column:{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.08)"},"column-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"},"row-gap":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.05)"},"empty-row":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"empty-column":{border:"2px dashed var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.04)"},"item-edge":{border:"2px solid var(--colorPrimary)",backgroundColor:"rgba(22, 119, 255, 0.12)"}};return(0,s.jsx)("div",{style:{...l,...o[t.type]}})}aL.displayName="GridColumn";let aR=e=>{let{value:t,onChange:l,rows:o=10,...n}=e,[i,r]=(0,p.useState)(()=>t?JSON.stringify(t,null,2):""),[a,d]=(0,p.useState)(null);(0,p.useEffect)(()=>{r(t?JSON.stringify(t,null,2):"")},[t]);let u=e=>{let t=e.target.value;r(t);try{let e=t.trim()?JSON.parse(t):void 0;d(null),null==l||l(e)}catch(e){d(e.message)}};return(0,s.jsxs)("div",{children:[(0,s.jsx)(g.Input.TextArea,{value:i,autoSize:{minRows:o,maxRows:o+10},onChange:u,...n}),a&&(0,s.jsx)(g.Alert,{type:"error",message:a,showIcon:!0,style:{marginTop:8}})]})},aE=(0,ly.connect)(aR),aY="gridSettings",aN="grid",aO=e=>{if(!e)return null;if("number"==typeof e.clientX&&"number"==typeof e.clientY)return{x:e.clientX,y:e.clientY};if(e.touches&&e.touches.length>0){let t=e.touches[0];return{x:t.clientX,y:t.clientY}}if(e.changedTouches&&e.changedTouches.length>0){let t=e.changedTouches[0];return{x:t.clientX,y:t.clientY}}return null};class aB extends u.FlowModel{onInit(e){super.onInit(e),this.props.dragOverlayRect&&this.setProps("dragOverlayRect",null)}bindDragDocumentListeners(){var e;let t=(null==(e=this.getDragContainer())?void 0:e.ownerDocument)||("u"<typeof document?null:document);if(!t)return;let l={capture:!0,passive:!0},o={capture:!0},n=t.defaultView;return t.addEventListener("pointermove",this.updateDragPointerPosition,l),t.addEventListener("mousemove",this.updateDragPointerPosition,l),t.addEventListener("touchmove",this.updateDragPointerPosition,l),t.addEventListener("scroll",this.handleDragScroll,l),null==n||n.addEventListener("scroll",this.handleDragScroll,l),()=>{t.removeEventListener("pointermove",this.updateDragPointerPosition,o),t.removeEventListener("mousemove",this.updateDragPointerPosition,o),t.removeEventListener("touchmove",this.updateDragPointerPosition,o),t.removeEventListener("scroll",this.handleDragScroll,o),null==n||n.removeEventListener("scroll",this.handleDragScroll,o)}}deriveRowOrder(e,t){let l=[],o=new Set;return(t||Object.keys(e)).forEach(t=>{e[t]&&!o.has(t)&&(l.push(t),o.add(t))}),Object.keys(e).forEach(e=>{o.has(e)||(l.push(e),o.add(e))}),l}normalizeRowsWithOrder(e,t){let l=this.deriveRowOrder(e,t),o={};return l.forEach(t=>{e[t]&&(o[t]=e[t])}),Object.keys(e).forEach(t=>{o[t]||(o[t]=e[t])}),{rows:o,rowOrder:l}}orderSizesByRowOrder(e,t){let l={};return t.forEach(t=>{e[t]&&(l[t]=e[t])}),Object.keys(e).forEach(t=>{l[t]||(l[t]=e[t])}),l}getItemFlowSettings(){return this._memoItemFlowSettings||(this._memoItemFlowSettings={showBackground:!1,showDragHandle:!0,...this.itemFlowSettings}),this._memoItemFlowSettings}getItemUids(){return(this.subModels.items||[]).map(e=>e.uid)}normalizeLayoutFromSource(e){let t=this.getStepParams(aY,aN)||{};return(0,u.normalizeGridLayout)({layout:(null==e?void 0:e.layout)??this.props.layout??t.layout,rows:(null==e?void 0:e.rows)??this.props.rows??t.rows,sizes:(null==e?void 0:e.sizes)??this.props.sizes??t.sizes,rowOrder:(null==e?void 0:e.rowOrder)??this.props.rowOrder??t.rowOrder,itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}getGridLayout(){return this.normalizeLayoutFromSource()}serialize(){let e=super.serialize();return e.props=c.default.omit(e.props,["dragOverlayRect"]),e}syncLayoutProps(e){let t=(0,u.projectLayoutToLegacyRows)(e);this.setProps("layout",e),this.setProps("rows",t.rows),this.setProps("sizes",t.sizes),this.setProps("rowOrder",t.rowOrder)}setGridStepLayout(e){this.setStepParams(aY,{[aN]:{layout:e}})}findLayoutRowByPath(e,t){if(!(null==t?void 0:t.length))return null;let l=e.rows;for(let e=0;e<t.length;e+=1){let o=t[e],n=l.find(e=>e.id===o.rowId);if(!n)break;if(e===t.length-1)return n;let i=n.cells.find(e=>e.id===o.cellId);l=(null==i?void 0:i.rows)||[]}return null}collectCellItemsForResize(e){return Array.isArray(e.items)?[...e.items]:(e.rows||[]).flatMap(e=>e.cells.flatMap(e=>this.collectCellItemsForResize(e)))}buildResizedCells(e,t){let l=new Set;return t.map((t,o)=>{let n=e.cells.findIndex((e,o)=>!l.has(o)&&c.default.isEqual(this.collectCellItemsForResize(e),t));if(-1!==n){l.add(n);let o=e.cells[n];return o.rows&&!o.items?c.default.cloneDeep(o):{id:o.id,items:[...t]}}return{id:`${e.id}:cell:${o}:${(0,nx.uid)()}`,items:[...t]}})}getResizeRowPath(e){if(!(null==e?void 0:e.length))return[];let t=e.map(e=>({...e}));return delete t[t.length-1].cellId,t}getResizeContainerWidth(e){var t,l,o;let n=this.getResizeRowPath(e),i=(null==(t=this.gridContainerRef.current)?void 0:t.clientWidth)||0;if(!n.length)return i;let r=Array.from((null==(l=this.gridContainerRef.current)?void 0:l.querySelectorAll("[data-grid-row-id]"))||[]).find(e=>{try{return c.default.isEqual(JSON.parse(e.dataset.gridPath||"[]"),n)}catch{return!1}});return(null==r||null==(o=r.parentElement)?void 0:o.clientWidth)||i}prunePlaceholderOnlyRows(e){let t=e=>e.map(e=>{let l=e.cells.map((l,o)=>{var n,i;let r=(null==(n=e.sizes)?void 0:n[o])??1;if(null==(i=l.rows)?void 0:i.length){let e=t(l.rows);return e.length?{cell:{...l,rows:e},size:r,hasRealItem:!0}:null}let a=l.items||[],s=a.some(e=>e!==u.EMPTY_COLUMN_UID),d=a.includes(u.EMPTY_COLUMN_UID);return s||d?{cell:l,size:r,hasRealItem:s}:null}).filter(Boolean);return l.some(e=>e.hasRealItem)?{...e,cells:l.map(e=>e.cell),sizes:l.map(e=>e.size)}:null}).filter(Boolean);return(0,u.normalizeGridLayout)({layout:{...e,rows:t(e.rows||[])},itemUids:this.getItemUids(),gridUid:this.uid,logger:console})}resizeGridLayout(e){var t;let{direction:l,resizeDistance:o,model:n}=e,i=this.getGridLayout(),r=(0,u.findModelUidLayoutPosition)(i,n.uid);if(!r)return null;let a=this.findLayoutRowByPath(i,r.path);if(!a)return null;let s=this.getResizeContainerWidth(r.path),d=a.cells.map(e=>this.collectCellItemsForResize(e)),{newRows:p,newSizes:m,moveDistance:h}=aH({position:{rowId:a.id,columnIndex:r.cellIndex,itemIndex:r.itemIndex},direction:l,resizeDistance:o,prevMoveDistance:this.prevMoveDistance,oldRows:{[a.id]:d},oldSizes:{[a.id]:a.sizes||[]},gutter:(null==(t=this.context.themeToken)?void 0:t.marginBlock)??16,gridContainerWidth:s}),f=c.default.cloneDeep(i),g=this.findLayoutRowByPath(f,r.path);return g?(g.cells=this.buildResizedCells(a,p[a.id]||[]),g.sizes=m[a.id]||[],{layout:(0,u.normalizeGridLayout)({layout:f,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}),moveDistance:h}):null}onMount(){super.onMount(),this.emitter.on("onSubModelAdded",e=>{e.isNew&&(this.resetRows(!0),this.setGridStepLayout(this.props.layout))}),this.emitter.on("onSubModelDestroyed",e=>{var t,l;let o=e.uid;this.resetRows(!0);let n=this.prunePlaceholderOnlyRows(this.props.layout);this.setGridStepLayout(n),this.syncLayoutProps(n),null==(t=this.context.filterManager)||t.removeFilterConfig({targetId:o}),null==(l=this.context.filterManager)||l.removeFilterConfig({filterId:o}),this.saveStepParams()}),this.emitter.on("onSubModelMoved",()=>{this.resetRows(!0)}),this.emitter.on("onResizeLeft",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"left",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeRight",e=>{let{resizeDistance:t,model:l}=e,o=this.resizeGridLayout({direction:"right",resizeDistance:t,model:l});o&&(this.prevMoveDistance=o.moveDistance,this.syncLayoutProps(o.layout))}),this.emitter.on("onResizeBottom",e=>{let{resizeDistance:t,model:l}=e}),this.emitter.on("onResizeEnd",()=>{this.prevMoveDistance=0,this.saveGridLayout(this.props.layout)})}saveGridLayout(e){let t=e&&"version"in e?(0,u.normalizeGridLayout)({layout:e,itemUids:this.getItemUids(),gridUid:this.uid,logger:console}):this.normalizeLayoutFromSource(e);this.setGridStepLayout(t),this.syncLayoutProps(t),this.saveStepParams()}mergeRowsWithItems(e){let t=this.subModels.items||[];if(!t||0===t.length)return{};let l=new Set(t.map(e=>e.uid));l.add(u.EMPTY_COLUMN_UID);let o=new Set,n={};for(let[t,i]of Object.entries(e)){let e=i.map(e=>c.default.castArray(e).filter(e=>l.has(e))).filter(e=>e.length>0);e.length>0&&(n[t]=e,e.forEach(e=>e.forEach(e=>o.add(e))))}let i=new Set;for(let e of(Object.values(n).forEach(e=>e.forEach(e=>e.forEach(e=>i.add(e)))),t))i.has(e.uid)||(n[(0,nx.uid)()]=[[e.uid]]);return n}resetRows(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getStepParams(aY,aN)||{},l=this.normalizeLayoutFromSource(t);this.setGridStepLayout(l),e&&this.syncLayoutProps(l)}computePointerPosition(e){var t;if(!this.dragState)return null;if(this.dragState.pointerPosition)return this.dragState.pointerPosition;let l=this.dragState.pointerOrigin;if(l)return{x:l.x+e.delta.x,y:l.y+e.delta.y};let o=aO(e.activatorEvent);if(o)return this.dragState.pointerOrigin=o,{x:o.x+e.delta.x,y:o.y+e.delta.y};let n=null==(t=e.over)?void 0:t.rect;return n?{x:n.left+n.width/2,y:n.top+n.height/2}:null}getDragContainer(){if(!this.dragState)return this.gridContainerRef.current;let e=this.gridContainerRef.current;return e&&this.dragState.containerEl!==e&&(this.dragState.containerEl=e),this.dragState.containerEl||e}updateLayoutSnapshot(){if(!this.dragState)return;let e=(0,u.buildLayoutSnapshot)({container:this.getDragContainer()});this.dragState.slots=e.slots,this.dragState.containerRect=e.containerRect}scheduleSnapshotRefresh(){!this.dragState||this.dragState.refreshTimer||(this.dragState.refreshTimer=setTimeout(()=>{this.dragState&&(this.dragState.refreshTimer=null,this.updateLayoutSnapshot(),this.refreshPreviewFromPointer())},16))}refreshPreviewFromPointer(){if(!this.dragState)return;let e=this.dragState.pointerPosition||this.dragState.pointerOrigin;if(!e)return;let t=this.resolveDragSlot(e);this.applyPreview(t)}computeOverlayRect(e){var t,l,o,n;let i=this.dragOverlayConfig,r=e.rect;switch(e.type){case"column":{let l=null==i||null==(t=i.columnInsert)?void 0:t[e.position],o=(null==l?void 0:l.height)??r.height,n=(null==l?void 0:l.offsetTop)??0;return{top:r.top+n,left:r.left,width:r.width,height:o}}case"column-edge":{let t=null==i||null==(l=i.columnEdge)?void 0:l[e.direction],o=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:o,height:r.height}}case"item-edge":{let t=null==i||null==(o=i.columnEdge)?void 0:o[e.direction],l=(null==t?void 0:t.width)??r.width,n=(null==t?void 0:t.offsetLeft)??0;return{top:r.top,left:r.left+n,width:l,height:r.height}}case"row-gap":{let t=null==i||null==(n=i.rowGap)?void 0:n[e.position],l=(null==t?void 0:t.height)??r.height,o=(null==t?void 0:t.offsetTop)??0;return{top:r.top+o,left:r.left,width:r.width,height:l}}default:return{top:r.top,left:r.left,width:r.width,height:r.height}}}getHitTestSlot(e){return{...e,rect:this.computeOverlayRect(e)}}resolveDragSlot(e){var t;return(null==(t=this.dragState)?void 0:t.slots.length)?(0,u.resolveDropIntent)(e,this.dragState.slots.map(e=>this.getHitTestSlot(e))):null}applyPreview(e){if(!this.dragState)return;if(!e){null!==this.dragState.activeSlotKey&&(this.dragState.activeSlotKey=null,this.dragState.previewLayout=void 0,this.setProps("dragOverlayRect",null));return}let t=(0,u.getSlotKey)(e);if(this.dragState.activeSlotKey===t&&this.dragState.previewLayout)return;let l=(0,u.simulateLayoutForSlot)({slot:e,sourceUid:this.dragState.sourceUid,layout:this.dragState.snapshot,generateRowId:nx.uid,generatedIds:this.dragState.generatedIds,generateId:()=>(0,nx.uid)()});if(l.layout&&this.dragState.snapshot.layout&&(0,u.isSameGridLayout)(l.layout,this.dragState.snapshot.layout))return void this.applyPreview(null);this.dragState.previewLayout={rows:c.default.cloneDeep(l.rows),sizes:c.default.cloneDeep(l.sizes),rowOrder:c.default.cloneDeep(l.rowOrder),layout:c.default.cloneDeep(l.layout)};let o=this.computeOverlayRect(e),n={top:o.top-this.dragState.containerRect.top,left:o.left-this.dragState.containerRect.left,width:o.width,height:o.height,type:e.type};this.setProps("dragOverlayRect",n),this.dragState.activeSlotKey=t}handleDragStart(e){let t=e.active.id,l=this.normalizeLayoutFromSource(),o=(0,u.projectLayoutToLegacyRows)(l);this.dragState={sourceUid:t,snapshot:{rows:c.default.cloneDeep(o.rows),sizes:c.default.cloneDeep(o.sizes),rowOrder:c.default.cloneDeep(o.rowOrder),layout:c.default.cloneDeep(l)},slots:[],containerEl:this.gridContainerRef.current,containerRect:{top:0,left:0,width:0,height:0},pointerOrigin:aO(e.activatorEvent)??void 0,activeSlotKey:null,previewLayout:void 0,refreshTimer:null,generatedIds:new Map},this.dragState.cleanupListeners=this.bindDragDocumentListeners(),this.setProps("dragOverlayRect",null),this.updateLayoutSnapshot(),this.scheduleSnapshotRefresh()}handleDragMove(e){if(!this.dragState)return;this.dragState.slots.length||this.updateLayoutSnapshot();let t=this.computePointerPosition(e);if(!t)return void this.applyPreview(null);let l=this.resolveDragSlot(t);this.applyPreview(l)}finishDrag(){var e,t;this.dragState&&(this.dragState.refreshTimer&&clearTimeout(this.dragState.refreshTimer),null==(e=(t=this.dragState).cleanupListeners)||e.call(t),this.dragState=void 0,this.setProps("dragOverlayRect",null))}handleDragEnd(e){if(!this.dragState)return;let t=this.computePointerPosition(e);if(t){let e=this.resolveDragSlot(t);this.applyPreview(e)}let l=this.dragState.previewLayout;l&&(l.layout?this.syncLayoutProps(c.default.cloneDeep(l.layout)):(this.setProps("rows",c.default.cloneDeep(l.rows)),this.setProps("sizes",c.default.cloneDeep(l.sizes)),l.rowOrder&&this.setProps("rowOrder",c.default.cloneDeep(l.rowOrder))),this.saveGridLayout(l)),this.finishDrag()}handleDragCancel(e){this.finishDrag()}renderAddSubModelButton(){throw Error("renderAddSubModelButton method must be implemented in subclasses of GridModel")}getVisibleLayout(){var e;let t=this.normalizeLayoutFromSource(),l=this.context.isMobileLayout?(0,u.normalizeGridLayout)({rows:aV((0,u.projectLayoutToLegacyRows)(t).rows),itemUids:this.getItemUids()}):t,o=(0,u.projectLayoutToLegacyRows)(l),{rows:n,rowOrder:i}=this.normalizeRowsWithOrder(o.rows,o.rowOrder),r=this.orderSizesByRowOrder(o.sizes,i);if(this.context.flowSettingsEnabled)return{layout:l,rows:n,sizes:r};let a=new Map(((null==(e=this.subModels)?void 0:e.items)||[]).map(e=>[e.uid,e])),s=e=>e.map(e=>{let t=e.cells.map((t,l)=>{var o;let n=null==(o=e.sizes)?void 0:o[l],i=Number.isFinite(n)&&n>0?n:1;if(t.rows){let e=s(t.rows);return e.length?{cell:{...t,rows:e},size:i,hasVisibleContent:!0}:null}let r=(t.items||[]).filter(e=>{var t;return e===u.EMPTY_COLUMN_UID||(null==(t=a.get(e))?void 0:t.hidden)!==!0}),d=r.some(e=>{if(e===u.EMPTY_COLUMN_UID)return!1;let t=a.get(e);return!t||!t.hidden}),c=r.includes(u.EMPTY_COLUMN_UID);return d||c?{cell:{...t,items:r},size:i,hasVisibleContent:d}:null}).filter(Boolean);return t.some(e=>e.hasVisibleContent)?{...e,cells:t.map(e=>e.cell),sizes:t.map(e=>e.size)}:null}).filter(Boolean),d=(0,u.normalizeGridLayout)({layout:{version:2,rows:s(l.rows)}}),c=(0,u.projectLayoutToLegacyRows)(d);return{layout:d,rows:c.rows,sizes:c.sizes}}render(){let{layout:e,rows:t,sizes:l}=this.getVisibleLayout(),o=Object.keys(t||{}).length>0;return(0,s.jsxs)(s.Fragment,{children:[o&&(0,s.jsx)(g.Space,{ref:this.gridContainerRef,direction:"vertical",style:{width:"100%",marginBottom:this.props.rowGap,display:"flex"},size:this.props.rowGap,children:(0,s.jsx)(u.DndProvider,{onDragStart:this.handleDragStart.bind(this),onDragMove:this.handleDragMove.bind(this),onDragEnd:this.handleDragEnd.bind(this),onDragCancel:this.handleDragCancel.bind(this),children:(0,s.jsx)(aj,{rowGap:this.props.rowGap,colGap:this.props.colGap,layout:e,rows:t,sizes:l,dragOverlayRect:this.props.dragOverlayRect,renderItem:e=>{var t,l,o,n,i;let r=this.flowEngine.getModel(e);if(!r)return this.itemFallback;let a=this.context.fieldKey,d=this.context.fieldIndex,c=this.context.getPropertyOptions("item"),p=null==(t=(l=this.context).getPropertyOptions)?void 0:t.call(l,"record"),m=null==(o=(n=this.context).getPropertyOptions)?void 0:o.call(n,"currentObject"),h=null==d?r:(()=>{let t=r.createFork({},`${a}:${e}`);t.context.defineProperty("fieldIndex",{get:()=>d}),t.context.defineProperty("fieldKey",{get:()=>a}),t.context.defineProperty("record",{get:()=>this.context.record,cache:!1,meta:null==p?void 0:p.meta,resolveOnServer:null==p?void 0:p.resolveOnServer,serverOnlyWhenContextParams:null==p?void 0:p.serverOnlyWhenContextParams}),t.context.defineProperty("currentObject",{get:()=>this.context.currentObject,cache:!1,resolveOnServer:null==m?void 0:m.resolveOnServer,serverOnlyWhenContextParams:null==m?void 0:m.serverOnlyWhenContextParams});let{value:l,...o}=c||{};return t.context.defineProperty("item",{...o,get:()=>this.context.item,cache:!1}),t})();return(0,s.jsx)(u.Droppable,{model:h,children:(0,s.jsx)(u.MemoFlowModelRenderer,{model:h,fallback:r.skeleton||this.itemFallback,showFlowSettings:!!this.context.flowSettingsEnabled&&this.getItemFlowSettings(),showErrorFallback:!0,settingsMenuLevel:(null==h?void 0:h.settingsMenuLevel)??this.itemSettingsMenuLevel,showTitle:!0,extraToolbarItems:this.itemExtraToolbarItems},`${h.uid}:${a}:${(null==h?void 0:h.use)||(null==h||null==(i=h.constructor)?void 0:i.name)||"m"}`)})}})})}),this.context.flowSettingsEnabled&&(0,s.jsx)("div",{style:{marginBottom:16},children:this.renderAddSubModelButton()})]})}constructor(...e){super(...e),this.subModelBaseClass="BlockModel",this.gridContainerRef=p.default.createRef(),this.prevMoveDistance=0,this.itemSettingsMenuLevel=1,this.itemFlowSettings={},this.itemFallback=(0,s.jsx)(o4,{}),this.itemExtraToolbarItems=[{key:"drag-handler",component:u.DragHandler,sort:1}],this.updateDragPointerPosition=e=>{if(!this.dragState)return;let t=aO(e);t&&(this.dragState.pointerPosition=t)},this.handleDragScroll=()=>{this.dragState&&this.scheduleSnapshotRefresh()}}}function aV(e,t){let l=(null==t?void 0:t.emptyColumnUid)??u.EMPTY_COLUMN_UID,o={};return Object.keys(e).forEach(t=>{e[t].forEach(e=>{let t=e.filter(e=>e!==l);t.length>0&&(o[(0,nx.uid)()]=[t])})}),o}function aH(e){var t,l;let{position:o,direction:n,resizeDistance:i,prevMoveDistance:r,oldSizes:a,oldRows:s,gridContainerWidth:d,gutter:u=16,columnCount:p=24}=e,m=c.default.cloneDeep(s),h=c.default.cloneDeep(a),f=Math.floor(i/(d-u*((h[o.rowId]||[]).length-1))*p);if(f===r)return{newRows:m,newSizes:h,moveDistance:f};(t=h)[l=o.rowId]??(t[l]=[p]);let g=h[o.rowId],v=f-r,y="left"===n&&o.columnIndex>0,_="right"===n&&o.columnIndex<g.length-1;if(!y&&!_&&v>0){let e=p-g.reduce((e,t)=>e+t,0);if(e<=0)return{newRows:m,newSizes:h,moveDistance:r};v>e&&(f=r+e,v=e)}if(h[o.rowId][o.columnIndex]+=v,"left"===n&&o.columnIndex>0&&(h[o.rowId][o.columnIndex-1]-=v,0===h[o.rowId][o.columnIndex-1]&&a$({rows:m,sizes:h,position:o,direction:"left"})),"left"===n&&0===o.columnIndex){let e=h[o.rowId].slice(1).reduce((e,t)=>e+t,0);h[o.rowId][0]<p-e&&aq({rows:m,sizes:h,position:o,direction:"left"})}if("right"===n&&o.columnIndex<h[o.rowId].length-1&&(h[o.rowId][o.columnIndex+1]-=v,0===h[o.rowId][o.columnIndex+1]&&a$({rows:m,sizes:h,position:o,direction:"right"})),"right"===n&&o.columnIndex===h[o.rowId].length-1){let e=h[o.rowId].slice(0,-1).reduce((e,t)=>e+t,0);h[o.rowId][o.columnIndex]<p-e&&aq({rows:m,sizes:h,position:o,direction:"right"})}return{newRows:m,newSizes:h,moveDistance:f}}function aq(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex,0,[u.EMPTY_COLUMN_UID]),r.splice(o.columnIndex,0,1)}if("right"===n){let e=i[o.columnIndex+1];if(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID))return;i.splice(o.columnIndex+1,0,[u.EMPTY_COLUMN_UID]),r.splice(o.columnIndex+1,0,1)}}function a$(e){let{rows:t,sizes:l,position:o,direction:n}=e,i=t[o.rowId]||[],r=l[o.rowId]||[];if("left"===n){let e=i[o.columnIndex-1];if(!(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex-1,1),r.splice(o.columnIndex-1,1)}if("right"===n){let e=i[o.columnIndex+1];if(!(null==e?void 0:e.includes(u.EMPTY_COLUMN_UID)))return;i.splice(o.columnIndex+1,1),r.splice(o.columnIndex+1,1)}}aB.registerFlow({key:aY,steps:{resetRows:{handler(e){e.model.resetRows()}},grid:{uiSchema:{layout:{title:(0,u.tExpr)("Layout"),"x-decorator":"FormItem","x-component":aE,"x-component-props":{autoSize:{minRows:10,maxRows:20},description:(0,u.tExpr)("Configure the nested layout of the grid.")}}},async handler(e,t){let l=e.model,o=(0,u.normalizeGridLayout)({layout:t.layout,rows:t.rows,sizes:t.sizes,rowOrder:t.rowOrder,itemUids:l.getItemUids(),gridUid:l.uid,logger:console});l.setGridStepLayout(o),l.syncLayoutProps(o)}}}});let az=["JSBlockModel","IframeBlockModel","MarkdownBlockModel"];class aK extends aB{onInit(e){super.onInit(e),this.context.defineProperty("blockGridModel",{value:this}),this.context.defineProperty("filterManager",{once:!0,get:()=>new aT(this,e.filterManager)})}get subModelBaseClasses(){var e;let t=(null==(e=this.context.view)?void 0:e.inputArgs)??{};return t.collectionName&&!t.filterByTk,["DataBlockModel","FilterBlockModel","BlockModel"]}get filterManager(){return this.context.filterManager}get addBlockItems(){var e,t;if((null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.scene)==="select")return async e=>{let t=await (0,u.buildSubModelGroups)(["DataBlockModel","FilterBlockModel"])(e),l=az.filter(t=>!!e.engine.getModelClass(t)),o=(await Promise.all(l.map(t=>(0,u.buildSubModelItems)(t)(e)))).flat().sort((e,t)=>(e.sort??1e3)-(t.sort??1e3));return o.length>0&&t.push({key:"select-scene-other-blocks",type:"group",label:e.t("Other blocks"),sort:1e3,children:o}),t}}serialize(){let e=super.serialize();return e.filterManager=this.filterManager.getFilterConfigs(),e}renderAddSubModelButton(){let e=this.addBlockItems;return(0,s.jsx)(u.AddSubModelButton,{model:this,subModelKey:"items",items:e,subModelBaseClasses:e?void 0:this.subModelBaseClasses,children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.PlusOutlined,{}),"data-flow-add-block":!0,children:this.context.t("Add block")})})}render(){return(0,s.jsx)("div",{className:"nb-block-grid",style:this.context.disableBlockGridPadding?null:{padding:this.context.isMobileLayout?8:this.context.themeToken.marginBlock,paddingBottom:0},children:super.render()})}constructor(...e){super(...e),this.dragOverlayConfig={columnInsert:{before:{offsetTop:-12},after:{offsetTop:12}},columnEdge:{left:{offsetLeft:-5},right:{offsetLeft:6}}}}}aK.registerFlow({key:"blockGridSettings",steps:{grid:{handler(e,t){e.model.setProps("rowGap",e.isMobileLayout?12:e.themeToken.marginBlock),e.model.setProps("colGap",e.themeToken.marginBlock)}}}});var aU=__webpack_require__(3890),aG=__webpack_require__(9639),aW=__webpack_require__(146);class aJ extends u.FlowModel{}var aX=__webpack_require__(2606);class aQ extends aU.z{}aQ.define({hide:!0,label:"Filter blocks"});var aZ=__webpack_require__(2542);async function a0(e){var t,l,o,n,i;(null==(l=e.inputArgs)||null==(t=l.dirty)?void 0:t.hasDirtyForms)&&(await e.modal.confirm({title:e.t("Unsaved changes"),content:e.t("Are you sure you don't want to save?"),okText:e.t("Confirm"),cancelText:e.t("Cancel")})||(null==(i=e.inputArgs)||null==(n=i.controller)||null==(o=n.prevent)||o.call(n),e.exitAll()))}class a1 extends u.FlowModel{getEnableTabs(){let e=this.context.currentRoute,t=this.props.routeId;return null!=t&&(null==e?void 0:e.id)!=null&&String(e.id)===String(t)&&"boolean"==typeof e.enableTabs?e.enableTabs:!!this.props.enableTabs}getActiveTabKey(){var e,t,l,o;let n=null==(t=this.context.view)||null==(e=t.navigation)?void 0:e.viewParams;return n?n.tabUid||(null==(o=this.getFirstTab())?void 0:o.uid):this.props.tabActiveKey||(null==(l=this.getFirstTab())?void 0:l.uid)}scheduleActiveLifecycleRefresh(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.dirtyRefreshScheduled||(this.dirtyRefreshScheduled=!0,Promise.resolve().then(()=>{this.dirtyRefreshScheduled=!1,this.unmounted||!1!==(0,u.getPageActive)(this.context)&&this.activateCurrentTab(e)}).catch(()=>{}))}activateCurrentTab(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.getActiveTabKey();t&&this.invokeTabModelLifecycleMethod(t,"onActive",e)}deactivateCurrentTab(){var e;let t=this.props.tabActiveKey||(null==(e=this.getFirstTab())?void 0:e.uid);t&&this.invokeTabModelLifecycleMethod(t,"onInactive")}onMount(){var e,t,l,o,n,i,r,a,s;super.onMount(),this.unmounted=!1,this.setProps("tabActiveKey",null==(e=this.context.view.inputArgs)?void 0:e.tabUid),(null==(t=this.context)?void 0:t.pageInfo)&&(this.context.pageInfo.version="v2"),this.updateDocumentTitle(),this.viewActivatedListener||(this.viewActivatedListener=e=>{this.activateCurrentTab()},null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.on)||o.call(n,u.VIEW_ACTIVATED_EVENT,this.viewActivatedListener));let d=(0,u.getEmitterViewActivatedVersion)(null==(l=this.flowEngine)?void 0:l.emitter),c=d>0&&d!==this.lastSeenEmitterViewActivatedVersion;this.lastSeenEmitterViewActivatedVersion=d,c&&!1!==(0,u.getPageActive)(this.context)&&this.activateCurrentTab(),this.dataSourceDirtyListener||(this.dataSourceDirtyListener=e=>{this.scheduleActiveLifecycleRefresh()},null==(s=this.flowEngine)||null==(a=s.emitter)||null==(r=a.on)||r.call(a,u.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener))}onUnmount(){var e,t,l,o,n,i;this.unmounted=!0,this.viewActivatedListener&&(null==(l=this.flowEngine)||null==(t=l.emitter)||null==(e=t.off)||e.call(t,u.VIEW_ACTIVATED_EVENT,this.viewActivatedListener),this.viewActivatedListener=void 0),this.dataSourceDirtyListener&&(null==(i=this.flowEngine)||null==(n=i.emitter)||null==(o=n.off)||o.call(n,u.DATA_SOURCE_DIRTY_EVENT,this.dataSourceDirtyListener),this.dataSourceDirtyListener=void 0),super.onUnmount()}invokeTabModelLifecycleMethod(e,t){var l,o;let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e)return;"onActive"===t&&(null==(l=this.context)?void 0:l.pageInfo)&&(this.context.pageInfo.version="v2");let i=this.findSubModel("tabs",t=>t.uid===e)||this.flowEngine.getModel(e);if(i){if(i.context.tabActive){let e=!1!==(0,u.getPageActive)(i.context);i.context.tabActive.value=e&&"onActive"===t}null==(o=i.subModels.grid)||o.mapSubModels("items",e=>{var l;null==(l=e[t])||l.call(e,n)})}"onActive"===t&&this.updateDocumentTitle(e)}async updateDocumentTitle(e){var t,l,o,n,i,r,a,s,d,c,p,m,h,f,g,v,y,_,b,x;let M=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(this.unmounted||!1===(0,u.getPageActive)(this.context))return;let w=!!(null==(l=this.context)||null==(t=l.view)?void 0:t.navigation),S=null==(i=this.context)||null==(n=i.view)||null==(o=n.inputArgs)?void 0:o.viewUid,k=null==(s=this.flowEngine)||null==(a=s.context)||null==(r=a.route)?void 0:r.pathname;if(w&&S&&"string"==typeof k){let e=null==(c=this.context)||null==(d=c.layout)?void 0:d.routePath,t=null==(p=(0,u.parsePathnameToViewParams)(k,{basePath:(null==(h=this.context)||null==(m=h.layoutRoute)?void 0:m.basePathname)||((null==e?void 0:e.startsWith("/"))?e:"")}).at(-1))?void 0:p.viewUid;if(t&&t!==S)return}let F=++this.documentTitleUpdateVersion,C=async e=>{if(!e||"string"!=typeof e)return"";try{var t,l;let o=await (null==(t=(l=this.context).resolveJsonTemplate)?void 0:t.call(l,e));return null==o?"":String(o)}catch(t){return e}},A="";if(this.getEnableTabs()){let t=e||this.getActiveTabKey(),l=t?this.flowEngine.getModel(t):this.getFirstTab();if(!l&&M<5)return void window.setTimeout(()=>{this.unmounted||F===this.documentTitleUpdateVersion&&this.updateDocumentTitle(t,M+1)},0);A=await C(null==l||null==(v=l.stepParams)||null==(g=v.pageTabSettings)||null==(f=g.tab)?void 0:f.documentTitle)||(null==l||null==(y=l.getTabTitle)?void 0:y.call(l))||""}else A=await C(null==(x=this.stepParams)||null==(b=x.pageSettings)||null==(_=b.general)?void 0:_.documentTitle)||this.props.title||"";F===this.documentTitleUpdateVersion&&"string"==typeof A&&""!==A&&(document.title=A)}mapTabs(){return this.mapSubModels("tabs",e=>!this.context.flowSettingsEnabled&&e.hidden?null:{key:e.uid,label:(0,s.jsx)(u.Droppable,{model:e,children:(0,s.jsx)(u.FlowModelRenderer,{model:e,showFlowSettings:{showBackground:!0,showBorder:!1,toolbarPosition:"above",style:{transform:"translateY(8px)"}},extraToolbarItems:[{key:"drag-handler",component:u.DragHandler,sort:1}]})}),children:e.renderChildren()}).filter(Boolean)}getFirstTab(){var e;return null==(e=this.subModels.tabs)?void 0:e[0]}renderFirstTab(){var e;let t=this.getFirstTab();return null==t||null==(e=t.renderChildren)?void 0:e.call(t)}async handleDragEnd(e){throw Error("Method not implemented.")}renderTabs(){var e,t,l,o;let n=(null==(e=this.context.themeToken)?void 0:e.paddingLG)??16,i=void 0!==this.tabBarExtraContent.left?this.tabBarExtraContent.left:(0,s.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:n,height:1}}),r=void 0!==this.tabBarExtraContent.right?this.tabBarExtraContent.right:(0,s.jsx)("span",{style:{display:"inline-flex",marginInlineEnd:n},children:(0,s.jsx)(u.AddSubModelButton,{model:this,subModelKey:"tabs",items:[{key:"blank",label:this.context.t("Blank tab"),createModelOptions:this.createPageTabModelOptions}],children:(0,s.jsx)(u.FlowSettingsButton,{icon:(0,s.jsx)(e1.PlusOutlined,{}),children:this.context.t("Add tab")})})});return(0,s.jsx)(u.DndProvider,{onDragEnd:this.handleDragEnd.bind(this),children:(0,s.jsx)(g.Tabs,{activeKey:(null==(l=this.context.view)||null==(t=l.navigation)?void 0:t.viewParams)?this.context.view.navigation.viewParams.tabUid||(null==(o=this.getFirstTab())?void 0:o.uid):this.props.tabActiveKey,tabBarStyle:this.props.tabBarStyle,items:this.mapTabs(),onChange:e=>{var t,l;let o=this.props.tabActiveKey||this.getActiveTabKey();null==(l=this.context.view.navigation)||null==(t=l.changeTo)||t.call(l,{tabUid:e}),this.invokeTabModelLifecycleMethod(e,"onActive"),o&&o!==e&&this.invokeTabModelLifecycleMethod(o,"onInactive"),this.setProps("tabActiveKey",e)},tabBarExtraContent:{left:i,right:r}})})}render(){let e=this.context.themeToken,t={...this.props.headerStyle};e&&(t.paddingBlock=e.paddingSM,t.paddingInline=e.paddingLG);let l=this.getEnableTabs();return l&&(t.paddingBottom=0),(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:t}),l?this.renderTabs():this.renderFirstTab()]})}constructor(...e){super(...e),this.tabBarExtraContent={},this.lastSeenEmitterViewActivatedVersion=0,this.dirtyRefreshScheduled=!1,this.unmounted=!1,this.documentTitleUpdateVersion=0,this.createPageTabModelOptions=()=>{let e=(0,nx.uid)();return{uid:e,use:"RootPageTabModel",props:{route:{parentId:this.props.routeId,type:"tabs",schemaUid:e,tabSchemaName:(0,nx.uid)(),params:[],hideInMenu:!1,enableTabs:!1}}}}}}a1.registerEvents({close:{title:(0,u.tExpr)("Close"),name:"close",hideInSettings(e){var t;return!!(null==(t=e.view)?void 0:t.preventClose)},uiSchema:{condition:{type:"object",title:(0,u.tExpr)("Trigger condition"),"x-decorator":"FormItem","x-component":aZ.H}},handler:aZ.b}}),a1.registerFlow({key:"closeGuard",title:(0,u.tExpr)("Close guard"),on:"close",steps:{confirmUnsavedChanges:{title:(0,u.tExpr)("Unsaved changes confirmation"),handler:a0}}}),a1.registerFlow({key:"pageSettings",title:(0,u.tExpr)("Page settings"),steps:{general:{title:(0,u.tExpr)("Edit page"),uiSchema:{title:{type:"string",title:(0,u.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},documentTitle:{type:"string",title:(0,u.tExpr)("Document title"),description:(0,u.tExpr)("Used as the browser tab title when tabs are disabled. Supports variables. Leave empty to use Page title."),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:1,maxRows:6}},displayTitle:{type:"boolean",title:(0,u.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"},enableTabs:{type:"boolean",title:(0,u.tExpr)("Enable tabs"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",e.t(t.title,{ns:"lm-desktop-routes"}));else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n,{ns:"lm-desktop-routes"}))}e.model.setProps("enableTabs",t.enableTabs),"embed"===e.view.type?(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgContainer)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgContainer)",marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:"var(--colorBgLayout)"}),e.model.setProps("tabBarStyle",{backgroundColor:"var(--colorBgLayout)",marginBottom:0})),e.model.updateDocumentTitle()}}}});class a2 extends a1{renderBackButtonWhenTabsDisabled(){var e,t,l;if((null==(t=this.context)||null==(e=t.view)?void 0:e.type)!=="embed")return null;let o=null==(l=this.context)?void 0:l.themeToken,n={...this.props.tabBarStyle,paddingBlock:(null==o?void 0:o.paddingXS)??8};return(0,s.jsx)("div",{style:n,children:(0,s.jsx)(a5,{renderSpacerWhenNoBack:!1})})}async handleDragEnd(e){var t,l;if(!(null==(t=e.active)?void 0:t.id)||!(null==(l=e.over)?void 0:l.id))throw Error("Invalid drag event");e.active.id!==e.over.id&&await this.flowEngine.moveModel(e.active.id,e.over.id)}render(){return(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&this.props.title&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.props.enableTabs?this.renderTabs():(0,s.jsxs)(s.Fragment,{children:[this.renderBackButtonWhenTabsDisabled(),this.renderFirstTab()]})]})}constructor(...e){super(...e),this.tabBarExtraContent={left:(0,s.jsx)(a5,{})},this.createPageTabModelOptions=()=>({use:"ChildPageTabModel"})}}let a5=e=>{let{renderSpacerWhenNoBack:t=!0}=e,l=(0,u.useFlowContext)(),o=l.themeToken,n=32,i=(null==o?void 0:o.paddingLG)??16,r=(0,p.useMemo)(()=>({width:"auto",height:"auto",lineHeight:1,padding:o.paddingXS,marginLeft:o.paddingLG,marginRight:n-o.paddingXS}),[o.paddingLG,o.paddingXS]);return"embed"!==l.view.type?t?(0,s.jsx)("span",{"aria-hidden":"true",style:{display:"inline-block",width:i,height:1}}):null:(0,s.jsx)(g.Button,{"aria-label":"back-button",type:"text",icon:(0,s.jsx)(e1.ArrowLeftOutlined,{}),style:r,onClick:l.view.close})};class a8 extends u.FlowModel{}a8.registerFlow({key:"pageSettings",title:(0,u.tExpr)("Page settings"),steps:{general:{title:(0,u.tExpr)("General"),uiSchema:{title:{type:"string",title:(0,u.tExpr)("Page title"),"x-decorator":"FormItem","x-component":"Input","x-reactions":{dependencies:["displayTitle"],fulfill:{state:{visible:"{{$deps[0]}}"}}}},displayTitle:{type:"boolean",title:(0,u.tExpr)("Display page title"),"x-decorator":"FormItem","x-component":"Switch"}},defaultParams:e=>({displayTitle:!0,enableTabs:!1}),async handler(e,t){if(e.model.setProps("displayTitle",t.displayTitle),e.model.context.closable)e.model.setProps("title",t.title?e.t(t.title):null);else{var l,o;let n=null==(o=e.model.context)||null==(l=o.currentRoute)?void 0:l.title;e.model.setProps("title",e.t(t.title||n))}e.model.setProps("enableTabs",t.enableTabs),e.model.context.closable?(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgLayout,paddingInline:16,marginBottom:0})):(e.model.setProps("headerStyle",{backgroundColor:e.themeToken.colorBgContainer}),e.model.setProps("tabBarStyle",{backgroundColor:e.themeToken.colorBgContainer,paddingInline:16,marginBottom:0}))}}}});class a4 extends a8{renderFirstTab(){var e;return(0,s.jsx)(u.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}function a3(e){let{ctx:t,options:l}=e,{data:o,loading:n}=(0,o8.useRequest)(async()=>{let e=await t.engine.loadOrCreateModel(l,{skipSave:!t.flowSettingsEnabled});return e.context.addDelegate(t),e},{refreshDeps:[t.model.uid]}),i=(null==t?void 0:t.isMobileLayout)?8:null==t?void 0:t.themeToken.marginBlock;return!n&&(null==o?void 0:o.uid)?(0,s.jsx)(u.FlowModelRenderer,{model:o,fallback:(0,s.jsx)(o4,{style:{margin:i}})}):(0,s.jsx)(o4,{style:{margin:i}})}function a6(e){return Array.isArray(e)?e.find(e=>!!e&&"object"==typeof e):e&&"object"==typeof e?e:void 0}class a9 extends u.FlowModel{onInit(e){super.onInit(e),this.context.defineProperty("tabActive",{value:u.observable.ref(!0),info:{description:"Whether current tab is active (observable.ref).",detail:"observable.ref<boolean>"}})}getTabTitle(){var e,t;let l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Untitled",o=this.context.t(l,{ns:"client"});return this.context.t(null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.title,{ns:"lm-desktop-routes"})||o}getTabIcon(){var e,t;return null==(t=this.stepParams.pageTabSettings)||null==(e=t.tab)?void 0:e.icon}renderChildren(){return null}renderHiddenInConfig(){return(0,s.jsxs)("span",{style:{display:"inline-block",opacity:.5},children:[(0,s.jsx)(ep.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}render(){return(0,s.jsxs)("span",{style:{display:"inline-block"},children:[(0,s.jsx)(ep.In,{style:{marginRight:8},type:this.getTabIcon()}),this.getTabTitle()]})}}a9.registerFlow({key:"pageTabSettings",title:(0,u.tExpr)("Tab settings"),steps:{tab:{title:(0,u.tExpr)("Edit tab"),preset:!0,uiSchema:{title:{title:(0,u.tExpr)("Tab name"),"x-component":"Input","x-decorator":"FormItem",required:!0},documentTitle:{type:"string",title:(0,u.tExpr)("Document title"),description:(0,u.tExpr)("Used as the browser tab title when this tab is active. Supports variables. Leave empty to use Tab name."),"x-decorator":"FormItem","x-component":iX.n,"x-component-props":{rows:1,maxRows:6}},icon:{title:(0,u.tExpr)("Icon"),"x-decorator":"FormItem","x-component":"IconPicker"}},async handler(e,t){var l;let o="function"==typeof(null==e?void 0:e.t)?e.t.bind(e):e=>e;e.model.setProps("title",o(t.title,{ns:"lm-desktop-routes"})),e.model.setProps("icon",t.icon);let n=e.engine.getModel(e.model.parentId);null==n||null==(l=n.updateDocumentTitle)||l.call(n)}}}});class a7 extends a9{renderChildren(){return(0,s.jsx)(a3,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}async saveStepParams(){return this.save()}async save(){var e,t,l,o,n;let i=this.serialize(),r=null==(l=this.stepParams)||null==(t=l.pageTabSettings)||null==(e=t.tab)?void 0:e.documentTitle,a=await this.context.api.request({method:"post",url:"desktopRoutes:updateOrCreate",params:{filterKeys:["schemaUid"]},data:{...this.props.route,title:this.getTabTitle(""),icon:this.getTabIcon(),options:{flowRegistry:i.flowRegistry,documentTitle:r}}}),s=a6(null==a||null==(o=a.data)?void 0:o.data);s&&this.setProps("route",{...this.props.route,...s,options:{...null==(n=this.props.route)?void 0:n.options,...s.options}})}async destroy(){return this.observerDispose(),this.invalidateFlowCache("beforeRender",!0),this.flowEngine.removeModel(this.uid),await this.context.api.request({method:"post",url:"desktopRoutes:destroy",params:{filter:{schemaUid:this.uid}},data:this.props.route}),!0}}class se extends a9{renderChildren(){return(0,s.jsx)(a3,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class st extends u.FlowModel{render(){return(0,s.jsx)(a3,{ctx:this.context,options:{parentId:this.uid,subKey:"grid",async:!0,subType:"object",use:"BlockGridModel"}})}}class sl extends a1{syncPageSettingsEnableTabsFromRoute(){var e,t;let l=null==(t=this.context)||null==(e=t.currentRoute)?void 0:e.enableTabs;"boolean"==typeof l&&this.setStepParams("pageSettings","general",{enableTabs:l})}syncEnableTabsToCurrentPage(e){var t;let l=null==(t=this.context)?void 0:t.currentRoute,o=this.props.routeId;l&&(null==o||null==l.id||String(l.id)===String(o))&&(l.enableTabs=e),this.setProps("enableTabs",e)}async ensurePersistedRouteId(e){var t,l,o,n;let i=null==e||null==(l=e.props)||null==(t=l.route)?void 0:t.id;return null!=i?i:("function"==typeof(null==e?void 0:e.save)&&await e.save(),null==e||null==(n=e.props)||null==(o=n.route)?void 0:o.id)}onMount(){super.onMount(),(0,u.reaction)(()=>this.context.pageActive.value,()=>{var e,t;if(null==(t=this.context.view)||null==(e=t.inputArgs)?void 0:e.activationControlledByLayout){this.mounted=!0;return}this.context.pageActive.value&&this.mounted&&this.activateCurrentTab(!0),!1===this.context.pageActive.value&&this.deactivateCurrentTab(),this.mounted=!0})}async openFlowSettings(e){return(null==e?void 0:e.flowKey)==="pageSettings"&&(null==e?void 0:e.stepKey)==="general"&&this.syncPageSettingsEnableTabsFromRoute(),super.openFlowSettings(e)}async saveStepParams(){if(await super.saveStepParams(),this.stepParams.pageSettings){var e,t;let l=!!this.stepParams.pageSettings.general.enableTabs;await this.context.api.request({url:`desktopRoutes:update?filter[id]=${this.props.routeId}`,method:"post",data:{enableTabs:l}}),this.syncEnableTabsToCurrentPage(l),await (null==(e=(t=this.context).refreshDesktopRoutes)?void 0:e.call(t))}}async handleDragEnd(e){var t,l;let o=this.flowEngine.getModel(null==(t=e.active)?void 0:t.id),n=this.flowEngine.getModel(null==(l=e.over)?void 0:l.id);if(!o||!n||o.uid===n.uid)return;let[i,r]=await Promise.all([this.ensurePersistedRouteId(o),this.ensurePersistedRouteId(n)]);null!=i&&null!=r&&(await this.context.api.request({url:"desktopRoutes:move",method:"post",params:{sourceId:i,targetId:r,sortField:"sort"}}),this.flowEngine.moveModel(o.uid,n.uid,{persist:!1}))}constructor(...e){super(...e),this.mounted=!1}}sl.registerFlow({key:"rootPageSettings",steps:{init:{async handler(e,t){if(e.model.hasSubModel("tabs"))return;let l=e.routeRepository.getRouteBySchemaUid(e.model.parentId);for(let t of(e.model.setProps("routeId",null==l?void 0:l.id),c.default.castArray(null==l?void 0:l.children).filter(Boolean).sort((e,t)=>(e.sort||0)-(t.sort||0)))){var o,n;if(t.hideInMenu)continue;let l=e.engine.createModel({parentId:e.model.uid,uid:t.schemaUid,subKey:"tabs",subType:"array",use:"RootPageTabModel",sortIndex:t.sort,props:{route:t},flowRegistry:null==(o=t.options)?void 0:o.flowRegistry,stepParams:{pageTabSettings:{tab:{title:t.title,icon:t.icon,documentTitle:null==(n=t.options)?void 0:n.documentTitle}}}});e.model.addSubModel("tabs",l)}}}}});class so extends a8{renderFirstTab(){var e;return(0,s.jsx)(u.FlowModelRenderer,{model:null==(e=this.subModels.tabs)?void 0:e[0]})}render(){return(0,s.jsxs)(s.Fragment,{children:[this.props.displayTitle&&(0,s.jsx)(tz.PageHeader,{title:this.props.title,style:this.props.headerStyle}),this.renderFirstTab()]})}}class sn extends au.S0{constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Popup"),icon:"ExportOutlined"}}}sn.define({label:(0,u.tExpr)("Popup")}),sn.registerFlow(Y);var si=__webpack_require__(1882);class sr extends sn{getAclActionName(){return"create"}constructor(...e){super(...e),this.defaultPopupTitle=(0,u.tExpr)("Add new"),this.defaultProps={type:"primary",title:(0,u.tExpr)("Add new"),icon:"PlusOutlined"}}}sr.scene=au.s5.collection,sr.define({label:(0,u.tExpr)("Add new"),sort:10});let sa=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel);return(null==a||null==(o=a.getResourceSettingsInitParams)?void 0:o.call(a))||(null==a||null==(n=a.getStepParams)?void 0:n.call(a,"resourceSettings","init"))||(null==e||null==(r=e.model)||null==(i=r.getStepParams)?void 0:i.call(r,"resourceSettings","init"))},ss=e=>{var t;return!!(null==(t=sa(e))?void 0:t.associationName)},sd=e=>{var t,l,o,n;let i=sa(e),r=(null==e||null==(t=e.blockModel)?void 0:t.association)||(null==e||null==(n=e.model)||null==(o=n.context)||null==(l=o.blockModel)?void 0:l.association),a=null==r?void 0:r.targetCollection;return{dataSourceKey:(null==a?void 0:a.dataSourceKey)||(null==i?void 0:i.dataSourceKey),collectionName:(null==a?void 0:a.name)||(null==r?void 0:r.target)||(null==i?void 0:i.collectionName)}},su=e=>{var t,l,o,n,i,r;let a=(null==e?void 0:e.blockModel)||(null==e||null==(l=e.model)||null==(t=l.context)?void 0:t.blockModel),s=null==a?void 0:a.association,d=sa(e);return{collectionField:s,sourceId:(null==a||null==(n=a.resource)||null==(o=n.getSourceId)?void 0:o.call(n))??(null==d?void 0:d.sourceId),associatedRecords:(null==a||null==(r=a.resource)||null==(i=r.getData)?void 0:i.call(r))||[]}},sc=async(e,t,l)=>{var o;return"function"==typeof(null==e?void 0:e[t])?await e[t]({values:l}):await (null==e||null==(o=e.runAction)?void 0:o.call(e,t,{data:l}))},sp=async e=>{var t,l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(t=e.blockModel)?void 0:t.resource)||(null==e?void 0:e.resource),h=(null==e||null==(l=e.blockModel)?void 0:l.collection)||(null==e?void 0:e.collection);if(!ss(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for disassociation"));return}if(!e.record){null==(p=e.message)||null==(c=p.error)||c.call(p,e.t("No record selected for disassociation"));return}let f=null==h||null==(o=h.getFilterByTK)?void 0:o.call(h,e.record);await sc(m,"remove",[f]),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record disassociated successfully"))},sm=async(e,t)=>{var l,o,n,i,r,a,s,d,u,c,p;let m=(null==e||null==(l=e.blockModel)?void 0:l.resource)||(null==e?void 0:e.resource),h=(null==e||null==(o=e.blockModel)?void 0:o.collection)||(null==e?void 0:e.collection);if(!ss(e)){null==(s=e.message)||null==(a=s.error)||a.call(s,e.t("No association block selected"));return}if(!m){null==(u=e.message)||null==(d=u.error)||d.call(u,e.t("No resource selected for association"));return}if(!(null==t?void 0:t.length)){null==(p=e.message)||null==(c=p.warning)||c.call(p,e.t("Please select at least one record"));return}let f=t.map(e=>{var t;return(null==h||null==(t=h.getFilterByTK)?void 0:t.call(h,e))??e}).filter(e=>null!=e);await sc(m,"add",f),await (null==(n=m.refresh)?void 0:n.call(m)),null==(r=e.message)||null==(i=r.success)||i.call(r,e.t("Record associated successfully"))};function sh(e){let{options:t}=e,l=(0,u.useFlowViewContext)(),{data:o,loading:n}=(0,o8.useRequest)(async()=>await l.engine.loadOrCreateModel(t,{delegateToParent:!1,delegate:l,skipSave:!l.flowSettingsEnabled}),{refreshDeps:[l,t]});return!n&&(null==o?void 0:o.uid)?(0,s.jsx)(u.FlowModelRenderer,{model:o,fallback:(0,s.jsx)(o4,{style:{margin:16}})}):(0,s.jsx)(o4,{style:{margin:16}})}function sf(e){let{model:t}=e,l=(0,u.useFlowViewContext)(),{Header:o,Footer:n,type:i}=l.view;return(0,s.jsxs)("div",{children:[(0,s.jsx)(o,{title:"dialog"===i?(0,s.jsx)("div",{style:{padding:`${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px 0`,marginBottom:-l.themeToken.marginSM,backgroundColor:"var(--colorBgLayout)"},children:l.t("Select record")}):l.t("Select record")}),(0,s.jsx)(sh,{options:{parentId:l.view.inputArgs.parentId,subKey:"associate-selector-grid",async:!0,delegateToParent:!1,subType:"object",use:"BlockGridModel"}}),(0,s.jsx)(n,{children:"dialog"===i?(0,s.jsx)("div",{style:{padding:`0 ${l.themeToken.paddingLG}px ${l.themeToken.paddingLG}px`},children:(0,s.jsx)(g.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})}):(0,s.jsx)(g.Button,{type:"primary",onClick:async()=>{await t.associateSelectedRows(),l.view.close()},children:l.t("Submit")})})]})}class sg extends au.S0{getAclActionName(){return"update"}async associateSelectedRows(){await sm(this.context,this.selectedRows),this.selectedRows=[]}constructor(...e){super(...e),this.defaultPopupTitle=(0,u.tExpr)("Select record"),this.selectedRows=[],this.defaultProps={title:(0,u.tExpr)("Associate"),icon:"LinkOutlined"}}}sg.scene=au.s5.collection,sg.capabilityActionName="update",sg.define({label:(0,u.tExpr)("Associate"),sort:15,hide:e=>!ss(e)}),sg.registerFlow({key:"associateSettings",title:(0,u.tExpr)("Associate settings"),on:"click",steps:{openSelector:{async handler(e,t){var l,o,n;let i=sd(e),r=(null==(l=e.inputArgs)?void 0:l.isMobileLayout)?"embed":(null==(o=e.inputArgs)?void 0:o.mode)||(null==t?void 0:t.mode)||"drawer",a=(null==(n=e.inputArgs)?void 0:n.size)||(null==t?void 0:t.size)||"medium",d={drawer:{small:"30%",medium:"50%",large:"70%"},dialog:{small:"40%",medium:"50%",large:"80%"},embed:{}};e.model.selectedRows=[],await e.viewer.open({type:r,width:d[r][a],inheritContext:!1,target:e.layoutContentElement,inputArgs:{parentId:e.model.uid,scene:"select",dataSourceKey:i.dataSourceKey,collectionName:i.collectionName,...su(e),rowSelectionProps:{type:"checkbox",renderCell:void 0,selectedRowKeys:void 0,onChange:(t,l)=>{e.model.selectedRows=l||[]}}},content:()=>(0,s.jsx)(sf,{model:e.model}),styles:{content:{padding:0,backgroundColor:e.model.flowEngine.context.themeToken.colorBgLayout,..."embed"===r?{position:"absolute",top:0,left:0,right:0,bottom:0}:{}},body:{padding:0}}})}}}});class sv extends au.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("Delete"),icon:"DeleteOutlined"}}}sv.scene=au.s5.collection,sv.capabilityActionName="destroyMany",sv.define({label:(0,u.tExpr)("Delete")}),sv.registerFlow({key:"deleteSettings",title:(0,u.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,u.tExpr)("Delete record"),content:(0,u.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){var l;if(!(null==(l=e.blockModel)?void 0:l.resource))return void e.message.error(e.t("No resource selected for deletion"));let o=e.blockModel.resource;0===o.getSelectedRows().length?e.message.warning(e.t("Please select at least one record to delete")):(await o.destroy(e.blockModel.collection.getFilterByTK(o.getSelectedRows())),e.message.success(e.t("Selected records deleted successfully")))}}}});class sy extends au.S0{getAclActionName(){return"destroy"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,u.tExpr)("Delete"),icon:"DeleteOutlined"}}}sy.scene=au.s5.record,sy.define({label:(0,u.tExpr)("Delete"),sort:60}),sy.registerFlow({key:"deleteSettings",title:(0,u.tExpr)("Delete settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,u.tExpr)("Delete record"),content:(0,u.tExpr)("Are you sure you want to delete it?")}},delete:{async handler(e,t){e.resource?e.record?(await e.resource.destroy(e.blockModel.collection.getFilterByTK(e.record)),e.message.success(e.t("Record deleted successfully"))):e.message.error(e.t("No resource or record selected for deletion")):e.message.error(e.t("No resource selected for deletion"))}}}});class s_ extends au.S0{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultProps={type:"link",title:(0,u.tExpr)("Disassociate"),icon:"DisconnectOutlined"}}}s_.scene=au.s5.record,s_.capabilityActionName="update",s_.define({label:(0,u.tExpr)("Disassociate"),sort:65,hide:e=>!ss(e)}),s_.registerFlow({key:"disassociateSettings",title:(0,u.tExpr)("Disassociate settings"),on:"click",steps:{confirm:{use:"confirm",defaultParams:{enable:!0,title:(0,u.tExpr)("Disassociate record"),content:(0,u.tExpr)("Are you sure you want to disassociate it?")}},disassociate:{async handler(e){await sp(e)}}}});class sb extends sn{getAclActionName(){return"update"}constructor(...e){super(...e),this.defaultPopupTitle=(0,u.tExpr)("Edit"),this.defaultProps={title:(0,u.tExpr)("Edit"),icon:"EditOutlined"}}}sb.scene=au.s5.record,sb.define({label:(0,u.tExpr)("Edit"),sort:20});var sx=__webpack_require__(8442);class sM extends au.S0{getIgnoreFieldNames(){var e;if(this.map.has(this.props.filterableFieldNames))return this.map.get(this.props.filterableFieldNames);let t=(null==(e=this.context.blockModel.collection)?void 0:e.getFields())||[],l=sS(this.props.filterableFieldNames||[],t.map(e=>e.name));return this.map.set(this.props.filterableFieldNames,l),l}render(){return this.context.isMobileLayout?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(u.MobilePopup,{title:this.context.t("Filter"),visible:this.props.open,onClose:()=>{this.setProps("open",!1)},children:(0,s.jsxs)("div",{style:{padding:this.context.themeToken.paddingMD,backgroundColor:this.context.themeToken.colorBgContainer},children:[(0,s.jsx)(sx.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),(0,s.jsx)("div",{style:{height:150}})]})}),super.render()]}):(0,s.jsx)(g.Popover,{open:this.props.open,content:(0,s.jsx)(sx.a,{value:this.props.filterValue||this.props.defaultFilterValue,ctx:this.context,FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:this,ignoreFieldNames:this.getIgnoreFieldNames(),maxAssociationFieldDepth:2})}),trigger:"click",placement:"bottomLeft",onOpenChange:e=>{!1===e&&this.setProps("open",void 0)},children:super.render()})}constructor(...e){super(...e),this.map=new WeakMap,this.defaultProps={type:"default",title:(0,u.tExpr)("Filter"),icon:"FilterOutlined",filterValue:{logic:"$and",items:[]}}}}function sw(e){for(var t,l=arguments.length,o=Array(l>1?l-1:0),n=1;n<l;n++)o[n-1]=arguments[n];return((null==e||null==(t=e.getFields)?void 0:t.call(e))||[]).filter(e=>{if(!(null==e?void 0:e.interface)||(null==e?void 0:e.filterable)===!1)return!1;let t=(0,ep.w6)(e.interface,...o);return!!(null==t?void 0:t.filterable)})}function sS(e,t){return null==t?void 0:t.filter(t=>!e.includes(t))}sM.scene="collection",sM.define({label:(0,u.tExpr)("Filter"),toggleable:!0,sort:5}),sM.registerFlow({key:"filterSettings",title:(0,u.tExpr)("Filter settings"),steps:{position:{handler(e,t){e.model.setProps("position",t.position||"left")}},filterableFieldNames:{title:(0,u.tExpr)("Filterable fields"),uiSchema:{filterableFieldNames:{type:"array","x-decorator":"FormItem","x-component":e=>{var t;let{model:l}=(0,u.useFlowSettingsContext)(),o=sw(l.context.blockModel.collection,l.context.dataSourceManager,null==(t=l.context.app)?void 0:t.dataSourceManager).map(e=>({key:e.name,title:e.title}));return(0,s.jsx)(g.Transfer,{...e,dataSource:o,targetKeys:e.value||[],onChange:t=>{var l;return null==(l=e.onChange)?void 0:l.call(e,t)},render:e=>e.title})},"x-component-props":{showSearch:!0,listStyle:{width:280,height:360}}}},defaultParams(e){var t,l,o,n,i;return{filterableFieldNames:sw(e.blockModel.collection,null==(l=e.model)||null==(t=l.context)?void 0:t.dataSourceManager,null==(i=e.model)||null==(n=i.context)||null==(o=n.app)?void 0:o.dataSourceManager).map(e=>e.name)||[]}},handler(e,t){e.model.setProps("filterableFieldNames",t.filterableFieldNames)}},defaultFilter:{title:(0,u.tExpr)("Default filter conditions"),uiSchema:{defaultFilter:{type:"object","x-decorator":"FormItem","x-component":e=>{let{model:t}=(0,u.useFlowSettingsContext)();return(0,s.jsx)(i6.I8,{value:e.value||{},FilterItem:e=>(0,s.jsx)(i6.Et,{...e,model:t,maxAssociationFieldDepth:2})})}}},defaultParams:e=>({defaultFilter:e.model.defaultProps.filterValue}),handler(e,t){e.model.setProps("defaultFilterValue",c.default.cloneDeep(t.defaultFilter)),e.model.setProps("filterValue",c.default.cloneDeep(t.defaultFilter))}}}}),sM.registerFlow({key:"submitSettings",on:"submit",steps:{submit:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;let n=(0,A.transformFilter)(e.model.props.filterValue),i=!(0,A.isEmptyFilter)(n);l.setFilterActive(e.model.uid,i),i?(o.addFilterGroup(e.model.uid,n),o.setPage(1)):o.removeFilterGroup(e.model.uid),"manual"!==l.getDataLoadingMode()||i||l.hasActiveFilters()?o.refresh():(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1)}}}}),sM.registerFlow({key:"resetSettings",title:(0,u.tExpr)("Reset"),on:"reset",steps:{reset:{handler(e,t){let l=e.blockModel,o=null==l?void 0:l.resource;if(!l||!o)return;o.removeFilterGroup(e.model.uid),l.setFilterActive(e.model.uid,!1);let n=l.getDataLoadingMode(),i=e.model.props.defaultFilterValue,r=!(0,A.isEmptyFilter)((0,A.transformFilter)(i));"manual"!==n||r||l.hasActiveFilters()?(r&&(o.addFilterGroup(e.model.uid,(0,A.transformFilter)(i)),l.setFilterActive(e.model.uid,!0),o.setPage(1)),o.refresh()):(o.setData([]),o.setMeta({count:0,hasNext:!1}),"function"==typeof o.setPage&&o.setPage(1),o.loading=!1),e.model.setProps("open",!1),e.model.setProps("filterValue",c.default.cloneDeep(i))}}}}),sM.registerFlow({key:"openSettings",on:"click",steps:{open:{handler(e,t){e.model.setProps("open",!e.model.props.open)}}}});var sk=__webpack_require__(9253);function sF(e,t){var l;let o=(null==(l=e.inputArgs)?void 0:l.preview)||{},n=(null==o?void 0:o.version)??(null==t?void 0:t.version)??"v1";return{code:("string"==typeof(null==o?void 0:o.code)?o.code:void 0)??(null==t?void 0:t.code)??"",version:n}}class sC extends au.S0{constructor(...e){super(...e),this.defaultProps={type:"default",title:(0,u.tExpr)("JS action"),icon:"JavaScriptOutlined"}}}sC.define({label:(0,u.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSActionModel"}}),sC.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:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`
|
|
761
761
|
ctx.message.info('Hello JS action.');
|
|
762
762
|
`}),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 sA extends au.S0{constructor(...e){super(...e),this.defaultProps={title:(0,u.tExpr)("JS action"),icon:"JavaScriptOutlined"}}}sA.scene=au.s5.collection,sA.define({label:(0,u.tExpr)("JS action"),sort:9999,createModelOptions:{use:"JSCollectionActionModel"}}),sA.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:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`
|
|
763
763
|
const rows = ctx.resource?.getSelectedRows?.() || [];
|
|
@@ -849,14 +849,14 @@ 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
|
}
|
|
856
856
|
`);p.default.useEffect(()=>{o(e.options||[])},[n]);let r=p.default.useMemo(()=>new Set((Array.isArray(e.value)?e.value:[]).map(e=>e.join("."))),[e.value]),a=(t,l)=>{var o,n;let i=null==t||null==(o=t.meta)?void 0:o.fullPath;if(!i)return;let a=new Set(r);l?a.add(i):a.delete(i);let s=Array.from(a).map(e=>e.split("."));null==(n=e.onChange)||n.call(e,s)},d=e=>{var t;let l=null==e||null==(t=e.meta)?void 0:t.fullPath,o=!!(null==e?void 0:e.isLeaf),n=!!l&&r.has(l);return(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px"},children:[(0,s.jsx)("span",{children:e.label}),o?(0,s.jsx)(g.Switch,{size:"small",checked:n,onClick:(e,t)=>{var l;return null==t||null==(l=t.stopPropagation)?void 0:l.call(t)},onChange:(t,l)=>{var o;null==l||null==(o=l.stopPropagation)||o.call(l),a(e,t)}}):null]})},c=e.displayRender||((e,t)=>{var l;let o=null==t?void 0:t[t.length-1],n=null==o||null==(l=o.meta)?void 0:l.fullLabel;return n||e.join(" / ")}),m=async e=>{var l,n,i,r;let a=e[e.length-1];if(!a||(null==(l=a.children)?void 0:l.length))return;let s=a.meta||{},d=s.field,u=s.fullPath;if(!d||!u){a.isLeaf=!0,o(e=>[...e]);return}let c=(null==(n=d.filterable)?void 0:n.children)||[],p=[];if(c.length?p=c:d.targetCollection&&(p=(null==(i=(r=d.targetCollection).getFields)?void 0:i.call(r))||[]),!p.length){a.isLeaf=!0,o(e=>[...e]);return}a.children=cB(t,p,u,[],s.fullLabel||a.label,s.associationDepth||0),o(e=>[...e])};return(0,s.jsx)(g.Cascader,{allowClear:!0,...e,options:l,loadData:m,displayRender:c,optionRender:d,popupClassName:i})}let cq=(0,u.defineAction)({name:"defaultOperator",title:(0,u.tExpr)("Default operator"),uiMode:e=>({type:"select",key:"value",props:{options:c$(e.model)}}),defaultParams(e){let t=c$(e.model);return{value:t.length>0?t[0].value:""}},handler(e,t){e.model.operator=t.value}});function c$(e){let t=e.context.collectionField||e.context.filterField;return ab(e).filter(e=>!e.visible||e.visible(t)).map(t=>({...t,label:"string"==typeof t.label?e.translate(t.label):t.label}))}var cz=__webpack_require__(7720);function cK(e){var t;let l=e.operator,o=null==(t=e.subModels)?void 0:t.field;if(!o)return;if(e.setProps({key:`${e.uid}-${l||""}`}),!l)return void(0,cz.i2)(o);let n=ab(e);(0,cz.sI)({app:e.context.app,fieldModel:o,operator:l,operators:n,propsPriority:"field"})}let cU=(0,u.defineAction)({name:"customizeFilterRender",handler(e){cK(e.model)}});function cG(e){var t,l;let o=ax(e,e.operator);if(!o)return;let n=null==o||null==(t=o.schema)?void 0:t["x-component-props"];if(!n)return;let i=null==(l=e.subModels)?void 0:l.field;(null==i?void 0:i.setProps)&&i.setProps(n)}let cW=(0,u.defineAction)({name:"operatorComponentProps",handler(e){cG(e.model)}});var cJ=__webpack_require__(4084);class cX extends s4.F4{createResource(e,t){let l=this.context.createResource(u.SingleRecordResource);return l.isNewRecord=!0,l}getAclActionName(){return"create"}async submitHandler(e,t,l){await (0,cJ.submitHandler)(e,t,l)}async submit(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;await (0,cJ.submitHandler)(this.context,e,t)}renderComponent(){let{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n}=this.props,i=!!this.context.flowSettingsEnabled,{heightMode:r,height:a}=this.decoratorProps;return(0,s.jsx)(s4.JU,{model:this,gridModel:this.subModels.grid,layoutProps:{colon:e,labelAlign:t,labelWidth:l,labelWrap:o,layout:n},heightMode:r,height:a,grid:(0,s.jsx)(u.FlowModelRenderer,{model:this.subModels.grid,showFlowSettings:!1}),actions:(0,s.jsx)(u.DndProvider,{children:(0,s.jsxs)(g.Space,{wrap:!0,children:[this.mapSubModels("actions",e=>{if(!e.hidden||i)return(0,s.jsx)(u.Droppable,{model:e,children:(0,s.jsx)(u.MemoFlowModelRenderer,{model:e,showFlowSettings:!!this.context.flowSettingsEnabled&&this.actionFlowSettings,extraToolbarItems:this.actionExtraToolbarItems},e.uid)},e.uid)}),this.renderConfigureActions()]})})})}constructor(...e){super(...e),this.actionFlowSettings={showBackground:!1,showBorder:!1,toolbarPosition:"above"},this.actionExtraToolbarItems=[{key:"drag-handler",component:u.DragHandler,sort:1}]}}cX.scene=aU.P.new,cX.blockCapabilityActionName="create",cX.registerFlow({key:"formSettings",title:(0,u.tExpr)("Form settings"),steps:{init:{async handler(e){if(!e.resource)throw Error("Resource is not initialized")}},refresh:{}}}),cX.define({label:(0,u.tExpr)("Form (Add new)"),searchable:!0,searchPlaceholder:(0,u.tExpr)("Search"),createModelOptions:{use:"CreateFormModel",subModels:{grid:{use:"FormGridModel"}}},sort:350});class cQ extends u.FlowModel{static defineChildren(e){let t=e.engine.filterModelClassByParent("CommonItemModel"),l=e.engine.filterModelClassByParent("FormCustomItemModel"),o=t=>Array.from(t.entries()).map(t=>{var l,o,n,i,r;let[a,s]=t,d="function"==typeof s.defineChildren||!!(null==(l=s.meta)?void 0:l.children),u={key:a,label:e.t(s.meta.label),sort:s.meta.sort??999,searchable:!!(null==(o=s.meta)?void 0:o.searchable),searchPlaceholder:null==(n=s.meta)?void 0:n.searchPlaceholder,hide:null==(i=s.meta)?void 0:i.hide};return d?u.children=e=>{var t;return"function"==typeof s.defineChildren?s.defineChildren(e):(null==(t=s.meta)?void 0:t.children)||[]}:u.createModelOptions=(null==(r=s.meta)?void 0:r.createModelOptions)||{use:a},u});return c.default.sortBy([...o(t),...o(l)],"sort")}}cQ.renderMode=u.ModelRenderMode.RenderFunction,cQ.define({hide:!0,label:(0,u.tExpr)("Others")});class cZ extends u.FlowModel{static defineChildren(e){return dD(e,{useModel:"FormItemModel",fieldUseModel:"JSEditableFieldModel",associationPathName:e.prefixFieldPath,refreshTargets:["FormItemModel","FilterFormItemModel"]})}}cZ.define({label:(0,u.tExpr)("JS field"),searchable:!0,searchPlaceholder:(0,u.tExpr)("Search fields"),menuType:"submenu",sort:110});class c0 extends sj{}c0.define({label:(0,u.tExpr)("JS action"),sort:9999}),c0.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:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`
|
|
857
857
|
const values = ctx.form?.getFieldsValue?.() || {};
|
|
858
858
|
ctx.message.success('Current form values: ' + JSON.stringify(values));
|
|
859
|
-
`}),async handler(e,t){let{code:l,version:o}=sF(e,t);e.defineMethod("refresh",async()=>{var t,l,o;(null==(l=e.blockModel)||null==(t=l.resource)?void 0:t.refresh)?await e.blockModel.resource.refresh():(null==(o=e.resource)?void 0:o.refresh)&&await e.resource.refresh()});let n=(0,u.createSafeNavigator)();await e.runjs(l,{window:(0,u.createSafeWindow)({navigator:n}),document:(0,u.createSafeDocument)(),navigator:n},{version:o})}}}});let c1="calc(100vh - 96px)",c2="calc(100vh - 160px)",c5="min(480px, calc(100vh - 320px))";function c8(e,t){let l={...e.getComponentProps(),...t||{}};return["markdown","vditor"].includes(e.interface)&&null==l.height&&(l.height=c5),l}class c4 extends u.FlowModel{get form(){return this.context.form}useHooksBeforeRender(){let[e]=g.Form.useForm();this.context.defineProperty("form",{get:()=>e})}static async open(e){let{flowEngine:t,target:l,dataSourceKey:o,collectionName:n,fieldPath:i,filterByTk:r,record:a,onSuccess:d,fieldProps:c,onOk:p,sourceFieldModelUid:m}=e,h=t.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:o,collectionName:n,fieldPath:i}}}});console.log("QuickEditFormModel.open2",Date.now()-h.now),h.now=Date.now(),await t.context.viewer.open({type:"popover",target:l,placement:"rightTop",styles:{body:{width:420,maxHeight:c1,overflowY:"auto",overscrollBehavior:"contain"}},content:e=>(h.viewContainer=e,h.__onSubmitSuccess=d,h._fieldProps=c,h._onOk=p,console.log("QuickEditFormModel.open3",Date.now()-h.now),(0,s.jsx)(u.FlowModelRenderer,{fallback:(0,s.jsx)(g.Skeleton.Input,{size:"small"}),model:h,inputArgs:{filterByTk:r,record:a,sourceFieldModelUid:m}}))})}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this});let t=(0,u.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,u.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:t}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${e}`);!l||l.isAssociationField()&&(this.resource.addAppends(e),t&&this.resource.refresh())}render(){return console.log("QuickEditFormModel.open4",Date.now()-this.now),(0,s.jsxs)(s4.s2,{model:this,children:[(0,s.jsx)("div",{style:{minHeight:0,overflowY:"auto",maxHeight:c2},children:this.mapSubModels("fields",e=>{var t;return(0,s.jsx)(u.FormItem,{showLabel:!1,name:this.fieldPath,initialValue:null==(t=this.context.record)?void 0:t[this.fieldPath],...this.props,children:(0,s.jsx)(u.FieldModelRenderer,{model:e,fallback:(0,s.jsx)(g.Skeleton.Input,{size:"small"})})},e.uid)})}),(0,s.jsxs)(g.Space,{style:{display:"flex",justifyContent:"flex-end",flexShrink:0},children:[(0,s.jsx)(g.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,s.jsx)(g.Button,{type:"primary",htmlType:"submit",onClick:async()=>{var e,t,l,o,n;let i=this.form.getFieldsValue();await this.form.submit();let r={...i},a={[this.fieldPath]:null==(e=this.resource.getData())?void 0:e[this.fieldPath]};if(this._onOk)this._onOk(r),this.viewContainer.close();else try{await this.resource.save(r,{refresh:!1}),null==(t=(l=this).__onSubmitSuccess)||t.call(l,r),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(e){console.error("Failed to save form data:",e),this.context.message.error(this.context.t("Failed to save form data")),null==(o=(n=this).__onSubmitSuccess)||o.call(n,a)}},children:this.context.t("Submit")})]})]})}constructor(...e){super(...e),this.now=Date.now()}}c4.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{async handler(e,t){let{dataSourceKey:l,collectionName:o,fieldPath:n}=t;if(!l||!o||!n)throw Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=n,e.model.collection=e.dataSourceManager.getCollection(l,o);let i=e.createResource(u.SingleRecordResource);i.setDataSourceKey(l),i.setResourceName(o),e.model.resource=i;let r=e.model.collection.getField(n);if(r){let t=dg.getDefaultBindingByField(e,r);if(!t)return;let i=t.modelName,a=e.model.addSubModel("fields",{use:i,props:"function"==typeof t.defaultProps?t.defaultProps(e,r):t.defaultProps,stepParams:{fieldSettings:{init:{dataSourceKey:l,collectionName:o,fieldPath:n}}}});a.setProps(c8(r,e.model._fieldProps)),a.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),e.model.context.defineProperty("collectionField",{get:()=>r}),e.model.addAppends(n),await a.dispatchEvent("beforeRender")}if(e.inputArgs.filterByTk||e.inputArgs.record){var a;i.setFilterByTk(e.inputArgs.filterByTk),i.setData(e.inputArgs.record),null==(a=e.model.form)||a.setFieldsValue(i.getData())}}}}}),c4.define({hide:!0});class c3 extends ac{}c3.itemModelName="FormAssociationItemModel",c3.define({label:'{{t("Display association fields")}}'});let c6=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=(0,u.useFlowContext)();return(0,o8.useRequest)(async()=>await l.resolveJsonTemplate(e),{refreshDeps:t})},c9=2;function c7(e,t){if(!t)return e;let l=[...e];return t.forEach(e=>{let[t,o]=e.split(":");if(l.includes(t)){let e=l.indexOf(t),n=Number(o);l.splice(e+1,0,Number.isFinite(n)?n:o)}}),l}function pe(e,t){if(null==e)return e;let l=typeof e;if("string"===l||"number"===l||"boolean"===l)return e;if("bigint"===l)return String(e);if(Array.isArray(e))return e.map(e=>{let l=pe(e,t);return null==l?"":String(l)}).join(",");if("object"===l){let l=(0,c.castArray)(t).filter(Boolean);if(1===l.length){let t=pe((0,c.get)(e,l[0]));if(void 0!==t)return t}if(l.length>1)return JSON.stringify(l.map(t=>pe((0,c.get)(e,t))??null));let o=e.id??e.value??e.key;if("string"==typeof o||"number"==typeof o)return o;if("bigint"==typeof o)return String(o)}}let pt=e=>{let t=e.underSubForm?"ctx.item.value":"ctx.formValues",l=`{{${t}.${e.fieldPath}}}`,{data:o,loading:n,error:i}=c6(l,[l,e.refreshKey]);return n?(0,s.jsx)("div",{children:"Loading..."}):i?(0,s.jsxs)("div",{children:["Error: ",i.message]}):(0,s.jsx)(u.FieldModelRenderer,{...e.mergedProps,model:e.modelForRender,value:o||e.value})};class pl extends u.DisplayItemModel{static defineChildren(e){let t=e.collection,l=e.prefixFieldPath?e.prefixFieldPath.split(".").filter(Boolean).length:0;return t.getFields().map(o=>{var n;if(l>=c9&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return null;let i=this.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!i)return null;let r=i.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===a},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:r,props:"function"==typeof i.defaultProps?i.defaultProps(e,o):i.defaultProps}}})}}).filter(Boolean)}onInit(e){super.onInit(e),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){let e=this.subModels.field,t=this.context.fieldIndex,l=this.context.record,o=this.context.currentObject,n=null!=t?(()=>{let n=e.createFork({},`${t}`);return n.context.defineProperty("fieldIndex",{get:()=>t}),n.context.defineProperty("record",{get:()=>l,cache:!1}),n.context.defineProperty("currentObject",{get:()=>o,cache:!1}),this.context.pattern&&n.context.defineProperty("pattern",{get:()=>this.context.pattern}),n})():e,i=this.collectionField.name,r=this.fieldPath.replace(RegExp(`\\.${i}$`),""),a=c7((0,c.castArray)(r.split(".")),t),d=this.context.prefixFieldPath;return(0,s.jsx)(u.FormItem,{...this.props,shouldUpdate:(e,t)=>{let l=a.length>1&&!(0,c.get)(e,[...a])?a.slice(0,-1):a;return JSON.stringify((0,c.get)(e,[...l]))!==JSON.stringify((0,c.get)(t,[...l]))},children:()=>{var e,t,l,o;let i=pe(null==(t=this.context.form)||null==(e=t.getFieldValue)?void 0:e.call(t,a),null==(o=this.collectionField)||null==(l=o.collection)?void 0:l.filterTargetKey)||(0,nx.uid)();return(0,s.jsx)(pt,{modelForRender:n,fieldPath:this.fieldPath.replace(RegExp(`^${d}\\.`),""),refreshKey:i,mergedProps:this.props,underSubForm:!!d})}})}}pl.define({label:(0,u.tExpr)("Display fields"),sort:100}),pl.registerFlow({key:"detailItemSettings",sort:300,title:(0,u.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,u.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,u.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l;let o=e.model,n=null==(l=o.collectionField)?void 0:l.title;t.decoratorProps={...t.decoratorProps,extra:o.context.t("Original field title: ")+(o.context.t(n)??"")}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{async handler(e){let{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())}},tooltip:{title:(0,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"})})}},model:{title:(0,u.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,u.tExpr)("Title field"),beforeParamsSave:async(e,t,l)=>{if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==l.label){var o,n;e.model.setProps({titleField:t.label,...null==(n=e.collectionField.targetCollection)||null==(o=n.getField(t.label))?void 0:o.getComponentProps()});let l=e.collectionField.targetCollection.getField(t.label),i=u.DisplayItemModel.getDefaultBindingByField(e,l),r=i.modelName;await dn({parentModel:e.model,targetUse:r,defaultProps:"function"==typeof(null==i?void 0:i.defaultProps)?i.defaultProps(e,e.collectionField):null==i?void 0:i.defaultProps,pattern:e.model.getProps().pattern})}},async handler(e,t){var l,o;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps({titleField:t.label,...null==(o=e.collectionField.targetCollection)||null==(l=o.getField(t.label))?void 0:l.getComponentProps()});let n=e.collectionField.targetCollection;if(n){let l=n.getField(t.label),o=u.DisplayItemModel.getDefaultBindingByField(e,l).modelName;o!==e.model.subModels.field.use&&e.model.setStepParams(e.flowKey,"model",{use:o})}},hideInSettings:async e=>!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField}}}),pl.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});var po=__webpack_require__(8563);let pn="client",pi=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,pr=e=>{if(!e)return 0;let t=e.getBoundingClientRect(),l=window.getComputedStyle(e),o=parseFloat(l.marginTop)||0,n=parseFloat(l.marginBottom)||0;return t.height+o+n},pa=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};let t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},ps=e=>{let t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},pd=e=>{let t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function pu(e,t){let l=t>0;return e>0?e:l?t:0}let pc=e=>{let{height:t,heightMode:l,hostRef:o,marginBlock:n}=e,[i,r]=p.default.useState(),a=p.default.useCallback(()=>{if("fullHeight"!==l||"u"<typeof window)return void r(e=>void 0===e?e:void 0);let e=o.current;if(!e)return;let t=pi(e),i=e.getBoundingClientRect(),a=t===document.documentElement?{top:0}:t.getBoundingClientRect(),s=pa(t),d=pd(t),u=a.top+s.top,c=Math.max(0,i.top-u),p=s.bottom+n;d&&(p=n+pr(d)+s.bottom);let m=Math.max(0,Math.floor(window.innerHeight-pu(u,110)-c-p-1));r(e=>e===m?e:m)},[l,o,n]);return(p.default.useLayoutEffect(()=>{a()},[a]),p.default.useEffect(()=>{if("fullHeight"!==l||"u"<typeof window)return;let e=o.current;if(!e||"u"<typeof ResizeObserver)return;let t=pi(e),n=ps(t),i=pd(t),r=new ResizeObserver(()=>a());return r.observe(e),t instanceof HTMLElement&&r.observe(t),n&&r.observe(n),i&&r.observe(i),window.addEventListener("resize",a),()=>{r.disconnect(),window.removeEventListener("resize",a)}},[l,o,a]),"specifyValue"===l)?t:"fullHeight"===l?i:null},pp=e=>{let{uid:t,className:l,heightMode:o,height:n,style:i,beforeContent:r,afterContent:a,contentRef:d,marginBlock:u,...c}=e,m=p.default.useRef(null),h=pc({height:n,heightMode:o,hostRef:m,marginBlock:u});return(0,s.jsxs)("div",{...c,ref:m,id:`model-${t}`,className:l,style:{display:"flex",flexDirection:"column",height:h??void 0,minHeight:0,overflow:"auto",...i||{}},children:[r,(0,s.jsx)("div",{ref:d}),a]})};class pm extends aU.z{get showBlockCard(){var e;return(null==(e=this.getStepParams("jsSettings","showBlockCard"))?void 0:e.showBlockCard)!==!1}renderComponent(){return(0,s.jsx)("div",{ref:this.context.ref})}render(){let{className:e,id:t,title:l,description:o,showCard:n,heightMode:i,height:r,style:a,beforeContent:d,afterContent:u,...c}=this.decoratorProps||{},p=["code-block",e].filter(Boolean).join(" ");if(!this.showBlockCard){var m;return(0,s.jsx)(pp,{...c,uid:this.uid,className:p,heightMode:i,height:r,style:a,beforeContent:d,afterContent:u,contentRef:this.context.ref,marginBlock:(null==(m=this.context.themeToken)?void 0:m.marginBlock)??0})}let h={...c,height:r,style:a,...void 0===d?{}:{beforeContent:d},...void 0===u?{}:{afterContent:u}};return(0,s.jsx)(po.tn,{id:`model-${this.uid}`,className:p,title:l,description:o,heightMode:i,...h,children:(0,s.jsx)("div",{ref:this.context.ref})})}onMount(){this._mountedOnce&&this.context.ref.current&&this.rerender(),this._mountedOnce=!0}constructor(...e){super(...e),this._mountedOnce=!1}}pm.define({label:(0,u.tExpr)("JS block"),createModelOptions:{use:"JSBlockModel"}}),pm.registerFlow({key:"jsSettings",title:"JavaScript settings",steps:{showBlockCard:{title:(0,u.tExpr)("Show block card"),uiMode:{type:"switch",key:"showBlockCard"},defaultParams:{showBlockCard:!0}},runJs:{title:(0,u.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","x-component":sk.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`// Welcome to the JS block
|
|
859
|
+
`}),async handler(e,t){let{code:l,version:o}=sF(e,t);e.defineMethod("refresh",async()=>{var t,l,o;(null==(l=e.blockModel)||null==(t=l.resource)?void 0:t.refresh)?await e.blockModel.resource.refresh():(null==(o=e.resource)?void 0:o.refresh)&&await e.resource.refresh()});let n=(0,u.createSafeNavigator)();await e.runjs(l,{window:(0,u.createSafeWindow)({navigator:n}),document:(0,u.createSafeDocument)(),navigator:n},{version:o})}}}});let c1="calc(100vh - 96px)",c2="calc(100vh - 160px)",c5="min(480px, calc(100vh - 320px))";function c8(e,t){let l={...e.getComponentProps(),...t||{}};return["markdown","vditor"].includes(e.interface)&&null==l.height&&(l.height=c5),l}class c4 extends u.FlowModel{get form(){return this.context.form}useHooksBeforeRender(){let[e]=g.Form.useForm();this.context.defineProperty("form",{get:()=>e})}static async open(e){let{flowEngine:t,target:l,dataSourceKey:o,collectionName:n,fieldPath:i,filterByTk:r,record:a,onSuccess:d,fieldProps:c,onOk:p,sourceFieldModelUid:m}=e,h=m?t.getModel(m):void 0,f=t.createModel({use:"QuickEditFormModel",stepParams:{quickEditFormSettings:{init:{dataSourceKey:o,collectionName:n,fieldPath:i}}}},h?{delegate:h.context}:void 0);await t.context.viewer.open({type:"popover",target:l,placement:"rightTop",styles:{body:{width:420,maxHeight:c1,overflowY:"auto",overscrollBehavior:"contain"}},content:e=>(f.viewContainer=e,f.__onSubmitSuccess=d,f._fieldProps=c,f._onOk=p,(0,s.jsx)(u.FlowModelRenderer,{fallback:(0,s.jsx)(g.Skeleton.Input,{size:"small"}),model:f,inputArgs:{filterByTk:r,record:a,sourceFieldModelUid:m}}))})}onInit(e){super.onInit(e),this.context.defineProperty("blockModel",{value:this});let t=(0,u.createCurrentRecordMetaFactory)(this.context,()=>this.collection);this.context.defineProperty("record",{get:()=>this.resource.getData(),cache:!1,resolveOnServer:(0,u.createRecordResolveOnServerWithLocal)(()=>this.collection,()=>this.resource.getData()),meta:t}),this.context.defineProperty("collection",{get:()=>this.collection})}addAppends(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],l=this.context.dataSourceManager.getCollectionField(`${this.collection.dataSourceKey}.${this.collection.name}.${e}`);!l||l.isAssociationField()&&(this.resource.addAppends(e),t&&this.resource.refresh())}render(){return(0,s.jsxs)(s4.s2,{model:this,children:[(0,s.jsx)("div",{style:{minHeight:0,overflowY:"auto",maxHeight:c2},children:this.mapSubModels("fields",e=>{var t;return(0,s.jsx)(u.FormItem,{showLabel:!1,name:this.fieldPath,initialValue:null==(t=this.context.record)?void 0:t[this.fieldPath],...this.props,children:(0,s.jsx)(u.FieldModelRenderer,{model:e,fallback:(0,s.jsx)(g.Skeleton.Input,{size:"small"})})},e.uid)})}),(0,s.jsxs)(g.Space,{style:{display:"flex",justifyContent:"flex-end",flexShrink:0},children:[(0,s.jsx)(g.Button,{onClick:()=>{this.viewContainer.close()},children:this.context.t("Cancel")}),(0,s.jsx)(g.Button,{type:"primary",htmlType:"submit",onClick:async()=>{var e,t,l,o,n;let i=this.form.getFieldsValue();await this.form.submit();let r={...i},a={[this.fieldPath]:null==(e=this.resource.getData())?void 0:e[this.fieldPath]};if(this._onOk)this._onOk(r),this.viewContainer.close();else try{await this.resource.save(r,{refresh:!1}),null==(t=(l=this).__onSubmitSuccess)||t.call(l,r),this.viewContainer.close(),this.context.message.success(this.context.t("Saved successfully"))}catch(e){console.error("Failed to save form data:",e),this.context.message.error(this.context.t("Failed to save form data")),null==(o=(n=this).__onSubmitSuccess)||o.call(n,a)}},children:this.context.t("Submit")})]})]})}}c4.registerFlow({key:"quickEditFormSettings",sort:100,steps:{init:{async handler(e,t){let{dataSourceKey:l,collectionName:o,fieldPath:n}=t;if(!l||!o||!n)throw Error("dataSourceKey, collectionName and fieldPath are required parameters");e.model.fieldPath=n,e.model.collection=e.dataSourceManager.getCollection(l,o);let i=e.createResource(u.SingleRecordResource);i.setDataSourceKey(l),i.setResourceName(o),e.model.resource=i;let r=e.model.collection.getField(n);if(r){let t=dg.getDefaultBindingByField(e,r);if(!t)return;let i=t.modelName,a=e.model.addSubModel("fields",{use:i,props:"function"==typeof t.defaultProps?t.defaultProps(e,r):t.defaultProps,stepParams:{fieldSettings:{init:{dataSourceKey:l,collectionName:o,fieldPath:n}}}});a.setProps(c8(r,e.model._fieldProps)),a.setProps({sourceFieldModelUid:e.inputArgs.sourceFieldModelUid}),e.model.context.defineProperty("collectionField",{get:()=>r}),e.model.addAppends(n),await a.dispatchEvent("beforeRender")}if(e.inputArgs.filterByTk||e.inputArgs.record){var a;i.setFilterByTk(e.inputArgs.filterByTk),i.setData(e.inputArgs.record),null==(a=e.model.form)||a.setFieldsValue(i.getData())}}}}}),c4.define({hide:!0});class c3 extends ac{}c3.itemModelName="FormAssociationItemModel",c3.define({label:'{{t("Display association fields")}}'});let c6=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],l=(0,u.useFlowContext)();return(0,o8.useRequest)(async()=>await l.resolveJsonTemplate(e),{refreshDeps:t})},c9=2;function c7(e,t){if(!t)return e;let l=[...e];return t.forEach(e=>{let[t,o]=e.split(":");if(l.includes(t)){let e=l.indexOf(t),n=Number(o);l.splice(e+1,0,Number.isFinite(n)?n:o)}}),l}function pe(e,t){if(null==e)return e;let l=typeof e;if("string"===l||"number"===l||"boolean"===l)return e;if("bigint"===l)return String(e);if(Array.isArray(e))return e.map(e=>{let l=pe(e,t);return null==l?"":String(l)}).join(",");if("object"===l){let l=(0,c.castArray)(t).filter(Boolean);if(1===l.length){let t=pe((0,c.get)(e,l[0]));if(void 0!==t)return t}if(l.length>1)return JSON.stringify(l.map(t=>pe((0,c.get)(e,t))??null));let o=e.id??e.value??e.key;if("string"==typeof o||"number"==typeof o)return o;if("bigint"==typeof o)return String(o)}}let pt=e=>{let t=e.underSubForm?"ctx.item.value":"ctx.formValues",l=`{{${t}.${e.fieldPath}}}`,{data:o,loading:n,error:i}=c6(l,[l,e.refreshKey]);return n?(0,s.jsx)("div",{children:"Loading..."}):i?(0,s.jsxs)("div",{children:["Error: ",i.message]}):(0,s.jsx)(u.FieldModelRenderer,{...e.mergedProps,model:e.modelForRender,value:o||e.value})};class pl extends u.DisplayItemModel{static defineChildren(e){let t=e.collection,l=e.prefixFieldPath?e.prefixFieldPath.split(".").filter(Boolean).length:0;return t.getFields().map(o=>{var n;if(l>=c9&&((null==(n=o.isAssociationField)?void 0:n.call(o))||o.target||o.targetCollection))return null;let i=this.getDefaultBindingByField(e,o,{fallbackToTargetTitleField:!0});if(!i)return null;let r=i.modelName,a=e.prefixFieldPath?`${e.prefixFieldPath}.${o.name}`:o.name;return{key:a,label:o.title,refreshTargets:["DetailsCustomItemModel/DetailsJSFieldItemModel"],toggleable:e=>{var t;return(null==(t=e.getStepParams("fieldSettings","init"))?void 0:t.fieldPath)===a},useModel:"FormAssociationItemModel",createModelOptions:()=>({use:"FormAssociationItemModel",stepParams:{fieldSettings:{init:{dataSourceKey:t.dataSourceKey,collectionName:e.model.context.blockModel.collection.name,fieldPath:a}}},subModels:{field:{use:r,props:"function"==typeof i.defaultProps?i.defaultProps(e,o):i.defaultProps}}})}}).filter(Boolean)}onInit(e){super.onInit(e),this.context.defineProperty("actionName",{get:()=>"view",cache:!1})}renderItem(){let e=this.subModels.field,t=this.context.fieldIndex,l=this.context.record,o=this.context.currentObject,n=null!=t?(()=>{let n=e.createFork({},`${t}`);return n.context.defineProperty("fieldIndex",{get:()=>t}),n.context.defineProperty("record",{get:()=>l,cache:!1}),n.context.defineProperty("currentObject",{get:()=>o,cache:!1}),this.context.pattern&&n.context.defineProperty("pattern",{get:()=>this.context.pattern}),n})():e,i=this.collectionField.name,r=this.fieldPath.replace(RegExp(`\\.${i}$`),""),a=c7((0,c.castArray)(r.split(".")),t),d=this.context.prefixFieldPath;return(0,s.jsx)(u.FormItem,{...this.props,shouldUpdate:(e,t)=>{let l=a.length>1&&!(0,c.get)(e,[...a])?a.slice(0,-1):a;return JSON.stringify((0,c.get)(e,[...l]))!==JSON.stringify((0,c.get)(t,[...l]))},children:()=>{var e,t,l,o;let i=pe(null==(t=this.context.form)||null==(e=t.getFieldValue)?void 0:e.call(t,a),null==(o=this.collectionField)||null==(l=o.collection)?void 0:l.filterTargetKey)||(0,nx.uid)();return(0,s.jsx)(pt,{modelForRender:n,fieldPath:this.fieldPath.replace(RegExp(`^${d}\\.`),""),refreshKey:i,mergedProps:this.props,underSubForm:!!d})}})}}pl.define({label:(0,u.tExpr)("Display fields"),sort:100}),pl.registerFlow({key:"detailItemSettings",sort:300,title:(0,u.tExpr)("Detail item settings"),steps:{showLabel:{title:(0,u.tExpr)("Show label"),uiMode:{type:"switch",key:"showLabel"},defaultParams:{showLabel:!0},handler(e,t){e.model.setProps({showLabel:t.showLabel})}},label:{title:(0,u.tExpr)("Label"),uiSchema:e=>({title:{"x-component":"Input","x-decorator":"FormItem","x-reactions":t=>{var l;let o=e.model,n=null==(l=o.collectionField)?void 0:l.title;t.decoratorProps={...t.decoratorProps,extra:o.context.t("Original field title: ")+(o.context.t(n)??"")}}}}),defaultParams:e=>{var t;return{title:null==(t=e.collectionField)?void 0:t.title}},handler(e,t){e.model.setProps({label:e.t(t.title,{ns:"lm-flow-engine"})})}},aclCheck:{use:"aclCheck"},init:{async handler(e){let{collectionField:t}=e.model;t&&e.model.setProps(t.getComponentProps())}},tooltip:{title:(0,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"})})}},model:{title:(0,u.tExpr)("Field component"),use:"displayFieldComponent"},fieldNames:{use:"titleField",title:(0,u.tExpr)("Title field"),beforeParamsSave:async(e,t,l)=>{if(!e.collectionField||!e.collectionField.isAssociationField())return null;if(t.label!==l.label){var o,n;e.model.setProps({titleField:t.label,...null==(n=e.collectionField.targetCollection)||null==(o=n.getField(t.label))?void 0:o.getComponentProps()});let l=e.collectionField.targetCollection.getField(t.label),i=u.DisplayItemModel.getDefaultBindingByField(e,l),r=i.modelName;await dn({parentModel:e.model,targetUse:r,defaultProps:"function"==typeof(null==i?void 0:i.defaultProps)?i.defaultProps(e,e.collectionField):null==i?void 0:i.defaultProps,pattern:e.model.getProps().pattern})}},async handler(e,t){var l,o;if(!e.collectionField||e.model.subModels.field.disableTitleField)return;e.model.setProps({titleField:t.label,...null==(o=e.collectionField.targetCollection)||null==(l=o.getField(t.label))?void 0:l.getComponentProps()});let n=e.collectionField.targetCollection;if(n){let l=n.getField(t.label),o=u.DisplayItemModel.getDefaultBindingByField(e,l).modelName;o!==e.model.subModels.field.use&&e.model.setStepParams(e.flowKey,"model",{use:o})}},hideInSettings:async e=>!e.collectionField||!e.collectionField.isAssociationField()||e.model.subModels.field.disableTitleField}}}),pl.registerFlow({key:"paginationChange",on:"paginationChange",steps:{aclCheckRefresh:{use:"aclCheckRefresh"}}});var po=__webpack_require__(8563);let pn="client",pi=e=>e&&(e.closest(".nb-block-grid")||e.closest(".nb-page-wrapper")||e.closest(".nb-page"))||document.documentElement,pr=e=>{if(!e)return 0;let t=e.getBoundingClientRect(),l=window.getComputedStyle(e),o=parseFloat(l.marginTop)||0,n=parseFloat(l.marginBottom)||0;return t.height+o+n},pa=e=>{if(!e||e===document.documentElement)return{top:0,bottom:0};let t=window.getComputedStyle(e);return{top:parseFloat(t.paddingTop)||0,bottom:parseFloat(t.paddingBottom)||0}},ps=e=>{let t=e.closest(".nb-page");return t?t.querySelector(".ant-page-header")||t.querySelector(".pageHeaderCss"):null},pd=e=>{let t=e.querySelector("[data-flow-add-block]");return t?t.parentElement||t:null};function pu(e,t){let l=t>0;return e>0?e:l?t:0}let pc=e=>{let{height:t,heightMode:l,hostRef:o,marginBlock:n}=e,[i,r]=p.default.useState(),a=p.default.useCallback(()=>{if("fullHeight"!==l||"u"<typeof window)return void r(e=>void 0===e?e:void 0);let e=o.current;if(!e)return;let t=pi(e),i=e.getBoundingClientRect(),a=t===document.documentElement?{top:0}:t.getBoundingClientRect(),s=pa(t),d=pd(t),u=a.top+s.top,c=Math.max(0,i.top-u),p=s.bottom+n;d&&(p=n+pr(d)+s.bottom);let m=Math.max(0,Math.floor(window.innerHeight-pu(u,110)-c-p-1));r(e=>e===m?e:m)},[l,o,n]);return(p.default.useLayoutEffect(()=>{a()},[a]),p.default.useEffect(()=>{if("fullHeight"!==l||"u"<typeof window)return;let e=o.current;if(!e||"u"<typeof ResizeObserver)return;let t=pi(e),n=ps(t),i=pd(t),r=new ResizeObserver(()=>a());return r.observe(e),t instanceof HTMLElement&&r.observe(t),n&&r.observe(n),i&&r.observe(i),window.addEventListener("resize",a),()=>{r.disconnect(),window.removeEventListener("resize",a)}},[l,o,a]),"specifyValue"===l)?t:"fullHeight"===l?i:null},pp=e=>{let{uid:t,className:l,heightMode:o,height:n,style:i,beforeContent:r,afterContent:a,contentRef:d,marginBlock:u,...c}=e,m=p.default.useRef(null),h=pc({height:n,heightMode:o,hostRef:m,marginBlock:u});return(0,s.jsxs)("div",{...c,ref:m,id:`model-${t}`,className:l,style:{display:"flex",flexDirection:"column",height:h??void 0,minHeight:0,overflow:"auto",...i||{}},children:[r,(0,s.jsx)("div",{ref:d}),a]})};class pm extends aU.z{get showBlockCard(){var e;return(null==(e=this.getStepParams("jsSettings","showBlockCard"))?void 0:e.showBlockCard)!==!1}renderComponent(){return(0,s.jsx)("div",{ref:this.context.ref})}render(){let{className:e,id:t,title:l,description:o,showCard:n,heightMode:i,height:r,style:a,beforeContent:d,afterContent:u,...c}=this.decoratorProps||{},p=["code-block",e].filter(Boolean).join(" ");if(!this.showBlockCard){var m;return(0,s.jsx)(pp,{...c,uid:this.uid,className:p,heightMode:i,height:r,style:a,beforeContent:d,afterContent:u,contentRef:this.context.ref,marginBlock:(null==(m=this.context.themeToken)?void 0:m.marginBlock)??0})}let h={...c,height:r,style:a,...void 0===d?{}:{beforeContent:d},...void 0===u?{}:{afterContent:u}};return(0,s.jsx)(po.tn,{id:`model-${this.uid}`,className:p,title:l,description:o,heightMode:i,...h,children:(0,s.jsx)("div",{ref:this.context.ref})})}onMount(){this._mountedOnce&&this.context.ref.current&&this.rerender(),this._mountedOnce=!0}constructor(...e){super(...e),this._mountedOnce=!1}}pm.define({label:(0,u.tExpr)("JS block"),createModelOptions:{use:"JSBlockModel"}}),pm.registerFlow({key:"jsSettings",title:"JavaScript settings",steps:{showBlockCard:{title:(0,u.tExpr)("Show block card"),uiMode:{type:"switch",key:"showBlockCard"},defaultParams:{showBlockCard:!0}},runJs:{title:(0,u.tExpr)("Write JavaScript"),useRawParams:!0,uiSchema:{code:{type:"string","x-decorator":"FormItem","x-component":sk.BY,"x-component-props":{minHeight:"320px",theme:"light",enableLinter:!0,wrapperStyle:{position:"fixed",inset:8}}}},uiMode:{type:"embed",props:{styles:{body:{transform:"translateX(0)"}}}},defaultParams:e=>({version:"v2",code:`// Welcome to the JS block
|
|
860
860
|
// Create powerful interactive components with JavaScript
|
|
861
861
|
ctx.render(\`
|
|
862
862
|
<div style="padding: 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; max-width: 600px;">
|
|
@@ -1131,7 +1131,7 @@ ctx.render(\`
|
|
|
1131
1131
|
&:hover .edit-icon {
|
|
1132
1132
|
display: inline-flex;
|
|
1133
1133
|
}
|
|
1134
|
-
`),children:[(0,s.jsx)(e1.EditOutlined,{className:"edit-icon",onClick:async e=>{e.preventDefault(),e.stopPropagation();try{await c4.open({flowEngine:f.flowEngine,target:h.current,dataSourceKey:f.collection.dataSourceKey,collectionName:f.collection.name,fieldPath:a,record:i,fieldProps:{...c.props,...c.subModels.field.props},onOk:e=>{i[a]=e[a];let t=f.subModels.field.createFork({},`${r}`),l=(0,u.createCurrentRecordMetaFactory)(t.context,()=>t.context.collection);t.context.defineProperty("record",{get:()=>i,cache:!1,meta:l}),t.setProps({...f.props,value:e[a]}),t.context.defineProperty("recordIndex",{get:()=>r}),f.rerender()}})}catch(e){console.log(e)}}}),(0,s.jsx)("div",{ref:h,className:(0,S.css)`
|
|
1134
|
+
`),children:[(0,s.jsx)(e1.EditOutlined,{className:"edit-icon",onClick:async e=>{e.preventDefault(),e.stopPropagation();try{await c4.open({flowEngine:f.flowEngine,target:h.current,dataSourceKey:f.collection.dataSourceKey,collectionName:f.collection.name,fieldPath:a,record:i,fieldProps:{...c.props,...c.subModels.field.props},sourceFieldModelUid:c.subModels.field.uid,onOk:e=>{i[a]=e[a];let t=f.subModels.field.createFork({},`${r}`),l=(0,u.createCurrentRecordMetaFactory)(t.context,()=>t.context.collection);t.context.defineProperty("record",{get:()=>i,cache:!1,meta:l}),t.setProps({...f.props,value:e[a]}),t.context.defineProperty("recordIndex",{get:()=>r}),f.rerender()}})}catch(e){console.log(e)}}}),(0,s.jsx)("div",{ref:h,className:(0,S.css)`
|
|
1135
1135
|
overflow: hidden;
|
|
1136
1136
|
text-overflow: ellipsis;
|
|
1137
1137
|
white-space: nowrap;
|
|
@@ -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
|
}
|