sk-front-lib 0.17.48 → 0.17.50

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 (255) hide show
  1. package/api/model/api-config.d.ts +6 -0
  2. package/api/model/api-pageable-param.d.ts +11 -0
  3. package/api/model/api-pageable.d.ts +11 -0
  4. package/api/model/api-response.d.ts +8 -0
  5. package/api/model/index.d.ts +4 -0
  6. package/api/package.json +10 -0
  7. package/api/public_api.d.ts +3 -0
  8. package/api/sk-api.module.d.ts +12 -0
  9. package/api/sk-api.service.d.ts +34 -0
  10. package/api/sk-front-lib-api.d.ts +5 -0
  11. package/article/package.json +10 -0
  12. package/article/public_api.d.ts +6 -0
  13. package/article/sk-article-editor-server.component.d.ts +23 -0
  14. package/article/sk-article-editor.component.d.ts +27 -0
  15. package/article/sk-article-server.module.d.ts +10 -0
  16. package/article/sk-article.module.d.ts +9 -0
  17. package/article/sk-article.service.d.ts +96 -0
  18. package/article/sk-froala-editor.directive.d.ts +40 -0
  19. package/article/sk-front-lib-article.d.ts +5 -0
  20. package/crud/package.json +10 -0
  21. package/crud/public_api.d.ts +24 -0
  22. package/crud/sk-account.service.d.ts +16 -0
  23. package/crud/sk-affiliate.service.d.ts +38 -0
  24. package/crud/sk-auth-admin.guard.d.ts +13 -0
  25. package/crud/sk-auth.guard.d.ts +13 -0
  26. package/crud/sk-auth.service.d.ts +33 -0
  27. package/crud/sk-board.service.d.ts +21 -0
  28. package/crud/sk-brand.service.d.ts +19 -0
  29. package/crud/sk-cart.service.d.ts +72 -0
  30. package/crud/sk-category.service.d.ts +28 -0
  31. package/crud/sk-comment.service.d.ts +15 -0
  32. package/crud/sk-config.service.d.ts +13 -0
  33. package/crud/sk-contact.service.d.ts +15 -0
  34. package/crud/sk-coupon.service.d.ts +24 -0
  35. package/crud/sk-document.service.d.ts +51 -0
  36. package/crud/sk-etc.service.d.ts +12 -0
  37. package/crud/sk-file.service.d.ts +18 -0
  38. package/crud/sk-front-lib-crud.d.ts +5 -0
  39. package/crud/sk-keyword.service.d.ts +19 -0
  40. package/crud/sk-order.service.d.ts +45 -0
  41. package/crud/sk-point.service.d.ts +17 -0
  42. package/crud/sk-product.service.d.ts +84 -0
  43. package/crud/sk-promotion.service.d.ts +41 -0
  44. package/crud/sk-search.service.d.ts +12 -0
  45. package/crud/sk-store.service.d.ts +17 -0
  46. package/crud/sk-user.service.d.ts +25 -0
  47. package/esm2020/api/model/api-config.mjs +2 -0
  48. package/esm2020/api/model/api-pageable-param.mjs +29 -0
  49. package/esm2020/api/model/api-pageable.mjs +3 -0
  50. package/esm2020/api/model/api-response.mjs +3 -0
  51. package/esm2020/api/model/index.mjs +4 -0
  52. package/esm2020/api/public_api.mjs +4 -0
  53. package/esm2020/api/sk-api.module.mjs +35 -0
  54. package/esm2020/api/sk-api.service.mjs +145 -0
  55. package/esm2020/api/sk-front-lib-api.mjs +5 -0
  56. package/esm2020/article/public_api.mjs +7 -0
  57. package/esm2020/article/sk-article-editor-server.component.mjs +51 -0
  58. package/esm2020/article/sk-article-editor.component.mjs +93 -0
  59. package/esm2020/article/sk-article-server.module.mjs +33 -0
  60. package/esm2020/article/sk-article.module.mjs +32 -0
  61. package/esm2020/article/sk-article.service.mjs +248 -0
  62. package/esm2020/article/sk-froala-editor.directive.mjs +325 -0
  63. package/esm2020/article/sk-front-lib-article.mjs +5 -0
  64. package/esm2020/crud/public_api.mjs +25 -0
  65. package/esm2020/crud/sk-account.service.mjs +36 -0
  66. package/esm2020/crud/sk-affiliate.service.mjs +94 -0
  67. package/esm2020/crud/sk-auth-admin.guard.mjs +31 -0
  68. package/esm2020/crud/sk-auth.guard.mjs +31 -0
  69. package/esm2020/crud/sk-auth.service.mjs +67 -0
  70. package/esm2020/crud/sk-board.service.mjs +54 -0
  71. package/esm2020/crud/sk-brand.service.mjs +46 -0
  72. package/esm2020/crud/sk-cart.service.mjs +256 -0
  73. package/esm2020/crud/sk-category.service.mjs +63 -0
  74. package/esm2020/crud/sk-comment.service.mjs +43 -0
  75. package/esm2020/crud/sk-config.service.mjs +31 -0
  76. package/esm2020/crud/sk-contact.service.mjs +39 -0
  77. package/esm2020/crud/sk-coupon.service.mjs +62 -0
  78. package/esm2020/crud/sk-document.service.mjs +110 -0
  79. package/esm2020/crud/sk-etc.service.mjs +25 -0
  80. package/esm2020/crud/sk-file.service.mjs +37 -0
  81. package/esm2020/crud/sk-front-lib-crud.mjs +5 -0
  82. package/esm2020/crud/sk-keyword.service.mjs +46 -0
  83. package/esm2020/crud/sk-order.service.mjs +133 -0
  84. package/esm2020/crud/sk-point.service.mjs +45 -0
  85. package/esm2020/crud/sk-product.service.mjs +168 -0
  86. package/esm2020/crud/sk-promotion.service.mjs +84 -0
  87. package/esm2020/crud/sk-search.service.mjs +25 -0
  88. package/esm2020/crud/sk-store.service.mjs +47 -0
  89. package/esm2020/crud/sk-user.service.mjs +73 -0
  90. package/esm2020/google-analytics/google-analytics-router.module.mjs +30 -0
  91. package/esm2020/google-analytics/google-analytics.module.mjs +40 -0
  92. package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +24 -0
  93. package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +46 -0
  94. package/esm2020/google-analytics/interfaces/google-analytics-command.mjs +2 -0
  95. package/esm2020/google-analytics/interfaces/google-analytics-settings.mjs +2 -0
  96. package/esm2020/google-analytics/public_api.mjs +11 -0
  97. package/esm2020/google-analytics/services/google-analytics.service.mjs +223 -0
  98. package/esm2020/google-analytics/sk-front-lib-google-analytics.mjs +5 -0
  99. package/esm2020/google-analytics/tokens/google-analytics-settings-token.mjs +5 -0
  100. package/esm2020/google-analytics/types/ga-action.type.mjs +2 -0
  101. package/esm2020/google-analytics/types/ga-bind.type.mjs +2 -0
  102. package/esm2020/image/public_api.mjs +3 -0
  103. package/esm2020/image/sk-front-lib-image.mjs +5 -0
  104. package/esm2020/image/sk-image.component.mjs +262 -0
  105. package/esm2020/image/sk-image.module.mjs +43 -0
  106. package/esm2020/lib/sk-byte.pipe.mjs +4 -4
  107. package/esm2020/lib/sk-date-time.pipe.mjs +4 -4
  108. package/esm2020/lib/sk-date.pipe.mjs +4 -4
  109. package/esm2020/lib/sk-front-lib.module.mjs +5 -5
  110. package/esm2020/lib/sk-keys.pipe.mjs +4 -4
  111. package/esm2020/lib/sk-time.pipe.mjs +4 -4
  112. package/esm2020/model/lib/article.mjs +11 -0
  113. package/esm2020/model/lib/audit.mjs +12 -0
  114. package/esm2020/model/lib/auth.mjs +2 -0
  115. package/esm2020/model/lib/board.mjs +21 -0
  116. package/esm2020/model/lib/cart.mjs +29 -0
  117. package/esm2020/model/lib/comment.mjs +25 -0
  118. package/esm2020/model/lib/contact.mjs +28 -0
  119. package/esm2020/model/lib/coupon.mjs +23 -0
  120. package/esm2020/model/lib/document.mjs +49 -0
  121. package/esm2020/model/lib/etc.mjs +57 -0
  122. package/esm2020/model/lib/file.mjs +8 -0
  123. package/esm2020/model/lib/filetype.mjs +179 -0
  124. package/esm2020/model/lib/grid.mjs +83 -0
  125. package/esm2020/model/lib/nicepay.mjs +81 -0
  126. package/esm2020/model/lib/order.mjs +106 -0
  127. package/esm2020/model/lib/payment.mjs +35 -0
  128. package/esm2020/model/lib/point.mjs +47 -0
  129. package/esm2020/model/lib/product-series.mjs +2 -0
  130. package/esm2020/model/lib/product.mjs +156 -0
  131. package/esm2020/model/lib/promotion.mjs +80 -0
  132. package/esm2020/model/lib/shipping.mjs +37 -0
  133. package/esm2020/model/lib/tosspay.mjs +61 -0
  134. package/esm2020/model/lib/user.mjs +61 -0
  135. package/esm2020/model/public_api.mjs +24 -0
  136. package/esm2020/model/sk-front-lib-model.mjs +5 -0
  137. package/esm2020/search-address/dialog/dialog.component.mjs +27 -0
  138. package/esm2020/search-address/public_api.mjs +4 -0
  139. package/esm2020/search-address/sk-front-lib-search-address.mjs +5 -0
  140. package/esm2020/search-address/sk-search-address.directive.mjs +41 -0
  141. package/esm2020/search-address/sk-search-address.model.mjs +8 -0
  142. package/esm2020/search-address/sk-search-address.module.mjs +52 -0
  143. package/esm2020/search-address/sk-search-address.service.mjs +65 -0
  144. package/esm2020/uploader/public_api.mjs +4 -0
  145. package/esm2020/uploader/sk-front-lib-uploader.mjs +5 -0
  146. package/esm2020/uploader/sk-uploader-file-item.model.mjs +95 -0
  147. package/esm2020/uploader/sk-uploader.animation.mjs +47 -0
  148. package/esm2020/uploader/sk-uploader.class.mjs +188 -0
  149. package/esm2020/uploader/sk-uploader.component.mjs +120 -0
  150. package/esm2020/uploader/sk-uploader.directive.mjs +44 -0
  151. package/esm2020/uploader/sk-uploader.module.mjs +62 -0
  152. package/fesm2015/sk-front-lib-api.mjs +218 -0
  153. package/fesm2015/sk-front-lib-api.mjs.map +1 -0
  154. package/fesm2015/sk-front-lib-article.mjs +762 -0
  155. package/fesm2015/sk-front-lib-article.mjs.map +1 -0
  156. package/fesm2015/sk-front-lib-crud.mjs +1529 -0
  157. package/fesm2015/sk-front-lib-crud.mjs.map +1 -0
  158. package/fesm2015/sk-front-lib-google-analytics.mjs +361 -0
  159. package/fesm2015/sk-front-lib-google-analytics.mjs.map +1 -0
  160. package/fesm2015/sk-front-lib-image.mjs +306 -0
  161. package/fesm2015/sk-front-lib-image.mjs.map +1 -0
  162. package/fesm2015/sk-front-lib-model.mjs +1171 -0
  163. package/fesm2015/sk-front-lib-model.mjs.map +1 -0
  164. package/fesm2015/sk-front-lib-search-address.mjs +188 -0
  165. package/fesm2015/sk-front-lib-search-address.mjs.map +1 -0
  166. package/fesm2015/sk-front-lib-uploader.mjs +551 -0
  167. package/fesm2015/sk-front-lib-uploader.mjs.map +1 -0
  168. package/fesm2015/sk-front-lib.mjs +19 -19
  169. package/fesm2015/sk-front-lib.mjs.map +1 -1
  170. package/fesm2020/sk-front-lib-api.mjs +216 -0
  171. package/fesm2020/sk-front-lib-api.mjs.map +1 -0
  172. package/fesm2020/sk-front-lib-article.mjs +771 -0
  173. package/fesm2020/sk-front-lib-article.mjs.map +1 -0
  174. package/fesm2020/sk-front-lib-crud.mjs +1525 -0
  175. package/fesm2020/sk-front-lib-crud.mjs.map +1 -0
  176. package/fesm2020/sk-front-lib-google-analytics.mjs +358 -0
  177. package/fesm2020/sk-front-lib-google-analytics.mjs.map +1 -0
  178. package/fesm2020/sk-front-lib-image.mjs +309 -0
  179. package/fesm2020/sk-front-lib-image.mjs.map +1 -0
  180. package/fesm2020/sk-front-lib-model.mjs +1171 -0
  181. package/fesm2020/sk-front-lib-model.mjs.map +1 -0
  182. package/fesm2020/sk-front-lib-search-address.mjs +186 -0
  183. package/fesm2020/sk-front-lib-search-address.mjs.map +1 -0
  184. package/fesm2020/sk-front-lib-uploader.mjs +549 -0
  185. package/fesm2020/sk-front-lib-uploader.mjs.map +1 -0
  186. package/fesm2020/sk-front-lib.mjs +19 -19
  187. package/fesm2020/sk-front-lib.mjs.map +1 -1
  188. package/google-analytics/google-analytics-router.module.d.ts +8 -0
  189. package/google-analytics/google-analytics.module.d.ts +10 -0
  190. package/google-analytics/initializers/google-analytics-router.initializer.d.ts +5 -0
  191. package/google-analytics/initializers/google-analytics.initializer.d.ts +4 -0
  192. package/google-analytics/interfaces/google-analytics-command.d.ts +4 -0
  193. package/google-analytics/interfaces/google-analytics-settings.d.ts +6 -0
  194. package/google-analytics/package.json +10 -0
  195. package/google-analytics/public_api.d.ts +10 -0
  196. package/google-analytics/services/google-analytics.service.d.ts +85 -0
  197. package/google-analytics/sk-front-lib-google-analytics.d.ts +5 -0
  198. package/google-analytics/tokens/google-analytics-settings-token.d.ts +3 -0
  199. package/google-analytics/types/ga-action.type.d.ts +1 -0
  200. package/google-analytics/types/ga-bind.type.d.ts +1 -0
  201. package/image/package.json +10 -0
  202. package/image/public_api.d.ts +3 -0
  203. package/image/sk-front-lib-image.d.ts +5 -0
  204. package/image/sk-image.component.d.ts +112 -0
  205. package/image/sk-image.module.d.ts +12 -0
  206. package/lib/sk-byte.pipe.d.ts +1 -1
  207. package/lib/sk-date-time.pipe.d.ts +1 -1
  208. package/lib/sk-date.pipe.d.ts +1 -1
  209. package/lib/sk-keys.pipe.d.ts +1 -1
  210. package/lib/sk-time.pipe.d.ts +1 -1
  211. package/model/lib/article.d.ts +13 -0
  212. package/model/lib/audit.d.ts +13 -0
  213. package/model/lib/auth.d.ts +8 -0
  214. package/model/lib/board.d.ts +39 -0
  215. package/model/lib/cart.d.ts +45 -0
  216. package/model/lib/comment.d.ts +43 -0
  217. package/model/lib/contact.d.ts +40 -0
  218. package/model/lib/coupon.d.ts +116 -0
  219. package/model/lib/document.d.ts +104 -0
  220. package/model/lib/etc.d.ts +220 -0
  221. package/model/lib/file.d.ts +24 -0
  222. package/model/lib/filetype.d.ts +10 -0
  223. package/model/lib/grid.d.ts +97 -0
  224. package/model/lib/nicepay.d.ts +39 -0
  225. package/model/lib/order.d.ts +163 -0
  226. package/model/lib/payment.d.ts +32 -0
  227. package/model/lib/point.d.ts +30 -0
  228. package/model/lib/product-series.d.ts +25 -0
  229. package/model/lib/product.d.ts +309 -0
  230. package/model/lib/promotion.d.ts +169 -0
  231. package/model/lib/shipping.d.ts +44 -0
  232. package/model/lib/tosspay.d.ts +29 -0
  233. package/model/lib/user.d.ts +54 -0
  234. package/model/package.json +10 -0
  235. package/model/public_api.d.ts +23 -0
  236. package/model/sk-front-lib-model.d.ts +5 -0
  237. package/package.json +67 -3
  238. package/search-address/dialog/dialog.component.d.ts +13 -0
  239. package/search-address/package.json +10 -0
  240. package/search-address/public_api.d.ts +3 -0
  241. package/search-address/sk-front-lib-search-address.d.ts +5 -0
  242. package/search-address/sk-search-address.directive.d.ts +15 -0
  243. package/search-address/sk-search-address.model.d.ts +40 -0
  244. package/search-address/sk-search-address.module.d.ts +14 -0
  245. package/search-address/sk-search-address.service.d.ts +13 -0
  246. package/uploader/package.json +10 -0
  247. package/uploader/public_api.d.ts +4 -0
  248. package/uploader/sk-front-lib-uploader.d.ts +5 -0
  249. package/uploader/sk-uploader-file-item.model.d.ts +29 -0
  250. package/uploader/sk-uploader.animation.d.ts +1 -0
  251. package/uploader/sk-uploader.class.d.ts +47 -0
  252. package/uploader/sk-uploader.component.d.ts +28 -0
  253. package/uploader/sk-uploader.directive.d.ts +15 -0
  254. package/uploader/sk-uploader.module.d.ts +16 -0
  255. /package/{index.d.ts → sk-front-lib.d.ts} +0 -0
@@ -0,0 +1,31 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { tap } from 'rxjs/operators';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./sk-auth.service";
5
+ import * as i2 from "@angular/router";
6
+ export class SkAuthGuard {
7
+ constructor(authService, router) {
8
+ this.authService = authService;
9
+ this.router = router;
10
+ }
11
+ canActivate(route, state) {
12
+ return this.authService.checkLogin()
13
+ .pipe(tap(logged => {
14
+ if (!logged) {
15
+ this.router.navigate(['/login', { returnUrl: state.url }]);
16
+ }
17
+ }));
18
+ }
19
+ canActivateChild(route, state) {
20
+ return this.canActivate(route, state);
21
+ }
22
+ }
23
+ SkAuthGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkAuthGuard, deps: [{ token: i1.SkAuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
24
+ SkAuthGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkAuthGuard, providedIn: 'root' });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkAuthGuard, decorators: [{
26
+ type: Injectable,
27
+ args: [{
28
+ providedIn: 'root'
29
+ }]
30
+ }], ctorParameters: function () { return [{ type: i1.SkAuthService }, { type: i2.Router }]; } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9jcnVkL3NyYy9zay1hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBTW5DLE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW9CLFdBQTBCLEVBQzFCLE1BQWM7UUFEZCxnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2xDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNqRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFO2FBQy9CLElBQUksQ0FDRCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNULElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUQ7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDdEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDOzt3R0FsQlEsV0FBVzs0R0FBWCxXQUFXLGNBRlIsTUFBTTsyRkFFVCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBDYW5BY3RpdmF0ZUNoaWxkLCBSb3V0ZXIsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2tBdXRoU2VydmljZX0gZnJvbSAnLi9zay1hdXRoLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNrQXV0aEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUsIENhbkFjdGl2YXRlQ2hpbGQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IFNrQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIH1cblxuICAgIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcChsb2dnZWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxvZ2dlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nLCB7cmV0dXJuVXJsOiBzdGF0ZS51cmx9XSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjYW5BY3RpdmF0ZUNoaWxkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5BY3RpdmF0ZShyb3V0ZSwgc3RhdGUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, of } from 'rxjs';
3
+ import { SkUser } from 'sk-front-lib/model';
4
+ import { catchError, map, switchMap, tap } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ import * as i2 from "sk-front-lib/api";
8
+ export class SkAuthService {
9
+ constructor(_router, apiService) {
10
+ this._router = _router;
11
+ this.apiService = apiService;
12
+ this.baseUrl = '/api/auth';
13
+ this._userinfo$ = new BehaviorSubject(new SkUser());
14
+ }
15
+ get userinfo$() {
16
+ return this._userinfo$.asObservable();
17
+ }
18
+ moveLoginPage() {
19
+ return this._router.navigate([this.apiService.loginUrl, { returnUrl: this._router.url }]);
20
+ }
21
+ login(data) {
22
+ return this.apiService.post(this.baseUrl + '/signin', data).pipe(tap(response => {
23
+ if (response.status === 200) {
24
+ this.apiService.setToken(response.data.token);
25
+ }
26
+ }), map(response => response.data));
27
+ }
28
+ logout() {
29
+ this._userinfo$.next(new SkUser());
30
+ this.apiService.clearToken();
31
+ }
32
+ loadMyInfo(refresh = false) {
33
+ if (this.apiService.getToken()) {
34
+ if (this._userinfo$.getValue().isAnonymous() || refresh) {
35
+ return this.apiService.get(this.baseUrl + '/me').pipe(map(result => !!result.data ? new SkUser(result.data) : new SkUser()), catchError(err => of(new SkUser())), tap(user => this._userinfo$.next(user)), switchMap(() => of(this._userinfo$.getValue())));
36
+ }
37
+ }
38
+ return of(this._userinfo$.getValue());
39
+ }
40
+ checkAdminAccessable() {
41
+ return this.loadMyInfo().pipe(map(result => result.isAdminAccessable()));
42
+ }
43
+ checkLogin() {
44
+ return this.loadMyInfo().pipe(map(result => !result.isAnonymous()));
45
+ }
46
+ sendMailForActivateAccount(email) {
47
+ return this.apiService.post(this.baseUrl + '/activate-account', { email }).pipe(map(response => response.data));
48
+ }
49
+ sendMailForResetPassword(email) {
50
+ return this.apiService.post(this.baseUrl + '/reset-password', { email }).pipe(map(response => response.data));
51
+ }
52
+ requestActivateAccount(data) {
53
+ return this.apiService.post(this.baseUrl + '/activate-account-complete', data).pipe(map(response => response.data));
54
+ }
55
+ updatePassword(data) {
56
+ return this.apiService.post(this.baseUrl + '/update-password', data).pipe(map(response => response.data));
57
+ }
58
+ }
59
+ SkAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkAuthService, deps: [{ token: i1.Router }, { token: i2.SkApiService }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ SkAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkAuthService, providedIn: 'root' });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkAuthService, decorators: [{
62
+ type: Injectable,
63
+ args: [{
64
+ providedIn: 'root'
65
+ }]
66
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.SkApiService }]; } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2NydWQvc3JjL3NrLWF1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBMkIsTUFBTSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFRLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBS3JFLE1BQU0sT0FBTyxhQUFhO0lBUXRCLFlBQW9CLE9BQWUsRUFDZixVQUF3QjtRQUR4QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQVJwQyxZQUFPLEdBQUcsV0FBVyxDQUFDO1FBQzlCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFTdkQsQ0FBQztJQVBELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBT0QsYUFBYTtRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWMsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxD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SSxDQUFDLE9BQU8sR0FBRyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBb0Y7UUFDL0YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBTSxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDMUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUNqQyxDQUFDO0lBQ04sQ0FBQzs7MEdBOUVRLGFBQWE7OEdBQWIsYUFBYSxjQUZWLE1BQU07MkZBRVQsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1NrQXBpU2VydmljZX0gZnJvbSAnc2stZnJvbnQtbGliL2FwaSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtJU2tSZXFMb2dpbiwgSVNrUmVzTG9naW4sIFNrVXNlcn0gZnJvbSAnc2stZnJvbnQtbGliL21vZGVsJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNrQXV0aFNlcnZpY2Uge1xuICAgIHByaXZhdGUgYmFzZVVybCA9ICcvYXBpL2F1dGgnO1xuICAgIF91c2VyaW5mbyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNrVXNlcj4obmV3IFNrVXNlcigpKTtcblxuICAgIGdldCB1c2VyaW5mbyQoKTogT2JzZXJ2YWJsZTxTa1VzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJpbmZvJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIGFwaVNlcnZpY2U6IFNrQXBpU2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgbW92ZUxvZ2luUGFnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbdGhpcy5hcGlTZXJ2aWNlLmxvZ2luVXJsLCB7cmV0dXJuVXJsOiB0aGlzLl9yb3V0ZXIudXJsfV0pO1xuICAgIH1cblxuICAgIGxvZ2luKGRhdGE6IElTa1JlcUxvZ2luKTogT2JzZXJ2YWJsZTxJU2tSZXNMb2dpbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3Q8SVNrUmVzTG9naW4+KHRoaXMuYmFzZVVybCArICcvc2lnbmluJywgZGF0YSkucGlwZShcbiAgICAgICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBpU2VydmljZS5zZXRUb2tlbihyZXNwb25zZS5kYXRhLnRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGxvZ291dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXNlcmluZm8kLm5leHQobmV3IFNrVXNlcigpKTtcbiAgICAgICAgdGhpcy5hcGlTZXJ2aWNlLmNsZWFyVG9rZW4oKTtcbiAgICB9XG5cbiAgICBsb2FkTXlJbmZvKHJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAodGhpcy5hcGlTZXJ2aWNlLmdldFRva2VuKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl91c2VyaW5mbyQuZ2V0VmFsdWUoKS5pc0Fub255bW91cygpIHx8IHJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldDxTa1VzZXI+KHRoaXMuYmFzZVVybCArICcvbWUnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVzdWx0ID0+ICEhcmVzdWx0LmRhdGEgPyBuZXcgU2tVc2VyKHJlc3VsdC5kYXRhKSA6IG5ldyBTa1VzZXIoKSksXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IG9mKG5ldyBTa1VzZXIoKSkpLFxuICAgICAgICAgICAgICAgICAgICB0YXAodXNlciA9PiB0aGlzLl91c2VyaW5mbyQubmV4dCh1c2VyKSksXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBvZih0aGlzLl91c2VyaW5mbyQuZ2V0VmFsdWUoKSkpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YodGhpcy5fdXNlcmluZm8kLmdldFZhbHVlKCkpO1xuICAgIH1cblxuICAgIGNoZWNrQWRtaW5BY2Nlc3NhYmxlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTXlJbmZvKCkucGlwZShtYXAocmVzdWx0ID0+IHJlc3VsdC5pc0FkbWluQWNjZXNzYWJsZSgpKSk7XG4gICAgfVxuXG4gICAgY2hlY2tMb2dpbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZE15SW5mbygpLnBpcGUobWFwKHJlc3VsdCA9PiAhcmVzdWx0LmlzQW5vbnltb3VzKCkpKTtcbiAgICB9XG5cbiAgICBzZW5kTWFpbEZvckFjdGl2YXRlQWNjb3VudChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0PHN0cmluZz4odGhpcy5iYXNlVXJsICsgJy9hY3RpdmF0ZS1hY2NvdW50Jywge2VtYWlsfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNlbmRNYWlsRm9yUmVzZXRQYXNzd29yZChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0PHN0cmluZz4odGhpcy5iYXNlVXJsICsgJy9yZXNldC1wYXNzd29yZCcsIHtlbWFpbH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXF1ZXN0QWN0aXZhdGVBY2NvdW50KGRhdGE6IHsgZW1haWw6IHN0cmluZywgYXV0aENvZGU6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0PHN0cmluZz4odGhpcy5iYXNlVXJsICsgJy9hY3RpdmF0ZS1hY2NvdW50LWNvbXBsZXRlJywgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHVwZGF0ZVBhc3N3b3JkKGRhdGE6IHsgZW1haWw6IHN0cmluZywgYXV0aENvZGU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZywgcGFzc3dvcmRDb25maXJtOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdDxhbnk+KHRoaXMuYmFzZVVybCArICcvdXBkYXRlLXBhc3N3b3JkJywgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
@@ -0,0 +1,54 @@
1
+ import { HttpParams } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import { ApiPageableParam } from 'sk-front-lib/api';
5
+ import { SkBoard } from 'sk-front-lib/model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "sk-front-lib/api";
8
+ export class SkBoardService {
9
+ constructor(_apiService) {
10
+ this._apiService = _apiService;
11
+ }
12
+ getBoard(url, params = new ApiPageableParam()) {
13
+ return this._apiService.get(`/api/public/boards/${url}`, params.buildHttpParams()).pipe(map(response => response.data));
14
+ }
15
+ getAdminBoard(id) {
16
+ return this._apiService.get(`/api/admin/boards/${id}`).pipe(map(response => new SkBoard(response.data)));
17
+ }
18
+ getBoards(showSupport = false) {
19
+ return this._apiService.get(`/api/public/boards`, new HttpParams().append('showSupport', String(showSupport))).pipe(map(response => response.data));
20
+ }
21
+ getAdminBoards(params = new ApiPageableParam()) {
22
+ return this._apiService.getPageable(`/api/admin/boards`, params.buildHttpParams()).pipe(map(response => response.data));
23
+ }
24
+ createAdminBoard(data) {
25
+ return this._apiService.post(`/api/admin/boards`, data).pipe(map(response => new SkBoard(response.data)));
26
+ }
27
+ updateBoard(id, data) {
28
+ return this._apiService.put(`/api/public/boards/${id}`, data).pipe(map(response => new SkBoard(response.data)));
29
+ }
30
+ updateAdminBoard(id, data) {
31
+ return this._apiService.put(`/api/admin/boards/${id}`, data).pipe(map(response => new SkBoard(response.data)));
32
+ }
33
+ getAllNoticeDocuments() {
34
+ return this._apiService.get(`/api/public/boards/notices`).pipe(map(response => (response.data || [])));
35
+ }
36
+ activateAdminBoards(boards) {
37
+ return this._apiService.put(`/api/admin/boards/activate/${boards.map(board => board.id).join(',')}`, null);
38
+ }
39
+ deactivateAdminBoards(boards) {
40
+ return this._apiService.put(`/api/admin/boards/deactivate/${boards.map(board => board.id).join(',')}`, null);
41
+ }
42
+ deleteAdminBoards(boards) {
43
+ return this._apiService.delete(`/api/admin/boards/delete/${boards.map(board => board.id).join(',')}`);
44
+ }
45
+ }
46
+ SkBoardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkBoardService, deps: [{ token: i1.SkApiService }], target: i0.ɵɵFactoryTarget.Injectable });
47
+ SkBoardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkBoardService, providedIn: 'root' });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkBoardService, decorators: [{
49
+ type: Injectable,
50
+ args: [{
51
+ providedIn: 'root'
52
+ }]
53
+ }], ctorParameters: function () { return [{ type: i1.SkApiService }]; } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYm9hcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9jcnVkL3NyYy9zay1ib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQWMsZ0JBQWdCLEVBQWUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQXdDLE9BQU8sRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7QUFNbEYsTUFBTSxPQUFPLGNBQWM7SUFFdkIsWUFBb0IsV0FBeUI7UUFBekIsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFFN0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXLEVBQUUsU0FBMkIsSUFBSSxnQkFBZ0IsRUFBRTtRQUNuRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFpQixzQkFBc0IsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNuRyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBVSxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM5QyxDQUFDO0lBQ04sQ0FBQztJQUVELFNBQVMsQ0FBQyxjQUF1QixLQUFLO1FBQ2xDLE9B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QWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtBcGlQYWdlYWJsZSwgQXBpUGFnZWFibGVQYXJhbSwgU2tBcGlTZXJ2aWNlfSBmcm9tICdzay1mcm9udC1saWIvYXBpJztcbmltcG9ydCB7SVNrQm9hcmREZXRhaWwsIElTa0RvY3VtZW50UHVibGljTGlzdCwgU2tCb2FyZH0gZnJvbSAnc2stZnJvbnQtbGliL21vZGVsJztcblxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNrQm9hcmRTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FwaVNlcnZpY2U6IFNrQXBpU2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgZ2V0Qm9hcmQodXJsOiBzdHJpbmcsIHBhcmFtczogQXBpUGFnZWFibGVQYXJhbSA9IG5ldyBBcGlQYWdlYWJsZVBhcmFtKCkpOiBPYnNlcnZhYmxlPElTa0JvYXJkRGV0YWlsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmdldDxJU2tCb2FyZERldGFpbD4oYC9hcGkvcHVibGljL2JvYXJkcy8ke3VybH1gLCBwYXJhbXMuYnVpbGRIdHRwUGFyYW1zKCkpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBZG1pbkJvYXJkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNrQm9hcmQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UuZ2V0PFNrQm9hcmQ+KGAvYXBpL2FkbWluL2JvYXJkcy8ke2lkfWApLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gbmV3IFNrQm9hcmQocmVzcG9uc2UuZGF0YSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0Qm9hcmRzKHNob3dTdXBwb3J0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPFNrQm9hcmRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXQ8U2tCb2FyZFtdPihgL2FwaS9wdWJsaWMvYm9hcmRzYCwgbmV3IEh0dHBQYXJhbXMoKS5hcHBlbmQoJ3Nob3dTdXBwb3J0JywgU3RyaW5nKHNob3dTdXBwb3J0KSkpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBZG1pbkJvYXJkcyhwYXJhbXM6IEFwaVBhZ2VhYmxlUGFyYW0gPSBuZXcgQXBpUGFnZWFibGVQYXJhbSgpKTogT2JzZXJ2YWJsZTxBcGlQYWdlYWJsZTxTa0JvYXJkPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXRQYWdlYWJsZTxTa0JvYXJkPihgL2FwaS9hZG1pbi9ib2FyZHNgLCBwYXJhbXMuYnVpbGRIdHRwUGFyYW1zKCkpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjcmVhdGVBZG1pbkJvYXJkKGRhdGE6IGFueSk6IE9ic2VydmFibGU8U2tCb2FyZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0PFNrQm9hcmQ+KGAvYXBpL2FkbWluL2JvYXJkc2AsIGRhdGEpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gbmV3IFNrQm9hcmQocmVzcG9uc2UuZGF0YSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXBkYXRlQm9hcmQoaWQ6IG51bWJlciwgZGF0YTogYW55KTogT2JzZXJ2YWJsZTxTa0JvYXJkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLnB1dDxTa0JvYXJkPihgL2FwaS9wdWJsaWMvYm9hcmRzLyR7aWR9YCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiBuZXcgU2tCb2FyZChyZXNwb25zZS5kYXRhKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBZG1pbkJvYXJkKGlkOiBudW1iZXIsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8U2tCb2FyZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wdXQ8U2tCb2FyZD4oYC9hcGkvYWRtaW4vYm9hcmRzLyR7aWR9YCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiBuZXcgU2tCb2FyZChyZXNwb25zZS5kYXRhKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBbGxOb3RpY2VEb2N1bWVudHMoKTogT2JzZXJ2YWJsZTxJU2tEb2N1bWVudFB1YmxpY0xpc3RbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXQ8SVNrRG9jdW1lbnRQdWJsaWNMaXN0W10+KGAvYXBpL3B1YmxpYy9ib2FyZHMvbm90aWNlc2ApLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHJlc3BvbnNlLmRhdGEgfHwgW10pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFjdGl2YXRlQWRtaW5Cb2FyZHMoYm9hcmRzOiBTa0JvYXJkW10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wdXQoYC9hcGkvYWRtaW4vYm9hcmRzL2FjdGl2YXRlLyR7Ym9hcmRzLm1hcChib2FyZCA9PiBib2FyZC5pZCkuam9pbignLCcpfWAsIG51bGwpO1xuICAgIH1cblxuICAgIGRlYWN0aXZhdGVBZG1pbkJvYXJkcyhib2FyZHM6IFNrQm9hcmRbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLnB1dChgL2FwaS9hZG1pbi9ib2FyZHMvZGVhY3RpdmF0ZS8ke2JvYXJkcy5tYXAoYm9hcmQgPT4gYm9hcmQuaWQpLmpvaW4oJywnKX1gLCBudWxsKTtcbiAgICB9XG5cbiAgICBkZWxldGVBZG1pbkJvYXJkcyhib2FyZHM6IFNrQm9hcmRbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmRlbGV0ZShgL2FwaS9hZG1pbi9ib2FyZHMvZGVsZXRlLyR7Ym9hcmRzLm1hcChib2FyZCA9PiBib2FyZC5pZCkuam9pbignLCcpfWApO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { ApiPageableParam } from 'sk-front-lib/api';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "sk-front-lib/api";
6
+ export class SkBrandService {
7
+ constructor(_apiService) {
8
+ this._apiService = _apiService;
9
+ }
10
+ getBrand(id) {
11
+ return this._apiService.get(`/api/public/brands/${id}`).pipe(map(response => response.data));
12
+ }
13
+ getAdminBrand(id) {
14
+ return this._apiService.get(`/api/admin/brands/${id}`).pipe(map(response => response.data));
15
+ }
16
+ getBrands(params = new ApiPageableParam()) {
17
+ return this._apiService.getPageable(`/api/public/brands`, params.buildHttpParams()).pipe(map(response => response.data));
18
+ }
19
+ getAllBrands(params = new ApiPageableParam()) {
20
+ return this._apiService.get(`/api/public/brands/all`, params.buildHttpParams()).pipe(map(response => response.data));
21
+ }
22
+ getAdminBrands(params = new ApiPageableParam()) {
23
+ return this._apiService.getPageable(`/api/admin/brands`, params.buildHttpParams()).pipe(map(response => response.data));
24
+ }
25
+ getAdminAllBrands() {
26
+ return this._apiService.get(`/api/admin/brands/all`).pipe(map(response => response.data));
27
+ }
28
+ createAdminBrand(data) {
29
+ return this._apiService.post(`/api/admin/brands`, data).pipe(map(response => response.data));
30
+ }
31
+ updateAdminBrand(id, data) {
32
+ return this._apiService.put(`/api/admin/brands/${id}`, data).pipe(map(response => response.data));
33
+ }
34
+ deleteAdminBrands(brands) {
35
+ return this._apiService.delete(`/api/admin/brands/delete/${brands.map(brand => brand.id).join(',')}`);
36
+ }
37
+ }
38
+ SkBrandService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkBrandService, deps: [{ token: i1.SkApiService }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ SkBrandService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkBrandService, providedIn: 'root' });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkBrandService, decorators: [{
41
+ type: Injectable,
42
+ args: [{
43
+ providedIn: 'root'
44
+ }]
45
+ }], ctorParameters: function () { return [{ type: i1.SkApiService }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYnJhbmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9jcnVkL3NyYy9zay1icmFuZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRW5DLE9BQU8sRUFBYyxnQkFBZ0IsRUFBZSxNQUFNLGtCQUFrQixDQUFDOzs7QUFPN0UsTUFBTSxPQUFPLGNBQWM7SUFFdkIsWUFBb0IsV0FBeUI7UUFBekIsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFFN0MsQ0FBQztJQUVELFFBQVEsQ0FBQyxFQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBVSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ2pFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFVLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUEyQixJQUFJLGdCQUFnQixFQUFFO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQVUsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM3RixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQTJCLElBQUksZ0JBQWdCLEVBQUU7UUFDMUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBWSx3QkFBd0IsRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsU0FBMkIsSUFBSSxnQkFBZ0IsRUFBRTtRQUM1RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFVLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDNUYsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUNqQyxDQUFDO0lBQ04sQ0FBQztJQUVELGlCQUFpQjtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQVksdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFTO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQVUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNqRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBVSxFQUFFLElBQVM7UUFDbEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBVSxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUN0RSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBaUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFHLENBQUM7OzJHQXhEUSxjQUFjOytHQUFkLGNBQWMsY0FGWCxNQUFNOzJGQUVULGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QXBpUGFnZWFibGUsIEFwaVBhZ2VhYmxlUGFyYW0sIFNrQXBpU2VydmljZX0gZnJvbSAnc2stZnJvbnQtbGliL2FwaSc7XG5pbXBvcnQge1NrQnJhbmR9IGZyb20gJ3NrLWZyb250LWxpYi9tb2RlbCc7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa0JyYW5kU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hcGlTZXJ2aWNlOiBTa0FwaVNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIGdldEJyYW5kKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNrQnJhbmQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UuZ2V0PFNrQnJhbmQ+KGAvYXBpL3B1YmxpYy9icmFuZHMvJHtpZH1gKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0QWRtaW5CcmFuZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTa0JyYW5kPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmdldDxTa0JyYW5kPihgL2FwaS9hZG1pbi9icmFuZHMvJHtpZH1gKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0QnJhbmRzKHBhcmFtczogQXBpUGFnZWFibGVQYXJhbSA9IG5ldyBBcGlQYWdlYWJsZVBhcmFtKCkpOiBPYnNlcnZhYmxlPEFwaVBhZ2VhYmxlPFNrQnJhbmQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmdldFBhZ2VhYmxlPFNrQnJhbmQ+KGAvYXBpL3B1YmxpYy9icmFuZHNgLCBwYXJhbXMuYnVpbGRIdHRwUGFyYW1zKCkpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRBbGxCcmFuZHMocGFyYW1zOiBBcGlQYWdlYWJsZVBhcmFtID0gbmV3IEFwaVBhZ2VhYmxlUGFyYW0oKSk6IE9ic2VydmFibGU8U2tCcmFuZFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLmdldDxTa0JyYW5kW10+KGAvYXBpL3B1YmxpYy9icmFuZHMvYWxsYCwgcGFyYW1zLmJ1aWxkSHR0cFBhcmFtcygpKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0QWRtaW5CcmFuZHMocGFyYW1zOiBBcGlQYWdlYWJsZVBhcmFtID0gbmV3IEFwaVBhZ2VhYmxlUGFyYW0oKSk6IE9ic2VydmFibGU8QXBpUGFnZWFibGU8U2tCcmFuZD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UuZ2V0UGFnZWFibGU8U2tCcmFuZD4oYC9hcGkvYWRtaW4vYnJhbmRzYCwgcGFyYW1zLmJ1aWxkSHR0cFBhcmFtcygpKS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmRhdGEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0QWRtaW5BbGxCcmFuZHMoKTogT2JzZXJ2YWJsZTxTa0JyYW5kW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UuZ2V0PFNrQnJhbmRbXT4oYC9hcGkvYWRtaW4vYnJhbmRzL2FsbGApLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjcmVhdGVBZG1pbkJyYW5kKGRhdGE6IGFueSk6IE9ic2VydmFibGU8U2tCcmFuZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0PFNrQnJhbmQ+KGAvYXBpL2FkbWluL2JyYW5kc2AsIGRhdGEpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuZGF0YSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1cGRhdGVBZG1pbkJyYW5kKGlkOiBudW1iZXIsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8U2tCcmFuZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wdXQ8U2tCcmFuZD4oYC9hcGkvYWRtaW4vYnJhbmRzLyR7aWR9YCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5kYXRhKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRlbGV0ZUFkbWluQnJhbmRzKGJyYW5kczogU2tCcmFuZFtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UuZGVsZXRlKGAvYXBpL2FkbWluL2JyYW5kcy9kZWxldGUvJHticmFuZHMubWFwKGJyYW5kID0+IGJyYW5kLmlkKS5qb2luKCcsJyl9YCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,256 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { HttpParams } from '@angular/common/http';
3
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
4
+ import { BehaviorSubject, of } from 'rxjs';
5
+ import { map, switchMap, take, tap } from 'rxjs/operators';
6
+ import { SkUtils } from 'sk-front-lib';
7
+ import { SkCart } from 'sk-front-lib/model';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "sk-front-lib/api";
10
+ import * as i2 from "./sk-auth.service";
11
+ export class SkCartApiService {
12
+ constructor(_apiService) {
13
+ this._apiService = _apiService;
14
+ }
15
+ load() {
16
+ return this._apiService.get(`/api/public/carts`).pipe(map(response => (response.data || []).map(item => new SkCart(item))));
17
+ }
18
+ add(cart) {
19
+ const data = {
20
+ product: cart.product.id,
21
+ selectedOptions: cart.options.map(item => ({
22
+ value: item.value.id,
23
+ option: item.option.id,
24
+ amount: item.amount
25
+ })),
26
+ amount: cart.amount,
27
+ selectedGifts: (cart.gifts || []).map(item => ({ id: item.id }))
28
+ };
29
+ return this._apiService.post(`/api/public/carts`, data).pipe(map(response => (response.data || []).map(item => new SkCart(item))));
30
+ }
31
+ clear() {
32
+ return undefined;
33
+ }
34
+ remove(carts) {
35
+ return this.removeByIdArray(carts.map(cart => cart.id));
36
+ }
37
+ removeByIdArray(idArray) {
38
+ const ids = idArray.filter(id => Number(id) >= 1);
39
+ return this._apiService.delete(`/api/public/carts`, new HttpParams().append('target', ids.join(','))).pipe(map(response => (response.data || []).map(item => new SkCart(item))));
40
+ }
41
+ update(cart) {
42
+ return this._apiService.put(`/api/public/carts/${cart.id}`, { amount: cart.amount }).pipe(map(response => (response.data || []).map(item => new SkCart(item))));
43
+ }
44
+ }
45
+ SkCartApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartApiService, deps: [{ token: i1.SkApiService }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ SkCartApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartApiService, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartApiService, decorators: [{
48
+ type: Injectable,
49
+ args: [{
50
+ providedIn: 'root'
51
+ }]
52
+ }], ctorParameters: function () { return [{ type: i1.SkApiService }]; } });
53
+ export class SkCartLocalService {
54
+ constructor(platformId) {
55
+ this.platformId = platformId;
56
+ this.isPlatformBrowser = isPlatformBrowser(this.platformId);
57
+ }
58
+ loadRaw() {
59
+ let data = [];
60
+ try {
61
+ if (this.isPlatformBrowser) {
62
+ data = (SkUtils.decodeBase64(localStorage.getItem('cartData')) || []).map(item => new SkCart(item));
63
+ }
64
+ }
65
+ catch (e) {
66
+ data = [];
67
+ }
68
+ return data;
69
+ }
70
+ load() {
71
+ return of(this.loadRaw());
72
+ }
73
+ add(cart) {
74
+ cart.id = Math.random();
75
+ const cartList = [cart, ...this.loadRaw()];
76
+ localStorage.setItem('cartData', SkUtils.encodeBase64(cartList));
77
+ return of(cartList);
78
+ }
79
+ clear() {
80
+ const cartList = [];
81
+ localStorage.setItem('cartData', SkUtils.encodeBase64(cartList));
82
+ return of(cartList);
83
+ }
84
+ remove(carts) {
85
+ return this.removeByIdArray(carts.map(cart => cart.id));
86
+ }
87
+ removeByIdArray(idArray) {
88
+ const removedItems = this.loadRaw().filter(item => idArray.findIndex(id => id === item.id) < 0);
89
+ localStorage.setItem('cartData', SkUtils.encodeBase64(removedItems));
90
+ return of(removedItems);
91
+ }
92
+ update(cart) {
93
+ const cartList = this.loadRaw();
94
+ const index = this.loadRaw().findIndex(item => item.id === cart.id);
95
+ if (index > -1) {
96
+ cartList[index] = cart;
97
+ localStorage.setItem('cartData', SkUtils.encodeBase64(cartList));
98
+ }
99
+ return of(cartList);
100
+ }
101
+ }
102
+ SkCartLocalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartLocalService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
103
+ SkCartLocalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartLocalService, providedIn: 'root' });
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartLocalService, decorators: [{
105
+ type: Injectable,
106
+ args: [{
107
+ providedIn: 'root'
108
+ }]
109
+ }], ctorParameters: function () { return [{ type: Object, decorators: [{
110
+ type: Inject,
111
+ args: [PLATFORM_ID]
112
+ }] }]; } });
113
+ export class SkCartService {
114
+ constructor(_authService, _apiService, _apiCartService, _apiLocalService) {
115
+ this._authService = _authService;
116
+ this._apiService = _apiService;
117
+ this._apiCartService = _apiCartService;
118
+ this._apiLocalService = _apiLocalService;
119
+ this._cartItems$ = new BehaviorSubject([]);
120
+ this.cartItems$ = this._cartItems$.asObservable();
121
+ this._selectedItems$ = new BehaviorSubject([]);
122
+ this.selectedItems$ = this._selectedItems$.asObservable();
123
+ // this._myInfoSubscription = this._authService.userinfo$.subscribe(() => {
124
+ // this.load();
125
+ // });
126
+ }
127
+ get cartItems() {
128
+ return this._cartItems$.getValue();
129
+ }
130
+ set cartItems(value) {
131
+ this._cartItems$.next(value);
132
+ }
133
+ get selectedItems() {
134
+ return this._selectedItems$.getValue();
135
+ }
136
+ set selectedItems(value) {
137
+ this._selectedItems$.next(value);
138
+ }
139
+ load() {
140
+ this._authService.checkLogin()
141
+ .pipe(switchMap(result => result ? this._apiCartService.load() : this._apiLocalService.load()))
142
+ .subscribe(result => this._cartItems$.next(result));
143
+ }
144
+ clear() {
145
+ this._authService.checkLogin()
146
+ .pipe(switchMap(result => result ? this._apiCartService.clear() : this._apiLocalService.clear()))
147
+ .subscribe(result => this._cartItems$.next(result));
148
+ }
149
+ add(cart) {
150
+ return this._authService.checkLogin()
151
+ .pipe(switchMap(result => result ? this._apiCartService.add(cart) : this._apiLocalService.add(cart)), tap(result => this._cartItems$.next(result)));
152
+ }
153
+ remove(carts) {
154
+ this._authService.checkLogin()
155
+ .pipe(switchMap(result => result ? this._apiCartService.remove(carts) : this._apiLocalService.remove(carts)))
156
+ .subscribe(result => {
157
+ this._cartItems$.next(result);
158
+ this.checkSelectedItems();
159
+ });
160
+ }
161
+ removeByIdArray(idArray) {
162
+ this._authService.checkLogin()
163
+ .pipe(switchMap(result => result ? this._apiCartService.removeByIdArray(idArray) : this._apiLocalService.removeByIdArray(idArray)))
164
+ .subscribe(result => {
165
+ this._cartItems$.next(result);
166
+ this.checkSelectedItems();
167
+ });
168
+ }
169
+ update(cart, errorCallback) {
170
+ this._authService.checkLogin()
171
+ .pipe(switchMap(result => result ? this._apiCartService.update(cart) : this._apiLocalService.update(cart)))
172
+ .subscribe(result => this._cartItems$.next(result), errorCallback);
173
+ }
174
+ getCart(id) {
175
+ return this._cartItems$.getValue().find(value => value.id === id);
176
+ }
177
+ checkSelectedItems() {
178
+ this.selectedItems = this.selectedItems.filter(value => !!this.getCart(value));
179
+ }
180
+ selectAll() {
181
+ this.selectedItems = this._cartItems$.getValue().map(item => item.id);
182
+ }
183
+ deSelectAll() {
184
+ this.selectedItems = [];
185
+ }
186
+ toggleSelectAll() {
187
+ if (this.selectedItems.length === this._cartItems$.getValue().length) {
188
+ this.deSelectAll();
189
+ }
190
+ else {
191
+ this.selectAll();
192
+ }
193
+ }
194
+ toggleSelect(cart) {
195
+ const targetIndex = this.selectedItems.findIndex(item => item === cart.id);
196
+ if (targetIndex === -1) {
197
+ this.selectedItems = [...this.selectedItems, cart.id];
198
+ }
199
+ else {
200
+ const target = this.selectedItems;
201
+ target.splice(targetIndex, 1);
202
+ this.selectedItems = target;
203
+ }
204
+ }
205
+ isSelected(cart) {
206
+ return this.selectedItems.findIndex(item => item === cart.id) > -1;
207
+ }
208
+ isSelectedAll() {
209
+ return this.selectedItems.length > 0 && this.selectedItems.length === this._cartItems$.getValue().length;
210
+ }
211
+ isIntermediate() {
212
+ return this.selectedItems.length > 0 && this.selectedItems.length !== this._cartItems$.getValue().length;
213
+ }
214
+ createOrder(paymentType, affiliateKey) {
215
+ return this._authService.checkLogin()
216
+ .pipe(take(1), map(result => {
217
+ if (result) {
218
+ return {
219
+ apiUrl: `/api/public/orders/from-cart`,
220
+ items: this.selectedItems
221
+ };
222
+ }
223
+ else {
224
+ return {
225
+ apiUrl: `/api/public/orders/from-data`,
226
+ items: this.selectedItems
227
+ .map(id => this.getCart(id))
228
+ .map(cart => ({
229
+ id: cart.id,
230
+ productId: cart.product.id,
231
+ amount: cart.amount,
232
+ options: (cart.options || []).map(option => ({
233
+ optionId: option.option.id,
234
+ valueId: option.value.id,
235
+ amount: option.amount || 1
236
+ })),
237
+ gifts: (cart.gifts || []).map(item => ({ id: item.id }))
238
+ }))
239
+ };
240
+ }
241
+ }), switchMap(result => this._apiService.post(result.apiUrl, {
242
+ items: result.items,
243
+ affiliateKey,
244
+ paymentType
245
+ })), map(result => result.data));
246
+ }
247
+ }
248
+ SkCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartService, deps: [{ token: i2.SkAuthService }, { token: i1.SkApiService }, { token: SkCartApiService }, { token: SkCartLocalService }], target: i0.ɵɵFactoryTarget.Injectable });
249
+ SkCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartService, providedIn: 'root' });
250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkCartService, decorators: [{
251
+ type: Injectable,
252
+ args: [{
253
+ providedIn: 'root'
254
+ }]
255
+ }], ctorParameters: function () { return [{ type: i2.SkAuthService }, { type: i1.SkApiService }, { type: SkCartApiService }, { type: SkCartLocalService }]; } });
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2NydWQvc3JjL3NrLWNhcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBQyxlQUFlLEVBQWMsRUFBRSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXJDLE9BQU8sRUFBZ0IsTUFBTSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFtQnpELE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsWUFBb0IsV0FBeUI7UUFBekIsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFFN0MsQ0FBQztJQUVELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFXLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUMzRCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN2RSxDQUFDO0lBQ04sQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZO1FBQ1osTUFBTSxJQUFJLEdBQWtCO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEIsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDcEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ3RCLENBQUMsQ0FBQztZQUNILE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7U0FDakUsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQVcsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNsRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN2RSxDQUFDO0lBQ04sQ0FBQztJQUVELEtBQUs7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWlCO1FBQzdCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBVyxtQkFBbUIsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoSCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUN2RSxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBVyxxQkFBcUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDdkUsQ0FBQztJQUNOLENBQUM7OzZHQWhEUSxnQkFBZ0I7aUhBQWhCLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7QUF1REQsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixZQUF5QyxVQUFrQjtRQUFsQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ3ZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJO1lBQ0EsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3hCLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDdkc7U0FDSjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUk7UUFDQSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDWixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixNQUFNLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNqRSxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSztRQUNELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDakUsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFpQjtRQUM3QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNmLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDWixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7OytHQXpEUSxrQkFBa0Isa0JBSVAsV0FBVzttSEFKdEIsa0JBQWtCLGNBRmYsTUFBTTsyRkFFVCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzBEQUt3RCxNQUFNOzBCQUE5QyxNQUFNOzJCQUFDLFdBQVc7O0FBMkRuQyxNQUFNLE9BQU8sYUFBYTtJQTBCdEIsWUFBb0IsWUFBMkIsRUFDM0IsV0FBeUIsRUFDekIsZUFBaUMsRUFDakMsZ0JBQW9DO1FBSHBDLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9CO1FBM0JoRCxnQkFBVyxHQUE4QixJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxlQUFVLEdBQXlCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFVM0Usb0JBQWUsR0FBOEIsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsbUJBQWMsR0FBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQWlCdkYsMkVBQTJFO1FBQzNFLG1CQUFtQjtRQUNuQixNQUFNO0lBQ1YsQ0FBQztJQTdCRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBS0QsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFjRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7YUFDekIsSUFBSSxDQUNELFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDLENBQzNGO2FBQ0EsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ2hHLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTthQUNoQyxJQUFJLENBQ0QsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM5RixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0lBQ1YsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFlO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDNUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFpQjtRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTthQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2xJLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWSxFQUFFLGFBQW9DO1FBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO2FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDMUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFVO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNsRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUNyQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQztJQUM3RyxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzdHLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUIsRUFBRSxZQUFvQjtRQUNqRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFO2FBQ2hDLElBQUksQ0FDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1QsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsT0FBTztvQkFDSCxNQUFNLEVBQUUsOEJBQThCO29CQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWE7aUJBQzVCLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxPQUFPO29CQUNILE1BQU0sRUFBRSw4QkFBOEI7b0JBQ3RDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYTt5QkFDcEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzt5QkFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDVixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7d0JBQ1gsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO3dCQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pDLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7NEJBQzFCLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7NEJBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUM7eUJBQzdCLENBQUMsQ0FBQzt3QkFDSCxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7cUJBQ3pELENBQUMsQ0FBQztpQkFDVixDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBTSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQzFELEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixZQUFZO1lBQ1osV0FBVztTQUNkLENBQUMsQ0FBQyxFQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztJQUNWLENBQUM7OzBHQXJLUSxhQUFhLDJFQTRCZSxnQkFBZ0IsYUFDZixrQkFBa0I7OEdBN0IvQyxhQUFhLGNBRlYsTUFBTTsyRkFFVCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjtpSEE2QndDLGdCQUFnQixZQUNmLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNQbGF0Zm9ybUJyb3dzZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cblxuaW1wb3J0IHtIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2tVdGlsc30gZnJvbSAnc2stZnJvbnQtbGliJztcbmltcG9ydCB7U2tBcGlTZXJ2aWNlfSBmcm9tICdzay1mcm9udC1saWIvYXBpJztcbmltcG9ydCB7SVNrQ2FydENyZWF0ZSwgU2tDYXJ0fSBmcm9tICdzay1mcm9udC1saWIvbW9kZWwnO1xuaW1wb3J0IHtTa0F1dGhTZXJ2aWNlfSBmcm9tICcuL3NrLWF1dGguc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FydEFic3RyYWN0U2VydmljZSB7XG4gICAgbG9hZCgpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPjtcblxuICAgIGNsZWFyKCk6IE9ic2VydmFibGU8U2tDYXJ0W10+O1xuXG4gICAgYWRkKGNhcnQ6IFNrQ2FydCk6IE9ic2VydmFibGU8U2tDYXJ0W10+O1xuXG4gICAgcmVtb3ZlKGNhcnRzOiBTa0NhcnRbXSk6IE9ic2VydmFibGU8U2tDYXJ0W10+O1xuXG4gICAgdXBkYXRlKGNhcnQ6IFNrQ2FydCk6IE9ic2VydmFibGU8U2tDYXJ0W10+O1xufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2tDYXJ0QXBpU2VydmljZSBpbXBsZW1lbnRzIENhcnRBYnN0cmFjdFNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXBpU2VydmljZTogU2tBcGlTZXJ2aWNlKSB7XG5cbiAgICB9XG5cbiAgICBsb2FkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5nZXQ8U2tDYXJ0W10+KGAvYXBpL3B1YmxpYy9jYXJ0c2ApLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4gKHJlc3BvbnNlLmRhdGEgfHwgW10pLm1hcChpdGVtID0+IG5ldyBTa0NhcnQoaXRlbSkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFkZChjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIGNvbnN0IGRhdGE6IElTa0NhcnRDcmVhdGUgPSB7XG4gICAgICAgICAgICBwcm9kdWN0OiBjYXJ0LnByb2R1Y3QuaWQsXG4gICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnM6IGNhcnQub3B0aW9ucy5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLmlkLFxuICAgICAgICAgICAgICAgIG9wdGlvbjogaXRlbS5vcHRpb24uaWQsXG4gICAgICAgICAgICAgICAgYW1vdW50OiBpdGVtLmFtb3VudFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgYW1vdW50OiBjYXJ0LmFtb3VudCxcbiAgICAgICAgICAgIHNlbGVjdGVkR2lmdHM6IChjYXJ0LmdpZnRzIHx8IFtdKS5tYXAoaXRlbSA9PiAoe2lkOiBpdGVtLmlkfSkpXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UucG9zdDxTa0NhcnRbXT4oYC9hcGkvcHVibGljL2NhcnRzYCwgZGF0YSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAocmVzcG9uc2UuZGF0YSB8fCBbXSkubWFwKGl0ZW0gPT4gbmV3IFNrQ2FydChpdGVtKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2xlYXIoKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJlbW92ZShjYXJ0czogU2tDYXJ0W10pOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbW92ZUJ5SWRBcnJheShjYXJ0cy5tYXAoY2FydCA9PiBjYXJ0LmlkKSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQnlJZEFycmF5KGlkQXJyYXk6IG51bWJlcltdKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjb25zdCBpZHMgPSBpZEFycmF5LmZpbHRlcihpZCA9PiBOdW1iZXIoaWQpID49IDEpO1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5kZWxldGU8U2tDYXJ0W10+KGAvYXBpL3B1YmxpYy9jYXJ0c2AsIG5ldyBIdHRwUGFyYW1zKCkuYXBwZW5kKCd0YXJnZXQnLCBpZHMuam9pbignLCcpKSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAocmVzcG9uc2UuZGF0YSB8fCBbXSkubWFwKGl0ZW0gPT4gbmV3IFNrQ2FydChpdGVtKSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNhcnQ6IFNrQ2FydCk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaVNlcnZpY2UucHV0PFNrQ2FydFtdPihgL2FwaS9wdWJsaWMvY2FydHMvJHtjYXJ0LmlkfWAsIHthbW91bnQ6IGNhcnQuYW1vdW50fSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwb25zZSA9PiAocmVzcG9uc2UuZGF0YSB8fCBbXSkubWFwKGl0ZW0gPT4gbmV3IFNrQ2FydChpdGVtKSkpXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNrQ2FydExvY2FsU2VydmljZSBpbXBsZW1lbnRzIENhcnRBYnN0cmFjdFNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBpc1BsYXRmb3JtQnJvd3NlcjogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuaXNQbGF0Zm9ybUJyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuICAgIH1cblxuICAgIGxvYWRSYXcoKSB7XG4gICAgICAgIGxldCBkYXRhID0gW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1BsYXRmb3JtQnJvd3Nlcikge1xuICAgICAgICAgICAgICAgIGRhdGEgPSAoU2tVdGlscy5kZWNvZGVCYXNlNjQobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2NhcnREYXRhJykpIHx8IFtdKS5tYXAoaXRlbSA9PiBuZXcgU2tDYXJ0KGl0ZW0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgbG9hZCgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMubG9hZFJhdygpKTtcbiAgICB9XG5cbiAgICBhZGQoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjYXJ0LmlkID0gTWF0aC5yYW5kb20oKTtcbiAgICAgICAgY29uc3QgY2FydExpc3QgPSBbY2FydCwgLi4udGhpcy5sb2FkUmF3KCldO1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnY2FydERhdGEnLCBTa1V0aWxzLmVuY29kZUJhc2U2NChjYXJ0TGlzdCkpO1xuICAgICAgICByZXR1cm4gb2YoY2FydExpc3QpO1xuICAgIH1cblxuICAgIGNsZWFyKCk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgY29uc3QgY2FydExpc3QgPSBbXTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2NhcnREYXRhJywgU2tVdGlscy5lbmNvZGVCYXNlNjQoY2FydExpc3QpKTtcbiAgICAgICAgcmV0dXJuIG9mKGNhcnRMaXN0KTtcbiAgICB9XG5cbiAgICByZW1vdmUoY2FydHM6IFNrQ2FydFtdKTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdmVCeUlkQXJyYXkoY2FydHMubWFwKGNhcnQgPT4gY2FydC5pZCkpO1xuICAgIH1cblxuICAgIHJlbW92ZUJ5SWRBcnJheShpZEFycmF5OiBudW1iZXJbXSk6IE9ic2VydmFibGU8U2tDYXJ0W10+IHtcbiAgICAgICAgY29uc3QgcmVtb3ZlZEl0ZW1zID0gdGhpcy5sb2FkUmF3KCkuZmlsdGVyKGl0ZW0gPT4gaWRBcnJheS5maW5kSW5kZXgoaWQgPT4gaWQgPT09IGl0ZW0uaWQpIDwgMCk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0RGF0YScsIFNrVXRpbHMuZW5jb2RlQmFzZTY0KHJlbW92ZWRJdGVtcykpO1xuICAgICAgICByZXR1cm4gb2YocmVtb3ZlZEl0ZW1zKTtcbiAgICB9XG5cbiAgICB1cGRhdGUoY2FydDogU2tDYXJ0KTogT2JzZXJ2YWJsZTxTa0NhcnRbXT4ge1xuICAgICAgICBjb25zdCBjYXJ0TGlzdCA9IHRoaXMubG9hZFJhdygpO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubG9hZFJhdygpLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGNhcnQuaWQpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgY2FydExpc3RbaW5kZXhdID0gY2FydDtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdjYXJ0RGF0YScsIFNrVXRpbHMuZW5jb2RlQmFzZTY0KGNhcnRMaXN0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2YoY2FydExpc3QpO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTa0NhcnRTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgX2NhcnRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxTa0NhcnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2FydEl0ZW1zJDogT2JzZXJ2YWJsZTxTa0NhcnRbXT4gPSB0aGlzLl9jYXJ0SXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZ2V0IGNhcnRJdGVtcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBzZXQgY2FydEl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2NhcnRJdGVtcyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtcyQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXJbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcltdPihbXSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXMkOiBPYnNlcnZhYmxlPG51bWJlcltdPiA9IHRoaXMuX3NlbGVjdGVkSXRlbXMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgZ2V0IHNlbGVjdGVkSXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW1zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBzZWxlY3RlZEl0ZW1zKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbXMkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX215SW5mb1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYXV0aFNlcnZpY2U6IFNrQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfYXBpU2VydmljZTogU2tBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FwaUNhcnRTZXJ2aWNlOiBTa0NhcnRBcGlTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FwaUxvY2FsU2VydmljZTogU2tDYXJ0TG9jYWxTZXJ2aWNlKSB7XG5cbiAgICAgICAgLy8gdGhpcy5fbXlJbmZvU3Vic2NyaXB0aW9uID0gdGhpcy5fYXV0aFNlcnZpY2UudXNlcmluZm8kLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIC8vICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgbG9hZCgpIHtcbiAgICAgICAgdGhpcy5fYXV0aFNlcnZpY2UuY2hlY2tMb2dpbigpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAocmVzdWx0ID0+IHJlc3VsdCA/IHRoaXMuX2FwaUNhcnRTZXJ2aWNlLmxvYWQoKSA6IHRoaXMuX2FwaUxvY2FsU2VydmljZS5sb2FkKCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KSk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS5jbGVhcigpIDogdGhpcy5fYXBpTG9jYWxTZXJ2aWNlLmNsZWFyKCkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4gdGhpcy5fY2FydEl0ZW1zJC5uZXh0KHJlc3VsdCkpO1xuICAgIH1cblxuICAgIGFkZChjYXJ0OiBTa0NhcnQpOiBPYnNlcnZhYmxlPFNrQ2FydFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChyZXN1bHQgPT4gcmVzdWx0ID8gdGhpcy5fYXBpQ2FydFNlcnZpY2UuYWRkKGNhcnQpIDogdGhpcy5fYXBpTG9jYWxTZXJ2aWNlLmFkZChjYXJ0KSksXG4gICAgICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcmVtb3ZlKGNhcnRzOiBTa0NhcnRbXSkge1xuICAgICAgICB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcChyZXN1bHQgPT4gcmVzdWx0ID8gdGhpcy5fYXBpQ2FydFNlcnZpY2UucmVtb3ZlKGNhcnRzKSA6IHRoaXMuX2FwaUxvY2FsU2VydmljZS5yZW1vdmUoY2FydHMpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlQnlJZEFycmF5KGlkQXJyYXk6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS5yZW1vdmVCeUlkQXJyYXkoaWRBcnJheSkgOiB0aGlzLl9hcGlMb2NhbFNlcnZpY2UucmVtb3ZlQnlJZEFycmF5KGlkQXJyYXkpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYXJ0SXRlbXMkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlKGNhcnQ6IFNrQ2FydCwgZXJyb3JDYWxsYmFjaz86IChlcnJvcjogYW55KSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX2F1dGhTZXJ2aWNlLmNoZWNrTG9naW4oKVxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKHJlc3VsdCA9PiByZXN1bHQgPyB0aGlzLl9hcGlDYXJ0U2VydmljZS51cGRhdGUoY2FydCkgOiB0aGlzLl9hcGlMb2NhbFNlcnZpY2UudXBkYXRlKGNhcnQpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHRoaXMuX2NhcnRJdGVtcyQubmV4dChyZXN1bHQpLCBlcnJvckNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBnZXRDYXJ0KGlkOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKS5maW5kKHZhbHVlID0+IHZhbHVlLmlkID09PSBpZCk7XG4gICAgfVxuXG4gICAgY2hlY2tTZWxlY3RlZEl0ZW1zKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKHZhbHVlID0+ICEhdGhpcy5nZXRDYXJ0KHZhbHVlKSk7XG4gICAgfVxuXG4gICAgc2VsZWN0QWxsKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLl9jYXJ0SXRlbXMkLmdldFZhbHVlKCkubWFwKGl0ZW0gPT4gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgZGVTZWxlY3RBbGwoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIH1cblxuICAgIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPT09IHRoaXMuX2NhcnRJdGVtcyQuZ2V0VmFsdWUoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZGVTZWxlY3RBbGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0QWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b2dnbGVTZWxlY3QoY2FydDogU2tDYXJ0KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IGNhcnQuaWQpO1xuICAgICAgICBpZiAodGFyZ2V0SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zLCBjYXJ0LmlkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgICAgIHRhcmdldC5zcGxpY2UodGFyZ2V0SW5kZXgsIDEpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGFyZ2V0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZChjYXJ0OiBTa0NhcnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBjYXJ0LmlkKSA+IC0xO1xuICAgIH1cblxuICAgIGlzU2VsZWN0ZWRBbGwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCAmJiB0aGlzLnNlbGVjdGVkSXRlbXMubGVuZ3RoID09PSB0aGlzLl9jYXJ0SXRlbXMkLmdldFZhbHVlKCkubGVuZ3RoO1xuICAgIH1cblxuICAgIGlzSW50ZXJtZWRpYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCAhPT0gdGhpcy5fY2FydEl0ZW1zJC5nZXRWYWx1ZSgpLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjcmVhdGVPcmRlcihwYXltZW50VHlwZTogc3RyaW5nLCBhZmZpbGlhdGVLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5jaGVja0xvZ2luKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpVXJsOiBgL2FwaS9wdWJsaWMvb3JkZXJzL2Zyb20tY2FydGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpVXJsOiBgL2FwaS9wdWJsaWMvb3JkZXJzL2Zyb20tZGF0YWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKGlkID0+IHRoaXMuZ2V0Q2FydChpZCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoY2FydCA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGNhcnQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWQ6IGNhcnQucHJvZHVjdC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogY2FydC5hbW91bnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiAoY2FydC5vcHRpb25zIHx8IFtdKS5tYXAob3B0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uSWQ6IG9wdGlvbi5vcHRpb24uaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVJZDogb3B0aW9uLnZhbHVlLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogb3B0aW9uLmFtb3VudCB8fCAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaWZ0czogKGNhcnQuZ2lmdHMgfHwgW10pLm1hcChpdGVtID0+ICh7aWQ6IGl0ZW0uaWR9KSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHJlc3VsdCA9PiB0aGlzLl9hcGlTZXJ2aWNlLnBvc3Q8YW55PihyZXN1bHQuYXBpVXJsLCB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiByZXN1bHQuaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIGFmZmlsaWF0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgcGF5bWVudFR5cGVcbiAgICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiByZXN1bHQuZGF0YSlcbiAgICAgICAgICAgICk7XG4gICAgfVxufVxuXG5cblxuIl19