/*!**************************Confidential and Proprietary***************************** * File Name: DataAccess.js ********************Copyright (c) Hyland Software, Inc. 1992-2023********************/ var DataAccess=function(n){function u(t,i,u){u=n.strings.nullOrEmpty(u)?"":u;t=f(t,u);r.setItem(t,JSON.stringify(i))}function f(t,i){return"OB_T_"+n.strings.generateHash(n.clientConfig.virtualRoot+":"+i+":"+t)}function h(n,i,r){n in t&&(t[n].preappliedParams[i]=r)}function e(n){return n.split(".")[0].replace("-","_")}var t={},r=function(){var n=null;return n=typeof Object.create!="undefined"?Object.create(null):{},window.localStorage?window.localStorage:{setItem:function(t,i){n[t]=i.toString()},getItem:function(t){return n[t]},clear:function(){n=Object.create(null)}}}(),i={registerService:function(){function r(t,i,r){return r=typeof r=="boolean"?r:!0,i=n.utils.isArray(i)?i:[i],t=n.utils.toArray(t),Array.prototype[r?"unshift":"push"].apply(t,i),t}return function(f,e,s,c){var v=!n.strings.nullOrEmpty(c),a=c+"_"+e,l;s=n.strings.nullOrEmpty(s)?"ids":s;t[a]={endpoint:f,keyName:s,preappliedParams:{}};!v||c in i||(i[c]={});l=function(){return o.apply(l,r(arguments,a))};l.preapply=function(){return h.apply(l,r(arguments,a))};l.cacheData=function(){return u.apply(l,r(arguments,a))};(v?i[c]:i)[e]=l}}()},o=function(){function i(i,r,u){var f=t[i],e=f.keyName;if(u=u||{},n.strings.nullOrEmpty(r)||(r=[r]),!n.utils.isArray(r))throw new Error("Resource IDs must be specified as a string or array of strings.");return u[e]=r,u}return function(n,r,u,f){var e;if(f=typeof f=="boolean"?f:!0,n in t)u=i(n,r,u),e=s(n,u,f);else throw new Error("Service '"+n+"' is not registered.");return e}}(),s=function(){function i(t,i,r){return function(f,o){n.ajax(n.utils.merge(t,{type:"POST",responseType:"json",callback:function(t){var o={};n.each(t,function(n,t){u(t,n,i);o[e(t)]=n});f(n.utils.merge(o,r))},onError:o}))}}function o(t,i){var u={cached:{},uncached:[]};return n.each(i,function(n){var o=f(n,t),i=r.getItem(o);i?u.cached[e(n)]=JSON.parse(i):u.uncached.push(n)}),u}return function(r,u,f){var s=t[r],a=s.keyName,e=o(r,u[a]),h=f?Promise.resolve(e.cached):e.cached,c={async:f},l;return e.uncached.length>0&&!n.strings.nullOrEmpty(n.clientConfig.virtualRoot)&&(u[a]=e.uncached,u=n.utils.merge(u,s.preappliedParams),c.data=n.utils.toQueryString(u),c.url=n.strings.format("{0}/{1}",n.clientConfig.virtualRoot,s.endpoint),l=i(c,r,e.cached),f?h=new Promise(function(n,t){l(n,t)}):l(function(n){h=n},function(n){Page.Log(n)})),h}}();return i}(window.$OB);