1import{o as e}from"./DAXXjFlN.chunk.js";import{Ft as t,Lt as n,ht as r,kt as i,r as a,zt as o}from"./CMDJWWg3.chunk.js";import{n as s}from"./DPtsihFR.chunk.js";import{_ as c,r as l,u}from"./BftnFbcr.chunk.js";var d=e(s());a();var f=class extends l{get defaultProps(){return[`dataProvider`,`cache`,`bootstrapData`,`defaultErrorHandler`,`alertService`]}constructor(e){super(e),r(this,`name`)||c.throw(new u(`Must provide a name when extending BaseDataService`)),r(this,`channelName`)||c.throw(new u(`Must provide a channelName for ${r(this,`name`)}`));let t=[...this.defaultProps,...this.props||[]];this.dataRequestSignatures={},this.mergeOptions(e,t)}getCursors(e){let t=this.cache.get(e);return t?t.cursors:{next:``,previous:``}}clearCacheAndGet(e){let{callback:n,errorCallback:r,eventPrefix:i}=e,{syncEvent:a,errorEvent:o}=this.getEventNames(i),s=this.cache.get(i);if(s&&s.openRequest){this.listenToOnce(this.getChannel(),a,e=>{t(r)&&this.stopListening(this.getChannel(),o,r),t(n)&&n(e)}),this.listenToOnce(this.getChannel(),o,()=>{t(n)&&this.stopListening(this.getChannel(),a,n),t(r)&&r()});return}this.cache.remove(e.eventPrefix),this.get(e)}get(e){let{callback:n,errorCallback:r,eventPrefix:i,resource:a,formatData:o,expiryTime:s,successHandler:c,errorHandler:l,bootstrapName:u,invalidateFlight:d}=e,{syncEvent:f,requestEvent:p,successEvent:m,errorEvent:h}=this.getEventNames(i),g=this.getChannel(),_=this.currentTimestamp();this.bootstrapData&&this.bootstrapData[u]&&(this.cacheData(i,this.bootstrapData[u],o,{openRequest:!1,timestamp:_}),delete this.bootstrapData[u]);let v=this.cache.get(i),y;v&&(y=v.data);let b=v&&v.openRequest,x=this.isExpired(i,s);if(b&&(this.listenToOnce(g,f,e=>{t(r)&&this.stopListening(this.getChannel(),h,r),t(n)&&n(e)}),this.listenToOnce(g,h,()=>{t(n)&&this.stopListening(this.getChannel(),f,n),t(r)&&r()})),(!this.cache.has(i)||x)&&(g.trigger(p),this.listenToResponse({eventPrefix:i,formatData:o,cacheOptions:{timestamp:_},callback:n,errorCallback:r,successHandler:c,errorHandler:l,invalidateFlight:d}),this.cacheData(i,null,null,{openRequest:!0,timestamp:_}),this.dataProvider.read(a,{channel:this.getTransportChannel(),successEvent:m,errorEvent:h})),y&&t(n)&&!x&&n(y),y)return y}create(e){let{eventPrefix:t,resource:n,data:r,formatData:i,callback:a,errorCallback:o,invalidationKeys:s,successHandler:c,errorHandler:l,invalidateFlight:u}=e,{requestEvent:d,successEvent:f,errorEvent:p}=this.getEventNames(e.eventPrefix),m=this.getChannel(),h=this.getTransportChannel();m.trigger(d),this.listenToResponse({eventPrefix:t,formatData:i,invalidationKeys:s,callback:a,errorCallback:o,successHandler:c,errorHandler:l,invalidateFlight:u}),this.dataProvider.create(n,r,{channel:h,successEvent:f,errorEvent:p})}update(e){let{data:t,callback:n,errorCallback:r,resource:i,formatData:a,eventPrefix:o,invalidationKeys:s,errorHandler:c,successHandler:l,invalidateFlight:u}=e,{requestEvent:d,successEvent:f,errorEvent:p}=this.getEventNames(e.eventPrefix),m=this.getChannel(),h=this.getTransportChannel();m.trigger(d),this.listenToResponse({eventPrefix:o,formatData:a,invalidationKeys:s,callback:n,errorCallback:r,successHandler:l,errorHandler:c,invalidateFlight:u}),this.dataProvider.update(i,t,{channel:h,successEvent:f,errorEvent:p})}delete(e){let{eventPrefix:t,resource:n,callback:r,errorCallback:i,invalidationKeys:a,successHandler:o,errorHandler:s,invalidateFlight:c}=e,{successEvent:l,errorEvent:u}=this.getEventNames(t),d=this.getTransportChannel();this.listenToResponse({eventPrefix:t,invalidationKeys:a,callback:r,errorCallback:i,cacheOptions:{noCache:!0,clearCacheKey:!0},successHandler:o,errorHandler:s,invalidateFlight:c}),this.dataProvider.delete(n,{channel:d,successEvent:l,errorEvent:u})}listenToResponse(e){let{eventPrefix:n,formatData:r,callback:i,errorCallback:a,successHandler:o,errorHandler:s,invalidationKeys:c,cacheOptions:l={},invalidateFlight:u}=e,{syncEvent:d,successEvent:f,errorEvent:p,successAlertEvent:m,errorAlertEvent:h}=this.getEventNames(n),g=this.getChannel(),_=this.getTransportChannel(),v=this.getAlertChannel();t(i)&&this.listenToOnce(g,d,i),t(a)&&this.listenToOnce(g,p,a),this.stopListening(v,m),this.stopListening(v,h),t(o)&&this.listenToOnce(v,m,o),t(s)&&this.listenToOnce(v,h,s),!t(s)&&s!==!1&&t(this.defaultErrorHandler)&&this.listenToOnce(v,h,this.defaultErrorHandler),!this.hasRequestSignature(n)&&(this.setRequestSignature(n),this.listenTo(_,f,(e,...t)=>{this.stopListening(g,p,a),v.trigger(m,e,...t);let i=l.noCache?this.formatData(e,r):this.cacheData(n,e,r);l.clearCacheKey&&this.cache.remove(n),g.trigger(d,i),c&&c.length&&this.cache.invalidate(c,e=>g.trigger(`${e}:invalidate`),u)}),this.listenTo(_,p,(...e)=>{this.stopListening(g,d,i);let t=this.dataProvider.parseError(...e);v.trigger(h,t),g.trigger(p,t),!l.noCache&&this.cacheData(n,null,null)}))}cacheData(e,t,n,r={}){let{openRequest:i=!1}=r,{timestamp:a}=r;a||=this.currentTimestamp();let o=this.processPagination(t),s=this.formatData(t,n);return this.cache.set(e,{data:s,timestamp:a,cursors:o,openRequest:i}),s}processPagination(e){if(!e)return;let{pagination:t}=e;
1if(t){if(t.cursors)return t.cursors;if(!o(t.offset)&&!o(t.pageSize))return this.convertOffsetPaginationToCursors(t);if(t.page)return this.convertLegacyPaginationToCursors(t)}}formatData(e,n){return t(n)?n(e):e}chain(){let e=[],n=(e,n)=>{t(e)&&e(n)},r=(t,r)=>(e.push(()=>{let i=t.callback;t.callback=t=>{n(i,t),n(e.shift())},this[r](t)}),i),i={func(t){return e.push(()=>{t(e.shift()||(()=>{}))}),i},get(e){return r(e,`get`)},create(e){return r(e,`create`)},update(e){return r(e,`update`)},delete(e){return r(e,`delete`)},run(){n(e.shift())}};return i}invalidateCache(e,t=!1){!e||!e.length||this.cache.invalidate(e,e=>this.getChannel().trigger(`${e}:invalidate`),t)}currentTimestamp(){return new Date().valueOf()}isExpired(e,t){if(!t)return!1;let n=this.cache.get(e);if(!n||!n.timestamp)return!0;let r=n.timestamp,i=t*1e3;return r<this.currentTimestamp()-i}getEventNames(e){return{syncEvent:`${e}:sync`,requestEvent:`${e}:request`,successEvent:`${e}:success`,errorEvent:`${e}:error`,successAlertEvent:`${e}:success:alert`,errorAlertEvent:`${e}:error:alert`}}getTransportChannel(){return d.default.channel(`${this.channelName}:transport`)}getAlertChannel(){return d.default.channel(`${this.channelName}:alert`)}setRequestSignature(e){this.dataRequestSignatures[e]=e}hasRequestSignature(e){return!!this.dataRequestSignatures[e]}convertOffsetPaginationToCursors(e){let{offset:t,pageSize:r,totalItems:a}=e,o=a>0&&t<a&&t+r,s=a>0&&t>0&&Math.max(t-r,0),c={};if(o&&o<a&&(c.next=o.toString()),n(s)&&(c.previous=s.toString()),!i(c))return c}convertLegacyPaginationToCursors(e){let{page:t,totalPages:r}=e,a=n(t)&&t>0&&t<r&&t+1,o=n(t)&&t>1&&t-1,s={};if(a&&a<=r&&(s.next=a.toString()),o&&(s.previous=o.toString()),!i(s))return s}};export{f as t}; 2//# sourceMappingURL=Ce8kGUCD2.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.