@sd-angular/core 0.0.882 → 0.0.886
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/api/src/lib/api.model.d.ts +2 -2
- package/assets/ckeditor/plugins/notification/plugin.js +1 -1
- package/assets/ckeditor/plugins/videoembed/.gitattributes +17 -0
- package/assets/ckeditor/plugins/wordcount/lang/ca.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/cs.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/de.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/el.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/en.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/es.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/eu.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/fa.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/fr.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/he.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/hr.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/hu.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/ja.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/nl.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/no.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/pl.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/pt-br.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/ro.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/ru.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/sk.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/sv.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/tr.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/uk.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/zh-cn.js +1 -1
- package/assets/ckeditor/plugins/wordcount/lang/zh.js +1 -1
- package/assets/ckeditor/plugins/wordcount/samples/wordcount.html +1 -1
- package/assets/ckeditor/plugins/wordcount/samples/wordcountWithMaxCount.html +1 -1
- package/bundles/sd-angular-core-api.umd.js +134 -121
- package/bundles/sd-angular-core-api.umd.js.map +1 -1
- package/bundles/sd-angular-core-api.umd.min.js +1 -1
- package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-cache.umd.js +151 -13
- package/bundles/sd-angular-core-cache.umd.js.map +1 -1
- package/bundles/sd-angular-core-cache.umd.min.js +2 -2
- package/bundles/sd-angular-core-cache.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.js +33 -24
- package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
- package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.js +1 -0
- package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.min.js +1 -1
- package/bundles/sd-angular-core-upload-excel.umd.min.js.map +1 -1
- package/cache/sd-angular-core-cache.metadata.json +1 -1
- package/cache/src/lib/cache.model.d.ts +27 -4
- package/cache/src/lib/cache.service.d.ts +3 -2
- package/esm2015/api/src/lib/api.model.js +1 -1
- package/esm2015/api/src/lib/http.interceptor.js +13 -6
- package/esm2015/cache/src/lib/cache.model.js +1 -1
- package/esm2015/cache/src/lib/cache.service.js +115 -11
- package/esm2015/grid-material/src/lib/components/grid-filter/grid-filter.component.js +8 -7
- package/esm2015/grid-material/src/lib/grid-material.component.js +8 -1
- package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
- package/esm2015/upload-excel/src/lib/upload-excel.component.js +2 -1
- package/fesm2015/sd-angular-core-api.js +12 -6
- package/fesm2015/sd-angular-core-api.js.map +1 -1
- package/fesm2015/sd-angular-core-cache.js +114 -10
- package/fesm2015/sd-angular-core-cache.js.map +1 -1
- package/fesm2015/sd-angular-core-grid-material.js +14 -6
- package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
- package/fesm2015/sd-angular-core-upload-excel.js +1 -0
- package/fesm2015/sd-angular-core-upload-excel.js.map +1 -1
- package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
- package/grid-material/src/lib/models/grid-column.model.d.ts +1 -0
- package/package.json +1 -1
- package/{sd-angular-core-0.0.882.tgz → sd-angular-core-0.0.886.tgz} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts"],"names":["API_CONFIG","InjectionToken","TOKEN","hash","origin","location","key","SdTokenService","configuration","cacheService","_this","this","set","token","create","type","hours","clear","remove","Object","defineProperty","prototype","get","_b","_a","customHeaders","call","Injectable","args","providedIn","Inject","Optional","SdCacheService","SdHttpInterceptor","tokenService","intercept","request","next","tokenHeader","clone","headers","url","startsWith","host","body","FormData","delete","_d","_c","beforeRemote","handle","pipe","map","event","HttpResponse","afterRemote","catchError","error","throwError","NgModule","imports","HttpClientModule","exports","providers","provide","HTTP_INTERCEPTORS","useClass","multi","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","e","rejected","result","done","then","apply","__generator","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","pop","length","push","__values","o","s","m","i","__read","r","ar","__classPrivateFieldGet","receiver","privateMap","has","SdApiService","httpClient","uploadId","_timeout","_cacheDuration","_cache","translate","post","options","hashKey","uuid.v4","Date","addMiliseconds","createdDate","subject","Subject","responseType","encodeURI","observe","timeout","subscribe","res","response","status","err","ok","take","toPromise","postCache","cacheType","cacheHours","_e","_defineParams","rq","entries","_f","_g","encodeURIComponent","join","getWithParams","params","assign","getCacheWithParams","getCache","encodedUrl","uploadSingle","option","$","children","append","on","evt","fileToUpload","target","files","item","upload","catch","trigger","file","lastDot","name","lastIndexOf","message","Error","extension","substring","extensions","some","toUpperCase","maxSizeInMb","size","validator","formData","put","httpErrorResponse","HttpClient","method"],"mappings":"6oCAaaA,EAAa,IAAIC,EAAAA,eAAkC,qBAEnDC,EAAQC,EAAAA,QAAK,CACxBC,OAAQC,SAASD,OACjBE,IAAK,sDCwBL,SAAAC,EAC0CC,EAChCC,GAFV,IAAAC,EAAAC,KAC0CA,KAAAH,cAAAA,EAChCG,KAAAF,aAAAA,EAtBVE,KAAAC,IAAM,SAACC,IAKLD,EAJgBF,EAAKD,aAAaK,OAAeZ,EAAO,CACtDa,KAAM,QACNC,MAAO,MACPJ,KACEC,IAGNF,KAAAM,MAAQ,YAKNC,EAJmBR,EAAKD,aAAaK,OAAeZ,EAAO,CACzDa,KAAM,QACNC,MAAO,MACPE,kBApBJC,OAAAC,eAAIb,EAAAc,UAAA,QAAK,KAAT,WAKE,OAAOC,EAJSX,KAAKF,aAAaK,OAAeZ,EAAO,CACtDa,KAAM,QACNC,MAAO,MACPM,wCAoBJH,OAAAC,eAAIb,EAAAc,UAAA,gBAAa,KAAjB,mBACE,OAAwC,QAAjCE,EAAkB,QAAlBC,EAAAb,KAAKH,qBAAa,IAAAgB,OAAA,EAAAA,EAAEC,qBAAa,IAAAF,OAAA,EAAAA,EAAAG,KAAAF,KAAQ,wMA9BnDG,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,6EAiCTC,EAAAA,OAAMF,KAAA,CAAC5B,IAAU,CAAAe,KAAGgB,EAAAA,kBApChBC,EAAAA,mCCGP,SAAAC,EAC0CzB,EAChC0B,GADgCvB,KAAAH,cAAAA,EAChCG,KAAAuB,aAAAA,SAEVD,EAAAZ,UAAAc,UAAA,SAAUC,EAA2BC,GAArC,YAAA3B,EAAAC,KAiBE,OAhBsB,QAAlBa,EAAAb,KAAKH,qBAAa,IAAAgB,OAAA,EAAAA,EAAEc,cAAe3B,KAAKuB,aAAarB,QACvDuB,EAAUA,EAAQG,MAAM,CAAEC,QAASJ,EAAQI,QAAQ5B,IAAID,KAAKH,cAAc8B,YAAa3B,KAAKuB,aAAarB,UAGtGuB,EAAQK,IAAIC,WAAW,UAC1BN,EAAUA,EAAQG,MAAM,CACtBE,MAAwB,QAAlBlB,EAAAZ,KAAKH,qBAAa,IAAAe,OAAA,EAAAA,EAAEoB,OAAQtC,SAASsC,MAAQP,EAAQK,OAG3DL,EAAQQ,gBAAgBC,WAC1BT,EAAUA,EAAQG,MAAM,CACtBC,QAASJ,EAAQI,QAAQM,OAAO,mBAGJ,QAAhCC,EAAkB,QAAlBC,EAAArC,KAAKH,qBAAa,IAAAwC,OAAA,EAAAA,EAAEC,oBAAY,IAAAF,GAAAA,EAAArB,KAAAsB,EAAGZ,GAE5BC,EAAKa,OAAOd,GAASe,KAC1BC,EAAAA,KAAI,SAACC,WAIH,OAHIA,aAAiBC,EAAAA,eACY,QAA/B/B,EAAkB,QAAlBC,EAAAd,EAAKF,qBAAa,IAAAgB,OAAA,EAAAA,EAAE+B,mBAAW,IAAAhC,GAAAA,EAAAG,KAAAF,EAAG6B,IAE7BA,KAETG,EAAAA,YAAW,SAACC,WAEV,OAD+B,QAA/BlC,EAAkB,QAAlBC,EAAAd,EAAKF,qBAAa,IAAAgB,OAAA,EAAAA,EAAE+B,mBAAW,IAAAhC,GAAAA,EAAAG,KAAAF,EAAGiC,GAC3BC,EAAAA,WAAWD,iCAhCzB9B,EAAAA,+EAGIG,EAAAA,OAAMF,KAAA,CAAC5B,IAAU,CAAAe,KAAGgB,EAAAA,kBALhBxB,WCUT,iCAXCoD,EAAAA,SAAQ/B,KAAA,CAAC,CACRgC,QAAS,CACPC,EAAAA,kBAEFC,QAAS,CACPD,EAAAA,kBAEFE,UAAW,CACT,CAAEC,QAASC,EAAAA,kBAAmBC,SAAUjC,EAAmBkC,OAAO,iBCuDtDC,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUnC,KAAKwC,IAAW,MAAOE,GAAKJ,EAAOI,IACpF,SAASC,EAASH,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOE,GAAKJ,EAAOI,IACvF,SAASD,EAAKG,GAJlB,IAAeJ,EAIaI,EAAOC,KAAOR,EAAQO,EAAOJ,QAJ1CA,EAIyDI,EAAOJ,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITM,KAAKP,EAAWI,GAClGF,GAAMN,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKjC,oBAItDgD,EAAYhB,EAASzB,GACjC,IAAsG0C,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEpD,KAAM0D,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAOxF,OAAU8E,EACvJ,SAASM,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIhB,EAAG,MAAM,IAAIiB,UAAU,mCAC3B,KAAOb,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARc,EAAG,GAASf,EAAU,OAAIe,EAAG,GAAKf,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAE9D,KAAK6D,GAAI,GAAKA,EAAElD,SAAWmD,EAAIA,EAAE9D,KAAK6D,EAAGe,EAAG,KAAKpB,KAAM,OAAOM,EAE3J,OADID,EAAI,EAAGC,IAAGc,EAAK,CAAS,EAARA,EAAG,GAAQd,EAAEX,QACzByB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGd,EAAIc,EAAI,MACxB,KAAK,EAAc,OAAXZ,EAAEC,QAAgB,CAAEd,MAAOyB,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGQ,EAAEC,QAASJ,EAAIe,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKZ,EAAEI,IAAIU,MAAOd,EAAEG,KAAKW,MAAO,SACxC,QACI,KAAMhB,EAAIE,EAAEG,MAAML,EAAIA,EAAEiB,OAAS,GAAKjB,EAAEA,EAAEiB,OAAS,KAAkB,IAAVH,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEZ,EAAI,EAAG,SACjG,GAAc,IAAVY,EAAG,MAAcd,GAAMc,EAAG,GAAKd,EAAE,IAAMc,EAAG,GAAKd,EAAE,IAAM,CAAEE,EAAEC,MAAQW,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYZ,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIc,EAAI,MAC7D,GAAId,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIY,KAAKJ,GAAK,MACvDd,EAAE,IAAIE,EAAEI,IAAIU,MAChBd,EAAEG,KAAKW,MAAO,SAEtBF,EAAK1D,EAAKlB,KAAK2C,EAASqB,GAC1B,MAAOX,GAAKuB,EAAK,CAAC,EAAGvB,GAAIQ,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARc,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEzB,MAAOyB,EAAG,GAAKA,EAAG,QAAK,EAAQpB,MAAM,GArB9BJ,CAAK,CAACsB,EAAGC,MAyBhClF,OAAOL,gBAYpB6F,EAASC,GACrB,IAAIC,EAAsB,mBAAXX,QAAyBA,OAAOC,SAAUW,EAAID,GAAKD,EAAEC,GAAIE,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAEpF,KAAKkF,GACrB,GAAIA,GAAyB,iBAAbA,EAAEH,OAAqB,MAAO,CAC1CpE,KAAM,WAEF,OADIuE,GAAKG,GAAKH,EAAEH,SAAQG,OAAI,GACrB,CAAE/B,MAAO+B,GAAKA,EAAEG,KAAM7B,MAAO0B,KAG5C,MAAM,IAAIL,UAAUM,EAAI,0BAA4B,4CAGxCG,EAAOJ,EAAGR,GACtB,IAAIU,EAAsB,mBAAXZ,QAAyBU,EAAEV,OAAOC,UACjD,IAAKW,EAAG,OAAOF,EACf,IAAmBK,EAAYlC,EAA3BgC,EAAID,EAAEpF,KAAKkF,GAAOM,EAAK,GAC3B,IACI,WAAc,IAANd,GAAgBA,KAAM,MAAQa,EAAIF,EAAE1E,QAAQ6C,MAAMgC,EAAGR,KAAKO,EAAEpC,OAExE,MAAOpB,GAASsB,EAAI,CAAEtB,MAAOA,WAEzB,IACQwD,IAAMA,EAAE/B,OAAS4B,EAAIC,EAAU,SAAID,EAAEpF,KAAKqF,WAExC,GAAIhC,EAAG,MAAMA,EAAEtB,OAE7B,OAAOyD,EAoDX,YAAyB/F,OAAOL,gBAkBhBqG,EAAuBC,EAAUC,GAC7C,IAAKA,EAAWC,IAAIF,GAChB,MAAM,IAAIb,UAAU,kDAExB,OAAOc,EAAW/F,IAAI8F,oBCtLxB,SAAAG,EACUC,EACgChH,EAChCC,EACAyB,GAJV,IAAAxB,EAAAC,KACUA,KAAA6G,WAAAA,EACgC7G,KAAAH,cAAAA,EAChCG,KAAAF,aAAAA,EACAE,KAAAuB,aAAAA,EAxBFvB,KAAA8G,SAAW,wCAEnBC,EAAA9G,IAAAD,KAAW,MAEXgH,EAAA/G,IAAAD,KAAiB,KACjBiH,EAAAhH,IAAAD,KASI,IAEIA,KAAAkH,UAAY,SAAChD,SACnB,OAAyB,QAAlBrD,EAAAd,EAAKF,qBAAa,IAAAgB,OAAA,EAAAA,EAAEqG,UAAUhD,KAAUA,GAUjDlE,KAAAmH,KAAO,SAAgBrF,EAAaG,EAAYJ,EAAuBuF,GAEtE,OAAA3D,EAAA1D,OAAA,OAAA,GAAA,uDA4DC,GA3DA8B,EAAUA,GAAW7B,KAAKuB,aAAaT,cACnCuG,EAAUC,EAAAA,KACRrF,aAAgBC,WACpBmF,EAAU7H,EAAK,CACbsC,IAAGA,EACHD,QAAOA,EACPI,KAAIA,OAGHuE,EAAAxG,KAAAiH,GAAYI,IAAYE,KAAKC,eAAehB,EAAAxG,KAAAiH,GAAYI,GAASI,YAAWjB,EAAAxG,KAAAgH,IAAyB,IAAIO,QAC5Gf,EAAAxG,KAAAiH,GAAYI,GAAW,CACrBI,YAAa,IAAIF,KACjBG,QAAS,IAAIC,EAAAA,UAEXP,MAAAA,OAAO,EAAPA,EAASQ,eAAyC,SAAzBR,EAAQQ,aACnC5H,KAAK6G,WAAWM,KAAKU,UAAU/F,GAAMG,EAAM,CACzC6F,QAAS,OACTjG,QAAOA,EACP+F,aAAcR,MAAAA,OAAO,EAAPA,EAASQ,eACtBpF,KAAKuF,EAAAA,QAAOvB,EAAAxG,KAAA+G,KAAiBiB,WAAU,SAACC,GACzCzB,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,UACR7D,OAAQ2D,GAEVzB,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQhG,KAAKuG,MACjC,SAAAG,GACD5B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,QACR7D,OAAQ8D,GAEV5B,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQ5E,MAAMsF,MAGrCpI,KAAK6G,WAAWM,KAAKU,UAAU/F,GAAMG,EAAM,CACzC6F,QAAS,WACTjG,QAAOA,IACNW,KAAKuF,EAAAA,QAAOvB,EAAAxG,KAAA+G,KAAiBiB,WAAU,SAACC,GACrCA,EAAII,IACN7B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,UACR7D,OAAQ2D,EAAIhG,MAEduE,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQhG,KAAKuG,EAAIhG,QAEtCuE,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,QACR7D,OAAQ2D,EAAIhG,MAEduE,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQ5E,MAAMmF,EAAIhG,UAExC,SAAAmG,GACD5B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,QACR7D,OAAQ8D,GAEV5B,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQ5E,MAAMsF,OAIR,QAAjCvH,EAAI2F,EAAAxG,KAAAiH,GAAYI,GAASa,gBAAQ,IAAArH,OAAA,EAAAA,EAAEsH,OAAQ,CACzC,GAA8C,aAAb,QAA7BvH,EAAA4F,EAAAxG,KAAAiH,GAAYI,GAASa,gBAAQ,IAAAtH,OAAA,EAAAA,EAAEuH,QACjC,MAAA,CAAA,EAAO3B,EAAAxG,KAAAiH,GAAYI,GAASa,SAAS5D,QAEvC,MAAMkC,EAAAxG,KAAAiH,GAAYI,GAASa,SAAS5D,OAEtC,MAAA,CAAA,EAAOkC,EAAAxG,KAAAiH,GAAYI,GAASK,QAAQlF,KAAK8F,EAAAA,KAAK,IAAIC,oBAGpDvI,KAAAwI,UAAY,SAAgB1G,EAAaG,EAAYmF,GAIpD,OAAA3D,EAAA1D,OAAA,OAAA,GAAA,kFACO8B,GAAUuF,MAAAA,OAAO,EAAPA,EAASvF,UAAW7B,KAAKuB,aAAaT,cAChDsB,EAAoBpC,KAAKF,aAAaK,OAAO,CACjD2B,IAAGA,EACHD,QAAOA,EACPI,KAAIA,GACH,CACD7B,KAAMgH,MAAAA,OAAO,EAAPA,EAASqB,UACfpI,MAAO+G,MAAAA,OAAO,EAAPA,EAASsB,aANV/H,EAAGyB,EAAAzB,IAAEV,EAAGmC,EAAAnC,KAAE0G,EAAGvE,EAAAuE,OAQjB,CAAA,EAAA,GACa,CAAA,EAAM3G,KAAKmH,KAAKrF,EAAKG,EAAMmF,MAAAA,OAAO,EAAPA,EAASvF,iBAEnD,OAFMyC,EAASqE,EAAA1D,OACfhF,EAAIqE,GACJ,CAAA,EAAOA,UAET,MAAA,CAAA,EAAO3D,aAqBTiI,EAAA3I,IAAAD,MAAgB,SAACyB,WACToH,EAAK,OACX,IAA2B,IAAAF,EAAA3C,EAAAxF,OAAOsI,QAAQrH,IAAQsH,EAAAJ,EAAAjH,QAAAqH,EAAAxE,KAAAwE,EAAAJ,EAAAjH,OAAE,CAAzC,IAAAsH,EAAA3C,EAAA0C,EAAA7E,MAAA,GAACvE,EAAGqJ,EAAA,GAAE9E,EAAK8E,EAAA,IAChB9E,GAAmB,IAAVA,IACX2E,EAAG9C,KACEkD,mBAAmBtJ,GAAc,IAAIsJ,mBACtC/E,sGAKR,MAAO,KAAI2E,MAAAA,OAAE,EAAFA,EAAIK,KAAK,SAGtBlJ,KAAAmJ,cAAgB,SAAUrH,EAAasH,EAAahC,GAIlD,OAAOrH,EAAKY,IAAI,GAAGmB,EAAM0E,EAAAzG,EAAA6I,GAAA7H,KAAAhB,EAAmBqJ,GAAWhC,MAAAA,OAAO,EAAPA,EAASvF,QAAOrB,OAAA6I,OAAA7I,OAAA6I,OAAA,GAAOjC,GAAO,CAAES,WAAW,MAGpG7H,KAAAsJ,mBAAqB,SAAUxH,EAAasH,EAAavH,EAAuBuF,GAK9E,OAAOrH,EAAKwJ,SAAS,GAAGzH,EAAM0E,EAAAzG,EAAA6I,GAAA7H,KAAAhB,EAAmBqJ,GAAS5I,OAAA6I,OAAA7I,OAAA6I,OAAA,GAAOjC,GAAO,CAAES,WAAW,MAGvF7H,KAAAW,IAAM,SAAUmB,EAAaD,EAAuBuF,WAIlDvF,EAAUA,GAAW9B,EAAKwB,aAAaT,cACvC,IAAM0I,GAAoC,KAAvBpC,MAAAA,OAAO,EAAPA,EAASS,WAAsB/F,EAAM+F,UAAU/F,GAK5DuF,EAAU7H,EAAK,CACnBgK,WAAUA,EACV3H,QAAOA,IA+CT,KA7CK2E,EAAAzG,EAAAkH,GAAYI,IAAYE,KAAKC,eAAehB,EAAAzG,EAAAkH,GAAYI,GAASI,YAAWjB,EAAAzG,EAAAiH,IAAyB,IAAIO,QAC5Gf,EAAAzG,EAAAkH,GAAYI,GAAW,CACrBI,YAAa,IAAIF,KACjBG,QAAS,IAAIC,EAAAA,UAEXP,MAAAA,OAAO,EAAPA,EAASQ,eAAyC,SAAzBR,EAAQQ,aACnC7H,EAAK8G,WAAWlG,IAAI6I,EAAY,CAAE1B,QAAS,OAAQjG,QAAOA,EAAE+F,aAAcR,MAAAA,OAAO,EAAPA,EAASQ,eAChFpF,KAAKuF,EAAAA,QAAOvB,EAAAzG,EAAAgH,KAAiBiB,WAAU,SAACC,GACvCzB,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,UACR7D,OAAQ2D,GAEVzB,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQhG,KAAKuG,MACjC,SAAAG,GACD5B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,QACR7D,OAAQ8D,GAEV5B,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQ5E,MAAMsF,MAGvCrI,EAAK8G,WAAWlG,IAAI6I,EAAY,CAAE1B,QAAS,WAAYjG,QAAOA,IAC3DW,KAAKuF,EAAAA,QAAOvB,EAAAzG,EAAAgH,KAAiBiB,WAAU,SAACC,GACnCA,EAAII,IACN7B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,UACR7D,OAAQ2D,EAAIhG,MAEduE,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQhG,KAAKuG,EAAIhG,QAEtCuE,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,QACR7D,OAAQ2D,EAAIhG,MAEduE,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQ5E,MAAMmF,EAAIhG,UAExC,SAAAmG,GACD5B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAW,CAC9BC,OAAQ,QACR7D,OAAQ8D,GAEV5B,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQ5E,MAAMsF,OAIV,QAAjCvH,EAAI2F,EAAAzG,EAAAkH,GAAYI,GAASa,gBAAQ,IAAArH,OAAA,EAAAA,EAAEsH,OAAQ,CACzC,GAA8C,aAAb,QAA7BvH,EAAA4F,EAAAzG,EAAAkH,GAAYI,GAASa,gBAAQ,IAAAtH,OAAA,EAAAA,EAAEuH,QACjC,OAAO3B,EAAAzG,EAAAkH,GAAYI,GAASa,SAAS5D,OAEvC,MAAMkC,EAAAzG,EAAAkH,GAAYI,GAASa,SAAS5D,OAEtC,OAAOkC,EAAAzG,EAAAkH,GAAYI,GAASK,QAAQlF,KAAK8F,EAAAA,KAAK,IAAIC,aAGpDvI,KAAAuJ,SAAW,SAAgBzH,EAAasF,GAKvC,OAAA3D,EAAA1D,OAAA,OAAA,GAAA,oFACO8B,GAAUuF,MAAAA,OAAO,EAAPA,EAASvF,UAAW7B,KAAKuB,aAAaT,cAChD0I,GAAoC,KAAvBpC,MAAAA,OAAO,EAAPA,EAASS,WAAsB/F,EAAM+F,UAAU/F,GAC5DM,EAAoBpC,KAAKF,aAAaK,OAAO,CACjDqJ,WAAUA,EACV3H,QAAOA,GACN,CACDzB,KAAMgH,MAAAA,OAAO,EAAPA,EAASqB,UACfpI,MAAO+G,MAAAA,OAAO,EAAPA,EAASsB,aALV/H,EAAGyB,EAAAzB,IAAEV,EAAGmC,EAAAnC,KAAE0G,EAAGvE,EAAAuE,OAOjB,CAAA,EAAA,GACa,CAAA,EAAM3G,KAAKW,IAAI6I,EAAYpC,MAAAA,OAAO,EAAPA,EAASvF,iBAEnD,OAFMyC,EAASqE,EAAA1D,OACfhF,EAAIqE,GACJ,CAAA,EAAOA,UAET,MAAA,CAAA,EAAO3D,aAoBTX,KAAAyJ,aAAe,SAAC3H,EAAa4H,GAK3B,OAAO,IAAI5F,SAAQ,SAACC,EAASC,GACvB2F,EAAAA,QAAE,IAAI5J,EAAK+G,UAAYhB,QACzB6D,EAAAA,QAAE,QAAQC,SAAS,IAAI7J,EAAK+G,UAAYvG,SAE1CoJ,EAAAA,QAAE,QAAQE,OAAO,cAAc9J,EAAK+G,SAAQ,0CAC5C6C,EAAAA,QAAE,IAAI5J,EAAK+G,UAAYgD,GAAG,UAAU,SAACC,GACnC,IACE,IACMC,EADuBD,EAAIE,OACLC,MAAMC,KAAK,GACvCpK,EAAKqK,OAAOtI,EAAKkI,EAAcN,GAAQlF,KAAKT,GAASsG,MAAMrG,GAC3D,MAAOlB,GACPkB,EAAOlB,OAGX6G,EAAAA,QAAE,IAAI5J,EAAK+G,UAAYwD,QAAQ,aAInCtK,KAAAoK,OAAS,SAAOtI,EAAayI,EAAYb,GAIxC,OAAAjG,EAAA1D,OAAA,OAAA,GAAA,2EAEC,IAAiB,KADXyK,EAAUD,EAAKE,KAAKC,YAAY,MAGpC,MADMC,EAAU3K,KAAKkH,UAAU,0BACzB,IAAI0D,MAAMD,GAGlB,GADME,EAAYN,EAAKE,KAAKK,UAAUN,EAAU,GAC5Cd,EAAQ,CACV,IAAqB,QAAjBrH,EAAAqH,EAAOqB,kBAAU,IAAA1I,OAAA,EAAAA,EAAEyD,UAAW4D,EAAOqB,WAAWC,MAAK,SAAA5G,GAAK,OAAAA,EAAE6G,gBAAkBJ,EAAUI,iBAE1F,MADMN,EAAU,IAAIJ,EAAKE,KAAI,KAAKzK,KAAKkH,UAAU,wCAAuC,IAAIwC,EAAOqB,WAAW7B,KAAK,MAC7G,IAAI0B,MAAMD,GAElB,GAAIjB,EAAOwB,YAAc,GAA0B,KAArBxB,EAAOwB,YAAqB,KAAOX,EAAKY,KAEpE,MADMR,EAAU,IAAIJ,EAAKE,KAAI,KAAKzK,KAAKkH,UAAU,iBAAgB,IAAIwC,EAAOwB,YAAW,OACjF,IAAIN,MAAMD,GAElB,GAAIjB,EAAO0B,WAAa1B,EAAO0B,UAAUb,EAAKE,MAE5C,MADME,EAAUjB,EAAO0B,UAAUb,EAAKE,MAChC,IAAIG,MAAMD,GAKb,OAFDU,EAAqB,IAAInJ,UACtB2H,OAAO,OAAQU,EAAMA,EAAKE,MAC5B,CAAA,EAAMzK,KAAKmH,KAAKrF,EAAKuJ,WAA5B,MAAA,CAAA,EAAOjJ,EAAA6C,uBA7MT2B,EAAAlG,UAAA4K,IAAA,SAAaxJ,EAAaG,EAAYJ,GAAtC,IAAA9B,EAAAC,KAEE,OADA6B,EAAUA,GAAW7B,KAAKuB,aAAaT,cAChC,IAAIgD,SAAa,SAACC,EAASC,GAChCjE,EAAK8G,WAAWyE,IAAIzD,UAAU/F,GAAMG,EAAM,CACxC6F,QAAS,WACTjG,QAAOA,IACNW,KAAKuF,EAAAA,QAAOvB,EAAAzG,EAAAgH,KAAiBwB,YAAY/D,MAAK,SAAAF,GAC3CA,EAAO+D,GACTtE,EAAQO,EAAOrC,MAEf+B,EAAOM,EAAOrC,SAEfoI,OAAM,SAACkB,GACRvH,EAAOuH,UA6Hb3E,EAAAlG,UAAAyB,OAAA,SAAgBL,EAAaD,GAA7B,IAAA9B,EAAAC,KAEE,OADA6B,EAAUA,GAAW7B,KAAKuB,aAAaT,cAChC,IAAIgD,SAAa,SAACC,EAASC,GAChCjE,EAAK8G,WAAW1E,OAAO0F,UAAU/F,GAAM,CAAEgG,QAAS,WAAYjG,QAAOA,IAClEW,KAAKuF,EAAAA,QAAOvB,EAAAzG,EAAAgH,KACZwB,YAAY/D,MAAK,SAAAF,GACZA,EAAO+D,GACTtE,EAAQO,EAAOrC,MAEf+B,EAAOM,EAAOrC,SAEfoI,OAAM,SAACkB,GACRvH,EAAOuH,2QAlRhBvK,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDAXLsK,EAAAA,2CAoCJrK,EAAAA,OAAMF,KAAA,CAAC5B,IAAU,CAAAe,KAAGgB,EAAAA,kBAhChBC,EAAAA,sBACAzB,WCIP,SACUiH,EACAtF,GAFV,IAAAxB,EAAAC,KACUA,KAAA6G,WAAAA,EACA7G,KAAAuB,aAAAA,EAGVvB,KAAAW,IAAK,SAAUmB,EAAa4H,GAK1B,OAJAA,EAAMlJ,OAAA6I,OAAA7I,OAAA6I,OAAA,GACDK,GAAM,CACT7H,QAAS6H,EAAO7H,SAAW9B,EAAKwB,aAAaT,gBAExCf,EAAK8G,WAAWlG,IAAOmB,EAAK4H,IAGrC1J,KAAAmH,KAAO,SAAUrF,EAAaG,EAAYyH,GAKxC,OAJAA,EAAMlJ,OAAA6I,OAAA7I,OAAA6I,OAAA,GACDK,GAAM,CACT7H,QAAS6H,EAAO7H,SAAW9B,EAAKwB,aAAaT,gBAExCf,EAAK8G,WAAWM,KAAQrF,EAAKG,EAAMyH,IAG5C1J,KAAAsL,IAAM,SAAUxJ,EAAaG,EAAYyH,GAKvC,OAJAA,EAAMlJ,OAAA6I,OAAA7I,OAAA6I,OAAA,GACDK,GAAM,CACT7H,QAAS6H,EAAO7H,SAAW9B,EAAKwB,aAAaT,gBAExCf,EAAK8G,WAAWyE,IAAOxJ,EAAKG,EAAMyH,IAG3C1J,KAAAmC,OAAS,SAAUL,EAAa4H,GAK9B,OAJAA,EAAMlJ,OAAA6I,OAAA7I,OAAA6I,OAAA,GACDK,GAAM,CACT7H,QAAS6H,EAAO7H,SAAW9B,EAAKwB,aAAaT,gBAExCf,EAAK8G,WAAW1E,OAAUL,EAAK4H,IAGxC1J,KAAAyB,QAAU,SAAUgK,EAAgB3J,EAAa4H,GAK/C,OAJAA,EAAMlJ,OAAA6I,OAAA7I,OAAA6I,OAAA,GACDK,GAAM,CACT7H,QAAS6H,EAAO7H,SAAW9B,EAAKwB,aAAaT,gBAExCf,EAAK8G,WAAWpF,QAAWgK,EAAQ3J,EAAK4H,4JA9ClD1I,EAAAA,WAAUC,KAAA,CAAC,CACVC,WAAY,oDANLsK,EAAAA,kBAGA5L","sourcesContent":["import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: () => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { timeout } from 'rxjs/operators';\r\nimport $ from 'jquery';\r\nimport * as hash from 'object-hash';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n get customHeaders() {\r\n return this.configuration?.customHeaders?.() || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n this.configuration?.beforeRemote?.(request);\r\n\r\n return next.handle(request).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport $ from 'jquery';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport * as hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any,\r\n }\r\n }\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n }\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n post = async <T = any>(url: string, body?: any, headers?: HttpHeaders, options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }): Promise<T> => {\r\n headers = headers || this.tokenService.customHeaders;\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body\r\n });\r\n }\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient.post(encodeURI(url), body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any\r\n }).pipe(timeout(this.#timeout)).subscribe((res) => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n } else {\r\n this.httpClient.post(encodeURI(url), body, {\r\n observe: 'response',\r\n headers\r\n }).pipe(timeout(this.#timeout)).subscribe((res) => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n }\r\n\r\n postCache = async <T = any>(url: string, body?: any, options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }): Promise<T> => {\r\n const headers = options?.headers || this.tokenService.customHeaders;\r\n const { get, set, has } = this.cacheService.create({\r\n url,\r\n headers,\r\n body\r\n }, {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours\r\n });\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers);\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n }\r\n\r\n put<T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> {\r\n headers = headers || this.tokenService.customHeaders;\r\n return new Promise<any>((resolve, reject) => {\r\n this.httpClient.put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers\r\n }).pipe(timeout(this.#timeout)).toPromise().then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n }).catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n }\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value || value === 0) {\r\n rq.push(\r\n `${encodeURIComponent(key as string)}=${encodeURIComponent(\r\n value as string\r\n )}`\r\n );\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n }\r\n\r\n getWithParams = <T = any>(url: string, params: any, options?: {\r\n headers?: HttpHeaders,\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }): Promise<T> => {\r\n return this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n }\r\n\r\n getCacheWithParams = <T = any>(url: string, params: any, headers?: HttpHeaders, options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }): Promise<T> => {\r\n return this.getCache(`${url}${this.#defineParams(params)}`, { ...options, encodeURI: false });\r\n }\r\n\r\n get = <T = any>(url: string, headers?: HttpHeaders, options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean\r\n }): Promise<T> => {\r\n headers = headers || this.tokenService.customHeaders;\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers\r\n });\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject()\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient.get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(this.#timeout)).subscribe((res) => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n } else {\r\n this.httpClient.get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout)).subscribe((res) => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n }\r\n\r\n getCache = async <T = any>(url: string, options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean\r\n }): Promise<T> => {\r\n const headers = options?.headers || this.tokenService.customHeaders;\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create({\r\n encodedUrl,\r\n headers\r\n }, {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours\r\n });\r\n if (!has()) {\r\n const result = await this.get(encodedUrl, options?.headers);\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n }\r\n\r\n delete<T = any>(url: string, headers?: HttpHeaders): Promise<T> {\r\n headers = headers || this.tokenService.customHeaders;\r\n return new Promise<any>((resolve, reject) => {\r\n this.httpClient.delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise().then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n }).catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n }\r\n\r\n uploadSingle = (url: string, option?: {\r\n extensions?: string[],\r\n maxSizeInMb?: number,\r\n validator?: (fileName: string) => string\r\n }): Promise<any> => {\r\n return new Promise((resolve, reject) => {\r\n if ($(`#${this.uploadId}`).length) {\r\n $('body').children(`#${this.uploadId}`).remove();\r\n }\r\n $('body').append(`<input id='${this.uploadId}' style='display: none' type='file' />`);\r\n $(`#${this.uploadId}`).on('change', (evt: any) => {\r\n try {\r\n const target: DataTransfer = evt.target;\r\n const fileToUpload = target.files.item(0);\r\n this.upload(url, fileToUpload, option).then(resolve).catch(reject);\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n $(`#${this.uploadId}`).trigger('click');\r\n });\r\n }\r\n\r\n upload = async (url: string, file: File, option?: {\r\n extensions?: string[],\r\n maxSizeInMb?: number,\r\n validator?: (fileName: string) => string\r\n }) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const extension = file.name.substring(lastDot + 1);\r\n if (option) {\r\n if (option.extensions?.length && !option.extensions.some(e => e.toUpperCase() === extension.toUpperCase())) {\r\n const message = `[${file.name}] ${this.translate('Uploaded file is not match extension')} ${option.extensions.join(', ')}`;\r\n throw new Error(message);\r\n }\r\n if (option.maxSizeInMb > 0 && option.maxSizeInMb * 1024 * 1024 < file.size) {\r\n const message = `[${file.name}] ${this.translate('Max file size')} ${option.maxSizeInMb} Mbs`;\r\n throw new Error(message);\r\n }\r\n if (option.validator && option.validator(file.name)) {\r\n const message = option.validator(file.name);\r\n throw new Error(message);\r\n }\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n }\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/api/src/lib/api.model.ts","../../../../projects/sd-core/api/src/lib/token.service.ts","../../../../projects/sd-core/api/src/lib/http.interceptor.ts","../../../../projects/sd-core/api/src/lib/api.module.ts","../../../../projects/sd-core/api/src/lib/api.service.ts","../../../../projects/sd-core/api/src/lib/http.service.ts"],"names":["__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","Object","create","__values","o","s","m","i","__read","r","ar","error","__classPrivateFieldGet","receiver","privateMap","has","get","API_CONFIG","InjectionToken","TOKEN","hash","origin","location","key","SdTokenService","configuration","cacheService","_this","set","token","type","hours","clear","remove","defineProperty","prototype","_b","_a","customHeaders","Injectable","args","providedIn","Inject","Optional","SdCacheService","SdHttpInterceptor","tokenService","intercept","request","tokenHeader","clone","headers","url","startsWith","host","FormData","delete","of","pipe","switchMap","req","beforeRemote","_d","_c","_e","handle","map","event","HttpResponse","afterRemote","catchError","throwError","NgModule","imports","HttpClientModule","exports","providers","provide","HTTP_INTERCEPTORS","useClass","multi","SdApiService","httpClient","uploadId","_timeout","_cacheDuration","_cache","translate","post","options","hashKey","uuid.v4","Date","addMiliseconds","createdDate","subject","Subject","responseType","encodeURI","observe","timeout","subscribe","res","response","status","err","ok","take","toPromise","postCache","cacheType","cacheHours","_defineParams","rq","entries","_f","_g","encodeURIComponent","join","getWithParams","params","assign","getCacheWithParams","getCache","encodedUrl","uploadSingle","option","$","children","append","on","evt","fileToUpload","target","files","item","upload","catch","trigger","file","lastDot","name","lastIndexOf","message","Error","extension","substring","extensions","some","toUpperCase","maxSizeInMb","size","validator","formData","put","httpErrorResponse","HttpClient","method"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport hash from 'object-hash';\r\n\r\nexport interface IApiConfiguration {\r\n host?: string;\r\n tokenHeader?: string;\r\n customHeaders?: () => HttpHeaders;\r\n beforeRemote?: (request: HttpRequest<any>) => void | Promise<void>;\r\n afterRemote?: (response: HttpResponse<any> | HttpErrorResponse) => void | Promise<void>;\r\n translate?: (value: string) => string;\r\n}\r\n\r\nexport const API_CONFIG = new InjectionToken<IApiConfiguration>('api.configuration');\r\n\r\nexport const TOKEN = hash({\r\n origin: location.origin,\r\n key: 'ed4a2ffc-af43-41fb-9ac9-970f43d99571'\r\n});","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { timeout } from 'rxjs/operators';\r\nimport $ from 'jquery';\r\nimport * as hash from 'object-hash';\r\nimport { IApiConfiguration, API_CONFIG, TOKEN } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdTokenService {\r\n\r\n get token() {\r\n const { get } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n return get();\r\n }\r\n\r\n set = (token: string) => {\r\n const { set } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n set(token);\r\n }\r\n\r\n clear = () => {\r\n const { remove } = this.cacheService.create<string>(TOKEN, {\r\n type: 'local',\r\n hours: 240\r\n });\r\n remove();\r\n }\r\n\r\n get customHeaders() {\r\n return this.configuration?.customHeaders?.() || null;\r\n }\r\n\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService) {\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { from, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { API_CONFIG, IApiConfiguration } from './api.model';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable()\r\nexport class SdHttpInterceptor implements HttpInterceptor {\r\n constructor(\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private tokenService: SdTokenService\r\n ) { }\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (this.configuration?.tokenHeader && this.tokenService.token) {\r\n request = request.clone({ headers: request.headers.set(this.configuration.tokenHeader, this.tokenService.token) });\r\n }\r\n\r\n if (!request.url.startsWith('http')) {\r\n request = request.clone({\r\n url: (this.configuration?.host || location.host) + request.url\r\n });\r\n }\r\n if (request.body instanceof FormData) {\r\n request = request.clone({\r\n headers: request.headers.delete('Content-Type')\r\n });\r\n }\r\n return of(request).pipe(switchMap(async req => {\r\n const beforeRemote = this.configuration?.beforeRemote?.(req);\r\n if (beforeRemote instanceof Promise) {\r\n await beforeRemote;\r\n }\r\n return req;\r\n }), switchMap(next.handle)).pipe(\r\n map((event: HttpEvent<any>) => {\r\n if (event instanceof HttpResponse) {\r\n this.configuration?.afterRemote?.(event);\r\n }\r\n return event;\r\n }),\r\n catchError((error: HttpErrorResponse) => {\r\n this.configuration?.afterRemote?.(error);\r\n return throwError(error);\r\n }));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { SdHttpInterceptor } from './http.interceptor';\r\n\r\n@NgModule({\r\n imports: [\r\n HttpClientModule,\r\n ],\r\n exports: [\r\n HttpClientModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: SdHttpInterceptor, multi: true }\r\n ],\r\n})\r\nexport class SdApiModule { }\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { take, timeout } from 'rxjs/operators';\r\nimport $ from 'jquery';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { SdCacheService } from '@sd-angular/core/cache';\r\nimport { SdTokenService } from './token.service';\r\nimport { Subject } from 'rxjs';\r\nimport * as hash from 'object-hash';\r\nimport * as uuid from 'uuid';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdApiService {\r\n private uploadId = 'U118fefb1-3085-4641-8cb8-f7fe5c28f509';\r\n\r\n #timeout = 120000; // 120s\r\n\r\n #cacheDuration = 2000; // 2s\r\n #cache: {\r\n [key: string]: {\r\n createdDate: Date;\r\n subject: Subject<any>;\r\n response?: {\r\n status?: 'success' | 'error';\r\n result: any,\r\n }\r\n }\r\n } = {};\r\n\r\n private translate = (value: string): string => {\r\n return this.configuration?.translate(value) || value;\r\n }\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n @Inject(API_CONFIG) @Optional() private configuration: IApiConfiguration,\r\n private cacheService: SdCacheService,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n post = async <T = any>(url: string, body?: any, headers?: HttpHeaders, options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }): Promise<T> => {\r\n headers = headers || this.tokenService.customHeaders;\r\n let hashKey = uuid.v4();\r\n if (!(body instanceof FormData)) {\r\n hashKey = hash({\r\n url,\r\n headers,\r\n body\r\n });\r\n }\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject(),\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient.post(encodeURI(url), body, {\r\n observe: 'body',\r\n headers,\r\n responseType: options?.responseType as any\r\n }).pipe(timeout(this.#timeout)).subscribe((res) => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n } else {\r\n this.httpClient.post(encodeURI(url), body, {\r\n observe: 'response',\r\n headers\r\n }).pipe(timeout(this.#timeout)).subscribe((res) => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n }\r\n\r\n postCache = async <T = any>(url: string, body?: any, options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }): Promise<T> => {\r\n const headers = options?.headers || this.tokenService.customHeaders;\r\n const { get, set, has } = this.cacheService.create({\r\n url,\r\n headers,\r\n body\r\n }, {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours\r\n });\r\n if (!has()) {\r\n const result = await this.post(url, body, options?.headers);\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n }\r\n\r\n put<T = any>(url: string, body?: any, headers?: HttpHeaders): Promise<T> {\r\n headers = headers || this.tokenService.customHeaders;\r\n return new Promise<any>((resolve, reject) => {\r\n this.httpClient.put(encodeURI(url), body, {\r\n observe: 'response',\r\n headers\r\n }).pipe(timeout(this.#timeout)).toPromise().then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n }).catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n }\r\n\r\n #defineParams = (request: any) => {\r\n const rq = [];\r\n for (const [key, value] of Object.entries(request)) {\r\n if (value || value === 0) {\r\n rq.push(\r\n `${encodeURIComponent(key as string)}=${encodeURIComponent(\r\n value as string\r\n )}`\r\n );\r\n }\r\n }\r\n return `?${rq?.join('&')}`;\r\n }\r\n\r\n getWithParams = <T = any>(url: string, params: any, options?: {\r\n headers?: HttpHeaders,\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n }): Promise<T> => {\r\n return this.get(`${url}${this.#defineParams(params)}`, options?.headers, { ...options, encodeURI: false });\r\n }\r\n\r\n getCacheWithParams = <T = any>(url: string, params: any, headers?: HttpHeaders, options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n }): Promise<T> => {\r\n return this.getCache(`${url}${this.#defineParams(params)}`, { ...options, encodeURI: false });\r\n }\r\n\r\n get = <T = any>(url: string, headers?: HttpHeaders, options?: {\r\n responseType?: 'arraybuffer' | 'blob' | 'json' | 'text';\r\n encodeURI?: boolean\r\n }): Promise<T> => {\r\n headers = headers || this.tokenService.customHeaders;\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n // const hashKey = hash({\r\n // encodedUrl,\r\n // headers\r\n // });\r\n const hashKey = hash({\r\n encodedUrl,\r\n headers\r\n });\r\n if (!this.#cache[hashKey] || Date.addMiliseconds(this.#cache[hashKey].createdDate, this.#cacheDuration) < new Date()) {\r\n this.#cache[hashKey] = {\r\n createdDate: new Date(),\r\n subject: new Subject()\r\n };\r\n if (options?.responseType && options.responseType !== 'json') {\r\n this.httpClient.get(encodedUrl, { observe: 'body', headers, responseType: options?.responseType as any })\r\n .pipe(timeout(this.#timeout)).subscribe((res) => {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res\r\n };\r\n this.#cache[hashKey].subject.next(res);\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n } else {\r\n this.httpClient.get(encodedUrl, { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout)).subscribe((res) => {\r\n if (res.ok) {\r\n this.#cache[hashKey].response = {\r\n status: 'success',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.next(res.body);\r\n } else {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: res.body\r\n };\r\n this.#cache[hashKey].subject.error(res.body);\r\n }\r\n }, err => {\r\n this.#cache[hashKey].response = {\r\n status: 'error',\r\n result: err\r\n };\r\n this.#cache[hashKey].subject.error(err);\r\n });\r\n }\r\n }\r\n if (this.#cache[hashKey].response?.status) {\r\n if (this.#cache[hashKey].response?.status === 'success') {\r\n return this.#cache[hashKey].response.result;\r\n }\r\n throw this.#cache[hashKey].response.result;\r\n }\r\n return this.#cache[hashKey].subject.pipe(take(1)).toPromise();\r\n }\r\n\r\n getCache = async <T = any>(url: string, options?: {\r\n cacheType?: 'default' | 'session' | 'local';\r\n cacheHours?: number;\r\n headers?: HttpHeaders;\r\n encodeURI?: boolean\r\n }): Promise<T> => {\r\n const headers = options?.headers || this.tokenService.customHeaders;\r\n const encodedUrl = options?.encodeURI === false ? url : encodeURI(url);\r\n const { get, set, has } = this.cacheService.create({\r\n encodedUrl,\r\n headers\r\n }, {\r\n type: options?.cacheType,\r\n hours: options?.cacheHours\r\n });\r\n if (!has()) {\r\n const result = await this.get(encodedUrl, options?.headers);\r\n set(result);\r\n return result;\r\n }\r\n return get();\r\n }\r\n\r\n delete<T = any>(url: string, headers?: HttpHeaders): Promise<T> {\r\n headers = headers || this.tokenService.customHeaders;\r\n return new Promise<any>((resolve, reject) => {\r\n this.httpClient.delete(encodeURI(url), { observe: 'response', headers })\r\n .pipe(timeout(this.#timeout))\r\n .toPromise().then(result => {\r\n if (result.ok) {\r\n resolve(result.body);\r\n } else {\r\n reject(result.body);\r\n }\r\n }).catch((httpErrorResponse: HttpErrorResponse) => {\r\n reject(httpErrorResponse);\r\n });\r\n });\r\n }\r\n\r\n uploadSingle = (url: string, option?: {\r\n extensions?: string[],\r\n maxSizeInMb?: number,\r\n validator?: (fileName: string) => string\r\n }): Promise<any> => {\r\n return new Promise((resolve, reject) => {\r\n if ($(`#${this.uploadId}`).length) {\r\n $('body').children(`#${this.uploadId}`).remove();\r\n }\r\n $('body').append(`<input id='${this.uploadId}' style='display: none' type='file' />`);\r\n $(`#${this.uploadId}`).on('change', (evt: any) => {\r\n try {\r\n const target: DataTransfer = evt.target;\r\n const fileToUpload = target.files.item(0);\r\n this.upload(url, fileToUpload, option).then(resolve).catch(reject);\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n $(`#${this.uploadId}`).trigger('click');\r\n });\r\n }\r\n\r\n upload = async (url: string, file: File, option?: {\r\n extensions?: string[],\r\n maxSizeInMb?: number,\r\n validator?: (fileName: string) => string\r\n }) => {\r\n const lastDot = file.name.lastIndexOf('.');\r\n if (lastDot === -1) {\r\n const message = this.translate(`Invalid file extension`);\r\n throw new Error(message);\r\n }\r\n const extension = file.name.substring(lastDot + 1);\r\n if (option) {\r\n if (option.extensions?.length && !option.extensions.some(e => e.toUpperCase() === extension.toUpperCase())) {\r\n const message = `[${file.name}] ${this.translate('Uploaded file is not match extension')} ${option.extensions.join(', ')}`;\r\n throw new Error(message);\r\n }\r\n if (option.maxSizeInMb > 0 && option.maxSizeInMb * 1024 * 1024 < file.size) {\r\n const message = `[${file.name}] ${this.translate('Max file size')} ${option.maxSizeInMb} Mbs`;\r\n throw new Error(message);\r\n }\r\n if (option.validator && option.validator(file.name)) {\r\n const message = option.validator(file.name);\r\n throw new Error(message);\r\n }\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n return await this.post(url, formData);\r\n }\r\n}\r\n","import { Injectable, Inject, Optional } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { IApiConfiguration, API_CONFIG } from './api.model';\r\nimport { Observable } from 'rxjs';\r\nimport { SdTokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SdHttpService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private tokenService: SdTokenService) {\r\n }\r\n\r\n get =<T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.get<T>(url, option);\r\n }\r\n\r\n post = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.post<T>(url, body, option);\r\n }\r\n\r\n put = <T = any>(url: string, body?: any, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.put<T>(url, body, option);\r\n }\r\n\r\n delete = <T = any>(url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.delete<T>(url, option);\r\n }\r\n\r\n request = <T = any>(method: string, url: string, option?: ObservableOption): Observable<T> => {\r\n option = {\r\n ...option,\r\n headers: option.headers || this.tokenService.customHeaders\r\n }\r\n return this.httpClient.request<T>(method, url, option);\r\n }\r\n}\r\n\r\ninterface ObservableOption {\r\n body?: any;\r\n headers?: HttpHeaders | {\r\n [header: string]: string | string[];\r\n };\r\n observe?: 'body';\r\n params?: HttpParams | {\r\n [param: string]: string | string[];\r\n };\r\n reportProgress?: boolean;\r\n responseType?: 'json';\r\n withCredentials?: boolean;\r\n}"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('object-hash'), require('@sd-angular/core/typing')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@sd-angular/core/cache', ['exports', '@angular/core', 'object-hash', '@sd-angular/core/typing'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sd-angular'] = global['sd-angular'] || {}, global['sd-angular'].core = global['sd-angular'].core || {}, global['sd-angular'].core.cache = {}), global.ng.core, global.hash));
|
|
5
|
-
}(this, (function (exports, i0, hash) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('object-hash'), require('@sd-angular/core/typing'), require('rxjs'), require('rxjs/operators')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@sd-angular/core/cache', ['exports', '@angular/core', 'object-hash', '@sd-angular/core/typing', 'rxjs', 'rxjs/operators'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['sd-angular'] = global['sd-angular'] || {}, global['sd-angular'].core = global['sd-angular'].core || {}, global['sd-angular'].core.cache = {}), global.ng.core, global.hash, global['sd-angular'].core.typing, global.rxjs, global.rxjs.operators));
|
|
5
|
+
}(this, (function (exports, i0, hash, typing, rxjs, operators) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -311,12 +311,13 @@
|
|
|
311
311
|
|
|
312
312
|
var CACHE_CONFIG = new i0.InjectionToken('cache.configuration');
|
|
313
313
|
|
|
314
|
-
var _cache, _get, _set, _has, _remove;
|
|
314
|
+
var _cache, _subject, _get, _getServer, _set, _setServer, _has, _hasServer, _remove, _removeServer;
|
|
315
315
|
var SdCacheService = /** @class */ (function () {
|
|
316
316
|
function SdCacheService(configuration) {
|
|
317
317
|
var _this = this;
|
|
318
318
|
this.configuration = configuration;
|
|
319
319
|
_cache.set(this, {});
|
|
320
|
+
_subject.set(this, {});
|
|
320
321
|
_get.set(this, function (key, option) {
|
|
321
322
|
return function () {
|
|
322
323
|
var cache = __classPrivateFieldGet(_this, _cache)[key];
|
|
@@ -337,26 +338,51 @@
|
|
|
337
338
|
}
|
|
338
339
|
}
|
|
339
340
|
if (!cache) {
|
|
340
|
-
return
|
|
341
|
+
return option === null || option === void 0 ? void 0 : option.default;
|
|
341
342
|
}
|
|
342
343
|
if ((option === null || option === void 0 ? void 0 : option.hours) && Date.addHours(cache.createdOn, option === null || option === void 0 ? void 0 : option.hours) < new Date()) {
|
|
343
344
|
var remove = __classPrivateFieldGet(_this, _remove).call(_this, key, option);
|
|
344
345
|
remove();
|
|
345
|
-
return
|
|
346
|
+
return option === null || option === void 0 ? void 0 : option.default;
|
|
346
347
|
}
|
|
347
348
|
return JSON.parse(JSON.stringify(cache.data));
|
|
348
349
|
};
|
|
349
350
|
});
|
|
351
|
+
_getServer.set(this, function (key, option) {
|
|
352
|
+
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
353
|
+
var _a, cache, remove;
|
|
354
|
+
return __generator(this, function (_c) {
|
|
355
|
+
switch (_c.label) {
|
|
356
|
+
case 0:
|
|
357
|
+
cache = __classPrivateFieldGet(this, _cache)[key];
|
|
358
|
+
if (!((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.get)) return [3 /*break*/, 2];
|
|
359
|
+
return [4 /*yield*/, this.configuration.get(key, option).catch(function (err) {
|
|
360
|
+
console.error(err);
|
|
361
|
+
return undefined;
|
|
362
|
+
})];
|
|
363
|
+
case 1:
|
|
364
|
+
cache = _c.sent();
|
|
365
|
+
_c.label = 2;
|
|
366
|
+
case 2:
|
|
367
|
+
if (!cache) {
|
|
368
|
+
return [2 /*return*/, option === null || option === void 0 ? void 0 : option.default];
|
|
369
|
+
}
|
|
370
|
+
if ((option === null || option === void 0 ? void 0 : option.hours) && Date.addHours(cache.createdOn, option === null || option === void 0 ? void 0 : option.hours) < new Date()) {
|
|
371
|
+
remove = __classPrivateFieldGet(this, _removeServer).call(this, key, option);
|
|
372
|
+
remove();
|
|
373
|
+
return [2 /*return*/, option === null || option === void 0 ? void 0 : option.default];
|
|
374
|
+
}
|
|
375
|
+
return [2 /*return*/, JSON.parse(JSON.stringify(cache.data))];
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
}); };
|
|
379
|
+
});
|
|
350
380
|
_set.set(this, function (key, option) {
|
|
351
381
|
return function (data) {
|
|
352
|
-
var _a;
|
|
353
382
|
__classPrivateFieldGet(_this, _cache)[key] = {
|
|
354
383
|
data: JSON.parse(JSON.stringify(data)),
|
|
355
384
|
createdOn: new Date()
|
|
356
385
|
};
|
|
357
|
-
if ((_a = _this.configuration) === null || _a === void 0 ? void 0 : _a.set) {
|
|
358
|
-
_this.configuration.set(key, data, option).catch(console.error);
|
|
359
|
-
}
|
|
360
386
|
if ((option === null || option === void 0 ? void 0 : option.type) === 'session') {
|
|
361
387
|
try {
|
|
362
388
|
sessionStorage.setItem(key, JSON.stringify(__classPrivateFieldGet(_this, _cache)[key]));
|
|
@@ -373,8 +399,38 @@
|
|
|
373
399
|
console.error(err);
|
|
374
400
|
}
|
|
375
401
|
}
|
|
402
|
+
__classPrivateFieldGet(_this, _subject)[key].next(__classPrivateFieldGet(_this, _cache)[key].data);
|
|
376
403
|
};
|
|
377
404
|
});
|
|
405
|
+
_setServer.set(this, function (key, option) {
|
|
406
|
+
return function (data) { return __awaiter(_this, void 0, void 0, function () {
|
|
407
|
+
var _a, err_1;
|
|
408
|
+
return __generator(this, function (_c) {
|
|
409
|
+
switch (_c.label) {
|
|
410
|
+
case 0:
|
|
411
|
+
__classPrivateFieldGet(this, _cache)[key] = {
|
|
412
|
+
data: JSON.parse(JSON.stringify(data)),
|
|
413
|
+
createdOn: new Date()
|
|
414
|
+
};
|
|
415
|
+
if (!((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.set)) return [3 /*break*/, 4];
|
|
416
|
+
_c.label = 1;
|
|
417
|
+
case 1:
|
|
418
|
+
_c.trys.push([1, 3, , 4]);
|
|
419
|
+
return [4 /*yield*/, this.configuration.set(key, __classPrivateFieldGet(this, _cache)[key], option)];
|
|
420
|
+
case 2:
|
|
421
|
+
_c.sent();
|
|
422
|
+
return [3 /*break*/, 4];
|
|
423
|
+
case 3:
|
|
424
|
+
err_1 = _c.sent();
|
|
425
|
+
console.error(err_1);
|
|
426
|
+
return [3 /*break*/, 4];
|
|
427
|
+
case 4:
|
|
428
|
+
__classPrivateFieldGet(this, _subject)[key].next(__classPrivateFieldGet(this, _cache)[key].data);
|
|
429
|
+
return [2 /*return*/];
|
|
430
|
+
}
|
|
431
|
+
});
|
|
432
|
+
}); };
|
|
433
|
+
});
|
|
378
434
|
_has.set(this, function (key, option) {
|
|
379
435
|
return function () {
|
|
380
436
|
var cache = __classPrivateFieldGet(_this, _cache)[key];
|
|
@@ -403,6 +459,33 @@
|
|
|
403
459
|
return true;
|
|
404
460
|
};
|
|
405
461
|
});
|
|
462
|
+
_hasServer.set(this, function (key, option) {
|
|
463
|
+
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
464
|
+
var _a, cache;
|
|
465
|
+
return __generator(this, function (_c) {
|
|
466
|
+
switch (_c.label) {
|
|
467
|
+
case 0:
|
|
468
|
+
cache = __classPrivateFieldGet(this, _cache)[key];
|
|
469
|
+
if (!((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.get)) return [3 /*break*/, 2];
|
|
470
|
+
return [4 /*yield*/, this.configuration.get(key, option).catch(function (err) {
|
|
471
|
+
console.error(err);
|
|
472
|
+
return undefined;
|
|
473
|
+
})];
|
|
474
|
+
case 1:
|
|
475
|
+
cache = _c.sent();
|
|
476
|
+
_c.label = 2;
|
|
477
|
+
case 2:
|
|
478
|
+
if (!cache) {
|
|
479
|
+
return [2 /*return*/, false];
|
|
480
|
+
}
|
|
481
|
+
if ((option === null || option === void 0 ? void 0 : option.hours) && Date.addHours(cache.createdOn, option === null || option === void 0 ? void 0 : option.hours) < new Date()) {
|
|
482
|
+
return [2 /*return*/, false];
|
|
483
|
+
}
|
|
484
|
+
return [2 /*return*/, true];
|
|
485
|
+
}
|
|
486
|
+
});
|
|
487
|
+
}); };
|
|
488
|
+
});
|
|
406
489
|
_remove.set(this, function (key, option) {
|
|
407
490
|
return function () {
|
|
408
491
|
__classPrivateFieldGet(_this, _cache)[key] = undefined;
|
|
@@ -412,8 +495,30 @@
|
|
|
412
495
|
if ((option === null || option === void 0 ? void 0 : option.type) === 'local') {
|
|
413
496
|
localStorage.removeItem(key);
|
|
414
497
|
}
|
|
498
|
+
__classPrivateFieldGet(_this, _subject)[key].next(undefined);
|
|
415
499
|
};
|
|
416
500
|
});
|
|
501
|
+
_removeServer.set(this, function (key, option) {
|
|
502
|
+
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
503
|
+
var _a;
|
|
504
|
+
return __generator(this, function (_c) {
|
|
505
|
+
switch (_c.label) {
|
|
506
|
+
case 0:
|
|
507
|
+
__classPrivateFieldGet(this, _cache)[key] = undefined;
|
|
508
|
+
if (!((_a = this.configuration) === null || _a === void 0 ? void 0 : _a.remove)) return [3 /*break*/, 2];
|
|
509
|
+
return [4 /*yield*/, this.configuration.remove(key, option).catch(function (err) {
|
|
510
|
+
console.error(err);
|
|
511
|
+
})];
|
|
512
|
+
case 1:
|
|
513
|
+
_c.sent();
|
|
514
|
+
_c.label = 2;
|
|
515
|
+
case 2:
|
|
516
|
+
__classPrivateFieldGet(this, _subject)[key].next(undefined);
|
|
517
|
+
return [2 /*return*/];
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
}); };
|
|
521
|
+
});
|
|
417
522
|
}
|
|
418
523
|
SdCacheService.prototype.create = function (key, option) {
|
|
419
524
|
if (!key) {
|
|
@@ -429,6 +534,9 @@
|
|
|
429
534
|
else {
|
|
430
535
|
throw new Error('Invalid key');
|
|
431
536
|
}
|
|
537
|
+
if (!__classPrivateFieldGet(this, _subject)[hashKey]) {
|
|
538
|
+
__classPrivateFieldGet(this, _subject)[hashKey] = new rxjs.BehaviorSubject(option === null || option === void 0 ? void 0 : option.default);
|
|
539
|
+
}
|
|
432
540
|
var get = __classPrivateFieldGet(this, _get).call(this, hashKey, option);
|
|
433
541
|
var set = __classPrivateFieldGet(this, _set).call(this, hashKey, option);
|
|
434
542
|
var has = __classPrivateFieldGet(this, _has).call(this, hashKey, option);
|
|
@@ -437,12 +545,42 @@
|
|
|
437
545
|
get: get,
|
|
438
546
|
set: set,
|
|
439
547
|
has: has,
|
|
440
|
-
remove: remove
|
|
548
|
+
remove: remove,
|
|
549
|
+
observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(operators.map(get))
|
|
550
|
+
};
|
|
551
|
+
};
|
|
552
|
+
SdCacheService.prototype.createServer = function (key, option) {
|
|
553
|
+
if (!key) {
|
|
554
|
+
throw new Error('Key is required');
|
|
555
|
+
}
|
|
556
|
+
var hashKey = null;
|
|
557
|
+
if (typeof (key) === 'string') {
|
|
558
|
+
hashKey = key;
|
|
559
|
+
}
|
|
560
|
+
else if (typeof (key) === 'object') {
|
|
561
|
+
hashKey = hash__default['default'](key);
|
|
562
|
+
}
|
|
563
|
+
else {
|
|
564
|
+
throw new Error('Invalid key');
|
|
565
|
+
}
|
|
566
|
+
if (!__classPrivateFieldGet(this, _subject)[hashKey]) {
|
|
567
|
+
__classPrivateFieldGet(this, _subject)[hashKey] = new rxjs.BehaviorSubject(option === null || option === void 0 ? void 0 : option.default);
|
|
568
|
+
}
|
|
569
|
+
var get = __classPrivateFieldGet(this, _getServer).call(this, hashKey, option);
|
|
570
|
+
var set = __classPrivateFieldGet(this, _setServer).call(this, hashKey, option);
|
|
571
|
+
var has = __classPrivateFieldGet(this, _hasServer).call(this, hashKey, option);
|
|
572
|
+
var remove = __classPrivateFieldGet(this, _removeServer).call(this, hashKey, option);
|
|
573
|
+
return {
|
|
574
|
+
get: get,
|
|
575
|
+
set: set,
|
|
576
|
+
has: has,
|
|
577
|
+
remove: remove,
|
|
578
|
+
observer: __classPrivateFieldGet(this, _subject)[hashKey].pipe(operators.switchMap(get))
|
|
441
579
|
};
|
|
442
580
|
};
|
|
443
581
|
return SdCacheService;
|
|
444
582
|
}());
|
|
445
|
-
_cache = new WeakMap(), _get = new WeakMap(), _set = new WeakMap(), _has = new WeakMap(), _remove = new WeakMap();
|
|
583
|
+
_cache = new WeakMap(), _subject = new WeakMap(), _get = new WeakMap(), _getServer = new WeakMap(), _set = new WeakMap(), _setServer = new WeakMap(), _has = new WeakMap(), _hasServer = new WeakMap(), _remove = new WeakMap(), _removeServer = new WeakMap();
|
|
446
584
|
SdCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SdCacheService_Factory() { return new SdCacheService(i0.ɵɵinject(CACHE_CONFIG, 8)); }, token: SdCacheService, providedIn: "root" });
|
|
447
585
|
SdCacheService.decorators = [
|
|
448
586
|
{ type: i0.Injectable, args: [{
|