@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.
Files changed (69) hide show
  1. package/api/src/lib/api.model.d.ts +2 -2
  2. package/assets/ckeditor/plugins/notification/plugin.js +1 -1
  3. package/assets/ckeditor/plugins/videoembed/.gitattributes +17 -0
  4. package/assets/ckeditor/plugins/wordcount/lang/ca.js +1 -1
  5. package/assets/ckeditor/plugins/wordcount/lang/cs.js +1 -1
  6. package/assets/ckeditor/plugins/wordcount/lang/de.js +1 -1
  7. package/assets/ckeditor/plugins/wordcount/lang/el.js +1 -1
  8. package/assets/ckeditor/plugins/wordcount/lang/en.js +1 -1
  9. package/assets/ckeditor/plugins/wordcount/lang/es.js +1 -1
  10. package/assets/ckeditor/plugins/wordcount/lang/eu.js +1 -1
  11. package/assets/ckeditor/plugins/wordcount/lang/fa.js +1 -1
  12. package/assets/ckeditor/plugins/wordcount/lang/fr.js +1 -1
  13. package/assets/ckeditor/plugins/wordcount/lang/he.js +1 -1
  14. package/assets/ckeditor/plugins/wordcount/lang/hr.js +1 -1
  15. package/assets/ckeditor/plugins/wordcount/lang/hu.js +1 -1
  16. package/assets/ckeditor/plugins/wordcount/lang/ja.js +1 -1
  17. package/assets/ckeditor/plugins/wordcount/lang/nl.js +1 -1
  18. package/assets/ckeditor/plugins/wordcount/lang/no.js +1 -1
  19. package/assets/ckeditor/plugins/wordcount/lang/pl.js +1 -1
  20. package/assets/ckeditor/plugins/wordcount/lang/pt-br.js +1 -1
  21. package/assets/ckeditor/plugins/wordcount/lang/ro.js +1 -1
  22. package/assets/ckeditor/plugins/wordcount/lang/ru.js +1 -1
  23. package/assets/ckeditor/plugins/wordcount/lang/sk.js +1 -1
  24. package/assets/ckeditor/plugins/wordcount/lang/sv.js +1 -1
  25. package/assets/ckeditor/plugins/wordcount/lang/tr.js +1 -1
  26. package/assets/ckeditor/plugins/wordcount/lang/uk.js +1 -1
  27. package/assets/ckeditor/plugins/wordcount/lang/zh-cn.js +1 -1
  28. package/assets/ckeditor/plugins/wordcount/lang/zh.js +1 -1
  29. package/assets/ckeditor/plugins/wordcount/samples/wordcount.html +1 -1
  30. package/assets/ckeditor/plugins/wordcount/samples/wordcountWithMaxCount.html +1 -1
  31. package/bundles/sd-angular-core-api.umd.js +134 -121
  32. package/bundles/sd-angular-core-api.umd.js.map +1 -1
  33. package/bundles/sd-angular-core-api.umd.min.js +1 -1
  34. package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
  35. package/bundles/sd-angular-core-cache.umd.js +151 -13
  36. package/bundles/sd-angular-core-cache.umd.js.map +1 -1
  37. package/bundles/sd-angular-core-cache.umd.min.js +2 -2
  38. package/bundles/sd-angular-core-cache.umd.min.js.map +1 -1
  39. package/bundles/sd-angular-core-grid-material.umd.js +33 -24
  40. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  41. package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
  42. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  43. package/bundles/sd-angular-core-upload-excel.umd.js +1 -0
  44. package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
  45. package/bundles/sd-angular-core-upload-excel.umd.min.js +1 -1
  46. package/bundles/sd-angular-core-upload-excel.umd.min.js.map +1 -1
  47. package/cache/sd-angular-core-cache.metadata.json +1 -1
  48. package/cache/src/lib/cache.model.d.ts +27 -4
  49. package/cache/src/lib/cache.service.d.ts +3 -2
  50. package/esm2015/api/src/lib/api.model.js +1 -1
  51. package/esm2015/api/src/lib/http.interceptor.js +13 -6
  52. package/esm2015/cache/src/lib/cache.model.js +1 -1
  53. package/esm2015/cache/src/lib/cache.service.js +115 -11
  54. package/esm2015/grid-material/src/lib/components/grid-filter/grid-filter.component.js +8 -7
  55. package/esm2015/grid-material/src/lib/grid-material.component.js +8 -1
  56. package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
  57. package/esm2015/upload-excel/src/lib/upload-excel.component.js +2 -1
  58. package/fesm2015/sd-angular-core-api.js +12 -6
  59. package/fesm2015/sd-angular-core-api.js.map +1 -1
  60. package/fesm2015/sd-angular-core-cache.js +114 -10
  61. package/fesm2015/sd-angular-core-cache.js.map +1 -1
  62. package/fesm2015/sd-angular-core-grid-material.js +14 -6
  63. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  64. package/fesm2015/sd-angular-core-upload-excel.js +1 -0
  65. package/fesm2015/sd-angular-core-upload-excel.js.map +1 -1
  66. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  67. package/grid-material/src/lib/models/grid-column.model.d.ts +1 -0
  68. package/package.json +1 -1
  69. 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":"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","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 undefined;
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 undefined;
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: [{