@esolve/ng-esolve-connect 0.38.1 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/esm2020/index.mjs +3 -3
  2. package/esm2020/lib/account/esolve-account.service.mjs +14 -16
  3. package/esm2020/lib/account/password/esolve-forgot-password-response.interface.mjs +1 -1
  4. package/esm2020/lib/account/registration/esolve-registration-post-response-item.interface.mjs +1 -1
  5. package/esm2020/lib/auth/esolve-auth-interceptor.service.mjs +11 -14
  6. package/esm2020/lib/auth/esolve-auth.service.mjs +111 -85
  7. package/esm2020/lib/auth/index.mjs +5 -3
  8. package/esm2020/lib/auth/interfaces/esolve-auth-check-data.interface.mjs +2 -0
  9. package/esm2020/lib/auth/interfaces/esolve-auth-data.interface.mjs +2 -0
  10. package/esm2020/lib/auth/interfaces/esolve-auth-get-data.interface.mjs +2 -0
  11. package/esm2020/lib/auth/interfaces/esolve-auth-response.interface.mjs +2 -0
  12. package/esm2020/lib/auth/interfaces/esolve-login-post-response-item.interface.mjs +2 -0
  13. package/esm2020/lib/auth/interfaces/index.mjs +6 -0
  14. package/esm2020/lib/auth/providers/esolve-eurus-auto-login.provider.mjs +12 -0
  15. package/esm2020/lib/auth/providers/index.mjs +2 -0
  16. package/esm2020/lib/auth/types/esolve-auth-check-response.type.mjs +2 -0
  17. package/esm2020/lib/auth/types/esolve-auth-get-response.type.mjs +2 -0
  18. package/esm2020/lib/auth/types/esolve-auth-response-data.type.mjs +2 -0
  19. package/esm2020/lib/auth/types/esolve-auth-result.type.mjs +2 -0
  20. package/esm2020/lib/auth/types/index.mjs +5 -0
  21. package/esm2020/lib/banners/esolve-banner.service.mjs +7 -9
  22. package/esm2020/lib/cart/esolve-cart.service.mjs +2 -2
  23. package/esm2020/lib/category-tree/esolve-category-tree.service.mjs +7 -9
  24. package/esm2020/lib/core/esolve-config.service.mjs +51 -0
  25. package/esm2020/lib/core/esolve-connect-config.constant.mjs +3 -0
  26. package/esm2020/lib/core/esolve-connect.config.mjs +2 -0
  27. package/esm2020/lib/core/index.mjs +4 -0
  28. package/esm2020/lib/coupons/esolve-coupons.service.mjs +2 -2
  29. package/esm2020/lib/enquiry/esolve-enquiry.service.mjs +9 -11
  30. package/esm2020/lib/images/directives/cdn-src.directive.mjs +72 -0
  31. package/esm2020/lib/images/directives/index.mjs +2 -0
  32. package/esm2020/lib/images/esolve-image-loader.provider.mjs +13 -0
  33. package/esm2020/lib/images/functions/index.mjs +4 -0
  34. package/esm2020/lib/images/functions/is-esolve-cdn-path.function.mjs +5 -0
  35. package/esm2020/lib/images/functions/is-legacy-esolve-cdn-path.function.mjs +5 -0
  36. package/esm2020/lib/images/functions/process-image-src.function.mjs +33 -0
  37. package/esm2020/lib/images/index.mjs +4 -0
  38. package/esm2020/lib/locations/esolve-locations.service.mjs +2 -2
  39. package/esm2020/lib/manufacturers/esolve-manufacturers.service.mjs +7 -9
  40. package/esm2020/lib/menu/esolve-menu.service.mjs +7 -9
  41. package/esm2020/lib/news/esolve-news.service.mjs +7 -9
  42. package/esm2020/lib/ng-esolve-connect.module.mjs +24 -20
  43. package/esm2020/lib/payment/esolve-payment.service.mjs +2 -2
  44. package/esm2020/lib/ranges/esolve-ranges.service.mjs +2 -2
  45. package/esm2020/lib/session/esolve-session-metadata.service.mjs +11 -13
  46. package/esm2020/lib/session/esolve-session.service.mjs +133 -109
  47. package/esm2020/lib/session/index.mjs +2 -4
  48. package/esm2020/lib/session/interfaces/esolve-session-data.interface.mjs +2 -0
  49. package/esm2020/lib/session/interfaces/esolve-session.interface.mjs +2 -0
  50. package/esm2020/lib/session/interfaces/index.mjs +3 -0
  51. package/esm2020/lib/shared/assets/esolve-assets.service.mjs +2 -2
  52. package/esm2020/lib/shared/cookie/esolve-cookie.service.mjs +12 -93
  53. package/esm2020/lib/shared/geocoder/esolve-geocoder.service.mjs +2 -2
  54. package/esm2020/lib/shared/response/esolve-get-response.interface.mjs +1 -1
  55. package/esm2020/lib/shared/response/esolve-response.interface.mjs +1 -1
  56. package/esm2020/lib/shared/response/esolve-set-response.interface.mjs +1 -1
  57. package/esm2020/lib/shared/seo/esolve-seo.service.mjs +13 -27
  58. package/esm2020/lib/shipping/esolve-shipping.service.mjs +2 -2
  59. package/esm2020/lib/specials/esolve-specials.service.mjs +2 -2
  60. package/esm2020/lib/stock/esolve-stock.service.mjs +2 -2
  61. package/esm2020/lib/suppliers/esolve-suppliers.service.mjs +2 -2
  62. package/esm2020/lib/tags/esolve-tags.service.mjs +2 -2
  63. package/esm2020/lib/topics/esolve-topic.service.mjs +2 -2
  64. package/esm2020/lib/transactions/esolve-transactions.service.mjs +15 -20
  65. package/esm2020/lib/wishlist/esolve-wishlist.service.mjs +2 -2
  66. package/fesm2015/esolve-ng-esolve-connect.mjs +1045 -999
  67. package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
  68. package/fesm2020/esolve-ng-esolve-connect.mjs +913 -846
  69. package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
  70. package/index.d.ts +2 -2
  71. package/lib/account/esolve-account.service.d.ts +2 -2
  72. package/lib/account/password/esolve-forgot-password-response.interface.d.ts +1 -1
  73. package/lib/account/registration/esolve-registration-post-response-item.interface.d.ts +1 -1
  74. package/lib/auth/esolve-auth-interceptor.service.d.ts +3 -3
  75. package/lib/auth/esolve-auth.service.d.ts +6 -8
  76. package/lib/auth/index.d.ts +4 -2
  77. package/lib/auth/interfaces/esolve-auth-check-data.interface.d.ts +4 -0
  78. package/lib/auth/{esolve-auth-data.interface.d.ts → interfaces/esolve-auth-data.interface.d.ts} +2 -0
  79. package/lib/auth/{esolve-auth-response.interface.d.ts → interfaces/esolve-auth-response.interface.d.ts} +1 -1
  80. package/lib/auth/interfaces/esolve-login-post-response-item.interface.d.ts +6 -0
  81. package/lib/auth/interfaces/index.d.ts +5 -0
  82. package/lib/auth/providers/esolve-eurus-auto-login.provider.d.ts +2 -0
  83. package/lib/auth/providers/index.d.ts +1 -0
  84. package/lib/auth/types/esolve-auth-check-response.type.d.ts +2 -0
  85. package/lib/auth/types/esolve-auth-get-response.type.d.ts +2 -0
  86. package/lib/auth/types/esolve-auth-response-data.type.d.ts +2 -0
  87. package/lib/auth/{esolve-auth-result.type.d.ts → types/esolve-auth-result.type.d.ts} +1 -1
  88. package/lib/auth/types/index.d.ts +4 -0
  89. package/lib/banners/esolve-banner.service.d.ts +2 -2
  90. package/lib/cart/esolve-cart.service.d.ts +1 -1
  91. package/lib/category-tree/esolve-category-tree.service.d.ts +2 -2
  92. package/lib/core/esolve-config.service.d.ts +22 -0
  93. package/lib/{esolve-connect.config.d.ts → core/esolve-connect.config.d.ts} +20 -2
  94. package/lib/core/index.d.ts +3 -0
  95. package/lib/coupons/esolve-coupons.service.d.ts +1 -1
  96. package/lib/enquiry/esolve-enquiry.service.d.ts +2 -2
  97. package/lib/images/directives/cdn-src.directive.d.ts +22 -0
  98. package/lib/images/directives/index.d.ts +1 -0
  99. package/lib/images/esolve-image-loader.provider.d.ts +2 -0
  100. package/lib/images/functions/index.d.ts +3 -0
  101. package/lib/images/functions/is-esolve-cdn-path.function.d.ts +1 -0
  102. package/lib/images/functions/is-legacy-esolve-cdn-path.function.d.ts +1 -0
  103. package/lib/images/functions/process-image-src.function.d.ts +1 -0
  104. package/lib/images/index.d.ts +3 -0
  105. package/lib/locations/esolve-locations.service.d.ts +1 -1
  106. package/lib/manufacturers/esolve-manufacturers.service.d.ts +2 -2
  107. package/lib/menu/esolve-menu.service.d.ts +2 -2
  108. package/lib/news/esolve-news.service.d.ts +2 -2
  109. package/lib/ng-esolve-connect.module.d.ts +2 -2
  110. package/lib/payment/esolve-payment.service.d.ts +1 -1
  111. package/lib/ranges/esolve-ranges.service.d.ts +1 -1
  112. package/lib/session/esolve-session-metadata.service.d.ts +3 -3
  113. package/lib/session/esolve-session.service.d.ts +37 -16
  114. package/lib/session/index.d.ts +1 -3
  115. package/lib/session/interfaces/esolve-session.interface.d.ts +5 -0
  116. package/lib/session/interfaces/index.d.ts +2 -0
  117. package/lib/shared/assets/esolve-assets.service.d.ts +1 -1
  118. package/lib/shared/cookie/esolve-cookie.service.d.ts +4 -28
  119. package/lib/shared/geocoder/esolve-geocoder.service.d.ts +1 -1
  120. package/lib/shared/response/esolve-get-response.interface.d.ts +1 -1
  121. package/lib/shared/response/esolve-response.interface.d.ts +2 -2
  122. package/lib/shared/response/esolve-set-response.interface.d.ts +1 -1
  123. package/lib/shared/seo/esolve-seo.service.d.ts +2 -2
  124. package/lib/shipping/esolve-shipping.service.d.ts +1 -1
  125. package/lib/specials/esolve-specials.service.d.ts +1 -1
  126. package/lib/stock/esolve-stock.service.d.ts +1 -1
  127. package/lib/suppliers/esolve-suppliers.service.d.ts +1 -1
  128. package/lib/tags/esolve-tags.service.d.ts +1 -1
  129. package/lib/topics/esolve-topic.service.d.ts +1 -1
  130. package/lib/transactions/esolve-transactions.service.d.ts +4 -6
  131. package/lib/wishlist/esolve-wishlist.service.d.ts +2 -3
  132. package/package.json +4 -8
  133. package/esm2020/lib/auth/esolve-auth-check-data.interface.mjs +0 -2
  134. package/esm2020/lib/auth/esolve-auth-check-response.type.mjs +0 -2
  135. package/esm2020/lib/auth/esolve-auth-data.interface.mjs +0 -2
  136. package/esm2020/lib/auth/esolve-auth-get-data.interface.mjs +0 -2
  137. package/esm2020/lib/auth/esolve-auth-get-response.type.mjs +0 -2
  138. package/esm2020/lib/auth/esolve-auth-response-data.type.mjs +0 -2
  139. package/esm2020/lib/auth/esolve-auth-response.interface.mjs +0 -2
  140. package/esm2020/lib/auth/esolve-auth-result.type.mjs +0 -2
  141. package/esm2020/lib/auth/esolve-login-post-response-item.interface.mjs +0 -2
  142. package/esm2020/lib/esolve-connect-config.constant.mjs +0 -3
  143. package/esm2020/lib/esolve-connect.config.mjs +0 -2
  144. package/esm2020/lib/session/esolve-session-data.interface.mjs +0 -2
  145. package/esm2020/lib/session/esolve-session.model.mjs +0 -37
  146. package/esm2020/lib/session/esolve-stored-session.interface.mjs +0 -2
  147. package/lib/auth/esolve-auth-check-data.interface.d.ts +0 -3
  148. package/lib/auth/esolve-auth-check-response.type.d.ts +0 -3
  149. package/lib/auth/esolve-auth-get-response.type.d.ts +0 -3
  150. package/lib/auth/esolve-auth-response-data.type.d.ts +0 -3
  151. package/lib/auth/esolve-login-post-response-item.interface.d.ts +0 -6
  152. package/lib/session/esolve-session.model.d.ts +0 -15
  153. package/lib/session/esolve-stored-session.interface.d.ts +0 -6
  154. /package/lib/auth/{esolve-auth-get-data.interface.d.ts → interfaces/esolve-auth-get-data.interface.d.ts} +0 -0
  155. /package/lib/{esolve-connect-config.constant.d.ts → core/esolve-connect-config.constant.d.ts} +0 -0
  156. /package/lib/session/{esolve-session-data.interface.d.ts → interfaces/esolve-session-data.interface.d.ts} +0 -0
@@ -1,17 +1,69 @@
1
+ import { isPlatformBrowser, CommonModule, IMAGE_LOADER } from '@angular/common';
2
+ import * as i1$1 from '@angular/common/http';
3
+ import { HttpErrorResponse, HttpParams, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
1
4
  import * as i0 from '@angular/core';
2
- import { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, NgModule } from '@angular/core';
3
- import { isPlatformBrowser, CommonModule } from '@angular/common';
4
- import * as i1$2 from '@angular/common/http';
5
- import { HTTP_INTERCEPTORS, HttpClientModule, HttpErrorResponse, HttpParams, HttpHeaders } from '@angular/common/http';
6
- import * as i1 from 'ngx-cookie-service';
7
- import { CookieService } from 'ngx-cookie-service';
8
- import { BehaviorSubject, throwError, of, firstValueFrom, map as map$1, Subject, iif } from 'rxjs';
9
- import * as i1$1 from '@angular/platform-browser';
10
- import { map, catchError, tap, switchMap } from 'rxjs/operators';
5
+ import { InjectionToken, Injectable, Inject, PLATFORM_ID, APP_INITIALIZER, NgModule, Directive, Input, HostListener } from '@angular/core';
6
+ import * as i1 from 'ngx-cookie-service-ssr';
7
+ import { SsrCookieService } from 'ngx-cookie-service-ssr';
11
8
  import { __awaiter } from 'tslib';
9
+ import { BehaviorSubject, Subject, map, switchMap, timer, takeUntil, combineLatest, shareReplay, filter, distinctUntilChanged, throwError, of, firstValueFrom, iif } from 'rxjs';
10
+ import { map as map$1, catchError, switchMap as switchMap$1, tap } from 'rxjs/operators';
11
+ import { fromUnixTime } from 'date-fns';
12
+ import * as i2 from '@angular/platform-browser';
12
13
 
13
14
  const ESOLVE_CONNECT_CONFIG = new InjectionToken('esolve.connect.config');
14
15
 
16
+ class EsolveConfigService {
17
+ constructor(config) {
18
+ var _a, _b, _c, _d, _e, _f;
19
+ this.api_url = '';
20
+ this.wsid = '';
21
+ this.title_separator = '|';
22
+ this.session_storage_key = '_ng_eslv_token';
23
+ this.coupon_storage_key = '_ng_eslv_coupons';
24
+ this.device_designation = 'web';
25
+ if (config.api_url === '' || config.wsid === '') {
26
+ throw new Error('Invalid eSolve Eurus config');
27
+ }
28
+ this.api_url = config.api_url;
29
+ this.wsid = config.wsid;
30
+ this.title_prefix = (_a = config.title_prefix) !== null && _a !== void 0 ? _a : '';
31
+ this.title_suffix = (_b = config.title_suffix) !== null && _b !== void 0 ? _b : '';
32
+ this.default_seo_title = (_c = config.default_seo_title) !== null && _c !== void 0 ? _c : '';
33
+ this.default_seo_description = (_d = config.default_seo_description) !== null && _d !== void 0 ? _d : '';
34
+ this.default_seo_keywords = (_e = config.default_seo_keywords) !== null && _e !== void 0 ? _e : '';
35
+ this.native = (_f = config.native) !== null && _f !== void 0 ? _f : false;
36
+ if (config.session_storage_key) {
37
+ this.session_storage_key = config.session_storage_key;
38
+ }
39
+ if (config.title_separator) {
40
+ this.title_separator = config.title_separator;
41
+ }
42
+ if (config.coupon_storage_key) {
43
+ this.coupon_storage_key = config.coupon_storage_key;
44
+ }
45
+ if (this.native && config.device_designation) {
46
+ this.device_designation = config.device_designation;
47
+ }
48
+ this.legacy_cdn = config.legacy_cdn;
49
+ this.cdn = config.cdn;
50
+ this.error_image_path = config.error_image_path;
51
+ }
52
+ }
53
+ EsolveConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveConfigService, deps: [{ token: ESOLVE_CONNECT_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
54
+ EsolveConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveConfigService, providedIn: 'root' });
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveConfigService, decorators: [{
56
+ type: Injectable,
57
+ args: [{
58
+ providedIn: 'root',
59
+ }]
60
+ }], ctorParameters: function () {
61
+ return [{ type: undefined, decorators: [{
62
+ type: Inject,
63
+ args: [ESOLVE_CONNECT_CONFIG]
64
+ }] }];
65
+ } });
66
+
15
67
  /**
16
68
  * Generates a short hexadecimal hash that will be used to indicate a change in
17
69
  * state.
@@ -38,301 +90,653 @@ function esolveHexHash(...values) {
38
90
  return Math.abs(hash).toString(16);
39
91
  }
40
92
 
41
- class EsolveSession {
42
- constructor(id = -1, location_id = 0, key = '', expiration_date) {
43
- this.id = id;
44
- this.location_id = location_id;
45
- this.key = key;
46
- this.expiration_date = expiration_date;
93
+ class EsolveCookieService {
94
+ constructor(cookieService) {
95
+ this.cookieService = cookieService;
47
96
  }
48
- get expired() {
49
- const current_date = new Date();
50
- return (this.expiration_date === undefined ||
51
- current_date >= this.expiration_date);
97
+ check(name) {
98
+ return this.cookieService.check(name);
52
99
  }
53
- get authenticated() {
54
- return this.id > 0;
100
+ get(name) {
101
+ return this.cookieService.get(name);
55
102
  }
56
- get valid() {
57
- return (this.key !== '' &&
58
- this.expiration_date !== undefined &&
59
- this.id >= 0);
103
+ set(name, value, expires, path, domain, secure) {
104
+ this.cookieService.set(name, value, expires, path, domain, secure);
60
105
  }
61
- updateUser(user_id) {
62
- this.id = user_id;
63
- this.state_hash = undefined;
106
+ delete(name, path, domain, secure) {
107
+ this.cookieService.delete(name, path, domain, secure);
64
108
  }
65
- updateLocation(location_id) {
66
- this.location_id = location_id;
67
- this.state_hash = undefined;
109
+ }
110
+ EsolveCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCookieService, deps: [{ token: i1.SsrCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
111
+ EsolveCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCookieService, providedIn: 'root' });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCookieService, decorators: [{
113
+ type: Injectable,
114
+ args: [{
115
+ providedIn: 'root',
116
+ }]
117
+ }], ctorParameters: function () { return [{ type: i1.SsrCookieService }]; } });
118
+
119
+ class EsolveSessionService {
120
+ constructor(platformId, config, cookieService) {
121
+ this.platformId = platformId;
122
+ this.config = config;
123
+ this.cookieService = cookieService;
124
+ this.token$ = new BehaviorSubject('');
125
+ this.user_id$ = new BehaviorSubject(0);
126
+ this.location_id$ = new BehaviorSubject(0);
127
+ this.state_hash = '';
128
+ this.storage_key = '';
129
+ /* These are RxJS subjects used for managing the expiration of the user session. */
130
+ this.timer_start = new Subject();
131
+ this.timer_stop = new Subject();
132
+ this.expire = new Subject();
133
+ this.session_end = new Subject();
134
+ this.setStorageKey();
135
+ this._session = this.initSession();
136
+ this.is_browser = isPlatformBrowser(this.platformId);
137
+ this.getSession()
138
+ .pipe(map(({ token, user_id, location_id }) => {
139
+ return esolveHexHash(token, user_id, location_id);
140
+ }))
141
+ .subscribe((hash) => {
142
+ this.state_hash = hash;
143
+ });
144
+ this.timer_start
145
+ .pipe(switchMap((time) => {
146
+ return timer(time).pipe(takeUntil(this.timer_stop));
147
+ }))
148
+ .subscribe(() => {
149
+ // Stored time expired. Check if session is valid
150
+ this.session_end.next();
151
+ });
152
+ // Kill session and reset state
153
+ this.onExpire().subscribe(() => {
154
+ this.reset();
155
+ });
156
+ }
157
+ initSession() {
158
+ const session = {
159
+ token: this.onTokenUpdate(),
160
+ user_id: this.onUserIdUpdate(),
161
+ location_id: this.onLocationIdUpdate(),
162
+ };
163
+ return combineLatest(session).pipe(shareReplay(1));
164
+ }
165
+ isValid() {
166
+ return this.getToken() !== '';
167
+ }
168
+ getSession() {
169
+ return this._session;
170
+ }
171
+ getSessionValue() {
172
+ return {
173
+ token: this.token$.getValue(),
174
+ user_id: this.user_id$.getValue(),
175
+ location_id: this.location_id$.getValue(),
176
+ };
177
+ }
178
+ onSessionEnd() {
179
+ return this.session_end.asObservable();
180
+ }
181
+ onExpire() {
182
+ return this.expire.asObservable();
183
+ }
184
+ expireSession() {
185
+ this.expire.next();
186
+ }
187
+ getToken() {
188
+ return this.token$.getValue();
189
+ }
190
+ onTokenUpdate() {
191
+ return this.token$.asObservable().pipe(filter((token) => token !== ''), distinctUntilChanged());
192
+ }
193
+ updateToken(token) {
194
+ this.token$.next(token);
195
+ }
196
+ getUserId() {
197
+ return this.user_id$.getValue();
198
+ }
199
+ onUserIdUpdate() {
200
+ return this.user_id$.asObservable().pipe(distinctUntilChanged());
201
+ }
202
+ updateUserId(user_id) {
203
+ this.user_id$.next(user_id);
204
+ }
205
+ getLocationId() {
206
+ return this.location_id$.getValue();
207
+ }
208
+ onLocationIdUpdate() {
209
+ return this.location_id$.asObservable().pipe(distinctUntilChanged());
210
+ }
211
+ updateLocationId(location_id) {
212
+ this.location_id$.next(location_id);
68
213
  }
69
214
  getStateHash() {
70
- if (!this.state_hash) {
71
- this.state_hash = esolveHexHash(this.id, this.location_id, this.key);
72
- }
73
215
  return this.state_hash;
74
216
  }
75
- }
76
-
77
- class EsolveCookieService {
78
- constructor(ngxCookies, platformId, request, response) {
79
- this.ngxCookies = ngxCookies;
80
- this.platformId = platformId;
81
- this.request = request;
82
- this.response = response;
83
- this.is_browser = isPlatformBrowser(this.platformId);
217
+ stopTimer() {
218
+ this.timer_stop.next();
84
219
  }
85
- check(name) {
86
- if (this.is_browser) {
87
- return this.ngxCookies.check(name);
220
+ startTimer(time) {
221
+ this.timer_start.next(time);
222
+ }
223
+ getCachedSession() {
224
+ return this.getCache();
225
+ }
226
+ reset() {
227
+ this.removeCache();
228
+ this.timer_stop.next();
229
+ }
230
+ handleSession(session, expiry_date_unix, grace_unix) {
231
+ const expiry_date = fromUnixTime(expiry_date_unix);
232
+ const grace_expiry_date = fromUnixTime(expiry_date_unix + grace_unix);
233
+ this.setCache(session.token, grace_expiry_date);
234
+ this.updateToken(session.token);
235
+ this.updateUserId(session.user_id);
236
+ this.updateLocationId(session.location_id);
237
+ this.startTimer(expiry_date);
238
+ }
239
+ handleUpdateSession({ user_id, location_id, }) {
240
+ if (typeof user_id !== 'undefined') {
241
+ this.updateUserId(user_id);
88
242
  }
89
- const server_cookies = this.request.headers.cookie;
90
- if (!server_cookies) {
91
- return false;
243
+ if (typeof location_id !== 'undefined') {
244
+ this.updateLocationId(location_id);
92
245
  }
93
- name = encodeURIComponent(name);
94
- const regExp = this.getCookieRegExp(name);
95
- return regExp.test(server_cookies);
96
246
  }
97
- get(name) {
98
- var _a;
99
- if (this.is_browser) {
100
- return this.ngxCookies.get(name);
247
+ setStorageKey() {
248
+ if (typeof this.config.session_storage_key === 'string' &&
249
+ this.config.session_storage_key !== '') {
250
+ this.storage_key = this.config.session_storage_key;
101
251
  }
102
- if (!this.check(name)) {
103
- return '';
252
+ }
253
+ getCache() {
254
+ const data = this.cookieService.get(this.storage_key);
255
+ if (data !== '') {
256
+ return data;
104
257
  }
105
- const server_cookies = (_a = this.request.headers.cookie) !== null && _a !== void 0 ? _a : '';
106
- const regExp = this.getCookieRegExp(name);
107
- const result = regExp.exec(server_cookies);
108
- return result && result[1]
109
- ? this.safeDecodeURIComponent(result[1])
110
- : '';
258
+ if (!this.is_browser || !localStorage) {
259
+ return null;
260
+ }
261
+ return localStorage.getItem(this.storage_key);
111
262
  }
112
- set(name, value, expires, path, domain, secure) {
113
- if (this.is_browser) {
114
- this.ngxCookies.set(name, value, expires, path, domain, secure);
263
+ setCache(data, expiration_date) {
264
+ this.cookieService.set(this.storage_key, data, expiration_date, '/');
265
+ if (!this.is_browser || !localStorage) {
115
266
  return;
116
267
  }
117
- this.response.cookie(name, value, { domain, path, expires, secure });
268
+ localStorage.setItem(this.storage_key, data);
118
269
  }
119
- delete(name, path, domain, secure) {
120
- if (this.is_browser) {
121
- this.ngxCookies.delete(name, path, domain, secure);
270
+ removeCache() {
271
+ this.cookieService.delete(this.storage_key, '/');
272
+ if (!this.is_browser || !localStorage) {
122
273
  return;
123
274
  }
124
- this.response.clearCookie(name, { path, domain, secure });
275
+ localStorage.removeItem(this.storage_key);
125
276
  }
126
- /*
127
- * Following functions come from ngx-cookie-service project since they are primarily the same
128
- */
129
- /**
130
- * Get cookie Regular Expression
131
- *
132
- * @param name Cookie name
133
- * @returns property RegExp
134
- *
135
- * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L31
136
- */
137
- getCookieRegExp(name) {
138
- const escapedName = name.replace(
139
- // eslint-disable-next-line no-useless-escape
140
- /([\[\]\{\}\(\)\|\=\;\+\?\,\.\*\^\$])/gi, '\\$1');
141
- return new RegExp('(?:^' + escapedName + '|;\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');
277
+ }
278
+ EsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionService, deps: [{ token: PLATFORM_ID }, { token: EsolveConfigService }, { token: EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
279
+ EsolveSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionService, providedIn: 'root' });
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionService, decorators: [{
281
+ type: Injectable,
282
+ args: [{
283
+ providedIn: 'root',
284
+ }]
285
+ }], ctorParameters: function () {
286
+ return [{ type: undefined, decorators: [{
287
+ type: Inject,
288
+ args: [PLATFORM_ID]
289
+ }] }, { type: EsolveConfigService }, { type: EsolveCookieService }];
290
+ } });
291
+
292
+ class EsolveResult {
293
+ constructor(status, code, message) {
294
+ this.status = status;
295
+ this.code = code;
296
+ this.message = message;
142
297
  }
298
+ }
299
+
300
+ class EsolveResponseResult {
301
+ constructor(response) {
302
+ this.success_log = [];
303
+ this.error_log = [];
304
+ this.error_log.push(...response.log.filter((log_item) => log_item.type === 'error'));
305
+ this.success_log.push(...response.log.filter((log_item) => log_item.type === 'success'));
306
+ }
307
+ }
308
+
309
+ class EsolveResponseHandlerService {
143
310
  /**
144
- * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).
145
- *
146
- * @param encodedURIComponent A value representing an encoded URI component.
311
+ * Parse single HTTP response
147
312
  *
148
- * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).
313
+ * @param http_response HTTP Response to eSolve service
314
+ * @param resultHandler Function to parse response to a result
149
315
  *
150
- * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L47
316
+ * @returns Parsed result of response
151
317
  */
152
- safeDecodeURIComponent(encodedURIComponent) {
153
- try {
154
- return decodeURIComponent(encodedURIComponent);
318
+ validateSingleHttpResponse(http_response, resultHandler) {
319
+ if (http_response.responses === undefined ||
320
+ http_response.responses.length <= 0) {
321
+ throw http_response;
155
322
  }
156
- catch (_a) {
157
- // probably it is not uri encoded. return as is
158
- return encodedURIComponent;
323
+ const response = http_response.responses[0];
324
+ if (response.status.state === 'error' ||
325
+ response.status.state === 'none') {
326
+ throw response;
159
327
  }
328
+ return resultHandler(response);
160
329
  }
161
330
  }
162
- EsolveCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCookieService, deps: [{ token: i1.CookieService }, { token: PLATFORM_ID }, { token: 'REQUEST', optional: true }, { token: 'RESPONSE', optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
163
- EsolveCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCookieService, providedIn: 'root' });
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCookieService, decorators: [{
331
+ EsolveResponseHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveResponseHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
332
+ EsolveResponseHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveResponseHandlerService, providedIn: 'root' });
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveResponseHandlerService, decorators: [{
165
334
  type: Injectable,
166
335
  args: [{
167
336
  providedIn: 'root',
168
337
  }]
169
- }], ctorParameters: function () {
170
- return [{ type: i1.CookieService }, { type: undefined, decorators: [{
171
- type: Inject,
172
- args: [PLATFORM_ID]
173
- }] }, { type: undefined, decorators: [{
174
- type: Optional
175
- }, {
176
- type: Inject,
177
- args: ['REQUEST']
178
- }] }, { type: undefined, decorators: [{
179
- type: Optional
180
- }, {
181
- type: Inject,
182
- args: ['RESPONSE']
183
- }] }];
184
- } });
338
+ }] });
185
339
 
186
- class EsolveSessionService {
187
- get currentSession() {
188
- return this._session.value;
340
+ class EsolveHttpError extends Error {
341
+ constructor(type, code, message, ...params) {
342
+ // Pass remaining arguments (including vendor specific ones) to parent constructor
343
+ super(...[message, ...params]);
344
+ this.http_error = true;
345
+ // Maintains proper stack trace for where our error was thrown (only available on V8)
346
+ if (Error.captureStackTrace) {
347
+ Error.captureStackTrace(this, EsolveHttpError);
348
+ }
349
+ this.name = 'EsolveHttpError';
350
+ this.type = type;
351
+ this.error_code = code;
189
352
  }
190
- constructor(platformId, config, cookieService) {
191
- this.platformId = platformId;
192
- this.config = config;
193
- this.cookieService = cookieService;
194
- this.storage_key = 'ngEslvUserSession';
195
- this.setStorageKey();
196
- this._session = new BehaviorSubject(new EsolveSession());
197
- this.session = this._session.asObservable();
198
- this.is_browser = isPlatformBrowser(this.platformId);
353
+ }
354
+
355
+ class EsolveErrorHandlerService {
356
+ throwError(code, message) {
357
+ throw new EsolveHttpError('error', code, message);
199
358
  }
200
- clearTimer() {
201
- if (this.key_expiration_timer) {
202
- clearTimeout(this.key_expiration_timer);
203
- }
359
+ emitError(code, message) {
360
+ return throwError(() => new EsolveHttpError('error', code, message));
204
361
  }
205
- getCachedSession() {
206
- let json_data = this.cookieService.get(this.storage_key);
207
- if (json_data === '') {
208
- const local_store_data = this.getBackup();
209
- if (local_store_data) {
210
- json_data = local_store_data;
211
- }
212
- }
213
- const stored_session = json_data
214
- ? JSON.parse(json_data)
215
- : null;
216
- if (!stored_session) {
217
- return null;
362
+ handleHttpPostError(service_type, errorRes) {
363
+ if (!(errorRes instanceof HttpErrorResponse) &&
364
+ !('service_type' in errorRes) &&
365
+ 'id' in errorRes &&
366
+ 'esolve_id' in errorRes &&
367
+ 'transaction_type' in errorRes &&
368
+ 'status' in errorRes &&
369
+ 'log' in errorRes) {
370
+ return throwError(() => this.parsePostErrors(errorRes));
218
371
  }
219
- const expiration_date = new Date(stored_session.expiration_date);
220
- const loaded_session = new EsolveSession(stored_session.id, stored_session.location_id, stored_session.key, expiration_date);
221
- return loaded_session;
222
- }
223
- resetSessionCache() {
224
- this.cookieService.delete(this.storage_key, '/');
225
- this.removeBackup();
372
+ return this.handleHttpError(service_type, errorRes);
226
373
  }
227
- restore(expirationCallback, invalidSessionCallback) {
228
- if (this.currentSession.valid) {
229
- return;
374
+ handleHttpDeleteError(service_type, errorRes) {
375
+ const is_not_base = !(errorRes instanceof HttpErrorResponse) &&
376
+ !('service_type' in errorRes) &&
377
+ 'id' in errorRes &&
378
+ 'status' in errorRes &&
379
+ 'message' in errorRes &&
380
+ 'code' in errorRes;
381
+ if (is_not_base) {
382
+ return throwError(() => this.parseDeleteError(errorRes));
230
383
  }
231
- let json_data = this.cookieService.get(this.storage_key);
232
- if (json_data === '') {
233
- const local_store_data = this.getBackup();
234
- if (local_store_data) {
235
- json_data = local_store_data;
384
+ return this.handleHttpError(service_type, errorRes);
385
+ }
386
+ handleHttpError(service_type, error_response) {
387
+ if (error_response instanceof HttpErrorResponse) {
388
+ if (error_response.status === 500) {
389
+ const server_error = error_response.error;
390
+ if ('service_type' in server_error &&
391
+ server_error.service_type === service_type) {
392
+ return throwError(() => this.parseException(server_error));
393
+ }
236
394
  }
237
395
  }
238
- const stored_session = json_data
239
- ? JSON.parse(json_data)
240
- : null;
241
- if (!stored_session) {
242
- invalidSessionCallback();
243
- return;
396
+ else {
397
+ if ('service_type' in error_response &&
398
+ error_response.service_type === service_type) {
399
+ if (error_response.type === 'exception') {
400
+ return throwError(() => this.parseException(error_response));
401
+ }
402
+ else if (error_response.type === 'error') {
403
+ return throwError(() => this.parseResponseError(error_response));
404
+ }
405
+ }
244
406
  }
245
- const expiration_date = new Date(stored_session.expiration_date);
246
- const loaded_session = new EsolveSession(stored_session.id, stored_session.location_id, stored_session.key, expiration_date);
247
- if (!loaded_session.expired) {
248
- this._session.next(loaded_session);
249
- const expiration_duration = expiration_date.getTime() - new Date().getTime();
250
- this.startTimer(expirationCallback, expiration_duration);
407
+ return throwError(() => error_response);
408
+ }
409
+ parseException(exception) {
410
+ const error = new EsolveHttpError('exception', exception.additional_data.exception_type || 'unknown', exception.message || 'Unknown exception has occurred');
411
+ return error;
412
+ }
413
+ parseResponseError(exception) {
414
+ const error = new EsolveHttpError('error', exception.code || 'unknown', exception.message || 'Unknown error has occurred');
415
+ return error;
416
+ }
417
+ parsePostErrors(response) {
418
+ let error_code = 'unknown';
419
+ let message = 'Unknown error has occurred';
420
+ if (response.status.state === 'none' && response.log.length > 0) {
421
+ error_code = 'no_response';
422
+ message = 'Response was provided';
251
423
  }
252
- else {
253
- expirationCallback(loaded_session);
424
+ else if (response.status.state === 'error') {
425
+ const login_error_log = response.log[0];
426
+ error_code = login_error_log.message_code;
427
+ message = login_error_log.message;
254
428
  }
429
+ return new EsolveHttpError('error', error_code, message);
430
+ }
431
+ parseDeleteError(result) {
432
+ return new EsolveHttpError('error', result.code, result.message);
255
433
  }
256
- handleSession(user_id, location_id, key, expiry_time, expires, expirationCallback) {
257
- const expiration_date = new Date(expiry_time * 1000);
258
- const session = new EsolveSession(user_id, location_id, key, expiration_date);
259
- const json_data = JSON.stringify(session);
260
- this.cookieService.set(this.storage_key, json_data, expiration_date, '/');
261
- this.setBackup(json_data);
262
- this._session.next(session);
263
- this.startTimer(expirationCallback, expires * 1000);
434
+ }
435
+ EsolveErrorHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
436
+ EsolveErrorHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveErrorHandlerService, providedIn: 'root' });
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveErrorHandlerService, decorators: [{
438
+ type: Injectable,
439
+ args: [{
440
+ providedIn: 'root',
441
+ }]
442
+ }] });
443
+
444
+ class EsolveSessionMetadataService {
445
+ constructor(config, http, errorHandler, responseHandler) {
446
+ this.config = config;
447
+ this.http = http;
448
+ this.errorHandler = errorHandler;
449
+ this.responseHandler = responseHandler;
264
450
  }
265
- handleUpdateSession({ user_id, location_id }, callback) {
266
- const current_session = this.currentSession;
267
- if (typeof user_id !== 'undefined') {
268
- current_session.updateUser(user_id);
451
+ set(type, metadata) {
452
+ return this.http
453
+ .post(`${this.config.api_url}/set-sessions-metadata.php`, metadata, {
454
+ headers: {
455
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',
456
+ },
457
+ responseType: 'json',
458
+ observe: 'body',
459
+ params: { type },
460
+ })
461
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveResponseResult(response))), catchError((errorRes) => {
462
+ return this.errorHandler.handleHttpPostError('set-sessions-metadata', errorRes);
463
+ }));
464
+ }
465
+ get(type) {
466
+ return this.http
467
+ .get(`${this.config.api_url}/get-sessions-metadata.php`, {
468
+ params: { type },
469
+ })
470
+ .pipe(map$1((response) => {
471
+ if (response.records === undefined ||
472
+ (Array.isArray(response.records) &&
473
+ response.records.length === 0)) {
474
+ throw response;
475
+ }
476
+ return response.records;
477
+ }));
478
+ }
479
+ delete(type) {
480
+ return this.http
481
+ .delete(`${this.config.api_url}/delete-sessions-metadata.php`, {
482
+ params: { type },
483
+ responseType: 'json',
484
+ observe: 'body',
485
+ })
486
+ .pipe(map$1((http_response) => {
487
+ if (http_response.result === undefined ||
488
+ http_response.result === null ||
489
+ http_response.result.status !== 'success') {
490
+ throw http_response;
491
+ }
492
+ return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
493
+ }), catchError((errorRes) => {
494
+ return this.errorHandler.handleHttpDeleteError('delete-sessions-metadata', errorRes);
495
+ }));
496
+ }
497
+ }
498
+ EsolveSessionMetadataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionMetadataService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
499
+ EsolveSessionMetadataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionMetadataService, providedIn: 'root' });
500
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionMetadataService, decorators: [{
501
+ type: Injectable,
502
+ args: [{
503
+ providedIn: 'root',
504
+ }]
505
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }]; } });
506
+
507
+ class EsolveAuthService {
508
+ constructor(config, http, session, errorHandler) {
509
+ this.config = config;
510
+ this.http = http;
511
+ this.session = session;
512
+ this.errorHandler = errorHandler;
513
+ this.session
514
+ .onSessionEnd()
515
+ .pipe(switchMap$1(() => this.checkAccessToken()), catchError(() => of(null)))
516
+ .subscribe((result) => {
517
+ if (result) {
518
+ this.session.handleSession({
519
+ token: result.key,
520
+ user_id: result.user_id,
521
+ location_id: result.location_id,
522
+ }, result.expiry_time, result.grace_period);
523
+ }
524
+ else {
525
+ this.session.expireSession();
526
+ }
527
+ });
528
+ this.session.onExpire().subscribe(() => {
529
+ this.logout().catch(() => {
530
+ // Deal with error gracefully
531
+ });
532
+ });
533
+ }
534
+ getAccessToken(email, password, anonymous = false) {
535
+ let params = new HttpParams();
536
+ if (anonymous) {
537
+ params = params.set('anonymous', true);
269
538
  }
270
- if (typeof location_id !== 'undefined') {
271
- current_session.updateLocation(location_id);
539
+ if (email !== '') {
540
+ params = params.set('email', email);
272
541
  }
273
- const json_data = JSON.stringify(current_session);
274
- this.cookieService.set(this.storage_key, json_data, current_session.expiration_date, '/');
275
- this.setBackup(json_data);
276
- this._session.next(current_session);
277
- if (typeof callback === 'function') {
278
- callback();
542
+ if (password !== '') {
543
+ params = params.set('password', password);
279
544
  }
545
+ return this.http
546
+ .get(`${this.config.api_url}/get-access-token.php`, {
547
+ params,
548
+ headers: new HttpHeaders({
549
+ 'Accept-Language': '*',
550
+ }),
551
+ })
552
+ .pipe(tap((response) => {
553
+ if (response.type === 'error' ||
554
+ response.type === 'exception') {
555
+ throw response;
556
+ }
557
+ }), catchError(this.handleError), tap((response) => {
558
+ this.handleAuthentication(response.additional_data);
559
+ }));
280
560
  }
281
- setStorageKey() {
282
- if (typeof this.config.user_session_storage_key === 'string' &&
283
- this.config.user_session_storage_key !== '') {
284
- this.storage_key = this.config.user_session_storage_key;
285
- }
561
+ getAnonymousSession() {
562
+ return this.getAccessToken('', '', true);
286
563
  }
287
- startTimer(callback, duration) {
288
- if (this.is_browser) {
289
- this.key_expiration_timer = setTimeout(callback, duration);
290
- }
564
+ autoLogin() {
565
+ return __awaiter(this, void 0, void 0, function* () {
566
+ let result = yield this.restore();
567
+ try {
568
+ if (!result) {
569
+ const response = yield firstValueFrom(this.getAnonymousSession());
570
+ result = response.additional_data;
571
+ }
572
+ this.handleAuthentication(result);
573
+ }
574
+ catch (error) {
575
+ console.error(error);
576
+ }
577
+ });
291
578
  }
292
- getBackup() {
293
- if (!this.is_browser) {
294
- return null;
295
- }
296
- if (!localStorage) {
579
+ login(email, password) {
580
+ const body = {
581
+ login: {
582
+ email,
583
+ password,
584
+ },
585
+ };
586
+ return this.http
587
+ .post(`${this.config.api_url}/set-login.php`, body, {
588
+ headers: {
589
+ 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',
590
+ },
591
+ responseType: 'json',
592
+ observe: 'body',
593
+ })
594
+ .pipe(map$1((response) => {
595
+ if (response.responses === undefined ||
596
+ response.responses.length <= 0) {
597
+ throw response;
598
+ }
599
+ const login_response = response.responses[0];
600
+ const result = response.additional_data;
601
+ if (login_response.status.state !== 'success' &&
602
+ login_response.status.state !== 'warning') {
603
+ throw login_response;
604
+ }
605
+ for (const response_log of login_response.log) {
606
+ if (response_log.type === 'success' &&
607
+ response_log.message_code === 'login_success') {
608
+ const user_id = +login_response.esolve_id;
609
+ if (Array.isArray(result)) {
610
+ throw new Error('Invalid login');
611
+ }
612
+ this.handleAuthentication({
613
+ key: result.key,
614
+ user_id: result.user_id,
615
+ location_id: result.location_id,
616
+ expires: result.expires,
617
+ expiry_time: result.expiry_time,
618
+ grace_period: result.grace_period,
619
+ });
620
+ return user_id;
621
+ }
622
+ }
623
+ throw login_response;
624
+ }), catchError((errorRes) => {
625
+ return this.errorHandler.handleHttpPostError('set-login', errorRes);
626
+ }));
627
+ }
628
+ logout() {
629
+ return __awaiter(this, void 0, void 0, function* () {
630
+ this.session.stopTimer();
631
+ const response = yield firstValueFrom(this.getAccessToken('', '', true));
632
+ return response;
633
+ });
634
+ }
635
+ validateCachedTokens() {
636
+ return __awaiter(this, void 0, void 0, function* () {
637
+ let valid = false;
638
+ try {
639
+ const session = this.session.getCachedSession();
640
+ if (!session) {
641
+ throw new Error('Invalid session');
642
+ }
643
+ const result = yield this.checkAccessToken(session);
644
+ if (!result.key) {
645
+ throw new Error('Invalid key');
646
+ }
647
+ valid = true;
648
+ }
649
+ catch (error) {
650
+ this.session.reset();
651
+ }
652
+ return valid;
653
+ });
654
+ }
655
+ checkAccessToken(token = this.session.getToken()) {
656
+ return __awaiter(this, void 0, void 0, function* () {
657
+ if (token === '') {
658
+ throw new Error('Invalid Token');
659
+ }
660
+ const response = yield firstValueFrom(this.http.get(`${this.config.api_url}/get-access-token.php`, {
661
+ params: { key: token },
662
+ headers: new HttpHeaders({
663
+ 'Accept-Language': '*',
664
+ Authorization: `Bearer ${token}`,
665
+ }),
666
+ }));
667
+ if (response.type === 'error' || response.type === 'exception') {
668
+ throw response;
669
+ }
670
+ const additional_data = response.additional_data;
671
+ if (!additional_data.key_okay) {
672
+ throw response;
673
+ }
674
+ if (additional_data.key) {
675
+ token = additional_data.key;
676
+ }
677
+ const result = {
678
+ key: token,
679
+ expires: +additional_data.expires,
680
+ expiry_time: +additional_data.expiry_time,
681
+ grace_period: +additional_data.grace_period,
682
+ location_id: +additional_data.location_id,
683
+ user_id: +additional_data.user_id,
684
+ };
685
+ return result;
686
+ });
687
+ }
688
+ restore() {
689
+ return __awaiter(this, void 0, void 0, function* () {
690
+ try {
691
+ const token = this.session.getCachedSession();
692
+ if (!token) {
693
+ throw new Error('Invalid token');
694
+ }
695
+ const result = yield this.checkAccessToken(token);
696
+ return result;
697
+ }
698
+ catch (error) {
699
+ this.session.reset();
700
+ }
297
701
  return null;
298
- }
299
- return localStorage.getItem(this.storage_key);
702
+ });
300
703
  }
301
- setBackup(data) {
302
- if (!this.is_browser) {
303
- return;
304
- }
305
- if (!localStorage) {
704
+ // Handlers
705
+ handleAuthentication(result) {
706
+ if (!result.key) {
306
707
  return;
307
708
  }
308
- localStorage.setItem(this.storage_key, data);
709
+ this.session.handleSession({
710
+ token: result.key,
711
+ user_id: +result.user_id,
712
+ location_id: +result.location_id,
713
+ }, +result.expiry_time, +result.grace_period);
309
714
  }
310
- removeBackup() {
311
- if (!this.is_browser) {
312
- return;
715
+ handleError(errorRes) {
716
+ const error = {
717
+ message: 'An unknown error occurred',
718
+ data: {},
719
+ };
720
+ if (!errorRes.type || !errorRes.service_type || !errorRes.message) {
721
+ return throwError(() => error);
313
722
  }
314
- if (!localStorage) {
315
- return;
723
+ if (errorRes.message.trim() !== '') {
724
+ error.message = errorRes.message;
316
725
  }
317
- localStorage.removeItem(this.storage_key);
726
+ if (errorRes.additional_data) {
727
+ error.data = errorRes.additional_data;
728
+ }
729
+ return throwError(() => error);
318
730
  }
319
731
  }
320
- EsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionService, deps: [{ token: PLATFORM_ID }, { token: ESOLVE_CONNECT_CONFIG }, { token: EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
321
- EsolveSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionService, providedIn: 'root' });
322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionService, decorators: [{
732
+ EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
733
+ EsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthService, providedIn: 'root' });
734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthService, decorators: [{
323
735
  type: Injectable,
324
736
  args: [{
325
737
  providedIn: 'root',
326
738
  }]
327
- }], ctorParameters: function () {
328
- return [{ type: undefined, decorators: [{
329
- type: Inject,
330
- args: [PLATFORM_ID]
331
- }] }, { type: undefined, decorators: [{
332
- type: Inject,
333
- args: [ESOLVE_CONNECT_CONFIG]
334
- }] }, { type: EsolveCookieService }];
335
- } });
739
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }]; } });
336
740
 
337
741
  class EsolveAuthInterceptorService {
338
742
  constructor(config, session) {
@@ -345,12 +749,11 @@ class EsolveAuthInterceptorService {
345
749
  const modified_url = req.url;
346
750
  let params = req.params;
347
751
  let headers = req.headers;
348
- const session = this.session.currentSession;
349
- if (session.valid) {
752
+ if (this.session.isValid()) {
350
753
  if (service_identifier !== 'get-access-token.php') {
351
- params = params.set('key', session.key);
754
+ headers = headers.set('Authorization', `Bearer ${this.session.getToken()}`);
352
755
  }
353
- const state_hash = session.getStateHash();
756
+ const state_hash = this.session.getStateHash();
354
757
  headers = headers.set('X-Esolve-State-Hash', state_hash);
355
758
  }
356
759
  params = params.set('ws_id', this.config.wsid);
@@ -367,48 +770,175 @@ class EsolveAuthInterceptorService {
367
770
  return next.handle(req);
368
771
  }
369
772
  }
370
- EsolveAuthInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthInterceptorService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: EsolveSessionService }], target: i0.ɵɵFactoryTarget.Injectable });
773
+ EsolveAuthInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthInterceptorService, deps: [{ token: EsolveConfigService }, { token: EsolveSessionService }], target: i0.ɵɵFactoryTarget.Injectable });
371
774
  EsolveAuthInterceptorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthInterceptorService });
372
775
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthInterceptorService, decorators: [{
373
776
  type: Injectable
374
- }], ctorParameters: function () {
375
- return [{ type: undefined, decorators: [{
376
- type: Inject,
377
- args: [ESOLVE_CONNECT_CONFIG]
378
- }] }, { type: EsolveSessionService }];
379
- } });
777
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: EsolveSessionService }]; } });
778
+
779
+ const ESOLVE_EURUS_AUTO_LOGIN = {
780
+ provide: APP_INITIALIZER,
781
+ multi: true,
782
+ deps: [EsolveAuthService],
783
+ useFactory: (auth) => () => __awaiter(void 0, void 0, void 0, function* () {
784
+ yield auth.autoLogin();
785
+ return true;
786
+ }),
787
+ };
380
788
 
381
789
  class NgEsolveConnectModule {
382
- static forRoot(config) {
790
+ static forRoot(config, auto_login = false) {
791
+ const providers = [
792
+ {
793
+ provide: ESOLVE_CONNECT_CONFIG,
794
+ useValue: config,
795
+ },
796
+ {
797
+ provide: HTTP_INTERCEPTORS,
798
+ useClass: EsolveAuthInterceptorService,
799
+ multi: true,
800
+ },
801
+ ];
802
+ if (auto_login) {
803
+ providers.push(ESOLVE_EURUS_AUTO_LOGIN);
804
+ }
383
805
  return {
384
806
  ngModule: NgEsolveConnectModule,
385
- providers: [
386
- {
387
- provide: ESOLVE_CONNECT_CONFIG,
388
- useValue: config,
389
- },
390
- {
391
- provide: HTTP_INTERCEPTORS,
392
- useClass: EsolveAuthInterceptorService,
393
- multi: true,
394
- },
395
- ],
807
+ providers,
396
808
  };
397
809
  }
398
810
  }
399
811
  NgEsolveConnectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgEsolveConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
400
812
  NgEsolveConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: NgEsolveConnectModule, imports: [CommonModule, HttpClientModule] });
401
- NgEsolveConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgEsolveConnectModule, providers: [CookieService], imports: [CommonModule, HttpClientModule] });
813
+ NgEsolveConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgEsolveConnectModule, providers: [SsrCookieService], imports: [CommonModule, HttpClientModule] });
402
814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgEsolveConnectModule, decorators: [{
403
815
  type: NgModule,
404
816
  args: [{
405
817
  declarations: [],
406
818
  imports: [CommonModule, HttpClientModule],
407
- providers: [CookieService],
819
+ providers: [SsrCookieService],
408
820
  exports: [],
409
821
  }]
410
822
  }] });
411
823
 
824
+ function isEsolveCdnPath(path) {
825
+ const cdn_regex = /^\/?images\/(?:stock|media|news|assets|banners|documents|manufacturers|ranges|categories|subcategories|tags)\//;
826
+ return cdn_regex.test(path);
827
+ }
828
+
829
+ function isLegacyEsolveCdnPath(path) {
830
+ const cdn_regex = /^\/?images\/(?:media|news|assets|banners|documents|manufacturers|ranges|categories|subcategories|tags)\//;
831
+ return cdn_regex.test(path);
832
+ }
833
+
834
+ function isAbsoluteUrl(src) {
835
+ return /^https?:\/\//.test(src);
836
+ }
837
+ function normalizePath(path) {
838
+ return path.endsWith('/') ? path.slice(0, -1) : path;
839
+ }
840
+ function normalizeSrc(src) {
841
+ return src.startsWith('/') ? src.slice(1) : src;
842
+ }
843
+ function processEsolveImageSrc(src, cdn_url = '', legacy_cdn_url = '') {
844
+ if (isAbsoluteUrl(src)) {
845
+ return src;
846
+ }
847
+ cdn_url = normalizePath(cdn_url);
848
+ legacy_cdn_url = normalizePath(legacy_cdn_url);
849
+ if (cdn_url === '') {
850
+ return src;
851
+ }
852
+ if (legacy_cdn_url === '') {
853
+ legacy_cdn_url = cdn_url;
854
+ }
855
+ if (!isEsolveCdnPath(src)) {
856
+ return src;
857
+ }
858
+ src = normalizeSrc(src);
859
+ if (isLegacyEsolveCdnPath(src)) {
860
+ return `${legacy_cdn_url}/${src}`;
861
+ }
862
+ return `${cdn_url}/${src}`;
863
+ }
864
+
865
+ const ESOLVE_IMAGE_LOADER_PROVIDER = {
866
+ provide: IMAGE_LOADER,
867
+ useFactory: (esolveConfig) => {
868
+ return (config) => {
869
+ return processEsolveImageSrc(config.src, esolveConfig.cdn, esolveConfig.legacy_cdn);
870
+ };
871
+ },
872
+ deps: [EsolveConfigService],
873
+ };
874
+
875
+ /**
876
+ * An alternative to optimised images to load a new image
877
+ */
878
+ class EsolveCdnSrcDirective {
879
+ constructor(el, config) {
880
+ this.el = el;
881
+ this.config = config;
882
+ this.src = '';
883
+ this.no_image = false;
884
+ this.error_image_path = '/assets/no_image.jpg';
885
+ if (this.config.error_image_path) {
886
+ this.error_image_path = this.config.error_image_path;
887
+ }
888
+ if (this.isImage(this.el.nativeElement)) {
889
+ this.el.nativeElement.loading = 'lazy';
890
+ }
891
+ }
892
+ ngOnChanges() {
893
+ this.init();
894
+ }
895
+ onError() {
896
+ this.setErrorImage();
897
+ }
898
+ init() {
899
+ this.no_image = false;
900
+ if (this.src === '') {
901
+ this.setErrorImage();
902
+ return;
903
+ }
904
+ const image_src = processEsolveImageSrc(this.src, this.config.cdn, this.config.legacy_cdn);
905
+ this.setSrc(image_src);
906
+ }
907
+ setSrc(src) {
908
+ if (this.isImage(this.el.nativeElement)) {
909
+ this.el.nativeElement.src = src;
910
+ }
911
+ else {
912
+ this.el.nativeElement.srcset = src;
913
+ }
914
+ }
915
+ setErrorImage() {
916
+ if (this.no_image) {
917
+ return;
918
+ }
919
+ this.setSrc(this.error_image_path);
920
+ this.no_image = true;
921
+ }
922
+ isImage(el) {
923
+ return 'loading' in this.el.nativeElement;
924
+ }
925
+ }
926
+ EsolveCdnSrcDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCdnSrcDirective, deps: [{ token: i0.ElementRef }, { token: EsolveConfigService }], target: i0.ɵɵFactoryTarget.Directive });
927
+ EsolveCdnSrcDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: EsolveCdnSrcDirective, isStandalone: true, selector: "[eslvCdnSrc]", inputs: { src: ["eslvCdnSrc", "src"] }, host: { listeners: { "error": "onError()" } }, usesOnChanges: true, ngImport: i0 });
928
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCdnSrcDirective, decorators: [{
929
+ type: Directive,
930
+ args: [{
931
+ selector: '[eslvCdnSrc]',
932
+ standalone: true,
933
+ }]
934
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: EsolveConfigService }]; }, propDecorators: { src: [{
935
+ type: Input,
936
+ args: ['eslvCdnSrc']
937
+ }], onError: [{
938
+ type: HostListener,
939
+ args: ['error']
940
+ }] } });
941
+
412
942
  class EsolveList {
413
943
  constructor(items = [], page = 0, rows = 0, total = 0) {
414
944
  this.items = items;
@@ -418,14 +948,6 @@ class EsolveList {
418
948
  }
419
949
  }
420
950
 
421
- class EsolveResult {
422
- constructor(status, code, message) {
423
- this.status = status;
424
- this.code = code;
425
- this.message = message;
426
- }
427
- }
428
-
429
951
  class EsolveMultipleSelectFilter {
430
952
  constructor(field, options) {
431
953
  this.field = field;
@@ -609,166 +1131,22 @@ function convertToHttpParams(filters, http_params) {
609
1131
  }
610
1132
  return http_params;
611
1133
  }
612
- let params = {};
613
- for (const filter of filters) {
614
- params = Object.assign(Object.assign({}, params), filter.toHttpParams());
615
- }
616
- return params;
617
- }
618
-
619
- var esolveFilterFactory = /*#__PURE__*/Object.freeze({
620
- __proto__: null,
621
- convertToHttpParams: convertToHttpParams,
622
- covertFromObj: covertFromObj,
623
- createMultipleSelectWithValue: createMultipleSelectWithValue,
624
- createRangeWithValue: createRangeWithValue,
625
- createSingleSelectWithValue: createSingleSelectWithValue,
626
- createToggleSelectWithValue: createToggleSelectWithValue
627
- });
628
-
629
- class EsolveResponseResult {
630
- constructor(response) {
631
- this.success_log = [];
632
- this.error_log = [];
633
- this.error_log.push(...response.log.filter((log_item) => log_item.type === 'error'));
634
- this.success_log.push(...response.log.filter((log_item) => log_item.type === 'success'));
635
- }
636
- }
637
-
638
- class EsolveResponseHandlerService {
639
- /**
640
- * Parse single HTTP response
641
- *
642
- * @param http_response HTTP Response to eSolve service
643
- * @param resultHandler Function to parse response to a result
644
- *
645
- * @returns Parsed result of response
646
- */
647
- validateSingleHttpResponse(http_response, resultHandler) {
648
- if (http_response.responses === undefined ||
649
- http_response.responses.length <= 0) {
650
- throw http_response;
651
- }
652
- const response = http_response.responses[0];
653
- if (response.status.state === 'error' ||
654
- response.status.state === 'none') {
655
- throw response;
656
- }
657
- return resultHandler(response);
658
- }
659
- }
660
- EsolveResponseHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveResponseHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
661
- EsolveResponseHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveResponseHandlerService, providedIn: 'root' });
662
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveResponseHandlerService, decorators: [{
663
- type: Injectable,
664
- args: [{
665
- providedIn: 'root',
666
- }]
667
- }] });
668
-
669
- class EsolveHttpError extends Error {
670
- constructor(type, code, message, ...params) {
671
- // Pass remaining arguments (including vendor specific ones) to parent constructor
672
- super(...[message, ...params]);
673
- this.http_error = true;
674
- // Maintains proper stack trace for where our error was thrown (only available on V8)
675
- if (Error.captureStackTrace) {
676
- Error.captureStackTrace(this, EsolveHttpError);
677
- }
678
- this.name = 'EsolveHttpError';
679
- this.type = type;
680
- this.error_code = code;
681
- }
682
- }
683
-
684
- class EsolveErrorHandlerService {
685
- throwError(code, message) {
686
- throw new EsolveHttpError('error', code, message);
687
- }
688
- emitError(code, message) {
689
- return throwError(() => new EsolveHttpError('error', code, message));
690
- }
691
- handleHttpPostError(service_type, errorRes) {
692
- if (!(errorRes instanceof HttpErrorResponse) &&
693
- !('service_type' in errorRes) &&
694
- 'id' in errorRes &&
695
- 'esolve_id' in errorRes &&
696
- 'transaction_type' in errorRes &&
697
- 'status' in errorRes &&
698
- 'log' in errorRes) {
699
- return throwError(() => this.parsePostErrors(errorRes));
700
- }
701
- return this.handleHttpError(service_type, errorRes);
702
- }
703
- handleHttpDeleteError(service_type, errorRes) {
704
- const is_not_base = !(errorRes instanceof HttpErrorResponse) &&
705
- !('service_type' in errorRes) &&
706
- 'id' in errorRes &&
707
- 'status' in errorRes &&
708
- 'message' in errorRes &&
709
- 'code' in errorRes;
710
- if (is_not_base) {
711
- return throwError(() => this.parseDeleteError(errorRes));
712
- }
713
- return this.handleHttpError(service_type, errorRes);
714
- }
715
- handleHttpError(service_type, error_response) {
716
- if (error_response instanceof HttpErrorResponse) {
717
- if (error_response.status === 500) {
718
- const server_error = error_response.error;
719
- if ('service_type' in server_error &&
720
- server_error.service_type === service_type) {
721
- return throwError(() => this.parseException(server_error));
722
- }
723
- }
724
- }
725
- else {
726
- if ('service_type' in error_response &&
727
- error_response.service_type === service_type) {
728
- if (error_response.type === 'exception') {
729
- return throwError(() => this.parseException(error_response));
730
- }
731
- else if (error_response.type === 'error') {
732
- return throwError(() => this.parseResponseError(error_response));
733
- }
734
- }
735
- }
736
- return throwError(() => error_response);
737
- }
738
- parseException(exception) {
739
- const error = new EsolveHttpError('exception', exception.additional_data.exception_type || 'unknown', exception.message || 'Unknown exception has occurred');
740
- return error;
741
- }
742
- parseResponseError(exception) {
743
- const error = new EsolveHttpError('error', exception.code || 'unknown', exception.message || 'Unknown error has occurred');
744
- return error;
745
- }
746
- parsePostErrors(response) {
747
- let error_code = 'unknown';
748
- let message = 'Unknown error has occurred';
749
- if (response.status.state === 'none' && response.log.length > 0) {
750
- error_code = 'no_response';
751
- message = 'Response was provided';
752
- }
753
- else if (response.status.state === 'error') {
754
- const login_error_log = response.log[0];
755
- error_code = login_error_log.message_code;
756
- message = login_error_log.message;
757
- }
758
- return new EsolveHttpError('error', error_code, message);
759
- }
760
- parseDeleteError(result) {
761
- return new EsolveHttpError('error', result.code, result.message);
762
- }
763
- }
764
- EsolveErrorHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
765
- EsolveErrorHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveErrorHandlerService, providedIn: 'root' });
766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveErrorHandlerService, decorators: [{
767
- type: Injectable,
768
- args: [{
769
- providedIn: 'root',
770
- }]
771
- }] });
1134
+ let params = {};
1135
+ for (const filter of filters) {
1136
+ params = Object.assign(Object.assign({}, params), filter.toHttpParams());
1137
+ }
1138
+ return params;
1139
+ }
1140
+
1141
+ var esolveFilterFactory = /*#__PURE__*/Object.freeze({
1142
+ __proto__: null,
1143
+ convertToHttpParams: convertToHttpParams,
1144
+ covertFromObj: covertFromObj,
1145
+ createMultipleSelectWithValue: createMultipleSelectWithValue,
1146
+ createRangeWithValue: createRangeWithValue,
1147
+ createSingleSelectWithValue: createSingleSelectWithValue,
1148
+ createToggleSelectWithValue: createToggleSelectWithValue
1149
+ });
772
1150
 
773
1151
  // Types
774
1152
 
@@ -807,24 +1185,12 @@ class EsolveSeoService {
807
1185
  this.setPageKeywordsTags(seoInfo.keywords);
808
1186
  }
809
1187
  init() {
810
- if (typeof this.config.title_prefix !== 'undefined') {
811
- this.title_prefix = this.config.title_prefix;
812
- }
813
- if (typeof this.config.title_suffix !== 'undefined') {
814
- this.title_suffix = this.config.title_suffix;
815
- }
816
- if (typeof this.config.title_separator !== 'undefined') {
817
- this.title_separator = this.config.title_separator;
818
- }
819
- if (typeof this.config.default_seo_title !== 'undefined') {
820
- this.default_seo_title = this.config.default_seo_title;
821
- }
822
- if (typeof this.config.default_seo_description !== 'undefined') {
823
- this.default_seo_description = this.config.default_seo_description;
824
- }
825
- if (typeof this.config.default_seo_keywords !== 'undefined') {
826
- this.default_seo_keywords = this.config.default_seo_keywords;
827
- }
1188
+ this.title_prefix = this.config.title_prefix;
1189
+ this.title_suffix = this.config.title_suffix;
1190
+ this.title_separator = this.config.title_separator;
1191
+ this.default_seo_title = this.config.default_seo_title;
1192
+ this.default_seo_description = this.config.default_seo_description;
1193
+ this.default_seo_keywords = this.config.default_seo_keywords;
828
1194
  }
829
1195
  setPageTitleTags(title) {
830
1196
  this.title.setTitle(title);
@@ -885,19 +1251,14 @@ class EsolveSeoService {
885
1251
  return pageSeo;
886
1252
  }
887
1253
  }
888
- EsolveSeoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSeoService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.Title }, { token: i1$1.Meta }], target: i0.ɵɵFactoryTarget.Injectable });
1254
+ EsolveSeoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSeoService, deps: [{ token: EsolveConfigService }, { token: i2.Title }, { token: i2.Meta }], target: i0.ɵɵFactoryTarget.Injectable });
889
1255
  EsolveSeoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSeoService, providedIn: 'root' });
890
1256
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSeoService, decorators: [{
891
1257
  type: Injectable,
892
1258
  args: [{
893
1259
  providedIn: 'root',
894
1260
  }]
895
- }], ctorParameters: function () {
896
- return [{ type: undefined, decorators: [{
897
- type: Inject,
898
- args: [ESOLVE_CONNECT_CONFIG]
899
- }] }, { type: i1$1.Title }, { type: i1$1.Meta }];
900
- } });
1261
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i2.Title }, { type: i2.Meta }]; } });
901
1262
 
902
1263
  class EsolveGeocodeAddressResult {
903
1264
  constructor(street_number, street, suburb, city, province, country, postal_code) {
@@ -947,7 +1308,7 @@ class EsolveGeocoderService {
947
1308
  postal_code,
948
1309
  },
949
1310
  })
950
- .pipe(map((response) => {
1311
+ .pipe(map$1((response) => {
951
1312
  if (response.records === undefined ||
952
1313
  Array.isArray(response.records)) {
953
1314
  throw response;
@@ -964,7 +1325,7 @@ class EsolveGeocoderService {
964
1325
  longitude: longitude,
965
1326
  },
966
1327
  })
967
- .pipe(map((response) => {
1328
+ .pipe(map$1((response) => {
968
1329
  if (response.records === undefined ||
969
1330
  Array.isArray(response.records)) {
970
1331
  throw response;
@@ -980,7 +1341,7 @@ class EsolveGeocoderService {
980
1341
  return geocode_result;
981
1342
  }
982
1343
  }
983
- EsolveGeocoderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveGeocoderService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1344
+ EsolveGeocoderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveGeocoderService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
984
1345
  EsolveGeocoderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveGeocoderService, providedIn: 'root' });
985
1346
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveGeocoderService, decorators: [{
986
1347
  type: Injectable,
@@ -991,7 +1352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
991
1352
  return [{ type: undefined, decorators: [{
992
1353
  type: Inject,
993
1354
  args: [ESOLVE_CONNECT_CONFIG]
994
- }] }, { type: i1$2.HttpClient }];
1355
+ }] }, { type: i1$1.HttpClient }];
995
1356
  } });
996
1357
 
997
1358
  class EsolveLinkedAsset {
@@ -1066,7 +1427,7 @@ class EsolveCategoryTreeService {
1066
1427
  }
1067
1428
  return this.http
1068
1429
  .get(`${this.config.api_url}/get-tree.php`, { params })
1069
- .pipe(map((response) => {
1430
+ .pipe(map$1((response) => {
1070
1431
  if (response.records === undefined) {
1071
1432
  throw response;
1072
1433
  }
@@ -1086,7 +1447,7 @@ class EsolveCategoryTreeService {
1086
1447
  params = params.set('special_id', special_id);
1087
1448
  return this.http
1088
1449
  .get(`${this.config.api_url}/get-special-tree.php`, { params })
1089
- .pipe(map((response) => {
1450
+ .pipe(map$1((response) => {
1090
1451
  if (response.records === undefined) {
1091
1452
  throw response;
1092
1453
  }
@@ -1130,7 +1491,7 @@ class EsolveCategoryTreeService {
1130
1491
  }
1131
1492
  return this.http
1132
1493
  .get(`${this.config.api_url}/get-tree-item.php`, { params })
1133
- .pipe(map((response) => {
1494
+ .pipe(map$1((response) => {
1134
1495
  if (response.records === undefined ||
1135
1496
  response.records.length <= 0) {
1136
1497
  throw response;
@@ -1186,19 +1547,14 @@ class EsolveCategoryTreeService {
1186
1547
  return null;
1187
1548
  }
1188
1549
  }
1189
- EsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1550
+ EsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1190
1551
  EsolveCategoryTreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' });
1191
1552
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{
1192
1553
  type: Injectable,
1193
1554
  args: [{
1194
1555
  providedIn: 'root',
1195
1556
  }]
1196
- }], ctorParameters: function () {
1197
- return [{ type: undefined, decorators: [{
1198
- type: Inject,
1199
- args: [ESOLVE_CONNECT_CONFIG]
1200
- }] }, { type: i1$2.HttpClient }];
1201
- } });
1557
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }]; } });
1202
1558
 
1203
1559
  class EsolveManufacturer {
1204
1560
  get original_image_src() {
@@ -1283,7 +1639,7 @@ class EsolveManufacturersService {
1283
1639
  if (options === null || options === void 0 ? void 0 : options.featured_only) {
1284
1640
  params = params.set('featured_only', options.featured_only);
1285
1641
  }
1286
- return this.getManufacturerRecords(params).pipe(map((records) => {
1642
+ return this.getManufacturerRecords(params).pipe(map$1((records) => {
1287
1643
  const manufacturers = [];
1288
1644
  for (const record of records) {
1289
1645
  manufacturers.push(this.processManufacturer(record));
@@ -1294,7 +1650,7 @@ class EsolveManufacturersService {
1294
1650
  }));
1295
1651
  }
1296
1652
  getManufacturerSingle(params) {
1297
- return this.getManufacturerRecords(params).pipe(map((records) => {
1653
+ return this.getManufacturerRecords(params).pipe(map$1((records) => {
1298
1654
  const record = records[0];
1299
1655
  return this.processManufacturer(record);
1300
1656
  }));
@@ -1302,7 +1658,7 @@ class EsolveManufacturersService {
1302
1658
  getManufacturerRecords(params) {
1303
1659
  return this.http
1304
1660
  .get(`${this.config.api_url}/get-manufacturers.php`, { params })
1305
- .pipe(map((response) => {
1661
+ .pipe(map$1((response) => {
1306
1662
  if (response.records === undefined ||
1307
1663
  response.records.length <= 0) {
1308
1664
  throw response;
@@ -1314,19 +1670,14 @@ class EsolveManufacturersService {
1314
1670
  return new EsolveManufacturer(record);
1315
1671
  }
1316
1672
  }
1317
- EsolveManufacturersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveManufacturersService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1673
+ EsolveManufacturersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveManufacturersService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1318
1674
  EsolveManufacturersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveManufacturersService, providedIn: 'root' });
1319
1675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveManufacturersService, decorators: [{
1320
1676
  type: Injectable,
1321
1677
  args: [{
1322
1678
  providedIn: 'root',
1323
1679
  }]
1324
- }], ctorParameters: function () {
1325
- return [{ type: undefined, decorators: [{
1326
- type: Inject,
1327
- args: [ESOLVE_CONNECT_CONFIG]
1328
- }] }, { type: i1$2.HttpClient }];
1329
- } });
1680
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }]; } });
1330
1681
 
1331
1682
  // Types
1332
1683
 
@@ -1409,7 +1760,7 @@ class EsolveRangesService {
1409
1760
  if (options === null || options === void 0 ? void 0 : options.manufacturers_id) {
1410
1761
  params = params.set('manufacturers_id', options.manufacturers_id);
1411
1762
  }
1412
- return this.getRangeRecords(params).pipe(map((records) => {
1763
+ return this.getRangeRecords(params).pipe(map$1((records) => {
1413
1764
  const ranges = [];
1414
1765
  for (const record of records) {
1415
1766
  ranges.push(this.processRange(record));
@@ -1420,7 +1771,7 @@ class EsolveRangesService {
1420
1771
  }));
1421
1772
  }
1422
1773
  getRangeSingle(params) {
1423
- return this.getRangeRecords(params).pipe(map((records) => {
1774
+ return this.getRangeRecords(params).pipe(map$1((records) => {
1424
1775
  const record = records[0];
1425
1776
  return this.processRange(record);
1426
1777
  }));
@@ -1428,7 +1779,7 @@ class EsolveRangesService {
1428
1779
  getRangeRecords(params) {
1429
1780
  return this.http
1430
1781
  .get(`${this.config.api_url}/get-ranges.php`, { params })
1431
- .pipe(map((response) => {
1782
+ .pipe(map$1((response) => {
1432
1783
  if (response.records === undefined ||
1433
1784
  response.records.length <= 0) {
1434
1785
  throw response;
@@ -1440,7 +1791,7 @@ class EsolveRangesService {
1440
1791
  return new EsolveRange(record);
1441
1792
  }
1442
1793
  }
1443
- EsolveRangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveRangesService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1794
+ EsolveRangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveRangesService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1444
1795
  EsolveRangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveRangesService, providedIn: 'root' });
1445
1796
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveRangesService, decorators: [{
1446
1797
  type: Injectable,
@@ -1451,7 +1802,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1451
1802
  return [{ type: undefined, decorators: [{
1452
1803
  type: Inject,
1453
1804
  args: [ESOLVE_CONNECT_CONFIG]
1454
- }] }, { type: i1$2.HttpClient }];
1805
+ }] }, { type: i1$1.HttpClient }];
1455
1806
  } });
1456
1807
 
1457
1808
  class EsolveTag {
@@ -1505,7 +1856,7 @@ class EsolveTagsService {
1505
1856
  const params = this.parseOptions(options);
1506
1857
  return this.http
1507
1858
  .get(`${this.config.api_url}/get-tags.php`, { params })
1508
- .pipe(map((response) => {
1859
+ .pipe(map$1((response) => {
1509
1860
  if (response.records === undefined) {
1510
1861
  throw response;
1511
1862
  }
@@ -1549,7 +1900,7 @@ class EsolveTagsService {
1549
1900
  return tags;
1550
1901
  }
1551
1902
  }
1552
- EsolveTagsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTagsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1903
+ EsolveTagsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTagsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1553
1904
  EsolveTagsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTagsService, providedIn: 'root' });
1554
1905
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTagsService, decorators: [{
1555
1906
  type: Injectable,
@@ -1560,7 +1911,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1560
1911
  return [{ type: undefined, decorators: [{
1561
1912
  type: Inject,
1562
1913
  args: [ESOLVE_CONNECT_CONFIG]
1563
- }] }, { type: i1$2.HttpClient }];
1914
+ }] }, { type: i1$1.HttpClient }];
1564
1915
  } });
1565
1916
 
1566
1917
  // Types
@@ -1599,7 +1950,7 @@ class EsolveTopicService {
1599
1950
  }
1600
1951
  return this.http
1601
1952
  .get(`${this.config.api_url}/get-topics.php`, { params })
1602
- .pipe(map((response) => {
1953
+ .pipe(map$1((response) => {
1603
1954
  if (response.records === undefined) {
1604
1955
  throw response;
1605
1956
  }
@@ -1617,7 +1968,7 @@ class EsolveTopicService {
1617
1968
  return topics;
1618
1969
  }
1619
1970
  }
1620
- EsolveTopicService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTopicService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1971
+ EsolveTopicService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTopicService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1621
1972
  EsolveTopicService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTopicService, providedIn: 'root' });
1622
1973
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTopicService, decorators: [{
1623
1974
  type: Injectable,
@@ -1628,7 +1979,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
1628
1979
  return [{ type: undefined, decorators: [{
1629
1980
  type: Inject,
1630
1981
  args: [ESOLVE_CONNECT_CONFIG]
1631
- }] }, { type: i1$2.HttpClient }];
1982
+ }] }, { type: i1$1.HttpClient }];
1632
1983
  } });
1633
1984
 
1634
1985
  class EsolveAsset {
@@ -1668,404 +2019,128 @@ class EsolveAsset {
1668
2019
  if (record.created) {
1669
2020
  this.created = record.created;
1670
2021
  }
1671
- if (record.category) {
1672
- this.category = new EsolveCategoryTreeItem(record.category.type, record.category.id, record.category.parent_id, record.category.description, record.category.sef_description, record.category.short_description, record.category.sort_priority, record.category.active, record.category.display_only, record.category.image, record.category.seo_page_title, record.category.seo_keywords, record.category.seo_description);
1673
- }
1674
- if (record.subcategory) {
1675
- this.subcategory = new EsolveCategoryTreeItem(record.subcategory.type, record.subcategory.id, record.subcategory.parent_id, record.subcategory.description, record.subcategory.sef_description, record.subcategory.short_description, record.subcategory.sort_priority, record.subcategory.active, record.subcategory.display_only, record.subcategory.image, record.subcategory.seo_page_title, record.subcategory.seo_keywords, record.subcategory.seo_description);
1676
- }
1677
- if (record.manufacturer) {
1678
- this.manufacturer = new EsolveManufacturer(record.manufacturer);
1679
- }
1680
- if (record.range) {
1681
- this.range = new EsolveRange(record.range);
1682
- }
1683
- if (record.topics && record.topics.length > 0) {
1684
- for (const topic of record.topics) {
1685
- this.topics.push(new EsolveTopic(topic));
1686
- }
1687
- }
1688
- if (record.tags && record.tags.length > 0) {
1689
- for (const tag of record.tags) {
1690
- this.tags.push(new EsolveTag(tag));
1691
- }
1692
- }
1693
- }
1694
- /**
1695
- * Retrieve image path
1696
- *
1697
- * @returns Image path on CDN, else empty string if no image exists
1698
- */
1699
- getImagePath() {
1700
- if (this.image_name !== '') {
1701
- return `/images/documents/${this.image_name}`;
1702
- }
1703
- return '';
1704
- }
1705
- }
1706
-
1707
- class EsolveAssetsService {
1708
- constructor(config, http) {
1709
- this.config = config;
1710
- this.http = http;
1711
- }
1712
- getAsset(id) {
1713
- const params = new HttpParams({ fromObject: { assets_id: id } });
1714
- return this.getAssetRecords(params).pipe(map((response) => {
1715
- if (response.records === undefined ||
1716
- response.records.length <= 0) {
1717
- throw response;
1718
- }
1719
- const record = response.records[0];
1720
- return this.processAsset(record);
1721
- }));
1722
- }
1723
- getAssets(options) {
1724
- const params = this.parseOptions(options);
1725
- return this.getAssetRecords(params).pipe(map((response) => {
1726
- var _a, _b;
1727
- if (response.records === undefined) {
1728
- throw response;
1729
- }
1730
- const assets = [];
1731
- for (const record of response.records) {
1732
- assets.push(this.processAsset(record));
1733
- }
1734
- const page = (_a = options === null || options === void 0 ? void 0 : options.page) !== null && _a !== void 0 ? _a : 0;
1735
- const rows = (_b = options === null || options === void 0 ? void 0 : options.rows) !== null && _b !== void 0 ? _b : 0;
1736
- const total = +response.additional_data.total_records;
1737
- return new EsolveList(assets, page, rows, total);
1738
- }));
1739
- }
1740
- processAsset(record) {
1741
- return new EsolveAsset(record);
1742
- }
1743
- getAssetRecords(params) {
1744
- return this.http.get(`${this.config.api_url}/get-assets.php`, { params });
1745
- }
1746
- parseOptions(options) {
1747
- let params = new HttpParams();
1748
- if (!options) {
1749
- return params;
1750
- }
1751
- if (options.page) {
1752
- params = params.set('page', options.page);
1753
- }
1754
- if (options.rows) {
1755
- params = params.set('rows', options.rows);
1756
- }
1757
- if (options.asset_type) {
1758
- params = params.set('asset_type', options.asset_type);
1759
- }
1760
- if (options.category_id) {
1761
- params = params.set('category_id', options.category_id);
1762
- }
1763
- if (options.subcategory_id) {
1764
- params = params.set('subcategory_id', options.subcategory_id);
1765
- }
1766
- if (options.manufacturers_id) {
1767
- params = params.set('manufacturers_id', options.manufacturers_id);
1768
- }
1769
- if (options.ranges_id) {
1770
- params = params.set('ranges_id', options.ranges_id);
1771
- }
1772
- if (options.asset_category) {
1773
- params = params.set('asset_category', options.asset_category);
1774
- }
1775
- if (options.asset_sub_category) {
1776
- params = params.set('asset_sub_category', options.asset_sub_category);
1777
- }
1778
- if (options.document_number) {
1779
- params = params.set('document_number', options.document_number);
1780
- }
1781
- if (options.document_type) {
1782
- params = params.set('document_type', options.document_type);
1783
- }
1784
- if (options.area_of_application) {
1785
- params = params.set('area_of_application', options.area_of_application);
1786
- }
1787
- return params;
1788
- }
1789
- }
1790
- EsolveAssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAssetsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1791
- EsolveAssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAssetsService, providedIn: 'root' });
1792
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAssetsService, decorators: [{
1793
- type: Injectable,
1794
- args: [{
1795
- providedIn: 'root',
1796
- }]
1797
- }], ctorParameters: function () {
1798
- return [{ type: undefined, decorators: [{
1799
- type: Inject,
1800
- args: [ESOLVE_CONNECT_CONFIG]
1801
- }] }, { type: i1$2.HttpClient }];
1802
- } });
1803
-
1804
- // Types
1805
-
1806
- class EsolveSessionMetadataService {
1807
- constructor(config, http, errorHandler, responseHandler) {
1808
- this.config = config;
1809
- this.http = http;
1810
- this.errorHandler = errorHandler;
1811
- this.responseHandler = responseHandler;
1812
- }
1813
- set(type, metadata) {
1814
- return this.http
1815
- .post(`${this.config.api_url}/set-sessions-metadata.php`, metadata, {
1816
- headers: {
1817
- 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',
1818
- },
1819
- responseType: 'json',
1820
- observe: 'body',
1821
- params: { type },
1822
- })
1823
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveResponseResult(response))), catchError((errorRes) => {
1824
- return this.errorHandler.handleHttpPostError('set-sessions-metadata', errorRes);
1825
- }));
1826
- }
1827
- get(type) {
1828
- return this.http
1829
- .get(`${this.config.api_url}/get-sessions-metadata.php`, {
1830
- params: { type },
1831
- })
1832
- .pipe(map((response) => {
1833
- if (response.records === undefined ||
1834
- (Array.isArray(response.records) &&
1835
- response.records.length === 0)) {
1836
- throw response;
1837
- }
1838
- return response.records;
1839
- }));
1840
- }
1841
- delete(type) {
1842
- return this.http
1843
- .delete(`${this.config.api_url}/delete-sessions-metadata.php`, {
1844
- params: { type },
1845
- responseType: 'json',
1846
- observe: 'body',
1847
- })
1848
- .pipe(map((http_response) => {
1849
- if (http_response.result === undefined ||
1850
- http_response.result === null ||
1851
- http_response.result.status !== 'success') {
1852
- throw http_response;
1853
- }
1854
- return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);
1855
- }), catchError((errorRes) => {
1856
- return this.errorHandler.handleHttpDeleteError('delete-sessions-metadata', errorRes);
1857
- }));
1858
- }
1859
- }
1860
- EsolveSessionMetadataService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionMetadataService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
1861
- EsolveSessionMetadataService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionMetadataService, providedIn: 'root' });
1862
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSessionMetadataService, decorators: [{
1863
- type: Injectable,
1864
- args: [{
1865
- providedIn: 'root',
1866
- }]
1867
- }], ctorParameters: function () {
1868
- return [{ type: undefined, decorators: [{
1869
- type: Inject,
1870
- args: [ESOLVE_CONNECT_CONFIG]
1871
- }] }, { type: i1$2.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
1872
- } });
1873
-
1874
- class EsolveAuthService {
1875
- constructor(config, http, session, errorHandler, cookieService) {
1876
- this.config = config;
1877
- this.http = http;
1878
- this.session = session;
1879
- this.errorHandler = errorHandler;
1880
- this.cookieService = cookieService;
1881
- }
1882
- static preValidate(auth) {
1883
- return () => {
1884
- return auth.validateCachedTokens();
1885
- };
1886
- }
1887
- getAccessToken(email, password, anonymous = false) {
1888
- let params = new HttpParams();
1889
- if (anonymous) {
1890
- params = params.set('anonymous', true);
1891
- }
1892
- if (email !== '') {
1893
- params = params.set('email', email);
2022
+ if (record.category) {
2023
+ this.category = new EsolveCategoryTreeItem(record.category.type, record.category.id, record.category.parent_id, record.category.description, record.category.sef_description, record.category.short_description, record.category.sort_priority, record.category.active, record.category.display_only, record.category.image, record.category.seo_page_title, record.category.seo_keywords, record.category.seo_description);
1894
2024
  }
1895
- if (password !== '') {
1896
- params = params.set('password', password);
2025
+ if (record.subcategory) {
2026
+ this.subcategory = new EsolveCategoryTreeItem(record.subcategory.type, record.subcategory.id, record.subcategory.parent_id, record.subcategory.description, record.subcategory.sef_description, record.subcategory.short_description, record.subcategory.sort_priority, record.subcategory.active, record.subcategory.display_only, record.subcategory.image, record.subcategory.seo_page_title, record.subcategory.seo_keywords, record.subcategory.seo_description);
1897
2027
  }
1898
- return this.http
1899
- .get(`${this.config.api_url}/get-access-token.php`, {
1900
- params,
1901
- headers: new HttpHeaders({
1902
- 'Accept-Language': '*',
1903
- }),
1904
- })
1905
- .pipe(tap((responseData) => {
1906
- if (responseData.type === 'error' ||
1907
- responseData.type === 'exception') {
1908
- throw responseData;
2028
+ if (record.manufacturer) {
2029
+ this.manufacturer = new EsolveManufacturer(record.manufacturer);
2030
+ }
2031
+ if (record.range) {
2032
+ this.range = new EsolveRange(record.range);
2033
+ }
2034
+ if (record.topics && record.topics.length > 0) {
2035
+ for (const topic of record.topics) {
2036
+ this.topics.push(new EsolveTopic(topic));
1909
2037
  }
1910
- }), catchError(this.handleError), tap((responseData) => {
1911
- this.handleAuthentication(responseData.additional_data);
1912
- }));
2038
+ }
2039
+ if (record.tags && record.tags.length > 0) {
2040
+ for (const tag of record.tags) {
2041
+ this.tags.push(new EsolveTag(tag));
2042
+ }
2043
+ }
1913
2044
  }
1914
- autoLogin() {
1915
- return __awaiter(this, void 0, void 0, function* () {
1916
- yield this.validateCachedTokens();
1917
- this.session.restore(this.handleExpiration(), () => {
1918
- firstValueFrom(this.getAccessToken('', '', true)).then(() => {
1919
- // empty
1920
- }, (error) => {
1921
- console.error(error);
1922
- });
1923
- });
1924
- });
2045
+ /**
2046
+ * Retrieve image path
2047
+ *
2048
+ * @returns Image path on CDN, else empty string if no image exists
2049
+ */
2050
+ getImagePath() {
2051
+ if (this.image_name !== '') {
2052
+ return `/images/documents/${this.image_name}`;
2053
+ }
2054
+ return '';
1925
2055
  }
1926
- login(email, password) {
1927
- const body = {
1928
- login: {
1929
- email,
1930
- password,
1931
- },
1932
- };
1933
- return this.http
1934
- .post(`${this.config.api_url}/set-login.php`, body, {
1935
- headers: {
1936
- 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',
1937
- },
1938
- responseType: 'json',
1939
- observe: 'body',
1940
- })
1941
- .pipe(map((response) => {
1942
- if (response.responses === undefined ||
1943
- response.responses.length <= 0) {
2056
+ }
2057
+
2058
+ class EsolveAssetsService {
2059
+ constructor(config, http) {
2060
+ this.config = config;
2061
+ this.http = http;
2062
+ }
2063
+ getAsset(id) {
2064
+ const params = new HttpParams({ fromObject: { assets_id: id } });
2065
+ return this.getAssetRecords(params).pipe(map$1((response) => {
2066
+ if (response.records === undefined ||
2067
+ response.records.length <= 0) {
1944
2068
  throw response;
1945
2069
  }
1946
- const login_response = response.responses[0];
1947
- if (login_response.status.state !== 'success' &&
1948
- login_response.status.state !== 'warning') {
1949
- throw login_response;
1950
- }
1951
- for (const response_log of login_response.log) {
1952
- if (response_log.type === 'success' &&
1953
- response_log.message_code === 'login_success') {
1954
- const session_data = login_response.session_data;
1955
- const user_id = +login_response.esolve_id;
1956
- const location_id = +session_data.location_id;
1957
- this.session.handleUpdateSession({
1958
- user_id: user_id,
1959
- location_id: location_id,
1960
- });
1961
- return user_id;
1962
- }
1963
- }
1964
- throw login_response;
1965
- }), catchError((errorRes) => {
1966
- return this.errorHandler.handleHttpPostError('set-login', errorRes);
2070
+ const record = response.records[0];
2071
+ return this.processAsset(record);
1967
2072
  }));
1968
2073
  }
1969
- logout() {
1970
- return __awaiter(this, void 0, void 0, function* () {
1971
- this.session.clearTimer();
1972
- this.cookieService.delete('_ws_id');
1973
- const response = yield firstValueFrom(this.getAccessToken('', '', true));
1974
- if (response) {
1975
- return response;
1976
- }
1977
- throw new Error('Invalid response');
1978
- });
1979
- }
1980
- validateCachedTokens() {
1981
- return __awaiter(this, void 0, void 0, function* () {
1982
- let valid = false;
1983
- try {
1984
- const session = this.session.getCachedSession();
1985
- if (!session) {
1986
- throw new Error('Invalid session');
1987
- }
1988
- const result = yield firstValueFrom(this.checkAccessToken(session));
1989
- if (!result.key) {
1990
- throw new Error('Invalid key');
1991
- }
1992
- if (session.id !== result.user_id) {
1993
- throw new Error('Invalid authentication');
1994
- }
1995
- valid = true;
1996
- }
1997
- catch (error) {
1998
- this.session.resetSessionCache();
2074
+ getAssets(options) {
2075
+ const params = this.parseOptions(options);
2076
+ return this.getAssetRecords(params).pipe(map$1((response) => {
2077
+ var _a, _b;
2078
+ if (response.records === undefined) {
2079
+ throw response;
1999
2080
  }
2000
- return valid;
2001
- });
2002
- }
2003
- checkAccessToken(session) {
2004
- var _a;
2005
- session = session || this.session.currentSession;
2006
- const token = (_a = session === null || session === void 0 ? void 0 : session.key) !== null && _a !== void 0 ? _a : '';
2007
- return this.http
2008
- .get(`${this.config.api_url}/get-access-token.php`, {
2009
- params: { key: token },
2010
- headers: new HttpHeaders({
2011
- 'Accept-Language': '*',
2012
- }),
2013
- })
2014
- .pipe(map((responseData) => {
2015
- if (responseData.type === 'error' ||
2016
- responseData.type === 'exception' ||
2017
- !responseData.additional_data.key_okay) {
2018
- throw responseData;
2081
+ const assets = [];
2082
+ for (const record of response.records) {
2083
+ assets.push(this.processAsset(record));
2019
2084
  }
2020
- const additional_data = responseData.additional_data;
2021
- const result = {
2022
- key: token,
2023
- expires: additional_data.expires,
2024
- expiry_time: additional_data.expiry_time,
2025
- location_id: additional_data.location_id,
2026
- user_id: additional_data.user_id,
2027
- };
2028
- return result;
2085
+ const page = (_a = options === null || options === void 0 ? void 0 : options.page) !== null && _a !== void 0 ? _a : 0;
2086
+ const rows = (_b = options === null || options === void 0 ? void 0 : options.rows) !== null && _b !== void 0 ? _b : 0;
2087
+ const total = +response.additional_data.total_records;
2088
+ return new EsolveList(assets, page, rows, total);
2029
2089
  }));
2030
2090
  }
2031
- // Handlers
2032
- handleExpiration() {
2033
- return (session) => {
2034
- firstValueFrom(this.checkAccessToken(session)).then((response) => {
2035
- if (response) {
2036
- this.handleAuthentication(response);
2037
- }
2038
- }, () => {
2039
- this.logout();
2040
- });
2041
- };
2091
+ processAsset(record) {
2092
+ return new EsolveAsset(record);
2042
2093
  }
2043
- handleAuthentication(result) {
2044
- if (!result.key) {
2045
- return;
2046
- }
2047
- this.session.handleSession(+result.user_id, +result.location_id, result.key, +result.expiry_time, +result.expires, this.handleExpiration());
2094
+ getAssetRecords(params) {
2095
+ return this.http.get(`${this.config.api_url}/get-assets.php`, { params });
2048
2096
  }
2049
- handleError(errorRes) {
2050
- const error = {
2051
- message: 'An unknown error occurred',
2052
- data: {},
2053
- };
2054
- if (!errorRes.type || !errorRes.service_type || !errorRes.message) {
2055
- return throwError(() => error);
2097
+ parseOptions(options) {
2098
+ let params = new HttpParams();
2099
+ if (!options) {
2100
+ return params;
2056
2101
  }
2057
- if (errorRes.message.trim() !== '') {
2058
- error.message = errorRes.message;
2102
+ if (options.page) {
2103
+ params = params.set('page', options.page);
2059
2104
  }
2060
- if (errorRes.additional_data) {
2061
- error.data = errorRes.additional_data;
2105
+ if (options.rows) {
2106
+ params = params.set('rows', options.rows);
2062
2107
  }
2063
- return throwError(() => error);
2108
+ if (options.asset_type) {
2109
+ params = params.set('asset_type', options.asset_type);
2110
+ }
2111
+ if (options.category_id) {
2112
+ params = params.set('category_id', options.category_id);
2113
+ }
2114
+ if (options.subcategory_id) {
2115
+ params = params.set('subcategory_id', options.subcategory_id);
2116
+ }
2117
+ if (options.manufacturers_id) {
2118
+ params = params.set('manufacturers_id', options.manufacturers_id);
2119
+ }
2120
+ if (options.ranges_id) {
2121
+ params = params.set('ranges_id', options.ranges_id);
2122
+ }
2123
+ if (options.asset_category) {
2124
+ params = params.set('asset_category', options.asset_category);
2125
+ }
2126
+ if (options.asset_sub_category) {
2127
+ params = params.set('asset_sub_category', options.asset_sub_category);
2128
+ }
2129
+ if (options.document_number) {
2130
+ params = params.set('document_number', options.document_number);
2131
+ }
2132
+ if (options.document_type) {
2133
+ params = params.set('document_type', options.document_type);
2134
+ }
2135
+ if (options.area_of_application) {
2136
+ params = params.set('area_of_application', options.area_of_application);
2137
+ }
2138
+ return params;
2064
2139
  }
2065
2140
  }
2066
- EsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }, { token: EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
2067
- EsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthService, providedIn: 'root' });
2068
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAuthService, decorators: [{
2141
+ EsolveAssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAssetsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2142
+ EsolveAssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAssetsService, providedIn: 'root' });
2143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAssetsService, decorators: [{
2069
2144
  type: Injectable,
2070
2145
  args: [{
2071
2146
  providedIn: 'root',
@@ -2074,9 +2149,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2074
2149
  return [{ type: undefined, decorators: [{
2075
2150
  type: Inject,
2076
2151
  args: [ESOLVE_CONNECT_CONFIG]
2077
- }] }, { type: i1$2.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }, { type: EsolveCookieService }];
2152
+ }] }, { type: i1$1.HttpClient }];
2078
2153
  } });
2079
2154
 
2155
+ // Types
2156
+
2080
2157
  class EsolveAddress {
2081
2158
  constructor(id, recipient, address_type, pobox, place_name, street_number, street, suburb, city, province, country, postal_code, latitude, longitude) {
2082
2159
  this.id = id;
@@ -2561,7 +2638,7 @@ class EsolveLocationsService {
2561
2638
  getStockLocations() {
2562
2639
  return this.http
2563
2640
  .get(`${this.config.api_url}/get-locations.php`)
2564
- .pipe(map((response) => {
2641
+ .pipe(map$1((response) => {
2565
2642
  if (response.records === undefined) {
2566
2643
  throw response;
2567
2644
  }
@@ -2588,7 +2665,7 @@ class EsolveLocationsService {
2588
2665
  longitude,
2589
2666
  },
2590
2667
  })
2591
- .pipe(map((response) => {
2668
+ .pipe(map$1((response) => {
2592
2669
  if (response.records === undefined) {
2593
2670
  throw response;
2594
2671
  }
@@ -2611,7 +2688,7 @@ class EsolveLocationsService {
2611
2688
  return stock_locations;
2612
2689
  }
2613
2690
  }
2614
- EsolveLocationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveLocationsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2691
+ EsolveLocationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveLocationsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2615
2692
  EsolveLocationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveLocationsService, providedIn: 'root' });
2616
2693
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveLocationsService, decorators: [{
2617
2694
  type: Injectable,
@@ -2622,7 +2699,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2622
2699
  return [{ type: undefined, decorators: [{
2623
2700
  type: Inject,
2624
2701
  args: [ESOLVE_CONNECT_CONFIG]
2625
- }] }, { type: i1$2.HttpClient }];
2702
+ }] }, { type: i1$1.HttpClient }];
2626
2703
  } });
2627
2704
 
2628
2705
  class EsolveTransactionLocation extends EsolveLocation {
@@ -2720,16 +2797,15 @@ class EsolveTransactionsService {
2720
2797
  this._user_id = value;
2721
2798
  }
2722
2799
  }
2723
- constructor(config, http, sessionService, errorHandler, responseHandler) {
2800
+ constructor(config, http, sessionService, errorHandler) {
2724
2801
  this.config = config;
2725
2802
  this.http = http;
2726
2803
  this.sessionService = sessionService;
2727
2804
  this.errorHandler = errorHandler;
2728
- this.responseHandler = responseHandler;
2729
2805
  this._user_id = 0;
2730
- this.sessionService.session.subscribe((session) => {
2731
- if (session.key !== '') {
2732
- this.user_id = session.id;
2806
+ this.sessionService.getSession().subscribe((session) => {
2807
+ if (session.token !== '') {
2808
+ this.user_id = session.user_id;
2733
2809
  }
2734
2810
  });
2735
2811
  }
@@ -2767,7 +2843,7 @@ class EsolveTransactionsService {
2767
2843
  .get(`${this.config.api_url}/get-transactions.php`, {
2768
2844
  params: params,
2769
2845
  })
2770
- .pipe(map$1((response) => {
2846
+ .pipe(map((response) => {
2771
2847
  var _a, _b;
2772
2848
  if (response.records === undefined) {
2773
2849
  throw response;
@@ -2793,7 +2869,7 @@ class EsolveTransactionsService {
2793
2869
  transaction_id: id,
2794
2870
  },
2795
2871
  })
2796
- .pipe(map$1((response) => {
2872
+ .pipe(map((response) => {
2797
2873
  if (response.records === undefined ||
2798
2874
  response.records.length <= 0) {
2799
2875
  throw response;
@@ -2822,19 +2898,14 @@ class EsolveTransactionsService {
2822
2898
  return transactions;
2823
2899
  }
2824
2900
  }
2825
- EsolveTransactionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTransactionsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
2901
+ EsolveTransactionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTransactionsService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
2826
2902
  EsolveTransactionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTransactionsService, providedIn: 'root' });
2827
2903
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveTransactionsService, decorators: [{
2828
2904
  type: Injectable,
2829
2905
  args: [{
2830
2906
  providedIn: 'root',
2831
2907
  }]
2832
- }], ctorParameters: function () {
2833
- return [{ type: undefined, decorators: [{
2834
- type: Inject,
2835
- args: [ESOLVE_CONNECT_CONFIG]
2836
- }] }, { type: i1$2.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
2837
- } });
2908
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }]; } });
2838
2909
 
2839
2910
  class EsolveEmptyCartResult extends EsolveResponseResult {
2840
2911
  }
@@ -3037,7 +3108,7 @@ class EsolveCouponsService {
3037
3108
  coupon_key,
3038
3109
  },
3039
3110
  })
3040
- .pipe(map((response) => {
3111
+ .pipe(map$1((response) => {
3041
3112
  if (response.records === undefined ||
3042
3113
  Array.isArray(response.records)) {
3043
3114
  throw response;
@@ -3092,7 +3163,7 @@ class EsolveCouponsService {
3092
3163
  coupons: coupon_ids.join(','),
3093
3164
  },
3094
3165
  })
3095
- .pipe(map((response) => {
3166
+ .pipe(map$1((response) => {
3096
3167
  if (response.records === undefined) {
3097
3168
  throw response;
3098
3169
  }
@@ -3216,7 +3287,7 @@ class EsolveCouponsService {
3216
3287
  return coupons;
3217
3288
  }
3218
3289
  }
3219
- EsolveCouponsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCouponsService, deps: [{ token: PLATFORM_ID }, { token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
3290
+ EsolveCouponsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCouponsService, deps: [{ token: PLATFORM_ID }, { token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });
3220
3291
  EsolveCouponsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCouponsService, providedIn: 'root' });
3221
3292
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCouponsService, decorators: [{
3222
3293
  type: Injectable,
@@ -3230,7 +3301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3230
3301
  }] }, { type: undefined, decorators: [{
3231
3302
  type: Inject,
3232
3303
  args: [ESOLVE_CONNECT_CONFIG]
3233
- }] }, { type: i1$2.HttpClient }, { type: EsolveCookieService }];
3304
+ }] }, { type: i1$1.HttpClient }, { type: EsolveCookieService }];
3234
3305
  } });
3235
3306
 
3236
3307
  // Classes
@@ -3257,7 +3328,7 @@ class EsolveCartService {
3257
3328
  }
3258
3329
  return this.http
3259
3330
  .get(`${this.config.api_url}/get-cart.php`, { params })
3260
- .pipe(map((response) => {
3331
+ .pipe(map$1((response) => {
3261
3332
  if (response.records === undefined) {
3262
3333
  throw response;
3263
3334
  }
@@ -3285,7 +3356,7 @@ class EsolveCartService {
3285
3356
  responseType: 'json',
3286
3357
  observe: 'body',
3287
3358
  })
3288
- .pipe(map((response) => {
3359
+ .pipe(map$1((response) => {
3289
3360
  if (response.responses === undefined) {
3290
3361
  throw response;
3291
3362
  }
@@ -3305,7 +3376,7 @@ class EsolveCartService {
3305
3376
  responseType: 'json',
3306
3377
  observe: 'body',
3307
3378
  })
3308
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3379
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3309
3380
  this._cached_tracking = 0;
3310
3381
  return new EsolveEmptyCartResult(response);
3311
3382
  })), catchError((errorRes) => {
@@ -3324,7 +3395,7 @@ class EsolveCartService {
3324
3395
  type: type !== null && type !== void 0 ? type : '',
3325
3396
  },
3326
3397
  })
3327
- .pipe(map((response) => {
3398
+ .pipe(map$1((response) => {
3328
3399
  if (response.records === undefined ||
3329
3400
  Array.isArray(response.records)) {
3330
3401
  throw response;
@@ -3340,7 +3411,7 @@ class EsolveCartService {
3340
3411
  getTrackingCode() {
3341
3412
  return iif(() => this._cached_tracking > 0, of(this._cached_tracking), this.http
3342
3413
  .get(`${this.config.api_url}/get-checkout-tracking.php`)
3343
- .pipe(map((response) => {
3414
+ .pipe(map$1((response) => {
3344
3415
  if (response.records === undefined ||
3345
3416
  Array.isArray(response.records)) {
3346
3417
  throw response;
@@ -3363,7 +3434,7 @@ class EsolveCartService {
3363
3434
  transaction_id,
3364
3435
  },
3365
3436
  })
3366
- .pipe(map((response) => {
3437
+ .pipe(map$1((response) => {
3367
3438
  if (response.records === undefined ||
3368
3439
  Array.isArray(response.records)) {
3369
3440
  throw response;
@@ -3394,7 +3465,7 @@ class EsolveCartService {
3394
3465
  tracking: 0,
3395
3466
  time_slot,
3396
3467
  };
3397
- return this.getTrackingCode().pipe(switchMap((tracking) => {
3468
+ return this.getTrackingCode().pipe(switchMap$1((tracking) => {
3398
3469
  if (tracking <= 0) {
3399
3470
  throw tracking;
3400
3471
  }
@@ -3407,7 +3478,7 @@ class EsolveCartService {
3407
3478
  responseType: 'json',
3408
3479
  observe: 'body',
3409
3480
  })
3410
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3481
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3411
3482
  this._cached_tracking = 0;
3412
3483
  this.coupons.reset();
3413
3484
  return new EsolveCheckoutResult(response);
@@ -3442,7 +3513,7 @@ class EsolveCartService {
3442
3513
  return cart_totals;
3443
3514
  }
3444
3515
  }
3445
- EsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCartService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }, { token: EsolveCouponsService }], target: i0.ɵɵFactoryTarget.Injectable });
3516
+ EsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCartService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }, { token: EsolveCouponsService }], target: i0.ɵɵFactoryTarget.Injectable });
3446
3517
  EsolveCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCartService, providedIn: 'root' });
3447
3518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveCartService, decorators: [{
3448
3519
  type: Injectable,
@@ -3453,7 +3524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3453
3524
  return [{ type: undefined, decorators: [{
3454
3525
  type: Inject,
3455
3526
  args: [ESOLVE_CONNECT_CONFIG]
3456
- }] }, { type: i1$2.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }, { type: EsolveCouponsService }];
3527
+ }] }, { type: i1$1.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }, { type: EsolveCouponsService }];
3457
3528
  } });
3458
3529
 
3459
3530
  class EsolveAccountService {
@@ -3473,9 +3544,9 @@ class EsolveAccountService {
3473
3544
  this.errorHandler = errorHandler;
3474
3545
  this.responseHandler = responseHandler;
3475
3546
  this._user_id = 0;
3476
- this.sessionService.session.subscribe((session) => {
3477
- if (session.key !== '') {
3478
- this.user_id = session.id;
3547
+ this.sessionService.getSession().subscribe((session) => {
3548
+ if (session.token !== '') {
3549
+ this.user_id = session.user_id;
3479
3550
  }
3480
3551
  });
3481
3552
  }
@@ -3491,14 +3562,14 @@ class EsolveAccountService {
3491
3562
  responseType: 'json',
3492
3563
  observe: 'body',
3493
3564
  })
3494
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveUserAccountResult(response))), catchError((errorRes) => {
3565
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveUserAccountResult(response))), catchError((errorRes) => {
3495
3566
  return this.errorHandler.handleHttpPostError('set-user-account', errorRes);
3496
3567
  }));
3497
3568
  }
3498
3569
  getUserAccount() {
3499
3570
  return this.http
3500
3571
  .get(`${this.config.api_url}/get-account.php`)
3501
- .pipe(map((response) => {
3572
+ .pipe(map$1((response) => {
3502
3573
  if (response.records === undefined ||
3503
3574
  response.records.length === 0) {
3504
3575
  throw response;
@@ -3513,7 +3584,7 @@ class EsolveAccountService {
3513
3584
  responseType: 'json',
3514
3585
  observe: 'body',
3515
3586
  })
3516
- .pipe(map((http_response) => {
3587
+ .pipe(map$1((http_response) => {
3517
3588
  if (http_response.result === undefined ||
3518
3589
  http_response.result === null ||
3519
3590
  http_response.result.status !== 'success') {
@@ -3536,7 +3607,7 @@ class EsolveAccountService {
3536
3607
  responseType: 'json',
3537
3608
  observe: 'body',
3538
3609
  })
3539
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveAddressResult(response))), catchError((errorRes) => {
3610
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveAddressResult(response))), catchError((errorRes) => {
3540
3611
  return this.errorHandler.handleHttpPostError('set-address', errorRes);
3541
3612
  }));
3542
3613
  }
@@ -3547,7 +3618,7 @@ class EsolveAccountService {
3547
3618
  .get(`${this.config.api_url}/get-addresses.php`, {
3548
3619
  params: { user_id: this.user_id },
3549
3620
  })
3550
- .pipe(map((response) => {
3621
+ .pipe(map$1((response) => {
3551
3622
  if (response.records === undefined) {
3552
3623
  throw response;
3553
3624
  }
@@ -3565,7 +3636,7 @@ class EsolveAccountService {
3565
3636
  responseType: 'json',
3566
3637
  observe: 'body',
3567
3638
  })
3568
- .pipe(map((http_response) => {
3639
+ .pipe(map$1((http_response) => {
3569
3640
  if (http_response.result === undefined ||
3570
3641
  http_response.result === null ||
3571
3642
  http_response.result.status !== 'success') {
@@ -3589,7 +3660,7 @@ class EsolveAccountService {
3589
3660
  responseType: 'json',
3590
3661
  observe: 'body',
3591
3662
  })
3592
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3663
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3593
3664
  if (response.auto_login) {
3594
3665
  this.sessionService.handleUpdateSession({
3595
3666
  user_id: +response.esolve_id,
@@ -3614,7 +3685,7 @@ class EsolveAccountService {
3614
3685
  responseType: 'json',
3615
3686
  observe: 'body',
3616
3687
  })
3617
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3688
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3618
3689
  return new EsolveChangePasswordResult(response);
3619
3690
  })), catchError((errorRes) => {
3620
3691
  return this.errorHandler.handleHttpPostError('set-change-password', errorRes);
@@ -3640,7 +3711,7 @@ class EsolveAccountService {
3640
3711
  responseType: 'json',
3641
3712
  observe: 'body',
3642
3713
  })
3643
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3714
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3644
3715
  if (response.auto_login) {
3645
3716
  this.sessionService.handleUpdateSession({
3646
3717
  user_id: +response.esolve_id,
@@ -3655,7 +3726,7 @@ class EsolveAccountService {
3655
3726
  sendForgotPasswordRequest(email) {
3656
3727
  return this.http
3657
3728
  .get(`${this.config.api_url}/get-forgot-password.php`, { params: { email } })
3658
- .pipe(map((response) => {
3729
+ .pipe(map$1((response) => {
3659
3730
  if (response.records === undefined ||
3660
3731
  !('reset_link_sent' in response.records)) {
3661
3732
  throw response;
@@ -3677,7 +3748,7 @@ class EsolveAccountService {
3677
3748
  responseType: 'json',
3678
3749
  observe: 'body',
3679
3750
  })
3680
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3751
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3681
3752
  if (!response.login_required) {
3682
3753
  this.sessionService.handleUpdateSession({
3683
3754
  user_id: +response.esolve_id,
@@ -3727,7 +3798,7 @@ class EsolveAccountService {
3727
3798
  }
3728
3799
  return this.http
3729
3800
  .get(`${this.config.api_url}/get-transactions.php`, { params })
3730
- .pipe(map((response) => {
3801
+ .pipe(map$1((response) => {
3731
3802
  var _a, _b;
3732
3803
  if (response.records === undefined) {
3733
3804
  throw response;
@@ -3756,7 +3827,7 @@ class EsolveAccountService {
3756
3827
  transaction_id: id,
3757
3828
  },
3758
3829
  })
3759
- .pipe(map((response) => {
3830
+ .pipe(map$1((response) => {
3760
3831
  if (response.records === undefined ||
3761
3832
  response.records.length <= 0) {
3762
3833
  throw response;
@@ -3774,7 +3845,7 @@ class EsolveAccountService {
3774
3845
  this.loginGuard();
3775
3846
  return this.http
3776
3847
  .get(`${this.config.api_url}/get-client-account-balances.php`)
3777
- .pipe(map((response) => {
3848
+ .pipe(map$1((response) => {
3778
3849
  if (response.records === undefined) {
3779
3850
  throw response;
3780
3851
  }
@@ -3819,7 +3890,7 @@ class EsolveAccountService {
3819
3890
  }
3820
3891
  processClientBalances(records) {
3821
3892
  for (const record of records) {
3822
- if (!(+record.clients_id > 0)) {
3893
+ if (+record.clients_id <= 0) {
3823
3894
  return undefined;
3824
3895
  }
3825
3896
  const cart_totals = new EsolveCartTotals(record.cart_totals.records, +record.cart_totals.items, +record.cart_totals.total, +record.cart_totals.vat, +record.cart_totals.discount);
@@ -3841,7 +3912,7 @@ class EsolveAccountService {
3841
3912
  responseType: 'json',
3842
3913
  observe: 'body',
3843
3914
  })
3844
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3915
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
3845
3916
  if (typeof response.esolve_id === 'string') {
3846
3917
  throw new Error('Invalid response id.');
3847
3918
  }
@@ -3852,19 +3923,14 @@ class EsolveAccountService {
3852
3923
  })));
3853
3924
  }
3854
3925
  }
3855
- EsolveAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAccountService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
3926
+ EsolveAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAccountService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }, { token: EsolveSessionService }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
3856
3927
  EsolveAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAccountService, providedIn: 'root' });
3857
3928
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveAccountService, decorators: [{
3858
3929
  type: Injectable,
3859
3930
  args: [{
3860
3931
  providedIn: 'root',
3861
3932
  }]
3862
- }], ctorParameters: function () {
3863
- return [{ type: undefined, decorators: [{
3864
- type: Inject,
3865
- args: [ESOLVE_CONNECT_CONFIG]
3866
- }] }, { type: i1$2.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
3867
- } });
3933
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }, { type: EsolveSessionService }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }]; } });
3868
3934
 
3869
3935
  class EsolveBanner {
3870
3936
  constructor(id, banner_display_container, identifier, type, title, article, sort_priority, link, images) {
@@ -3936,7 +4002,7 @@ class EsolveBannerService {
3936
4002
  }
3937
4003
  return this.http
3938
4004
  .get(`${this.config.api_url}/get-banners.php`, { params })
3939
- .pipe(map((response) => {
4005
+ .pipe(map$1((response) => {
3940
4006
  if (response.records === undefined) {
3941
4007
  throw response;
3942
4008
  }
@@ -3996,19 +4062,14 @@ class EsolveBannerService {
3996
4062
  return banners;
3997
4063
  }
3998
4064
  }
3999
- EsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveBannerService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
4065
+ EsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveBannerService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
4000
4066
  EsolveBannerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveBannerService, providedIn: 'root' });
4001
4067
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveBannerService, decorators: [{
4002
4068
  type: Injectable,
4003
4069
  args: [{
4004
4070
  providedIn: 'root',
4005
4071
  }]
4006
- }], ctorParameters: function () {
4007
- return [{ type: undefined, decorators: [{
4008
- type: Inject,
4009
- args: [ESOLVE_CONNECT_CONFIG]
4010
- }] }, { type: i1$2.HttpClient }];
4011
- } });
4072
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }]; } });
4012
4073
 
4013
4074
  // Types
4014
4075
 
@@ -4052,7 +4113,7 @@ class EsolveMenuService {
4052
4113
  getMenuTree(identifier) {
4053
4114
  return this.http
4054
4115
  .get(`${this.config.api_url}/get-menu-tree.php`, { params: { identifier } })
4055
- .pipe(map((response) => {
4116
+ .pipe(map$1((response) => {
4056
4117
  if (!response || response.records === undefined) {
4057
4118
  throw response;
4058
4119
  }
@@ -4072,19 +4133,14 @@ class EsolveMenuService {
4072
4133
  return menu;
4073
4134
  }
4074
4135
  }
4075
- EsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveMenuService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
4136
+ EsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveMenuService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
4076
4137
  EsolveMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveMenuService, providedIn: 'root' });
4077
4138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveMenuService, decorators: [{
4078
4139
  type: Injectable,
4079
4140
  args: [{
4080
4141
  providedIn: 'root',
4081
4142
  }]
4082
- }], ctorParameters: function () {
4083
- return [{ type: undefined, decorators: [{
4084
- type: Inject,
4085
- args: [ESOLVE_CONNECT_CONFIG]
4086
- }] }, { type: i1$2.HttpClient }];
4087
- } });
4143
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }]; } });
4088
4144
 
4089
4145
  class EsolveNewsGroup {
4090
4146
  get image_src() {
@@ -4204,7 +4260,7 @@ class EsolveNewsService {
4204
4260
  const params = new HttpParams({
4205
4261
  fromObject: { sef_title: identifier },
4206
4262
  });
4207
- return this.getNewsRecords(params).pipe(map((response) => {
4263
+ return this.getNewsRecords(params).pipe(map$1((response) => {
4208
4264
  if (response.records === undefined ||
4209
4265
  response.records.length <= 0) {
4210
4266
  throw response;
@@ -4218,7 +4274,7 @@ class EsolveNewsService {
4218
4274
  }
4219
4275
  getNewsArticles(options) {
4220
4276
  const params = this.parseOptions(options);
4221
- return this.getNewsRecords(params).pipe(map((response) => {
4277
+ return this.getNewsRecords(params).pipe(map$1((response) => {
4222
4278
  var _a;
4223
4279
  if (response.records === undefined) {
4224
4280
  throw response;
@@ -4239,7 +4295,7 @@ class EsolveNewsService {
4239
4295
  enable_images,
4240
4296
  },
4241
4297
  })
4242
- .pipe(map((response) => {
4298
+ .pipe(map$1((response) => {
4243
4299
  if (response.records === undefined) {
4244
4300
  throw response;
4245
4301
  }
@@ -4294,19 +4350,14 @@ class EsolveNewsService {
4294
4350
  return params;
4295
4351
  }
4296
4352
  }
4297
- EsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveNewsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
4353
+ EsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveNewsService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
4298
4354
  EsolveNewsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveNewsService, providedIn: 'root' });
4299
4355
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveNewsService, decorators: [{
4300
4356
  type: Injectable,
4301
4357
  args: [{
4302
4358
  providedIn: 'root',
4303
4359
  }]
4304
- }], ctorParameters: function () {
4305
- return [{ type: undefined, decorators: [{
4306
- type: Inject,
4307
- args: [ESOLVE_CONNECT_CONFIG]
4308
- }] }, { type: i1$2.HttpClient }];
4309
- } });
4360
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }]; } });
4310
4361
 
4311
4362
  // Types
4312
4363
 
@@ -4901,7 +4952,7 @@ class EsolveStockService {
4901
4952
  code,
4902
4953
  },
4903
4954
  });
4904
- return this.getStockRecords(params).pipe(map((response) => {
4955
+ return this.getStockRecords(params).pipe(map$1((response) => {
4905
4956
  if (response.records === undefined ||
4906
4957
  response.records.length <= 0) {
4907
4958
  throw response;
@@ -4921,7 +4972,7 @@ class EsolveStockService {
4921
4972
  sef_name,
4922
4973
  },
4923
4974
  });
4924
- return this.getStockRecords(params).pipe(map((response) => {
4975
+ return this.getStockRecords(params).pipe(map$1((response) => {
4925
4976
  if (response.records === undefined ||
4926
4977
  response.records.length <= 0) {
4927
4978
  throw response;
@@ -4989,7 +5040,7 @@ class EsolveStockService {
4989
5040
  }
4990
5041
  params = convertToHttpParams(filters, params);
4991
5042
  }
4992
- return this.getStockRecords(params).pipe(map((response) => {
5043
+ return this.getStockRecords(params).pipe(map$1((response) => {
4993
5044
  var _a;
4994
5045
  if (response.records === undefined ||
4995
5046
  response.records.length <= 0) {
@@ -5061,7 +5112,7 @@ class EsolveStockService {
5061
5112
  }
5062
5113
  params = convertToHttpParams(filters, params);
5063
5114
  }
5064
- return this.getStockHistoryRecords(params).pipe(map((response) => {
5115
+ return this.getStockHistoryRecords(params).pipe(map$1((response) => {
5065
5116
  var _a;
5066
5117
  if (response.records === undefined ||
5067
5118
  response.records.length <= 0) {
@@ -5082,7 +5133,7 @@ class EsolveStockService {
5082
5133
  getLinkedItems(code) {
5083
5134
  return this.http
5084
5135
  .get(`${this.config.api_url}/get-linked-items.php`, { params: { code } })
5085
- .pipe(map((response) => {
5136
+ .pipe(map$1((response) => {
5086
5137
  if (response.records === undefined ||
5087
5138
  response.records.length <= 0) {
5088
5139
  throw response;
@@ -5116,7 +5167,7 @@ class EsolveStockService {
5116
5167
  }
5117
5168
  return this.http
5118
5169
  .get(`${this.config.api_url}/get-recipe-items.php`, { params })
5119
- .pipe(map((response) => {
5170
+ .pipe(map$1((response) => {
5120
5171
  if (response.records === undefined ||
5121
5172
  response.records.length <= 0) {
5122
5173
  throw response;
@@ -5158,7 +5209,7 @@ class EsolveStockService {
5158
5209
  }
5159
5210
  return this.http
5160
5211
  .get(`${this.config.api_url}/get-media-linked-items.php`, { params })
5161
- .pipe(map((response) => {
5212
+ .pipe(map$1((response) => {
5162
5213
  if (response.records === undefined ||
5163
5214
  response.records.length <= 0) {
5164
5215
  throw response;
@@ -5175,7 +5226,7 @@ class EsolveStockService {
5175
5226
  getStockImageCollection(code) {
5176
5227
  return this.http
5177
5228
  .get(`${this.config.api_url}/get-item-image-collection.php`, { params: { code } })
5178
- .pipe(map((response) => {
5229
+ .pipe(map$1((response) => {
5179
5230
  if (response.records === undefined ||
5180
5231
  Array.isArray(response.records)) {
5181
5232
  throw response;
@@ -5198,7 +5249,7 @@ class EsolveStockService {
5198
5249
  });
5199
5250
  return this.http
5200
5251
  .get(`${this.config.api_url}/get-item-filters.php`, { params })
5201
- .pipe(map((response) => {
5252
+ .pipe(map$1((response) => {
5202
5253
  if (response.records === undefined) {
5203
5254
  throw response;
5204
5255
  }
@@ -5286,7 +5337,7 @@ class EsolveStockService {
5286
5337
  return this.http.get(`${this.config.api_url}/get-items-transaction-history.php`, { params });
5287
5338
  }
5288
5339
  }
5289
- EsolveStockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveStockService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
5340
+ EsolveStockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveStockService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
5290
5341
  EsolveStockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveStockService, providedIn: 'root' });
5291
5342
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveStockService, decorators: [{
5292
5343
  type: Injectable,
@@ -5297,7 +5348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
5297
5348
  return [{ type: undefined, decorators: [{
5298
5349
  type: Inject,
5299
5350
  args: [ESOLVE_CONNECT_CONFIG]
5300
- }] }, { type: i1$2.HttpClient }];
5351
+ }] }, { type: i1$1.HttpClient }];
5301
5352
  } });
5302
5353
 
5303
5354
  class EsolveSpecialImage {
@@ -5407,7 +5458,7 @@ class EsolveSpecialsService {
5407
5458
  if (options === null || options === void 0 ? void 0 : options.special_type) {
5408
5459
  params = params.set('special_type', options.special_type);
5409
5460
  }
5410
- return this.getSpecialRecords(params).pipe(map((records) => {
5461
+ return this.getSpecialRecords(params).pipe(map$1((records) => {
5411
5462
  const specials = [];
5412
5463
  for (const record of records) {
5413
5464
  specials.push(this.processSpecial(record));
@@ -5418,7 +5469,7 @@ class EsolveSpecialsService {
5418
5469
  }));
5419
5470
  }
5420
5471
  getSpecialSingle(params) {
5421
- return this.getSpecialRecords(params).pipe(map((records) => {
5472
+ return this.getSpecialRecords(params).pipe(map$1((records) => {
5422
5473
  const record = records[0];
5423
5474
  return this.processSpecial(record);
5424
5475
  }));
@@ -5426,7 +5477,7 @@ class EsolveSpecialsService {
5426
5477
  getSpecialRecords(params) {
5427
5478
  return this.http
5428
5479
  .get(`${this.config.api_url}/get-specials.php`, { params })
5429
- .pipe(map((response) => {
5480
+ .pipe(map$1((response) => {
5430
5481
  if (response.records === undefined ||
5431
5482
  response.records.length <= 0) {
5432
5483
  throw response;
@@ -5438,7 +5489,7 @@ class EsolveSpecialsService {
5438
5489
  return new EsolveSpecial(record);
5439
5490
  }
5440
5491
  }
5441
- EsolveSpecialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSpecialsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
5492
+ EsolveSpecialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSpecialsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
5442
5493
  EsolveSpecialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSpecialsService, providedIn: 'root' });
5443
5494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSpecialsService, decorators: [{
5444
5495
  type: Injectable,
@@ -5449,7 +5500,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
5449
5500
  return [{ type: undefined, decorators: [{
5450
5501
  type: Inject,
5451
5502
  args: [ESOLVE_CONNECT_CONFIG]
5452
- }] }, { type: i1$2.HttpClient }];
5503
+ }] }, { type: i1$1.HttpClient }];
5453
5504
  } });
5454
5505
 
5455
5506
  // Only export the types that are accessible to the public API
@@ -5594,7 +5645,7 @@ class EsolvePaymentService {
5594
5645
  getPaymentMethods(options) {
5595
5646
  return this.http
5596
5647
  .get(`${this.config.api_url}/get-payment-methods.php`, { params: Object.assign({}, options) })
5597
- .pipe(map((response) => {
5648
+ .pipe(map$1((response) => {
5598
5649
  if (response.records === undefined) {
5599
5650
  throw response;
5600
5651
  }
@@ -5611,7 +5662,7 @@ class EsolvePaymentService {
5611
5662
  getPaymentStatus(transaction_id) {
5612
5663
  return this.http
5613
5664
  .get(`${this.config.api_url}/get-payment-status.php`, { params: { cart_id: transaction_id } })
5614
- .pipe(map((response) => {
5665
+ .pipe(map$1((response) => {
5615
5666
  if (response.records === undefined ||
5616
5667
  Array.isArray(response.records)) {
5617
5668
  throw response;
@@ -5633,7 +5684,7 @@ class EsolvePaymentService {
5633
5684
  }
5634
5685
  return this.http
5635
5686
  .get(`${this.config.api_url}/get-vault.php`, { params })
5636
- .pipe(map((response) => {
5687
+ .pipe(map$1((response) => {
5637
5688
  if (response.records === undefined) {
5638
5689
  throw response;
5639
5690
  }
@@ -5666,7 +5717,7 @@ class EsolvePaymentService {
5666
5717
  responseType: 'json',
5667
5718
  observe: 'body',
5668
5719
  })
5669
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveVaultItemResult(response))), catchError((errorRes) => {
5720
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveVaultItemResult(response))), catchError((errorRes) => {
5670
5721
  return this.errorHandler.handleHttpPostError('set-vault', errorRes);
5671
5722
  }));
5672
5723
  }
@@ -5684,7 +5735,7 @@ class EsolvePaymentService {
5684
5735
  responseType: 'json',
5685
5736
  observe: 'body',
5686
5737
  })
5687
- .pipe(map((http_response) => {
5738
+ .pipe(map$1((http_response) => {
5688
5739
  if (http_response.result === undefined ||
5689
5740
  http_response.result === null ||
5690
5741
  http_response.result.status !== 'success') {
@@ -5736,7 +5787,7 @@ class EsolvePaymentService {
5736
5787
  responseType: 'json',
5737
5788
  observe: 'body',
5738
5789
  })
5739
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolvePaymentResult(response))), catchError((errorRes) => {
5790
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolvePaymentResult(response))), catchError((errorRes) => {
5740
5791
  return this.errorHandler.handleHttpPostError('set-payment', errorRes);
5741
5792
  }));
5742
5793
  }
@@ -5787,7 +5838,7 @@ class EsolvePaymentService {
5787
5838
  return `${month_string}${year_string}`;
5788
5839
  }
5789
5840
  }
5790
- EsolvePaymentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolvePaymentService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
5841
+ EsolvePaymentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolvePaymentService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
5791
5842
  EsolvePaymentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolvePaymentService, providedIn: 'root' });
5792
5843
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolvePaymentService, decorators: [{
5793
5844
  type: Injectable,
@@ -5798,7 +5849,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
5798
5849
  return [{ type: undefined, decorators: [{
5799
5850
  type: Inject,
5800
5851
  args: [ESOLVE_CONNECT_CONFIG]
5801
- }] }, { type: i1$2.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
5852
+ }] }, { type: i1$1.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
5802
5853
  } });
5803
5854
 
5804
5855
  class EsolveShippingTotals {
@@ -5955,7 +6006,7 @@ class EsolveShippingService {
5955
6006
  }
5956
6007
  return this.http
5957
6008
  .get(`${this.config.api_url}/get-shipping-methods.php`, { params })
5958
- .pipe(map((response) => {
6009
+ .pipe(map$1((response) => {
5959
6010
  if (response.records === undefined) {
5960
6011
  throw response;
5961
6012
  }
@@ -5991,7 +6042,7 @@ class EsolveShippingService {
5991
6042
  }
5992
6043
  return this.http
5993
6044
  .get(`${this.config.api_url}/get-shipping-cost.php`, { params })
5994
- .pipe(map((response) => {
6045
+ .pipe(map$1((response) => {
5995
6046
  if (response.records === undefined) {
5996
6047
  throw response;
5997
6048
  }
@@ -6020,7 +6071,7 @@ class EsolveShippingService {
6020
6071
  }
6021
6072
  return this.http
6022
6073
  .get(`${this.config.api_url}/get-time-slots.php`, { params })
6023
- .pipe(map((response) => {
6074
+ .pipe(map$1((response) => {
6024
6075
  if (response.records === undefined ||
6025
6076
  Array.isArray(response.records)) {
6026
6077
  throw response;
@@ -6061,7 +6112,7 @@ class EsolveShippingService {
6061
6112
  return shipping_cost;
6062
6113
  }
6063
6114
  }
6064
- EsolveShippingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveShippingService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
6115
+ EsolveShippingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveShippingService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
6065
6116
  EsolveShippingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveShippingService, providedIn: 'root' });
6066
6117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveShippingService, decorators: [{
6067
6118
  type: Injectable,
@@ -6072,7 +6123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
6072
6123
  return [{ type: undefined, decorators: [{
6073
6124
  type: Inject,
6074
6125
  args: [ESOLVE_CONNECT_CONFIG]
6075
- }] }, { type: i1$2.HttpClient }];
6126
+ }] }, { type: i1$1.HttpClient }];
6076
6127
  } });
6077
6128
 
6078
6129
  class EsolveEnquiryResult extends EsolveResponseResult {
@@ -6099,24 +6150,19 @@ class EsolveEnquiryService {
6099
6150
  responseType: 'json',
6100
6151
  observe: 'body',
6101
6152
  })
6102
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveEnquiryResult(response))), catchError((errorRes) => {
6153
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveEnquiryResult(response))), catchError((errorRes) => {
6103
6154
  return this.errorHandler.handleHttpPostError('set-enquiry', errorRes);
6104
6155
  }));
6105
6156
  }
6106
6157
  }
6107
- EsolveEnquiryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveEnquiryService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
6158
+ EsolveEnquiryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveEnquiryService, deps: [{ token: EsolveConfigService }, { token: i1$1.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
6108
6159
  EsolveEnquiryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveEnquiryService, providedIn: 'root' });
6109
6160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveEnquiryService, decorators: [{
6110
6161
  type: Injectable,
6111
6162
  args: [{
6112
6163
  providedIn: 'root',
6113
6164
  }]
6114
- }], ctorParameters: function () {
6115
- return [{ type: undefined, decorators: [{
6116
- type: Inject,
6117
- args: [ESOLVE_CONNECT_CONFIG]
6118
- }] }, { type: i1$2.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
6119
- } });
6165
+ }], ctorParameters: function () { return [{ type: EsolveConfigService }, { type: i1$1.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }]; } });
6120
6166
 
6121
6167
  class EsolveWishlistItem {
6122
6168
  constructor(id, qty, vat_rate, price, price_incl, vat_total, total, total_incl, stock_item) {
@@ -6148,7 +6194,7 @@ class EsolveWishlistService {
6148
6194
  * @returns An `Observable` with an array of cart items
6149
6195
  */
6150
6196
  getWishlist() {
6151
- return this.getWishlistRecords().pipe(map((response) => {
6197
+ return this.getWishlistRecords().pipe(map$1((response) => {
6152
6198
  if (response.records === undefined) {
6153
6199
  throw response;
6154
6200
  }
@@ -6176,7 +6222,7 @@ class EsolveWishlistService {
6176
6222
  responseType: 'json',
6177
6223
  observe: 'body',
6178
6224
  })
6179
- .pipe(map((response) => {
6225
+ .pipe(map$1((response) => {
6180
6226
  if (response.responses === undefined) {
6181
6227
  throw response;
6182
6228
  }
@@ -6197,7 +6243,7 @@ class EsolveWishlistService {
6197
6243
  responseType: 'json',
6198
6244
  observe: 'body',
6199
6245
  })
6200
- .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
6246
+ .pipe(map$1((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {
6201
6247
  return new EsolveEmptyWishlistResult(response);
6202
6248
  })), catchError((errorRes) => {
6203
6249
  return this.errorHandler.handleHttpPostError('set-wishlist-empty', errorRes);
@@ -6230,7 +6276,7 @@ class EsolveWishlistService {
6230
6276
  return this.http.get(`${this.config.api_url}/get-wishlist.php`, { params });
6231
6277
  }
6232
6278
  }
6233
- EsolveWishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveWishlistService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
6279
+ EsolveWishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveWishlistService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }, { token: EsolveErrorHandlerService }, { token: EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });
6234
6280
  EsolveWishlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveWishlistService, providedIn: 'root' });
6235
6281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveWishlistService, decorators: [{
6236
6282
  type: Injectable,
@@ -6241,7 +6287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
6241
6287
  return [{ type: undefined, decorators: [{
6242
6288
  type: Inject,
6243
6289
  args: [ESOLVE_CONNECT_CONFIG]
6244
- }] }, { type: i1$2.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
6290
+ }] }, { type: i1$1.HttpClient }, { type: EsolveErrorHandlerService }, { type: EsolveResponseHandlerService }];
6245
6291
  } });
6246
6292
 
6247
6293
  class EsolveSupplier {
@@ -6285,7 +6331,7 @@ class EsolveSuppliersService {
6285
6331
  if (options === null || options === void 0 ? void 0 : options.internal_account) {
6286
6332
  params = params.set('internal_account', options.internal_account);
6287
6333
  }
6288
- return this.getSupplierRecords(params).pipe(map((records) => {
6334
+ return this.getSupplierRecords(params).pipe(map$1((records) => {
6289
6335
  const suppliers = [];
6290
6336
  for (const record of records) {
6291
6337
  suppliers.push(this.processSuppliers(record));
@@ -6298,7 +6344,7 @@ class EsolveSuppliersService {
6298
6344
  getSupplierRecords(params) {
6299
6345
  return this.http
6300
6346
  .get(`${this.config.api_url}/get-suppliers.php`, { params })
6301
- .pipe(map((response) => {
6347
+ .pipe(map$1((response) => {
6302
6348
  if (response.records === undefined ||
6303
6349
  response.records.length === 0) {
6304
6350
  throw response;
@@ -6310,7 +6356,7 @@ class EsolveSuppliersService {
6310
6356
  return new EsolveSupplier(record);
6311
6357
  }
6312
6358
  }
6313
- EsolveSuppliersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSuppliersService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
6359
+ EsolveSuppliersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSuppliersService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
6314
6360
  EsolveSuppliersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSuppliersService, providedIn: 'root' });
6315
6361
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: EsolveSuppliersService, decorators: [{
6316
6362
  type: Injectable,
@@ -6321,7 +6367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
6321
6367
  return [{ type: undefined, decorators: [{
6322
6368
  type: Inject,
6323
6369
  args: [ESOLVE_CONNECT_CONFIG]
6324
- }] }, { type: i1$2.HttpClient }];
6370
+ }] }, { type: i1$1.HttpClient }];
6325
6371
  } });
6326
6372
 
6327
6373
  /*
@@ -6332,5 +6378,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
6332
6378
  * Generated bundle index. Do not edit.
6333
6379
  */
6334
6380
 
6335
- export { ESOLVE_CONNECT_CONFIG, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDependantItem, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationUpdateResult, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSession, EsolveSessionMetadataService, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveToggleFilter, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionShippingMethod, EsolveTransactionUser, EsolveTransactionsService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveVaultItem, EsolveVaultItemResult, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveHexHash };
6381
+ export { ESOLVE_CONNECT_CONFIG, ESOLVE_EURUS_AUTO_LOGIN, ESOLVE_IMAGE_LOADER_PROVIDER, EsolveAccountConfirmationResult, EsolveAccountService, EsolveAdditionalStockImage, EsolveAddress, EsolveAddressResult, EsolveAsset, EsolveAssetsService, EsolveAuthInterceptorService, EsolveAuthService, EsolveBankingDetails, EsolveBanner, EsolveBannerImage, EsolveBannerImageHotspot, EsolveBannerService, EsolveCartItem, EsolveCartService, EsolveCartStockItem, EsolveCartTotals, EsolveCategoryTreeItem, EsolveCategoryTreeService, EsolveCdnSrcDirective, EsolveChangePasswordResult, EsolveCheckoutResult, EsolveColour, EsolveConfigService, EsolveCookieService, EsolveCoupon, EsolveCouponsService, EsolveDependantItem, EsolveEmptyCartResult, EsolveEmptyWishlistResult, EsolveEnquiryResult, EsolveEnquiryService, EsolveErrorHandlerService, esolveFilterFactory as EsolveFilterFactory, EsolveGeocodeAddressResult, EsolveGeocodeCoordsResult, EsolveGeocodeResult, EsolveGeocoderService, EsolveHttpError, EsolveLinkedAsset, EsolveLinkedStockItem, EsolveList, EsolveLocation, EsolveLocationAddress, EsolveLocationContactInfo, EsolveLocationGEO, EsolveLocationPOBoxAddress, EsolveLocationTradingDay, EsolveLocationTradingTimes, EsolveLocationUpdateResult, EsolveLocationsService, EsolveManufacturer, EsolveManufacturersService, EsolveMediaStockItem, EsolveMenuItem, EsolveMenuService, EsolveMultipleSelectFilter, EsolveNewsArticle, EsolveNewsArticleAuthor, EsolveNewsArticleList, EsolveNewsGroup, EsolveNewsService, EsolvePaymentMethod, EsolvePaymentResult, EsolvePaymentService, EsolveRange, EsolveRangeFilter, EsolveRangesService, EsolveRecipeStockItem, EsolveRegistrationResult, EsolveResetPasswordResult, EsolveResponseHandlerService, EsolveResponseResult, EsolveResult, EsolveSeoInfo, EsolveSeoService, EsolveSessionMetadataService, EsolveSessionService, EsolveShippingCost, EsolveShippingMethod, EsolveShippingService, EsolveShippingTotals, EsolveSingleSelectFilter, EsolveSpecial, EsolveSpecialDates, EsolveSpecialImage, EsolveSpecialImageCollection, EsolveSpecialsService, EsolveStatement, EsolveStatementAgeing, EsolveStatementBalances, EsolveStatementTransaction, EsolveStockBadge, EsolveStockGroup, EsolveStockGroupItem, EsolveStockImage, EsolveStockImageCollection, EsolveStockItem, EsolveStockItemBase, EsolveStockItemList, EsolveStockLeadTimes, EsolveStockPrice, EsolveStockService, EsolveSupplier, EsolveSuppliersService, EsolveTag, EsolveTagsService, EsolveTimeSlot, EsolveTimeSlotConfig, EsolveTimeSlotDate, EsolveTimeSlotDays, EsolveTimeSlotTimes, EsolveToggleFilter, EsolveTopic, EsolveTopicService, EsolveTransaction, EsolveTransactionAddress, EsolveTransactionAnalyticsData, EsolveTransactionClient, EsolveTransactionItem, EsolveTransactionItemPrice, EsolveTransactionList, EsolveTransactionLocation, EsolveTransactionPaymentMethod, EsolveTransactionShippingMethod, EsolveTransactionUser, EsolveTransactionsService, EsolveUserAccount, EsolveUserAccountBusiness, EsolveUserAccountContact, EsolveUserAccountResult, EsolveUserClientAccount, EsolveUserClientAccountBalances, EsolveVaultItem, EsolveVaultItemResult, EsolveWishlistItem, EsolveWishlistService, NgEsolveConnectModule, esolveHexHash, isEsolveCdnPath, isLegacyEsolveCdnPath, processEsolveImageSrc };
6336
6382
  //# sourceMappingURL=esolve-ng-esolve-connect.mjs.map