@uxland/primary-shell 7.29.16 → 7.31.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/README.md +5 -1
- package/dist/{component-aYPNyXoD.js → component-B-axUbH9.js} +2 -2
- package/dist/{component-aYPNyXoD.js.map → component-B-axUbH9.js.map} +1 -1
- package/dist/{index-BdvrdZXA.js → index-CXvNTuhe.js} +27 -13
- package/dist/index-CXvNTuhe.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +6 -6
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +1 -1
- package/dist/index-BdvrdZXA.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as s, w as e, y as r, c as t, d as n, P as o, o as l, p as c, n as g, e as p, u as m, g as P, q as v, f as E, v as h, j as u, l as R, a as y, m as S, x as d } from "./index-
|
|
1
|
+
import { E as s, w as e, y as r, c as t, d as n, P as o, o as l, p as c, n as g, e as p, u as m, g as P, q as v, f as E, v as h, j as u, l as R, a as y, m as S, x as d } from "./index-CXvNTuhe.js";
|
|
2
2
|
export {
|
|
3
3
|
s as EcapEventManager,
|
|
4
4
|
e as PrimariaContentSwitcher,
|
package/dist/index.umd.cjs
CHANGED
|
@@ -300,7 +300,7 @@ Registered bindings:`,re.forEach(function(oe){var ne="Object";oe.implementationT
|
|
|
300
300
|
${r$L(styles$n)}
|
|
301
301
|
`;let PluginBusyList=Is;class PluginBusyManagerImpl{constructor(){this.tasks=[],customElements.get("plugin-busy-list")||t$t("plugin-busy-list")(PluginBusyList)}addTask(W){this.tasks.some(te=>te.taskId===W.taskId)||this.tasks.push(W)}removeTask(W){const X=this.tasks.findIndex(te=>te.taskId===W);X>-1&&this.tasks.splice(X,1)}isBusy(){return this.tasks.length>0}clearAll(){this.tasks=[]}getTasks(){return this.tasks}}class QuickActionBusyManagerImpl{constructor(W){this.broker=W,this.tasks=[]}addTask(W){this.tasks.findIndex(te=>te.taskId===W.taskId)>-1||(this.tasks.push(W),this.emitBusyChanged())}removeTask(W){const X=this.tasks.findIndex(te=>te.taskId===W);X>-1&&(this.tasks.splice(X,1),this.emitBusyChanged())}isBusy(){return this.tasks.length>0}clearAll(){this.tasks=[]}emitBusyChanged(){const W=this.isBusy();this.broker.publish(BROKER_EVENTS.shell.quickActionBusyChanged,{busy:W})}}const shellRegions={header:"header-region",headerRightActions:"header-actions-region",main:"main-region",navigationMenu:"menu-region",navigationLowerLeftMenu:"navigation-lower-left-menu",quickActions:"quick-actions-region",floating:"floating-region",communicationSidenav:"communication-sidenav-region",clinicalPathwaysSidenav:"clinical-pathways-sidenav-region",importData:"import-data-region"},clinicalMonitoringRegions={sidebar:"clinical-monitoring-widgets-sidebar-region",header:"clinical-monitoring-header-widgets-region",content:"clinical-monitoring-content-widgets-region"},activityHistoryRegions={customFilters:"clinical-monitoring-activity-history-filters-region"};class RegionManagerProxy{constructor(W,X,te){this.pluginInfo=W,this.regionManager=X,this.broker=te,this.regions={shell:shellRegions,clinicalMonitoring:clinicalMonitoringRegions,activityHistory:activityHistoryRegions}}registerView(W,X){return this.regionManager.registerViewWithRegion(W,`${this.pluginInfo.pluginId}::${X.id}`,X),Promise.resolve()}removeView(W,X){const te=this.regionManager.getRegion(W);return te&&te.removeView(`${this.pluginInfo.pluginId}::${X}`),Promise.resolve()}activateView(W,X){return this.regionManager.getRegion(W).activate(`${this.pluginInfo.pluginId}::${X}`),W===this.regions.shell.main&&this._notifyMainViewChanged(X),Promise.resolve()}deactivateView(W,X){return this.regionManager.getRegion(W).deactivate(`${this.pluginInfo.pluginId}::${X}`),Promise.resolve()}getRegion(W){return Promise.resolve(this.regionManager.getRegion(W))}containsView(W,X){const te=this.regionManager.getRegion(W);return Promise.resolve(te?.containsView(`${this.pluginInfo.pluginId}::${X}`))}isViewActive(W,X){const re=this.regionManager.getRegion(W).currentActiveViews.some(oe=>oe.id===X);return Promise.resolve(re)}registerQuickAction(W){return this.regionManager.registerViewWithRegion(this.regions.shell.quickActions,`${this.pluginInfo.pluginId}::${W.id}`,W),Promise.resolve()}registerNavigationMenu(W){return this.regionManager.registerViewWithRegion(this.regions.shell.navigationMenu,`${this.pluginInfo.pluginId}::${W.id}`,W),Promise.resolve()}registerMainView(W){return this.regionManager.registerViewWithRegion(this.regions.shell.main,`${this.pluginInfo.pluginId}::${W.id}`,W),Promise.resolve()}activateMainView(W){return this.regionManager.getRegion(this.regions.shell.main).activate(`${this.pluginInfo.pluginId}::${W}`),this._notifyMainViewChanged(W),Promise.resolve()}getCurrentMainViewActive(){return this.regionManager.getRegion(this.regions.shell.main).currentActiveViews[0]?.id}_notifyMainViewChanged(W){this.broker.publish(BROKER_EVENTS.shell.mainViewChanged,{viewId:W})}_destroy(){this.regionManager.destroy()}}const createRegionManagerProxy=(J,W,X)=>new RegionManagerProxy(J,W,X);let token,refreshToken,tokenInitialized=!1;class TokenManagerImpl{constructor(){this.getUrlParams=()=>new URLSearchParams(window.location.search),this.initToken=()=>{if(tokenInitialized)throw new Error("Token already initialized");tokenInitialized=!0;const W=this.getUrlParams();return token=W.get("access_token")||"",refreshToken=W.get("refresh_token")||"",token},this.setInitialTokens=(W,X)=>{if(tokenInitialized)throw new Error("Token already initialized");token=W,refreshToken=X,tokenInitialized=!0},this.getToken=()=>(tokenInitialized||this.initToken(),token),this.refreshToken=async()=>{tokenInitialized||this.initToken();const W=await axios.post("/api/token/refresh",{token:refreshToken}),{access_token:X,refresh_token:te}=W.data;if(!X)throw new Error("Invalid refresh token response");return token=X,refreshToken=te,token}}}let tokenManager$1;const createTokenManager=()=>tokenManager$1||(tokenManager$1=new TokenManagerImpl,tokenManager$1);class UserManagerImpl{constructor(W){this.tokenManager=W,this.getRole=()=>{const X=this.tokenManager.getToken();if(X)try{return jwtDecode(X).access_info?.role_type}catch(te){console.error("Error decoding JWT token:",te);return}},this.isUserRoleAdministrative=()=>this.getRole()==="ADM",this.getFullName=()=>{const X=this.tokenManager.getToken();if(X)try{const te=jwtDecode(X),re=te.access_info?.trace_user_given_name,oe=te.access_info?.trace_user_family_name;return!re&&!oe?void 0:[oe,re].filter(Boolean).join(" ")}catch(te){console.error("Error decoding JWT token:",te);return}}}}let userManager$1;const createUserManager=J=>userManager$1||(userManager$1=new UserManagerImpl(J),userManager$1);class ImportDataManagerImpl{constructor(W){this.interactionService=W,this.selectedItems={},this.currentImporterId="",this.pluginTexts={}}async import(W){this.currentImporterId=W,this.selectedItems={},this.pluginTexts={};try{const{ImportDataManagerModal:X}=await Promise.resolve().then(()=>component),{confirmed:te}=await this.interactionService.confirm(void 0,{component:X},{fullCustomization:!0}),re=this.getConcatenatedText(),oe={accepted:te,data:te?this.selectedItems:{},text:te?re:{raw:"",html:""}};return this.selectedItems={},this.currentImporterId="",this.pluginTexts={},oe}catch(X){throw this.selectedItems={},this.currentImporterId="",this.pluginTexts={},X}}selectItems(W){this.selectedItems[W.pluginId]=W.data,this.pluginTexts[W.pluginId]=W.text}getCurrentImporterId(){return this.currentImporterId}getConcatenatedText(){const W=[],X=[];for(const te of Object.values(this.pluginTexts))te.raw&&W.push(te.raw),te.html&&X.push(te.html);return{raw:W.join(`
|
|
302
302
|
|
|
303
|
-
`),html:X.join("<br><br>")}}}class PrimariaContextManagerImpl{constructor(){this.context={}}initializeContext(W){this.context={...W}}getContext(){return{...this.context}}}let contextManager$1;const createContextManager=()=>contextManager$1||(contextManager$1=new PrimariaContextManagerImpl,contextManager$1),broker$1=createBroker(),regionManager=y$d("primaria"),PrimariaRegionHost=d$n(regionManager),tokenManager=createTokenManager(),userManager=createUserManager(tokenManager),globalStateManager=createGlobalStateManager(broker$1),contextManager=createContextManager(),pluginBusyManager=new PluginBusyManagerImpl,quickActionBusyManager=new QuickActionBusyManagerImpl(broker$1),interactionService=new ParimariaInteractionServiceImpl,notificationService=new PrimariaNotificationServiceImpl,ecapEventManager=createEcapEventManager(),pdfViewerManager=createPdfViewerManager(broker$1,notificationService),importDataManager=new ImportDataManagerImpl(interactionService),primariaApiFactory=J=>{const W=createRegionManagerProxy(J,regionManager,broker$1);return{pluginInfo:J,regionManager:W,httpClient:createHttpClient(tokenManager,broker$1),broker:broker$1,createLocaleManager:createLocaleManager(J.pluginId),globalStateManager,contextManager,tokenManager,userManager,ecapEventManager,pluginBusyManager,quickActionBusyManager,interactionService,notificationService,pdfViewerManager,importDataManager}},shellApi=primariaApiFactory({pluginId:primariaShellId}),api=Object.freeze(Object.defineProperty({__proto__:null,PrimariaRegionHost,primariaApiFactory,shellApi},Symbol.toStringTag,{value:"Module"})),registerRequest$1=(J,W)=>(X,te)=>{W.bind(te).to(te).inTransientScope(),injectable()(te);const re=J.broker.registerRequest(X,oe=>W.get(te).handle(oe));return{dispose:()=>{W.isBound(te)&&W.unbind(te),re.dispose()}}},registerRequest=(J,W)=>(X,te)=>{W.bind(te).to(te).inTransientScope(),injectable()(te);const re=J.broker.registerRequest(X,oe=>W.get(te).handle(oe));return{dispose:()=>{W.isBound(te)&&W.unbind(te),re.dispose()}}},brokerExtensions=(J,W)=>({registerRequest:registerRequest(J,W)}),generateId=()=>{try{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID()}catch{console.warn("crypto.randomUUID() failed, using fallback")}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,J=>{const W=Math.random()*16|0;return(J==="x"?W:W&3|8).toString(16)})},mapArrayToLabelValue=(J,W,X)=>J.map(te=>{const re=te[W],oe=te[X];return(re===""||re==null)&&typeof oe=="string"&&oe.trim()!==""?{label:oe,value:oe}:(re===""||re==null)&&(oe===""||oe==null)?null:{label:re,value:oe}}).filter(te=>te!==null);function createConnectToStoreDecorator(J){return function(X){return(te,re)=>{Object.defineProperty(te,re,{get(){return this[`__${re}`]},set(de){this[`__${re}`]!==de&&(this[`__${re}`]=Array.isArray(de)?[...de]:typeof de=="object"&&de!==null?{...de}:de,this.requestUpdate(re))},configurable:!0,enumerable:!0});const oe=te.connectedCallback,ne=te.disconnectedCallback;te.connectedCallback=function(){oe&&oe.call(this),this[re]=X(J.getState()),this[`__unsubscribe__${re}`]=J.subscribe(()=>{const de=X(J.getState());this[re]=Array.isArray(de)?[...de]:typeof de=="object"&&de!==null?{...de}:de})},te.disconnectedCallback=function(){ne&&ne.call(this),this[`__unsubscribe__${re}`]&&this[`__unsubscribe__${re}`]()}}}}function createConnectedProperty(J){return(W,X={})=>{const te=createConnectToStoreDecorator(J);return(re,oe)=>{n$B(X)(re,oe),te(W)(re,oe)}}}const TYPES={primaryApi:Symbol.for("primaryApi"),store:Symbol.for("store")};function formatProdErrorMessage$1(J){return`Minified Redux error #${J}; visit https://redux.js.org/Errors?code=${J} for the full message or use the non-minified dev environment for full errors. `}var $$observable=typeof Symbol=="function"&&Symbol.observable||"@@observable",symbol_observable_default=$$observable,randomString=()=>Math.random().toString(36).substring(7).split("").join("."),ActionTypes={INIT:`@@redux/INIT${randomString()}`,REPLACE:`@@redux/REPLACE${randomString()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${randomString()}`},actionTypes_default=ActionTypes;function isPlainObject$1(J){if(typeof J!="object"||J===null)return!1;let W=J;for(;Object.getPrototypeOf(W)!==null;)W=Object.getPrototypeOf(W);return Object.getPrototypeOf(J)===W||Object.getPrototypeOf(J)===null}function createStore(J,W,X){if(typeof J!="function")throw new Error(formatProdErrorMessage$1(2));if(typeof W=="function"&&typeof X=="function"||typeof X=="function"&&typeof arguments[3]=="function")throw new Error(formatProdErrorMessage$1(0));if(typeof W=="function"&&typeof X>"u"&&(X=W,W=void 0),typeof X<"u"){if(typeof X!="function")throw new Error(formatProdErrorMessage$1(1));return X(createStore)(J,W)}let te=J,re=W,oe=new Map,ne=oe,de=0,ce=!1;function ue(){ne===oe&&(ne=new Map,oe.forEach((ve,_e)=>{ne.set(_e,ve)}))}function he(){if(ce)throw new Error(formatProdErrorMessage$1(3));return re}function pe(ve){if(typeof ve!="function")throw new Error(formatProdErrorMessage$1(4));if(ce)throw new Error(formatProdErrorMessage$1(5));let _e=!0;ue();const we=de++;return ne.set(we,ve),function(){if(_e){if(ce)throw new Error(formatProdErrorMessage$1(6));_e=!1,ue(),ne.delete(we),oe=null}}}function fe(ve){if(!isPlainObject$1(ve))throw new Error(formatProdErrorMessage$1(7));if(typeof ve.type>"u")throw new Error(formatProdErrorMessage$1(8));if(typeof ve.type!="string")throw new Error(formatProdErrorMessage$1(17));if(ce)throw new Error(formatProdErrorMessage$1(9));try{ce=!0,re=te(re,ve)}finally{ce=!1}return(oe=ne).forEach(we=>{we()}),ve}function be(ve){if(typeof ve!="function")throw new Error(formatProdErrorMessage$1(10));te=ve,fe({type:actionTypes_default.REPLACE})}function me(){const ve=pe;return{subscribe(_e){if(typeof _e!="object"||_e===null)throw new Error(formatProdErrorMessage$1(11));function we(){const ye=_e;ye.next&&ye.next(he())}return we(),{unsubscribe:ve(we)}},[symbol_observable_default](){return this}}}return fe({type:actionTypes_default.INIT}),{dispatch:fe,subscribe:pe,getState:he,replaceReducer:be,[symbol_observable_default]:me}}function assertReducerShape(J){Object.keys(J).forEach(W=>{const X=J[W];if(typeof X(void 0,{type:actionTypes_default.INIT})>"u")throw new Error(formatProdErrorMessage$1(12));if(typeof X(void 0,{type:actionTypes_default.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(formatProdErrorMessage$1(13))})}function combineReducers(J){const W=Object.keys(J),X={};for(let oe=0;oe<W.length;oe++){const ne=W[oe];typeof J[ne]=="function"&&(X[ne]=J[ne])}const te=Object.keys(X);let re;try{assertReducerShape(X)}catch(oe){re=oe}return function(ne={},de){if(re)throw re;let ce=!1;const ue={};for(let he=0;he<te.length;he++){const pe=te[he],fe=X[pe],be=ne[pe],me=fe(be,de);if(typeof me>"u")throw de&&de.type,new Error(formatProdErrorMessage$1(14));ue[pe]=me,ce=ce||me!==be}return ce=ce||te.length!==Object.keys(ne).length,ce?ue:ne}}function compose(...J){return J.length===0?W=>W:J.length===1?J[0]:J.reduce((W,X)=>(...te)=>W(X(...te)))}function applyMiddleware(...J){return W=>(X,te)=>{const re=W(X,te);let oe=()=>{throw new Error(formatProdErrorMessage$1(15))};const ne={getState:re.getState,dispatch:(ce,...ue)=>oe(ce,...ue)},de=J.map(ce=>ce(ne));return oe=compose(...de)(re.dispatch),{...re,dispatch:oe}}}function isAction(J){return isPlainObject$1(J)&&"type"in J&&typeof J.type=="string"}var NOTHING=Symbol.for("immer-nothing"),DRAFTABLE=Symbol.for("immer-draftable"),DRAFT_STATE=Symbol.for("immer-state");function die(J,...W){throw new Error(`[Immer] minified error nr: ${J}. Full error at: https://bit.ly/3cXEKWf`)}var getPrototypeOf=Object.getPrototypeOf;function isDraft(J){return!!J&&!!J[DRAFT_STATE]}function isDraftable(J){return J?isPlainObject(J)||Array.isArray(J)||!!J[DRAFTABLE]||!!J.constructor?.[DRAFTABLE]||isMap(J)||isSet(J):!1}var objectCtorString=Object.prototype.constructor.toString();function isPlainObject(J){if(!J||typeof J!="object")return!1;const W=getPrototypeOf(J);if(W===null)return!0;const X=Object.hasOwnProperty.call(W,"constructor")&&W.constructor;return X===Object?!0:typeof X=="function"&&Function.toString.call(X)===objectCtorString}function each(J,W){getArchtype(J)===0?Reflect.ownKeys(J).forEach(X=>{W(X,J[X],J)}):J.forEach((X,te)=>W(te,X,J))}function getArchtype(J){const W=J[DRAFT_STATE];return W?W.type_:Array.isArray(J)?1:isMap(J)?2:isSet(J)?3:0}function has(J,W){return getArchtype(J)===2?J.has(W):Object.prototype.hasOwnProperty.call(J,W)}function set(J,W,X){const te=getArchtype(J);te===2?J.set(W,X):te===3?J.add(X):J[W]=X}function is(J,W){return J===W?J!==0||1/J===1/W:J!==J&&W!==W}function isMap(J){return J instanceof Map}function isSet(J){return J instanceof Set}function latest(J){return J.copy_||J.base_}function shallowCopy(J,W){if(isMap(J))return new Map(J);if(isSet(J))return new Set(J);if(Array.isArray(J))return Array.prototype.slice.call(J);const X=isPlainObject(J);if(W===!0||W==="class_only"&&!X){const te=Object.getOwnPropertyDescriptors(J);delete te[DRAFT_STATE];let re=Reflect.ownKeys(te);for(let oe=0;oe<re.length;oe++){const ne=re[oe],de=te[ne];de.writable===!1&&(de.writable=!0,de.configurable=!0),(de.get||de.set)&&(te[ne]={configurable:!0,writable:!0,enumerable:de.enumerable,value:J[ne]})}return Object.create(getPrototypeOf(J),te)}else{const te=getPrototypeOf(J);if(te!==null&&X)return{...J};const re=Object.create(te);return Object.assign(re,J)}}function freeze(J,W=!1){return isFrozen(J)||isDraft(J)||!isDraftable(J)||(getArchtype(J)>1&&(J.set=J.add=J.clear=J.delete=dontMutateFrozenCollections),Object.freeze(J),W&&Object.entries(J).forEach(([X,te])=>freeze(te,!0))),J}function dontMutateFrozenCollections(){die(2)}function isFrozen(J){return Object.isFrozen(J)}var plugins={};function getPlugin(J){const W=plugins[J];return W||die(0,J),W}var currentScope;function getCurrentScope(){return currentScope}function createScope(J,W){return{drafts_:[],parent_:J,immer_:W,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function usePatchesInScope(J,W){W&&(getPlugin("Patches"),J.patches_=[],J.inversePatches_=[],J.patchListener_=W)}function revokeScope(J){leaveScope(J),J.drafts_.forEach(revokeDraft),J.drafts_=null}function leaveScope(J){J===currentScope&&(currentScope=J.parent_)}function enterScope(J){return currentScope=createScope(currentScope,J)}function revokeDraft(J){const W=J[DRAFT_STATE];W.type_===0||W.type_===1?W.revoke_():W.revoked_=!0}function processResult(J,W){W.unfinalizedDrafts_=W.drafts_.length;const X=W.drafts_[0];return J!==void 0&&J!==X?(X[DRAFT_STATE].modified_&&(revokeScope(W),die(4)),isDraftable(J)&&(J=finalize(W,J),W.parent_||maybeFreeze(W,J)),W.patches_&&getPlugin("Patches").generateReplacementPatches_(X[DRAFT_STATE].base_,J,W.patches_,W.inversePatches_)):J=finalize(W,X,[]),revokeScope(W),W.patches_&&W.patchListener_(W.patches_,W.inversePatches_),J!==NOTHING?J:void 0}function finalize(J,W,X){if(isFrozen(W))return W;const te=W[DRAFT_STATE];if(!te)return each(W,(re,oe)=>finalizeProperty(J,te,W,re,oe,X)),W;if(te.scope_!==J)return W;if(!te.modified_)return maybeFreeze(J,te.base_,!0),te.base_;if(!te.finalized_){te.finalized_=!0,te.scope_.unfinalizedDrafts_--;const re=te.copy_;let oe=re,ne=!1;te.type_===3&&(oe=new Set(re),re.clear(),ne=!0),each(oe,(de,ce)=>finalizeProperty(J,te,re,de,ce,X,ne)),maybeFreeze(J,re,!1),X&&J.patches_&&getPlugin("Patches").generatePatches_(te,X,J.patches_,J.inversePatches_)}return te.copy_}function finalizeProperty(J,W,X,te,re,oe,ne){if(isDraft(re)){const de=oe&&W&&W.type_!==3&&!has(W.assigned_,te)?oe.concat(te):void 0,ce=finalize(J,re,de);if(set(X,te,ce),isDraft(ce))J.canAutoFreeze_=!1;else return}else ne&&X.add(re);if(isDraftable(re)&&!isFrozen(re)){if(!J.immer_.autoFreeze_&&J.unfinalizedDrafts_<1)return;finalize(J,re),(!W||!W.scope_.parent_)&&typeof te!="symbol"&&Object.prototype.propertyIsEnumerable.call(X,te)&&maybeFreeze(J,re)}}function maybeFreeze(J,W,X=!1){!J.parent_&&J.immer_.autoFreeze_&&J.canAutoFreeze_&&freeze(W,X)}function createProxyProxy(J,W){const X=Array.isArray(J),te={type_:X?1:0,scope_:W?W.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:{},parent_:W,base_:J,draft_:null,copy_:null,revoke_:null,isManual_:!1};let re=te,oe=objectTraps;X&&(re=[te],oe=arrayTraps);const{revoke:ne,proxy:de}=Proxy.revocable(re,oe);return te.draft_=de,te.revoke_=ne,de}var objectTraps={get(J,W){if(W===DRAFT_STATE)return J;const X=latest(J);if(!has(X,W))return readPropFromProto(J,X,W);const te=X[W];return J.finalized_||!isDraftable(te)?te:te===peek(J.base_,W)?(prepareCopy(J),J.copy_[W]=createProxy(te,J)):te},has(J,W){return W in latest(J)},ownKeys(J){return Reflect.ownKeys(latest(J))},set(J,W,X){const te=getDescriptorFromProto(latest(J),W);if(te?.set)return te.set.call(J.draft_,X),!0;if(!J.modified_){const re=peek(latest(J),W),oe=re?.[DRAFT_STATE];if(oe&&oe.base_===X)return J.copy_[W]=X,J.assigned_[W]=!1,!0;if(is(X,re)&&(X!==void 0||has(J.base_,W)))return!0;prepareCopy(J),markChanged(J)}return J.copy_[W]===X&&(X!==void 0||W in J.copy_)||Number.isNaN(X)&&Number.isNaN(J.copy_[W])||(J.copy_[W]=X,J.assigned_[W]=!0),!0},deleteProperty(J,W){return peek(J.base_,W)!==void 0||W in J.base_?(J.assigned_[W]=!1,prepareCopy(J),markChanged(J)):delete J.assigned_[W],J.copy_&&delete J.copy_[W],!0},getOwnPropertyDescriptor(J,W){const X=latest(J),te=Reflect.getOwnPropertyDescriptor(X,W);return te&&{writable:!0,configurable:J.type_!==1||W!=="length",enumerable:te.enumerable,value:X[W]}},defineProperty(){die(11)},getPrototypeOf(J){return getPrototypeOf(J.base_)},setPrototypeOf(){die(12)}},arrayTraps={};each(objectTraps,(J,W)=>{arrayTraps[J]=function(){return arguments[0]=arguments[0][0],W.apply(this,arguments)}}),arrayTraps.deleteProperty=function(J,W){return arrayTraps.set.call(this,J,W,void 0)},arrayTraps.set=function(J,W,X){return objectTraps.set.call(this,J[0],W,X,J[0])};function peek(J,W){const X=J[DRAFT_STATE];return(X?latest(X):J)[W]}function readPropFromProto(J,W,X){const te=getDescriptorFromProto(W,X);return te?"value"in te?te.value:te.get?.call(J.draft_):void 0}function getDescriptorFromProto(J,W){if(!(W in J))return;let X=getPrototypeOf(J);for(;X;){const te=Object.getOwnPropertyDescriptor(X,W);if(te)return te;X=getPrototypeOf(X)}}function markChanged(J){J.modified_||(J.modified_=!0,J.parent_&&markChanged(J.parent_))}function prepareCopy(J){J.copy_||(J.copy_=shallowCopy(J.base_,J.scope_.immer_.useStrictShallowCopy_))}var Immer2=class{constructor(J){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(W,X,te)=>{if(typeof W=="function"&&typeof X!="function"){const oe=X;X=W;const ne=this;return function(ce=oe,...ue){return ne.produce(ce,he=>X.call(this,he,...ue))}}typeof X!="function"&&die(6),te!==void 0&&typeof te!="function"&&die(7);let re;if(isDraftable(W)){const oe=enterScope(this),ne=createProxy(W,void 0);let de=!0;try{re=X(ne),de=!1}finally{de?revokeScope(oe):leaveScope(oe)}return usePatchesInScope(oe,te),processResult(re,oe)}else if(!W||typeof W!="object"){if(re=X(W),re===void 0&&(re=W),re===NOTHING&&(re=void 0),this.autoFreeze_&&freeze(re,!0),te){const oe=[],ne=[];getPlugin("Patches").generateReplacementPatches_(W,re,oe,ne),te(oe,ne)}return re}else die(1,W)},this.produceWithPatches=(W,X)=>{if(typeof W=="function")return(ne,...de)=>this.produceWithPatches(ne,ce=>W(ce,...de));let te,re;return[this.produce(W,X,(ne,de)=>{te=ne,re=de}),te,re]},typeof J?.autoFreeze=="boolean"&&this.setAutoFreeze(J.autoFreeze),typeof J?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(J.useStrictShallowCopy)}createDraft(J){isDraftable(J)||die(8),isDraft(J)&&(J=current(J));const W=enterScope(this),X=createProxy(J,void 0);return X[DRAFT_STATE].isManual_=!0,leaveScope(W),X}finishDraft(J,W){const X=J&&J[DRAFT_STATE];(!X||!X.isManual_)&&die(9);const{scope_:te}=X;return usePatchesInScope(te,W),processResult(void 0,te)}setAutoFreeze(J){this.autoFreeze_=J}setUseStrictShallowCopy(J){this.useStrictShallowCopy_=J}applyPatches(J,W){let X;for(X=W.length-1;X>=0;X--){const re=W[X];if(re.path.length===0&&re.op==="replace"){J=re.value;break}}X>-1&&(W=W.slice(X+1));const te=getPlugin("Patches").applyPatches_;return isDraft(J)?te(J,W):this.produce(J,re=>te(re,W))}};function createProxy(J,W){const X=isMap(J)?getPlugin("MapSet").proxyMap_(J,W):isSet(J)?getPlugin("MapSet").proxySet_(J,W):createProxyProxy(J,W);return(W?W.scope_:getCurrentScope()).drafts_.push(X),X}function current(J){return isDraft(J)||die(10,J),currentImpl(J)}function currentImpl(J){if(!isDraftable(J)||isFrozen(J))return J;const W=J[DRAFT_STATE];let X;if(W){if(!W.modified_)return W.base_;W.finalized_=!0,X=shallowCopy(J,W.scope_.immer_.useStrictShallowCopy_)}else X=shallowCopy(J,!0);return each(X,(te,re)=>{set(X,te,currentImpl(re))}),W&&(W.finalized_=!1),X}var immer=new Immer2,produce=immer.produce;immer.produceWithPatches.bind(immer),immer.setAutoFreeze.bind(immer),immer.setUseStrictShallowCopy.bind(immer),immer.applyPatches.bind(immer),immer.createDraft.bind(immer),immer.finishDraft.bind(immer);function assertIsFunction(J,W=`expected a function, instead received ${typeof J}`){if(typeof J!="function")throw new TypeError(W)}function assertIsObject(J,W=`expected an object, instead received ${typeof J}`){if(typeof J!="object")throw new TypeError(W)}function assertIsArrayOfFunctions(J,W="expected all items to be functions, instead received the following types: "){if(!J.every(X=>typeof X=="function")){const X=J.map(te=>typeof te=="function"?`function ${te.name||"unnamed"}()`:typeof te).join(", ");throw new TypeError(`${W}[${X}]`)}}var ensureIsArray=J=>Array.isArray(J)?J:[J];function getDependencies(J){const W=Array.isArray(J[0])?J[0]:J;return assertIsArrayOfFunctions(W,"createSelector expects all input-selectors to be functions, but received the following types: "),W}function collectInputSelectorResults(J,W){const X=[],{length:te}=J;for(let re=0;re<te;re++)X.push(J[re].apply(null,W));return X}var StrongRef=class{constructor(J){this.value=J}deref(){return this.value}},Ref=typeof WeakRef<"u"?WeakRef:StrongRef,UNTERMINATED=0,TERMINATED=1;function createCacheNode(){return{s:UNTERMINATED,v:void 0,o:null,p:null}}function weakMapMemoize(J,W={}){let X=createCacheNode();const{resultEqualityCheck:te}=W;let re,oe=0;function ne(){let de=X;const{length:ce}=arguments;for(let pe=0,fe=ce;pe<fe;pe++){const be=arguments[pe];if(typeof be=="function"||typeof be=="object"&&be!==null){let me=de.o;me===null&&(de.o=me=new WeakMap);const ge=me.get(be);ge===void 0?(de=createCacheNode(),me.set(be,de)):de=ge}else{let me=de.p;me===null&&(de.p=me=new Map);const ge=me.get(be);ge===void 0?(de=createCacheNode(),me.set(be,de)):de=ge}}const ue=de;let he;if(de.s===TERMINATED)he=de.v;else if(he=J.apply(null,arguments),oe++,te){const pe=re?.deref?.()??re;pe!=null&&te(pe,he)&&(he=pe,oe!==0&&oe--),re=typeof he=="object"&&he!==null||typeof he=="function"?new Ref(he):he}return ue.s=TERMINATED,ue.v=he,he}return ne.clearCache=()=>{X=createCacheNode(),ne.resetResultsCount()},ne.resultsCount=()=>oe,ne.resetResultsCount=()=>{oe=0},ne}function createSelectorCreator(J,...W){const X=typeof J=="function"?{memoize:J,memoizeOptions:W}:J,te=(...re)=>{let oe=0,ne=0,de,ce={},ue=re.pop();typeof ue=="object"&&(ce=ue,ue=re.pop()),assertIsFunction(ue,`createSelector expects an output function after the inputs, but received: [${typeof ue}]`);const he={...X,...ce},{memoize:pe,memoizeOptions:fe=[],argsMemoize:be=weakMapMemoize,argsMemoizeOptions:me=[]}=he,ge=ensureIsArray(fe),ve=ensureIsArray(me),_e=getDependencies(re),we=pe(function(){return oe++,ue.apply(null,arguments)},...ge),Se=be(function(){ne++;const Ce=collectInputSelectorResults(_e,arguments);return de=we.apply(null,Ce),de},...ve);return Object.assign(Se,{resultFunc:ue,memoizedResultFunc:we,dependencies:_e,dependencyRecomputations:()=>ne,resetDependencyRecomputations:()=>{ne=0},lastResult:()=>de,recomputations:()=>oe,resetRecomputations:()=>{oe=0},memoize:pe,argsMemoize:be})};return Object.assign(te,{withTypes:()=>te}),te}var createSelector=createSelectorCreator(weakMapMemoize),createStructuredSelector=Object.assign((J,W=createSelector)=>{assertIsObject(J,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof J}`);const X=Object.keys(J),te=X.map(oe=>J[oe]);return W(te,(...oe)=>oe.reduce((ne,de,ce)=>(ne[X[ce]]=de,ne),{}))},{withTypes:()=>createStructuredSelector});function createThunkMiddleware(J){return({dispatch:X,getState:te})=>re=>oe=>typeof oe=="function"?oe(X,te,J):re(oe)}var thunk=createThunkMiddleware(),withExtraArgument=createThunkMiddleware,composeWithDevTools=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?compose:compose.apply(null,arguments)};function createAction(J,W){function X(...te){if(W){let re=W(...te);if(!re)throw new Error(formatProdErrorMessage(0));return{type:J,payload:re.payload,..."meta"in re&&{meta:re.meta},..."error"in re&&{error:re.error}}}return{type:J,payload:te[0]}}return X.toString=()=>`${J}`,X.type=J,X.match=te=>isAction(te)&&te.type===J,X}var Tuple=class Es extends Array{constructor(...W){super(...W),Object.setPrototypeOf(this,Es.prototype)}static get[Symbol.species](){return Es}concat(...W){return super.concat.apply(this,W)}prepend(...W){return W.length===1&&Array.isArray(W[0])?new Es(...W[0].concat(this)):new Es(...W.concat(this))}};function freezeDraftable(J){return isDraftable(J)?produce(J,()=>{}):J}function getOrInsertComputed(J,W,X){return J.has(W)?J.get(W):J.set(W,X(W)).get(W)}function isBoolean(J){return typeof J=="boolean"}var buildGetDefaultMiddleware=()=>function(W){const{thunk:X=!0,immutableCheck:te=!0,serializableCheck:re=!0,actionCreatorCheck:oe=!0}=W??{};let ne=new Tuple;return X&&(isBoolean(X)?ne.push(thunk):ne.push(withExtraArgument(X.extraArgument))),ne},SHOULD_AUTOBATCH="RTK_autoBatch",createQueueWithTimer=J=>W=>{setTimeout(W,J)},autoBatchEnhancer=(J={type:"raf"})=>W=>(...X)=>{const te=W(...X);let re=!0,oe=!1,ne=!1;const de=new Set,ce=J.type==="tick"?queueMicrotask:J.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:createQueueWithTimer(10):J.type==="callback"?J.queueNotification:createQueueWithTimer(J.timeout),ue=()=>{ne=!1,oe&&(oe=!1,de.forEach(he=>he()))};return Object.assign({},te,{subscribe(he){const pe=()=>re&&he(),fe=te.subscribe(pe);return de.add(he),()=>{fe(),de.delete(he)}},dispatch(he){try{return re=!he?.meta?.[SHOULD_AUTOBATCH],oe=!re,oe&&(ne||(ne=!0,ce(ue))),te.dispatch(he)}finally{re=!0}}})},buildGetDefaultEnhancers=J=>function(X){const{autoBatch:te=!0}=X??{};let re=new Tuple(J);return te&&re.push(autoBatchEnhancer(typeof te=="object"?te:void 0)),re};function configureStore(J){const W=buildGetDefaultMiddleware(),{reducer:X=void 0,middleware:te,devTools:re=!0,preloadedState:oe=void 0,enhancers:ne=void 0}=J||{};let de;if(typeof X=="function")de=X;else if(isPlainObject$1(X))de=combineReducers(X);else throw new Error(formatProdErrorMessage(1));let ce;typeof te=="function"?ce=te(W):ce=W();let ue=compose;re&&(ue=composeWithDevTools({trace:!1,...typeof re=="object"&&re}));const he=applyMiddleware(...ce),pe=buildGetDefaultEnhancers(he);let fe=typeof ne=="function"?ne(pe):pe();const be=ue(...fe);return createStore(de,oe,be)}function executeReducerBuilderCallback(J){const W={},X=[];let te;const re={addCase(oe,ne){const de=typeof oe=="string"?oe:oe.type;if(!de)throw new Error(formatProdErrorMessage(28));if(de in W)throw new Error(formatProdErrorMessage(29));return W[de]=ne,re},addMatcher(oe,ne){return X.push({matcher:oe,reducer:ne}),re},addDefaultCase(oe){return te=oe,re}};return J(re),[W,X,te]}function isStateFunction(J){return typeof J=="function"}function createReducer(J,W){let[X,te,re]=executeReducerBuilderCallback(W),oe;if(isStateFunction(J))oe=()=>freezeDraftable(J());else{const de=freezeDraftable(J);oe=()=>de}function ne(de=oe(),ce){let ue=[X[ce.type],...te.filter(({matcher:he})=>he(ce)).map(({reducer:he})=>he)];return ue.filter(he=>!!he).length===0&&(ue=[re]),ue.reduce((he,pe)=>{if(pe)if(isDraft(he)){const be=pe(he,ce);return be===void 0?he:be}else{if(isDraftable(he))return produce(he,fe=>pe(fe,ce));{const fe=pe(he,ce);if(fe===void 0){if(he===null)return he;throw Error("A case reducer on a non-draftable value must not return undefined")}return fe}}return he},de)}return ne.getInitialState=oe,ne}var asyncThunkSymbol=Symbol.for("rtk-slice-createasyncthunk");function getType(J,W){return`${J}/${W}`}function buildCreateSlice({creators:J}={}){const W=J?.asyncThunk?.[asyncThunkSymbol];return function(te){const{name:re,reducerPath:oe=re}=te;if(!re)throw new Error(formatProdErrorMessage(11));const ne=(typeof te.reducers=="function"?te.reducers(buildReducerCreators()):te.reducers)||{},de=Object.keys(ne),ce={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},ue={addCase(we,Se){const ye=typeof we=="string"?we:we.type;if(!ye)throw new Error(formatProdErrorMessage(12));if(ye in ce.sliceCaseReducersByType)throw new Error(formatProdErrorMessage(13));return ce.sliceCaseReducersByType[ye]=Se,ue},addMatcher(we,Se){return ce.sliceMatchers.push({matcher:we,reducer:Se}),ue},exposeAction(we,Se){return ce.actionCreators[we]=Se,ue},exposeCaseReducer(we,Se){return ce.sliceCaseReducersByName[we]=Se,ue}};de.forEach(we=>{const Se=ne[we],ye={reducerName:we,type:getType(re,we),createNotation:typeof te.reducers=="function"};isAsyncThunkSliceReducerDefinition(Se)?handleThunkCaseReducerDefinition(ye,Se,ue,W):handleNormalReducerDefinition(ye,Se,ue)});function he(){const[we={},Se=[],ye=void 0]=typeof te.extraReducers=="function"?executeReducerBuilderCallback(te.extraReducers):[te.extraReducers],Ce={...we,...ce.sliceCaseReducersByType};return createReducer(te.initialState,Pe=>{for(let De in Ce)Pe.addCase(De,Ce[De]);for(let De of ce.sliceMatchers)Pe.addMatcher(De.matcher,De.reducer);for(let De of Se)Pe.addMatcher(De.matcher,De.reducer);ye&&Pe.addDefaultCase(ye)})}const pe=we=>we,fe=new Map;let be;function me(we,Se){return be||(be=he()),be(we,Se)}function ge(){return be||(be=he()),be.getInitialState()}function ve(we,Se=!1){function ye(Pe){let De=Pe[we];return typeof De>"u"&&Se&&(De=ge()),De}function Ce(Pe=pe){const De=getOrInsertComputed(fe,Se,()=>new WeakMap);return getOrInsertComputed(De,Pe,()=>{const Be={};for(const[Ne,Ie]of Object.entries(te.selectors??{}))Be[Ne]=wrapSelector(Ie,Pe,ge,Se);return Be})}return{reducerPath:we,getSelectors:Ce,get selectors(){return Ce(ye)},selectSlice:ye}}const _e={name:re,reducer:me,actions:ce.actionCreators,caseReducers:ce.sliceCaseReducersByName,getInitialState:ge,...ve(oe),injectInto(we,{reducerPath:Se,...ye}={}){const Ce=Se??oe;return we.inject({reducerPath:Ce,reducer:me},ye),{..._e,...ve(Ce,!0)}}};return _e}}function wrapSelector(J,W,X,te){function re(oe,...ne){let de=W(oe);return typeof de>"u"&&te&&(de=X()),J(de,...ne)}return re.unwrapped=J,re}var createSlice=buildCreateSlice();function buildReducerCreators(){function J(W,X){return{_reducerDefinitionType:"asyncThunk",payloadCreator:W,...X}}return J.withTypes=()=>J,{reducer(W){return Object.assign({[W.name](...X){return W(...X)}}[W.name],{_reducerDefinitionType:"reducer"})},preparedReducer(W,X){return{_reducerDefinitionType:"reducerWithPrepare",prepare:W,reducer:X}},asyncThunk:J}}function handleNormalReducerDefinition({type:J,reducerName:W,createNotation:X},te,re){let oe,ne;if("reducer"in te){if(X&&!isCaseReducerWithPrepareDefinition(te))throw new Error(formatProdErrorMessage(17));oe=te.reducer,ne=te.prepare}else oe=te;re.addCase(J,oe).exposeCaseReducer(W,oe).exposeAction(W,ne?createAction(J,ne):createAction(J))}function isAsyncThunkSliceReducerDefinition(J){return J._reducerDefinitionType==="asyncThunk"}function isCaseReducerWithPrepareDefinition(J){return J._reducerDefinitionType==="reducerWithPrepare"}function handleThunkCaseReducerDefinition({type:J,reducerName:W},X,te,re){if(!re)throw new Error(formatProdErrorMessage(18));const{payloadCreator:oe,fulfilled:ne,pending:de,rejected:ce,settled:ue,options:he}=X,pe=re(J,oe,he);te.exposeAction(W,pe),ne&&te.addCase(pe.fulfilled,ne),de&&te.addCase(pe.pending,de),ce&&te.addCase(pe.rejected,ce),ue&&te.addMatcher(pe.settled,ue),te.exposeCaseReducer(W,{fulfilled:ne||noop,pending:de||noop,rejected:ce||noop,settled:ue||noop})}function noop(){}function formatProdErrorMessage(J){return`Minified Redux Toolkit error #${J}; visit https://redux-toolkit.js.org/Errors?code=${J} for the full message or use the non-minified dev environment for full errors. `}const addItemsToCollection=(J,W,X,te,re)=>J[W]?{...J,[W]:{...J[W],items:[...J[W]?.items||[],...X]}}:{...J,[W]:{id:W,items:X,componentFactory:te,searchPredicate:re}},addItemToCollection=(J,W,X,te)=>addItemsToCollection(J,W,[X],te);function addActivityHistoryItemReducer(J,W){const{id:X,item:te,componentFactory:re}=W.payload;J.collections=addItemToCollection(J.collections,X,te,re)}function addActivityHistoryItemsReducer(J,W){const{id:X,items:te,componentFactory:re,searchPredicate:oe}=W.payload;return{...J,collections:addItemsToCollection(J.collections,X,te,re,oe)}}function addBusyHistoryItemReducer(J,W){J.busy.push(W.payload)}function removeBusyHistoryItemReducer(J,W){J.busy=J.busy.filter(X=>X!==W.payload)}function addErrorHistoryItemReducer(J,W){J.error.push(W.payload)}function removeErrorHistoryItemReducer(J,W){J.error=J.error.filter(X=>X.entityId!==W.payload)}function clearActivityHistoryCollectionsReducer(J){return{...J,collections:{}}}const removeItemFromCollection=(J,W,X)=>{if(!J[W]?.items)return J;const te=J[W]?.items??[];return{...J,[W]:{...J[W],items:te.filter(re=>re.id!==X)}}};function removeActivityHistoryItemReducer(J,W){const{id:X,itemId:te}=W.payload;J.collections=removeItemFromCollection(J.collections,X,te)}const updateItemInCollection=(J,W,X)=>{if(!J[W]?.items)return J;const te=J[W]?.items??[];return{...J,[W]:{...J[W],items:te.map(re=>re.id===X.id?X:re)}}};function updateActivityHistoryItemReducer(J,W){const{id:X,item:te}=W.payload;J.collections=updateItemInCollection(J.collections,X,te)}const activityHistoryCollectionsSlice=createSlice({name:"activity-history-collections",initialState:{busy:[],error:[],collections:{}},reducers:{addBusyHistoryItem:addBusyHistoryItemReducer,removeBusyHistoryItem:removeBusyHistoryItemReducer,addActivityHistoryItem:addActivityHistoryItemReducer,updateActivityHistoryItem:updateActivityHistoryItemReducer,addActivityHistoryItems:addActivityHistoryItemsReducer,clearActivityHistoryCollections:clearActivityHistoryCollectionsReducer,addErrorHistoryItem:addErrorHistoryItemReducer,removeErrorHistoryItem:removeErrorHistoryItemReducer,removeActivityHistoryItem:removeActivityHistoryItemReducer}});function setSearchStringReducer(J,W){J.searchString=W.payload}class Spec{and(W){return new AndSpec(this,W)}or(W){return new OrSpec(this,W)}not(){return new NotSpec(this)}}class AndSpec extends Spec{constructor(W,X){super(),this.left=W,this.right=X}isSatisfiedBy(W){return this.left.isSatisfiedBy(W)&&this.right.isSatisfiedBy(W)}}class OrSpec extends Spec{constructor(W,X){super(),this.left=W,this.right=X}isSatisfiedBy(W){return this.left.isSatisfiedBy(W)||this.right.isSatisfiedBy(W)}}class NotSpec extends Spec{constructor(W){super(),this.spec=W}isSatisfiedBy(W){return!this.spec.isSatisfiedBy(W)}}let shellApiRef=null;const setShellApiForOwnSpec=J=>{shellApiRef=J};class OwnSpec extends Spec{constructor(W){super(),this.context=W}isSatisfiedBy(W){if(!shellApiRef)return!1;try{const X=shellApiRef.globalStateManager.getData("userInfo");return W?.professional?.id===X?.userId}catch{return!1}}}class RelevantSpec extends Spec{constructor(W){super(),this.context=W}isSatisfiedBy(W){return W?.relevant??!1}}var ActivityHistoryFilterType=(J=>(J.Switch="switch",J.Checkbox="checkbox",J.Dropdown="dropdown",J))(ActivityHistoryFilterType||{});const isCommonFilterGroup=J=>J.id==="common",isDiagnosticFilter=J=>J.id===diagnosticsfilterId,isCustomFilter=J=>!isCommonFilterGroup(J)&&!isDiagnosticFilter(J)&&!isUpFilter(J),isUpFilter=J=>J.id===upFilterId,diagnosticsfilterId="history-diagnostics",relevantFilterId="history-relevant",ownFilterId="history-own",upFilterId="history-up",commonFilters=[{id:"common",title:"Comuns",filters:[{id:relevantFilterId,title:"Veure rellevants",spec:RelevantSpec,enabled:!1,type:ActivityHistoryFilterType.Switch},{id:ownFilterId,title:"Veure meus",spec:OwnSpec,enabled:!1,type:ActivityHistoryFilterType.Switch}]}];function setCommonFilterValueReducer(J,W){J.filters=J.filters.map(X=>X.id==="common"?{...X,filters:X.filters.map(te=>te.id===W.payload.id?{...te,enabled:W.payload.enabled}:te)}:X)}function addCustomFiltersReducer(J,W){J.filters.some(te=>te.id===W.payload.id)||(J.filters=[...J.filters,W.payload])}function clearCustomFiltersReducer(J){J.filters=J.filters.filter(W=>!isCustomFilter(W))}function setCustomFilterAllValuesReducer(J,W){J.filters=J.filters.map(X=>X.id===W.payload.filterGroupId?{...X,filters:X.filters.map(te=>te.id===W.payload.filterId?{...te,enabledValues:W.payload.values}:te)}:X)}function setCustomFilterGroupValueReducer(J,W){J.filters=J.filters.map(X=>X.id===W.payload.id?{...X,enabled:W.payload.enabled}:X)}function setCustomFilterValueReducer(J,W){J.filters=J.filters.map(X=>X.id===W.payload.filterGroupId?{...X,filters:X.filters.map(te=>te.id===W.payload.filterId?te.singleOption?setSingleOptionFilterValue(te,W.payload.enabled):setMultipleOptionsFilterValue(te,W.payload):te)}:X)}const setMultipleOptionsFilterValue=(J,W)=>{const{optionId:X,enabled:te}=W;return J.enabledValues?.some(re=>re===X)&&te?J:X==null?{...J,enabledValues:[]}:{...J,enabledValues:te?[...J.enabledValues||[],X]:J.enabledValues.filter(re=>re!==X)}},setSingleOptionFilterValue=(J,W)=>({...J,enabled:W,enabledValues:W?[!0]:[]});function deleteDiagnosticFilterValueReducer(J,W){J.filters.some(isDiagnosticFilter)&&(J.filters=[...J.filters].map(te=>{if(isDiagnosticFilter(te)){const re=te.enabledValues.filter(oe=>{if(oe.codi===W.payload.diagnosticCodi)return!1;const ne=te.enabledValues.some(ce=>ce.codi===W.payload.diagnosticCodi&&ce.evolucions?.some(ue=>ue.codi===oe.codi)),de=te.enabledValues.some(ce=>ce.codi===W.payload.diagnosticCodi&&ce.relacions?.some(ue=>ue.codi===oe.codi));return!ne&&!de});return{...te,enabledValues:re}}return te}))}function setDiagnosticFilterValuesReducer(J,W){if(J.filters.some(isDiagnosticFilter))J.filters=[...J.filters].map(te=>isDiagnosticFilter(te)?{...te,enabledValues:W.payload}:te);else{const te={id:diagnosticsfilterId,title:"Diagnòstics",values:[],enabledValues:W.payload};J.filters=[...J.filters,te]}}function resetFiltersReducer(J,W){J.filters=J.filters.map(X=>X.id!=="common"&&X.id!=="history-diagnostics"&&X.id!=="history-up"?{...X,filters:X.filters.map(te=>te.singleOption?{...te,enabled:!1}:{...te,enabled:!0,enabledValues:[]})}:X.id==="history-diagnostics"||X.id==="history-up"?{...X,enabledValues:[]}:X.id==="common"?commonFilters[0]:X)}function addUpFiltersReducer(J,W){const X=J.filters.findIndex(isUpFilter);if(X===-1)J.filters.push(W.payload);else{const te=J.filters[X],re=[...te.values,...W.payload.values.filter(oe=>!te.values.some(ne=>ne.value===oe.value))];J.filters[X]={...te,values:re}}}function setUpFilterValuesReducer(J,W){J.filters=[...J.filters].map(X=>isUpFilter(X)?{...X,enabledValues:W.payload}:X)}const activityHistoryFiltersSlice=createSlice({name:"activity-history-filters",initialState:{searchString:"",filters:[...commonFilters]},reducers:{setSearchString:setSearchStringReducer,setCommonFilterValue:setCommonFilterValueReducer,addCustomFilters:addCustomFiltersReducer,clearCustomFilters:clearCustomFiltersReducer,setCustomFilterGroupValue:setCustomFilterGroupValueReducer,setCustomFilterValue:setCustomFilterValueReducer,setCustomFilterAllValues:setCustomFilterAllValuesReducer,setDiagnosticFilterValues:setDiagnosticFilterValuesReducer,deleteDiagnosticFilterValue:deleteDiagnosticFilterValueReducer,addUpFilters:addUpFiltersReducer,setUpFilterValues:setUpFilterValuesReducer,resetFilters:resetFiltersReducer}}),store=configureStore({reducer:{activityHistoryCollections:activityHistoryCollectionsSlice.reducer,activityHistoryFilters:activityHistoryFiltersSlice.reducer},devTools:{name:"activity-history"},middleware:J=>J({serializableCheck:!1})});store.dispatch,store.getState;const container=new Container,{lazyInject}=getDecorators(container),bindDeps=J=>{container.bind(TYPES.primaryApi).toConstantValue(J),container.bind(TYPES.store).toConstantValue(store)},unbindDeps=()=>{container.unbind(TYPES.primaryApi),container.unbind(TYPES.store)};var __getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$w=(J,W,X,te)=>{for(var re=te>1?void 0:te?__getOwnPropDesc$k(W,X):W,oe=J.length-1,ne;oe>=0;oe--)(ne=J[oe])&&(re=ne(re)||re);return re},__decorateParam$5=(J,W)=>(X,te)=>W(X,te,J);let StoreBaseHandler=class{constructor(J){this.store=J}};StoreBaseHandler=__decorateClass$w([injectable(),__decorateParam$5(0,inject(TYPES.store))],StoreBaseHandler);let ApiBaseHandler=class{constructor(J){this.api=J}};ApiBaseHandler=__decorateClass$w([injectable(),__decorateParam$5(0,inject(TYPES.primaryApi))],ApiBaseHandler);let BaseHandler=class{constructor(J,W){this.store=J,this.api=W}};BaseHandler=__decorateClass$w([injectable(),__decorateParam$5(0,inject(TYPES.store)),__decorateParam$5(1,inject(TYPES.primaryApi))],BaseHandler);const{addBusyHistoryItem,removeBusyHistoryItem}=activityHistoryCollectionsSlice.actions,{addErrorHistoryItem,removeErrorHistoryItem}=activityHistoryCollectionsSlice.actions,validateAddAsyncCommand=(J,W)=>{if(!J.filters)throw new Error("filters is required");if(J.entityId!==J.filters.id)throw new Error("entityId and filters.id must be the same");if(!J.filters.title)throw new Error("filters.title is required");if(!J.asyncDataProvider)throw new Error("asyncDataProvider is required");if(!J.componentFactory)throw new Error("componentFactory is required");if(!J.errorMessage)throw new Error("errorMessage is required for failure asyncDataProviders");if(W==null)throw new Error("items is required");if(!Array.isArray(W))throw new Error("items must be an array")};class InjectAsyncHistoryItemsHandler extends BaseHandler{async handle(W){this.store.dispatch(addBusyHistoryItem(W.entityId));try{const X=await W.asyncDataProvider();validateAddAsyncCommand(W,X),this.api.broker.send(this.api.broker.events.activityHistory.addHistoryItemsRequest,{entityId:W.entityId,entityDescription:W.entityDescription,items:X,componentFactory:W.componentFactory,searchPredicate:W.searchPredicate,filters:W.filters})}catch(X){console.error(X.message),this.store.dispatch(addErrorHistoryItem({entityId:W.entityId,message:W.errorMessage||X.message,entityDescription:W.entityDescription}))}finally{this.store.dispatch(removeBusyHistoryItem(W.entityId))}}}let request$k;const bootstrapInjectAsyncHistoryItems=(J,W)=>{request$k=J.registerRequest(W.broker.events.activityHistory.injectAsyncHistoryItemsRequest,InjectAsyncHistoryItemsHandler)},teardownInjectAsyncHistoryItems=()=>{request$k?.dispose()};let pluginLocaleManager;const initializeLocalization=async J=>{pluginLocaleManager=await J.createLocaleManager(locales)},translate=J=>pluginLocaleManager?pluginLocaleManager.translate(J):J,locales={ca:{"activity-history":{activityHistory:"Històric d’activitat",search:"Cercar",groupedView:"Visió agrupada",maximize:"Ampliar",deleted:"Eliminat",goToDate:"Anar a data",busyEntriesLoading:"Carregant totes les entrades",noResults:"Sense resultats. Modifica la cerca",noData:{title:"Sense dades",description:"No existeix informació per a mostrar"},isGrouping:"Creant agrupacions i preparant les dades...",searchBarResults:"Resultats per",actions:{cronogram:"Cronograma",exportPdf:"Exportar PDF",moreOptions:"Més opcions",refresh:"Refrescar",entryLegend:"Llegenda entrades",maximizeButton:"Botó maximitzar",menuButton:"Botó menu"},modal:{selectExportOption:"Tria una opció d'exportació",allActivityHistory:"Tot l’històric d’activitat",onlyAppliedFilters:"Només amb filtres aplicats",selectDateRange:"En el cas que sigui necessari, selecciona un rang de dates",helpText:"Sense seleccionar data, s'aplicarà la de la primera entrada. Sense seleccionar data de fi, s'aplicarà la de l'última entrada.",startDate:"Data Inici",endDate:"Data Fi",cancel:"Cancel·lar",export:"Exportar"},filters:{filters:"Filtres",searchFilter:"Cercar filtre",ownFilters:"Els meus",rellevantFilters:"Rellevants",episode:"Episodi",dates:"Dates",diagnoses:"Diagnòstics",clinicalCourseType:"Tipus Curs Clínic",selected:"seleccionats",applyFilters:"Aplicar filtres",deleted:"Eliminats"},tooltips:{subjective:"Subjectiu",UPconfidenciality:"Confidencialitat: per a la meva UP"},grouped:{clinicalCourses:"Cursos clínics",activities:"Activitats",variablees:"Variables",prescriptions:"Prescripcions"},chipHeader:{selection:"Selecció:",without:"Sense",cleanFilters:"Netejar filtres"},error:{general:{title:"Hi ha hagut un problema durant la càrrega de contingut. Actualitza la pàgina o torna-ho a provar més tard.",refresh:"Actualitzar pàgina",noInfo:"No hi ha informació disponible."},partial:{title:"Hi ha hagut un problema i no s'ha pogut carregar les notes de tipus",refresh:"Actualitzar",limit:"Límit de clicks superat"},title:"Error en la càrrega",viewDetails:"Veure detalls",imageAlt:"Imatge d'error",errorToRefresh:"Error en l'acció d'actualitzar la pàgina",itemAlreadyExists:"Aquest element ja existeix al històric d'activitat",allItemsAlreadyExist:"Tots els elements ja existeixen al històric d'activitat",filterNotInitialized:"No s'han pogut afegir elements ja que aquesta iniciativa no ha sigut inicialitzada a l'Històric d'Activitat."},warning:{someItemsAlreadyExist:"Alguns elements ja existien al històric d'activitat i no s'han afegit"}}}},existItemInCollection=(J,W,X)=>{const te=J?.[W];return te?.items?te.items.some(re=>re.id===X):!1},isString=J=>typeof J=="string"&&J.trim()!=="",isValidDateString=J=>{if(typeof J!="string"||J.trim()==="")return!1;const W=new Date(J);return W instanceof Date&&!Number.isNaN(W.getTime())},isValidBasicActivityHistoryItem=J=>J&&isString(J.id)&&isValidDateString(J.date),ensureAreValidBasicActivityHistoryItems=J=>{if(!J.every(isValidBasicActivityHistoryItem))throw console.error("Invalid activity history items",J),new Error("Invalid activity history items");return J},notifyInvalidItem=J=>{console.error("Invalid history item",J)},validateAndFilterBasicItems=J=>{const W=[];for(const X of J)isValidBasicActivityHistoryItem(X)?W.push(X):notifyInvalidItem(X);return W},getUpFilter=J=>{const W=J.flatMap(X=>X.up??[]).filter(X=>X?.id?.trim()).filter((X,te,re)=>te===re.findIndex(oe=>oe.id===X.id));if(W.length>0)return{id:upFilterId,title:"UP",values:mapArrayToLabelValue(W,"description","id"),enabledValues:[]}},handleAddUpFilter=(J,W)=>{const X=getUpFilter(J);X&&W.dispatch(activityHistoryFiltersSlice.actions.addUpFilters(X))},{addActivityHistoryItem}=activityHistoryCollectionsSlice.actions;class AddHistoryItemHandler extends BaseHandler{async handle(W){try{ensureAreValidBasicActivityHistoryItems([W.item]);const X=this.store.getState(),te=existItemInCollection(X.activityHistoryCollections?.collections,W.entityId,W.item.id),re=X.activityHistoryFilters?.filters?.find(oe=>oe.id===W.entityId);if(te)throw new Error(translate("error.itemAlreadyExists"));if(!re)throw new Error(translate("error.filterNotInitialized"));handleAddUpFilter([W.item],this.store),this.store.dispatch(addActivityHistoryItem({id:W.entityId,item:W.item,componentFactory:W.componentFactory}))}catch(X){this.api.notificationService.error(X.message)}}}let request$j;const bootstrapAddHistoryItem=(J,W)=>{request$j=J.registerRequest(W.broker.events.activityHistory.addHistoryItemRequest,AddHistoryItemHandler)},teardownAddHistoryItem=()=>{request$j?.dispose()};class AddCustomFiltersCommand{constructor(W){this.payload=W}}const{addActivityHistoryItems}=activityHistoryCollectionsSlice.actions;class AddHistoryItemsHandler extends BaseHandler{async handle(W){try{const X=validateAndFilterBasicItems(W.items),te=this.filterDuplicateItems(X,W.entityId);if(!this.store.getState().activityHistoryFilters?.filters?.find(ne=>ne.id===W.entityId)&&!W.filters)throw new Error(translate("error.filterNotInitialized"));te.length>0&&handleAddUpFilter(te,this.store),this.store.dispatch(addActivityHistoryItems({id:W.entityId,items:te,componentFactory:W.componentFactory,searchPredicate:W.searchPredicate})),W.filters&&this.api.broker.send(new AddCustomFiltersCommand(W.filters))}catch(X){this.api.notificationService.error(X.message)}}filterDuplicateItems(W,X){if(W.length===0)return[];const te=this.store.getState(),re=W.filter(oe=>!existItemInCollection(te.activityHistoryCollections?.collections,X,oe.id));if(re.length===0&&W.length>0)throw new Error(translate("error.allItemsAlreadyExist"));return re.length<W.length&&this.api.notificationService.warning(translate("warning.someItemsAlreadyExist")),re}}let request$i;const bootstrapAddHistoryItems=(J,W)=>{request$i=J.registerRequest(W.broker.events.activityHistory.addHistoryItemsRequest,AddHistoryItemsHandler)},teardownAddHistoryItems=()=>{request$i?.dispose()};function connectedProperty(J,W={}){return createConnectedProperty(store)(J,W)}const isAnyCollectionBusySelector=J=>J.activityHistoryCollections.busy.length>0,isSomeCollectionLoadedAndOtherLoading=J=>Object.values(J.activityHistoryCollections.collections)&&isAnyCollectionBusySelector(J),isEmptyDataAndOtherLoading=J=>!Object.values(J.activityHistoryCollections.collections)?.length&&isAnyCollectionBusySelector(J),styles$m=".spinner-container{display:flex;flex-direction:row;align-items:center;gap:24px;justify-content:center;padding-top:16px}.skeleton-container{padding:20px;height:100%}",template$o=J=>J.isEmptyDataAndOtherLoading?ke$1`<div class="skeleton-container">${J.skeletons}</div>`:J.isSomeCollectionLoadedAndOtherLoading?ke$1`<div class="spinner-container"><dss-spinner size="sm"></dss-spinner><div class="busy-description">${translate("busyEntriesLoading")}</div></div>`:D$7;var __defProp$p=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$v=(J,W,X,te)=>{for(var re=te>1?void 0:te?__getOwnPropDesc$j(W,X):W,oe=J.length-1,ne;oe>=0;oe--)(ne=J[oe])&&(re=(te?ne(W,X,re):ne(re))||re);return te&&re&&__defProp$p(W,X,re),re};let ActivityHistoryBusy=class extends h$p{render(){return ke$1`${template$o(this)}`}get skeletons(){return Array.from({length:12},()=>ke$1`<dss-skeleton width="100" height="10"></dss-skeleton>`)}};ActivityHistoryBusy.styles=i$H`
|
|
303
|
+
`),html:X.join("<br><br>")}}}class PrimariaContextManagerImpl{constructor(){this.context={}}initializeContext(W){this.context={...W}}getContext(){return{...this.context}}}let contextManager$1;const createContextManager=()=>contextManager$1||(contextManager$1=new PrimariaContextManagerImpl,contextManager$1),broker$1=createBroker(),regionManager=y$d("primaria"),PrimariaRegionHost=d$n(regionManager),tokenManager=createTokenManager(),userManager=createUserManager(tokenManager),globalStateManager=createGlobalStateManager(broker$1),contextManager=createContextManager(),pluginBusyManager=new PluginBusyManagerImpl,quickActionBusyManager=new QuickActionBusyManagerImpl(broker$1),interactionService=new ParimariaInteractionServiceImpl,notificationService=new PrimariaNotificationServiceImpl,ecapEventManager=createEcapEventManager(),pdfViewerManager=createPdfViewerManager(broker$1,notificationService),importDataManager=new ImportDataManagerImpl(interactionService),primariaApiFactory=J=>{const W=createRegionManagerProxy(J,regionManager,broker$1);return{pluginInfo:J,regionManager:W,httpClient:createHttpClient(tokenManager,broker$1),broker:broker$1,createLocaleManager:createLocaleManager(J.pluginId),globalStateManager,contextManager,tokenManager,userManager,ecapEventManager,pluginBusyManager,quickActionBusyManager,interactionService,notificationService,pdfViewerManager,importDataManager}},shellApi=primariaApiFactory({pluginId:primariaShellId}),api=Object.freeze(Object.defineProperty({__proto__:null,PrimariaRegionHost,primariaApiFactory,shellApi},Symbol.toStringTag,{value:"Module"})),registerRequest$1=(J,W)=>(X,te)=>{W.bind(te).to(te).inTransientScope(),injectable()(te);const re=J.broker.registerRequest(X,oe=>W.get(te).handle(oe));return{dispose:()=>{W.isBound(te)&&W.unbind(te),re.dispose()}}},registerRequest=(J,W)=>(X,te)=>{W.bind(te).to(te).inTransientScope(),injectable()(te);const re=J.broker.registerRequest(X,oe=>W.get(te).handle(oe));return{dispose:()=>{W.isBound(te)&&W.unbind(te),re.dispose()}}},brokerExtensions=(J,W)=>({registerRequest:registerRequest(J,W)}),generateId=()=>{try{if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID()}catch{console.warn("crypto.randomUUID() failed, using fallback")}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,J=>{const W=Math.random()*16|0;return(J==="x"?W:W&3|8).toString(16)})},mapArrayToLabelValue=(J,W,X)=>J.map(te=>{const re=te[W],oe=te[X];return(re===""||re==null)&&typeof oe=="string"&&oe.trim()!==""?{label:oe,value:oe}:(re===""||re==null)&&(oe===""||oe==null)?null:{label:re,value:oe}}).filter(te=>te!==null);function createConnectToStoreDecorator(J){return function(X){return(te,re)=>{Object.defineProperty(te,re,{get(){return this[`__${re}`]},set(de){this[`__${re}`]!==de&&(this[`__${re}`]=Array.isArray(de)?[...de]:typeof de=="object"&&de!==null?{...de}:de,this.requestUpdate(re))},configurable:!0,enumerable:!0});const oe=te.connectedCallback,ne=te.disconnectedCallback;te.connectedCallback=function(){oe&&oe.call(this),this[re]=X(J.getState()),this[`__unsubscribe__${re}`]=J.subscribe(()=>{const de=X(J.getState());this[re]=Array.isArray(de)?[...de]:typeof de=="object"&&de!==null?{...de}:de})},te.disconnectedCallback=function(){ne&&ne.call(this),this[`__unsubscribe__${re}`]&&this[`__unsubscribe__${re}`]()}}}}function createConnectedProperty(J){return(W,X={})=>{const te=createConnectToStoreDecorator(J);return(re,oe)=>{n$B(X)(re,oe),te(W)(re,oe)}}}const TYPES={primaryApi:Symbol.for("primaryApi"),store:Symbol.for("store")};function formatProdErrorMessage$1(J){return`Minified Redux error #${J}; visit https://redux.js.org/Errors?code=${J} for the full message or use the non-minified dev environment for full errors. `}var $$observable=typeof Symbol=="function"&&Symbol.observable||"@@observable",symbol_observable_default=$$observable,randomString=()=>Math.random().toString(36).substring(7).split("").join("."),ActionTypes={INIT:`@@redux/INIT${randomString()}`,REPLACE:`@@redux/REPLACE${randomString()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${randomString()}`},actionTypes_default=ActionTypes;function isPlainObject$1(J){if(typeof J!="object"||J===null)return!1;let W=J;for(;Object.getPrototypeOf(W)!==null;)W=Object.getPrototypeOf(W);return Object.getPrototypeOf(J)===W||Object.getPrototypeOf(J)===null}function createStore(J,W,X){if(typeof J!="function")throw new Error(formatProdErrorMessage$1(2));if(typeof W=="function"&&typeof X=="function"||typeof X=="function"&&typeof arguments[3]=="function")throw new Error(formatProdErrorMessage$1(0));if(typeof W=="function"&&typeof X>"u"&&(X=W,W=void 0),typeof X<"u"){if(typeof X!="function")throw new Error(formatProdErrorMessage$1(1));return X(createStore)(J,W)}let te=J,re=W,oe=new Map,ne=oe,de=0,ce=!1;function ue(){ne===oe&&(ne=new Map,oe.forEach((ve,_e)=>{ne.set(_e,ve)}))}function he(){if(ce)throw new Error(formatProdErrorMessage$1(3));return re}function pe(ve){if(typeof ve!="function")throw new Error(formatProdErrorMessage$1(4));if(ce)throw new Error(formatProdErrorMessage$1(5));let _e=!0;ue();const we=de++;return ne.set(we,ve),function(){if(_e){if(ce)throw new Error(formatProdErrorMessage$1(6));_e=!1,ue(),ne.delete(we),oe=null}}}function fe(ve){if(!isPlainObject$1(ve))throw new Error(formatProdErrorMessage$1(7));if(typeof ve.type>"u")throw new Error(formatProdErrorMessage$1(8));if(typeof ve.type!="string")throw new Error(formatProdErrorMessage$1(17));if(ce)throw new Error(formatProdErrorMessage$1(9));try{ce=!0,re=te(re,ve)}finally{ce=!1}return(oe=ne).forEach(we=>{we()}),ve}function be(ve){if(typeof ve!="function")throw new Error(formatProdErrorMessage$1(10));te=ve,fe({type:actionTypes_default.REPLACE})}function me(){const ve=pe;return{subscribe(_e){if(typeof _e!="object"||_e===null)throw new Error(formatProdErrorMessage$1(11));function we(){const ye=_e;ye.next&&ye.next(he())}return we(),{unsubscribe:ve(we)}},[symbol_observable_default](){return this}}}return fe({type:actionTypes_default.INIT}),{dispatch:fe,subscribe:pe,getState:he,replaceReducer:be,[symbol_observable_default]:me}}function assertReducerShape(J){Object.keys(J).forEach(W=>{const X=J[W];if(typeof X(void 0,{type:actionTypes_default.INIT})>"u")throw new Error(formatProdErrorMessage$1(12));if(typeof X(void 0,{type:actionTypes_default.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(formatProdErrorMessage$1(13))})}function combineReducers(J){const W=Object.keys(J),X={};for(let oe=0;oe<W.length;oe++){const ne=W[oe];typeof J[ne]=="function"&&(X[ne]=J[ne])}const te=Object.keys(X);let re;try{assertReducerShape(X)}catch(oe){re=oe}return function(ne={},de){if(re)throw re;let ce=!1;const ue={};for(let he=0;he<te.length;he++){const pe=te[he],fe=X[pe],be=ne[pe],me=fe(be,de);if(typeof me>"u")throw de&&de.type,new Error(formatProdErrorMessage$1(14));ue[pe]=me,ce=ce||me!==be}return ce=ce||te.length!==Object.keys(ne).length,ce?ue:ne}}function compose(...J){return J.length===0?W=>W:J.length===1?J[0]:J.reduce((W,X)=>(...te)=>W(X(...te)))}function applyMiddleware(...J){return W=>(X,te)=>{const re=W(X,te);let oe=()=>{throw new Error(formatProdErrorMessage$1(15))};const ne={getState:re.getState,dispatch:(ce,...ue)=>oe(ce,...ue)},de=J.map(ce=>ce(ne));return oe=compose(...de)(re.dispatch),{...re,dispatch:oe}}}function isAction(J){return isPlainObject$1(J)&&"type"in J&&typeof J.type=="string"}var NOTHING=Symbol.for("immer-nothing"),DRAFTABLE=Symbol.for("immer-draftable"),DRAFT_STATE=Symbol.for("immer-state");function die(J,...W){throw new Error(`[Immer] minified error nr: ${J}. Full error at: https://bit.ly/3cXEKWf`)}var getPrototypeOf=Object.getPrototypeOf;function isDraft(J){return!!J&&!!J[DRAFT_STATE]}function isDraftable(J){return J?isPlainObject(J)||Array.isArray(J)||!!J[DRAFTABLE]||!!J.constructor?.[DRAFTABLE]||isMap(J)||isSet(J):!1}var objectCtorString=Object.prototype.constructor.toString();function isPlainObject(J){if(!J||typeof J!="object")return!1;const W=getPrototypeOf(J);if(W===null)return!0;const X=Object.hasOwnProperty.call(W,"constructor")&&W.constructor;return X===Object?!0:typeof X=="function"&&Function.toString.call(X)===objectCtorString}function each(J,W){getArchtype(J)===0?Reflect.ownKeys(J).forEach(X=>{W(X,J[X],J)}):J.forEach((X,te)=>W(te,X,J))}function getArchtype(J){const W=J[DRAFT_STATE];return W?W.type_:Array.isArray(J)?1:isMap(J)?2:isSet(J)?3:0}function has(J,W){return getArchtype(J)===2?J.has(W):Object.prototype.hasOwnProperty.call(J,W)}function set(J,W,X){const te=getArchtype(J);te===2?J.set(W,X):te===3?J.add(X):J[W]=X}function is(J,W){return J===W?J!==0||1/J===1/W:J!==J&&W!==W}function isMap(J){return J instanceof Map}function isSet(J){return J instanceof Set}function latest(J){return J.copy_||J.base_}function shallowCopy(J,W){if(isMap(J))return new Map(J);if(isSet(J))return new Set(J);if(Array.isArray(J))return Array.prototype.slice.call(J);const X=isPlainObject(J);if(W===!0||W==="class_only"&&!X){const te=Object.getOwnPropertyDescriptors(J);delete te[DRAFT_STATE];let re=Reflect.ownKeys(te);for(let oe=0;oe<re.length;oe++){const ne=re[oe],de=te[ne];de.writable===!1&&(de.writable=!0,de.configurable=!0),(de.get||de.set)&&(te[ne]={configurable:!0,writable:!0,enumerable:de.enumerable,value:J[ne]})}return Object.create(getPrototypeOf(J),te)}else{const te=getPrototypeOf(J);if(te!==null&&X)return{...J};const re=Object.create(te);return Object.assign(re,J)}}function freeze(J,W=!1){return isFrozen(J)||isDraft(J)||!isDraftable(J)||(getArchtype(J)>1&&(J.set=J.add=J.clear=J.delete=dontMutateFrozenCollections),Object.freeze(J),W&&Object.entries(J).forEach(([X,te])=>freeze(te,!0))),J}function dontMutateFrozenCollections(){die(2)}function isFrozen(J){return Object.isFrozen(J)}var plugins={};function getPlugin(J){const W=plugins[J];return W||die(0,J),W}var currentScope;function getCurrentScope(){return currentScope}function createScope(J,W){return{drafts_:[],parent_:J,immer_:W,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function usePatchesInScope(J,W){W&&(getPlugin("Patches"),J.patches_=[],J.inversePatches_=[],J.patchListener_=W)}function revokeScope(J){leaveScope(J),J.drafts_.forEach(revokeDraft),J.drafts_=null}function leaveScope(J){J===currentScope&&(currentScope=J.parent_)}function enterScope(J){return currentScope=createScope(currentScope,J)}function revokeDraft(J){const W=J[DRAFT_STATE];W.type_===0||W.type_===1?W.revoke_():W.revoked_=!0}function processResult(J,W){W.unfinalizedDrafts_=W.drafts_.length;const X=W.drafts_[0];return J!==void 0&&J!==X?(X[DRAFT_STATE].modified_&&(revokeScope(W),die(4)),isDraftable(J)&&(J=finalize(W,J),W.parent_||maybeFreeze(W,J)),W.patches_&&getPlugin("Patches").generateReplacementPatches_(X[DRAFT_STATE].base_,J,W.patches_,W.inversePatches_)):J=finalize(W,X,[]),revokeScope(W),W.patches_&&W.patchListener_(W.patches_,W.inversePatches_),J!==NOTHING?J:void 0}function finalize(J,W,X){if(isFrozen(W))return W;const te=W[DRAFT_STATE];if(!te)return each(W,(re,oe)=>finalizeProperty(J,te,W,re,oe,X)),W;if(te.scope_!==J)return W;if(!te.modified_)return maybeFreeze(J,te.base_,!0),te.base_;if(!te.finalized_){te.finalized_=!0,te.scope_.unfinalizedDrafts_--;const re=te.copy_;let oe=re,ne=!1;te.type_===3&&(oe=new Set(re),re.clear(),ne=!0),each(oe,(de,ce)=>finalizeProperty(J,te,re,de,ce,X,ne)),maybeFreeze(J,re,!1),X&&J.patches_&&getPlugin("Patches").generatePatches_(te,X,J.patches_,J.inversePatches_)}return te.copy_}function finalizeProperty(J,W,X,te,re,oe,ne){if(isDraft(re)){const de=oe&&W&&W.type_!==3&&!has(W.assigned_,te)?oe.concat(te):void 0,ce=finalize(J,re,de);if(set(X,te,ce),isDraft(ce))J.canAutoFreeze_=!1;else return}else ne&&X.add(re);if(isDraftable(re)&&!isFrozen(re)){if(!J.immer_.autoFreeze_&&J.unfinalizedDrafts_<1)return;finalize(J,re),(!W||!W.scope_.parent_)&&typeof te!="symbol"&&Object.prototype.propertyIsEnumerable.call(X,te)&&maybeFreeze(J,re)}}function maybeFreeze(J,W,X=!1){!J.parent_&&J.immer_.autoFreeze_&&J.canAutoFreeze_&&freeze(W,X)}function createProxyProxy(J,W){const X=Array.isArray(J),te={type_:X?1:0,scope_:W?W.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:{},parent_:W,base_:J,draft_:null,copy_:null,revoke_:null,isManual_:!1};let re=te,oe=objectTraps;X&&(re=[te],oe=arrayTraps);const{revoke:ne,proxy:de}=Proxy.revocable(re,oe);return te.draft_=de,te.revoke_=ne,de}var objectTraps={get(J,W){if(W===DRAFT_STATE)return J;const X=latest(J);if(!has(X,W))return readPropFromProto(J,X,W);const te=X[W];return J.finalized_||!isDraftable(te)?te:te===peek(J.base_,W)?(prepareCopy(J),J.copy_[W]=createProxy(te,J)):te},has(J,W){return W in latest(J)},ownKeys(J){return Reflect.ownKeys(latest(J))},set(J,W,X){const te=getDescriptorFromProto(latest(J),W);if(te?.set)return te.set.call(J.draft_,X),!0;if(!J.modified_){const re=peek(latest(J),W),oe=re?.[DRAFT_STATE];if(oe&&oe.base_===X)return J.copy_[W]=X,J.assigned_[W]=!1,!0;if(is(X,re)&&(X!==void 0||has(J.base_,W)))return!0;prepareCopy(J),markChanged(J)}return J.copy_[W]===X&&(X!==void 0||W in J.copy_)||Number.isNaN(X)&&Number.isNaN(J.copy_[W])||(J.copy_[W]=X,J.assigned_[W]=!0),!0},deleteProperty(J,W){return peek(J.base_,W)!==void 0||W in J.base_?(J.assigned_[W]=!1,prepareCopy(J),markChanged(J)):delete J.assigned_[W],J.copy_&&delete J.copy_[W],!0},getOwnPropertyDescriptor(J,W){const X=latest(J),te=Reflect.getOwnPropertyDescriptor(X,W);return te&&{writable:!0,configurable:J.type_!==1||W!=="length",enumerable:te.enumerable,value:X[W]}},defineProperty(){die(11)},getPrototypeOf(J){return getPrototypeOf(J.base_)},setPrototypeOf(){die(12)}},arrayTraps={};each(objectTraps,(J,W)=>{arrayTraps[J]=function(){return arguments[0]=arguments[0][0],W.apply(this,arguments)}}),arrayTraps.deleteProperty=function(J,W){return arrayTraps.set.call(this,J,W,void 0)},arrayTraps.set=function(J,W,X){return objectTraps.set.call(this,J[0],W,X,J[0])};function peek(J,W){const X=J[DRAFT_STATE];return(X?latest(X):J)[W]}function readPropFromProto(J,W,X){const te=getDescriptorFromProto(W,X);return te?"value"in te?te.value:te.get?.call(J.draft_):void 0}function getDescriptorFromProto(J,W){if(!(W in J))return;let X=getPrototypeOf(J);for(;X;){const te=Object.getOwnPropertyDescriptor(X,W);if(te)return te;X=getPrototypeOf(X)}}function markChanged(J){J.modified_||(J.modified_=!0,J.parent_&&markChanged(J.parent_))}function prepareCopy(J){J.copy_||(J.copy_=shallowCopy(J.base_,J.scope_.immer_.useStrictShallowCopy_))}var Immer2=class{constructor(J){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(W,X,te)=>{if(typeof W=="function"&&typeof X!="function"){const oe=X;X=W;const ne=this;return function(ce=oe,...ue){return ne.produce(ce,he=>X.call(this,he,...ue))}}typeof X!="function"&&die(6),te!==void 0&&typeof te!="function"&&die(7);let re;if(isDraftable(W)){const oe=enterScope(this),ne=createProxy(W,void 0);let de=!0;try{re=X(ne),de=!1}finally{de?revokeScope(oe):leaveScope(oe)}return usePatchesInScope(oe,te),processResult(re,oe)}else if(!W||typeof W!="object"){if(re=X(W),re===void 0&&(re=W),re===NOTHING&&(re=void 0),this.autoFreeze_&&freeze(re,!0),te){const oe=[],ne=[];getPlugin("Patches").generateReplacementPatches_(W,re,oe,ne),te(oe,ne)}return re}else die(1,W)},this.produceWithPatches=(W,X)=>{if(typeof W=="function")return(ne,...de)=>this.produceWithPatches(ne,ce=>W(ce,...de));let te,re;return[this.produce(W,X,(ne,de)=>{te=ne,re=de}),te,re]},typeof J?.autoFreeze=="boolean"&&this.setAutoFreeze(J.autoFreeze),typeof J?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(J.useStrictShallowCopy)}createDraft(J){isDraftable(J)||die(8),isDraft(J)&&(J=current(J));const W=enterScope(this),X=createProxy(J,void 0);return X[DRAFT_STATE].isManual_=!0,leaveScope(W),X}finishDraft(J,W){const X=J&&J[DRAFT_STATE];(!X||!X.isManual_)&&die(9);const{scope_:te}=X;return usePatchesInScope(te,W),processResult(void 0,te)}setAutoFreeze(J){this.autoFreeze_=J}setUseStrictShallowCopy(J){this.useStrictShallowCopy_=J}applyPatches(J,W){let X;for(X=W.length-1;X>=0;X--){const re=W[X];if(re.path.length===0&&re.op==="replace"){J=re.value;break}}X>-1&&(W=W.slice(X+1));const te=getPlugin("Patches").applyPatches_;return isDraft(J)?te(J,W):this.produce(J,re=>te(re,W))}};function createProxy(J,W){const X=isMap(J)?getPlugin("MapSet").proxyMap_(J,W):isSet(J)?getPlugin("MapSet").proxySet_(J,W):createProxyProxy(J,W);return(W?W.scope_:getCurrentScope()).drafts_.push(X),X}function current(J){return isDraft(J)||die(10,J),currentImpl(J)}function currentImpl(J){if(!isDraftable(J)||isFrozen(J))return J;const W=J[DRAFT_STATE];let X;if(W){if(!W.modified_)return W.base_;W.finalized_=!0,X=shallowCopy(J,W.scope_.immer_.useStrictShallowCopy_)}else X=shallowCopy(J,!0);return each(X,(te,re)=>{set(X,te,currentImpl(re))}),W&&(W.finalized_=!1),X}var immer=new Immer2,produce=immer.produce;immer.produceWithPatches.bind(immer),immer.setAutoFreeze.bind(immer),immer.setUseStrictShallowCopy.bind(immer),immer.applyPatches.bind(immer),immer.createDraft.bind(immer),immer.finishDraft.bind(immer);function assertIsFunction(J,W=`expected a function, instead received ${typeof J}`){if(typeof J!="function")throw new TypeError(W)}function assertIsObject(J,W=`expected an object, instead received ${typeof J}`){if(typeof J!="object")throw new TypeError(W)}function assertIsArrayOfFunctions(J,W="expected all items to be functions, instead received the following types: "){if(!J.every(X=>typeof X=="function")){const X=J.map(te=>typeof te=="function"?`function ${te.name||"unnamed"}()`:typeof te).join(", ");throw new TypeError(`${W}[${X}]`)}}var ensureIsArray=J=>Array.isArray(J)?J:[J];function getDependencies(J){const W=Array.isArray(J[0])?J[0]:J;return assertIsArrayOfFunctions(W,"createSelector expects all input-selectors to be functions, but received the following types: "),W}function collectInputSelectorResults(J,W){const X=[],{length:te}=J;for(let re=0;re<te;re++)X.push(J[re].apply(null,W));return X}var StrongRef=class{constructor(J){this.value=J}deref(){return this.value}},Ref=typeof WeakRef<"u"?WeakRef:StrongRef,UNTERMINATED=0,TERMINATED=1;function createCacheNode(){return{s:UNTERMINATED,v:void 0,o:null,p:null}}function weakMapMemoize(J,W={}){let X=createCacheNode();const{resultEqualityCheck:te}=W;let re,oe=0;function ne(){let de=X;const{length:ce}=arguments;for(let pe=0,fe=ce;pe<fe;pe++){const be=arguments[pe];if(typeof be=="function"||typeof be=="object"&&be!==null){let me=de.o;me===null&&(de.o=me=new WeakMap);const ge=me.get(be);ge===void 0?(de=createCacheNode(),me.set(be,de)):de=ge}else{let me=de.p;me===null&&(de.p=me=new Map);const ge=me.get(be);ge===void 0?(de=createCacheNode(),me.set(be,de)):de=ge}}const ue=de;let he;if(de.s===TERMINATED)he=de.v;else if(he=J.apply(null,arguments),oe++,te){const pe=re?.deref?.()??re;pe!=null&&te(pe,he)&&(he=pe,oe!==0&&oe--),re=typeof he=="object"&&he!==null||typeof he=="function"?new Ref(he):he}return ue.s=TERMINATED,ue.v=he,he}return ne.clearCache=()=>{X=createCacheNode(),ne.resetResultsCount()},ne.resultsCount=()=>oe,ne.resetResultsCount=()=>{oe=0},ne}function createSelectorCreator(J,...W){const X=typeof J=="function"?{memoize:J,memoizeOptions:W}:J,te=(...re)=>{let oe=0,ne=0,de,ce={},ue=re.pop();typeof ue=="object"&&(ce=ue,ue=re.pop()),assertIsFunction(ue,`createSelector expects an output function after the inputs, but received: [${typeof ue}]`);const he={...X,...ce},{memoize:pe,memoizeOptions:fe=[],argsMemoize:be=weakMapMemoize,argsMemoizeOptions:me=[]}=he,ge=ensureIsArray(fe),ve=ensureIsArray(me),_e=getDependencies(re),we=pe(function(){return oe++,ue.apply(null,arguments)},...ge),Se=be(function(){ne++;const Ce=collectInputSelectorResults(_e,arguments);return de=we.apply(null,Ce),de},...ve);return Object.assign(Se,{resultFunc:ue,memoizedResultFunc:we,dependencies:_e,dependencyRecomputations:()=>ne,resetDependencyRecomputations:()=>{ne=0},lastResult:()=>de,recomputations:()=>oe,resetRecomputations:()=>{oe=0},memoize:pe,argsMemoize:be})};return Object.assign(te,{withTypes:()=>te}),te}var createSelector=createSelectorCreator(weakMapMemoize),createStructuredSelector=Object.assign((J,W=createSelector)=>{assertIsObject(J,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof J}`);const X=Object.keys(J),te=X.map(oe=>J[oe]);return W(te,(...oe)=>oe.reduce((ne,de,ce)=>(ne[X[ce]]=de,ne),{}))},{withTypes:()=>createStructuredSelector});function createThunkMiddleware(J){return({dispatch:X,getState:te})=>re=>oe=>typeof oe=="function"?oe(X,te,J):re(oe)}var thunk=createThunkMiddleware(),withExtraArgument=createThunkMiddleware,composeWithDevTools=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?compose:compose.apply(null,arguments)};function createAction(J,W){function X(...te){if(W){let re=W(...te);if(!re)throw new Error(formatProdErrorMessage(0));return{type:J,payload:re.payload,..."meta"in re&&{meta:re.meta},..."error"in re&&{error:re.error}}}return{type:J,payload:te[0]}}return X.toString=()=>`${J}`,X.type=J,X.match=te=>isAction(te)&&te.type===J,X}var Tuple=class Es extends Array{constructor(...W){super(...W),Object.setPrototypeOf(this,Es.prototype)}static get[Symbol.species](){return Es}concat(...W){return super.concat.apply(this,W)}prepend(...W){return W.length===1&&Array.isArray(W[0])?new Es(...W[0].concat(this)):new Es(...W.concat(this))}};function freezeDraftable(J){return isDraftable(J)?produce(J,()=>{}):J}function getOrInsertComputed(J,W,X){return J.has(W)?J.get(W):J.set(W,X(W)).get(W)}function isBoolean(J){return typeof J=="boolean"}var buildGetDefaultMiddleware=()=>function(W){const{thunk:X=!0,immutableCheck:te=!0,serializableCheck:re=!0,actionCreatorCheck:oe=!0}=W??{};let ne=new Tuple;return X&&(isBoolean(X)?ne.push(thunk):ne.push(withExtraArgument(X.extraArgument))),ne},SHOULD_AUTOBATCH="RTK_autoBatch",createQueueWithTimer=J=>W=>{setTimeout(W,J)},autoBatchEnhancer=(J={type:"raf"})=>W=>(...X)=>{const te=W(...X);let re=!0,oe=!1,ne=!1;const de=new Set,ce=J.type==="tick"?queueMicrotask:J.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:createQueueWithTimer(10):J.type==="callback"?J.queueNotification:createQueueWithTimer(J.timeout),ue=()=>{ne=!1,oe&&(oe=!1,de.forEach(he=>he()))};return Object.assign({},te,{subscribe(he){const pe=()=>re&&he(),fe=te.subscribe(pe);return de.add(he),()=>{fe(),de.delete(he)}},dispatch(he){try{return re=!he?.meta?.[SHOULD_AUTOBATCH],oe=!re,oe&&(ne||(ne=!0,ce(ue))),te.dispatch(he)}finally{re=!0}}})},buildGetDefaultEnhancers=J=>function(X){const{autoBatch:te=!0}=X??{};let re=new Tuple(J);return te&&re.push(autoBatchEnhancer(typeof te=="object"?te:void 0)),re};function configureStore(J){const W=buildGetDefaultMiddleware(),{reducer:X=void 0,middleware:te,devTools:re=!0,preloadedState:oe=void 0,enhancers:ne=void 0}=J||{};let de;if(typeof X=="function")de=X;else if(isPlainObject$1(X))de=combineReducers(X);else throw new Error(formatProdErrorMessage(1));let ce;typeof te=="function"?ce=te(W):ce=W();let ue=compose;re&&(ue=composeWithDevTools({trace:!1,...typeof re=="object"&&re}));const he=applyMiddleware(...ce),pe=buildGetDefaultEnhancers(he);let fe=typeof ne=="function"?ne(pe):pe();const be=ue(...fe);return createStore(de,oe,be)}function executeReducerBuilderCallback(J){const W={},X=[];let te;const re={addCase(oe,ne){const de=typeof oe=="string"?oe:oe.type;if(!de)throw new Error(formatProdErrorMessage(28));if(de in W)throw new Error(formatProdErrorMessage(29));return W[de]=ne,re},addMatcher(oe,ne){return X.push({matcher:oe,reducer:ne}),re},addDefaultCase(oe){return te=oe,re}};return J(re),[W,X,te]}function isStateFunction(J){return typeof J=="function"}function createReducer(J,W){let[X,te,re]=executeReducerBuilderCallback(W),oe;if(isStateFunction(J))oe=()=>freezeDraftable(J());else{const de=freezeDraftable(J);oe=()=>de}function ne(de=oe(),ce){let ue=[X[ce.type],...te.filter(({matcher:he})=>he(ce)).map(({reducer:he})=>he)];return ue.filter(he=>!!he).length===0&&(ue=[re]),ue.reduce((he,pe)=>{if(pe)if(isDraft(he)){const be=pe(he,ce);return be===void 0?he:be}else{if(isDraftable(he))return produce(he,fe=>pe(fe,ce));{const fe=pe(he,ce);if(fe===void 0){if(he===null)return he;throw Error("A case reducer on a non-draftable value must not return undefined")}return fe}}return he},de)}return ne.getInitialState=oe,ne}var asyncThunkSymbol=Symbol.for("rtk-slice-createasyncthunk");function getType(J,W){return`${J}/${W}`}function buildCreateSlice({creators:J}={}){const W=J?.asyncThunk?.[asyncThunkSymbol];return function(te){const{name:re,reducerPath:oe=re}=te;if(!re)throw new Error(formatProdErrorMessage(11));const ne=(typeof te.reducers=="function"?te.reducers(buildReducerCreators()):te.reducers)||{},de=Object.keys(ne),ce={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},ue={addCase(we,Se){const ye=typeof we=="string"?we:we.type;if(!ye)throw new Error(formatProdErrorMessage(12));if(ye in ce.sliceCaseReducersByType)throw new Error(formatProdErrorMessage(13));return ce.sliceCaseReducersByType[ye]=Se,ue},addMatcher(we,Se){return ce.sliceMatchers.push({matcher:we,reducer:Se}),ue},exposeAction(we,Se){return ce.actionCreators[we]=Se,ue},exposeCaseReducer(we,Se){return ce.sliceCaseReducersByName[we]=Se,ue}};de.forEach(we=>{const Se=ne[we],ye={reducerName:we,type:getType(re,we),createNotation:typeof te.reducers=="function"};isAsyncThunkSliceReducerDefinition(Se)?handleThunkCaseReducerDefinition(ye,Se,ue,W):handleNormalReducerDefinition(ye,Se,ue)});function he(){const[we={},Se=[],ye=void 0]=typeof te.extraReducers=="function"?executeReducerBuilderCallback(te.extraReducers):[te.extraReducers],Ce={...we,...ce.sliceCaseReducersByType};return createReducer(te.initialState,Pe=>{for(let De in Ce)Pe.addCase(De,Ce[De]);for(let De of ce.sliceMatchers)Pe.addMatcher(De.matcher,De.reducer);for(let De of Se)Pe.addMatcher(De.matcher,De.reducer);ye&&Pe.addDefaultCase(ye)})}const pe=we=>we,fe=new Map;let be;function me(we,Se){return be||(be=he()),be(we,Se)}function ge(){return be||(be=he()),be.getInitialState()}function ve(we,Se=!1){function ye(Pe){let De=Pe[we];return typeof De>"u"&&Se&&(De=ge()),De}function Ce(Pe=pe){const De=getOrInsertComputed(fe,Se,()=>new WeakMap);return getOrInsertComputed(De,Pe,()=>{const Be={};for(const[Ne,Ie]of Object.entries(te.selectors??{}))Be[Ne]=wrapSelector(Ie,Pe,ge,Se);return Be})}return{reducerPath:we,getSelectors:Ce,get selectors(){return Ce(ye)},selectSlice:ye}}const _e={name:re,reducer:me,actions:ce.actionCreators,caseReducers:ce.sliceCaseReducersByName,getInitialState:ge,...ve(oe),injectInto(we,{reducerPath:Se,...ye}={}){const Ce=Se??oe;return we.inject({reducerPath:Ce,reducer:me},ye),{..._e,...ve(Ce,!0)}}};return _e}}function wrapSelector(J,W,X,te){function re(oe,...ne){let de=W(oe);return typeof de>"u"&&te&&(de=X()),J(de,...ne)}return re.unwrapped=J,re}var createSlice=buildCreateSlice();function buildReducerCreators(){function J(W,X){return{_reducerDefinitionType:"asyncThunk",payloadCreator:W,...X}}return J.withTypes=()=>J,{reducer(W){return Object.assign({[W.name](...X){return W(...X)}}[W.name],{_reducerDefinitionType:"reducer"})},preparedReducer(W,X){return{_reducerDefinitionType:"reducerWithPrepare",prepare:W,reducer:X}},asyncThunk:J}}function handleNormalReducerDefinition({type:J,reducerName:W,createNotation:X},te,re){let oe,ne;if("reducer"in te){if(X&&!isCaseReducerWithPrepareDefinition(te))throw new Error(formatProdErrorMessage(17));oe=te.reducer,ne=te.prepare}else oe=te;re.addCase(J,oe).exposeCaseReducer(W,oe).exposeAction(W,ne?createAction(J,ne):createAction(J))}function isAsyncThunkSliceReducerDefinition(J){return J._reducerDefinitionType==="asyncThunk"}function isCaseReducerWithPrepareDefinition(J){return J._reducerDefinitionType==="reducerWithPrepare"}function handleThunkCaseReducerDefinition({type:J,reducerName:W},X,te,re){if(!re)throw new Error(formatProdErrorMessage(18));const{payloadCreator:oe,fulfilled:ne,pending:de,rejected:ce,settled:ue,options:he}=X,pe=re(J,oe,he);te.exposeAction(W,pe),ne&&te.addCase(pe.fulfilled,ne),de&&te.addCase(pe.pending,de),ce&&te.addCase(pe.rejected,ce),ue&&te.addMatcher(pe.settled,ue),te.exposeCaseReducer(W,{fulfilled:ne||noop,pending:de||noop,rejected:ce||noop,settled:ue||noop})}function noop(){}function formatProdErrorMessage(J){return`Minified Redux Toolkit error #${J}; visit https://redux-toolkit.js.org/Errors?code=${J} for the full message or use the non-minified dev environment for full errors. `}const addItemsToCollection=(J,W,X,te,re)=>J[W]?{...J,[W]:{...J[W],items:[...J[W]?.items||[],...X]}}:{...J,[W]:{id:W,items:X,componentFactory:te,searchPredicate:re}},addItemToCollection=(J,W,X,te)=>addItemsToCollection(J,W,[X],te);function addActivityHistoryItemReducer(J,W){const{id:X,item:te,componentFactory:re}=W.payload;J.collections=addItemToCollection(J.collections,X,te,re)}function addActivityHistoryItemsReducer(J,W){const{id:X,items:te,componentFactory:re,searchPredicate:oe}=W.payload;return{...J,collections:addItemsToCollection(J.collections,X,te,re,oe)}}function addBusyHistoryItemReducer(J,W){J.busy.push(W.payload)}function removeBusyHistoryItemReducer(J,W){J.busy=J.busy.filter(X=>X!==W.payload)}function addErrorHistoryItemReducer(J,W){J.error.push(W.payload)}function removeErrorHistoryItemReducer(J,W){J.error=J.error.filter(X=>X.entityId!==W.payload)}function clearActivityHistoryCollectionsReducer(J){return{...J,collections:{},error:[]}}const removeItemFromCollection=(J,W,X)=>{if(!J[W]?.items)return J;const te=J[W]?.items??[];return{...J,[W]:{...J[W],items:te.filter(re=>re.id!==X)}}};function removeActivityHistoryItemReducer(J,W){const{id:X,itemId:te}=W.payload;J.collections=removeItemFromCollection(J.collections,X,te)}const updateItemInCollection=(J,W,X)=>{if(!J[W]?.items)return J;const te=J[W]?.items??[];return{...J,[W]:{...J[W],items:te.map(re=>re.id===X.id?X:re)}}};function updateActivityHistoryItemReducer(J,W){const{id:X,item:te}=W.payload;J.collections=updateItemInCollection(J.collections,X,te)}const activityHistoryCollectionsSlice=createSlice({name:"activity-history-collections",initialState:{busy:[],error:[],collections:{}},reducers:{addBusyHistoryItem:addBusyHistoryItemReducer,removeBusyHistoryItem:removeBusyHistoryItemReducer,addActivityHistoryItem:addActivityHistoryItemReducer,updateActivityHistoryItem:updateActivityHistoryItemReducer,addActivityHistoryItems:addActivityHistoryItemsReducer,clearActivityHistoryCollections:clearActivityHistoryCollectionsReducer,addErrorHistoryItem:addErrorHistoryItemReducer,removeErrorHistoryItem:removeErrorHistoryItemReducer,removeActivityHistoryItem:removeActivityHistoryItemReducer}});function setSearchStringReducer(J,W){J.searchString=W.payload}class Spec{and(W){return new AndSpec(this,W)}or(W){return new OrSpec(this,W)}not(){return new NotSpec(this)}}class AndSpec extends Spec{constructor(W,X){super(),this.left=W,this.right=X}isSatisfiedBy(W){return this.left.isSatisfiedBy(W)&&this.right.isSatisfiedBy(W)}}class OrSpec extends Spec{constructor(W,X){super(),this.left=W,this.right=X}isSatisfiedBy(W){return this.left.isSatisfiedBy(W)||this.right.isSatisfiedBy(W)}}class NotSpec extends Spec{constructor(W){super(),this.spec=W}isSatisfiedBy(W){return!this.spec.isSatisfiedBy(W)}}let shellApiRef=null;const setShellApiForOwnSpec=J=>{shellApiRef=J};class OwnSpec extends Spec{constructor(W){super(),this.context=W}isSatisfiedBy(W){if(!shellApiRef)return!1;try{const X=shellApiRef.globalStateManager.getData("userInfo");return W?.professional?.id===X?.userId}catch{return!1}}}class RelevantSpec extends Spec{constructor(W){super(),this.context=W}isSatisfiedBy(W){return W?.relevant??!1}}var ActivityHistoryFilterType=(J=>(J.Switch="switch",J.Checkbox="checkbox",J.Dropdown="dropdown",J))(ActivityHistoryFilterType||{});const isCommonFilterGroup=J=>J.id==="common",isDiagnosticFilter=J=>J.id===diagnosticsfilterId,isCustomFilter=J=>!isCommonFilterGroup(J)&&!isDiagnosticFilter(J)&&!isUpFilter(J),isUpFilter=J=>J.id===upFilterId,diagnosticsfilterId="history-diagnostics",relevantFilterId="history-relevant",ownFilterId="history-own",upFilterId="history-up",commonFilters=[{id:"common",title:"Comuns",filters:[{id:relevantFilterId,title:"Veure rellevants",spec:RelevantSpec,enabled:!1,type:ActivityHistoryFilterType.Switch},{id:ownFilterId,title:"Veure meus",spec:OwnSpec,enabled:!1,type:ActivityHistoryFilterType.Switch}]}];function setCommonFilterValueReducer(J,W){J.filters=J.filters.map(X=>X.id==="common"?{...X,filters:X.filters.map(te=>te.id===W.payload.id?{...te,enabled:W.payload.enabled}:te)}:X)}function addCustomFiltersReducer(J,W){J.filters.some(te=>te.id===W.payload.id)||(J.filters=[...J.filters,W.payload])}function clearCustomFiltersReducer(J){J.filters=J.filters.filter(W=>!isCustomFilter(W))}function setCustomFilterAllValuesReducer(J,W){J.filters=J.filters.map(X=>X.id===W.payload.filterGroupId?{...X,filters:X.filters.map(te=>te.id===W.payload.filterId?{...te,enabledValues:W.payload.values}:te)}:X)}function setCustomFilterGroupValueReducer(J,W){J.filters=J.filters.map(X=>X.id===W.payload.id?{...X,enabled:W.payload.enabled}:X)}function setCustomFilterValueReducer(J,W){J.filters=J.filters.map(X=>X.id===W.payload.filterGroupId?{...X,filters:X.filters.map(te=>te.id===W.payload.filterId?te.singleOption?setSingleOptionFilterValue(te,W.payload.enabled):setMultipleOptionsFilterValue(te,W.payload):te)}:X)}const setMultipleOptionsFilterValue=(J,W)=>{const{optionId:X,enabled:te}=W;return J.enabledValues?.some(re=>re===X)&&te?J:X==null?{...J,enabledValues:[]}:{...J,enabledValues:te?[...J.enabledValues||[],X]:J.enabledValues.filter(re=>re!==X)}},setSingleOptionFilterValue=(J,W)=>({...J,enabled:W,enabledValues:W?[!0]:[]});function deleteDiagnosticFilterValueReducer(J,W){J.filters.some(isDiagnosticFilter)&&(J.filters=[...J.filters].map(te=>{if(isDiagnosticFilter(te)){const re=te.enabledValues.filter(oe=>{if(oe.codi===W.payload.diagnosticCodi)return!1;const ne=te.enabledValues.some(ce=>ce.codi===W.payload.diagnosticCodi&&ce.evolucions?.some(ue=>ue.codi===oe.codi)),de=te.enabledValues.some(ce=>ce.codi===W.payload.diagnosticCodi&&ce.relacions?.some(ue=>ue.codi===oe.codi));return!ne&&!de});return{...te,enabledValues:re}}return te}))}function setDiagnosticFilterValuesReducer(J,W){if(J.filters.some(isDiagnosticFilter))J.filters=[...J.filters].map(te=>isDiagnosticFilter(te)?{...te,enabledValues:W.payload}:te);else{const te={id:diagnosticsfilterId,title:"Diagnòstics",values:[],enabledValues:W.payload};J.filters=[...J.filters,te]}}function resetFiltersReducer(J,W){J.filters=J.filters.map(X=>X.id!=="common"&&X.id!=="history-diagnostics"&&X.id!=="history-up"?{...X,filters:X.filters.map(te=>te.singleOption?{...te,enabled:!1}:{...te,enabled:!0,enabledValues:[]})}:X.id==="history-diagnostics"||X.id==="history-up"?{...X,enabledValues:[]}:X.id==="common"?commonFilters[0]:X)}function addUpFiltersReducer(J,W){const X=J.filters.findIndex(isUpFilter);if(X===-1)J.filters.push(W.payload);else{const te=J.filters[X],re=[...te.values,...W.payload.values.filter(oe=>!te.values.some(ne=>ne.value===oe.value))];J.filters[X]={...te,values:re}}}function setUpFilterValuesReducer(J,W){J.filters=[...J.filters].map(X=>isUpFilter(X)?{...X,enabledValues:W.payload}:X)}const activityHistoryFiltersSlice=createSlice({name:"activity-history-filters",initialState:{searchString:"",filters:[...commonFilters]},reducers:{setSearchString:setSearchStringReducer,setCommonFilterValue:setCommonFilterValueReducer,addCustomFilters:addCustomFiltersReducer,clearCustomFilters:clearCustomFiltersReducer,setCustomFilterGroupValue:setCustomFilterGroupValueReducer,setCustomFilterValue:setCustomFilterValueReducer,setCustomFilterAllValues:setCustomFilterAllValuesReducer,setDiagnosticFilterValues:setDiagnosticFilterValuesReducer,deleteDiagnosticFilterValue:deleteDiagnosticFilterValueReducer,addUpFilters:addUpFiltersReducer,setUpFilterValues:setUpFilterValuesReducer,resetFilters:resetFiltersReducer}}),store=configureStore({reducer:{activityHistoryCollections:activityHistoryCollectionsSlice.reducer,activityHistoryFilters:activityHistoryFiltersSlice.reducer},devTools:{name:"activity-history"},middleware:J=>J({serializableCheck:!1})});store.dispatch,store.getState;const container=new Container,{lazyInject}=getDecorators(container),bindDeps=J=>{container.bind(TYPES.primaryApi).toConstantValue(J),container.bind(TYPES.store).toConstantValue(store)},unbindDeps=()=>{container.unbind(TYPES.primaryApi),container.unbind(TYPES.store)};var __getOwnPropDesc$k=Object.getOwnPropertyDescriptor,__decorateClass$w=(J,W,X,te)=>{for(var re=te>1?void 0:te?__getOwnPropDesc$k(W,X):W,oe=J.length-1,ne;oe>=0;oe--)(ne=J[oe])&&(re=ne(re)||re);return re},__decorateParam$5=(J,W)=>(X,te)=>W(X,te,J);let StoreBaseHandler=class{constructor(J){this.store=J}};StoreBaseHandler=__decorateClass$w([injectable(),__decorateParam$5(0,inject(TYPES.store))],StoreBaseHandler);let ApiBaseHandler=class{constructor(J){this.api=J}};ApiBaseHandler=__decorateClass$w([injectable(),__decorateParam$5(0,inject(TYPES.primaryApi))],ApiBaseHandler);let BaseHandler=class{constructor(J,W){this.store=J,this.api=W}};BaseHandler=__decorateClass$w([injectable(),__decorateParam$5(0,inject(TYPES.store)),__decorateParam$5(1,inject(TYPES.primaryApi))],BaseHandler);const{addBusyHistoryItem,removeBusyHistoryItem}=activityHistoryCollectionsSlice.actions,{addErrorHistoryItem,removeErrorHistoryItem}=activityHistoryCollectionsSlice.actions,validateAddAsyncCommand=(J,W)=>{if(!J.filters)throw new Error("filters is required");if(J.entityId!==J.filters.id)throw new Error("entityId and filters.id must be the same");if(!J.filters.title)throw new Error("filters.title is required");if(!J.asyncDataProvider)throw new Error("asyncDataProvider is required");if(!J.componentFactory)throw new Error("componentFactory is required");if(!J.errorMessage)throw new Error("errorMessage is required for failure asyncDataProviders");if(W==null)throw new Error("items is required");if(!Array.isArray(W))throw new Error("items must be an array")};class InjectAsyncHistoryItemsHandler extends BaseHandler{async handle(W){this.store.dispatch(addBusyHistoryItem(W.entityId));try{const X=await W.asyncDataProvider();validateAddAsyncCommand(W,X),this.api.broker.send(this.api.broker.events.activityHistory.addHistoryItemsRequest,{entityId:W.entityId,entityDescription:W.entityDescription,items:X,componentFactory:W.componentFactory,searchPredicate:W.searchPredicate,filters:W.filters})}catch(X){console.error(X.message),this.store.dispatch(addErrorHistoryItem({entityId:W.entityId,message:W.errorMessage||X.message,entityDescription:W.entityDescription}))}finally{this.store.dispatch(removeBusyHistoryItem(W.entityId))}}}let request$k;const bootstrapInjectAsyncHistoryItems=(J,W)=>{request$k=J.registerRequest(W.broker.events.activityHistory.injectAsyncHistoryItemsRequest,InjectAsyncHistoryItemsHandler)},teardownInjectAsyncHistoryItems=()=>{request$k?.dispose()};let pluginLocaleManager;const initializeLocalization=async J=>{pluginLocaleManager=await J.createLocaleManager(locales)},translate=J=>pluginLocaleManager?pluginLocaleManager.translate(J):J,locales={ca:{"activity-history":{activityHistory:"Històric d’activitat",search:"Cercar",groupedView:"Visió agrupada",maximize:"Ampliar",deleted:"Eliminat",goToDate:"Anar a data",busyEntriesLoading:"Carregant totes les entrades",noResults:"Sense resultats. Modifica la cerca",noData:{title:"Sense dades",description:"No existeix informació per a mostrar"},isGrouping:"Creant agrupacions i preparant les dades...",searchBarResults:"Resultats per",actions:{cronogram:"Cronograma",exportPdf:"Exportar PDF",moreOptions:"Més opcions",refresh:"Refrescar",entryLegend:"Llegenda entrades",maximizeButton:"Botó maximitzar",menuButton:"Botó menu"},modal:{selectExportOption:"Tria una opció d'exportació",allActivityHistory:"Tot l’històric d’activitat",onlyAppliedFilters:"Només amb filtres aplicats",selectDateRange:"En el cas que sigui necessari, selecciona un rang de dates",helpText:"Sense seleccionar data, s'aplicarà la de la primera entrada. Sense seleccionar data de fi, s'aplicarà la de l'última entrada.",startDate:"Data Inici",endDate:"Data Fi",cancel:"Cancel·lar",export:"Exportar"},filters:{filters:"Filtres",searchFilter:"Cercar filtre",ownFilters:"Els meus",rellevantFilters:"Rellevants",episode:"Episodi",dates:"Dates",diagnoses:"Diagnòstics",clinicalCourseType:"Tipus Curs Clínic",selected:"seleccionats",applyFilters:"Aplicar filtres",deleted:"Eliminats"},tooltips:{subjective:"Subjectiu",UPconfidenciality:"Confidencialitat: per a la meva UP"},grouped:{clinicalCourses:"Cursos clínics",activities:"Activitats",variablees:"Variables",prescriptions:"Prescripcions"},chipHeader:{selection:"Selecció:",without:"Sense",cleanFilters:"Netejar filtres"},error:{general:{title:"Hi ha hagut un problema durant la càrrega de contingut. Actualitza la pàgina o torna-ho a provar més tard.",refresh:"Actualitzar pàgina",noInfo:"No hi ha informació disponible."},partial:{title:"Hi ha hagut un problema i no s'ha pogut carregar les notes de tipus",refresh:"Actualitzar",limit:"Límit de clicks superat"},title:"Error en la càrrega",viewDetails:"Veure detalls",imageAlt:"Imatge d'error",errorToRefresh:"Error en l'acció d'actualitzar la pàgina",itemAlreadyExists:"Aquest element ja existeix al històric d'activitat",allItemsAlreadyExist:"Tots els elements ja existeixen al històric d'activitat",filterNotInitialized:"No s'han pogut afegir elements ja que aquesta iniciativa no ha sigut inicialitzada a l'Històric d'Activitat."},warning:{someItemsAlreadyExist:"Alguns elements ja existien al històric d'activitat i no s'han afegit"}}}},existItemInCollection=(J,W,X)=>{const te=J?.[W];return te?.items?te.items.some(re=>re.id===X):!1},isString=J=>typeof J=="string"&&J.trim()!=="",isValidDateString=J=>{if(typeof J!="string"||J.trim()==="")return!1;const W=new Date(J);return W instanceof Date&&!Number.isNaN(W.getTime())},isValidBasicActivityHistoryItem=J=>J&&isString(J.id)&&isValidDateString(J.date),ensureAreValidBasicActivityHistoryItems=J=>{if(!J.every(isValidBasicActivityHistoryItem))throw console.error("Invalid activity history items",J),new Error("Invalid activity history items");return J},notifyInvalidItem=J=>{console.error("Invalid history item",J)},validateAndFilterBasicItems=J=>{const W=[];for(const X of J)isValidBasicActivityHistoryItem(X)?W.push(X):notifyInvalidItem(X);return W},getUpFilter=J=>{const W=J.flatMap(X=>X.up??[]).filter(X=>X?.id?.trim()).filter((X,te,re)=>te===re.findIndex(oe=>oe.id===X.id));if(W.length>0)return{id:upFilterId,title:"UP",values:mapArrayToLabelValue(W,"description","id"),enabledValues:[]}},handleAddUpFilter=(J,W)=>{const X=getUpFilter(J);X&&W.dispatch(activityHistoryFiltersSlice.actions.addUpFilters(X))},{addActivityHistoryItem}=activityHistoryCollectionsSlice.actions;class AddHistoryItemHandler extends BaseHandler{async handle(W){try{ensureAreValidBasicActivityHistoryItems([W.item]);const X=this.store.getState(),te=existItemInCollection(X.activityHistoryCollections?.collections,W.entityId,W.item.id),re=X.activityHistoryFilters?.filters?.find(oe=>oe.id===W.entityId);if(te)throw new Error(translate("error.itemAlreadyExists"));if(!re)throw new Error(translate("error.filterNotInitialized"));handleAddUpFilter([W.item],this.store),this.store.dispatch(addActivityHistoryItem({id:W.entityId,item:W.item,componentFactory:W.componentFactory}))}catch(X){this.api.notificationService.error(X.message)}}}let request$j;const bootstrapAddHistoryItem=(J,W)=>{request$j=J.registerRequest(W.broker.events.activityHistory.addHistoryItemRequest,AddHistoryItemHandler)},teardownAddHistoryItem=()=>{request$j?.dispose()};class AddCustomFiltersCommand{constructor(W){this.payload=W}}const{addActivityHistoryItems}=activityHistoryCollectionsSlice.actions;class AddHistoryItemsHandler extends BaseHandler{async handle(W){try{const X=validateAndFilterBasicItems(W.items),te=this.filterDuplicateItems(X,W.entityId);if(!this.store.getState().activityHistoryFilters?.filters?.find(ne=>ne.id===W.entityId)&&!W.filters)throw new Error(translate("error.filterNotInitialized"));te.length>0&&handleAddUpFilter(te,this.store),this.store.dispatch(addActivityHistoryItems({id:W.entityId,items:te,componentFactory:W.componentFactory,searchPredicate:W.searchPredicate})),W.filters&&this.api.broker.send(new AddCustomFiltersCommand(W.filters))}catch(X){this.api.notificationService.error(X.message)}}filterDuplicateItems(W,X){if(W.length===0)return[];const te=this.store.getState(),re=W.filter(oe=>!existItemInCollection(te.activityHistoryCollections?.collections,X,oe.id));if(re.length===0&&W.length>0)throw new Error(translate("error.allItemsAlreadyExist"));return re.length<W.length&&this.api.notificationService.warning(translate("warning.someItemsAlreadyExist")),re}}let request$i;const bootstrapAddHistoryItems=(J,W)=>{request$i=J.registerRequest(W.broker.events.activityHistory.addHistoryItemsRequest,AddHistoryItemsHandler)},teardownAddHistoryItems=()=>{request$i?.dispose()};function connectedProperty(J,W={}){return createConnectedProperty(store)(J,W)}const isAnyCollectionBusySelector=J=>J.activityHistoryCollections.busy.length>0,isSomeCollectionLoadedAndOtherLoading=J=>Object.values(J.activityHistoryCollections.collections)&&isAnyCollectionBusySelector(J),isEmptyDataAndOtherLoading=J=>!Object.values(J.activityHistoryCollections.collections)?.length&&isAnyCollectionBusySelector(J),styles$m=".spinner-container{display:flex;flex-direction:row;align-items:center;gap:24px;justify-content:center;padding-top:16px}.skeleton-container{padding:20px;height:100%}",template$o=J=>J.isEmptyDataAndOtherLoading?ke$1`<div class="skeleton-container">${J.skeletons}</div>`:J.isSomeCollectionLoadedAndOtherLoading?ke$1`<div class="spinner-container"><dss-spinner size="sm"></dss-spinner><div class="busy-description">${translate("busyEntriesLoading")}</div></div>`:D$7;var __defProp$p=Object.defineProperty,__getOwnPropDesc$j=Object.getOwnPropertyDescriptor,__decorateClass$v=(J,W,X,te)=>{for(var re=te>1?void 0:te?__getOwnPropDesc$j(W,X):W,oe=J.length-1,ne;oe>=0;oe--)(ne=J[oe])&&(re=(te?ne(W,X,re):ne(re))||re);return te&&re&&__defProp$p(W,X,re),re};let ActivityHistoryBusy=class extends h$p{render(){return ke$1`${template$o(this)}`}get skeletons(){return Array.from({length:12},()=>ke$1`<dss-skeleton width="100" height="10"></dss-skeleton>`)}};ActivityHistoryBusy.styles=i$H`
|
|
304
304
|
${r$L(styles$m)}
|
|
305
305
|
`,__decorateClass$v([connectedProperty(isSomeCollectionLoadedAndOtherLoading)],ActivityHistoryBusy.prototype,"isSomeCollectionLoadedAndOtherLoading",2),__decorateClass$v([connectedProperty(isEmptyDataAndOtherLoading)],ActivityHistoryBusy.prototype,"isEmptyDataAndOtherLoading",2),ActivityHistoryBusy=__decorateClass$v([t$t("activity-history-busy")],ActivityHistoryBusy);class HandleHistoryItemsAddError{constructor(W){this.entities=W}}class HandleHistoryItemsAddErrorHandler extends BaseHandler{async handle(W){try{const X=W.entities.map(te=>te.entityId);await this.dispatchRemoveErrorItems(X),this.api.broker.publish(this.api.broker.events.activityHistory.errorLoadingData,X)}catch{this.api.notificationService.error(translate("error.errorToRefresh"))}}async dispatchRemoveErrorItems(W){for(const X of W)this.store.dispatch(removeErrorHistoryItem(X))}}let request$h;const bootstrapHandleHistoryItemsAddError=J=>{teardownHandleHistoryItemsAddError(),request$h=J.registerRequest(HandleHistoryItemsAddError,HandleHistoryItemsAddErrorHandler)},teardownHandleHistoryItemsAddError=()=>{request$h?.dispose()},styles$l=".wrapper{display:flex;flex-direction:column;align-items:center;gap:24px;width:484px;height:auto}.wrapper .content-options{display:flex;flex-direction:column;align-items:center;gap:16px}.wrapper .selector-options{display:flex;flex-direction:row;gap:16px}.wrapper .content-date{display:flex;flex-direction:column;align-items:center;gap:16px;height:124px}.wrapper .datepicker-canvas{display:flex;flex-direction:row;justify-content:center;align-content:center;gap:16px}.wrapper .actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:16px}dss-datepicker{width:234px;height:48px;border-radius:var(--dss-radius-sm);border:var(--dss-border-width-sm);padding:var(--dss-spacing-sm);gap:var(--dss-spacing-xs);color:var(--color-neutral-100)}",template$n=J=>{const{arrayElements:W,text:X}=J;return ke$1`
|
|
306
306
|
<div class="wrapper">
|
|
@@ -336,7 +336,7 @@ Registered bindings:`,re.forEach(function(oe){var ne="Object";oe.implementationT
|
|
|
336
336
|
${template$n(this)}
|
|
337
337
|
`}static get styles(){return i$H`
|
|
338
338
|
${r$L(styles$l)}
|
|
339
|
-
`}handleTest(){console.log(this.selectedPeriodDate)}};__decorateClass$u([n$B()],ExportPdfModal.prototype,"selectedRadioOption",2),__decorateClass$u([n$B()],ExportPdfModal.prototype,"text",2),__decorateClass$u([n$B()],ExportPdfModal.prototype,"selectedVisibilityLevelElement",2),__decorateClass$u([n$B()],ExportPdfModal.prototype,"selectedPeriodDate",2),__decorateClass$u([n$B({type:Array})],ExportPdfModal.prototype,"arrayElements",2),ExportPdfModal=__decorateClass$u([t$t("export-pdf-modal")],ExportPdfModal);class ExportToPdfHandler extends ApiBaseHandler{async handle(){try{this.api.interactionService.confirm(void 0,{component:ExportPdfModal},{title:translate("modal.selectExportOption"),confirmButtonText:"Exportar",cancelButtonText:"Cancelar"})}catch(W){this._notifyError(W.message)}}_notifyError(W){this.api.notificationService.error(W||"actions.delete.error")}}class ExportPdf{}let request$g;const bootstrapExportPdf=J=>{request$g=J.registerRequest(ExportPdf,ExportToPdfHandler)},teardownExportPdf=()=>{request$g?.dispose()};function getUniqueObjects(J,W,X,te){const re=`Sense ${te.toLocaleLowerCase()}`,oe=new Map;let ne=!1;for(const ce of J){const ue=W.reduce((be,me)=>be?.[me],ce),he=X.reduce((be,me)=>be?.[me],ce);typeof ue=="string"&&ue.trim()!==""&&typeof he=="string"?oe.has(ue)||oe.set(ue,{id:ue,title:he}):ne=!0}const de=Array.from(oe.values()).sort((ce,ue)=>ce.title.localeCompare(ue.title,"ca",{sensitivity:"base"}));return ne&&de.push({id:"",title:re}),de}class TrueSpec extends Spec{isSatisfiedBy(){return!0}}class CommonFilterSpec extends Spec{constructor(W){super(),this.commonFilters=W}isSatisfiedBy(W){return this.commonFilters.filter(re=>re.enabled).reduce((re,oe)=>re.and(new oe.spec),new TrueSpec).isSatisfiedBy(W)}}class FalseSpec extends Spec{isSatisfiedBy(){return!1}}class PropPathSpec extends Spec{constructor(W,X){super(),this.propPath=W,this.value=X}isSatisfiedBy(W){return this.propPath.reduce((te,re)=>te?.[re],W)===this.value}}class CustomFilterSpec extends Spec{constructor(W){super(),this.filters=W}isSatisfiedBy(W){const X=this.filters.filter(te=>te.enabled);return X.length===0?!0:X.every(te=>{if(!this.belongsToGroup(W,te))return!0;const re=te.filters.filter(oe=>oe.enabled||oe.singleOption);return re.length===0?!0:re.every(oe=>oe.singleOption?oe.enabled?!0:new PropPathSpec(oe.propPathValue,!1).isSatisfiedBy(W):!oe.enabledValues||oe.enabledValues.length===0?!0:oe.enabledValues.reduce((de,ce)=>de.or(new PropPathSpec(oe.propPathValue,ce)),new FalseSpec).isSatisfiedBy(W))})}belongsToGroup(W,X){return W.type===X.id}}class DiagnosticCodeSpec extends Spec{constructor(W){super(),this.diagnosticCodes=this.extractAllCodes(W)}extractAllCodes(W){const X=new Set;for(const te of W){if(te.codi&&X.add(te.codi),te.evolucions&&Array.isArray(te.evolucions))for(const re of te.evolucions)re.codi&&X.add(re.codi);if(te.relacions&&Array.isArray(te.relacions))for(const re of te.relacions)re.codi&&X.add(re.codi)}return Array.from(X)}isSatisfiedBy(W){return this.diagnosticCodes?.length?(W.diagnostics??[]).some(te=>this.diagnosticCodes.includes(te.codi)):!0}}const normalizeStringToNFD=J=>J==null?"":String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase(),propContainsString=(J,W)=>{const X=normalizeStringToNFD(J),te=normalizeStringToNFD(W);return X.toString().toLowerCase().indexOf(te)!==-1||X.toString().indexOf(te)!==-1},commonFieldsSearchPredicate=(J,W)=>{const X=J.professional?.name&&propContainsString(J.professional?.name,W),te=J.center?.description&&propContainsString(J.center.description,W),re=J.professional?.speciality?.description&&propContainsString(J.professional?.speciality.description,W),oe=J.professional?.role?.description&&propContainsString(J.professional?.role.description,W),ne=J.service?.description&&propContainsString(J.service.description,W),de=J.up?.description&&propContainsString(J.up.description,W),ce=J.diagnostics?.some(ue=>propContainsString(ue.descripcio,W));return X||te||re||oe||ne||de||ce};class SearchStringSpec extends Spec{constructor(W,X){super(),this.searchString=W,this.searchPredicate=X}isSatisfiedBy(W){if(!this.searchString?.trim())return!0;const X=commonFieldsSearchPredicate(W,this.searchString),te=this.searchPredicate?this.searchPredicate(this.searchString.toLowerCase(),W):!1;return!!(X||te)}}class TypeSpec extends Spec{constructor(W){super(),this.itemType=W}isSatisfiedBy(W){return W?.type===this.itemType}}class ComposedTypeSpec extends Spec{constructor(W){super(),this.filters=W}isSatisfiedBy(W){const X=this.filters.filter(re=>re.enabled).map(re=>re.id);return X.length===0?!0:X.reduce((re,oe)=>re.or(new TypeSpec(oe)),new FalseSpec).isSatisfiedBy(W)}}class UpFilterSpec extends Spec{constructor(W){super(),this.upIds=W}isSatisfiedBy(W){if(!this.upIds?.length)return!0;const X=W.up??null;return this.upIds.some(te=>X.id===te)}}const activityHistoryFiltersSelector=J=>J.activityHistoryFilters.filters,activityHistoryCommonFiltersSelector=createSelector(activityHistoryFiltersSelector,J=>J.find(isCommonFilterGroup)?.filters||[]),activityHistoryEnabledCommonFiltersSelector=createSelector(activityHistoryCommonFiltersSelector,J=>J.filter(W=>W.enabled)),areCommonFiltersActive=createSelector(activityHistoryEnabledCommonFiltersSelector,J=>!!J.length),activityHistoryCustomFilterGroupsSelector=createSelector(activityHistoryFiltersSelector,J=>J.filter(isCustomFilter).sort(sortBySortProperty)),sortBySortProperty=(J,W)=>Number(J.sort)-Number(W.sort),areCustomFiltersActive=createSelector(activityHistoryCustomFilterGroupsSelector,J=>J.some(W=>W.filters.some(X=>X.enabledValues?.length)));createSelector(activityHistoryCustomFilterGroupsSelector,J=>J.filter(W=>W.enabled).map(({id:W,title:X,enabled:te,sort:re,filters:oe})=>({id:W,title:X,enabled:te,sort:re,filters:oe.filter(ne=>ne.enabledValues?.length)})).filter(W=>W.filters.length>0));const diagnosticFilterSelector=createSelector(activityHistoryFiltersSelector,J=>J.find(isDiagnosticFilter)),diagnosticFilterEnabledValuesSelector=createSelector(diagnosticFilterSelector,J=>J?.enabledValues||[]),areDiagnosticFiltersActive=createSelector(diagnosticFilterEnabledValuesSelector,J=>!!J.length),upFilterSelector=createSelector(activityHistoryFiltersSelector,J=>J.find(isUpFilter)),upFilterEnabledValuesSelector=createSelector(upFilterSelector,J=>J?.enabledValues||[]),areUpFiltersActive=createSelector(upFilterEnabledValuesSelector,J=>!!J.length),areSameDiagnostics=(J,W)=>{if(J.length!==W.length)return!1;const X=J.map(re=>re.codi).sort(),te=W.map(re=>re.codi).sort();return X.every((re,oe)=>re===te[oe])},hasValidDiagnostic=J=>J!=null&&typeof J.codi=="string"&&(typeof J.cataleg=="string"||J.cataleg===null)&&typeof J.descripcio=="string",hasValidDiagnostics=J=>J==null?!0:Array.isArray(J)&&J.every(hasValidDiagnostic),dateStringCache=new Map,dateObjectCache=new Map,getDateString=J=>(dateStringCache.has(J)||dateStringCache.set(J,new Date(J).toDateString()),dateStringCache.get(J)),getDateObject=J=>(dateObjectCache.has(J)||dateObjectCache.set(J,new Date(J)),dateObjectCache.get(J)),createVisitKey=J=>{const W=`${J.professional?.id||"null"}-${J.professional?.role?.id||"null"}-${J.professional?.speciality?.id||"null"}`,X=`${J.ep?.id||"null"}-${J.up?.id||"null"}-${J.center?.id||"null"}-${J.service?.id||"null"}`,te=getDateString(J.date);return`${W}|${X}|${te}`},withinEightHours=(J,W)=>{const X=getDateObject(J).getTime(),te=getDateObject(W).getTime();return Math.abs(X-te)<=480*60*1e3};function groupByValidDiagnostics(J){J.forEach(W=>{const X=[],te=[];W.items.forEach(re=>{const oe=re.diagnostics;if(oe?.length>0&&hasValidDiagnostics(oe)){let de=!1;for(const ce of X){const ue=ce.items[0];if(areSameDiagnostics(ue.diagnostics,oe)){ce.items.push(re),de=!0;break}}de||X.push({idSubGroup:generateId(),items:[re]})}else te.push(re)}),W.items=te,W.subGroups=X})}const groupActivityHistoryItems=J=>{if(!J?.length)return[];dateStringCache.clear(),dateObjectCache.clear();const W=[...J].sort((re,oe)=>getDateObject(oe.date).getTime()-getDateObject(re.date).getTime()),X=new Map,te=[];for(const re of W){const oe=createVisitKey(re),ne=getDateObject(re.date).getTime();let de=!1;const ce=X.get(oe)||[];for(const ue of ce){const he=ue.items[0],pe=ue.items[ue.items.length-1];if(withinEightHours(he.date,re.date)&&withinEightHours(pe.date,re.date)){const fe=getDateObject(pe.date).getTime(),be=getDateObject(he.date).getTime(),me=Math.min(fe,ne),ge=Math.max(be,ne);let ve=!1;for(const[_e,we]of X)if(_e!==oe){for(const Se of we){for(const ye of Se.items){const Ce=getDateObject(ye.date).getTime();if(Ce>me&&Ce<ge){ve=!0;break}}if(ve)break}if(ve)break}if(!ve){ue.items.push(re),de=!0;break}}}if(!de){const ue={idGroup:Math.random().toString(36).substring(2,11),items:[re],subGroups:[]};te.push(ue);const he=X.get(oe);he?he.push(ue):X.set(oe,[ue])}}return te.sort((re,oe)=>{const ne=re.items[0],de=oe.items[0];return!ne||!de?0:getDateObject(de.date).getTime()-getDateObject(ne.date).getTime()}),groupByValidDiagnostics(te),te},sortGroupsByMostRecentDate=J=>{const W=oe=>oe.reduce((ne,de)=>{const ce=new Date(de.date);return ce>ne?ce:ne},new Date(0)),X=oe=>oe.sort((ne,de)=>new Date(de.date).getTime()-new Date(ne.date).getTime()),te=oe=>W(oe.items),re=oe=>{const ne=oe.items.length>0?[W(oe.items)]:[],de=oe.subGroups.map(te),ce=[...ne,...de];return ce.length>0?new Date(Math.max(...ce.map(ue=>ue.getTime()))):new Date(0)};return J.forEach(oe=>{oe.items=X(oe.items),oe.subGroups.forEach(ne=>{ne.items=X(ne.items)}),oe.subGroups.sort((ne,de)=>te(de).getTime()-te(ne).getTime())}),J.sort((oe,ne)=>re(ne).getTime()-re(oe).getTime())},activityHistorySearchStringSelector=J=>J.activityHistoryFilters.searchString,activityHistoryCollectionsSelector=J=>J.activityHistoryCollections.collections,mapItemsWithMetadata=(J,W,X,te)=>J.map(re=>({...re,searchPredicate:te,componentFactory:W,type:X})),activityHistoryMappedItems=createSelector(activityHistoryCollectionsSelector,J=>Object.values(J).flatMap(W=>mapItemsWithMetadata(W.items,W.componentFactory,W.id,W.searchPredicate)));createSelector(activityHistoryCustomFilterGroupsSelector,activityHistoryCollectionsSelector,(J,W)=>J.filter(X=>{const te=W[X.id];return te?.items&&te.items.length>0}));const customFilterGroupsWithOptionsSelector=createSelector(activityHistoryCustomFilterGroupsSelector,activityHistoryCollectionsSelector,(J,W)=>J.map(te=>{const re=W[te.id];return{...te,filters:te.filters.map(oe=>({...oe,options:(oe.singleOption?[]:re?.items&&getUniqueObjects(re.items,oe.propPathValue,oe.propsPathDescription,oe.title))||[]}))}})),activityHistoryGroupedItems=createSelector(activityHistoryMappedItems,activityHistorySearchStringSelector,activityHistoryCommonFiltersSelector,activityHistoryCustomFilterGroupsSelector,diagnosticFilterEnabledValuesSelector,upFilterEnabledValuesSelector,(J,W,X,te,re,oe)=>{const ne=new CommonFilterSpec(X),de=new ComposedTypeSpec(te),ce=new CustomFilterSpec(te),ue=new DiagnosticCodeSpec(re),he=new UpFilterSpec(oe),pe=J.filter(me=>new SearchStringSpec(W,me.searchPredicate).and(ne).and(de).and(ce).and(ue).and(he).isSatisfiedBy(me)),fe=groupActivityHistoryItems(pe);return sortGroupsByMostRecentDate(fe)});class SetCommonFilter{constructor(W){this.payload=W}}class SetCustomFilterAllValues{constructor(W){this.payload=W}}class SetCustomFilterGroup{constructor(W){this.payload=W}}class SetCustomFilterValue{constructor(W){this.payload=W}}class SetUpFiltersCommand{constructor(W){this.payload=W}}const styles$k=".filters-sidebar{padding:8px 4px;border-right:1px solid rgb(189,189,189);width:56px;height:100%;box-sizing:border-box;display:flex;flex-direction:column}.filters-sidebar dss-icon-button{align-self:center}.filters-sidebar[expanded]{width:296px}.filters-sidebar[expanded] .filters-sidebar-opened{display:flex;align-items:center;justify-content:space-between;padding-inline:8px;color:var(--color-neutral-900);font-weight:700;font-size:16px;line-height:24px}.filter-container{display:flex;flex-direction:column;padding:16px 8px 8px;overflow:auto}.filter-container .filter{padding:8px 0;border-bottom:1px solid var(--color-neutral-200)}.filter-group{display:flex;flex-direction:column;padding-top:12px;gap:var(--dss-spacing-xs);padding-bottom:12px;border-bottom:1px solid var(--color-neutral-200)}.filter-group:last-of-type{border:none}.custom-subfilters-container{display:flex;flex-direction:column;padding-left:16px;gap:12px}.custom-subfilters-container .custom-filter-content{display:flex;flex-direction:column;gap:8px}";/**
|
|
339
|
+
`}handleTest(){console.log(this.selectedPeriodDate)}};__decorateClass$u([n$B()],ExportPdfModal.prototype,"selectedRadioOption",2),__decorateClass$u([n$B()],ExportPdfModal.prototype,"text",2),__decorateClass$u([n$B()],ExportPdfModal.prototype,"selectedVisibilityLevelElement",2),__decorateClass$u([n$B()],ExportPdfModal.prototype,"selectedPeriodDate",2),__decorateClass$u([n$B({type:Array})],ExportPdfModal.prototype,"arrayElements",2),ExportPdfModal=__decorateClass$u([t$t("export-pdf-modal")],ExportPdfModal);class ExportToPdfHandler extends ApiBaseHandler{async handle(){try{this.api.interactionService.confirm(void 0,{component:ExportPdfModal},{title:translate("modal.selectExportOption"),confirmButtonText:"Exportar",cancelButtonText:"Cancelar"})}catch(W){this._notifyError(W.message)}}_notifyError(W){this.api.notificationService.error(W||"actions.delete.error")}}class ExportPdf{}let request$g;const bootstrapExportPdf=J=>{request$g=J.registerRequest(ExportPdf,ExportToPdfHandler)},teardownExportPdf=()=>{request$g?.dispose()};function getUniqueObjects(J,W,X,te){const re=`Sense ${te.toLocaleLowerCase()}`,oe=new Map;let ne=!1;for(const ce of J){const ue=W.reduce((be,me)=>be?.[me],ce),he=X.reduce((be,me)=>be?.[me],ce);typeof ue=="string"&&ue.trim()!==""&&typeof he=="string"?oe.has(ue)||oe.set(ue,{id:ue,title:he}):ne=!0}const de=Array.from(oe.values()).sort((ce,ue)=>ce.title.localeCompare(ue.title,"ca",{sensitivity:"base"}));return ne&&de.push({id:"",title:re}),de}class TrueSpec extends Spec{isSatisfiedBy(){return!0}}class CommonFilterSpec extends Spec{constructor(W){super(),this.commonFilters=W}isSatisfiedBy(W){return this.commonFilters.filter(re=>re.enabled).reduce((re,oe)=>re.and(new oe.spec),new TrueSpec).isSatisfiedBy(W)}}class FalseSpec extends Spec{isSatisfiedBy(){return!1}}class PropPathSpec extends Spec{constructor(W,X){super(),this.propPath=W,this.value=X}isSatisfiedBy(W){return this.propPath.reduce((te,re)=>te?.[re],W)===this.value}}class CustomFilterSpec extends Spec{constructor(W){super(),this.filters=W}isSatisfiedBy(W){const X=this.filters.filter(te=>te.enabled);return X.length===0?!0:X.every(te=>{if(!this.belongsToGroup(W,te))return!0;const re=te.filters.filter(oe=>oe.enabled||oe.singleOption);return re.length===0?!0:re.every(oe=>oe.singleOption?oe.enabled?!0:new PropPathSpec(oe.propPathValue,!1).isSatisfiedBy(W):!oe.enabledValues||oe.enabledValues.length===0?!0:oe.enabledValues.reduce((de,ce)=>de.or(new PropPathSpec(oe.propPathValue,ce)),new FalseSpec).isSatisfiedBy(W))})}belongsToGroup(W,X){return W.type===X.id}}class DiagnosticCodeSpec extends Spec{constructor(W){super(),this.diagnosticCodes=this.extractAllCodes(W)}extractAllCodes(W){const X=new Set;for(const te of W){if(te.codi&&X.add(te.codi),te.evolucions&&Array.isArray(te.evolucions))for(const re of te.evolucions)re.codi&&X.add(re.codi);if(te.relacions&&Array.isArray(te.relacions))for(const re of te.relacions)re.codi&&X.add(re.codi)}return Array.from(X)}isSatisfiedBy(W){return this.diagnosticCodes?.length?(W.diagnostics??[]).some(te=>this.diagnosticCodes.includes(te.codi)):!0}}const normalizeStringToNFD=J=>J==null?"":String(J).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase(),propContainsString=(J,W)=>{const X=normalizeStringToNFD(J),te=normalizeStringToNFD(W);return X.toString().toLowerCase().indexOf(te)!==-1||X.toString().indexOf(te)!==-1},commonFieldsSearchPredicate=(J,W)=>{const X=J.professional?.name&&propContainsString(J.professional?.name,W),te=J.center?.description&&propContainsString(J.center.description,W),re=J.professional?.speciality?.description&&propContainsString(J.professional?.speciality.description,W),oe=J.professional?.role?.description&&propContainsString(J.professional?.role.description,W),ne=J.service?.description&&propContainsString(J.service.description,W),de=J.up?.description&&propContainsString(J.up.description,W),ce=J.diagnostics?.some(ue=>propContainsString(ue.descripcio,W));return X||te||re||oe||ne||de||ce};class SearchStringSpec extends Spec{constructor(W,X){super(),this.searchString=W,this.searchPredicate=X}isSatisfiedBy(W){if(!this.searchString?.trim())return!0;const X=commonFieldsSearchPredicate(W,this.searchString),te=this.searchPredicate?this.searchPredicate(this.searchString.toLowerCase(),W):!1;return!!(X||te)}}class TypeSpec extends Spec{constructor(W){super(),this.itemType=W}isSatisfiedBy(W){return W?.type===this.itemType}}class ComposedTypeSpec extends Spec{constructor(W){super(),this.filters=W}isSatisfiedBy(W){const X=this.filters.filter(re=>re.enabled).map(re=>re.id);return X.length===0?!0:X.reduce((re,oe)=>re.or(new TypeSpec(oe)),new FalseSpec).isSatisfiedBy(W)}}class UpFilterSpec extends Spec{constructor(W){super(),this.upIds=W}isSatisfiedBy(W){if(!this.upIds?.length)return!0;const X=W.up??null;return this.upIds.some(te=>X.id===te)}}const activityHistoryFiltersSelector=J=>J.activityHistoryFilters.filters,activityHistoryCommonFiltersSelector=createSelector(activityHistoryFiltersSelector,J=>J.find(isCommonFilterGroup)?.filters||[]),activityHistoryEnabledCommonFiltersSelector=createSelector(activityHistoryCommonFiltersSelector,J=>J.filter(W=>W.enabled)),areCommonFiltersActive=createSelector(activityHistoryEnabledCommonFiltersSelector,J=>!!J.length),activityHistoryCustomFilterGroupsSelector=createSelector(activityHistoryFiltersSelector,J=>J.filter(isCustomFilter).sort(sortBySortProperty)),sortBySortProperty=(J,W)=>Number(J.sort)-Number(W.sort),areCustomFiltersActive=createSelector(activityHistoryCustomFilterGroupsSelector,J=>J.some(W=>W.filters.some(X=>X.enabledValues?.length)));createSelector(activityHistoryCustomFilterGroupsSelector,J=>J.filter(W=>W.enabled).map(({id:W,title:X,enabled:te,sort:re,filters:oe})=>({id:W,title:X,enabled:te,sort:re,filters:oe.filter(ne=>ne.enabledValues?.length)})).filter(W=>W.filters.length>0));const diagnosticFilterSelector=createSelector(activityHistoryFiltersSelector,J=>J.find(isDiagnosticFilter)),diagnosticFilterEnabledValuesSelector=createSelector(diagnosticFilterSelector,J=>J?.enabledValues||[]),areDiagnosticFiltersActive=createSelector(diagnosticFilterEnabledValuesSelector,J=>!!J.length),upFilterSelector=createSelector(activityHistoryFiltersSelector,J=>J.find(isUpFilter)),upFilterEnabledValuesSelector=createSelector(upFilterSelector,J=>J?.enabledValues||[]),areUpFiltersActive=createSelector(upFilterEnabledValuesSelector,J=>!!J.length),areSameDiagnostics=(J,W)=>{if(J.length!==W.length)return!1;const X=J.map(re=>re.codi).sort(),te=W.map(re=>re.codi).sort();return X.every((re,oe)=>re===te[oe])},hasValidDiagnostic=J=>J!=null&&typeof J.codi=="string"&&(typeof J.cataleg=="string"||J.cataleg===null)&&typeof J.descripcio=="string",hasValidDiagnostics=J=>J==null?!0:Array.isArray(J)&&J.every(hasValidDiagnostic),dateStringCache=new Map,dateObjectCache=new Map,getDateString=J=>(dateStringCache.has(J)||dateStringCache.set(J,new Date(J).toDateString()),dateStringCache.get(J)),getDateObject=J=>(dateObjectCache.has(J)||dateObjectCache.set(J,new Date(J)),dateObjectCache.get(J)),createVisitKeyWithoutService=J=>{const W=`${J.professional?.id||"null"}-${J.professional?.role?.id||"null"}-${J.professional?.speciality?.id||"null"}`,X=`${J.ep?.id||"null"}-${J.up?.id||"null"}-${J.center?.id||"null"}`,te=getDateString(J.date);return`${W}|${X}|${te}`},hasService=J=>J.service?.id!=null,canGroupTogether=(J,W)=>{const X=createVisitKeyWithoutService(J),te=createVisitKeyWithoutService(W);return X!==te?!1:!hasService(J)||!hasService(W)?!0:J.service?.id===W.service?.id},withinEightHours=(J,W)=>{const X=getDateObject(J).getTime(),te=getDateObject(W).getTime();return Math.abs(X-te)<=480*60*1e3};function groupByValidDiagnostics(J){J.forEach(W=>{const X=[],te=[];W.items.forEach(re=>{const oe=re.diagnostics;if(oe?.length>0&&hasValidDiagnostics(oe)){let de=!1;for(const ce of X){const ue=ce.items[0];if(areSameDiagnostics(ue.diagnostics,oe)){ce.items.push(re),de=!0;break}}de||X.push({idSubGroup:generateId(),items:[re]})}else te.push(re)}),W.items=te,W.subGroups=X})}const groupActivityHistoryItems=J=>{if(!J?.length)return[];dateStringCache.clear(),dateObjectCache.clear();const W=[...J].sort((re,oe)=>getDateObject(oe.date).getTime()-getDateObject(re.date).getTime()),X=new Map,te=[];for(const re of W){const oe=createVisitKeyWithoutService(re),ne=getDateObject(re.date).getTime();let de=!1;const ce=X.get(oe)||[];for(const ue of ce){const he=ue.items[0],pe=ue.items[ue.items.length-1];if(!(!he||!pe)&&canGroupTogether(he,re)&&withinEightHours(he.date,re.date)&&withinEightHours(pe.date,re.date)){const fe=getDateObject(pe.date).getTime(),be=getDateObject(he.date).getTime(),me=Math.min(fe,ne),ge=Math.max(be,ne);let ve=!1;for(const[_e,we]of X)if(_e!==oe){for(const Se of we){for(const ye of Se.items){const Ce=getDateObject(ye.date).getTime();if(Ce>me&&Ce<ge){ve=!0;break}}if(ve)break}if(ve)break}if(!ve){ue.items.push(re),de=!0;break}}}if(!de){const ue={idGroup:Math.random().toString(36).substring(2,11),items:[re],subGroups:[]};te.push(ue);const he=X.get(oe);he?he.push(ue):X.set(oe,[ue])}}return te.sort((re,oe)=>{const ne=re.items[0],de=oe.items[0];return!ne||!de?0:getDateObject(de.date).getTime()-getDateObject(ne.date).getTime()}),groupByValidDiagnostics(te),te},sortGroupsByMostRecentDate=J=>{const W=oe=>oe.reduce((ne,de)=>{const ce=new Date(de.date);return ce>ne?ce:ne},new Date(0)),X=oe=>oe.sort((ne,de)=>new Date(de.date).getTime()-new Date(ne.date).getTime()),te=oe=>W(oe.items),re=oe=>{const ne=oe.items.length>0?[W(oe.items)]:[],de=oe.subGroups.map(te),ce=[...ne,...de];return ce.length>0?new Date(Math.max(...ce.map(ue=>ue.getTime()))):new Date(0)};return J.forEach(oe=>{oe.items=X(oe.items),oe.subGroups.forEach(ne=>{ne.items=X(ne.items)}),oe.subGroups.sort((ne,de)=>te(de).getTime()-te(ne).getTime())}),J.sort((oe,ne)=>re(ne).getTime()-re(oe).getTime())},activityHistorySearchStringSelector=J=>J.activityHistoryFilters.searchString,activityHistoryCollectionsSelector=J=>J.activityHistoryCollections.collections,mapItemsWithMetadata=(J,W,X,te)=>J.map(re=>({...re,searchPredicate:te,componentFactory:W,type:X})),activityHistoryMappedItems=createSelector(activityHistoryCollectionsSelector,J=>Object.values(J).flatMap(W=>mapItemsWithMetadata(W.items,W.componentFactory,W.id,W.searchPredicate)));createSelector(activityHistoryCustomFilterGroupsSelector,activityHistoryCollectionsSelector,(J,W)=>J.filter(X=>{const te=W[X.id];return te?.items&&te.items.length>0}));const customFilterGroupsWithOptionsSelector=createSelector(activityHistoryCustomFilterGroupsSelector,activityHistoryCollectionsSelector,(J,W)=>J.map(te=>{const re=W[te.id];return{...te,filters:te.filters.map(oe=>({...oe,options:(oe.singleOption?[]:re?.items&&getUniqueObjects(re.items,oe.propPathValue,oe.propsPathDescription,oe.title))||[]}))}})),activityHistoryGroupedItems=createSelector(activityHistoryMappedItems,activityHistorySearchStringSelector,activityHistoryCommonFiltersSelector,activityHistoryCustomFilterGroupsSelector,diagnosticFilterEnabledValuesSelector,upFilterEnabledValuesSelector,(J,W,X,te,re,oe)=>{const ne=new CommonFilterSpec(X),de=new ComposedTypeSpec(te),ce=new CustomFilterSpec(te),ue=new DiagnosticCodeSpec(re),he=new UpFilterSpec(oe),pe=J.filter(me=>new SearchStringSpec(W,me.searchPredicate).and(ne).and(de).and(ce).and(ue).and(he).isSatisfiedBy(me)),fe=groupActivityHistoryItems(pe);return sortGroupsByMostRecentDate(fe)});class SetCommonFilter{constructor(W){this.payload=W}}class SetCustomFilterAllValues{constructor(W){this.payload=W}}class SetCustomFilterGroup{constructor(W){this.payload=W}}class SetCustomFilterValue{constructor(W){this.payload=W}}class SetUpFiltersCommand{constructor(W){this.payload=W}}const styles$k=".filters-sidebar{padding:8px 4px;border-right:1px solid rgb(189,189,189);width:56px;height:100%;box-sizing:border-box;display:flex;flex-direction:column}.filters-sidebar dss-icon-button{align-self:center}.filters-sidebar[expanded]{width:296px}.filters-sidebar[expanded] .filters-sidebar-opened{display:flex;align-items:center;justify-content:space-between;padding-inline:8px;color:var(--color-neutral-900);font-weight:700;font-size:16px;line-height:24px}.filter-container{display:flex;flex-direction:column;padding:16px 8px 8px;overflow:auto}.filter-container .filter{padding:8px 0;border-bottom:1px solid var(--color-neutral-200)}.filter-group{display:flex;flex-direction:column;padding-top:12px;gap:var(--dss-spacing-xs);padding-bottom:12px;border-bottom:1px solid var(--color-neutral-200)}.filter-group:last-of-type{border:none}.custom-subfilters-container{display:flex;flex-direction:column;padding-left:16px;gap:12px}.custom-subfilters-container .custom-filter-content{display:flex;flex-direction:column;gap:8px}";/**
|
|
340
340
|
* @license
|
|
341
341
|
* Copyright 2021 Google LLC
|
|
342
342
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
@@ -432,7 +432,7 @@ Registered bindings:`,re.forEach(function(oe){var ne="Object";oe.implementationT
|
|
|
432
432
|
${Qt(J._visibleItems,(W,X)=>W?.items?.[0]?.id||W?.subGroups?.[0]?.items?.[0]?.id,(W,X)=>ke$1`
|
|
433
433
|
<div class="visit"
|
|
434
434
|
data-date=${to(W?.items[0]?.date||W?.subGroups[0]?.items[0]?.date)}>
|
|
435
|
-
${visitHeaderTemplate(J,W?.items[0]||W?.subGroups[0]?.items[0])}
|
|
435
|
+
${visitHeaderTemplate(J,W?.items[0]||W?.subGroups[0]?.items[0],W)}
|
|
436
436
|
<div class="visit__items">
|
|
437
437
|
${Qt(mergeHistoryItemsAndSubgroups(W),te=>te.type==="item"?te.item.id:te.subGroup.id,te=>{if(te.type==="item"){const oe=te.item;return ke$1`
|
|
438
438
|
<div
|
|
@@ -475,7 +475,7 @@ ${J.searchString?.length>1?ke$1`
|
|
|
475
475
|
imagesrc=${notFound}
|
|
476
476
|
title=${translate("noData.title")}
|
|
477
477
|
description=${translate("noData.description")}>
|
|
478
|
-
</dss-user-feedback>`:D$7}`,visitHeaderTemplate=(J,W)=>W?ke$1`
|
|
478
|
+
</dss-user-feedback>`:D$7}`,visitHeaderTemplate=(J,W,X)=>W?ke$1`
|
|
479
479
|
<div class="visit__header">
|
|
480
480
|
<div class="title">
|
|
481
481
|
<div class="title-date">
|
|
@@ -483,12 +483,12 @@ ${J.searchString?.length>1?ke$1`
|
|
|
483
483
|
</div>
|
|
484
484
|
<div class="title-description">
|
|
485
485
|
<div>
|
|
486
|
-
${renderProfessionalValues(J,W)}
|
|
486
|
+
${renderProfessionalValues(J,W,X)}
|
|
487
487
|
</div>
|
|
488
488
|
</div>
|
|
489
489
|
</div>
|
|
490
490
|
</div>
|
|
491
|
-
`:D$7,renderProfessionalValues=(J,W)=>{if(!W.professional)return D$7;const
|
|
491
|
+
`:D$7,findServiceInGroup=J=>{if(J){for(const W of J.items||[])if(W.service?.id)return W.service;for(const W of J.subGroups||[])for(const X of W.items||[])if(X.service?.id)return X.service}},renderProfessionalValues=(J,W,X)=>{if(!W.professional)return D$7;const te=shouldShowRole(W),re=[];re.push(J.highlighted(W.professional.name)),te&&W.professional?.role?.description&&re.push(J.highlighted(W.professional.role.description)),W.professional?.speciality?.description&&re.push(J.highlighted(W.professional.speciality.description)),W.up?.description&&re.push(J.highlighted(W.up.description));const oe=W.service?.description?W.service:findServiceInGroup(X);return oe?.description&&re.push(J.highlighted(oe.description)),re.map((ne,de)=>ke$1`${ne}${de<re.length-1?" | ":""}`)},diagnosticHeaderTemplate=J=>J&&ke$1`
|
|
492
492
|
<div class="diagnostics__header">
|
|
493
493
|
${J.diagnostics.filter(W=>W.descripcio!=null&&W.descripcio.trim()!=="").map(W=>ke$1`<dss-badge text=${W.descripcio?.toUpperCase()} state="info" size="sm" outlined></dss-badge>`)}
|
|
494
494
|
</div>
|