@cxbox-ui/core 2.4.4-beta.0 → 2.5.0-CXBOX-447-alpha.0

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/dist/core.d.ts CHANGED
@@ -57,6 +57,7 @@ declare namespace actions {
57
57
  changeDataItem,
58
58
  changeDataItems,
59
59
  forceActiveRmUpdate,
60
+ WaitUntilPopupOptions,
60
61
  showViewPopup,
61
62
  showFileUploadPopup,
62
63
  closeViewPopup,
@@ -117,7 +118,8 @@ declare namespace actions {
117
118
  addPendingRequest,
118
119
  removePendingRequest,
119
120
  addNotification,
120
- removeNotifications
121
+ removeNotifications,
122
+ waitUntil
121
123
  }
122
124
  }
123
125
  export { actions }
@@ -1060,6 +1062,7 @@ declare const changeLocation: ActionCreatorWithOptionalPayload< {
1060
1062
  location: Route;
1061
1063
  forceUpdate?: boolean;
1062
1064
  isTab?: boolean;
1065
+ onSuccessAction?: AnyAction_2;
1063
1066
  }, string>;
1064
1067
 
1065
1068
  /**
@@ -1430,6 +1433,7 @@ drillDownType?: DrillDownType;
1430
1433
  urlName?: string;
1431
1434
  route: Route;
1432
1435
  widgetName?: string;
1436
+ onSuccessAction?: AnyAction_2;
1433
1437
  }, string>;
1434
1438
 
1435
1439
  declare const drillDownEpic: CXBoxEpic;
@@ -1504,6 +1508,7 @@ declare namespace epics {
1504
1508
  getRowMetaByForceActiveEpic,
1505
1509
  showAllTableRecordsInitEpic,
1506
1510
  clearPendingDataChangesAfterCursorChangeEpic,
1511
+ waitUntilEpic,
1507
1512
  drillDownEpic,
1508
1513
  loginDoneEpic,
1509
1514
  changeViewEpic,
@@ -1994,6 +1999,8 @@ declare namespace interfaces {
1994
1999
  OperationPostInvokeDrillDown,
1995
2000
  OperationPostInvokeOpenPickList,
1996
2001
  OperationPostInvokeShowMessage,
2002
+ OperationPostInvokeWaitUntil,
2003
+ OperationPostInvokeDrilldownAndWaitUntil,
1997
2004
  OperationPostInvokeAny,
1998
2005
  OperationScope,
1999
2006
  AssociatedItem,
@@ -2527,7 +2534,7 @@ export declare interface OperationPostInvoke {
2527
2534
  /**
2528
2535
  * A union of all action types which could be be fired after user's operation
2529
2536
  */
2530
- export declare type OperationPostInvokeAny = OperationPostInvokeRefreshBc | OperationPostInvokeDownloadFile | OperationPostInvokeDownloadFileByUrl | OperationPostInvokeDrillDown | OperationPostInvokeOpenPickList | OperationPostInvokeShowMessage | OperationPostInvokeConfirm;
2537
+ export declare type OperationPostInvokeAny = OperationPostInvokeRefreshBc | OperationPostInvokeDownloadFile | OperationPostInvokeDownloadFileByUrl | OperationPostInvokeDrillDown | OperationPostInvokeOpenPickList | OperationPostInvokeShowMessage | OperationPostInvokeConfirm | OperationPostInvokeWaitUntil | OperationPostInvokeDrilldownAndWaitUntil;
2531
2538
 
2532
2539
  /**
2533
2540
  * The action that will be performed after the user confirms it
@@ -2613,6 +2620,9 @@ export declare interface OperationPostInvokeDrillDown extends OperationPostInvok
2613
2620
  urlName?: string;
2614
2621
  }
2615
2622
 
2623
+ export declare interface OperationPostInvokeDrilldownAndWaitUntil extends OperationPostInvokeDrillDown, OperationPostInvokeWaitUntil {
2624
+ }
2625
+
2616
2626
  /**
2617
2627
  * `Pick list` widget opening
2618
2628
  */
@@ -2686,7 +2696,20 @@ export declare enum OperationPostInvokeType {
2686
2696
  *
2687
2697
  * @deprecated TODO: Remove in 2.0.0
2688
2698
  */
2689
- postDelete = "postDelete"
2699
+ postDelete = "postDelete",
2700
+ waitUntil = "waitUntil",
2701
+ drilldownAndWaitUntil = "drilldownAndWaitUntil"
2702
+ }
2703
+
2704
+ export declare interface OperationPostInvokeWaitUntil extends OperationPostInvoke {
2705
+ inProgressMessage?: string;
2706
+ successCondition_bcName: string;
2707
+ successCondition_fieldKey: string;
2708
+ successCondition_value: unknown;
2709
+ successMessage?: string;
2710
+ timeout?: number | string;
2711
+ timeoutMaxRequests?: number | string;
2712
+ timeoutMessage?: string;
2690
2713
  }
2691
2714
 
2692
2715
  /**
@@ -2854,7 +2877,7 @@ export declare interface PopupData {
2854
2877
  *
2855
2878
  * TODO: Will not be optional in 2.0.0
2856
2879
  */
2857
- type?: PopupType;
2880
+ type?: PopupType | string;
2858
2881
  /**
2859
2882
  * Business component for widget in Popup
2860
2883
  *
@@ -2887,9 +2910,10 @@ export declare interface PopupData {
2887
2910
  * TODO: Used only by assocs so probably move to AssocPopupDescriptor
2888
2911
  */
2889
2912
  isFilter?: boolean;
2913
+ options?: Partial<WaitUntilPopupOptions>;
2890
2914
  }
2891
2915
 
2892
- export declare type PopupType = 'assoc' | 'file-upload' | null;
2916
+ export declare type PopupType = 'assoc' | 'file-upload' | 'waitUntil' | null;
2893
2917
 
2894
2918
  /**
2895
2919
  * Widgets that are considered `popups` and usually excluded from widgets layout grid
@@ -3513,6 +3537,7 @@ error: ApplicationError;
3513
3537
  * TODO
3514
3538
  */
3515
3539
  declare const showViewPopup: ActionCreatorWithOptionalPayload< {
3540
+ options?: Partial<WaitUntilPopupOptions>;
3516
3541
  /**
3517
3542
  * BC name of popup widget
3518
3543
  *
@@ -3554,7 +3579,7 @@ isFilter?: boolean;
3554
3579
  /**
3555
3580
  * Type of popup
3556
3581
  */
3557
- type?: PopupType;
3582
+ type?: PopupType | string;
3558
3583
  }, string>;
3559
3584
 
3560
3585
  declare function splitBcUrl(bcUrl: string): string[];
@@ -3959,6 +3984,18 @@ export declare interface ViewState extends ViewMetaResponse {
3959
3984
  };
3960
3985
  }
3961
3986
 
3987
+ declare const waitUntil: ActionCreatorWithOptionalPayload< {
3988
+ bcName: string;
3989
+ postInvoke: Omit<OperationPostInvokeWaitUntil, 'type'>;
3990
+ }, string>;
3991
+
3992
+ declare const waitUntilEpic: CXBoxEpic;
3993
+
3994
+ declare interface WaitUntilPopupOptions {
3995
+ status: 'success' | 'timeout';
3996
+ message: string;
3997
+ }
3998
+
3962
3999
  /**
3963
4000
  * Field descriptor in widget configuration
3964
4001
  */
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{createAction as e,nanoid as a,isAnyOf as t}from"@reduxjs/toolkit";import{of as o,EMPTY as i,filter as r,mergeMap as n,concat as c,catchError as s,map as d,switchMap as l,tap as p,take as u,race as m,from as b,takeWhile as y,expand as h,reduce as g}from"rxjs";import f from"axios";const N=e("changeLocation"),w=e("login"),v=e("loginDone"),C=e("loginFail"),D=e("logout"),F=e("logoutDone"),T=e("selectScreen"),E=e("selectScreenFail"),I=e("selectView"),k=e("selectViewFail"),O=e("bcFetchDataRequest"),A=e("bcFetchDataPages"),R=e("bcClearData"),S=e("inlinePickListFetchDataRequest"),P=e("bcFetchDataSuccess"),M=e("bcFetchDataFail"),V=e("bcLoadMore"),_=e("bcFetchRowMeta"),U=e("bcFetchRowMetaSuccess"),$=e("bcFetchRowMetaFail"),B=e("bcNewData"),j=e("bcNewDataSuccess"),L=e("bcNewDataFail"),x=e("bcDeleteDataFail"),W=e("forceActiveChangeFail"),q=e("sendOperation"),K=e("sendOperationFail"),G=e("sendOperationSuccess"),z=e("processPostInvoke"),H=e("processPreInvoke"),J=e("processPostInvokeConfirm"),Y=e("userDrillDown"),Q=e("userDrillDownSuccess"),X=e("drillDown"),Z=e("bcChangeCursors"),ee=e("bcChangeDepthCursor"),ae=e("changeDataItem"),te=e("changeDataItems"),oe=e("forceActiveRmUpdate"),ie=e("showViewPopup"),re=e("showFileUploadPopup"),ne=e("closeViewPopup"),ce=e("viewPutPickMap"),se=e("viewClearPickMap"),de=e("saveAssociations"),le=e("cnangeAssociations"),pe=e("removeMultivalueTag"),ue=e("bcSaveDataSuccess"),me=e("bcSaveDataFail"),be=e("operationConfirmation"),ye=e("bcForceUpdate"),he=e("uploadFile"),ge=e("uploadFileDone"),fe=e("uploadFileFailed"),Ne=e("bcCancelPendingChanges"),we=e("bcSelectRecord"),ve=e("bcSelectDepthRecord"),Ce=e("changeAssociations"),De=e("changeAssociationsSameBc"),Fe=e("changeAssociationFull"),Te=e("changeChildrenAssociations"),Ee=e("changeChildrenAssociationsSameBc"),Ie=e("changeDescendantsAssociationsFull"),ke=e("dropAllAssociations"),Oe=e("dropAllAssociationsSameBc"),Ae=e("dropAllAssociationsFull"),Re=e("handleRouter"),Se=e("selectTableRowInit"),Pe=e("selectTableRow"),Me=e("deselectTableRow"),Ve=e("showAllTableRecordsInit"),_e=e("showNotification"),Ue=e("closeNotification"),$e=e("bcAddFilter"),Be=e("bcRemoveFilter"),je=e("bcRemoveAllFilters"),Le=e("bcAddSorter"),xe=e("bcRemoveSorter"),We=e("bcChangePage"),qe=e("showViewError"),Ke=e("closeViewError"),Ge=e("closeConfirmModal"),ze=e("clearValidationFails"),He=e("downloadFile"),Je=e("downloadFileByUrl"),Ye=e("bulkUploadFiles"),Qe=e("apiError"),Xe=e("httpError"),Ze=e("switchDebugMode"),ea=e("exportState"),aa=e("emptyAction"),ta=e("refreshMeta"),oa=e("refreshMetaDone"),ia=e("refreshMetaFail"),ra=e("refreshMetaAndReloadPage"),na=e("switchRole"),ca=e("addPendingRequest"),sa=e("removePendingRequest"),da=e("addNotification"),la=e("removeNotifications");var pa=Object.freeze({__proto__:null,addNotification:da,addPendingRequest:ca,apiError:Qe,bcAddFilter:$e,bcAddSorter:Le,bcCancelPendingChanges:Ne,bcChangeCursors:Z,bcChangeDepthCursor:ee,bcChangePage:We,bcClearData:R,bcDeleteDataFail:x,bcFetchDataFail:M,bcFetchDataPages:A,bcFetchDataRequest:O,bcFetchDataSuccess:P,bcFetchRowMeta:_,bcFetchRowMetaFail:$,bcFetchRowMetaSuccess:U,bcForceUpdate:ye,bcLoadMore:V,bcNewData:B,bcNewDataFail:L,bcNewDataSuccess:j,bcRemoveAllFilters:je,bcRemoveFilter:Be,bcRemoveSorter:xe,bcSaveDataFail:me,bcSaveDataSuccess:ue,bcSelectDepthRecord:ve,bcSelectRecord:we,bulkUploadFiles:Ye,changeAssociation:Ce,changeAssociationFull:Fe,changeAssociationSameBc:De,changeAssociations:le,changeChildrenAssociations:Te,changeChildrenAssociationsSameBc:Ee,changeDataItem:ae,changeDataItems:te,changeDescendantsAssociationsFull:Ie,changeLocation:N,clearValidationFails:ze,closeConfirmModal:Ge,closeNotification:Ue,closeViewError:Ke,closeViewPopup:ne,deselectTableRow:Me,downloadFile:He,downloadFileByUrl:Je,drillDown:X,dropAllAssociations:ke,dropAllAssociationsFull:Ae,dropAllAssociationsSameBc:Oe,emptyAction:aa,exportState:ea,forceActiveChangeFail:W,forceActiveRmUpdate:oe,handleRouter:Re,httpError:Xe,inlinePickListFetchDataRequest:S,login:w,loginDone:v,loginFail:C,logout:D,logoutDone:F,operationConfirmation:be,processPostInvoke:z,processPostInvokeConfirm:J,processPreInvoke:H,refreshMeta:ta,refreshMetaAndReloadPage:ra,refreshMetaDone:oa,refreshMetaFail:ia,removeMultivalueTag:pe,removeNotifications:la,removePendingRequest:sa,saveAssociations:de,selectScreen:T,selectScreenFail:E,selectTableRow:Pe,selectTableRowInit:Se,selectView:I,selectViewFail:k,sendOperation:q,sendOperationFail:K,sendOperationSuccess:G,showAllTableRecordsInit:Ve,showFileUploadPopup:re,showNotification:_e,showViewError:qe,showViewPopup:ie,switchDebugMode:Ze,switchRole:na,uploadFile:he,uploadFileDone:ge,uploadFileFailed:fe,userDrillDown:Y,userDrillDownSuccess:Q,viewClearPickMap:se,viewPutPickMap:ce});class ua{reducers=[];matchers=[];defaultCaseReducer=void 0;addCase(e,a){return this.reducers.push([e,a]),this}removeCase(e){return this.reducers=this.reducers.filter((a=>a[0].type!==e.type)),this}replaceCase(e,a){return this.removeCase(e).addCase(e,a),this}addMatcher(e,a){return this.matchers.push([e,a]),this}addDefaultCase(e){return this.defaultCaseReducer=e,this}get builder(){return e=>{const a=this.reducers.reduce(((e,a)=>e.addCase(...a)),e),t=this.matchers.reduce(((e,a)=>e.addMatcher(...a)),a);return void 0!==this.defaultCaseReducer?t.addDefaultCase(this.defaultCaseReducer):t}}}const ma=[];var ba=Object.defineProperty,ya=Object.getOwnPropertyDescriptor,ha=Object.getOwnPropertyNames,ga=Object.prototype.hasOwnProperty,fa={};((e,a)=>{for(var t in a)ba(e,t,{get:a[t],enumerable:!0})})(fa,{DrillDownType:()=>Sa,FieldType:()=>Va,OperationTypeCrud:()=>Ra,PositionTypes:()=>Ma,RecordSnapshotState:()=>Aa,WidgetTypes:()=>Pa});var Na,wa,va,Ca,Da,Fa,Ta,Ea,Ia,ka,Oa=(Na=fa,((e,a,t,o)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let i of ha(a))!ga.call(e,i)&&i!==t&&ba(e,i,{get:()=>a[i],enumerable:!(o=ya(a,i))||o.enumerable});return e})(ba({},"__esModule",{value:!0}),Na)),Aa=((wa=Aa||{}).noChange="noChange",wa.new="new",wa.deleted="deleted",wa),Ra=((va=Ra||{}).create="create",va.save="save",va.delete="delete",va.associate="associate",va.cancelCreate="cancel-create",va.fileUpload="file-upload",va),Sa=((Ca=Sa||{}).inner="inner",Ca.relative="relative",Ca.relativeNew="relativeNew",Ca.external="external",Ca.externalNew="externalNew",Ca),Pa=((Fa=Pa||{}).Info="Info",Fa.Form="Form",Fa.List="List",Fa.DataGrid="DataGrid",Fa.AssocListPopup="AssocListPopup",Fa.PickListPopup="PickListPopup",Fa.HeaderWidget="HeaderWidget",Fa.SecondLevelMenu="SecondLevelMenu",Fa.ThirdLevelMenu="ThirdLevelMenu",Fa.FourthLevelMenu="FourthLevelMenu",Fa.WidgetCreator="WidgetCreator",Fa.Pivot="Pivot",Fa.DimFilter="DimFilter",Fa.Text="Text",Fa.FlatTree="FlatTree",Fa.FlatTreePopup="FlatTreePopup",Fa.ViewNavigation="ViewNavigation",Fa.NavigationTabs="NavigationTabs",Fa),Ma=(e=>(e.Top="Top",e.Bottom="Bottom",e.TopAndBottom="TopAndBottom",e))(Ma||{}),Va=((Da=Va||{}).number="number",Da.input="input",Da.monthYear="monthYear",Da.date="date",Da.dateTime="dateTime",Da.dateTimeWithSeconds="dateTimeWithSeconds",Da.checkbox="checkbox",Da.checkboxSql="checkboxSql",Da.DMN="DMN",Da.pickList="pickList",Da.inlinePickList="inline-pickList",Da.dictionary="dictionary",Da.hidden="hidden",Da.text="text",Da.percent="percent",Da.fileUpload="fileUpload",Da.money="money",Da.comboCondition="combo-condition",Da.richText="richText",Da.printForm="printForm",Da.multifield="multifield",Da.multivalue="multivalue",Da.multivalueHover="multivalueHover",Da.hint="hint",Da.radio="radio",Da);!function(e){e.success="success",e.info="info",e.warning="warning",e.error="error"}(Ta||(Ta={})),function(e){e.screen="screen",e.default="default",e.router="router",e.invalid="invalid",e.unknown="unknown"}(Ea||(Ea={})),function(e){e.old="old",e.target="target"}(Ia||(Ia={})),function(e){e[e.BusinessError=0]="BusinessError",e[e.SystemError=1]="SystemError",e[e.NetworkError=2]="NetworkError"}(ka||(ka={}));const _a=[Oa.WidgetTypes.List,Oa.WidgetTypes.DataGrid,Oa.WidgetTypes.AssocListPopup,Oa.WidgetTypes.PickListPopup,Oa.WidgetTypes.FlatTree,Oa.WidgetTypes.FlatTreePopup],Ua=[Oa.WidgetTypes.PickListPopup,Oa.WidgetTypes.AssocListPopup,Oa.WidgetTypes.FlatTreePopup];function $a(e){return!!e&&!("component"in e)}function Ba(e){return e&&"component"in e}function ja(e){return!!e&&"blockId"in e}var La;!function(e){e.page="page",e.loadMore="loadMore"}(La||(La={}));const xa=[Oa.OperationTypeCrud.create,Oa.OperationTypeCrud.save,Oa.OperationTypeCrud.delete,Oa.OperationTypeCrud.associate,Oa.OperationTypeCrud.cancelCreate,Oa.OperationTypeCrud.fileUpload];function Wa(e){return Array.isArray(e.actions)}var qa,Ka,Ga,za;function Ha(e){return!!e&&"viewName"in e}function Ja(e){return!!e&&"categoryName"in e}function Ya(e){return!!e&&"child"in e&&!("categoryName"in e)}!function(e){e.confirm="confirm",e.info="info",e.error="error"}(qa||(qa={})),function(e){e.refreshBC="refreshBC",e.downloadFile="downloadFile",e.downloadFileByUrl="downloadFileByUrl",e.drillDown="drillDown",e.openPickList="openPickList",e.showMessage="showMessage",e.postDelete="postDelete"}(Ka||(Ka={})),function(e){e.confirm="confirm",e.confirmText="confirmText"}(Ga||(Ga={})),function(e){e.range="range",e.equals="equals",e.greaterThan="greaterThan",e.lessThan="lessThan",e.greaterOrEqualThan="greaterOrEqualThan",e.lessOrEqualThan="lessOrEqualThan",e.contains="contains",e.specified="specified",e.specifiedBooleanSql="specifiedBooleanSql",e.equalsOneOf="equalsOneOf",e.containsOneOf="containsOneOf"}(za||(za={}));var Qa=Object.freeze({__proto__:null,get AppNotificationType(){return Ta},get ApplicationErrorType(){return ka},DrillDownType:Oa.DrillDownType,FieldType:Oa.FieldType,get FilterType(){return za},get OperationPostInvokeConfirmType(){return Ga},get OperationPostInvokeType(){return Ka},get OperationPreInvokeType(){return qa},OperationTypeCrud:Oa.OperationTypeCrud,get PaginationMode(){return La},get PendingValidationFailsFormat(){return Ia},PopupWidgetTypes:Ua,PositionTypes:Oa.PositionTypes,RecordSnapshotState:Oa.RecordSnapshotState,get RouteType(){return Ea},TableLikeWidgetTypes:_a,WidgetTypes:Oa.WidgetTypes,coreOperations:xa,isCustomWidget:$a,isCustomWidgetConfiguration:Ba,isOperationGroup:Wa,isViewNavigationCategory:Ja,isViewNavigationGroup:Ya,isViewNavigationItem:Ha,isWidgetFieldBlock:ja});const Xa={type:Ea.default,path:"/",search:"",params:null,screenName:null};function Za(e){return e.includes("?")?e+"&":e+"?"}function et(e,a){return a?at(e,function(e){const a={...e};return Object.keys(a).reduce(((e,a)=>(e[a]||"number"==typeof e[a]||delete e[a],e)),a)}(a)):e}function at(e,a){if(!a)return e;const t=new URLSearchParams(a).toString();return`${Za(e)}${t&&`${t}`}`}function tt(e,a={widgetName:"unknown"}){if(e.isAxiosError)return Qe({error:e,callContext:a})}function ot(e,a){const t=tt(e,a);return t?o(t):i}function it(e,...a){let t="";for(let o=0;o<a.length;o++)t+=e[o],t+="${"+o+"}";return t+=e[e.length-1],t}function rt(e,a=!1,t){const o=t.screen.bo.bc,i=o[e];if(!i)return null;const r=[i.cursor&&a?`${i.name}/${i.cursor}`:i.name];let n=i;for(;n.parentName;)n=o[n.parentName],r.push(`${n.name}/${n.cursor??null}`);return r.reverse().join("/")}const nt=/\${([^{}]+)}/g;function ct(e){return new RegExp(`(${e?.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")})`,"gi")}function st(e){return e.startsWith("/")?e:`/${e}`}function dt(e){if(!e)return null;const a={},t=e.split("/");for(let e=0;e<t.length;e+=2)t[e+1]&&(a[t[e]]=t[e+1]);return a}function lt(e,...a){let t="";for(let o=0;o<a.length;o++){t+=e[o];const i=a[o];if("number"==typeof i)t+=i.toString(10);else{if("string"!=typeof i){const t=it(e,a);throw new Error(`Неверный тип подстановочного знака в ${t}, index: ${o}, value: ${JSON.stringify(i)}`)}t+=encodeURIComponent(i)}}return t+=e[e.length-1],t}function pt(e){let a=e.pathname;a.startsWith("/")&&(a=a.substring(1)),a.endsWith("/")&&(a=a.substring(0,a.length-1)),a?.includes("&")&&!a?.includes("?")&&(a=a.substring(0,a.indexOf("&")));const t={};e.searchParams.forEach(((e,a)=>t[a]=e));const o=a.split("/").map(decodeURIComponent);let i=Ea.unknown,r=null,n=null,c=null;if(o.length>0&&"router"===o[0])i=Ea.router;else if(1===o.length)i=Ea.default;else if(o.length>=2&&"screen"===o[0]){let e=2;i=Ea.screen,r=o[1],o.length>=4&&"view"===o[2]&&(e+=2,n=o[3]),c=o.slice(e).map(encodeURIComponent).join("/")}return{type:i,path:0===a.length||a.startsWith("/")?a:`/${a}`,search:e.search,params:t,screenName:r,viewName:n,bcPath:c}}function ut(e){return`/screen/${e.screenName}/view/${e.viewName}/${e.bcPath}`}const mt=e=>pt(new URL(e,window.location.origin));function bt(e){if(!e||!e.length)return null;const a={};return e.forEach((e=>{if(e.type===za.range){const t=e.value;t[0]&&(a[`${e.fieldName}.${za.greaterOrEqualThan}`]=String(t[0])),t[1]&&(a[`${e.fieldName}.${za.lessOrEqualThan}`]=String(t[1]))}else{let t=String(e.value);if(Array.isArray(e.value)){t=`[${e.value.map((e=>`"${e}"`))}]`}const o=e.fieldName?".":"";a[`${e.fieldName}${o}${e.type}`]=t}})),a}function yt(e){if(!e||!e.length)return null;const a={};return e.forEach(((e,t)=>{a[`_sort.${t}.${e.direction}`]=e.fieldName})),a}const ht=e=>{try{return JSON.parse(e)}catch(e){return console.warn(e),null}};function gt(e=""){const a=[],t=new URLSearchParams(e);return Object.keys(Object.fromEntries(t)).forEach((o=>{const[i,r]=o.split(".");if(i&&r&&t.get(o)){let e=t.getAll(o);r===za.containsOneOf||r===za.equalsOneOf?(1===e.length&&(e=ht(e[0])??e),e=Array.isArray(e)?e:[]):e=Array.isArray(e)?e[0]:e,a.push({fieldName:i,type:r,value:e})}else if(e){let e=t.getAll(o);1===e.length&&(e=ht(e[0])??e[0]),a.push({fieldName:"",type:o,value:e})}})),a.length?a:null}function ft(e){if(!e||!e.length)return null;const a=[],t=new URLSearchParams(e);return Array.from(t.entries()).map((([e,a])=>{const[t,o]=e.split(".").slice(1);return{fieldName:a,order:Number.parseInt(t,10),direction:o}})).sort(((e,a)=>e.order-a.order)).forEach((e=>{a.push({fieldName:e.fieldName,direction:e.direction})})),a}function Nt(e){const a=[];return e?.forEach((e=>{if(Wa(e)){e.actions.forEach((e=>{a.push(e)}))}else a.push(e)})),a}function wt(e,a,t){if(a.operationType===e)return!0;const o=rt(a.bcName,!0,t),i=Nt(t.view.rowMeta[a.bcName]?.[o]?.actions).find((e=>e.type===a.operationType));return"none"===e?xa.every((e=>e!==a.operationType&&e!==i?.actionRole)):i?.actionRole===e}function vt(e,a,t){const o={};return a.filter((e=>e.bcName)).forEach((a=>{const i=[];i.push(a.bcName);let r=t[a.bcName].parentName;for(;r;)i.push(r),r=t[r].parentName;i.filter((a=>t[a].parentName===e)).forEach((e=>{o[e]=[...o[e]||[],a.name]}))})),a.filter((e=>e.options?.hierarchy)).forEach((a=>{const[t,i]=function(e,a){const t=a?.options?.hierarchy?.map((e=>e.bcName));if(e!==a.bcName&&!t?.includes(e))return[];const o=t?.findIndex((a=>a===e)),i=t?.[o+1];return[i,a.name]}(e,a);t&&(o[t]=[...o[t]||[],i])})),o}function Ct(e,a,t,o){const{bcName:i,isDefault:r,params:n}=e||{};if(!e||Array.isArray(e)||r)return!0;const c=a&&t?.find((e=>e.id===a));if(!c)return!1;const s=c?.[n?.fieldKey],d=o?.[i]?.[a]?.[n?.fieldKey];return void 0!==d?d===n?.value:s===n?.value}function Dt(e){const a=e.map((e=>({...e}))),t={},o=[];return a.forEach((i=>{if(!i.parentId||"0"===i.parentId)return;let r=t[i.parentId];if("number"!=typeof r&&(r=e.findIndex((e=>e.id===i.parentId)),t[i.parentId]=r),-1===r)return o.push(i.parentId),void console.warn(`Record with [id] = ${i.id} has [parentId] = ${i.parentId}, but no matching parent record exist. Check the service for this BC.`);i.parent=a[r],a[r].children?a[r]?.children?.push(i):a[r].children=[i]})),o.length?a.filter((e=>!o.includes(e.parentId))):a}function Ft(e,a){e.forEach((e=>{a.push(e.id),e.children&&Ft(e.children,a)}))}const Tt=(e,a)=>e?a.find((a=>a.name===e))??null:null,Et=(e,a)=>{if(!e)return null;let t=null;for(const o of e){if(null!==t)break;t=a.find((e=>e.name===o))??null}return t};var It=Object.freeze({__proto__:null,addTailControlSequences:Za,applyParams:et,applyRawParams:at,assignTreeLinks:Dt,breadthFirstSearch:function e(a,t,o=1,i="child"){const r=t(a)&&a,n=a[i];if(!r&&!n)return null;if(r)return{node:r,depth:o};let c=n.filter((e=>!e[i])).find((e=>t(e)));if(c)return{node:c,depth:o+1};let s=o;return n.some((a=>{const o=e(a,t,s+1,i??"child");return c=o?.node,s=o?.depth,o?.node})),c?{node:c,depth:s}:null},buildBcUrl:rt,buildSearchResultTree:function(e,a){const t={};return e.forEach((e=>{if(!a.includes(e.id))return;let o=e.parent;for(;o;)t[o.id]=!0,o=o.parent;t[e.id]=!0,e.children?.forEach((e=>{t[e.id]=!0}))})),e.filter((e=>!0===t[e.id]))},buildUrl:lt,checkShowCondition:Ct,createApiError:tt,createApiErrorObservable:ot,defaultBuildURL:ut,defaultParseURL:pt,deleteUndefinedFromObject:function(e){Object.keys(e).forEach((a=>{void 0===e[a]&&delete e[a]}))},escapedSrc:ct,flattenOperations:Nt,getBcChildren:vt,getDefaultViewForPrimary:Tt,getDefaultViewFromPrimaries:Et,getDescendants:Ft,getFieldTitle:function(e,a){return(t=e)&&null!==t.match(nt)?((e,a)=>e?e.replace(nt,((e,t)=>{const[o,i]=t.split(":");return String(a?.[o]||i||"")})):"")(e,a):e;var t},getFilterType:function(e){switch(e){case Oa.FieldType.dictionary:return za.equalsOneOf;case Oa.FieldType.checkbox:return za.specified;case Oa.FieldType.input:case Oa.FieldType.text:return za.contains;default:return za.equals}},getFilters:bt,getRouteFromString:mt,getSorters:yt,getTemplate:it,makeRelativeUrl:st,matchOperationRole:wt,parseBcCursors:dt,parseFilters:gt,parseSorters:ft,presort:function(e){const a=[];return e.filter((e=>1===e.level)).forEach((e=>{a.push(e.id),e.children&&Ft(e.children,a)})),a.map((a=>e.find((e=>e.id===a))))},splitBcUrl:function(e){const a=e.split("/"),t=[];for(let e=0;e<a.length;e+=2){const o=a[e],i=a[e+1],r=o&&i;t.push(r?`${o}/${i}`:o)}return t},splitIntoTokens:function(e,a){const t=a instanceof RegExp?a:ct(a);return e.split(t)}});const kt=[Oa.OperationTypeCrud.associate,Oa.OperationTypeCrud.fileUpload],Ot={id:void 0,name:null,url:null,widgets:[],columns:null,readOnly:!1,rowHeight:null,rowMeta:{},metaInProgress:{},popupData:{bcName:null},pendingDataChanges:{},infiniteWidgets:[],pendingValidationFailsFormat:Ia.old,pendingValidationFails:{},handledForceActive:{},selectedRow:null,ignoreHistory:null,systemNotifications:[],error:null,modalInvoke:null};var At=Object.freeze({__proto__:null,createDataReducerBuilderManager:e=>(new ua).addCase(P,((e,a)=>{e[a.payload.bcName]=a.payload.data})).addCase(j,((e,a)=>{e[a.payload.bcName]=[...e[a.payload.bcName]||ma,a.payload.dataItem]})).addCase(ue,((e,a)=>{const t=a.payload.dataItem,o=e[a.payload.bcName].findIndex((e=>e.id===t.id));e[a.payload.bcName][o]=t})).addCase(U,((e,a)=>{const t=a.payload.cursor;if(!t)return;const o=(e[a.payload.bcName]||ma).find((e=>e.id===t)),i={...o,id:t,vstamp:-1,_associate:o&&o._associate};a.payload.rowMeta.fields.find((e=>"id"===e.key&&!e.currentValue))||(a.payload.rowMeta.fields.filter((e=>"_associate"!==e.key)).forEach((e=>i[e.key]=e.currentValue)),e[a.payload.bcName]=o?e[a.payload.bcName].map((e=>e===o?i:e)):[...e[a.payload.bcName]||ma,i])})).addCase(le,((e,a)=>{e[`${a.payload.bcName}Delta`]=a.payload.records||[]})).addCase(I,((a,t)=>t.payload.isTab?a:e)).addCase(R,((e,a)=>{a.payload.bcNames?.forEach((a=>{delete e[a]}))})),createDepthDataReducerBuilderManager:e=>(new ua).addCase(P,((e,a)=>{!a.payload.depth||a.payload.depth<2||(e[a.payload.depth]=e[a.payload.depth]??{},e[a.payload.depth][a.payload.bcName]=a.payload.data)})).addCase(I,(a=>e)),createRouterReducerBuilderManager:e=>(new ua).addCase(N,((e,a)=>{const{isTab:t,location:o}=a.payload;return t?{...o,bcPath:o.bcPath||e.bcPath}:o})),createScreenReducerBuilderManager:e=>(new ua).addCase(T,((e,a)=>{const t={},o={},i={};a.payload.screen.meta?.bo.bc.forEach((e=>{t[e.name]=e;const a=ft(e.defaultSort),r=gt(e.defaultFilter);a&&(o[e.name]=a),r&&(i[e.name]=r)})),e.screenName=a.payload.screen.name,e.primaryView=a.payload.screen.meta?.primary??e.primaryView,e.primaryViews=a.payload.screen.meta?.primaries??e.primaryViews,e.views=a.payload.screen.meta?.views??e.views,e.bo={activeBcName:null,bc:t},e.sorters={...e.sorters,...o},e.filters={...e.filters,...i}})).addCase(E,((e,a)=>{e.screenName=a.payload.screenName,e.views=[]})).addCase(O,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!0})).addCase(V,((e,a)=>{const t=e.bo.bc[a.payload.bcName];t.page=(t.page??1)+1,t.loading=!0})).addCase(I,((e,a)=>{if(a.payload.isTab)return;const t={};Array.from(new Set(a.payload.widgets?.map((e=>e.bcName)))).filter((a=>e.bo.bc[a])).forEach((a=>{t[a]={...e.bo.bc[a],page:1}})),e.bo.bc={...e.bo.bc,...t}})).addCase(P,((e,a)=>{const t=e.bo.bc[a.payload.bcName];t.hasNext=a.payload.hasNext,t.loading=!1,e.cachedBc[a.payload.bcName]=a.payload.bcUrl})).addCase(M,((e,a)=>{const t=a.payload.bcName;Object.values(e.bo.bc).some((e=>e.name===t))&&(e.bo.bc[t].loading=!1,e.cachedBc[t]=a.payload.bcUrl)})).addCase(q,((e,a)=>{kt.includes(a.payload.operationType)||(e.bo.bc[a.payload.bcName].loading=!0)})).addCase(j,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1,e.bo.bc[a.payload.bcName].cursor=a.payload.dataItem.id,e.cachedBc[a.payload.bcName]=a.payload.bcUrl})).addCase(Z,((e,a)=>{const t={},o={};Object.entries(a.payload.cursorsMap).forEach((a=>{const[i,r]=a;t[i]={...e.bo.bc[i],cursor:r},o[i]=r}));const i=Object.values(t).map((e=>`${e.url}/:id`));Object.values(e.bo.bc).forEach((a=>{i.some((e=>a.url.includes(e)))&&!(a.name in t)&&(t[a.name]={...e.bo.bc[a.name],cursor:null},o[a.name]=null)})),Object.assign(e.bo.bc,t),Object.assign(e.cachedBc,o)})).addCase(ee,((e,a)=>{1===a.payload.depth?e.bo.bc[a.payload.bcName].cursor=a.payload.cursor:(e.bo.bc[a.payload.bcName].depthBc=e.bo.bc[a.payload.bcName].depthBc??{},e.bo.bc[a.payload.bcName].depthBc[a.payload.depth].cursor=a.payload.cursor)})).addCase(we,((e,a)=>{e.bo.bc[a.payload.bcName].cursor=a.payload.cursor})).addCase(ye,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!0,e.cachedBc[a.payload.bcName]=null})).addCase($e,((e,a)=>{const{bcName:t,filter:o}=a.payload,i=o,r=e.filters[t]||[],n=r.find((e=>e.fieldName===o.fieldName&&e.type===o.type)),c=n?r.map((e=>e===n?{...n,value:i.value}:e)):[...r,i];e.bo.bc[t].page=1,e.filters[t]=c})).addCase(Be,((e,a)=>{const{bcName:t,filter:o}=a.payload,i=(e.filters[t]||[]).filter((e=>e.fieldName!==o?.fieldName||e.type!==o.type)),r={...e.filters,[t]:i};i.length||delete r[t],e.bo.bc[a.payload.bcName].page=1,e.filters=r})).addCase(je,((e,a)=>{delete e.filters[a.payload.bcName],e.bo.bc[a.payload.bcName].page=1})).addCase(Le,((e,a)=>{e.sorters[a.payload.bcName]=Array.isArray(a.payload.sorter)?a.payload.sorter:[a.payload.sorter]})).addCase(We,((e,a)=>{e.bo.bc[a.payload.bcName].page=a.payload.page,e.bo.bc[a.payload.bcName].loading=!0})).addCase(ie,((e,a)=>{const t=e.bo.bc[a.payload.bcName]?.page??1;e.bo.bc[a.payload.bcName].page=a.payload.bcName===a.payload.calleeBCName?t:1,e.bo.bc[a.payload.bcName].loading=a.payload.bcName!==a.payload.calleeBCName})).addCase(G,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(x,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(K,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(ue,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(me,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})),createSessionReducerBuilderManager:e=>(new ua).addCase(w,(e=>{e.loginSpin=!0,e.errorMsg=null})).addCase(v,((e,a)=>{(e=Object.assign(e,a.payload)).loginSpin=!1,e.active=!0,e.logout=!1})).addCase(C,((e,a)=>{e.loginSpin=!1,e.errorMsg=a.payload.errorMsg})).addCase(D,(e=>{e.loginSpin=!1,e.active=!1,e.logout=!0})).addCase(Ze,((e,a)=>{e.debugMode=a.payload})).addCase(ca,((e,a)=>{e.pendingRequests?.push(a.payload.request)})).addCase(sa,((e,a)=>{e.pendingRequests=e.pendingRequests?.filter((e=>e.requestId!==a.payload.requestId))})).addCase(da,((e,a)=>{e.notifications.push(a.payload)})).addCase(la,((e,a)=>{const t=a.payload;e.notifications=e.notifications.filter((e=>!t.includes(e.key)))})).addCase(ta,(e=>{e.isMetaRefreshing=!0})).addCase(oa,(e=>{e.isMetaRefreshing=!1})).addCase(ia,(e=>{e.isMetaRefreshing=!1})),createViewReducerBuilderManager:e=>(new ua).addCase(I,((e,a)=>{a.payload.isTab||(e.rowMeta=Ot.rowMeta),Object.assign(e,a.payload)})).addCase(_,((e,a)=>{e.metaInProgress[a.payload.bcName]=!0})).addCase(V,((e,a)=>{const t=e.infiniteWidgets||[];void 0!==a.payload.widgetName&&t.push(a.payload.widgetName),e.infiniteWidgets=Array.from(new Set(t))})).addCase(q,((e,a)=>{a.payload.operationType===Oa.OperationTypeCrud.create&&(e.metaInProgress[a.payload.bcName]=!0)})).addCase(U,((e,a)=>{e.rowMeta[a.payload.bcName]=e.rowMeta[a.payload.bcName]??{},e.rowMeta[a.payload.bcName][a.payload.bcUrl]=a.payload.rowMeta,e.metaInProgress[a.payload.bcName]=!1})).addCase(j,((e,a)=>{e.selectedRow=Ot.selectedRow})).addCase(oe,((e,a)=>{const{bcName:t,bcUrl:o,currentRecordData:i,rowMeta:r,cursor:n}=a.payload,c={},s={},d={},l=[];r.fields.forEach((e=>{s[e.key]=e.currentValue,e.forceActive&&l.push(e.key)})),e.pendingDataChanges[t]=e.pendingDataChanges[t]??{};const p={...i,...e.pendingDataChanges[t][n]};Object.keys(p).forEach((e=>{void 0!==s[e]&&p[e]!==s[e]&&(d[e]=s[e])}));const u={...e.pendingDataChanges[t][n],...d};l.forEach((e=>{void 0!==u[e]&&(c[e]=u[e])})),e.handledForceActive[t]=e.handledForceActive[t]??{},e.handledForceActive[t][n]=e.handledForceActive[t][n]??{},Object.assign(e.handledForceActive[t][n],c),e.pendingDataChanges[t]=e.pendingDataChanges[t]??{},e.pendingDataChanges[t][n]=u,e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o]=r})).addCase(ae,((e,a)=>{const t=a.payload.bcName,o={...(e.pendingDataChanges[a.payload.bcName]||{})[a.payload.cursor]||{}||{},...a.payload.dataItem},i=a.payload.bcUrl,r=e.rowMeta[t]?.[i],n={},c=e.pendingValidationFailsFormat===Ia.target;Object.keys(o).forEach((e=>{const a=r?.fields.find((a=>a.required&&a.key===e)),t=null===o[e]||void 0===o[e]||""===o[e]||Array.isArray(o[e])&&0===Object.keys(o[e]).length;a&&t&&(n[e]="This field is mandatory")})),e.pendingDataChanges[a.payload.bcName]=e.pendingDataChanges[a.payload.bcName]??{},e.pendingDataChanges[a.payload.bcName][a.payload.cursor]=o,c?(e.pendingValidationFails=e.pendingValidationFails??{},e.pendingValidationFails[t]=e.pendingValidationFails[t]??{},e.pendingValidationFails[t][a.payload.cursor]=n):e.pendingValidationFails=n})).addCase(te,((e,a)=>{const t={...e.pendingDataChanges[a.payload.bcName]};a.payload.cursors.forEach(((e,o)=>{t[e]=a.payload.dataItems[o]})),e.pendingDataChanges[a.payload.bcName]=t})).addCase(ke,((e,a)=>{const t={...e.pendingDataChanges};a.payload.bcNames.forEach((e=>{const a={};Object.keys(t[e]||{}).forEach((e=>{a[e]={id:e,_associate:!1}})),t[e]=a}));const o=e.pendingValidationFailsFormat===Ia.target,i=e.pendingValidationFails?{...e.pendingValidationFails}:{};o&&a.payload.bcNames.forEach((e=>{i[e]={}})),e.pendingDataChanges=t,e.pendingValidationFails=o?i:Ot.pendingValidationFails})).addCase(Oe,((e,a)=>{})).addCase(Ae,((e,a)=>{})).addCase(L,((e,a)=>{e.metaInProgress[a.payload.bcName]=!1})).addCase($,((e,a)=>{e.metaInProgress[a.payload.bcName]=!1})).addCase(W,((e,a)=>{const{bcName:t,bcUrl:o,entityError:i}=a.payload,r={};i&&Object.entries(i.fields).forEach((([e,a])=>{r[e]=a})),e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o].errors=r})).addCase(me,((e,a)=>{const{bcName:t,bcUrl:o,entityError:i}=a.payload,r={};i&&Object.entries(i.fields).forEach((([e,a])=>{r[e]=a})),e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o].errors=r})).addCase(K,((e,a)=>{const{bcName:t,bcUrl:o,entityError:i}=a.payload,r={};i&&Object.entries(i.fields).forEach((([e,a])=>{r[e]=a})),e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o].errors=r})).addCase(G,((e,a)=>{const t=a.payload.bcName,o=a.payload.cursor,i=e.pendingValidationFailsFormat===Ia.target;e.pendingDataChanges[t]=e.pendingDataChanges[t]??{},e.pendingDataChanges[t][o]={},i?(e.pendingValidationFails=e.pendingValidationFails??{},e.pendingValidationFails[t]=e.pendingValidationFails[t]??{},e.pendingValidationFails[t][o]={}):e.pendingValidationFails=Ot.pendingValidationFails,e.handledForceActive[t]=e.handledForceActive[t]??{},e.handledForceActive[t][o]={}})).addCase(ue,((e,a)=>{const{bcName:t,cursor:o}=a.payload,i=e.pendingValidationFailsFormat===Ia.target;e.pendingDataChanges[t]=e.pendingDataChanges[t]??{},e.pendingDataChanges[t][o]={},i?(e.pendingValidationFails=e.pendingValidationFails??{},e.pendingValidationFails[t]=e.pendingValidationFails[t]??{},e.pendingValidationFails[t][o]={}):e.pendingValidationFails=Ot.pendingValidationFails,e.handledForceActive[t]=e.handledForceActive[t]??{},e.handledForceActive[t][o]={}})).addCase(Ne,((e,a)=>{const t={...e.pendingDataChanges};for(const o in e.pendingDataChanges)a.payload&&!a.payload.bcNames.includes(o)||(t[o]={});const o=e.pendingValidationFailsFormat===Ia.target;let i=e.pendingValidationFails?{...e.pendingValidationFails}:{};o&&(a.payload?.bcNames?.length>0?a.payload.bcNames.forEach((e=>{i[e]={}})):i=Ot.pendingValidationFails),e.pendingDataChanges=t,e.pendingValidationFails=o?i:Ot.pendingValidationFails})).addCase(ze,(e=>{e.pendingValidationFails=Ot.pendingValidationFails})).addCase(ie,((e,a)=>{const{bcName:t,calleeBCName:o,calleeWidgetName:i,associateFieldKey:r,assocValueKey:n,active:c,isFilter:s,type:d,widgetName:l}=a.payload;e.popupData={widgetName:l,type:d,bcName:t,calleeBCName:o,calleeWidgetName:i,associateFieldKey:r,assocValueKey:n,active:c,isFilter:s}})).addCase(re,((e,a)=>{const t=e.widgets?.find((e=>e.name===a.payload.widgetName))?.bcName;e.popupData={type:"file-upload",bcName:t,calleeBCName:t}})).addCase(ce,((e,a)=>{e.pickMap=a.payload.map})).addCase(se,(e=>{e.pickMap=null})).addCase(ne,(e=>{e.popupData={},e.popupData.bcName=null})).addCase(Pe,((e,a)=>{e.selectedRow={widgetName:a.payload.widgetName,rowId:a.payload.rowId}})).addCase(Me,((e,a)=>{e.selectedRow=null})).addCase(N,((e,a)=>{a.payload.isTab||(e.pendingDataChanges=Ot.pendingDataChanges),e.selectedRow=Ot.selectedRow})).addCase(_e,((e,a)=>{e.systemNotifications=e.systemNotifications??[],e.systemNotifications.push({type:a.payload.type,message:a.payload.message,id:e.systemNotifications?.length})})).addCase(Ue,((e,a)=>{e.systemNotifications=e.systemNotifications??[],e.systemNotifications=e.systemNotifications.filter((e=>e.id!==a.payload.id))})).addCase(qe,((e,a)=>{e.error=a.payload.error})).addCase(be,((e,a)=>{e.modalInvoke=a.payload})).addCase(Ge,((e,a)=>{e.modalInvoke=null})).addCase(Ke,(e=>{e.error=null})).addCase(z,(e=>{e.selectedRow=null})),dataInitialState:{},initialDepthDataState:{},initialRouterState:Xa,initialScreenState:{screenName:"",bo:{activeBcName:"",bc:{}},cachedBc:{},views:[],primaryView:"",primaryViews:null,filters:{},sorters:{}},initialSessionState:{devPanelEnabled:!1,activeRole:null,roles:null,firstName:"",lastName:"",login:"",debugMode:!1,exportStateEnabled:!1,active:!1,logout:!1,loginSpin:!1,errorMsg:null,screens:[],pendingRequests:[],notifications:[],isMetaRefreshing:!1},initialViewState:Ot});function Rt(e,a,t,i,r){const n=Object.values(Ga).includes(a?.type),c=[];return a&&c.push(z({bcName:r,postInvoke:a,widgetName:e})),n&&c.push(J({bcName:r,operationType:i,widgetName:e,postInvokeConfirm:a})),t&&c.push(H({bcName:r,operationType:i,widgetName:e,preInvoke:t})),c.map((e=>o(e)))}const St=[401,409,418,500],Pt={401:"Invalid credentials",403:"Access denied"},Mt=[I,D];function Vt(e,a,i,c,s=(e=>!0)){return e.pipe(r(t(...a)),r(s),n((()=>(i?.(),o(c)))),u(1))}const _t=(e,a)=>{const t=e[0]?.id,o=!a||!e?.some((e=>e.id===a));return{cursor:o?t:a,updatedCursor:o}},Ut=(e,a,t,r)=>{const{bcName:n}=e.payload,c=O.match(e)?e.payload.keepDelta:void 0,{cursor:s,updatedCursor:d}=_t(a,t);return d?o(Z({cursorsMap:{[n]:s},keepDelta:r||c})):i},$t=e=>Ua.includes(e),Bt=(e,a,t,i,r)=>{const{bcName:n}=e.payload;return c(...Object.entries(vt(n,a,t)).reduce(((t,[n,c])=>{const s=ie.match(e),d=a.find((e=>c.includes(e.name)&&!$t(e.type)&&r(e)));return(d||s)&&t.push(o(O({bcName:n,widgetName:d?.name,ignorePageLimit:e.payload?.ignorePageLimit||ie.match(e),keepDelta:i||e.payload?.keepDelta}))),t}),[]))},jt=(e,a,t)=>{const r=[e].map((e=>`${a[e].url}/:id`)),n=Object.keys(t).reduce(((e,t)=>{const o=a[t];return r.some((e=>o.url.includes(e)))&&e.push(o.name),e}),[]);return n.length?o(R({bcNames:n})):i};const Lt=t(q);var xt=Object.freeze({__proto__:null,apiErrorEpic:e=>e.pipe(r(Qe.match),n((e=>{const{error:a,callContext:t}=e.payload;return a.response?o(Xe({statusCode:a.response.status,error:a,callContext:t})):f.isCancel(a)?i:o(qe({error:{type:ka.NetworkError}}))}))),bcCancelCreateDataEpic:(e,a,{api:t})=>e.pipe(r(Lt),r((e=>wt(Oa.OperationTypeCrud.cancelCreate,e.payload,a.value))),n((e=>{const r=a.value,d=r.screen.screenName,l=e.payload.bcName,p=rt(l,!0,r),u=r.screen.bo.bc[l],m=u?.cursor,b={widgetName:e.payload.widgetName},y=r.data[l]?.find((e=>e.id===u.cursor)),h=r.view.pendingDataChanges[l]?.[u.cursor],g=y&&{...h,vstamp:y.vstamp},f={_action:e.payload.operationType},N={[e.payload.bcName]:null};return t.customAction(d,p,g,b,f).pipe(n((e=>{const a=e.postActions?.[0];return c(o(G({bcName:l,cursor:m})),o(Z({cursorsMap:N})),a?o(z({bcName:l,postInvoke:a,cursor:m,widgetName:b.widgetName})):i)})),s((e=>(console.error(e),c(o(x({bcName:l})),ot(e,b))))))}))),bcDeleteDataEpic:(e,a,{api:t})=>e.pipe(r(q.match),r((e=>wt(Oa.OperationTypeCrud.delete,e.payload,a.value))),n((e=>{const r=e.payload.widgetName,d=a.value,l=e.payload.bcName,p=d.screen.bo.bc[l].cursor,u=rt(l,!0,d),m={widgetName:e.payload.widgetName},b=d.view.pendingValidationFailsFormat===Ia.target;return t.deleteBcData(d.screen.screenName,u,m).pipe(n((e=>{const a=e.postActions?.[0];return c(b?o(Ne({bcNames:[l]})):i,o(O({bcName:l,widgetName:r})),a?o(z({bcName:l,postInvoke:a,cursor:p,widgetName:r})):i)})),s((e=>(console.error(e),c(o(x({bcName:l})),ot(e,m))))))}))),bcFetchDataEpic:(e,a,{api:d})=>e.pipe(r(t(O,A,ie,ye,We)),n((t=>{const r=a.value,{widgetName:l=""}=t.payload,{widgets:p,infiniteWidgets:u}=r.view,b=p?.filter((e=>e.bcName===t.payload.bcName)),y=p?.find((e=>e.name===l))??b?.[0];if(!y)return i;const h=t.payload.bcName,g=r.screen.bo.bc[h],{cursor:f,page:N=1}=g,w=(p?.find((e=>e.bcName===h))?.limit||g.limit)??5,v=r.screen.sorters[h];if(ie.match(t)&&h===t.payload.calleeBCName)return i;const C=p?.find((e=>e.bcName===y.bcName&&e.type===Oa.WidgetTypes.AssocListPopup&&function(e){return e.options?.hierarchy||e.options?.hierarchyFull}(e))),D=r.view.widgets?.find((e=>e.bcName===y.bcName&&e.type===Oa.WidgetTypes.AssocListPopup&&e.options?.hierarchyFull)),F=r.router.bcPath?.includes(`${h}/${f}`),T=rt(h,F,r),E={_page:N,_limit:w,...bt(D?[]:r.screen.filters[h]||[]),...yt(v)};if(ye.match(t)){(l&&u?.includes(l)||p?.filter((e=>e.bcName===h))?.find((e=>u?.includes(e.name)))?.name)&&(E._page=1,E._limit=w*N)}A.match(t)&&(E._page=t.payload.from||1,E._limit=(t.payload.to||N-E._page)*w),(O.match(t)&&t.payload.ignorePageLimit||C?.options?.hierarchyFull)&&(E._limit=0);const I=d.createCanceler(),k=Vt(e,Mt,I.cancel,M({bcName:h,bcUrl:T})),R=Vt(e,[we],I.cancel,M({bcName:h,bcUrl:T}),(e=>{const a=e.payload.bcName;return g.parentName===a})),S=d.fetchBcData(r.screen.screenName,T,E,I.cancelToken).pipe(n((e=>{const a=Ut(t,e.data,f,!!C),n=o(P({bcName:h,data:e.data,bcUrl:T,hasNext:e.hasNext})),s=o(_({widgetName:l,bcName:h})),d=a=>{if(a.showCondition?.bcName===r.screen.bo.bc[a.bcName]?.parentName){let e=r.screen.bo.bc[a.showCondition?.bcName]?.parentName,t=e===h;for(;!t&&e;)e=r.screen.bo.bc[e]?.parentName,t=e===h;if(t)return!0}const t=h===a.showCondition?.bcName?e.data:r.data[a.showCondition?.bcName],o=t?_t(t,r.screen.bo.bc[a.showCondition?.bcName]?.cursor).cursor:null;return Ct(a.showCondition,o,t,r.view.pendingDataChanges)};if(!function(e,a,t,o,i){const r=a.reduce(((e,a)=>a.bcName?(Array.isArray(e[a.bcName])||(e[a.bcName]=[]),e[a.bcName].push(a),e):e),{}),n=Object.keys(r),c=n.includes(e),s=e=>!!r[e]?.some((e=>{const a=o?.bcName===e.bcName;return i(e)&&!$t(e.type)||a})),d=a=>!!r[a]?.some((a=>a.showCondition.bcName===e));if(c&&s(e)||d(e))return!0;const l=a=>{const o=`${t[e].url}/:id`;return t[a].url.includes(o)};return n.some((a=>!!l(a)&&(s(a)||d(e))))}(h,p,r.screen.bo.bc,r.view.popupData,d))return c(a,n,s);const u=e.data?.length?Bt(t,p,r.screen.bo.bc,!!C,d):i,m=jt(h,r.screen.bo.bc,r.data);return c(a,m,n,s,u)})),s((e=>(console.error(e),c(o(M({bcName:t.payload.bcName,bcUrl:T})),ot(e))))));return m(k,R,S)}))),bcFetchRowMetaRequestEpic:(e,a,{api:t})=>e.pipe(r(_.match),n((i=>{const r=a.value,n=r.screen.screenName,l=i.payload.bcName,p=r.screen.bo.bc[l].cursor??"",u=rt(l,!0,r)??"",b=t.createCanceler(),y=Vt(e,Mt,b.cancel,$({bcName:l})),h=Vt(e,[we],b.cancel,$({bcName:l}),(e=>{const a=e.payload.bcName;return r.screen.bo.bc[l].parentName===a})),g=t.fetchRowMeta(n,u,void 0,b.cancelToken).pipe(d((e=>U({bcName:l,rowMeta:e,bcUrl:u,cursor:p}))),s((e=>(console.error(e),c(o($({bcName:l})),ot(e))))));return m(y,h,g)}))),bcLoadMoreEpic:(e,a,{api:t})=>e.pipe(r(V.match),n((i=>{const r=a.value,d=i.payload.bcName,l=r.screen.bo.bc[d],{cursor:p,page:u}=l,b=r.view.widgets.find((e=>e.bcName===d))?.limit||l.limit,y=r.router.bcPath?.includes(`${d}/${p}`),h=rt(d,y,r),g=r.screen.filters[d]||[],f=r.screen.sorters[d],N={_page:u,_limit:b,...bt(g),...yt(f)},w=t.createCanceler(),v=Vt(e,Mt,w.cancel,M({bcName:d,bcUrl:h})),C=t.fetchBcData(r.screen.screenName,h,N,w.cancelToken).pipe(n((e=>{const a=r.data[d]?.map((e=>e.id)),t=[...r.data[d],...e.data.filter((e=>!a.includes(e.id)))];return o(P({bcName:d,data:t,bcUrl:h,hasNext:e.hasNext}))})),s((e=>(console.error(e),c(o(M({bcName:d,bcUrl:h})),ot(e))))));return m(v,C)}))),bcNewDataEpic:(e,a,{api:t})=>e.pipe(r(q.match),r((e=>wt(Oa.OperationTypeCrud.create,e.payload,a.value))),n((e=>{const r=a.value,d=e.payload.bcName,l=rt(d,!1,r)??"",p={widgetName:e.payload.widgetName},u={_action:e.payload.operationType};return t.newBcData(r.screen.screenName,l,p,u).pipe(n((a=>{const t=a.row,n={id:null,vstamp:-1};a.row.fields.forEach((e=>{n[e.key]=e.currentValue}));const s=a.postActions?.[0],p=n.id;return c(o(j({bcName:d,dataItem:n,bcUrl:l})),o(U({bcName:d,bcUrl:`${l}/${p}`,rowMeta:t,cursor:p})),o(ae({bcName:d,bcUrl:rt(d,!0,r)??"",cursor:p,dataItem:{id:p}})),o(Pe({widgetName:e.payload.widgetName,rowId:p})),s?o(z({bcName:d,postInvoke:s,cursor:p,widgetName:e.payload.widgetName})):i)})),s((e=>(console.error(e),c(o(L({bcName:d})),ot(e,p))))))}))),bcSaveDataEpic:(e,a,{api:t})=>e.pipe(r(q.match),r((e=>wt(Oa.OperationTypeCrud.save,e.payload,a.value))),n((e=>{const r=a.value,d=e.payload.bcName,l=rt(d,!0,r)??"",p=e.payload.widgetName,u=r.screen.bo.bc[d].cursor,m=r.data[d].find((e=>e.id===u)),b={...r.view.pendingDataChanges[d]?.[u]},y=l&&r.view.rowMeta[d]?.[l],h=r.view.widgets.find((e=>e.name===p))?.options;if(y){const e=y.fields;for(const a in b)e.find((e=>e.key===a&&e.disabled))&&delete b[a]}const g=Object.entries(vt(d,r.view.widgets,r.screen.bo.bc)).map((e=>{const[a,t]=e;return O({bcName:a,widgetName:t[0]})})),f={widgetName:e.payload.widgetName};return t.saveBcData(r.screen.screenName,l,{...b,vstamp:m?.vstamp},f).pipe(n((a=>{const t=a.postActions?.[0],r=a.record;return c(o(ue({bcName:d,cursor:u,dataItem:r})),o(_({widgetName:p,bcName:d})),o(Me()),o(...g),t?o(z({bcName:d,widgetName:p,postInvoke:t,cursor:r.id})):i,e.payload.onSuccessAction?o(e.payload.onSuccessAction):i)})),s((a=>{console.error(a);let t=i;e.payload.onSuccessAction&&!h?.disableNotification&&(t=o(da({key:"data_autosave_undo",type:"buttonWarningNotification",message:"There are pending changes. Please save them or cancel.",duration:0,options:{buttonWarningNotificationOptions:{buttonText:"Cancel changes",actionsForClick:[Ne({bcNames:[d]})]}}})));let r=null,n=null;const s=a.response?.data;return a.response?.data===Object(a.response?.data)&&(n=s?.error?.entity??n,r=s?.error?.popup?.[0]??r),c(o(me({bcName:d,bcUrl:l,viewError:r,entityError:n})),t,ot(a,f))})))}))),bcSelectDepthRecordEpic:e=>e.pipe(r(ve.match),n((e=>{const{bcName:a,cursor:t,depth:i}=e.payload;return c(o(ee({bcName:a,depth:i,cursor:t})),o(O({bcName:a,depth:i+1,widgetName:"",ignorePageLimit:!0})))}))),bcSelectRecordEpic:(e,a)=>e.pipe(r(we.match),n((e=>{const{bcName:t,cursor:i}=e.payload,r=a.value.view.widgets,n=a.value.screen.bo.bc,s=Object.entries(vt(t,r,n)).map((a=>{const[t,o]=a;return O({bcName:t,widgetName:o[0],ignorePageLimit:e.payload.ignoreChildrenPageLimit,keepDelta:e.payload.keepDelta})}));return c(o(Z({cursorsMap:{[t]:i},keepDelta:e.payload.keepDelta})),o(_({widgetName:"",bcName:t})),s)}))),changeAssociationEpic:(e,a)=>e.pipe(r(Ce.match),n((e=>{const t=a.value,i=e.payload.dataItem._associate,r=e.payload.bcName,n=[o(ae({bcName:r,bcUrl:rt(r,!0,t),cursor:e.payload.dataItem.id,dataItem:e.payload.dataItem}))],s=t.view.widgets.find((a=>a.name===e.payload.widgetName)),d=e.payload.bcName===s.bcName,l={bcName:s.bcName,radio:s.options?.hierarchyRadio,fields:s.fields},p=s.options?.hierarchy,u=d?l:p?.find((a=>a.bcName===e.payload.bcName)),m=s.options?.hierarchyGroupSelection,b=s.options?.hierarchyTraverse,y=p?.slice(p.findIndex((a=>a.bcName===e.payload.bcName))+1).map((e=>e.bcName));m&&u.radio&&!i&&n.push(o(ke({bcNames:y})));const h=d?null:p?.find(((a,t)=>p[t+1]?.bcName===e.payload.bcName))||l,g=t.data[h?.bcName]?.find((e=>e.id===t.screen.bo.bc[h?.bcName].cursor));if(h&&b&&i&&(u.radio&&n.push(o(ke({bcNames:[h.bcName]}))),n.push(o(Ce({bcName:h.bcName,widgetName:e.payload.widgetName,dataItem:{...g,_associate:!0,_value:g?.[h.assocValueKey||e.payload.assocValueKey]},assocValueKey:e.payload.assocValueKey})))),h&&b&&!i){const a=t.data[e.payload.bcName],i=a.filter((a=>a.id!==e.payload.dataItem.id)).every((e=>!e._associate)),r=t.view.pendingDataChanges[e.payload.bcName],c=!r||!Object.values(r).find((t=>!0===t._associate&&t.id!==e.payload.dataItem.id&&a.find((e=>e.id===t.id))));i&&c&&n.push(o(Ce({bcName:h.bcName,widgetName:e.payload.widgetName,dataItem:{...g,_associate:!1},assocValueKey:e.payload.assocValueKey})))}return c(...n)}))),changeAssociationFullEpic:(e,a)=>e.pipe(r(Fe.match),n((e=>{const t=a.value,i=[],r=e.payload.assocValueKey||t.view.popupData?.assocValueKey,n=e.payload.bcName,s=t.data[n],d=e.payload.dataItem._associate,l=e.payload.depth||1,p=l-1,u=l>1&&s.find((a=>a.id===e.payload.dataItem.parentId)),m=t.view.widgets.find((a=>a.name===e.payload.widgetName)),b=m.options?.hierarchyTraverse,y=m.options?.hierarchyRadio,h=m.options?.hierarchyGroupDeselection,g=s.filter((e=>e.level===l&&(1===e.level||e.parentId===u?.id)));if(y&&h&&1===l)if(d){const a=t.view.pendingDataChanges[n],c=s.find((t=>{if(1===t.level&&t.id!==e.payload.dataItem.id){const e=a?.[t.id];if(e?._associate||!e&&t._associate)return!0}return!1}));c&&i.push(o(Fe({bcName:n,depth:l,widgetName:e.payload.widgetName,dataItem:{...c,_associate:!1},assocValueKey:r})))}else i.push(o(Ie({bcName:n,parentId:e.payload.dataItem.id,depth:l+1,assocValueKey:r,selected:!1})));if(i.push(o(ae({bcName:e.payload.bcName,bcUrl:rt(e.payload.bcName,!0,t),cursor:e.payload.dataItem.id,dataItem:e.payload.dataItem}))),p&&b&&d&&i.push(o(Fe({bcName:n,depth:p,widgetName:e.payload.widgetName,dataItem:{...u,_associate:!0,_value:u?.[r]},assocValueKey:r}))),p&&b&&!d){const a=t.view.pendingDataChanges[n],c=!a||!Object.values(a).find((a=>!0===a._associate&&a.id!==e.payload.dataItem.id&&g.find((e=>e.id===a.id)))),s=a&&Object.values(a)?.filter((e=>!1===e._associate)).map((e=>e.id));g.filter((a=>a.id!==e.payload.dataItem.id&&!s?.includes(a.id))).every((e=>!e._associate))&&c&&i.push(o(Fe({bcName:n,depth:p,widgetName:e.payload.widgetName,dataItem:{...u,_associate:!1},assocValueKey:r})))}return c(...i)}))),changeAssociationSameBcEpic:(e,a)=>e.pipe(r(De.match),n((e=>{const t=a.value,i=e.payload.bcName,r=[o(ae({bcName:i,bcUrl:rt(i,!0,t),cursor:e.payload.dataItem.id,dataItem:e.payload.dataItem}))],n=e.payload.dataItem._associate,s=e.payload.depth||1,d=s-1,l=t.view.widgets.find((a=>a.name===e.payload.widgetName)),p=l.options?.hierarchyTraverse,u=s>1?t.depthData[s]?.[i]:t.data[i],m=d?d>1?t.screen.bo.bc[i].depthBc?.[d]?.cursor:t.screen.bo.bc[i].cursor:null,b=m?d>1?t.depthData[d]?.[i]?.find((e=>e.id===m)):t.data[i].find((e=>e.id===m)):null;if(d&&p&&n&&r.push(o(De({bcName:i,depth:d,widgetName:e.payload.widgetName,dataItem:{...b,_associate:!0,_value:b?.[e.payload.assocValueKey]},assocValueKey:e.payload.assocValueKey}))),d&&p&&!n){u.filter((a=>a.id!==e.payload.dataItem.id)).every((e=>!e._associate))&&r.push(o(De({bcName:i,depth:d,widgetName:e.payload.widgetName,dataItem:{...b,_associate:!1},assocValueKey:e.payload.assocValueKey})))}return c(...r)}))),changeChildrenAssociationsEpic:(e,a,{api:t})=>e.pipe(r(Te.match),n((e=>{const t=a.value.data[e.payload.bcName];return o(te({bcName:e.payload.bcName,cursors:t.map((e=>e.id)),dataItems:t.map((a=>({...a,_value:a[e.payload.assocValueKey],_associate:e.payload.selected})))}))}))),changeChildrenAssociationsSameBcEpic:(e,a)=>e.pipe(r(Ee.match),n((e=>{const t=a.value,i=t.depthData[e.payload.depth]?.[e.payload.bcName]||[];return o(te({bcName:e.payload.bcName,cursors:i.map((e=>e.id)),dataItems:i.map((a=>({...a,_value:a[e.payload.assocValueKey],_associate:e.payload.selected})))}))}))),changeDescendantsAssociationsFullEpic:(e,a)=>e.pipe(r(Ie.match),n((e=>{const t=a.value,i=e.payload.depth,r=t.data[e.payload.bcName],n=(r||[]).filter((a=>a.level===i&&a.parentId===e.payload.parentId)),s=[o(te({bcName:e.payload.bcName,cursors:n.map((e=>e.id)),dataItems:n.map((a=>({...a,_value:a[e.payload.assocValueKey],_associate:e.payload.selected})))}))];return n.forEach((a=>{r.find((e=>e.parentId===a.id))&&s.push(o(Ie({...e.payload,parentId:a.id,depth:i+1})))})),c(...s)}))),changeLocationEpic:(e,a)=>e.pipe(r(N.match),n((e=>{const t=a.value;if(!t.session.active)return i;if(t.router.type===Ea.router)return o(Re(t.router));const r=t.screen.screenName,n=t.session.screens.find((e=>e.defaultScreen))?.name||t.session.screens[0]?.name,s=t.router.type===Ea.default?n:t.router.screenName;if(s!==r||e.payload.forceUpdate){const e=t.session.screens.find((e=>e.name===s));return o(e?T({screen:e}):E({screenName:s}))}const d=t.view.name,l=t.router.viewName,p=dt(t.router.bcPath)||{},u={};Object.entries(p).forEach((e=>{const[a,o]=e,i=t.screen.bo.bc[a];i&&i?.cursor===o||(u[a]=o)}));const m=Object.keys(u).length,b=l!==d,y=[];if(m&&y.push(o(Z({cursorsMap:u}))),b){const a=l?t.screen.views.find((e=>e.name===l)):Tt(t.screen.primaryView,t.screen.views)??Et(t.screen.primaryViews,t.screen.views)??t.screen.views[0];y.push(o(a?I({...a,isTab:e.payload.isTab}):k({viewName:l})))}return m&&!b&&Object.entries(p).forEach((e=>{const[a,i]=e;t.data[a].find((e=>e.id===i))||y.push(o(ye({bcName:a})))})),c(...y)}))),changeScreen:(e,a)=>e.pipe(r(T.match),l((e=>{const t=a.value,i=t.router.viewName,r=t.screen.views.find((e=>e.name===i)),n=i?null:Tt(t.screen.primaryView,t.screen.views)??Et(t.screen.primaryViews,t.screen.views),c=r||n||t.screen.views[0];return o(c?I(c):k({viewName:i}))}))),changeViewEpic:(e,a)=>e.pipe(r(I.match),l((e=>{const t=a.value,r=dt(t.router.bcPath)||{},n={};return Object.entries(r).forEach((e=>{const[a,o]=e,i=t.screen.bo.bc[a];i&&i.cursor===o||(n[a]=o)})),Object.keys(n).length?o(Z({cursorsMap:n})):i}))),clearPendingDataChangesAfterCursorChangeEpic:(e,a)=>e.pipe(r(Z.match),n((e=>{const t=a.value,r=dt(t.router.bcPath)||{},n={};return Object.entries(r).forEach((e=>{const[a,o]=e,i=t.screen.bo.bc[a];i&&i?.cursor===o||(n[a]=o)})),Object.keys(n).length?o(Z({cursorsMap:n})):i}))),downloadFileByUrlEpic:(e,a)=>e.pipe(r(Je.match),p((e=>{const{url:a}=e.payload,t=document.createElement("a");t.href=a,t.style.display="none",document.body.appendChild(t),setTimeout((()=>{t.click(),document.body.removeChild(t)}),100)})),n((()=>i))),downloadFileEpic:(e,a,{api:t})=>e.pipe(r(He.match),p((e=>{const{fileId:a}=e.payload,o=document.createElement("a");o.href=`${t.fileUploadEndpoint}?id=${encodeURIComponent(a)}`,o.style.display="none",document.body.appendChild(o),setTimeout((()=>{o.click(),document.body.removeChild(o)}),100)})),n((()=>i))),drillDownEpic:(e,a)=>e.pipe(r(X.match),l((e=>{const t=a.value,o=e.payload.url,r=[];switch(e.payload.drillDownType){case Oa.DrillDownType.external:window.location.href=o;break;case Oa.DrillDownType.externalNew:/^[a-z0-9]+:\/\//i.test(o)&&window.open(o);break;case Oa.DrillDownType.relative:window.location.href=`${window.location.origin}/${o}`;break;case Oa.DrillDownType.relativeNew:window.open(`${window.location.origin}/${o}`,"_blank");break;case Oa.DrillDownType.inner:default:const[e]=o.split("?"),a=new URL(o,window.location.origin),i=a.searchParams.get("filters"),n=a.searchParams.get("sorters");let c={},s={};try{c=JSON.parse(i)??c}catch{i&&console.warn("Failed to parse filters on drilldown"),c={}}try{s=JSON.parse(n)??s}catch{n&&console.warn("Failed to parse sorters on drilldown"),s={}}const d={};Object.keys(t.screen.filters).forEach((e=>{(""===c[e]||c[e])&&(d[e]=!0,r.push(je({bcName:e})))}));const l=pt(a),p=l.viewName;Object.entries(c).forEach((([e,a])=>{const t=gt(a)?.map((e=>({...e,viewName:p})));t?.forEach((a=>{d[e]=!0,r.push($e({bcName:e,filter:a}))}))})),Object.entries(s).forEach((([e,a])=>{const t=ft(a);r.push(Le({bcName:e,sorter:t})),d[e]=!0}));(function(e,a,t=[]){const o=[];if(!e&&!a)return null;if(!e)return Object.keys(a);if(!a)return Object.keys(e);const i=Object.keys(a);return i.forEach((i=>{e[i]===a[i]||t.includes(i)||o.push(i)})),Object.keys(e).forEach((e=>{i.includes(e)||o.push(e)})),o})(t.router,l,["params"]).length>0||Object.keys(d).forEach((e=>{r.push(ye({bcName:e}))})),r.push(N({location:pt(new URL(st(e),window.location.origin)),forceUpdate:!0}))}return r.length?c(r):i}))),fileUploadConfirmEpic:(e,a,{api:t})=>e.pipe(r(Ye.match),n((e=>{const r=a.value,d=e.payload.isPopup??!0,l=e.payload.bcName??r.view.popupData?.bcName,p=rt(l,!0,r),u=r.view.widgets.find((e=>e.bcName===l))?.name,m=e.payload.fileIds.map((e=>({id:e,_associate:!0,vstamp:0})));return t.associate(r.screen.screenName,p,m,null).pipe(n((e=>{const a=e.postActions?.[0],t=e.preInvoke;return c(o(G({bcName:l,cursor:null})),o(ye({bcName:l})),d?o(ne(null)):i,...Rt(u,a,t,Oa.OperationTypeCrud.save,l))})),s((e=>(console.error(e),ot(e)))))}))),getRowMetaByForceActiveEpic:(e,t,{api:d})=>e.pipe(r(ae.match),n((e=>{const r=t.value,l=r.view.url,{bcName:p,cursor:u,disableRetry:m}=e.payload;if(r.view.widgets.some((e=>e.bcName===p&&e.type===Oa.WidgetTypes.AssocListPopup&&(e.options?.hierarchySameBc||e.options?.hierarchyFull))))return i;const b=r.view.widgets.find((e=>e.name===r.view.popupData?.widgetName&&[Oa.WidgetTypes.PickListPopup,Oa.WidgetTypes.FlatTreePopup].includes(e.type)))&&!r.session.disableDeprecatedFeatures?.popupCloseAfterChangeData,y=rt(p,!0,r),h=r.view.pendingDataChanges[p]?.[u],g=r.view.handledForceActive[p]?.[u]||{},f=r.data[p]?.find((e=>e.id===u)),N=r.view.rowMeta[p]?.[y]?.fields;let w=null;const v=c(o(ne(null)),o(se(null)),o(je({bcName:p}))),C=N?.filter((e=>e.forceActive&&void 0!==h[e.key])).some((e=>{const a=h[e.key]!==g[e.key];return a&&(w=e.key),a})),D=a();return C&&!m?c(o(ca({request:{requestId:D,type:"force-active"}})),d.getRmByForceActive(r.screen.screenName,y,{...h,vstamp:f?.vstamp}).pipe(n((e=>{const a=[o(sa({requestId:D}))];return r.view.url===l&&a.push(o(oe({rowMeta:e,currentRecordData:f,bcName:p,bcUrl:y,cursor:u}))),b&&a.push(v),c(...a)})),s((e=>{console.error(e);let a=null,t=null;const n=e.response?.data;return e.response?.data===Object(e.response?.data)&&(t=n?.error?.entity,a=n?.error?.popup?.[0]),c(o(sa({requestId:D})),r.view.url===l?c(o(ae({bcName:p,bcUrl:rt(p,!0,r),cursor:u,dataItem:{[w]:f?.[w]},disableRetry:!0})),o(W({bcName:p,bcUrl:y,viewError:a,entityError:t}))):i,ot(e))})))):b?v:i}))),handleRouterEpic:(e,a,{api:t})=>e.pipe(r(Re.match),l((e=>{const a=e.payload.path,o=e.payload.params;return t.routerRequest(a,o).pipe(n((()=>i)),s((e=>(console.error(e),ot(e)))))}))),httpError401Epic:e=>e.pipe(r(Xe.match),r((e=>401===e.payload.statusCode)),d((e=>F(null)))),httpError409Epic:(e,a)=>e.pipe(r(Xe.match),r((e=>409===e.payload.statusCode)),d((e=>{const a=(e.payload.error.response?.data).error?.popup?.[0]||"";return da({key:"action_edit_error",message:a,type:"buttonWarningNotification",duration:0,options:{buttonWarningNotificationOptions:{buttonText:"OK"}}})}))),httpError418Epic:(e,a)=>e.pipe(r(Xe.match),r((e=>418===e.payload.statusCode)),n((e=>{const{error:t,callContext:r}=e.payload,n=[],s=t.response?.data;if(!s.error.popup)return i;const d={type:ka.BusinessError,message:s.error.popup[0]};if(n.push(o(qe({error:d}))),s.error.postActions?.[0]){const e=a.value.view.widgets.find((e=>e.name===r.widgetName)),t=e?.bcName;n.push(o(z({bcName:t,postInvoke:s.error.postActions[0],widgetName:e?.name})))}return c(...n)}))),httpError500Epic:(e,a)=>e.pipe(r(Xe.match),r((e=>500===e.payload.statusCode)),d((e=>{const a={type:ka.SystemError,details:e.payload.error.response?.statusText||"",error:e.payload.error};return qe({error:a})}))),httpErrorDefaultEpic:(e,a)=>e.pipe(r(Xe.match),r((e=>!St.includes(e.payload.statusCode))),d((e=>{const a={type:ka.BusinessError,code:e.payload.error.response?.status,details:e.payload.error.response?.data};return qe({error:a})}))),inlinePickListFetchDataEpic:(e,a,{api:t})=>e.pipe(r(S.match),n((i=>{const{bcName:r,searchSpec:c,searchString:d}=i.payload,l=a.value,p=rt(r,!1,l),u=t.createCanceler(),b=Vt(e,Mt,u.cancel,M({bcName:r,bcUrl:p})),y=t.fetchBcData(a.value.screen.screenName,p,{[c+".contains"]:d},u.cancelToken).pipe(n((e=>o(P({bcName:r,data:e.data,bcUrl:p})))),s((e=>(console.error(e),o(M({bcName:i.payload.bcName,bcUrl:p}))))));return m(b,y)}))),loginByAnotherRoleEpic:(e,a,{api:t})=>e.pipe(r(w.match),r((e=>!!e.payload?.role)),l((e=>{const i=e.payload.role??"",r=i&&i!==a.value.session.activeRole;return t.loginByRoleRequest(i).pipe(n((e=>{const a=[];if(r){const t=e.screens.find((e=>e.defaultScreen))||e.screens[0],o=Tt(t.primary,t.meta.views)??Et(t.primaries,t.meta.views)??t?.meta.views[0];o&&a.push(N({location:pt(new URL(o.url,window.location.origin))}))}return c([...a,v({devPanelEnabled:e.devPanelEnabled,activeRole:e.activeRole,roles:e.roles,screens:e.screens,firstName:e.firstName,lastName:e.lastName,login:e.login})])})),s((e=>{console.error(e);const a=e.response?Pt[e.response.status]||"Server application unavailable":"Empty server response";return c(o(C({errorMsg:a})),ot(e))})))}))),loginDoneEpic:(e,a)=>e.pipe(r(v.match),l((e=>{const t=a.value;return t.router.type===Ea.router?o(Re(t.router)):o(N({location:mt(window.location.hash.replace("#","")),forceUpdate:!0}))}))),loginDoneSessionEpic:(e,a)=>e.pipe(r(w.match),l((e=>i))),processPostInvokeConfirmEpic:(e,a)=>e.pipe(r(t(J,H)),n((e=>{const{bcName:a,operationType:t,widgetName:r}=e.payload,n=J.match(e)?e.payload.postInvokeConfirm:e.payload.preInvoke;switch(n.type){case Ga.confirm:case qa.info:case qa.error:case Ga.confirmText:return o(be({operation:{bcName:a,operationType:t,widgetName:r},confirmOperation:n}));default:return i}}))),processPostInvokeEpic:(e,a)=>e.pipe(r(z.match),n((e=>{const t=a.value;switch(e.payload.postInvoke.type){case Ka.drillDown:return o(X({...e.payload.postInvoke,route:t.router,widgetName:e.payload.widgetName}));case Ka.postDelete:{const a={[e.payload.bcName]:null},i=[Z({cursorsMap:a})];if(t.router.bcPath?.includes(`${e.payload.bcName}/`)){const a=t.router.bcPath.split(e.payload.bcName)[0]||"",o=`/screen/${t.router.screenName}/view/${t.router.viewName}/${a}`;i.push(N({location:pt(new URL(o,window.location.origin))}))}else i.push(O({bcName:e.payload.bcName,widgetName:e.payload.widgetName}));return o(...i)}case Ka.refreshBC:{const a=t.screen.bo,i=e.payload.postInvoke,r=i.bc,n=a.bc[i.bc],c=e.payload.widgetName||"",s=t.view.infiniteWidgets||[],d=t.view.widgets.some((e=>e.bcName===r&&s.includes(e.name)));return o(d?A({bcName:n?.name,widgetName:c,from:1,to:n?.page}):O({bcName:n?.name,widgetName:c}))}case Ka.showMessage:{const a=e.payload.postInvoke;return o(_e({type:a.messageType,message:a.messageText}))}case Ka.downloadFile:{const a=e.payload.postInvoke;return o(He({fileId:a.fileId}))}case Ka.downloadFileByUrl:{const a=e.payload.postInvoke;return o(Je({url:a.url}))}default:return i}}))),refreshMetaAndReloadPageEpic:(e,a)=>e.pipe(r(ra.match),l((()=>c(o(ta()),e.pipe(r(v.match),u(1),p((()=>location.reload())),l((()=>i))))))),refreshMetaEpic:(e,a,{api:t})=>e.pipe(r(ta.match),n((()=>{const e=a.value,{activeRole:o}=e.session;return t.refreshMeta().pipe(l((()=>c([oa(),F(null),w({login:"",password:"",role:o})]))),s((e=>c([C(e),ia(),tt(e)]))))}))),removeMultivalueTagEpic:(e,a)=>e.pipe(r(pe.match),n((e=>{const t=a.value,{bcName:r,cursor:n,popupBcName:s,associateFieldKey:d}=e.payload,l=t.view.widgets.find((e=>e.bcName===s&&Ua.includes(e.type)));let p=(t?.data[s]||[]).map((e=>{const a=t.view.pendingDataChanges[s]?.[e.id];return{...e,...a}}));const u=p.find((a=>a.id===e.payload.removedItem.id)),m=e.payload.dataItem.map((e=>e.id));let b=[];if(l?.options?.hierarchyGroupDeselection){l?.options?.hierarchyTraverse&&(p=Dt(p));const a=p.filter((e=>e.parentId===u?.id));b=[u?.id,...a.filter((e=>m.includes(e.id))).map((e=>e.id))],l?.options?.hierarchyTraverse&&(Ft(a,b),b=p.filter((e=>b.includes(e.id)&&m.includes(e.id))).map((e=>e.id)));const t=p.find((e=>e.id===u?.parentId)),i=p.filter((e=>e.parentId===t?.id)),r=i.every((e=>b.includes(e.id)||!m.includes(e.id)));if(t&&r)if(l?.options?.hierarchyTraverse){const a=[];Ft(i,a);if(a.every((e=>b.includes(e)||!m.includes(e))))return c(o(pe({...e.payload,removedItem:{id:t.id,value:null}})))}else b.push(t.id)}if(l?.options?.hierarchyFull)return o(ae({bcName:r,bcUrl:rt(r,!0,t),cursor:n,dataItem:{[d]:e.payload.dataItem.filter((e=>!b.includes(e.id)))}}));const y=t.session.disableDeprecatedFeatures?.secondDataChangeForAssocPopupWhenRemovingTagFromField;if(l?.options?.hierarchy){const a=l?.options?.hierarchy?.find((a=>t.view.pendingDataChanges[a.bcName]?.[e.payload.removedItem.id]))?.bcName??r;return c(y?i:o(ae({bcName:a,bcUrl:rt(a,!0,t),cursor:e.payload.removedItem.id,dataItem:{...e.payload.removedItem,_associate:!1}})),o(ae({bcName:r,bcUrl:rt(r,!0,t),cursor:n,dataItem:{[d]:e.payload.dataItem}})))}return c(y?i:o(ae({bcName:s,bcUrl:rt(s,!0,t),cursor:e.payload.removedItem.id,dataItem:{...e.payload.removedItem,_associate:!1}})),o(ae({bcName:r,bcUrl:rt(r,!0,t),cursor:n,dataItem:{[d]:e.payload.dataItem}})))}))),saveAssociationsActiveEpic:(e,a,{api:t})=>e.pipe(r(de.match),r((e=>a.value.view.popupData?.active)),l((e=>{const r=a.value,d=r.view.popupData?.calleeBCName,l=r.view.popupData?.calleeWidgetName,p=e.payload.bcNames,u=rt(d,!0,r),m=r.view.pendingDataChanges[p[0]]||{},b=p.length?{_bcName:p[p.length-1]}:{};return t.associate(r.screen.screenName,u,Object.values(m).filter((e=>e._associate)),b).pipe(n((e=>{const a=e.postActions[0],t=r.view.widgets.find((e=>e.bcName===d));return c(a?o(z({bcName:d,postInvoke:a,widgetName:t?.name})):i,o(Ne({bcNames:p})),o(ye({bcName:d,widgetName:l})))})),s((e=>(console.error(e),i))))}))),saveAssociationsPassiveEpic:(e,a)=>e.pipe(r(de.match),r((()=>!a.value.view.popupData?.active)),l((e=>{const t=a.value,{calleeBCName:i=e.payload.calleeBcName,associateFieldKey:r=e.payload.associateFieldKey}=t.view.popupData??{},n=t.screen.bo.bc[i].cursor,c=t.data[i].find((e=>e.id===n))[r]??[],s=[];e.payload.bcNames.forEach((e=>{const a=t.view.pendingDataChanges[e]||{};Object.entries(a).forEach((([e,a])=>{s.push(a)}))}));const d=s.filter((e=>!c.find((a=>a.id===e.id))&&e._associate)).map((e=>({id:e.id,options:{},value:e._value}))),l=c.filter((e=>{const a=s.find((a=>a.id===e.id));return!a||!1!==a?._associate})).concat(...d);return o(ae({bcName:i,bcUrl:rt(i,!0,t),cursor:n,dataItem:{[r]:l}}))}))),selectScreenFailEpic:e=>e.pipe(r(E.match),d((e=>da({type:"error",key:"selectScreenFail",message:"Screen is missing or unavailable for your role",options:{messageOptions:{screenName:e.payload.screenName}},duration:15})))),selectTableRowInitEpic:(e,a)=>e.pipe(r(Se.match),n((e=>{const t=[],i=a.value,{rowId:r}=e.payload,n=i.view.widgets.find((a=>a.name===e.payload.widgetName)),s=n?.bcName,d=i.screen.bo.bc[s]?.cursor,l=i.view.selectedRow;return r!==d&&t.push(o(we({bcName:s,cursor:r}))),l&&r===l.rowId&&n?.name===l.widgetName||t.push(o(Pe({widgetName:n?.name,rowId:r}))),c(...t)}))),selectViewEpic:(e,a)=>e.pipe(r(I.match),n((e=>{try{const t=a.value;return e.payload.isTab?function(e){const a={},t=e.data;return e.view.widgets.filter((e=>!Ua.includes(e.type))).forEach((o=>{if(o.bcName&&(!(o.bcName in t)||null===e.screen.bo.bc[o.bcName]?.cursor)){let i=o.bcName,r=e.screen.bo.bc[o.bcName].parentName;for(;r&&(!(r in t)||null===e.screen.bo.bc[r]?.cursor);)i=r,r=e.screen.bo.bc[r].parentName;a[i]||(a[i]=o)}})),Object.entries(a).map((([e,a])=>O({widgetName:a.name,bcName:e})))}(t):function(e){const a={};return e.view.widgets.filter((e=>!Ua.includes(e.type))).forEach((t=>{if(t.bcName){let o=t.bcName,i=e.screen.bo.bc[t.bcName].parentName;for(;i;)o=i,i=e.screen.bo.bc[i].parentName;a[o]||(a[o]=t)}})),Object.entries(a).map((([e,a])=>O({widgetName:a.name,bcName:e})))}(t)}catch(e){return console.error(`selectView Epic:: ${e}`),i}}))),selectViewFailEpic:(e,a)=>e.pipe(r(k.match),d((e=>da({type:"error",key:"selectViewFail",message:"View is missing or unavailable for your role",options:{messageOptions:{viewName:e.payload.viewName}},duration:15})))),sendOperationAssociateEpic:(e,a)=>e.pipe(r(q.match),r((e=>wt(Oa.OperationTypeCrud.associate,e.payload,a.value))),d((e=>{const t=a.value,o=rt(e.payload.bcName,!0,t);return"multiFileUpload"===Nt(t.view.rowMeta[e.payload.bcName]?.[o]?.actions).find((a=>a.type===e.payload.operationType)).subtype?re({widgetName:e.payload.widgetName}):ie({bcName:e.payload.bcKey?`${e.payload.bcKey}`:`${e.payload.bcName}Assoc`,calleeBCName:e.payload.bcName,active:!0,calleeWidgetName:e.payload.widgetName})}))),sendOperationEpic:(e,a,{api:t})=>e.pipe(r(q.match),r((e=>wt("none",e.payload,a.value))),n((e=>{const r=a.value,d=r.screen.screenName,{bcName:l,operationType:p,widgetName:u}=e.payload,m=e.payload.confirmOperation?.type||e.payload.confirm,b=rt(l,!0,r),y=r.screen.bo.bc[l],h=b&&r.view.rowMeta[l]?.[b],g=h?.fields,f=y.cursor,w=r.data[l]?.find((e=>e.id===y.cursor)),v=r.screen.filters[l],C=r.screen.sorters[l],D={...r.view.pendingDataChanges[l]?.[y.cursor]};for(const e in D)g.find((a=>a.key===e&&a.disabled))&&delete D[e];const F=w&&{...D,vstamp:w.vstamp},T=r.view.widgets?.find((e=>e.name===u))?.options?.actionGroups?.defaultSave===e.payload.operationType&&N.match(e.payload?.onSuccessAction?.type),E={_action:p,...bt(v),...yt(C)};m&&(E._confirm=m);const I={widgetName:e.payload.widgetName};return t.customAction(d,b,F,I,E).pipe(n((a=>{const t=a.postActions?.[0],r=a.record,n=a.preInvoke;return T?e?.payload?.onSuccessAction?c(o(Ne({bcNames:[l]})),o(e.payload.onSuccessAction)):i:c(o(G({bcName:l,cursor:f,dataItem:r})),o(ye({bcName:l})),...Rt(u,t,n,p,l))})),s((e=>{console.error(e);let a=null,t=null;const i=e.response?.data;return e.response?.data===Object(e.response?.data)&&(t=i?.error?.entity,a=i?.error?.popup?.[0]),c(o(K({bcName:l,bcUrl:b,viewError:a,entityError:t})),ot(e,I))})))}))),showAllTableRecordsInitEpic:(e,a)=>e.pipe(r(Ve.match),n((e=>{const t=[],{bcName:i,cursor:r}=e.payload,n=a.value.router;t.push(o(Z({cursorsMap:{[i]:null}})));const s=n.bcPath.slice(0,n.bcPath.indexOf(`${i}/${r}`)),d=ut({...n,bcPath:s});return t.push(o(ye({bcName:i}))),t.push(o(N({location:pt(new URL(d,window.location.origin))}))),c(...t)}))),showAssocPopupEpic:(e,a)=>e.pipe(r(ie.match),r((e=>!(!e.payload.calleeBCName||!e.payload.associateFieldKey))),n((e=>{const{bcName:t,calleeBCName:r}=e.payload,n=a.value,c=n.view.widgets.find((e=>e.bcName===t&&e.type===Oa.WidgetTypes.AssocListPopup)),s=n.screen.bo.bc[r]?.cursor,d=n.view.pendingDataChanges[r]?.[s],l=e.payload.associateFieldKey,p=d?.[l];if(!(c&&d&&p&&p)||c.options&&!c.options.hierarchyFull)return i;const u={};p.forEach((e=>{u[e.id]={id:e.id,_associate:!0,_value:e.value}}));const m=n.data[r]?.find((e=>e.id===s)),b=m?.[l]?.map((e=>e.id)),y=p.map((e=>e.id));return b&&b.forEach((e=>{y.includes(e)||(u[e]={id:e,_associate:!1})})),o(te({bcName:t,cursors:Object.keys(u),dataItems:Object.values(u)}))}))),showFileUploadPopupEpic:(e,a)=>e.pipe(r(q.match),r((e=>wt(Oa.OperationTypeCrud.fileUpload,e.payload,a.value))),n((e=>c(o(Z({cursorsMap:{[e.payload.bcName]:null}})),o(re({widgetName:e.payload.widgetName})))))),switchRoleEpic:(e,a)=>e.pipe(r(na.match),l((e=>c([F(null),w({login:"",password:"",role:e.payload.role})])))),userDrillDownChangeCursorsEpic:(e,a)=>e.pipe(r(Y.match),d((e=>{const t=a.value,o=t.view.widgets.find((a=>a.name===e.payload.widgetName)),i=t.screen.bo.bc[o?.bcName]?.cursor;return i!==e.payload.cursor?Z({cursorsMap:{[e.payload.bcName]:e.payload.cursor}}):aa}))),userDrillDownEpic:(e,a,{api:t})=>e.pipe(r(Y.match),l((e=>{const r=a.value,{bcName:d,fieldKey:l,cursor:p}=e.payload,u=rt(d,!0,r);return t.fetchRowMeta(r.screen.screenName,u).pipe(n((e=>{const a=e.fields.find((e=>e.key===l)),t=r.router,n=r.view.widgets.find((e=>e.bcName===d))?.fields.find((e=>e.key===l))?.drillDownKey,s=r.data[d]?.find((e=>e.id===p))?.[n];return s||a?.drillDown||a?.drillDown!==t.path?c(a?.drillDownType!==Oa.DrillDownType.inner?o(U({bcName:d,rowMeta:e,bcUrl:u,cursor:p})):i,o(Q({bcName:d,bcUrl:u,cursor:p})),o(X({url:s||a.drillDown,drillDownType:a.drillDownType,route:t}))):i})),s((e=>(console.error(e),ot(e)))))})))});function Wt(e){if(e.data?.redirectUrl){let a=e.data.redirectUrl;return a.startsWith("/")||a.match("^http(.?)://")||(a=`${window.location.pathname}#/${a}`),a.startsWith("/")&&!a.startsWith("//")&&(a=`${window.location.origin}${a}`),window.location.replace(a),!1}return!0}class qt{instance=f.create({responseType:"json",headers:{Pragma:"no-cache","Cache-Control":"no-cache, no-store, must-revalidate"}});constructor(e){this.instance=e}get(e,a,t){return b(this.instance.get(e,a)).pipe(y(Wt),d((e=>e.data)))}put(e,a,t){return b(this.instance.put(e,a)).pipe(y(Wt),d((e=>e.data)))}post(e,a,t,o){return b(this.instance.post(e,a)).pipe(y(Wt),d((e=>e.data)))}delete(e,a,t,o){return b(this.instance.delete(e,a)).pipe(y(Wt),d((e=>e.data)))}}class Kt{api$;constructor(e){this.api$=new qt(e)}routerRequest(e,a){return this.api$.get(at(e,a))}fetchBcData(e,a,t={},o){const i=0===t._limit,r=et(lt`data/${e}/`+a,{...t,_page:i?void 0:"_page"in t?t._page:1,_limit:i?void 0:"_limit"in t?t._limit:30});return this.api$.get(r,{cancelToken:o})}fetchBcDataAll(e,a,t={}){let o=1;return this.fetchBcData(e,a,{...t,_page:o}).pipe(h((r=>r.hasNext?this.fetchBcData(e,a,{...t,_page:++o}):i)),g(((e,a)=>[...e,...a.data]),[]))}fetchRowMeta(e,a,t,o){const i=et(lt`row-meta/${e}/`+a,t);return this.api$.get(i,{cancelToken:o}).pipe(d((e=>e.data.row)))}newBcData(e,a,t,o){const i=et(lt`row-meta-new/${e}/`+a,o);return this.api$.get(i,void 0,t).pipe(d((e=>e.data)))}saveBcData(e,a,t,o,i){const r=et(lt`data/${e}/`+a,i);return this.api$.put(r,{data:t},o).pipe(d((e=>e.data)))}deleteBcData(e,a="",t,o){const i=et(lt`data/${e}/`+a,o);return this.api$.delete(i,t).pipe(d((e=>e.data)))}customAction(e,a,t,o,i){const r=et(lt`custom-action/${e}/`+a,i);return this.api$.post(r,{data:t||{}},void 0,o).pipe(d((e=>e.data)))}associate(e,a,t,o){const i=Array.isArray(t)?t.map((e=>({id:e.id,vstamp:e.vstamp,associated:e._associate}))):t,r=et(lt`associate/${e}/`+a,o);return this.api$.post(r,i).pipe(d((e=>e.data)))}getRmByForceActive(e,a,t,o){const i=et(lt`row-meta/${e}/`+(a??""),o);return this.api$.post(i,{data:t}).pipe(d((e=>e.data.row)))}get fileUploadEndpoint(){const e=this.api$.instance;return e.defaults.baseURL?e.defaults.baseURL.endsWith("/")?`${e.defaults.baseURL}file`:`${e.defaults.baseURL}/file`:"/file"}refreshMeta(){return this.api$.get(lt`bc-registry/refresh-meta`)}loginByRoleRequest(e){return this.api$.get(lt`login?role=${e}`)}createCanceler(){let e;const a=new f.CancelToken((a=>{e=a}));return{cancel:e,cancelToken:a}}}function Gt(e,a,t){const o=e.view.pendingDataChanges,i=o[a]?.[t];return i&&!Object.keys(i).includes("_associate")&&Object.values(i).length>0}const zt={autosave:({getState:e,dispatch:a})=>t=>o=>{const i=e(),r=q.match(o),n=r&&xa.includes(o.payload.operationType),c=Se.match(o),s=!(r&&o.payload.operationType===Oa.OperationTypeCrud.save),d=r&&o.payload.bcName,l=Object.keys(i.view.pendingDataChanges).filter((e=>e!==d)).filter((e=>{return a=i,t=e,Object.keys(a.view.pendingDataChanges?.[t]??{}).some((e=>Gt(a,t,e)));var a,t})).length>0,p=n&&l,u=i.view.selectedRow,m=u&&c&&(u.widgetName!==o.payload.widgetName||u.rowId!==o.payload.rowId),b=i.view.widgets?.find((e=>e?.options?.actionGroups?.defaultSave)),y=i.screen.bo.bc?.[b?.bcName]?.cursor,h=i.view?.pendingDataChanges?.[b?.bcName]?.[y];if(b&&N.match(o)&&Object.keys(h||{}).length>0)return t(q({bcName:b.bcName,operationType:(b.options?.actionGroups).defaultSave,widgetName:b.name,onSuccessAction:o}));return s&&(p||m)?function(e,a,t){const o=a.getState(),i=a.dispatch,r=o.view.pendingDataChanges,n=Object.keys(r),c=e.payload?.bcName&&Gt(o,e.payload.bcName,o.screen.bo.bc[e.payload.bcName]?.cursor)?n.findIndex((a=>a===e.payload?.bcName)):n.findIndex((e=>Gt(o,e,o.screen.bo.bc[e]?.cursor))),s=n[c];if(c>-1&&n.splice(c,1),s){n.forEach((e=>{const a=o.view.widgets?.find((a=>a.bcName===e)),t=o.screen.bo.bc[e]?.cursor;Gt(o,e,t)&&i(q({bcName:e,operationType:Oa.OperationTypeCrud.save,widgetName:a?.name}))}));const a=o.view.widgets?.find((e=>e.bcName===s));return t(q({bcName:s,operationType:Oa.OperationTypeCrud.save,widgetName:a?.name,onSuccessAction:e}))}return t(e)}(o,{getState:e,dispatch:a},t):t(o)},requiredFields:({getState:e,dispatch:a})=>t=>o=>{const i=e();if(q.match(o)){const{bcName:e,operationType:r,widgetName:n}=o.payload,c=i.screen.bo.bc[e]?.cursor;if(c){const s=rt(e,!0,i),d=i.data[e]?.find((e=>e.id===c)),l=s&&i.view.rowMeta[e]?.[s],p=i.view.pendingDataChanges[e]?.[c],u=i.view.widgets.find((e=>e.name===n));if(function(e,a){let t=!1;if(!a)return console.error('rowMeta is missing in the middle of "sendOperation" action'),t;return t=Nt(a).some((a=>a.type===e&&a.autoSaveBefore)),t}(r,l?.actions)){const r={};i.view.widgets.filter((e=>e.bcName===u?.bcName)).forEach((e=>{const a=[...e.fields];e.fields&&e.fields.forEach((e=>{ja(e)&&e.fields.forEach((e=>a.push(e)))})),a.forEach((e=>{const a=l?.fields?.find((a=>a.key===e.key));r[e.key]||!a||a.hidden||(r[e.key]=a)}))}));const s=function(e,a,t){const o={};return t.forEach((t=>{const i=e?.[t.key],r=a?.[t.key],n=void 0!==r?r:i;let c=!1;(null==n||""===n||Array.isArray(n)&&!n.length||n&&"object"==typeof n&&!Object.keys(n).length)&&(c=!0),t.required&&c&&(o[t.key]=Array.isArray(n)?[]:null)})),Object.keys(o).length>0?o:null}(d,p,Object.values(r));return s&&_a.includes(u?.type)&&a(Se({widgetName:n,rowId:c})),t(s?ae({bcName:e,bcUrl:rt(e,!0,i),cursor:c,dataItem:s}):o)}if(function(e,a){if(e.view.pendingValidationFailsFormat!==Ia.target&&e.view.pendingValidationFails&&Object.keys(e.view.pendingValidationFails).length)return!0;let t=!1;const o=e.view.pendingValidationFails?.[a],i=o&&Object.keys(o);if(!i)return!1;let r=0;for(;r<i.length;r++)if(Object.keys(o[i[r]]).length){t=!0;break}return t}(i,e))return t(da({key:"requiredFieldsMissing",type:"buttonWarningNotification",message:"Required fields are missing",duration:0,options:{buttonWarningNotificationOptions:{buttonText:"Cancel changes",actionsForClick:[Ne(null),ze(null)]}}}))}}return t(o)},preInvoke:({getState:e})=>a=>t=>{if(q.match(t)){const o=e(),{operationType:i,widgetName:r,confirm:n}=t.payload,c=o.view.widgets.find((e=>e.name===r))?.bcName,s=rt(c,!0,o),d=s&&o.view.rowMeta[c]?.[s],l=d&&Nt(d.actions),p=l?.find((e=>e.type===i))?.preInvoke;return a(p&&!n?H({bcName:c,operationType:i,widgetName:r,preInvoke:p}):t)}return a(t)},popup:({getState:e})=>a=>t=>{if(ie.match(t)){const o=e(),i=t.payload.bcName,r=o.view.widgets.find((e=>e.bcName===i))?.options?.displayedValueKey,n=t.payload.assocValueKey??r;return a(r?ie({...t.payload,assocValueKey:n}):t)}return a(t)}};var Ht=Oa.DrillDownType,Jt=Oa.FieldType,Yt=Oa.OperationTypeCrud,Qt=Oa.PositionTypes,Xt=Oa.RecordSnapshotState,Zt=Oa.WidgetTypes;export{Kt as Api,Ta as AppNotificationType,ka as ApplicationErrorType,Ht as DrillDownType,Jt as FieldType,za as FilterType,Ga as OperationPostInvokeConfirmType,Ka as OperationPostInvokeType,qa as OperationPreInvokeType,Yt as OperationTypeCrud,La as PaginationMode,Ia as PendingValidationFailsFormat,Ua as PopupWidgetTypes,Qt as PositionTypes,Xt as RecordSnapshotState,Ea as RouteType,_a as TableLikeWidgetTypes,Zt as WidgetTypes,pa as actions,xa as coreOperations,xt as epics,Qa as interfaces,$a as isCustomWidget,Ba as isCustomWidgetConfiguration,Wa as isOperationGroup,Ja as isViewNavigationCategory,Ya as isViewNavigationGroup,Ha as isViewNavigationItem,ja as isWidgetFieldBlock,zt as middlewares,At as reducers,It as utils};
1
+ import{createAction as e,nanoid as a,isAnyOf as t}from"@reduxjs/toolkit";import{of as o,EMPTY as i,filter as r,mergeMap as n,concat as s,catchError as c,map as d,TimeoutError as l,delay as p,timeout as u,switchMap as m,tap as b,take as y,race as h,from as g,takeWhile as f,expand as N,reduce as w}from"rxjs";import v from"axios";const C=e("changeLocation"),D=e("login"),F=e("loginDone"),T=e("loginFail"),I=e("logout"),E=e("logoutDone"),k=e("selectScreen"),O=e("selectScreenFail"),A=e("selectView"),R=e("selectViewFail"),S=e("bcFetchDataRequest"),P=e("bcFetchDataPages"),M=e("bcClearData"),V=e("inlinePickListFetchDataRequest"),U=e("bcFetchDataSuccess"),_=e("bcFetchDataFail"),$=e("bcLoadMore"),B=e("bcFetchRowMeta"),j=e("bcFetchRowMetaSuccess"),L=e("bcFetchRowMetaFail"),x=e("bcNewData"),W=e("bcNewDataSuccess"),q=e("bcNewDataFail"),K=e("bcDeleteDataFail"),G=e("forceActiveChangeFail"),z=e("sendOperation"),H=e("sendOperationFail"),J=e("sendOperationSuccess"),Y=e("processPostInvoke"),Q=e("processPreInvoke"),X=e("processPostInvokeConfirm"),Z=e("userDrillDown"),ee=e("userDrillDownSuccess"),ae=e("drillDown"),te=e("bcChangeCursors"),oe=e("bcChangeDepthCursor"),ie=e("changeDataItem"),re=e("changeDataItems"),ne=e("forceActiveRmUpdate"),se=e("showViewPopup"),ce=e("showFileUploadPopup"),de=e("closeViewPopup"),le=e("viewPutPickMap"),pe=e("viewClearPickMap"),ue=e("saveAssociations"),me=e("cnangeAssociations"),be=e("removeMultivalueTag"),ye=e("bcSaveDataSuccess"),he=e("bcSaveDataFail"),ge=e("operationConfirmation"),fe=e("bcForceUpdate"),Ne=e("uploadFile"),we=e("uploadFileDone"),ve=e("uploadFileFailed"),Ce=e("bcCancelPendingChanges"),De=e("bcSelectRecord"),Fe=e("bcSelectDepthRecord"),Te=e("changeAssociations"),Ie=e("changeAssociationsSameBc"),Ee=e("changeAssociationFull"),ke=e("changeChildrenAssociations"),Oe=e("changeChildrenAssociationsSameBc"),Ae=e("changeDescendantsAssociationsFull"),Re=e("dropAllAssociations"),Se=e("dropAllAssociationsSameBc"),Pe=e("dropAllAssociationsFull"),Me=e("handleRouter"),Ve=e("selectTableRowInit"),Ue=e("selectTableRow"),_e=e("deselectTableRow"),$e=e("showAllTableRecordsInit"),Be=e("showNotification"),je=e("closeNotification"),Le=e("bcAddFilter"),xe=e("bcRemoveFilter"),We=e("bcRemoveAllFilters"),qe=e("bcAddSorter"),Ke=e("bcRemoveSorter"),Ge=e("bcChangePage"),ze=e("showViewError"),He=e("closeViewError"),Je=e("closeConfirmModal"),Ye=e("clearValidationFails"),Qe=e("downloadFile"),Xe=e("downloadFileByUrl"),Ze=e("bulkUploadFiles"),ea=e("apiError"),aa=e("httpError"),ta=e("switchDebugMode"),oa=e("exportState"),ia=e("emptyAction"),ra=e("refreshMeta"),na=e("refreshMetaDone"),sa=e("refreshMetaFail"),ca=e("refreshMetaAndReloadPage"),da=e("switchRole"),la=e("addPendingRequest"),pa=e("removePendingRequest"),ua=e("addNotification"),ma=e("removeNotifications"),ba=e("waitUntil");var ya=Object.freeze({__proto__:null,addNotification:ua,addPendingRequest:la,apiError:ea,bcAddFilter:Le,bcAddSorter:qe,bcCancelPendingChanges:Ce,bcChangeCursors:te,bcChangeDepthCursor:oe,bcChangePage:Ge,bcClearData:M,bcDeleteDataFail:K,bcFetchDataFail:_,bcFetchDataPages:P,bcFetchDataRequest:S,bcFetchDataSuccess:U,bcFetchRowMeta:B,bcFetchRowMetaFail:L,bcFetchRowMetaSuccess:j,bcForceUpdate:fe,bcLoadMore:$,bcNewData:x,bcNewDataFail:q,bcNewDataSuccess:W,bcRemoveAllFilters:We,bcRemoveFilter:xe,bcRemoveSorter:Ke,bcSaveDataFail:he,bcSaveDataSuccess:ye,bcSelectDepthRecord:Fe,bcSelectRecord:De,bulkUploadFiles:Ze,changeAssociation:Te,changeAssociationFull:Ee,changeAssociationSameBc:Ie,changeAssociations:me,changeChildrenAssociations:ke,changeChildrenAssociationsSameBc:Oe,changeDataItem:ie,changeDataItems:re,changeDescendantsAssociationsFull:Ae,changeLocation:C,clearValidationFails:Ye,closeConfirmModal:Je,closeNotification:je,closeViewError:He,closeViewPopup:de,deselectTableRow:_e,downloadFile:Qe,downloadFileByUrl:Xe,drillDown:ae,dropAllAssociations:Re,dropAllAssociationsFull:Pe,dropAllAssociationsSameBc:Se,emptyAction:ia,exportState:oa,forceActiveChangeFail:G,forceActiveRmUpdate:ne,handleRouter:Me,httpError:aa,inlinePickListFetchDataRequest:V,login:D,loginDone:F,loginFail:T,logout:I,logoutDone:E,operationConfirmation:ge,processPostInvoke:Y,processPostInvokeConfirm:X,processPreInvoke:Q,refreshMeta:ra,refreshMetaAndReloadPage:ca,refreshMetaDone:na,refreshMetaFail:sa,removeMultivalueTag:be,removeNotifications:ma,removePendingRequest:pa,saveAssociations:ue,selectScreen:k,selectScreenFail:O,selectTableRow:Ue,selectTableRowInit:Ve,selectView:A,selectViewFail:R,sendOperation:z,sendOperationFail:H,sendOperationSuccess:J,showAllTableRecordsInit:$e,showFileUploadPopup:ce,showNotification:Be,showViewError:ze,showViewPopup:se,switchDebugMode:ta,switchRole:da,uploadFile:Ne,uploadFileDone:we,uploadFileFailed:ve,userDrillDown:Z,userDrillDownSuccess:ee,viewClearPickMap:pe,viewPutPickMap:le,waitUntil:ba});class ha{reducers=[];matchers=[];defaultCaseReducer=void 0;addCase(e,a){return this.reducers.push([e,a]),this}removeCase(e){return this.reducers=this.reducers.filter((a=>a[0].type!==e.type)),this}replaceCase(e,a){return this.removeCase(e).addCase(e,a),this}addMatcher(e,a){return this.matchers.push([e,a]),this}addDefaultCase(e){return this.defaultCaseReducer=e,this}get builder(){return e=>{const a=this.reducers.reduce(((e,a)=>e.addCase(...a)),e),t=this.matchers.reduce(((e,a)=>e.addMatcher(...a)),a);return void 0!==this.defaultCaseReducer?t.addDefaultCase(this.defaultCaseReducer):t}}}const ga=[];var fa=Object.defineProperty,Na=Object.getOwnPropertyDescriptor,wa=Object.getOwnPropertyNames,va=Object.prototype.hasOwnProperty,Ca={};((e,a)=>{for(var t in a)fa(e,t,{get:a[t],enumerable:!0})})(Ca,{DrillDownType:()=>Ua,FieldType:()=>Ba,OperationTypeCrud:()=>Va,PositionTypes:()=>$a,RecordSnapshotState:()=>Ma,WidgetTypes:()=>_a});var Da,Fa,Ta,Ia,Ea,ka,Oa,Aa,Ra,Sa,Pa=(Da=Ca,((e,a,t,o)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let i of wa(a))!va.call(e,i)&&i!==t&&fa(e,i,{get:()=>a[i],enumerable:!(o=Na(a,i))||o.enumerable});return e})(fa({},"__esModule",{value:!0}),Da)),Ma=((Fa=Ma||{}).noChange="noChange",Fa.new="new",Fa.deleted="deleted",Fa),Va=((Ta=Va||{}).create="create",Ta.save="save",Ta.delete="delete",Ta.associate="associate",Ta.cancelCreate="cancel-create",Ta.fileUpload="file-upload",Ta),Ua=((Ia=Ua||{}).inner="inner",Ia.relative="relative",Ia.relativeNew="relativeNew",Ia.external="external",Ia.externalNew="externalNew",Ia),_a=((ka=_a||{}).Info="Info",ka.Form="Form",ka.List="List",ka.DataGrid="DataGrid",ka.AssocListPopup="AssocListPopup",ka.PickListPopup="PickListPopup",ka.HeaderWidget="HeaderWidget",ka.SecondLevelMenu="SecondLevelMenu",ka.ThirdLevelMenu="ThirdLevelMenu",ka.FourthLevelMenu="FourthLevelMenu",ka.WidgetCreator="WidgetCreator",ka.Pivot="Pivot",ka.DimFilter="DimFilter",ka.Text="Text",ka.FlatTree="FlatTree",ka.FlatTreePopup="FlatTreePopup",ka.ViewNavigation="ViewNavigation",ka.NavigationTabs="NavigationTabs",ka),$a=(e=>(e.Top="Top",e.Bottom="Bottom",e.TopAndBottom="TopAndBottom",e))($a||{}),Ba=((Ea=Ba||{}).number="number",Ea.input="input",Ea.monthYear="monthYear",Ea.date="date",Ea.dateTime="dateTime",Ea.dateTimeWithSeconds="dateTimeWithSeconds",Ea.checkbox="checkbox",Ea.checkboxSql="checkboxSql",Ea.DMN="DMN",Ea.pickList="pickList",Ea.inlinePickList="inline-pickList",Ea.dictionary="dictionary",Ea.hidden="hidden",Ea.text="text",Ea.percent="percent",Ea.fileUpload="fileUpload",Ea.money="money",Ea.comboCondition="combo-condition",Ea.richText="richText",Ea.printForm="printForm",Ea.multifield="multifield",Ea.multivalue="multivalue",Ea.multivalueHover="multivalueHover",Ea.hint="hint",Ea.radio="radio",Ea);!function(e){e.success="success",e.info="info",e.warning="warning",e.error="error"}(Oa||(Oa={})),function(e){e.screen="screen",e.default="default",e.router="router",e.invalid="invalid",e.unknown="unknown"}(Aa||(Aa={})),function(e){e.old="old",e.target="target"}(Ra||(Ra={})),function(e){e[e.BusinessError=0]="BusinessError",e[e.SystemError=1]="SystemError",e[e.NetworkError=2]="NetworkError"}(Sa||(Sa={}));const ja=[Pa.WidgetTypes.List,Pa.WidgetTypes.DataGrid,Pa.WidgetTypes.AssocListPopup,Pa.WidgetTypes.PickListPopup,Pa.WidgetTypes.FlatTree,Pa.WidgetTypes.FlatTreePopup],La=[Pa.WidgetTypes.PickListPopup,Pa.WidgetTypes.AssocListPopup,Pa.WidgetTypes.FlatTreePopup];function xa(e){return!!e&&!("component"in e)}function Wa(e){return e&&"component"in e}function qa(e){return!!e&&"blockId"in e}var Ka;!function(e){e.page="page",e.loadMore="loadMore"}(Ka||(Ka={}));const Ga=[Pa.OperationTypeCrud.create,Pa.OperationTypeCrud.save,Pa.OperationTypeCrud.delete,Pa.OperationTypeCrud.associate,Pa.OperationTypeCrud.cancelCreate,Pa.OperationTypeCrud.fileUpload];function za(e){return Array.isArray(e.actions)}var Ha,Ja,Ya,Qa;function Xa(e){return!!e&&"viewName"in e}function Za(e){return!!e&&"categoryName"in e}function et(e){return!!e&&"child"in e&&!("categoryName"in e)}!function(e){e.confirm="confirm",e.info="info",e.error="error"}(Ha||(Ha={})),function(e){e.refreshBC="refreshBC",e.downloadFile="downloadFile",e.downloadFileByUrl="downloadFileByUrl",e.drillDown="drillDown",e.openPickList="openPickList",e.showMessage="showMessage",e.postDelete="postDelete",e.waitUntil="waitUntil",e.drilldownAndWaitUntil="drilldownAndWaitUntil"}(Ja||(Ja={})),function(e){e.confirm="confirm",e.confirmText="confirmText"}(Ya||(Ya={})),function(e){e.range="range",e.equals="equals",e.greaterThan="greaterThan",e.lessThan="lessThan",e.greaterOrEqualThan="greaterOrEqualThan",e.lessOrEqualThan="lessOrEqualThan",e.contains="contains",e.specified="specified",e.specifiedBooleanSql="specifiedBooleanSql",e.equalsOneOf="equalsOneOf",e.containsOneOf="containsOneOf"}(Qa||(Qa={}));var at=Object.freeze({__proto__:null,get AppNotificationType(){return Oa},get ApplicationErrorType(){return Sa},DrillDownType:Pa.DrillDownType,FieldType:Pa.FieldType,get FilterType(){return Qa},get OperationPostInvokeConfirmType(){return Ya},get OperationPostInvokeType(){return Ja},get OperationPreInvokeType(){return Ha},OperationTypeCrud:Pa.OperationTypeCrud,get PaginationMode(){return Ka},get PendingValidationFailsFormat(){return Ra},PopupWidgetTypes:La,PositionTypes:Pa.PositionTypes,RecordSnapshotState:Pa.RecordSnapshotState,get RouteType(){return Aa},TableLikeWidgetTypes:ja,WidgetTypes:Pa.WidgetTypes,coreOperations:Ga,isCustomWidget:xa,isCustomWidgetConfiguration:Wa,isOperationGroup:za,isViewNavigationCategory:Za,isViewNavigationGroup:et,isViewNavigationItem:Xa,isWidgetFieldBlock:qa});const tt={type:Aa.default,path:"/",search:"",params:null,screenName:null};function ot(e){return e.includes("?")?e+"&":e+"?"}function it(e,a){return a?rt(e,function(e){const a={...e};return Object.keys(a).reduce(((e,a)=>(e[a]||"number"==typeof e[a]||delete e[a],e)),a)}(a)):e}function rt(e,a){if(!a)return e;const t=new URLSearchParams(a).toString();return`${ot(e)}${t&&`${t}`}`}function nt(e,a={widgetName:"unknown"}){if(e.isAxiosError)return ea({error:e,callContext:a})}function st(e,a){const t=nt(e,a);return t?o(t):i}function ct(e,...a){let t="";for(let o=0;o<a.length;o++)t+=e[o],t+="${"+o+"}";return t+=e[e.length-1],t}function dt(e,a=!1,t){const o=t.screen.bo.bc,i=o[e];if(!i)return null;const r=[i.cursor&&a?`${i.name}/${i.cursor}`:i.name];let n=i;for(;n.parentName;)n=o[n.parentName],r.push(`${n.name}/${n.cursor??null}`);return r.reverse().join("/")}const lt=/\${([^{}]+)}/g;function pt(e){return new RegExp(`(${e?.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")})`,"gi")}function ut(e){return e.startsWith("/")?e:`/${e}`}function mt(e){if(!e)return null;const a={},t=e.split("/");for(let e=0;e<t.length;e+=2)t[e+1]&&(a[t[e]]=t[e+1]);return a}function bt(e,...a){let t="";for(let o=0;o<a.length;o++){t+=e[o];const i=a[o];if("number"==typeof i)t+=i.toString(10);else{if("string"!=typeof i){const t=ct(e,a);throw new Error(`Неверный тип подстановочного знака в ${t}, index: ${o}, value: ${JSON.stringify(i)}`)}t+=encodeURIComponent(i)}}return t+=e[e.length-1],t}function yt(e){let a=e.pathname;a.startsWith("/")&&(a=a.substring(1)),a.endsWith("/")&&(a=a.substring(0,a.length-1)),a?.includes("&")&&!a?.includes("?")&&(a=a.substring(0,a.indexOf("&")));const t={};e.searchParams.forEach(((e,a)=>t[a]=e));const o=a.split("/").map(decodeURIComponent);let i=Aa.unknown,r=null,n=null,s=null;if(o.length>0&&"router"===o[0])i=Aa.router;else if(1===o.length)i=Aa.default;else if(o.length>=2&&"screen"===o[0]){let e=2;i=Aa.screen,r=o[1],o.length>=4&&"view"===o[2]&&(e+=2,n=o[3]),s=o.slice(e).map(encodeURIComponent).join("/")}return{type:i,path:0===a.length||a.startsWith("/")?a:`/${a}`,search:e.search,params:t,screenName:r,viewName:n,bcPath:s}}function ht(e){return`/screen/${e.screenName}/view/${e.viewName}/${e.bcPath}`}const gt=e=>yt(new URL(e,window.location.origin));function ft(e){if(!e||!e.length)return null;const a={};return e.forEach((e=>{if(e.type===Qa.range){const t=e.value;t[0]&&(a[`${e.fieldName}.${Qa.greaterOrEqualThan}`]=String(t[0])),t[1]&&(a[`${e.fieldName}.${Qa.lessOrEqualThan}`]=String(t[1]))}else{let t=String(e.value);if(Array.isArray(e.value)){t=`[${e.value.map((e=>`"${e}"`))}]`}const o=e.fieldName?".":"";a[`${e.fieldName}${o}${e.type}`]=t}})),a}function Nt(e){if(!e||!e.length)return null;const a={};return e.forEach(((e,t)=>{a[`_sort.${t}.${e.direction}`]=e.fieldName})),a}const wt=e=>{try{return JSON.parse(e)}catch(e){return console.warn(e),null}};function vt(e=""){const a=[],t=new URLSearchParams(e);return Object.keys(Object.fromEntries(t)).forEach((o=>{const[i,r]=o.split(".");if(i&&r&&t.get(o)){let e=t.getAll(o);r===Qa.containsOneOf||r===Qa.equalsOneOf?(1===e.length&&(e=wt(e[0])??e),e=Array.isArray(e)?e:[]):e=Array.isArray(e)?e[0]:e,a.push({fieldName:i,type:r,value:e})}else if(e){let e=t.getAll(o);1===e.length&&(e=wt(e[0])??e[0]),a.push({fieldName:"",type:o,value:e})}})),a.length?a:null}function Ct(e){if(!e||!e.length)return null;const a=[],t=new URLSearchParams(e);return Array.from(t.entries()).map((([e,a])=>{const[t,o]=e.split(".").slice(1);return{fieldName:a,order:Number.parseInt(t,10),direction:o}})).sort(((e,a)=>e.order-a.order)).forEach((e=>{a.push({fieldName:e.fieldName,direction:e.direction})})),a}function Dt(e){const a=[];return e?.forEach((e=>{if(za(e)){e.actions.forEach((e=>{a.push(e)}))}else a.push(e)})),a}function Ft(e,a,t){if(a.operationType===e)return!0;const o=dt(a.bcName,!0,t),i=Dt(t.view.rowMeta[a.bcName]?.[o]?.actions).find((e=>e.type===a.operationType));return"none"===e?Ga.every((e=>e!==a.operationType&&e!==i?.actionRole)):i?.actionRole===e}function Tt(e,a,t){const o={};return a.filter((e=>e.bcName)).forEach((a=>{const i=[];i.push(a.bcName);let r=t[a.bcName].parentName;for(;r;)i.push(r),r=t[r].parentName;i.filter((a=>t[a].parentName===e)).forEach((e=>{o[e]=[...o[e]||[],a.name]}))})),a.filter((e=>e.options?.hierarchy)).forEach((a=>{const[t,i]=function(e,a){const t=a?.options?.hierarchy?.map((e=>e.bcName));if(e!==a.bcName&&!t?.includes(e))return[];const o=t?.findIndex((a=>a===e)),i=t?.[o+1];return[i,a.name]}(e,a);t&&(o[t]=[...o[t]||[],i])})),o}function It(e,a,t,o){const{bcName:i,isDefault:r,params:n}=e||{};if(!e||Array.isArray(e)||r)return!0;const s=a&&t?.find((e=>e.id===a));if(!s)return!1;const c=s?.[n?.fieldKey],d=o?.[i]?.[a]?.[n?.fieldKey];return void 0!==d?d===n?.value:c===n?.value}function Et(e){const a=e.map((e=>({...e}))),t={},o=[];return a.forEach((i=>{if(!i.parentId||"0"===i.parentId)return;let r=t[i.parentId];if("number"!=typeof r&&(r=e.findIndex((e=>e.id===i.parentId)),t[i.parentId]=r),-1===r)return o.push(i.parentId),void console.warn(`Record with [id] = ${i.id} has [parentId] = ${i.parentId}, but no matching parent record exist. Check the service for this BC.`);i.parent=a[r],a[r].children?a[r]?.children?.push(i):a[r].children=[i]})),o.length?a.filter((e=>!o.includes(e.parentId))):a}function kt(e,a){e.forEach((e=>{a.push(e.id),e.children&&kt(e.children,a)}))}const Ot=(e,a)=>e?a.find((a=>a.name===e))??null:null,At=(e,a)=>{if(!e)return null;let t=null;for(const o of e){if(null!==t)break;t=a.find((e=>e.name===o))??null}return t};var Rt=Object.freeze({__proto__:null,addTailControlSequences:ot,applyParams:it,applyRawParams:rt,assignTreeLinks:Et,breadthFirstSearch:function e(a,t,o=1,i="child"){const r=t(a)&&a,n=a[i];if(!r&&!n)return null;if(r)return{node:r,depth:o};let s=n.filter((e=>!e[i])).find((e=>t(e)));if(s)return{node:s,depth:o+1};let c=o;return n.some((a=>{const o=e(a,t,c+1,i??"child");return s=o?.node,c=o?.depth,o?.node})),s?{node:s,depth:c}:null},buildBcUrl:dt,buildSearchResultTree:function(e,a){const t={};return e.forEach((e=>{if(!a.includes(e.id))return;let o=e.parent;for(;o;)t[o.id]=!0,o=o.parent;t[e.id]=!0,e.children?.forEach((e=>{t[e.id]=!0}))})),e.filter((e=>!0===t[e.id]))},buildUrl:bt,checkShowCondition:It,createApiError:nt,createApiErrorObservable:st,defaultBuildURL:ht,defaultParseURL:yt,deleteUndefinedFromObject:function(e){Object.keys(e).forEach((a=>{void 0===e[a]&&delete e[a]}))},escapedSrc:pt,flattenOperations:Dt,getBcChildren:Tt,getDefaultViewForPrimary:Ot,getDefaultViewFromPrimaries:At,getDescendants:kt,getFieldTitle:function(e,a){return(t=e)&&null!==t.match(lt)?((e,a)=>e?e.replace(lt,((e,t)=>{const[o,i]=t.split(":");return String(a?.[o]||i||"")})):"")(e,a):e;var t},getFilterType:function(e){switch(e){case Pa.FieldType.dictionary:return Qa.equalsOneOf;case Pa.FieldType.checkbox:return Qa.specified;case Pa.FieldType.input:case Pa.FieldType.text:return Qa.contains;default:return Qa.equals}},getFilters:ft,getRouteFromString:gt,getSorters:Nt,getTemplate:ct,makeRelativeUrl:ut,matchOperationRole:Ft,parseBcCursors:mt,parseFilters:vt,parseSorters:Ct,presort:function(e){const a=[];return e.filter((e=>1===e.level)).forEach((e=>{a.push(e.id),e.children&&kt(e.children,a)})),a.map((a=>e.find((e=>e.id===a))))},splitBcUrl:function(e){const a=e.split("/"),t=[];for(let e=0;e<a.length;e+=2){const o=a[e],i=a[e+1],r=o&&i;t.push(r?`${o}/${i}`:o)}return t},splitIntoTokens:function(e,a){const t=a instanceof RegExp?a:pt(a);return e.split(t)}});const St=[Pa.OperationTypeCrud.associate,Pa.OperationTypeCrud.fileUpload],Pt={id:void 0,name:null,url:null,widgets:[],columns:null,readOnly:!1,rowHeight:null,rowMeta:{},metaInProgress:{},popupData:{bcName:null},pendingDataChanges:{},infiniteWidgets:[],pendingValidationFailsFormat:Ra.old,pendingValidationFails:{},handledForceActive:{},selectedRow:null,ignoreHistory:null,systemNotifications:[],error:null,modalInvoke:null};var Mt=Object.freeze({__proto__:null,createDataReducerBuilderManager:e=>(new ha).addCase(U,((e,a)=>{e[a.payload.bcName]=a.payload.data})).addCase(W,((e,a)=>{e[a.payload.bcName]=[...e[a.payload.bcName]||ga,a.payload.dataItem]})).addCase(ye,((e,a)=>{const t=a.payload.dataItem,o=e[a.payload.bcName].findIndex((e=>e.id===t.id));e[a.payload.bcName][o]=t})).addCase(j,((e,a)=>{const t=a.payload.cursor;if(!t)return;const o=(e[a.payload.bcName]||ga).find((e=>e.id===t)),i={...o,id:t,vstamp:-1,_associate:o&&o._associate};a.payload.rowMeta.fields.find((e=>"id"===e.key&&!e.currentValue))||(a.payload.rowMeta.fields.filter((e=>"_associate"!==e.key)).forEach((e=>i[e.key]=e.currentValue)),e[a.payload.bcName]=o?e[a.payload.bcName].map((e=>e===o?i:e)):[...e[a.payload.bcName]||ga,i])})).addCase(me,((e,a)=>{e[`${a.payload.bcName}Delta`]=a.payload.records||[]})).addCase(A,((a,t)=>t.payload.isTab?a:e)).addCase(M,((e,a)=>{a.payload.bcNames?.forEach((a=>{delete e[a]}))})),createDepthDataReducerBuilderManager:e=>(new ha).addCase(U,((e,a)=>{!a.payload.depth||a.payload.depth<2||(e[a.payload.depth]=e[a.payload.depth]??{},e[a.payload.depth][a.payload.bcName]=a.payload.data)})).addCase(A,(a=>e)),createRouterReducerBuilderManager:e=>(new ha).addCase(C,((e,a)=>{const{isTab:t,location:o}=a.payload;return t?{...o,bcPath:o.bcPath||e.bcPath}:o})),createScreenReducerBuilderManager:e=>(new ha).addCase(k,((e,a)=>{const t={},o={},i={};a.payload.screen.meta?.bo.bc.forEach((e=>{t[e.name]=e;const a=Ct(e.defaultSort),r=vt(e.defaultFilter);a&&(o[e.name]=a),r&&(i[e.name]=r)})),e.screenName=a.payload.screen.name,e.primaryView=a.payload.screen.meta?.primary??e.primaryView,e.primaryViews=a.payload.screen.meta?.primaries??e.primaryViews,e.views=a.payload.screen.meta?.views??e.views,e.bo={activeBcName:null,bc:t},e.sorters={...e.sorters,...o},e.filters={...e.filters,...i}})).addCase(O,((e,a)=>{e.screenName=a.payload.screenName,e.views=[]})).addCase(S,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!0})).addCase($,((e,a)=>{const t=e.bo.bc[a.payload.bcName];t.page=(t.page??1)+1,t.loading=!0})).addCase(A,((e,a)=>{if(a.payload.isTab)return;const t={};Array.from(new Set(a.payload.widgets?.map((e=>e.bcName)))).filter((a=>e.bo.bc[a])).forEach((a=>{t[a]={...e.bo.bc[a],page:1}})),e.bo.bc={...e.bo.bc,...t}})).addCase(U,((e,a)=>{const t=e.bo.bc[a.payload.bcName];t.hasNext=a.payload.hasNext,t.loading=!1,e.cachedBc[a.payload.bcName]=a.payload.bcUrl})).addCase(_,((e,a)=>{const t=a.payload.bcName;Object.values(e.bo.bc).some((e=>e.name===t))&&(e.bo.bc[t].loading=!1,e.cachedBc[t]=a.payload.bcUrl)})).addCase(z,((e,a)=>{St.includes(a.payload.operationType)||(e.bo.bc[a.payload.bcName].loading=!0)})).addCase(W,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1,e.bo.bc[a.payload.bcName].cursor=a.payload.dataItem.id,e.cachedBc[a.payload.bcName]=a.payload.bcUrl})).addCase(te,((e,a)=>{const t={},o={};Object.entries(a.payload.cursorsMap).forEach((a=>{const[i,r]=a;t[i]={...e.bo.bc[i],cursor:r},o[i]=r}));const i=Object.values(t).map((e=>`${e.url}/:id`));Object.values(e.bo.bc).forEach((a=>{i.some((e=>a.url.includes(e)))&&!(a.name in t)&&(t[a.name]={...e.bo.bc[a.name],cursor:null},o[a.name]=null)})),Object.assign(e.bo.bc,t),Object.assign(e.cachedBc,o)})).addCase(oe,((e,a)=>{1===a.payload.depth?e.bo.bc[a.payload.bcName].cursor=a.payload.cursor:(e.bo.bc[a.payload.bcName].depthBc=e.bo.bc[a.payload.bcName].depthBc??{},e.bo.bc[a.payload.bcName].depthBc[a.payload.depth].cursor=a.payload.cursor)})).addCase(De,((e,a)=>{e.bo.bc[a.payload.bcName].cursor=a.payload.cursor})).addCase(fe,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!0,e.cachedBc[a.payload.bcName]=null})).addCase(Le,((e,a)=>{const{bcName:t,filter:o}=a.payload,i=o,r=e.filters[t]||[],n=r.find((e=>e.fieldName===o.fieldName&&e.type===o.type)),s=n?r.map((e=>e===n?{...n,value:i.value}:e)):[...r,i];e.bo.bc[t].page=1,e.filters[t]=s})).addCase(xe,((e,a)=>{const{bcName:t,filter:o}=a.payload,i=(e.filters[t]||[]).filter((e=>e.fieldName!==o?.fieldName||e.type!==o.type)),r={...e.filters,[t]:i};i.length||delete r[t],e.bo.bc[a.payload.bcName].page=1,e.filters=r})).addCase(We,((e,a)=>{delete e.filters[a.payload.bcName],e.bo.bc[a.payload.bcName].page=1})).addCase(qe,((e,a)=>{e.sorters[a.payload.bcName]=Array.isArray(a.payload.sorter)?a.payload.sorter:[a.payload.sorter]})).addCase(Ge,((e,a)=>{e.bo.bc[a.payload.bcName].page=a.payload.page,e.bo.bc[a.payload.bcName].loading=!0})).addCase(se,((e,a)=>{const t=e.bo.bc[a.payload.bcName]?.page??1;e.bo.bc[a.payload.bcName].page=a.payload.bcName===a.payload.calleeBCName?t:1,e.bo.bc[a.payload.bcName].loading=a.payload.bcName!==a.payload.calleeBCName})).addCase(J,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(K,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(H,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(ye,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})).addCase(he,((e,a)=>{e.bo.bc[a.payload.bcName].loading=!1})),createSessionReducerBuilderManager:e=>(new ha).addCase(D,(e=>{e.loginSpin=!0,e.errorMsg=null})).addCase(F,((e,a)=>{(e=Object.assign(e,a.payload)).loginSpin=!1,e.active=!0,e.logout=!1})).addCase(T,((e,a)=>{e.loginSpin=!1,e.errorMsg=a.payload.errorMsg})).addCase(I,(e=>{e.loginSpin=!1,e.active=!1,e.logout=!0})).addCase(ta,((e,a)=>{e.debugMode=a.payload})).addCase(la,((e,a)=>{e.pendingRequests?.push(a.payload.request)})).addCase(pa,((e,a)=>{e.pendingRequests=e.pendingRequests?.filter((e=>e.requestId!==a.payload.requestId))})).addCase(ua,((e,a)=>{e.notifications.push(a.payload)})).addCase(ma,((e,a)=>{const t=a.payload;e.notifications=e.notifications.filter((e=>!t.includes(e.key)))})).addCase(ra,(e=>{e.isMetaRefreshing=!0})).addCase(na,(e=>{e.isMetaRefreshing=!1})).addCase(sa,(e=>{e.isMetaRefreshing=!1})),createViewReducerBuilderManager:e=>(new ha).addCase(A,((e,a)=>{a.payload.isTab||(e.rowMeta=Pt.rowMeta),Object.assign(e,a.payload)})).addCase(B,((e,a)=>{e.metaInProgress[a.payload.bcName]=!0})).addCase($,((e,a)=>{const t=e.infiniteWidgets||[];void 0!==a.payload.widgetName&&t.push(a.payload.widgetName),e.infiniteWidgets=Array.from(new Set(t))})).addCase(z,((e,a)=>{a.payload.operationType===Pa.OperationTypeCrud.create&&(e.metaInProgress[a.payload.bcName]=!0)})).addCase(j,((e,a)=>{e.rowMeta[a.payload.bcName]=e.rowMeta[a.payload.bcName]??{},e.rowMeta[a.payload.bcName][a.payload.bcUrl]=a.payload.rowMeta,e.metaInProgress[a.payload.bcName]=!1})).addCase(W,((e,a)=>{e.selectedRow=Pt.selectedRow})).addCase(ne,((e,a)=>{const{bcName:t,bcUrl:o,currentRecordData:i,rowMeta:r,cursor:n}=a.payload,s={},c={},d={},l=[];r.fields.forEach((e=>{c[e.key]=e.currentValue,e.forceActive&&l.push(e.key)})),e.pendingDataChanges[t]=e.pendingDataChanges[t]??{};const p={...i,...e.pendingDataChanges[t][n]};Object.keys(p).forEach((e=>{void 0!==c[e]&&p[e]!==c[e]&&(d[e]=c[e])}));const u={...e.pendingDataChanges[t][n],...d};l.forEach((e=>{void 0!==u[e]&&(s[e]=u[e])})),e.handledForceActive[t]=e.handledForceActive[t]??{},e.handledForceActive[t][n]=e.handledForceActive[t][n]??{},Object.assign(e.handledForceActive[t][n],s),e.pendingDataChanges[t]=e.pendingDataChanges[t]??{},e.pendingDataChanges[t][n]=u,e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o]=r})).addCase(ie,((e,a)=>{const t=a.payload.bcName,o={...(e.pendingDataChanges[a.payload.bcName]||{})[a.payload.cursor]||{}||{},...a.payload.dataItem},i=a.payload.bcUrl,r=e.rowMeta[t]?.[i],n={},s=e.pendingValidationFailsFormat===Ra.target;Object.keys(o).forEach((e=>{const a=r?.fields.find((a=>a.required&&a.key===e)),t=null===o[e]||void 0===o[e]||""===o[e]||Array.isArray(o[e])&&0===Object.keys(o[e]).length;a&&t&&(n[e]="This field is mandatory")})),e.pendingDataChanges[a.payload.bcName]=e.pendingDataChanges[a.payload.bcName]??{},e.pendingDataChanges[a.payload.bcName][a.payload.cursor]=o,s?(e.pendingValidationFails=e.pendingValidationFails??{},e.pendingValidationFails[t]=e.pendingValidationFails[t]??{},e.pendingValidationFails[t][a.payload.cursor]=n):e.pendingValidationFails=n})).addCase(re,((e,a)=>{const t={...e.pendingDataChanges[a.payload.bcName]};a.payload.cursors.forEach(((e,o)=>{t[e]=a.payload.dataItems[o]})),e.pendingDataChanges[a.payload.bcName]=t})).addCase(Re,((e,a)=>{const t={...e.pendingDataChanges};a.payload.bcNames.forEach((e=>{const a={};Object.keys(t[e]||{}).forEach((e=>{a[e]={id:e,_associate:!1}})),t[e]=a}));const o=e.pendingValidationFailsFormat===Ra.target,i=e.pendingValidationFails?{...e.pendingValidationFails}:{};o&&a.payload.bcNames.forEach((e=>{i[e]={}})),e.pendingDataChanges=t,e.pendingValidationFails=o?i:Pt.pendingValidationFails})).addCase(Se,((e,a)=>{})).addCase(Pe,((e,a)=>{})).addCase(q,((e,a)=>{e.metaInProgress[a.payload.bcName]=!1})).addCase(L,((e,a)=>{e.metaInProgress[a.payload.bcName]=!1})).addCase(G,((e,a)=>{const{bcName:t,bcUrl:o,entityError:i}=a.payload,r={};i&&Object.entries(i.fields).forEach((([e,a])=>{r[e]=a})),e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o].errors=r})).addCase(he,((e,a)=>{const{bcName:t,bcUrl:o,entityError:i}=a.payload,r={};i&&Object.entries(i.fields).forEach((([e,a])=>{r[e]=a})),e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o].errors=r})).addCase(H,((e,a)=>{const{bcName:t,bcUrl:o,entityError:i}=a.payload,r={};i&&Object.entries(i.fields).forEach((([e,a])=>{r[e]=a})),e.rowMeta[t]=e.rowMeta[t]??{},e.rowMeta[t][o].errors=r})).addCase(J,((e,a)=>{const t=a.payload.bcName,o=a.payload.cursor,i=e.pendingValidationFailsFormat===Ra.target;e.pendingDataChanges[t]=e.pendingDataChanges[t]??{},e.pendingDataChanges[t][o]={},i?(e.pendingValidationFails=e.pendingValidationFails??{},e.pendingValidationFails[t]=e.pendingValidationFails[t]??{},e.pendingValidationFails[t][o]={}):e.pendingValidationFails=Pt.pendingValidationFails,e.handledForceActive[t]=e.handledForceActive[t]??{},e.handledForceActive[t][o]={}})).addCase(ye,((e,a)=>{const{bcName:t,cursor:o}=a.payload,i=e.pendingValidationFailsFormat===Ra.target;e.pendingDataChanges[t]=e.pendingDataChanges[t]??{},e.pendingDataChanges[t][o]={},i?(e.pendingValidationFails=e.pendingValidationFails??{},e.pendingValidationFails[t]=e.pendingValidationFails[t]??{},e.pendingValidationFails[t][o]={}):e.pendingValidationFails=Pt.pendingValidationFails,e.handledForceActive[t]=e.handledForceActive[t]??{},e.handledForceActive[t][o]={}})).addCase(Ce,((e,a)=>{const t={...e.pendingDataChanges};for(const o in e.pendingDataChanges)a.payload&&!a.payload.bcNames.includes(o)||(t[o]={});const o=e.pendingValidationFailsFormat===Ra.target;let i=e.pendingValidationFails?{...e.pendingValidationFails}:{};o&&(a.payload?.bcNames?.length>0?a.payload.bcNames.forEach((e=>{i[e]={}})):i=Pt.pendingValidationFails),e.pendingDataChanges=t,e.pendingValidationFails=o?i:Pt.pendingValidationFails})).addCase(Ye,(e=>{e.pendingValidationFails=Pt.pendingValidationFails})).addCase(se,((e,a)=>{const{bcName:t,calleeBCName:o,calleeWidgetName:i,associateFieldKey:r,assocValueKey:n,active:s,isFilter:c,type:d,widgetName:l}=a.payload;e.popupData={widgetName:l,type:d,bcName:t,calleeBCName:o,calleeWidgetName:i,associateFieldKey:r,assocValueKey:n,active:s,isFilter:c}})).addCase(ce,((e,a)=>{const t=e.widgets?.find((e=>e.name===a.payload.widgetName))?.bcName;e.popupData={type:"file-upload",bcName:t,calleeBCName:t}})).addCase(le,((e,a)=>{e.pickMap=a.payload.map})).addCase(pe,(e=>{e.pickMap=null})).addCase(de,(e=>{e.popupData={},e.popupData.bcName=null})).addCase(Ue,((e,a)=>{e.selectedRow={widgetName:a.payload.widgetName,rowId:a.payload.rowId}})).addCase(_e,((e,a)=>{e.selectedRow=null})).addCase(C,((e,a)=>{a.payload.isTab||(e.pendingDataChanges=Pt.pendingDataChanges),e.selectedRow=Pt.selectedRow})).addCase(Be,((e,a)=>{e.systemNotifications=e.systemNotifications??[],e.systemNotifications.push({type:a.payload.type,message:a.payload.message,id:e.systemNotifications?.length})})).addCase(je,((e,a)=>{e.systemNotifications=e.systemNotifications??[],e.systemNotifications=e.systemNotifications.filter((e=>e.id!==a.payload.id))})).addCase(ze,((e,a)=>{e.error=a.payload.error})).addCase(ge,((e,a)=>{e.modalInvoke=a.payload})).addCase(Je,((e,a)=>{e.modalInvoke=null})).addCase(He,(e=>{e.error=null})).addCase(Y,(e=>{e.selectedRow=null})),dataInitialState:{},initialDepthDataState:{},initialRouterState:tt,initialScreenState:{screenName:"",bo:{activeBcName:"",bc:{}},cachedBc:{},views:[],primaryView:"",primaryViews:null,filters:{},sorters:{}},initialSessionState:{devPanelEnabled:!1,activeRole:null,roles:null,firstName:"",lastName:"",login:"",debugMode:!1,exportStateEnabled:!1,active:!1,logout:!1,loginSpin:!1,errorMsg:null,screens:[],pendingRequests:[],notifications:[],isMetaRefreshing:!1},initialViewState:Pt});function Vt(e,a,t,i,r){const n=Object.values(Ya).includes(a?.type),s=[];return a&&s.push(Y({bcName:r,postInvoke:a,widgetName:e})),n&&s.push(X({bcName:r,operationType:i,widgetName:e,postInvokeConfirm:a})),t&&s.push(Q({bcName:r,operationType:i,widgetName:e,preInvoke:t})),s.map((e=>o(e)))}const Ut=(e,a,t)=>{const{timeout:i=5e3,timeoutMaxRequests:r=5}=t,{successCondition_bcName:s,successCondition_fieldKey:c,successCondition_value:d}=t,l=Math.floor(+i/+r);return((e,a,t)=>{const o=a.screen.bo.bc[e],i=a.router.bcPath?.includes(`${e}/${o.cursor}`),r=dt(e,i,a),n={_page:o.page??1,_limit:o.limit??5,...ft(a.screen.filters[e]||[]),...Nt(a.screen.sorters[e])};return t.fetchBcData(a.screen.screenName,r,n)})(s,e,a).pipe(n((i=>((e,a,t)=>e.some((e=>e[a]===t)))(i.data,c,d)?o(i):o(null).pipe(p(l),n((()=>Ut(e,a,t)))))),u(+i))};const _t=[401,409,418,500],$t={401:"Invalid credentials",403:"Access denied"},Bt=[A,I];function jt(e,a,i,s,c=(e=>!0)){return e.pipe(r(t(...a)),r(c),n((()=>(i?.(),o(s)))),y(1))}const Lt=(e,a)=>{const t=e[0]?.id,o=!a||!e?.some((e=>e.id===a));return{cursor:o?t:a,updatedCursor:o}},xt=(e,a,t,r)=>{const{bcName:n}=e.payload,s=S.match(e)?e.payload.keepDelta:void 0,{cursor:c,updatedCursor:d}=Lt(a,t);return d?o(te({cursorsMap:{[n]:c},keepDelta:r||s})):i},Wt=e=>La.includes(e),qt=(e,a,t,i,r)=>{const{bcName:n}=e.payload;return s(...Object.entries(Tt(n,a,t)).reduce(((t,[n,s])=>{const c=se.match(e),d=a.find((e=>s.includes(e.name)&&!Wt(e.type)&&r(e)));return(d||c)&&t.push(o(S({bcName:n,widgetName:d?.name,ignorePageLimit:e.payload?.ignorePageLimit||se.match(e),keepDelta:i||e.payload?.keepDelta}))),t}),[]))},Kt=(e,a,t)=>{const r=[e].map((e=>`${a[e].url}/:id`)),n=Object.keys(t).reduce(((e,t)=>{const o=a[t];return r.some((e=>o.url.includes(e)))&&e.push(o.name),e}),[]);return n.length?o(M({bcNames:n})):i};const Gt=t(z);var zt=Object.freeze({__proto__:null,apiErrorEpic:e=>e.pipe(r(ea.match),n((e=>{const{error:a,callContext:t}=e.payload;return a.response?o(aa({statusCode:a.response.status,error:a,callContext:t})):v.isCancel(a)?i:o(ze({error:{type:Sa.NetworkError}}))}))),bcCancelCreateDataEpic:(e,a,{api:t})=>e.pipe(r(Gt),r((e=>Ft(Pa.OperationTypeCrud.cancelCreate,e.payload,a.value))),n((e=>{const r=a.value,d=r.screen.screenName,l=e.payload.bcName,p=dt(l,!0,r),u=r.screen.bo.bc[l],m=u?.cursor,b={widgetName:e.payload.widgetName},y=r.data[l]?.find((e=>e.id===u.cursor)),h=r.view.pendingDataChanges[l]?.[u.cursor],g=y&&{...h,vstamp:y.vstamp},f={_action:e.payload.operationType},N={[e.payload.bcName]:null};return t.customAction(d,p,g,b,f).pipe(n((e=>{const a=e.postActions?.[0];return s(o(J({bcName:l,cursor:m})),o(te({cursorsMap:N})),a?o(Y({bcName:l,postInvoke:a,cursor:m,widgetName:b.widgetName})):i)})),c((e=>(console.error(e),s(o(K({bcName:l})),st(e,b))))))}))),bcDeleteDataEpic:(e,a,{api:t})=>e.pipe(r(z.match),r((e=>Ft(Pa.OperationTypeCrud.delete,e.payload,a.value))),n((e=>{const r=e.payload.widgetName,d=a.value,l=e.payload.bcName,p=d.screen.bo.bc[l].cursor,u=dt(l,!0,d),m={widgetName:e.payload.widgetName},b=d.view.pendingValidationFailsFormat===Ra.target;return t.deleteBcData(d.screen.screenName,u,m).pipe(n((e=>{const a=e.postActions?.[0];return s(b?o(Ce({bcNames:[l]})):i,o(S({bcName:l,widgetName:r})),a?o(Y({bcName:l,postInvoke:a,cursor:p,widgetName:r})):i)})),c((e=>(console.error(e),s(o(K({bcName:l})),st(e,m))))))}))),bcFetchDataEpic:(e,a,{api:d})=>e.pipe(r(t(S,P,se,fe,Ge)),n((t=>{const r=a.value,{widgetName:l=""}=t.payload,{widgets:p,infiniteWidgets:u}=r.view,m=p?.filter((e=>e.bcName===t.payload.bcName)),b=p?.find((e=>e.name===l))??m?.[0];if(!b)return i;const y=t.payload.bcName,g=r.screen.bo.bc[y],{cursor:f,page:N=1}=g,w=(p?.find((e=>e.bcName===y))?.limit||g.limit)??5,v=r.screen.sorters[y];if(se.match(t)&&y===t.payload.calleeBCName)return i;const C=p?.find((e=>e.bcName===b.bcName&&e.type===Pa.WidgetTypes.AssocListPopup&&function(e){return e.options?.hierarchy||e.options?.hierarchyFull}(e))),D=r.view.widgets?.find((e=>e.bcName===b.bcName&&e.type===Pa.WidgetTypes.AssocListPopup&&e.options?.hierarchyFull)),F=r.router.bcPath?.includes(`${y}/${f}`),T=dt(y,F,r),I={_page:N,_limit:w,...ft(D?[]:r.screen.filters[y]||[]),...Nt(v)};if(fe.match(t)){(l&&u?.includes(l)||p?.filter((e=>e.bcName===y))?.find((e=>u?.includes(e.name)))?.name)&&(I._page=1,I._limit=w*N)}P.match(t)&&(I._page=t.payload.from||1,I._limit=(t.payload.to||N-I._page)*w),(S.match(t)&&t.payload.ignorePageLimit||C?.options?.hierarchyFull)&&(I._limit=0);const E=d.createCanceler(),k=jt(e,Bt,E.cancel,_({bcName:y,bcUrl:T})),O=jt(e,[De],E.cancel,_({bcName:y,bcUrl:T}),(e=>{const a=e.payload.bcName;return g.parentName===a})),A=d.fetchBcData(r.screen.screenName,T,I,E.cancelToken).pipe(n((e=>{const a=xt(t,e.data,f,!!C),n=o(U({bcName:y,data:e.data,bcUrl:T,hasNext:e.hasNext})),c=o(B({widgetName:l,bcName:y})),d=a=>{if(a.showCondition?.bcName===r.screen.bo.bc[a.bcName]?.parentName){let e=r.screen.bo.bc[a.showCondition?.bcName]?.parentName,t=e===y;for(;!t&&e;)e=r.screen.bo.bc[e]?.parentName,t=e===y;if(t)return!0}const t=y===a.showCondition?.bcName?e.data:r.data[a.showCondition?.bcName],o=t?Lt(t,r.screen.bo.bc[a.showCondition?.bcName]?.cursor).cursor:null;return It(a.showCondition,o,t,r.view.pendingDataChanges)};if(!function(e,a,t,o,i){const r=a.reduce(((e,a)=>a.bcName?(Array.isArray(e[a.bcName])||(e[a.bcName]=[]),e[a.bcName].push(a),e):e),{}),n=Object.keys(r),s=n.includes(e),c=e=>!!r[e]?.some((e=>{const a=o?.bcName===e.bcName;return i(e)&&!Wt(e.type)||a})),d=a=>!!r[a]?.some((a=>a.showCondition.bcName===e));if(s&&c(e)||d(e))return!0;const l=a=>{const o=`${t[e].url}/:id`;return t[a].url.includes(o)};return n.some((a=>!!l(a)&&(c(a)||d(e))))}(y,p,r.screen.bo.bc,r.view.popupData,d))return s(a,n,c);const u=e.data?.length?qt(t,p,r.screen.bo.bc,!!C,d):i,m=Kt(y,r.screen.bo.bc,r.data);return s(a,m,n,c,u)})),c((e=>(console.error(e),s(o(_({bcName:t.payload.bcName,bcUrl:T})),st(e))))));return h(k,O,A)}))),bcFetchRowMetaRequestEpic:(e,a,{api:t})=>e.pipe(r(B.match),n((i=>{const r=a.value,n=r.screen.screenName,l=i.payload.bcName,p=r.screen.bo.bc[l].cursor??"",u=dt(l,!0,r)??"",m=t.createCanceler(),b=jt(e,Bt,m.cancel,L({bcName:l})),y=jt(e,[De],m.cancel,L({bcName:l}),(e=>{const a=e.payload.bcName;return r.screen.bo.bc[l].parentName===a})),g=t.fetchRowMeta(n,u,void 0,m.cancelToken).pipe(d((e=>j({bcName:l,rowMeta:e,bcUrl:u,cursor:p}))),c((e=>(console.error(e),s(o(L({bcName:l})),st(e))))));return h(b,y,g)}))),bcLoadMoreEpic:(e,a,{api:t})=>e.pipe(r($.match),n((i=>{const r=a.value,d=i.payload.bcName,l=r.screen.bo.bc[d],{cursor:p,page:u}=l,m=r.view.widgets.find((e=>e.bcName===d))?.limit||l.limit,b=r.router.bcPath?.includes(`${d}/${p}`),y=dt(d,b,r),g=r.screen.filters[d]||[],f=r.screen.sorters[d],N={_page:u,_limit:m,...ft(g),...Nt(f)},w=t.createCanceler(),v=jt(e,Bt,w.cancel,_({bcName:d,bcUrl:y})),C=t.fetchBcData(r.screen.screenName,y,N,w.cancelToken).pipe(n((e=>{const a=r.data[d]?.map((e=>e.id)),t=[...r.data[d],...e.data.filter((e=>!a.includes(e.id)))];return o(U({bcName:d,data:t,bcUrl:y,hasNext:e.hasNext}))})),c((e=>(console.error(e),s(o(_({bcName:d,bcUrl:y})),st(e))))));return h(v,C)}))),bcNewDataEpic:(e,a,{api:t})=>e.pipe(r(z.match),r((e=>Ft(Pa.OperationTypeCrud.create,e.payload,a.value))),n((e=>{const r=a.value,d=e.payload.bcName,l=dt(d,!1,r)??"",p={widgetName:e.payload.widgetName},u={_action:e.payload.operationType};return t.newBcData(r.screen.screenName,l,p,u).pipe(n((a=>{const t=a.row,n={id:null,vstamp:-1};a.row.fields.forEach((e=>{n[e.key]=e.currentValue}));const c=a.postActions?.[0],p=n.id;return s(o(W({bcName:d,dataItem:n,bcUrl:l})),o(j({bcName:d,bcUrl:`${l}/${p}`,rowMeta:t,cursor:p})),o(ie({bcName:d,bcUrl:dt(d,!0,r)??"",cursor:p,dataItem:{id:p}})),o(Ue({widgetName:e.payload.widgetName,rowId:p})),c?o(Y({bcName:d,postInvoke:c,cursor:p,widgetName:e.payload.widgetName})):i)})),c((e=>(console.error(e),s(o(q({bcName:d})),st(e,p))))))}))),bcSaveDataEpic:(e,a,{api:t})=>e.pipe(r(z.match),r((e=>Ft(Pa.OperationTypeCrud.save,e.payload,a.value))),n((e=>{const r=a.value,d=e.payload.bcName,l=dt(d,!0,r)??"",p=e.payload.widgetName,u=r.screen.bo.bc[d].cursor,m=r.data[d].find((e=>e.id===u)),b={...r.view.pendingDataChanges[d]?.[u]},y=l&&r.view.rowMeta[d]?.[l],h=r.view.widgets.find((e=>e.name===p))?.options;if(y){const e=y.fields;for(const a in b)e.find((e=>e.key===a&&e.disabled))&&delete b[a]}const g=Object.entries(Tt(d,r.view.widgets,r.screen.bo.bc)).map((e=>{const[a,t]=e;return S({bcName:a,widgetName:t[0]})})),f={widgetName:e.payload.widgetName};return t.saveBcData(r.screen.screenName,l,{...b,vstamp:m?.vstamp},f).pipe(n((a=>{const t=a.postActions?.[0],r=a.record;return s(o(ye({bcName:d,cursor:u,dataItem:r})),o(B({widgetName:p,bcName:d})),o(_e()),o(...g),t?o(Y({bcName:d,widgetName:p,postInvoke:t,cursor:r.id})):i,e.payload.onSuccessAction?o(e.payload.onSuccessAction):i)})),c((a=>{console.error(a);let t=i;e.payload.onSuccessAction&&!h?.disableNotification&&(t=o(ua({key:"data_autosave_undo",type:"buttonWarningNotification",message:"There are pending changes. Please save them or cancel.",duration:0,options:{buttonWarningNotificationOptions:{buttonText:"Cancel changes",actionsForClick:[Ce({bcNames:[d]})]}}})));let r=null,n=null;const c=a.response?.data;return a.response?.data===Object(a.response?.data)&&(n=c?.error?.entity??n,r=c?.error?.popup?.[0]??r),s(o(he({bcName:d,bcUrl:l,viewError:r,entityError:n})),t,st(a,f))})))}))),bcSelectDepthRecordEpic:e=>e.pipe(r(Fe.match),n((e=>{const{bcName:a,cursor:t,depth:i}=e.payload;return s(o(oe({bcName:a,depth:i,cursor:t})),o(S({bcName:a,depth:i+1,widgetName:"",ignorePageLimit:!0})))}))),bcSelectRecordEpic:(e,a)=>e.pipe(r(De.match),n((e=>{const{bcName:t,cursor:i}=e.payload,r=a.value.view.widgets,n=a.value.screen.bo.bc,c=Object.entries(Tt(t,r,n)).map((a=>{const[t,o]=a;return S({bcName:t,widgetName:o[0],ignorePageLimit:e.payload.ignoreChildrenPageLimit,keepDelta:e.payload.keepDelta})}));return s(o(te({cursorsMap:{[t]:i},keepDelta:e.payload.keepDelta})),o(B({widgetName:"",bcName:t})),c)}))),changeAssociationEpic:(e,a)=>e.pipe(r(Te.match),n((e=>{const t=a.value,i=e.payload.dataItem._associate,r=e.payload.bcName,n=[o(ie({bcName:r,bcUrl:dt(r,!0,t),cursor:e.payload.dataItem.id,dataItem:e.payload.dataItem}))],c=t.view.widgets.find((a=>a.name===e.payload.widgetName)),d=e.payload.bcName===c.bcName,l={bcName:c.bcName,radio:c.options?.hierarchyRadio,fields:c.fields},p=c.options?.hierarchy,u=d?l:p?.find((a=>a.bcName===e.payload.bcName)),m=c.options?.hierarchyGroupSelection,b=c.options?.hierarchyTraverse,y=p?.slice(p.findIndex((a=>a.bcName===e.payload.bcName))+1).map((e=>e.bcName));m&&u.radio&&!i&&n.push(o(Re({bcNames:y})));const h=d?null:p?.find(((a,t)=>p[t+1]?.bcName===e.payload.bcName))||l,g=t.data[h?.bcName]?.find((e=>e.id===t.screen.bo.bc[h?.bcName].cursor));if(h&&b&&i&&(u.radio&&n.push(o(Re({bcNames:[h.bcName]}))),n.push(o(Te({bcName:h.bcName,widgetName:e.payload.widgetName,dataItem:{...g,_associate:!0,_value:g?.[h.assocValueKey||e.payload.assocValueKey]},assocValueKey:e.payload.assocValueKey})))),h&&b&&!i){const a=t.data[e.payload.bcName],i=a.filter((a=>a.id!==e.payload.dataItem.id)).every((e=>!e._associate)),r=t.view.pendingDataChanges[e.payload.bcName],s=!r||!Object.values(r).find((t=>!0===t._associate&&t.id!==e.payload.dataItem.id&&a.find((e=>e.id===t.id))));i&&s&&n.push(o(Te({bcName:h.bcName,widgetName:e.payload.widgetName,dataItem:{...g,_associate:!1},assocValueKey:e.payload.assocValueKey})))}return s(...n)}))),changeAssociationFullEpic:(e,a)=>e.pipe(r(Ee.match),n((e=>{const t=a.value,i=[],r=e.payload.assocValueKey||t.view.popupData?.assocValueKey,n=e.payload.bcName,c=t.data[n],d=e.payload.dataItem._associate,l=e.payload.depth||1,p=l-1,u=l>1&&c.find((a=>a.id===e.payload.dataItem.parentId)),m=t.view.widgets.find((a=>a.name===e.payload.widgetName)),b=m.options?.hierarchyTraverse,y=m.options?.hierarchyRadio,h=m.options?.hierarchyGroupDeselection,g=c.filter((e=>e.level===l&&(1===e.level||e.parentId===u?.id)));if(y&&h&&1===l)if(d){const a=t.view.pendingDataChanges[n],s=c.find((t=>{if(1===t.level&&t.id!==e.payload.dataItem.id){const e=a?.[t.id];if(e?._associate||!e&&t._associate)return!0}return!1}));s&&i.push(o(Ee({bcName:n,depth:l,widgetName:e.payload.widgetName,dataItem:{...s,_associate:!1},assocValueKey:r})))}else i.push(o(Ae({bcName:n,parentId:e.payload.dataItem.id,depth:l+1,assocValueKey:r,selected:!1})));if(i.push(o(ie({bcName:e.payload.bcName,bcUrl:dt(e.payload.bcName,!0,t),cursor:e.payload.dataItem.id,dataItem:e.payload.dataItem}))),p&&b&&d&&i.push(o(Ee({bcName:n,depth:p,widgetName:e.payload.widgetName,dataItem:{...u,_associate:!0,_value:u?.[r]},assocValueKey:r}))),p&&b&&!d){const a=t.view.pendingDataChanges[n],s=!a||!Object.values(a).find((a=>!0===a._associate&&a.id!==e.payload.dataItem.id&&g.find((e=>e.id===a.id)))),c=a&&Object.values(a)?.filter((e=>!1===e._associate)).map((e=>e.id));g.filter((a=>a.id!==e.payload.dataItem.id&&!c?.includes(a.id))).every((e=>!e._associate))&&s&&i.push(o(Ee({bcName:n,depth:p,widgetName:e.payload.widgetName,dataItem:{...u,_associate:!1},assocValueKey:r})))}return s(...i)}))),changeAssociationSameBcEpic:(e,a)=>e.pipe(r(Ie.match),n((e=>{const t=a.value,i=e.payload.bcName,r=[o(ie({bcName:i,bcUrl:dt(i,!0,t),cursor:e.payload.dataItem.id,dataItem:e.payload.dataItem}))],n=e.payload.dataItem._associate,c=e.payload.depth||1,d=c-1,l=t.view.widgets.find((a=>a.name===e.payload.widgetName)),p=l.options?.hierarchyTraverse,u=c>1?t.depthData[c]?.[i]:t.data[i],m=d?d>1?t.screen.bo.bc[i].depthBc?.[d]?.cursor:t.screen.bo.bc[i].cursor:null,b=m?d>1?t.depthData[d]?.[i]?.find((e=>e.id===m)):t.data[i].find((e=>e.id===m)):null;if(d&&p&&n&&r.push(o(Ie({bcName:i,depth:d,widgetName:e.payload.widgetName,dataItem:{...b,_associate:!0,_value:b?.[e.payload.assocValueKey]},assocValueKey:e.payload.assocValueKey}))),d&&p&&!n){u.filter((a=>a.id!==e.payload.dataItem.id)).every((e=>!e._associate))&&r.push(o(Ie({bcName:i,depth:d,widgetName:e.payload.widgetName,dataItem:{...b,_associate:!1},assocValueKey:e.payload.assocValueKey})))}return s(...r)}))),changeChildrenAssociationsEpic:(e,a,{api:t})=>e.pipe(r(ke.match),n((e=>{const t=a.value.data[e.payload.bcName];return o(re({bcName:e.payload.bcName,cursors:t.map((e=>e.id)),dataItems:t.map((a=>({...a,_value:a[e.payload.assocValueKey],_associate:e.payload.selected})))}))}))),changeChildrenAssociationsSameBcEpic:(e,a)=>e.pipe(r(Oe.match),n((e=>{const t=a.value,i=t.depthData[e.payload.depth]?.[e.payload.bcName]||[];return o(re({bcName:e.payload.bcName,cursors:i.map((e=>e.id)),dataItems:i.map((a=>({...a,_value:a[e.payload.assocValueKey],_associate:e.payload.selected})))}))}))),changeDescendantsAssociationsFullEpic:(e,a)=>e.pipe(r(Ae.match),n((e=>{const t=a.value,i=e.payload.depth,r=t.data[e.payload.bcName],n=(r||[]).filter((a=>a.level===i&&a.parentId===e.payload.parentId)),c=[o(re({bcName:e.payload.bcName,cursors:n.map((e=>e.id)),dataItems:n.map((a=>({...a,_value:a[e.payload.assocValueKey],_associate:e.payload.selected})))}))];return n.forEach((a=>{r.find((e=>e.parentId===a.id))&&c.push(o(Ae({...e.payload,parentId:a.id,depth:i+1})))})),s(...c)}))),changeLocationEpic:(e,a)=>e.pipe(r(C.match),n((e=>{const t=a.value,{onSuccessAction:r}=e.payload,n=r?o(r):i;if(!t.session.active)return i;if(t.router.type===Aa.router)return s(o(Me(t.router)),n);const c=mt(t.router.bcPath)||{},d={};Object.entries(c).forEach((e=>{const[a,o]=e,i=t.screen.bo.bc[a];i&&i?.cursor===o||(d[a]=o)}));const l=Object.keys(d).length,p=t.screen.screenName,u=t.session.screens.find((e=>e.defaultScreen))?.name||t.session.screens[0]?.name,m=t.router.type===Aa.default?u:t.router.screenName;if(m!==p||e.payload.forceUpdate){const e=t.session.screens.find((e=>e.name===m));return e?s(o(k({screen:e})),l?o(te({cursorsMap:d})):i,n):o(O({screenName:m}))}const b=t.view.name,y=t.router.viewName,h=y!==b,g=[];if(l&&g.push(o(te({cursorsMap:d}))),h){const a=y?t.screen.views.find((e=>e.name===y)):Ot(t.screen.primaryView,t.screen.views)??At(t.screen.primaryViews,t.screen.views)??t.screen.views[0];g.push(o(a?A({...a,isTab:e.payload.isTab}):R({viewName:y})))}return l&&!h&&Object.entries(c).forEach((e=>{const[a,i]=e;t.data[a].find((e=>e.id===i))||g.push(o(fe({bcName:a})))})),s(...g,n)}))),changeScreen:(e,a)=>e.pipe(r(k.match),m((e=>{const t=a.value,i=t.router.viewName,r=t.screen.views.find((e=>e.name===i)),n=i?null:Ot(t.screen.primaryView,t.screen.views)??At(t.screen.primaryViews,t.screen.views),s=r||n||t.screen.views[0];return o(s?A(s):R({viewName:i}))}))),changeViewEpic:(e,a)=>e.pipe(r(A.match),m((e=>{const t=a.value,r=mt(t.router.bcPath)||{},n={};return Object.entries(r).forEach((e=>{const[a,o]=e,i=t.screen.bo.bc[a];i&&i.cursor===o||(n[a]=o)})),Object.keys(n).length?o(te({cursorsMap:n})):i}))),clearPendingDataChangesAfterCursorChangeEpic:(e,a)=>e.pipe(r(te.match),n((e=>{const t=a.value,r=mt(t.router.bcPath)||{},n={};return Object.entries(r).forEach((e=>{const[a,o]=e,i=t.screen.bo.bc[a];i&&i?.cursor===o||(n[a]=o)})),Object.keys(n).length?o(te({cursorsMap:n})):i}))),downloadFileByUrlEpic:(e,a)=>e.pipe(r(Xe.match),b((e=>{const{url:a}=e.payload,t=document.createElement("a");t.href=a,t.style.display="none",document.body.appendChild(t),setTimeout((()=>{t.click(),document.body.removeChild(t)}),100)})),n((()=>i))),downloadFileEpic:(e,a,{api:t})=>e.pipe(r(Qe.match),b((e=>{const{fileId:a}=e.payload,o=document.createElement("a");o.href=`${t.fileUploadEndpoint}?id=${encodeURIComponent(a)}`,o.style.display="none",document.body.appendChild(o),setTimeout((()=>{o.click(),document.body.removeChild(o)}),100)})),n((()=>i))),drillDownEpic:(e,a)=>e.pipe(r(ae.match),m((e=>{const t=a.value,o=e.payload.url,r=[];switch(e.payload.drillDownType){case Pa.DrillDownType.external:window.location.href=o;break;case Pa.DrillDownType.externalNew:/^[a-z0-9]+:\/\//i.test(o)&&window.open(o);break;case Pa.DrillDownType.relative:window.location.href=`${window.location.origin}/${o}`;break;case Pa.DrillDownType.relativeNew:window.open(`${window.location.origin}/${o}`,"_blank");break;case Pa.DrillDownType.inner:default:const[a]=o.split("?"),i=new URL(o,window.location.origin),n=i.searchParams.get("filters"),s=i.searchParams.get("sorters");let c={},d={};try{c=JSON.parse(n)??c}catch{n&&console.warn("Failed to parse filters on drilldown"),c={}}try{d=JSON.parse(s)??d}catch{s&&console.warn("Failed to parse sorters on drilldown"),d={}}const l={};Object.keys(t.screen.filters).forEach((e=>{(""===c[e]||c[e])&&(l[e]=!0,r.push(We({bcName:e})))}));const p=yt(i),u=p.viewName;Object.entries(c).forEach((([e,a])=>{const t=vt(a)?.map((e=>({...e,viewName:u})));t?.forEach((a=>{l[e]=!0,r.push(Le({bcName:e,filter:a}))}))})),Object.entries(d).forEach((([e,a])=>{const t=Ct(a);r.push(qe({bcName:e,sorter:t})),l[e]=!0}));(function(e,a,t=[]){const o=[];if(!e&&!a)return null;if(!e)return Object.keys(a);if(!a)return Object.keys(e);const i=Object.keys(a);return i.forEach((i=>{e[i]===a[i]||t.includes(i)||o.push(i)})),Object.keys(e).forEach((e=>{i.includes(e)||o.push(e)})),o})(t.router,p,["params"]).length>0||Object.keys(l).forEach((e=>{r.push(fe({bcName:e}))})),r.push(C({location:yt(new URL(ut(a),window.location.origin)),forceUpdate:!0,onSuccessAction:e.payload.onSuccessAction}))}return r.length?s(r):i}))),fileUploadConfirmEpic:(e,a,{api:t})=>e.pipe(r(Ze.match),n((e=>{const r=a.value,d=e.payload.isPopup??!0,l=e.payload.bcName??r.view.popupData?.bcName,p=dt(l,!0,r),u=r.view.widgets.find((e=>e.bcName===l))?.name,m=e.payload.fileIds.map((e=>({id:e,_associate:!0,vstamp:0})));return t.associate(r.screen.screenName,p,m,null).pipe(n((e=>{const a=e.postActions?.[0],t=e.preInvoke;return s(o(J({bcName:l,cursor:null})),o(fe({bcName:l})),d?o(de(null)):i,...Vt(u,a,t,Pa.OperationTypeCrud.save,l))})),c((e=>(console.error(e),st(e)))))}))),getRowMetaByForceActiveEpic:(e,t,{api:d})=>e.pipe(r(ie.match),n((e=>{const r=t.value,l=r.view.url,{bcName:p,cursor:u,disableRetry:m}=e.payload;if(r.view.widgets.some((e=>e.bcName===p&&e.type===Pa.WidgetTypes.AssocListPopup&&(e.options?.hierarchySameBc||e.options?.hierarchyFull))))return i;const b=r.view.widgets.find((e=>e.name===r.view.popupData?.widgetName&&[Pa.WidgetTypes.PickListPopup,Pa.WidgetTypes.FlatTreePopup].includes(e.type)))&&!r.session.disableDeprecatedFeatures?.popupCloseAfterChangeData,y=dt(p,!0,r),h=r.view.pendingDataChanges[p]?.[u],g=r.view.handledForceActive[p]?.[u]||{},f=r.data[p]?.find((e=>e.id===u)),N=r.view.rowMeta[p]?.[y]?.fields;let w=null;const v=s(o(de(null)),o(pe(null)),o(We({bcName:p}))),C=N?.filter((e=>e.forceActive&&void 0!==h[e.key])).some((e=>{const a=h[e.key]!==g[e.key];return a&&(w=e.key),a})),D=a();return C&&!m?s(o(la({request:{requestId:D,type:"force-active"}})),d.getRmByForceActive(r.screen.screenName,y,{...h,vstamp:f?.vstamp}).pipe(n((e=>{const a=[o(pa({requestId:D}))];return r.view.url===l&&a.push(o(ne({rowMeta:e,currentRecordData:f,bcName:p,bcUrl:y,cursor:u}))),b&&a.push(v),s(...a)})),c((e=>{console.error(e);let a=null,t=null;const n=e.response?.data;return e.response?.data===Object(e.response?.data)&&(t=n?.error?.entity,a=n?.error?.popup?.[0]),s(o(pa({requestId:D})),r.view.url===l?s(o(ie({bcName:p,bcUrl:dt(p,!0,r),cursor:u,dataItem:{[w]:f?.[w]},disableRetry:!0})),o(G({bcName:p,bcUrl:y,viewError:a,entityError:t}))):i,st(e))})))):b?v:i}))),handleRouterEpic:(e,a,{api:t})=>e.pipe(r(Me.match),m((e=>{const a=e.payload.path,o=e.payload.params;return t.routerRequest(a,o).pipe(n((()=>i)),c((e=>(console.error(e),st(e)))))}))),httpError401Epic:e=>e.pipe(r(aa.match),r((e=>401===e.payload.statusCode)),d((e=>E(null)))),httpError409Epic:(e,a)=>e.pipe(r(aa.match),r((e=>409===e.payload.statusCode)),d((e=>{const a=(e.payload.error.response?.data).error?.popup?.[0]||"";return ua({key:"action_edit_error",message:a,type:"buttonWarningNotification",duration:0,options:{buttonWarningNotificationOptions:{buttonText:"OK"}}})}))),httpError418Epic:(e,a)=>e.pipe(r(aa.match),r((e=>418===e.payload.statusCode)),n((e=>{const{error:t,callContext:r}=e.payload,n=[],c=t.response?.data;if(!c.error.popup)return i;const d={type:Sa.BusinessError,message:c.error.popup[0]};if(n.push(o(ze({error:d}))),c.error.postActions?.[0]){const e=a.value.view.widgets.find((e=>e.name===r.widgetName)),t=e?.bcName;n.push(o(Y({bcName:t,postInvoke:c.error.postActions[0],widgetName:e?.name})))}return s(...n)}))),httpError500Epic:(e,a)=>e.pipe(r(aa.match),r((e=>500===e.payload.statusCode)),d((e=>{const a={type:Sa.SystemError,details:e.payload.error.response?.statusText||"",error:e.payload.error};return ze({error:a})}))),httpErrorDefaultEpic:(e,a)=>e.pipe(r(aa.match),r((e=>!_t.includes(e.payload.statusCode))),d((e=>{const a={type:Sa.BusinessError,code:e.payload.error.response?.status,details:e.payload.error.response?.data};return ze({error:a})}))),inlinePickListFetchDataEpic:(e,a,{api:t})=>e.pipe(r(V.match),n((i=>{const{bcName:r,searchSpec:s,searchString:d}=i.payload,l=a.value,p=dt(r,!1,l),u=t.createCanceler(),m=jt(e,Bt,u.cancel,_({bcName:r,bcUrl:p})),b=t.fetchBcData(a.value.screen.screenName,p,{[s+".contains"]:d},u.cancelToken).pipe(n((e=>o(U({bcName:r,data:e.data,bcUrl:p})))),c((e=>(console.error(e),o(_({bcName:i.payload.bcName,bcUrl:p}))))));return h(m,b)}))),loginByAnotherRoleEpic:(e,a,{api:t})=>e.pipe(r(D.match),r((e=>!!e.payload?.role)),m((e=>{const i=e.payload.role??"",r=i&&i!==a.value.session.activeRole;return t.loginByRoleRequest(i).pipe(n((e=>{const a=[];if(r){const t=e.screens.find((e=>e.defaultScreen))||e.screens[0],o=Ot(t.primary,t.meta.views)??At(t.primaries,t.meta.views)??t?.meta.views[0];o&&a.push(C({location:yt(new URL(o.url,window.location.origin))}))}return s([...a,F({devPanelEnabled:e.devPanelEnabled,activeRole:e.activeRole,roles:e.roles,screens:e.screens,firstName:e.firstName,lastName:e.lastName,login:e.login})])})),c((e=>{console.error(e);const a=e.response?$t[e.response.status]||"Server application unavailable":"Empty server response";return s(o(T({errorMsg:a})),st(e))})))}))),loginDoneEpic:(e,a)=>e.pipe(r(F.match),m((e=>{const t=a.value;return t.router.type===Aa.router?o(Me(t.router)):o(C({location:gt(window.location.hash.replace("#","")),forceUpdate:!0}))}))),loginDoneSessionEpic:(e,a)=>e.pipe(r(D.match),m((e=>i))),processPostInvokeConfirmEpic:(e,a)=>e.pipe(r(t(X,Q)),n((e=>{const{bcName:a,operationType:t,widgetName:r}=e.payload,n=X.match(e)?e.payload.postInvokeConfirm:e.payload.preInvoke;switch(n.type){case Ya.confirm:case Ha.info:case Ha.error:case Ya.confirmText:return o(ge({operation:{bcName:a,operationType:t,widgetName:r},confirmOperation:n}));default:return i}}))),processPostInvokeEpic:(e,a)=>e.pipe(r(Y.match),n((e=>{const t=a.value;switch(e.payload.postInvoke.type){case Ja.drillDown:return o(ae({...e.payload.postInvoke,route:t.router,widgetName:e.payload.widgetName}));case Ja.postDelete:{const a={[e.payload.bcName]:null},i=[te({cursorsMap:a})];if(t.router.bcPath?.includes(`${e.payload.bcName}/`)){const a=t.router.bcPath.split(e.payload.bcName)[0]||"",o=`/screen/${t.router.screenName}/view/${t.router.viewName}/${a}`;i.push(C({location:yt(new URL(o,window.location.origin))}))}else i.push(S({bcName:e.payload.bcName,widgetName:e.payload.widgetName}));return o(...i)}case Ja.refreshBC:{const a=t.screen.bo,i=e.payload.postInvoke,r=i.bc,n=a.bc[i.bc],s=e.payload.widgetName||"",c=t.view.infiniteWidgets||[],d=t.view.widgets.some((e=>e.bcName===r&&c.includes(e.name)));return o(d?P({bcName:n?.name,widgetName:s,from:1,to:n?.page}):S({bcName:n?.name,widgetName:s}))}case Ja.showMessage:{const a=e.payload.postInvoke;return o(Be({type:a.messageType,message:a.messageText}))}case Ja.downloadFile:{const a=e.payload.postInvoke;return o(Qe({fileId:a.fileId}))}case Ja.downloadFileByUrl:{const a=e.payload.postInvoke;return o(Xe({url:a.url}))}case Ja.waitUntil:{const a=e.payload.postInvoke;return o(ba({bcName:e.payload.bcName,postInvoke:a}))}case Ja.drilldownAndWaitUntil:{const a=e.payload.postInvoke;return s(o(ae({...e.payload.postInvoke,route:t.router,widgetName:e.payload.widgetName,onSuccessAction:ba({bcName:e.payload.bcName,postInvoke:a})})))}default:return i}}))),refreshMetaAndReloadPageEpic:(e,a)=>e.pipe(r(ca.match),m((()=>s(o(ra()),e.pipe(r(F.match),y(1),b((()=>location.reload())),m((()=>i))))))),refreshMetaEpic:(e,a,{api:t})=>e.pipe(r(ra.match),n((()=>{const e=a.value,{activeRole:o}=e.session;return t.refreshMeta().pipe(m((()=>s([na(),E(null),D({login:"",password:"",role:o})]))),c((e=>s([T(e),sa(),nt(e)]))))}))),removeMultivalueTagEpic:(e,a)=>e.pipe(r(be.match),n((e=>{const t=a.value,{bcName:r,cursor:n,popupBcName:c,associateFieldKey:d}=e.payload,l=t.view.widgets.find((e=>e.bcName===c&&La.includes(e.type)));let p=(t?.data[c]||[]).map((e=>{const a=t.view.pendingDataChanges[c]?.[e.id];return{...e,...a}}));const u=p.find((a=>a.id===e.payload.removedItem.id)),m=e.payload.dataItem.map((e=>e.id));let b=[];if(l?.options?.hierarchyGroupDeselection){l?.options?.hierarchyTraverse&&(p=Et(p));const a=p.filter((e=>e.parentId===u?.id));b=[u?.id,...a.filter((e=>m.includes(e.id))).map((e=>e.id))],l?.options?.hierarchyTraverse&&(kt(a,b),b=p.filter((e=>b.includes(e.id)&&m.includes(e.id))).map((e=>e.id)));const t=p.find((e=>e.id===u?.parentId)),i=p.filter((e=>e.parentId===t?.id)),r=i.every((e=>b.includes(e.id)||!m.includes(e.id)));if(t&&r)if(l?.options?.hierarchyTraverse){const a=[];kt(i,a);if(a.every((e=>b.includes(e)||!m.includes(e))))return s(o(be({...e.payload,removedItem:{id:t.id,value:null}})))}else b.push(t.id)}if(l?.options?.hierarchyFull)return o(ie({bcName:r,bcUrl:dt(r,!0,t),cursor:n,dataItem:{[d]:e.payload.dataItem.filter((e=>!b.includes(e.id)))}}));const y=t.session.disableDeprecatedFeatures?.secondDataChangeForAssocPopupWhenRemovingTagFromField;if(l?.options?.hierarchy){const a=l?.options?.hierarchy?.find((a=>t.view.pendingDataChanges[a.bcName]?.[e.payload.removedItem.id]))?.bcName??r;return s(y?i:o(ie({bcName:a,bcUrl:dt(a,!0,t),cursor:e.payload.removedItem.id,dataItem:{...e.payload.removedItem,_associate:!1}})),o(ie({bcName:r,bcUrl:dt(r,!0,t),cursor:n,dataItem:{[d]:e.payload.dataItem}})))}return s(y?i:o(ie({bcName:c,bcUrl:dt(c,!0,t),cursor:e.payload.removedItem.id,dataItem:{...e.payload.removedItem,_associate:!1}})),o(ie({bcName:r,bcUrl:dt(r,!0,t),cursor:n,dataItem:{[d]:e.payload.dataItem}})))}))),saveAssociationsActiveEpic:(e,a,{api:t})=>e.pipe(r(ue.match),r((e=>a.value.view.popupData?.active)),m((e=>{const r=a.value,d=r.view.popupData?.calleeBCName,l=r.view.popupData?.calleeWidgetName,p=e.payload.bcNames,u=dt(d,!0,r),m=r.view.pendingDataChanges[p[0]]||{},b=p.length?{_bcName:p[p.length-1]}:{};return t.associate(r.screen.screenName,u,Object.values(m).filter((e=>e._associate)),b).pipe(n((e=>{const a=e.postActions[0],t=r.view.widgets.find((e=>e.bcName===d));return s(a?o(Y({bcName:d,postInvoke:a,widgetName:t?.name})):i,o(Ce({bcNames:p})),o(fe({bcName:d,widgetName:l})))})),c((e=>(console.error(e),i))))}))),saveAssociationsPassiveEpic:(e,a)=>e.pipe(r(ue.match),r((()=>!a.value.view.popupData?.active)),m((e=>{const t=a.value,{calleeBCName:i=e.payload.calleeBcName,associateFieldKey:r=e.payload.associateFieldKey}=t.view.popupData??{},n=t.screen.bo.bc[i].cursor,s=t.data[i].find((e=>e.id===n))[r]??[],c=[];e.payload.bcNames.forEach((e=>{const a=t.view.pendingDataChanges[e]||{};Object.entries(a).forEach((([e,a])=>{c.push(a)}))}));const d=c.filter((e=>!s.find((a=>a.id===e.id))&&e._associate)).map((e=>({id:e.id,options:{},value:e._value}))),l=s.filter((e=>{const a=c.find((a=>a.id===e.id));return!a||!1!==a?._associate})).concat(...d);return o(ie({bcName:i,bcUrl:dt(i,!0,t),cursor:n,dataItem:{[r]:l}}))}))),selectScreenFailEpic:e=>e.pipe(r(O.match),d((e=>ua({type:"error",key:"selectScreenFail",message:"Screen is missing or unavailable for your role",options:{messageOptions:{screenName:e.payload.screenName}},duration:15})))),selectTableRowInitEpic:(e,a)=>e.pipe(r(Ve.match),n((e=>{const t=[],i=a.value,{rowId:r}=e.payload,n=i.view.widgets.find((a=>a.name===e.payload.widgetName)),c=n?.bcName,d=i.screen.bo.bc[c]?.cursor,l=i.view.selectedRow;return r!==d&&t.push(o(De({bcName:c,cursor:r}))),l&&r===l.rowId&&n?.name===l.widgetName||t.push(o(Ue({widgetName:n?.name,rowId:r}))),s(...t)}))),selectViewEpic:(e,a)=>e.pipe(r(A.match),n((e=>{try{const t=a.value;return e.payload.isTab?function(e){const a={},t=e.data;return e.view.widgets.filter((e=>!La.includes(e.type))).forEach((o=>{if(o.bcName&&(!(o.bcName in t)||null===e.screen.bo.bc[o.bcName]?.cursor)){let i=o.bcName,r=e.screen.bo.bc[o.bcName].parentName;for(;r&&(!(r in t)||null===e.screen.bo.bc[r]?.cursor);)i=r,r=e.screen.bo.bc[r].parentName;a[i]||(a[i]=o)}})),Object.entries(a).map((([e,a])=>S({widgetName:a.name,bcName:e})))}(t):function(e){const a={};return e.view.widgets.filter((e=>!La.includes(e.type))).forEach((t=>{if(t.bcName){let o=t.bcName,i=e.screen.bo.bc[t.bcName].parentName;for(;i;)o=i,i=e.screen.bo.bc[i].parentName;a[o]||(a[o]=t)}})),Object.entries(a).map((([e,a])=>S({widgetName:a.name,bcName:e})))}(t)}catch(e){return console.error(`selectView Epic:: ${e}`),i}}))),selectViewFailEpic:(e,a)=>e.pipe(r(R.match),d((e=>ua({type:"error",key:"selectViewFail",message:"View is missing or unavailable for your role",options:{messageOptions:{viewName:e.payload.viewName}},duration:15})))),sendOperationAssociateEpic:(e,a)=>e.pipe(r(z.match),r((e=>Ft(Pa.OperationTypeCrud.associate,e.payload,a.value))),d((e=>{const t=a.value,o=dt(e.payload.bcName,!0,t);return"multiFileUpload"===Dt(t.view.rowMeta[e.payload.bcName]?.[o]?.actions).find((a=>a.type===e.payload.operationType)).subtype?ce({widgetName:e.payload.widgetName}):se({bcName:e.payload.bcKey?`${e.payload.bcKey}`:`${e.payload.bcName}Assoc`,calleeBCName:e.payload.bcName,active:!0,calleeWidgetName:e.payload.widgetName})}))),sendOperationEpic:(e,a,{api:t})=>e.pipe(r(z.match),r((e=>Ft("none",e.payload,a.value))),n((e=>{const r=a.value,d=r.screen.screenName,{bcName:l,operationType:p,widgetName:u}=e.payload,m=e.payload.confirmOperation?.type||e.payload.confirm,b=dt(l,!0,r),y=r.screen.bo.bc[l],h=b&&r.view.rowMeta[l]?.[b],g=h?.fields,f=y.cursor,N=r.data[l]?.find((e=>e.id===y.cursor)),w=r.screen.filters[l],v=r.screen.sorters[l],D={...r.view.pendingDataChanges[l]?.[y.cursor]};for(const e in D)g.find((a=>a.key===e&&a.disabled))&&delete D[e];const F=N&&{...D,vstamp:N.vstamp},T=r.view.widgets?.find((e=>e.name===u))?.options?.actionGroups?.defaultSave===e.payload.operationType&&C.match(e.payload?.onSuccessAction?.type),I={_action:p,...ft(w),...Nt(v)};m&&(I._confirm=m);const E={widgetName:e.payload.widgetName};return t.customAction(d,b,F,E,I).pipe(n((a=>{const t=a.postActions?.[0],r=a.record,n=a.preInvoke;return T?e?.payload?.onSuccessAction?s(o(Ce({bcNames:[l]})),o(e.payload.onSuccessAction)):i:s(o(J({bcName:l,cursor:f,dataItem:r})),o(fe({bcName:l})),...Vt(u,t,n,p,l))})),c((e=>{console.error(e);let a=null,t=null;const i=e.response?.data;return e.response?.data===Object(e.response?.data)&&(t=i?.error?.entity,a=i?.error?.popup?.[0]),s(o(H({bcName:l,bcUrl:b,viewError:a,entityError:t})),st(e,E))})))}))),showAllTableRecordsInitEpic:(e,a)=>e.pipe(r($e.match),n((e=>{const t=[],{bcName:i,cursor:r}=e.payload,n=a.value.router;t.push(o(te({cursorsMap:{[i]:null}})));const c=n.bcPath.slice(0,n.bcPath.indexOf(`${i}/${r}`)),d=ht({...n,bcPath:c});return t.push(o(fe({bcName:i}))),t.push(o(C({location:yt(new URL(d,window.location.origin))}))),s(...t)}))),showAssocPopupEpic:(e,a)=>e.pipe(r(se.match),r((e=>!(!e.payload.calleeBCName||!e.payload.associateFieldKey))),n((e=>{const{bcName:t,calleeBCName:r}=e.payload,n=a.value,s=n.view.widgets.find((e=>e.bcName===t&&e.type===Pa.WidgetTypes.AssocListPopup)),c=n.screen.bo.bc[r]?.cursor,d=n.view.pendingDataChanges[r]?.[c],l=e.payload.associateFieldKey,p=d?.[l];if(!(s&&d&&p&&p)||s.options&&!s.options.hierarchyFull)return i;const u={};p.forEach((e=>{u[e.id]={id:e.id,_associate:!0,_value:e.value}}));const m=n.data[r]?.find((e=>e.id===c)),b=m?.[l]?.map((e=>e.id)),y=p.map((e=>e.id));return b&&b.forEach((e=>{y.includes(e)||(u[e]={id:e,_associate:!1})})),o(re({bcName:t,cursors:Object.keys(u),dataItems:Object.values(u)}))}))),showFileUploadPopupEpic:(e,a)=>e.pipe(r(z.match),r((e=>Ft(Pa.OperationTypeCrud.fileUpload,e.payload,a.value))),n((e=>s(o(te({cursorsMap:{[e.payload.bcName]:null}})),o(ce({widgetName:e.payload.widgetName})))))),switchRoleEpic:(e,a)=>e.pipe(r(da.match),m((e=>s([E(null),D({login:"",password:"",role:e.payload.role})])))),userDrillDownChangeCursorsEpic:(e,a)=>e.pipe(r(Z.match),d((e=>{const t=a.value,o=t.view.widgets.find((a=>a.name===e.payload.widgetName)),i=t.screen.bo.bc[o?.bcName]?.cursor;return i!==e.payload.cursor?te({cursorsMap:{[e.payload.bcName]:e.payload.cursor}}):ia}))),userDrillDownEpic:(e,a,{api:t})=>e.pipe(r(Z.match),m((e=>{const r=a.value,{bcName:d,fieldKey:l,cursor:p}=e.payload,u=dt(d,!0,r);return t.fetchRowMeta(r.screen.screenName,u).pipe(n((e=>{const a=e.fields.find((e=>e.key===l)),t=r.router,n=r.view.widgets.find((e=>e.bcName===d))?.fields.find((e=>e.key===l))?.drillDownKey,c=r.data[d]?.find((e=>e.id===p))?.[n];return c||a?.drillDown||a?.drillDown!==t.path?s(a?.drillDownType!==Pa.DrillDownType.inner?o(j({bcName:d,rowMeta:e,bcUrl:u,cursor:p})):i,o(ee({bcName:d,bcUrl:u,cursor:p})),o(ae({url:c||a.drillDown,drillDownType:a.drillDownType,route:t}))):i})),c((e=>(console.error(e),st(e)))))}))),waitUntilEpic:(e,a,{api:t})=>e.pipe(r(ba.match),n((e=>{const i=a.value,{bcName:r,postInvoke:p}=e.payload,u=o(se({type:"waitUntil",bcName:r,options:{message:p.inProgressMessage}})),m=Ut(i,t,p).pipe(d((e=>e.data)),n((e=>{const a=!p.successMessage;return s(o(a?de({bcName:r}):se({type:"waitUntil",bcName:r,options:{status:"success",message:p.successMessage}})),o(fe({bcName:r})))})),c((e=>{if(e instanceof l){const e=!p.timeoutMessage;return s(o(e?de({bcName:r}):se({type:"waitUntil",bcName:r,options:{status:"timeout",message:p.timeoutMessage}})),o(fe({bcName:r})))}return s(st(e),o(de({bcName:r})))})));return s(u,m)})))});function Ht(e){if(e.data?.redirectUrl){let a=e.data.redirectUrl;return a.startsWith("/")||a.match("^http(.?)://")||(a=`${window.location.pathname}#/${a}`),a.startsWith("/")&&!a.startsWith("//")&&(a=`${window.location.origin}${a}`),window.location.replace(a),!1}return!0}class Jt{instance=v.create({responseType:"json",headers:{Pragma:"no-cache","Cache-Control":"no-cache, no-store, must-revalidate"}});constructor(e){this.instance=e}get(e,a,t){return g(this.instance.get(e,a)).pipe(f(Ht),d((e=>e.data)))}put(e,a,t){return g(this.instance.put(e,a)).pipe(f(Ht),d((e=>e.data)))}post(e,a,t,o){return g(this.instance.post(e,a)).pipe(f(Ht),d((e=>e.data)))}delete(e,a,t,o){return g(this.instance.delete(e,a)).pipe(f(Ht),d((e=>e.data)))}}class Yt{api$;constructor(e){this.api$=new Jt(e)}routerRequest(e,a){return this.api$.get(rt(e,a))}fetchBcData(e,a,t={},o){const i=0===t._limit,r=it(bt`data/${e}/`+a,{...t,_page:i?void 0:"_page"in t?t._page:1,_limit:i?void 0:"_limit"in t?t._limit:30});return this.api$.get(r,{cancelToken:o})}fetchBcDataAll(e,a,t={}){let o=1;return this.fetchBcData(e,a,{...t,_page:o}).pipe(N((r=>r.hasNext?this.fetchBcData(e,a,{...t,_page:++o}):i)),w(((e,a)=>[...e,...a.data]),[]))}fetchRowMeta(e,a,t,o){const i=it(bt`row-meta/${e}/`+a,t);return this.api$.get(i,{cancelToken:o}).pipe(d((e=>e.data.row)))}newBcData(e,a,t,o){const i=it(bt`row-meta-new/${e}/`+a,o);return this.api$.get(i,void 0,t).pipe(d((e=>e.data)))}saveBcData(e,a,t,o,i){const r=it(bt`data/${e}/`+a,i);return this.api$.put(r,{data:t},o).pipe(d((e=>e.data)))}deleteBcData(e,a="",t,o){const i=it(bt`data/${e}/`+a,o);return this.api$.delete(i,t).pipe(d((e=>e.data)))}customAction(e,a,t,o,i){const r=it(bt`custom-action/${e}/`+a,i);return this.api$.post(r,{data:t||{}},void 0,o).pipe(d((e=>e.data)))}associate(e,a,t,o){const i=Array.isArray(t)?t.map((e=>({id:e.id,vstamp:e.vstamp,associated:e._associate}))):t,r=it(bt`associate/${e}/`+a,o);return this.api$.post(r,i).pipe(d((e=>e.data)))}getRmByForceActive(e,a,t,o){const i=it(bt`row-meta/${e}/`+(a??""),o);return this.api$.post(i,{data:t}).pipe(d((e=>e.data.row)))}get fileUploadEndpoint(){const e=this.api$.instance;return e.defaults.baseURL?e.defaults.baseURL.endsWith("/")?`${e.defaults.baseURL}file`:`${e.defaults.baseURL}/file`:"/file"}refreshMeta(){return this.api$.get(bt`bc-registry/refresh-meta`)}loginByRoleRequest(e){return this.api$.get(bt`login?role=${e}`)}createCanceler(){let e;const a=new v.CancelToken((a=>{e=a}));return{cancel:e,cancelToken:a}}}function Qt(e,a,t){const o=e.view.pendingDataChanges,i=o[a]?.[t];return i&&!Object.keys(i).includes("_associate")&&Object.values(i).length>0}const Xt={autosave:({getState:e,dispatch:a})=>t=>o=>{const i=e(),r=z.match(o),n=r&&Ga.includes(o.payload.operationType),s=Ve.match(o),c=!(r&&o.payload.operationType===Pa.OperationTypeCrud.save),d=r&&o.payload.bcName,l=Object.keys(i.view.pendingDataChanges).filter((e=>e!==d)).filter((e=>{return a=i,t=e,Object.keys(a.view.pendingDataChanges?.[t]??{}).some((e=>Qt(a,t,e)));var a,t})).length>0,p=n&&l,u=i.view.selectedRow,m=u&&s&&(u.widgetName!==o.payload.widgetName||u.rowId!==o.payload.rowId),b=i.view.widgets?.find((e=>e?.options?.actionGroups?.defaultSave)),y=i.screen.bo.bc?.[b?.bcName]?.cursor,h=i.view?.pendingDataChanges?.[b?.bcName]?.[y];if(b&&C.match(o)&&Object.keys(h||{}).length>0)return t(z({bcName:b.bcName,operationType:(b.options?.actionGroups).defaultSave,widgetName:b.name,onSuccessAction:o}));return c&&(p||m)?function(e,a,t){const o=a.getState(),i=a.dispatch,r=o.view.pendingDataChanges,n=Object.keys(r),s=e.payload?.bcName&&Qt(o,e.payload.bcName,o.screen.bo.bc[e.payload.bcName]?.cursor)?n.findIndex((a=>a===e.payload?.bcName)):n.findIndex((e=>Qt(o,e,o.screen.bo.bc[e]?.cursor))),c=n[s];if(s>-1&&n.splice(s,1),c){n.forEach((e=>{const a=o.view.widgets?.find((a=>a.bcName===e)),t=o.screen.bo.bc[e]?.cursor;Qt(o,e,t)&&i(z({bcName:e,operationType:Pa.OperationTypeCrud.save,widgetName:a?.name}))}));const a=o.view.widgets?.find((e=>e.bcName===c));return t(z({bcName:c,operationType:Pa.OperationTypeCrud.save,widgetName:a?.name,onSuccessAction:e}))}return t(e)}(o,{getState:e,dispatch:a},t):t(o)},requiredFields:({getState:e,dispatch:a})=>t=>o=>{const i=e();if(z.match(o)){const{bcName:e,operationType:r,widgetName:n}=o.payload,s=i.screen.bo.bc[e]?.cursor;if(s){const c=dt(e,!0,i),d=i.data[e]?.find((e=>e.id===s)),l=c&&i.view.rowMeta[e]?.[c],p=i.view.pendingDataChanges[e]?.[s],u=i.view.widgets.find((e=>e.name===n));if(function(e,a){let t=!1;if(!a)return console.error('rowMeta is missing in the middle of "sendOperation" action'),t;return t=Dt(a).some((a=>a.type===e&&a.autoSaveBefore)),t}(r,l?.actions)){const r={};i.view.widgets.filter((e=>e.bcName===u?.bcName)).forEach((e=>{const a=[...e.fields];e.fields&&e.fields.forEach((e=>{qa(e)&&e.fields.forEach((e=>a.push(e)))})),a.forEach((e=>{const a=l?.fields?.find((a=>a.key===e.key));r[e.key]||!a||a.hidden||(r[e.key]=a)}))}));const c=function(e,a,t){const o={};return t.forEach((t=>{const i=e?.[t.key],r=a?.[t.key],n=void 0!==r?r:i;let s=!1;(null==n||""===n||Array.isArray(n)&&!n.length||n&&"object"==typeof n&&!Object.keys(n).length)&&(s=!0),t.required&&s&&(o[t.key]=Array.isArray(n)?[]:null)})),Object.keys(o).length>0?o:null}(d,p,Object.values(r));return c&&ja.includes(u?.type)&&a(Ve({widgetName:n,rowId:s})),t(c?ie({bcName:e,bcUrl:dt(e,!0,i),cursor:s,dataItem:c}):o)}if(function(e,a){if(e.view.pendingValidationFailsFormat!==Ra.target&&e.view.pendingValidationFails&&Object.keys(e.view.pendingValidationFails).length)return!0;let t=!1;const o=e.view.pendingValidationFails?.[a],i=o&&Object.keys(o);if(!i)return!1;let r=0;for(;r<i.length;r++)if(Object.keys(o[i[r]]).length){t=!0;break}return t}(i,e))return t(ua({key:"requiredFieldsMissing",type:"buttonWarningNotification",message:"Required fields are missing",duration:0,options:{buttonWarningNotificationOptions:{buttonText:"Cancel changes",actionsForClick:[Ce(null),Ye(null)]}}}))}}return t(o)},preInvoke:({getState:e})=>a=>t=>{if(z.match(t)){const o=e(),{operationType:i,widgetName:r,confirm:n}=t.payload,s=o.view.widgets.find((e=>e.name===r))?.bcName,c=dt(s,!0,o),d=c&&o.view.rowMeta[s]?.[c],l=d&&Dt(d.actions),p=l?.find((e=>e.type===i))?.preInvoke;return a(p&&!n?Q({bcName:s,operationType:i,widgetName:r,preInvoke:p}):t)}return a(t)},popup:({getState:e})=>a=>t=>{if(se.match(t)){const o=e(),i=t.payload.bcName,r=o.view.widgets.find((e=>e.bcName===i))?.options?.displayedValueKey,n=t.payload.assocValueKey??r;return a(r?se({...t.payload,assocValueKey:n}):t)}return a(t)}};var Zt=Pa.DrillDownType,eo=Pa.FieldType,ao=Pa.OperationTypeCrud,to=Pa.PositionTypes,oo=Pa.RecordSnapshotState,io=Pa.WidgetTypes;export{Yt as Api,Oa as AppNotificationType,Sa as ApplicationErrorType,Zt as DrillDownType,eo as FieldType,Qa as FilterType,Ya as OperationPostInvokeConfirmType,Ja as OperationPostInvokeType,Ha as OperationPreInvokeType,ao as OperationTypeCrud,Ka as PaginationMode,Ra as PendingValidationFailsFormat,La as PopupWidgetTypes,to as PositionTypes,oo as RecordSnapshotState,Aa as RouteType,ja as TableLikeWidgetTypes,io as WidgetTypes,ya as actions,Ga as coreOperations,zt as epics,at as interfaces,xa as isCustomWidget,Wa as isCustomWidgetConfiguration,za as isOperationGroup,Za as isViewNavigationCategory,et as isViewNavigationGroup,Xa as isViewNavigationItem,qa as isWidgetFieldBlock,Xt as middlewares,Mt as reducers,Rt as utils};
2
2
  //# sourceMappingURL=index.js.map