@lenne.tech/ng-base 15.0.0-beta-3 → 16.0.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 (239) hide show
  1. package/base-components/base-components.module.d.ts +1 -2
  2. package/base-components/components/checkbox/checkbox.component.d.ts +1 -1
  3. package/base-components/components/delete-account/delete-account.component.d.ts +1 -1
  4. package/base-components/components/fab-button/fab-button.component.d.ts +1 -1
  5. package/base-components/components/input/input.component.d.ts +1 -1
  6. package/base-components/components/loading-bar/loading-bar.component.d.ts +1 -1
  7. package/base-components/components/model-form/model-form-base.component.d.ts +1 -1
  8. package/base-components/components/model-form/model-form.component.d.ts +1 -1
  9. package/base-components/components/model-form-sub/model-form-sub.component.d.ts +1 -1
  10. package/base-components/components/model-table/model-table.component.d.ts +1 -1
  11. package/base-components/components/refence-input/refence-input.component.d.ts +1 -1
  12. package/base-components/components/select/select.component.d.ts +1 -1
  13. package/base-components/components/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  14. package/base-components/components/tags/tags.component.d.ts +1 -1
  15. package/base-components/components/textarea/textarea.component.d.ts +1 -1
  16. package/base-components/components/toast/toast.component.d.ts +1 -1
  17. package/base-components/components/upload-image/upload-image.component.d.ts +1 -1
  18. package/base-components/directives/context-menu.directive.d.ts +1 -1
  19. package/base-components/directives/sort.directive.d.ts +1 -1
  20. package/base-prototype/pages/login/login.component.d.ts +1 -1
  21. package/base-prototype/pages/profile/profile.component.d.ts +1 -1
  22. package/base-prototype/pages/set-password/set-password.component.d.ts +1 -1
  23. package/esm2022/base-cms/base-cms-routing.module.mjs +33 -0
  24. package/esm2022/base-cms/base-cms.module.mjs +61 -0
  25. package/esm2022/base-cms/pages/base-cms/base-cms.component.mjs +233 -0
  26. package/esm2022/base-components/base-components.module.mjs +123 -0
  27. package/esm2022/base-components/components/breadcrumb/breadcrumb.component.mjs +21 -0
  28. package/esm2022/base-components/components/change-password/change-password.component.mjs +96 -0
  29. package/esm2022/base-components/components/checkbox/checkbox.component.mjs +35 -0
  30. package/esm2022/base-components/components/delete-account/delete-account.component.mjs +61 -0
  31. package/esm2022/base-components/components/fab-button/fab-button.component.mjs +21 -0
  32. package/esm2022/base-components/components/input/input.component.mjs +72 -0
  33. package/esm2022/base-components/components/loading-bar/loading-bar.component.mjs +39 -0
  34. package/esm2022/base-components/components/model-form/model-form-base.component.mjs +145 -0
  35. package/esm2022/base-components/components/model-form/model-form.component.mjs +585 -0
  36. package/esm2022/base-components/components/model-form-sub/model-form-sub.component.mjs +111 -0
  37. package/esm2022/base-components/components/model-table/model-table.component.mjs +470 -0
  38. package/esm2022/base-components/components/refence-input/refence-input.component.mjs +273 -0
  39. package/esm2022/base-components/components/select/select.component.mjs +59 -0
  40. package/esm2022/base-components/components/skeleton-loader/skeleton-loader.component.mjs +32 -0
  41. package/esm2022/base-components/components/tags/tags.component.mjs +224 -0
  42. package/esm2022/base-components/components/textarea/textarea.component.mjs +76 -0
  43. package/esm2022/base-components/components/toast/toast.component.mjs +70 -0
  44. package/esm2022/base-components/components/upload-image/upload-image.component.mjs +343 -0
  45. package/esm2022/base-components/directives/back-button.directive.mjs +25 -0
  46. package/esm2022/base-components/directives/context-menu.directive.mjs +112 -0
  47. package/esm2022/base-components/directives/sort.directive.mjs +61 -0
  48. package/esm2022/base-components/directives/stop-propagation.directive.mjs +24 -0
  49. package/esm2022/base-components/pipes/ellipses.pipe.mjs +23 -0
  50. package/esm2022/base-prototype/base-prototype.module.mjs +54 -0
  51. package/esm2022/base-prototype/pages/email-verification/email-verification.component.mjs +62 -0
  52. package/esm2022/base-prototype/pages/forgot-password/forgot-password.component.mjs +75 -0
  53. package/esm2022/base-prototype/pages/login/login.component.mjs +111 -0
  54. package/esm2022/base-prototype/pages/profile/profile.component.mjs +86 -0
  55. package/esm2022/base-prototype/pages/register/register.component.mjs +94 -0
  56. package/esm2022/base-prototype/pages/set-password/set-password.component.mjs +90 -0
  57. package/esm2022/shared/classes/auth.class.mjs +14 -0
  58. package/esm2022/shared/classes/basic-user.class.mjs +49 -0
  59. package/esm2022/shared/classes/graphql-enum.class.mjs +10 -0
  60. package/esm2022/shared/classes/graphql-meta.class.mjs +345 -0
  61. package/esm2022/shared/classes/graphql-type.class.mjs +14 -0
  62. package/esm2022/shared/classes/sort.class.mjs +38 -0
  63. package/esm2022/shared/services/auth.service.mjs +153 -0
  64. package/esm2022/shared/services/breadcrumb.service.mjs +70 -0
  65. package/{esm2020 → esm2022}/shared/services/cms.service.mjs +7 -5
  66. package/esm2022/shared/services/file.service.mjs +87 -0
  67. package/esm2022/shared/services/forms.service.mjs +62 -0
  68. package/esm2022/shared/services/graphql-meta.service.mjs +133 -0
  69. package/esm2022/shared/services/graphql-plus.service.mjs +94 -0
  70. package/esm2022/shared/services/graphql.service.mjs +511 -0
  71. package/esm2022/shared/services/image.service.mjs +103 -0
  72. package/esm2022/shared/services/loader.service.mjs +79 -0
  73. package/esm2022/shared/services/navigation.service.mjs +39 -0
  74. package/esm2022/shared/services/scroll.service.mjs +208 -0
  75. package/esm2022/shared/services/storage.service.mjs +142 -0
  76. package/esm2022/shared/services/toast.service.mjs +40 -0
  77. package/esm2022/shared/services/user.service.mjs +161 -0
  78. package/esm2022/shared/services/ws.service.mjs +18 -0
  79. package/esm2022/src/base.module.mjs +98 -0
  80. package/esm2022/src/directives/lazy-load.directive.mjs +48 -0
  81. package/esm2022/src/directives/match-height.directive.mjs +92 -0
  82. package/esm2022/src/directives/resizable.directive.mjs +92 -0
  83. package/esm2022/src/functions/extract-files.function.mjs +87 -0
  84. package/esm2022/src/guards/auth.guard.mjs +84 -0
  85. package/esm2022/src/guards/can-deactivate.guard.mjs +17 -0
  86. package/esm2022/src/guards/logout.guard.mjs +35 -0
  87. package/esm2022/src/pipes/date-ago.pipe.mjs +64 -0
  88. package/esm2022/src/pipes/safe-html.pipe.mjs +23 -0
  89. package/esm2022/src/services/fullscreen.service.mjs +52 -0
  90. package/esm2022/src/services/seo.service.mjs +100 -0
  91. package/esm2022/src/services/theme.service.mjs +45 -0
  92. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-cms.mjs +41 -30
  93. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-cms.mjs.map +1 -1
  94. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-components.mjs +419 -298
  95. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-components.mjs.map +1 -1
  96. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-base-prototype.mjs +126 -87
  97. package/{fesm2015 → fesm2022}/lenne.tech-ng-base-base-prototype.mjs.map +1 -1
  98. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-shared.mjs +164 -113
  99. package/{fesm2020 → fesm2022}/lenne.tech-ng-base-shared.mjs.map +1 -1
  100. package/{fesm2020 → fesm2022}/lenne.tech-ng-base.mjs +108 -88
  101. package/fesm2022/lenne.tech-ng-base.mjs.map +1 -0
  102. package/package.json +23 -38
  103. package/src/directives/lazy-load.directive.d.ts +1 -1
  104. package/src/directives/match-height.directive.d.ts +1 -1
  105. package/src/directives/resizable.directive.d.ts +1 -1
  106. package/src/guards/auth.guard.d.ts +2 -2
  107. package/src/guards/can-deactivate.guard.d.ts +1 -2
  108. package/src/guards/logout.guard.d.ts +2 -2
  109. package/esm2020/base-cms/base-cms-routing.module.mjs +0 -32
  110. package/esm2020/base-cms/base-cms.module.mjs +0 -59
  111. package/esm2020/base-cms/pages/base-cms/base-cms.component.mjs +0 -222
  112. package/esm2020/base-components/base-components.module.mjs +0 -123
  113. package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +0 -18
  114. package/esm2020/base-components/components/change-password/change-password.component.mjs +0 -90
  115. package/esm2020/base-components/components/checkbox/checkbox.component.mjs +0 -31
  116. package/esm2020/base-components/components/delete-account/delete-account.component.mjs +0 -56
  117. package/esm2020/base-components/components/fab-button/fab-button.component.mjs +0 -21
  118. package/esm2020/base-components/components/input/input.component.mjs +0 -67
  119. package/esm2020/base-components/components/loading-bar/loading-bar.component.mjs +0 -35
  120. package/esm2020/base-components/components/model-form/model-form-base.component.mjs +0 -136
  121. package/esm2020/base-components/components/model-form/model-form.component.mjs +0 -564
  122. package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +0 -102
  123. package/esm2020/base-components/components/model-table/model-table.component.mjs +0 -456
  124. package/esm2020/base-components/components/refence-input/refence-input.component.mjs +0 -261
  125. package/esm2020/base-components/components/select/select.component.mjs +0 -54
  126. package/esm2020/base-components/components/skeleton-loader/skeleton-loader.component.mjs +0 -32
  127. package/esm2020/base-components/components/tags/tags.component.mjs +0 -218
  128. package/esm2020/base-components/components/textarea/textarea.component.mjs +0 -72
  129. package/esm2020/base-components/components/toast/toast.component.mjs +0 -68
  130. package/esm2020/base-components/components/upload-image/upload-image.component.mjs +0 -324
  131. package/esm2020/base-components/directives/back-button.directive.mjs +0 -23
  132. package/esm2020/base-components/directives/context-menu.directive.mjs +0 -108
  133. package/esm2020/base-components/directives/sort.directive.mjs +0 -57
  134. package/esm2020/base-components/directives/stop-propagation.directive.mjs +0 -23
  135. package/esm2020/base-components/pipes/ellipses.pipe.mjs +0 -22
  136. package/esm2020/base-prototype/base-prototype.module.mjs +0 -53
  137. package/esm2020/base-prototype/pages/email-verification/email-verification.component.mjs +0 -55
  138. package/esm2020/base-prototype/pages/forgot-password/forgot-password.component.mjs +0 -67
  139. package/esm2020/base-prototype/pages/login/login.component.mjs +0 -102
  140. package/esm2020/base-prototype/pages/profile/profile.component.mjs +0 -81
  141. package/esm2020/base-prototype/pages/register/register.component.mjs +0 -86
  142. package/esm2020/base-prototype/pages/set-password/set-password.component.mjs +0 -82
  143. package/esm2020/shared/classes/auth.class.mjs +0 -17
  144. package/esm2020/shared/classes/basic-user.class.mjs +0 -52
  145. package/esm2020/shared/classes/graphql-enum.class.mjs +0 -9
  146. package/esm2020/shared/classes/graphql-meta.class.mjs +0 -344
  147. package/esm2020/shared/classes/graphql-type.class.mjs +0 -17
  148. package/esm2020/shared/classes/sort.class.mjs +0 -40
  149. package/esm2020/shared/services/auth.service.mjs +0 -148
  150. package/esm2020/shared/services/breadcrumb.service.mjs +0 -68
  151. package/esm2020/shared/services/file.service.mjs +0 -84
  152. package/esm2020/shared/services/forms.service.mjs +0 -59
  153. package/esm2020/shared/services/graphql-meta.service.mjs +0 -123
  154. package/esm2020/shared/services/graphql-plus.service.mjs +0 -89
  155. package/esm2020/shared/services/graphql.service.mjs +0 -507
  156. package/esm2020/shared/services/image.service.mjs +0 -102
  157. package/esm2020/shared/services/loader.service.mjs +0 -79
  158. package/esm2020/shared/services/navigation.service.mjs +0 -36
  159. package/esm2020/shared/services/scroll.service.mjs +0 -179
  160. package/esm2020/shared/services/storage.service.mjs +0 -140
  161. package/esm2020/shared/services/toast.service.mjs +0 -41
  162. package/esm2020/shared/services/user.service.mjs +0 -155
  163. package/esm2020/shared/services/ws.service.mjs +0 -16
  164. package/esm2020/src/base.module.mjs +0 -97
  165. package/esm2020/src/directives/lazy-load.directive.mjs +0 -45
  166. package/esm2020/src/directives/match-height.directive.mjs +0 -84
  167. package/esm2020/src/directives/resizable.directive.mjs +0 -90
  168. package/esm2020/src/functions/extract-files.function.mjs +0 -84
  169. package/esm2020/src/guards/auth.guard.mjs +0 -80
  170. package/esm2020/src/guards/can-deactivate.guard.mjs +0 -16
  171. package/esm2020/src/guards/logout.guard.mjs +0 -32
  172. package/esm2020/src/pipes/date-ago.pipe.mjs +0 -65
  173. package/esm2020/src/pipes/safe-html.pipe.mjs +0 -21
  174. package/esm2020/src/services/fullscreen.service.mjs +0 -51
  175. package/esm2020/src/services/seo.service.mjs +0 -97
  176. package/esm2020/src/services/theme.service.mjs +0 -43
  177. package/fesm2015/lenne.tech-ng-base-base-cms.mjs +0 -323
  178. package/fesm2015/lenne.tech-ng-base-base-cms.mjs.map +0 -1
  179. package/fesm2015/lenne.tech-ng-base-base-components.mjs +0 -2866
  180. package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +0 -1
  181. package/fesm2015/lenne.tech-ng-base-base-prototype.mjs +0 -496
  182. package/fesm2015/lenne.tech-ng-base-shared.mjs +0 -2750
  183. package/fesm2015/lenne.tech-ng-base-shared.mjs.map +0 -1
  184. package/fesm2015/lenne.tech-ng-base.mjs +0 -905
  185. package/fesm2015/lenne.tech-ng-base.mjs.map +0 -1
  186. package/fesm2020/lenne.tech-ng-base-base-prototype.mjs.map +0 -1
  187. package/fesm2020/lenne.tech-ng-base.mjs.map +0 -1
  188. /package/{esm2020 → esm2022}/base-cms/interfaces/base-cms-module-config.interface.mjs +0 -0
  189. /package/{esm2020 → esm2022}/base-cms/lenne.tech-ng-base-base-cms.mjs +0 -0
  190. /package/{esm2020 → esm2022}/base-cms/public-api.mjs +0 -0
  191. /package/{esm2020 → esm2022}/base-components/lenne.tech-ng-base-base-components.mjs +0 -0
  192. /package/{esm2020 → esm2022}/base-components/public-api.mjs +0 -0
  193. /package/{esm2020 → esm2022}/base-prototype/lenne.tech-ng-base-base-prototype.mjs +0 -0
  194. /package/{esm2020 → esm2022}/base-prototype/public-api.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lenne.tech-ng-base.mjs +0 -0
  196. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  197. /package/{esm2020 → esm2022}/shared/classes/helper.class.mjs +0 -0
  198. /package/{esm2020 → esm2022}/shared/classes/standard.class.mjs +0 -0
  199. /package/{esm2020 → esm2022}/shared/decorators/debounce.decorator.mjs +0 -0
  200. /package/{esm2020 → esm2022}/shared/enums/comparison-operator.enum.mjs +0 -0
  201. /package/{esm2020 → esm2022}/shared/enums/graphql-request-type.enum.mjs +0 -0
  202. /package/{esm2020 → esm2022}/shared/enums/logical-operator.enum.mjs +0 -0
  203. /package/{esm2020 → esm2022}/shared/enums/skeleton-type.enum.mjs +0 -0
  204. /package/{esm2020 → esm2022}/shared/enums/sort-order.enum.mjs +0 -0
  205. /package/{esm2020 → esm2022}/shared/enums/toast-type.enum.mjs +0 -0
  206. /package/{esm2020 → esm2022}/shared/functions/ws-client.function.mjs +0 -0
  207. /package/{esm2020 → esm2022}/shared/interfaces/base-module-config.interface.mjs +0 -0
  208. /package/{esm2020 → esm2022}/shared/interfaces/breadcrumb.interface.mjs +0 -0
  209. /package/{esm2020 → esm2022}/shared/interfaces/can-component-deactivate.interface.mjs +0 -0
  210. /package/{esm2020 → esm2022}/shared/interfaces/cms-enum-values.interface.mjs +0 -0
  211. /package/{esm2020 → esm2022}/shared/interfaces/cms-field-config.interface.mjs +0 -0
  212. /package/{esm2020 → esm2022}/shared/interfaces/cms-model-config.interface.mjs +0 -0
  213. /package/{esm2020 → esm2022}/shared/interfaces/cms-table-field.interface.mjs +0 -0
  214. /package/{esm2020 → esm2022}/shared/interfaces/combined-filter-input.interface.mjs +0 -0
  215. /package/{esm2020 → esm2022}/shared/interfaces/compress-options.interface.mjs +0 -0
  216. /package/{esm2020 → esm2022}/shared/interfaces/cropping-options.interface.mjs +0 -0
  217. /package/{esm2020 → esm2022}/shared/interfaces/field-object.interface.mjs +0 -0
  218. /package/{esm2020 → esm2022}/shared/interfaces/field.interface.mjs +0 -0
  219. /package/{esm2020 → esm2022}/shared/interfaces/filter-input.interface.mjs +0 -0
  220. /package/{esm2020 → esm2022}/shared/interfaces/find-args.interface.mjs +0 -0
  221. /package/{esm2020 → esm2022}/shared/interfaces/graphql-crud-type.interface.mjs +0 -0
  222. /package/{esm2020 → esm2022}/shared/interfaces/graphql-fields-object.interface.mjs +0 -0
  223. /package/{esm2020 → esm2022}/shared/interfaces/graphql-options.interface.mjs +0 -0
  224. /package/{esm2020 → esm2022}/shared/interfaces/graphql-plus-options.interfacen.mjs +0 -0
  225. /package/{esm2020 → esm2022}/shared/interfaces/graphql-type-collection.interface.mjs +0 -0
  226. /package/{esm2020 → esm2022}/shared/interfaces/login-config.interface.mjs +0 -0
  227. /package/{esm2020 → esm2022}/shared/interfaces/single-filter-input.interface.mjs +0 -0
  228. /package/{esm2020 → esm2022}/shared/interfaces/sort-input.interface.mjs +0 -0
  229. /package/{esm2020 → esm2022}/shared/interfaces/time-components.interface.mjs +0 -0
  230. /package/{esm2020 → esm2022}/shared/interfaces/toast.interface.mjs +0 -0
  231. /package/{esm2020 → esm2022}/shared/lenne.tech-ng-base-shared.mjs +0 -0
  232. /package/{esm2020 → esm2022}/shared/public-api.mjs +0 -0
  233. /package/{esm2020 → esm2022}/shared/types/graphql-fields.type.mjs +0 -0
  234. /package/{esm2020 → esm2022}/shared/types/storage.type.mjs +0 -0
  235. /package/{esm2020 → esm2022}/shared/validators/email.validator.mjs +0 -0
  236. /package/{esm2020 → esm2022}/shared/validators/match.validator.mjs +0 -0
  237. /package/{esm2020 → esm2022}/shared/validators/secure-password.validator.mjs +0 -0
  238. /package/{esm2020 → esm2022}/src/decorators/auto-unsubscribe.decorator.mjs +0 -0
  239. /package/{esm2020 → esm2022}/src/factories/apollo-options.factory.mjs +0 -0
@@ -0,0 +1,70 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, filter } from 'rxjs';
3
+ import { NavigationEnd } from '@angular/router';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ class BreadcrumbService {
7
+ router;
8
+ _breadcrumbs = new BehaviorSubject([]);
9
+ set breadcrumbs(value) {
10
+ this._breadcrumbs.next(value);
11
+ }
12
+ get breadcrumbsObservable() {
13
+ return this._breadcrumbs.asObservable();
14
+ }
15
+ constructor(router) {
16
+ this.router = router;
17
+ this.subscribeToRouteChanges();
18
+ }
19
+ /**
20
+ * Subscribe to route changes and add element to breadcrumb
21
+ */
22
+ subscribeToRouteChanges() {
23
+ this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {
24
+ const root = this.router.routerState.snapshot.root;
25
+ const breadcrumbs = [];
26
+ this.addBreadcrumb(root, [], breadcrumbs);
27
+ this.breadcrumbs = breadcrumbs;
28
+ });
29
+ }
30
+ /**
31
+ * Add element to breadcrumb
32
+ *
33
+ * @param route
34
+ * @param parentUrl
35
+ * @param breadcrumbs
36
+ * @private
37
+ */
38
+ addBreadcrumb(route, parentUrl, breadcrumbs) {
39
+ if (route) {
40
+ const routeUrl = parentUrl.concat(route.url.map((url) => url.path));
41
+ if (route.data?.breadcrumb) {
42
+ const breadcrumb = {
43
+ label: this.getLabel(route.data),
44
+ url: '/' + routeUrl.join('/'),
45
+ };
46
+ breadcrumbs.push(breadcrumb);
47
+ }
48
+ this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);
49
+ }
50
+ }
51
+ /**
52
+ * Get label for breadcrumb
53
+ *
54
+ * @param data
55
+ * @private
56
+ */
57
+ getLabel(data) {
58
+ return typeof data.breadcrumb === 'function' ? data.breadcrumb(data) : data.breadcrumb;
59
+ }
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BreadcrumbService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BreadcrumbService, providedIn: 'root' });
62
+ }
63
+ export { BreadcrumbService };
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BreadcrumbService, decorators: [{
65
+ type: Injectable,
66
+ args: [{
67
+ providedIn: 'root',
68
+ }]
69
+ }], ctorParameters: function () { return [{ type: i1.Router }]; } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvYnJlYWRjcnVtYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFnQyxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBR3RGLE1BR2EsaUJBQWlCO0lBV1I7SUFWSCxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQWUsRUFBRSxDQUFDLENBQUM7SUFFdEUsSUFBSSxXQUFXLENBQUMsS0FBbUI7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzdGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbkQsTUFBTSxXQUFXLEdBQWlCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNLLGFBQWEsQ0FBQyxLQUE2QixFQUFFLFNBQW1CLEVBQUUsV0FBeUI7UUFDakcsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVwRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUMxQixNQUFNLFVBQVUsR0FBRztvQkFDakIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDaEMsR0FBRyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztpQkFDOUIsQ0FBQztnQkFDRixXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzlCO1lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUM3RDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFFBQVEsQ0FBQyxJQUFVO1FBQ3pCLE9BQU8sT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6RixDQUFDO3VHQTNEVSxpQkFBaUI7MkdBQWpCLGlCQUFpQixjQUZoQixNQUFNOztTQUVQLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBEYXRhLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJy4uL2ludGVyZmFjZXMvYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYlNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYltdPihbXSk7XG5cbiAgc2V0IGJyZWFkY3J1bWJzKHZhbHVlOiBCcmVhZGNydW1iW10pIHtcbiAgICB0aGlzLl9icmVhZGNydW1icy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBicmVhZGNydW1ic09ic2VydmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Sb3V0ZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gcm91dGUgY2hhbmdlcyBhbmQgYWRkIGVsZW1lbnQgdG8gYnJlYWRjcnVtYlxuICAgKi9cbiAgc3Vic2NyaWJlVG9Sb3V0ZUNoYW5nZXMoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3Q7XG4gICAgICBjb25zdCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdID0gW107XG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm9vdCwgW10sIGJyZWFkY3J1bWJzKTtcbiAgICAgIHRoaXMuYnJlYWRjcnVtYnMgPSBicmVhZGNydW1icztcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgZWxlbWVudCB0byBicmVhZGNydW1iXG4gICAqXG4gICAqIEBwYXJhbSByb3V0ZVxuICAgKiBAcGFyYW0gcGFyZW50VXJsXG4gICAqIEBwYXJhbSBicmVhZGNydW1ic1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhZGRCcmVhZGNydW1iKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBwYXJlbnRVcmw6IHN0cmluZ1tdLCBicmVhZGNydW1iczogQnJlYWRjcnVtYltdKSB7XG4gICAgaWYgKHJvdXRlKSB7XG4gICAgICBjb25zdCByb3V0ZVVybCA9IHBhcmVudFVybC5jb25jYXQocm91dGUudXJsLm1hcCgodXJsKSA9PiB1cmwucGF0aCkpO1xuXG4gICAgICBpZiAocm91dGUuZGF0YT8uYnJlYWRjcnVtYikge1xuICAgICAgICBjb25zdCBicmVhZGNydW1iID0ge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLmdldExhYmVsKHJvdXRlLmRhdGEpLFxuICAgICAgICAgIHVybDogJy8nICsgcm91dGVVcmwuam9pbignLycpLFxuICAgICAgICB9O1xuICAgICAgICBicmVhZGNydW1icy5wdXNoKGJyZWFkY3J1bWIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFkZEJyZWFkY3J1bWIocm91dGUuZmlyc3RDaGlsZCwgcm91dGVVcmwsIGJyZWFkY3J1bWJzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGxhYmVsIGZvciBicmVhZGNydW1iXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldExhYmVsKGRhdGE6IERhdGEpIHtcbiAgICByZXR1cm4gdHlwZW9mIGRhdGEuYnJlYWRjcnVtYiA9PT0gJ2Z1bmN0aW9uJyA/IGRhdGEuYnJlYWRjcnVtYihkYXRhKSA6IGRhdGEuYnJlYWRjcnVtYjtcbiAgfVxufVxuIl19
@@ -2,7 +2,8 @@ import { Injectable } from '@angular/core';
2
2
  import { GraphQLRequestType } from '../enums/graphql-request-type.enum';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./graphql.service";
5
- export class CmsService {
5
+ class CmsService {
6
+ graphQLService;
6
7
  constructor(graphQLService) {
7
8
  this.graphQLService = graphQLService;
8
9
  }
@@ -69,13 +70,14 @@ export class CmsService {
69
70
  lowerCaseFirstLetter(value) {
70
71
  return value.charAt(0).toLowerCase() + value.slice(1);
71
72
  }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CmsService, deps: [{ token: i1.GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CmsService, providedIn: 'root' });
72
75
  }
73
- CmsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CmsService, deps: [{ token: i1.GraphQLService }], target: i0.ɵɵFactoryTarget.Injectable });
74
- CmsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CmsService, providedIn: 'root' });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CmsService, decorators: [{
76
+ export { CmsService };
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CmsService, decorators: [{
76
78
  type: Injectable,
77
79
  args: [{
78
80
  providedIn: 'root',
79
81
  }]
80
82
  }], ctorParameters: function () { return [{ type: i1.GraphQLService }]; } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9jbXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFNeEUsTUFBTSxPQUFPLFVBQVU7SUFDckIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQztJQUN0RDs7T0FFRztJQUNILFlBQVksQ0FBQyxFQUFVLEVBQUUsU0FBaUI7UUFDeEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsY0FBYztxQkFDaEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3pELFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO29CQUNkLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO2lCQUNsQyxDQUFDO3FCQUNELFNBQVMsQ0FBQztvQkFDVCxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pCLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQy9DLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2FBQ047UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBVSxFQUFFLFNBQWlCO1FBQ2pELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxPQUFPLENBQUMsOENBQThDLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLGNBQWM7cUJBQ2hCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUM1RCxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7b0JBQ2pCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztvQkFDZCxJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtpQkFDbEMsQ0FBQztxQkFDRCxTQUFTLENBQUM7b0JBQ1QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqQixDQUFDO29CQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDWixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNsRCxDQUFDO2lCQUNGLENBQUMsQ0FBQzthQUNOO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBQyxLQUFhO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLEtBQWE7UUFDaEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7dUdBbkVVLFVBQVU7MkdBQVYsVUFBVSxjQUZULE1BQU07MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IEdyYXBoUUxTZXJ2aWNlIH0gZnJvbSAnLi9ncmFwaHFsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ21zU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JhcGhRTFNlcnZpY2U6IEdyYXBoUUxTZXJ2aWNlKSB7fVxuICAvKipcbiAgICogSXQgY2FsbHMgdGhlIGdyYXBoUUxTZXJ2aWNlIHRvIGRlbGV0ZSB0aGUgb2JqZWN0IHdpdGggdGhlIGlkIG9mIHRoZSBvYmplY3QgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkXG4gICAqL1xuICBkZWxldGVPYmplY3QoaWQ6IHN0cmluZywgbW9kZWxOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKGNvbmZpcm0oJ03DtmNodGVzdCBkdSBkYXMgT2JqZWt0IHdpcmtsaWNoIGzDtnNjaGVuPycpKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhRTFNlcnZpY2VcbiAgICAgICAgICAuZ3JhcGhRbCgnZGVsZXRlJyArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG1vZGVsTmFtZSksIHtcbiAgICAgICAgICAgIGFyZ3VtZW50czogeyBpZCB9LFxuICAgICAgICAgICAgZmllbGRzOiBbJ2lkJ10sXG4gICAgICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igb24gZGVsZXRlIG9iamVjdCcsIGVycik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHNlbmRzIGEgR3JhcGhRTCBtdXRhdGlvbiB0byB0aGUgc2VydmVyIHRvIGR1cGxpY2F0ZSB0aGUgb2JqZWN0XG4gICAqL1xuICBhc3luYyBkdXBsaWNhdGVPYmplY3QoaWQ6IHN0cmluZywgbW9kZWxOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoY29uZmlybSgnTcO2Y2h0ZXN0IGR1IGRhcyBPYmpla3Qgd2lya2xpY2ggZHVwbGl6aWVyZW4/JykpIHtcbiAgICAgICAgdGhpcy5ncmFwaFFMU2VydmljZVxuICAgICAgICAgIC5ncmFwaFFsKCdkdXBsaWNhdGUnICsgdGhpcy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIobW9kZWxOYW1lKSwge1xuICAgICAgICAgICAgYXJndW1lbnRzOiB7IGlkIH0sXG4gICAgICAgICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBvbiBkdXBsaWNhdGUgb2JqZWN0JywgZXJyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYSBzdHJpbmcsIGNhcGl0YWxpemVzIHRoZSBmaXJzdCBsZXR0ZXIsIGFuZCByZXR1cm5zIHRoZSBtb2RpZmllZCBzdHJpbmdcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB0byBjYXBpdGFsaXplLlxuICAgKiBAcmV0dXJucyBUaGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgY2FwaXRhbGl6ZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgcmV0dXJuZWQuXG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSBmaXJzdCBsZXR0ZXIgdG8gbG93ZXJjYXNlXG4gICAqL1xuICBsb3dlckNhc2VGaXJzdExldHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSk7XG4gIH1cbn1cbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9jbXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFHeEUsTUFHYSxVQUFVO0lBQ0Q7SUFBcEIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQUcsQ0FBQztJQUN0RDs7T0FFRztJQUNILFlBQVksQ0FBQyxFQUFVLEVBQUUsU0FBaUI7UUFDeEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsY0FBYztxQkFDaEIsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3pELFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRTtvQkFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO29CQUNkLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO2lCQUNsQyxDQUFDO3FCQUNELFNBQVMsQ0FBQztvQkFDVCxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTt3QkFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2pCLENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQy9DLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2FBQ047UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBVSxFQUFFLFNBQWlCO1FBQ2pELE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsSUFBSSxPQUFPLENBQUMsOENBQThDLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLGNBQWM7cUJBQ2hCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUM1RCxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUU7b0JBQ2pCLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztvQkFDZCxJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtpQkFDbEMsQ0FBQztxQkFDRCxTQUFTLENBQUM7b0JBQ1QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqQixDQUFDO29CQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDWixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNsRCxDQUFDO2lCQUNGLENBQUMsQ0FBQzthQUNOO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxxQkFBcUIsQ0FBQyxLQUFhO1FBQ2pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLEtBQWE7UUFDaEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQzt1R0FuRVUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTs7U0FFUCxVQUFVOzJGQUFWLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBHcmFwaFFMU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENtc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyYXBoUUxTZXJ2aWNlOiBHcmFwaFFMU2VydmljZSkge31cbiAgLyoqXG4gICAqIEl0IGNhbGxzIHRoZSBncmFwaFFMU2VydmljZSB0byBkZWxldGUgdGhlIG9iamVjdCB3aXRoIHRoZSBpZCBvZiB0aGUgb2JqZWN0IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGVkaXRlZFxuICAgKi9cbiAgZGVsZXRlT2JqZWN0KGlkOiBzdHJpbmcsIG1vZGVsTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmIChjb25maXJtKCdNw7ZjaHRlc3QgZHUgZGFzIE9iamVrdCB3aXJrbGljaCBsw7ZzY2hlbj8nKSkge1xuICAgICAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAgICAgLmdyYXBoUWwoJ2RlbGV0ZScgKyB0aGlzLmNhcGl0YWxpemVGaXJzdExldHRlcihtb2RlbE5hbWUpLCB7XG4gICAgICAgICAgICBhcmd1bWVudHM6IHsgaWQgfSxcbiAgICAgICAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgICAgICAgdHlwZTogR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9uIGRlbGV0ZSBvYmplY3QnLCBlcnIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzZW5kcyBhIEdyYXBoUUwgbXV0YXRpb24gdG8gdGhlIHNlcnZlciB0byBkdXBsaWNhdGUgdGhlIG9iamVjdFxuICAgKi9cbiAgYXN5bmMgZHVwbGljYXRlT2JqZWN0KGlkOiBzdHJpbmcsIG1vZGVsTmFtZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKGNvbmZpcm0oJ03DtmNodGVzdCBkdSBkYXMgT2JqZWt0IHdpcmtsaWNoIGR1cGxpemllcmVuPycpKSB7XG4gICAgICAgIHRoaXMuZ3JhcGhRTFNlcnZpY2VcbiAgICAgICAgICAuZ3JhcGhRbCgnZHVwbGljYXRlJyArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG1vZGVsTmFtZSksIHtcbiAgICAgICAgICAgIGFyZ3VtZW50czogeyBpZCB9LFxuICAgICAgICAgICAgZmllbGRzOiBbJ2lkJ10sXG4gICAgICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHZhbHVlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igb24gZHVwbGljYXRlIG9iamVjdCcsIGVycik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgc3RyaW5nLCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyLCBhbmQgcmV0dXJucyB0aGUgbW9kaWZpZWQgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBzdHJpbmcgdG8gY2FwaXRhbGl6ZS5cbiAgICogQHJldHVybnMgVGhlIGZpcnN0IGxldHRlciBvZiB0aGUgc3RyaW5nIGlzIGJlaW5nIGNhcGl0YWxpemVkIGFuZCB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIGlzIGJlaW5nIHJldHVybmVkLlxuICAgKi9cbiAgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gZmlyc3QgbGV0dGVyIHRvIGxvd2VyY2FzZVxuICAgKi9cbiAgbG93ZXJDYXNlRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { Injectable } from '@angular/core';
2
+ import Compressor from 'compressorjs';
3
+ import { HttpHeaders } from '@angular/common/http';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../services/auth.service";
6
+ import * as i2 from "@angular/common/http";
7
+ class FileService {
8
+ authService;
9
+ httpClient;
10
+ constructor(authService, httpClient) {
11
+ this.authService = authService;
12
+ this.httpClient = httpClient;
13
+ }
14
+ /**
15
+ * Compress file with options and return file
16
+ */
17
+ compress(file, options) {
18
+ const config = {
19
+ quality: 0.6,
20
+ checkOrientation: false,
21
+ ...options,
22
+ };
23
+ return new Promise((resolve, reject) => {
24
+ new Compressor(file, {
25
+ success(result) {
26
+ // Check if result is blob for convert to file
27
+ if (result instanceof Blob) {
28
+ resolve(new File([result], result.name));
29
+ }
30
+ else {
31
+ resolve(result);
32
+ }
33
+ },
34
+ error(err) {
35
+ reject(err.message);
36
+ },
37
+ ...config,
38
+ });
39
+ });
40
+ }
41
+ /**
42
+ * Upload file to server
43
+ */
44
+ async upload(url, path, file, compressOptions) {
45
+ return new Promise(async (resolve, reject) => {
46
+ if (compressOptions) {
47
+ file = await this.compress(file, compressOptions);
48
+ }
49
+ const data = new FormData();
50
+ data.append('file', file);
51
+ const httpOptions = {
52
+ headers: new HttpHeaders({
53
+ Authorization: 'Bearer ' + this.authService.token,
54
+ }),
55
+ };
56
+ this.httpClient.post(url + path, data, httpOptions).subscribe((result) => {
57
+ resolve(result);
58
+ }, (err) => {
59
+ reject(err);
60
+ });
61
+ });
62
+ }
63
+ delete(url, path, id) {
64
+ return new Promise(async (resolve, reject) => {
65
+ const httpOptions = {
66
+ headers: new HttpHeaders({
67
+ Authorization: 'Bearer ' + this.authService.token,
68
+ }),
69
+ };
70
+ this.httpClient.delete(url + path + id, httpOptions).subscribe((result) => {
71
+ resolve(result);
72
+ }, (err) => {
73
+ reject(err);
74
+ });
75
+ });
76
+ }
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FileService, deps: [{ token: i1.AuthService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
78
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FileService, providedIn: 'root' });
79
+ }
80
+ export { FileService };
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FileService, decorators: [{
82
+ type: Injectable,
83
+ args: [{
84
+ providedIn: 'root',
85
+ }]
86
+ }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.HttpClient }]; } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZmlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUcvRCxNQUdhLFdBQVc7SUFDRjtJQUFrQztJQUF0RCxZQUFvQixXQUF3QixFQUFVLFVBQXNCO1FBQXhELGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFaEY7O09BRUc7SUFDSCxRQUFRLENBQUMsSUFBVSxFQUFFLE9BQXlCO1FBQzVDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsT0FBTyxFQUFFLEdBQUc7WUFDWixnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLEdBQUcsT0FBTztTQUNYLENBQUM7UUFFRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDbkIsT0FBTyxDQUFDLE1BQW1CO29CQUN6Qiw4Q0FBOEM7b0JBQzlDLElBQUksTUFBTSxZQUFZLElBQUksRUFBRTt3QkFDMUIsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUcsTUFBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7cUJBQ25EO3lCQUFNO3dCQUNMLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztxQkFDakI7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLENBQUMsR0FBRztvQkFDUCxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QixDQUFDO2dCQUNELEdBQUcsTUFBTTthQUNWLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBWSxFQUFFLElBQVUsRUFBRSxlQUFpQztRQUNuRixPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO2FBQ25EO1lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUUxQixNQUFNLFdBQVcsR0FBRztnQkFDbEIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO29CQUN2QixhQUFhLEVBQUUsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztpQkFDbEQsQ0FBQzthQUNILENBQUM7WUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQzNELENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xCLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsRUFBVTtRQUMxQyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsTUFBTSxXQUFXLEdBQUc7Z0JBQ2xCLE9BQU8sRUFBRSxJQUFJLFdBQVcsQ0FBQztvQkFDdkIsYUFBYSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7aUJBQ2xELENBQUM7YUFDSCxDQUFDO1lBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUM1RCxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNULE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0E3RVUsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7U0FFUCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IENvbXByZXNzb3IgZnJvbSAnY29tcHJlc3NvcmpzJztcbmltcG9ydCB7IENvbXByZXNzT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29tcHJlc3Mtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqIENvbXByZXNzIGZpbGUgd2l0aCBvcHRpb25zIGFuZCByZXR1cm4gZmlsZVxuICAgKi9cbiAgY29tcHJlc3MoZmlsZTogRmlsZSwgb3B0aW9ucz86IENvbXByZXNzT3B0aW9ucyk6IFByb21pc2U8RmlsZT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIHF1YWxpdHk6IDAuNixcbiAgICAgIGNoZWNrT3JpZW50YXRpb246IGZhbHNlLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG5ldyBDb21wcmVzc29yKGZpbGUsIHtcbiAgICAgICAgc3VjY2VzcyhyZXN1bHQ6IEJsb2IgfCBGaWxlKSB7XG4gICAgICAgICAgLy8gQ2hlY2sgaWYgcmVzdWx0IGlzIGJsb2IgZm9yIGNvbnZlcnQgdG8gZmlsZVxuICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICByZXNvbHZlKG5ldyBGaWxlKFtyZXN1bHRdLCAocmVzdWx0IGFzIGFueSkubmFtZSkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcihlcnIpIHtcbiAgICAgICAgICByZWplY3QoZXJyLm1lc3NhZ2UpO1xuICAgICAgICB9LFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgZmlsZSB0byBzZXJ2ZXJcbiAgICovXG4gIGFzeW5jIHVwbG9hZCh1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBmaWxlOiBGaWxlLCBjb21wcmVzc09wdGlvbnM/OiBDb21wcmVzc09wdGlvbnMpOiBQcm9taXNlPHsgaWQ6IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmIChjb21wcmVzc09wdGlvbnMpIHtcbiAgICAgICAgZmlsZSA9IGF3YWl0IHRoaXMuY29tcHJlc3MoZmlsZSwgY29tcHJlc3NPcHRpb25zKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgZGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcblxuICAgICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdGhpcy5hdXRoU2VydmljZS50b2tlbixcbiAgICAgICAgfSksXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmh0dHBDbGllbnQucG9zdCh1cmwgKyBwYXRoLCBkYXRhLCBodHRwT3B0aW9ucykuc3Vic2NyaWJlKFxuICAgICAgICAocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRlbGV0ZSh1cmw6IHN0cmluZywgcGF0aDogc3RyaW5nLCBpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xuICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgIEF1dGhvcml6YXRpb246ICdCZWFyZXIgJyArIHRoaXMuYXV0aFNlcnZpY2UudG9rZW4sXG4gICAgICAgIH0pLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5odHRwQ2xpZW50LmRlbGV0ZSh1cmwgKyBwYXRoICsgaWQsIGh0dHBPcHRpb25zKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,62 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./scroll.service";
6
+ class FormsService {
7
+ document;
8
+ scrollService;
9
+ constructor(document, scrollService) {
10
+ this.document = document;
11
+ this.scrollService = scrollService;
12
+ }
13
+ validateAllFormFields(formGroup) {
14
+ Object.keys(formGroup.controls).forEach((field) => {
15
+ const control = formGroup.get(field);
16
+ if (control instanceof UntypedFormControl) {
17
+ control.markAsTouched({ onlySelf: true });
18
+ }
19
+ else if (control instanceof UntypedFormGroup) {
20
+ this.validateAllFormFields(control);
21
+ }
22
+ });
23
+ }
24
+ findInvalidControls(formGroup) {
25
+ return this.getInvalidControl(formGroup);
26
+ }
27
+ getInvalidControl(formGroup, invalid, parents = []) {
28
+ let result = invalid ? [...invalid] : [];
29
+ let nestedParents = [...[], ...parents];
30
+ const controls = formGroup.controls;
31
+ Object.keys(formGroup.controls).forEach((name) => {
32
+ if (controls[name].invalid) {
33
+ if (controls[name]?.controls) {
34
+ nestedParents.push(name);
35
+ result = this.getInvalidControl(controls[name], result, nestedParents);
36
+ nestedParents = [];
37
+ }
38
+ else {
39
+ result.push(nestedParents.length ? nestedParents.join('.') + '.' + name : name);
40
+ }
41
+ }
42
+ });
43
+ return result;
44
+ }
45
+ scrollToInvalidControl(form) {
46
+ const invalidForm = this.findInvalidControls(form)[0];
47
+ this.scrollService.scrollTo(invalidForm);
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FormsService, deps: [{ token: DOCUMENT }, { token: i1.ScrollService }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FormsService, providedIn: 'root' });
51
+ }
52
+ export { FormsService };
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FormsService, decorators: [{
54
+ type: Injectable,
55
+ args: [{
56
+ providedIn: 'root',
57
+ }]
58
+ }], ctorParameters: function () { return [{ type: Document, decorators: [{
59
+ type: Inject,
60
+ args: [DOCUMENT]
61
+ }] }, { type: i1.ScrollService }]; } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3NlcnZpY2VzL2Zvcm1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFHM0MsTUFHYSxZQUFZO0lBQ2U7SUFBNEI7SUFBbEUsWUFBc0MsUUFBa0IsRUFBVSxhQUE0QjtRQUF4RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBRyxDQUFDO0lBRTNGLHFCQUFxQixDQUFDLFNBQTJCO1FBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxPQUFPLFlBQVksa0JBQWtCLEVBQUU7Z0JBQ3pDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMzQztpQkFBTSxJQUFJLE9BQU8sWUFBWSxnQkFBZ0IsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBMkI7UUFDcEQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFNBQTJCLEVBQUUsT0FBUSxFQUFFLFVBQWUsRUFBRTtRQUNoRixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pDLElBQUksYUFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUV4QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9DLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRTtnQkFDMUIsSUFBSyxRQUFRLENBQUMsSUFBSSxDQUFTLEVBQUUsUUFBUSxFQUFFO29CQUNyQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN6QixNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQVEsRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7b0JBQzlFLGFBQWEsR0FBRyxFQUFFLENBQUM7aUJBQ3BCO3FCQUFNO29CQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakY7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLHNCQUFzQixDQUFDLElBQXNCO1FBQ2xELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzQyxDQUFDO3VHQXpDVSxZQUFZLGtCQUNILFFBQVE7MkdBRGpCLFlBQVksY0FGWCxNQUFNOztTQUVQLFlBQVk7MkZBQVosWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUVjLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2Nyb2xsU2VydmljZSB9IGZyb20gJy4vc2Nyb2xsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsIHByaXZhdGUgc2Nyb2xsU2VydmljZTogU2Nyb2xsU2VydmljZSkge31cblxuICBwdWJsaWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kSW52YWxpZENvbnRyb2xzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnZhbGlkQ29udHJvbChmb3JtR3JvdXApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnZhbGlkQ29udHJvbChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGludmFsaWQ/LCBwYXJlbnRzOiBhbnkgPSBbXSkge1xuICAgIGxldCByZXN1bHQgPSBpbnZhbGlkID8gWy4uLmludmFsaWRdIDogW107XG4gICAgbGV0IG5lc3RlZFBhcmVudHMgPSBbLi4uW10sIC4uLnBhcmVudHNdO1xuXG4gICAgY29uc3QgY29udHJvbHMgPSBmb3JtR3JvdXAuY29udHJvbHM7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBpZiAoY29udHJvbHNbbmFtZV0uaW52YWxpZCkge1xuICAgICAgICBpZiAoKGNvbnRyb2xzW25hbWVdIGFzIGFueSk/LmNvbnRyb2xzKSB7XG4gICAgICAgICAgbmVzdGVkUGFyZW50cy5wdXNoKG5hbWUpO1xuICAgICAgICAgIHJlc3VsdCA9IHRoaXMuZ2V0SW52YWxpZENvbnRyb2woY29udHJvbHNbbmFtZV0gYXMgYW55LCByZXN1bHQsIG5lc3RlZFBhcmVudHMpO1xuICAgICAgICAgIG5lc3RlZFBhcmVudHMgPSBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQucHVzaChuZXN0ZWRQYXJlbnRzLmxlbmd0aCA/IG5lc3RlZFBhcmVudHMuam9pbignLicpICsgJy4nICsgbmFtZSA6IG5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFRvSW52YWxpZENvbnRyb2woZm9ybTogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGNvbnN0IGludmFsaWRGb3JtOiBzdHJpbmcgPSB0aGlzLmZpbmRJbnZhbGlkQ29udHJvbHMoZm9ybSlbMF07XG4gICAgdGhpcy5zY3JvbGxTZXJ2aWNlLnNjcm9sbFRvKGludmFsaWRGb3JtKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,133 @@
1
+ import { gql } from 'apollo-angular';
2
+ import { Injectable } from '@angular/core';
3
+ import { of } from 'rxjs';
4
+ import { buildClientSchema, getIntrospectionQuery } from 'graphql';
5
+ import { map } from 'rxjs/operators';
6
+ import { GraphQLMeta } from '../classes/graphql-meta.class';
7
+ import { Helper } from '../classes/helper.class';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "apollo-angular";
10
+ /**
11
+ * GraphQL meta service
12
+ *
13
+ * For collecting meta information of the GraphQL API
14
+ */
15
+ class GraphQLMetaService {
16
+ apollo;
17
+ // Caches
18
+ _frozenSchema;
19
+ _frozenSchemaObservable;
20
+ _meta;
21
+ _metaObservable;
22
+ _schemaObservable;
23
+ // Private caches
24
+ _introspectionQuery;
25
+ /**
26
+ * Include services
27
+ */
28
+ constructor(apollo) {
29
+ this.apollo = apollo;
30
+ }
31
+ /**
32
+ * Getter of introspectionQuery
33
+ */
34
+ get introspectionQuery() {
35
+ return JSON.parse(JSON.stringify(this._introspectionQuery));
36
+ }
37
+ /**
38
+ * Get schema for API
39
+ * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d
40
+ */
41
+ getSchema(options = {}) {
42
+ // Get configurations
43
+ const config = {
44
+ cache: true,
45
+ freeze: true,
46
+ ...options,
47
+ };
48
+ // Use caching
49
+ if (config.cache) {
50
+ if (config.freeze && this._frozenSchema) {
51
+ return of(this._frozenSchema);
52
+ }
53
+ if (this._introspectionQuery) {
54
+ return of(buildClientSchema(this.introspectionQuery));
55
+ }
56
+ if (config.freeze && this._frozenSchemaObservable) {
57
+ return this._frozenSchemaObservable;
58
+ }
59
+ else if (!config.freeze && this._schemaObservable) {
60
+ return this._schemaObservable;
61
+ }
62
+ }
63
+ // Request schema from server
64
+ const observable = this.apollo
65
+ .query({
66
+ query: gql(getIntrospectionQuery({ descriptions: false })),
67
+ })
68
+ .pipe(map((schema) => {
69
+ // Cache introspectionQuery
70
+ this._introspectionQuery = schema.data;
71
+ // Convert schema to GraphQLSchema
72
+ this._frozenSchema = Helper.deepFreeze(buildClientSchema(this.introspectionQuery));
73
+ // Return GraphQLSchema
74
+ if (config.freeze) {
75
+ return this._frozenSchema;
76
+ }
77
+ return buildClientSchema(schema.data);
78
+ }));
79
+ // Set observables
80
+ if (config.freeze) {
81
+ this._frozenSchemaObservable = observable;
82
+ }
83
+ else {
84
+ this._schemaObservable = observable;
85
+ }
86
+ // Return result
87
+ return observable;
88
+ }
89
+ /**
90
+ * Get meta for API
91
+ * See https://www.apollographql.com/blog/three-ways-to-represent-your-graphql-schema-a41f4175100d
92
+ */
93
+ getMeta(options = {}) {
94
+ // Get configurations
95
+ const config = {
96
+ cache: true,
97
+ log: false,
98
+ ...options,
99
+ };
100
+ // Use caching
101
+ if (config.cache) {
102
+ if (this._meta) {
103
+ return of(this._meta);
104
+ }
105
+ else if (this._metaObservable) {
106
+ return this._metaObservable;
107
+ }
108
+ }
109
+ // Request schema from server
110
+ const observable = this.getSchema(options).pipe(map((schema) => {
111
+ // Log
112
+ if (config.log) {
113
+ console.log({ schema });
114
+ }
115
+ this._meta = new GraphQLMeta(schema);
116
+ return this._meta;
117
+ }));
118
+ // Set observables
119
+ this._metaObservable = observable;
120
+ // Return result
121
+ return observable;
122
+ }
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GraphQLMetaService, deps: [{ token: i1.Apollo }], target: i0.ɵɵFactoryTarget.Injectable });
124
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GraphQLMetaService, providedIn: 'root' });
125
+ }
126
+ export { GraphQLMetaService };
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GraphQLMetaService, decorators: [{
128
+ type: Injectable,
129
+ args: [{
130
+ providedIn: 'root',
131
+ }]
132
+ }], ctorParameters: function () { return [{ type: i1.Apollo }]; } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1tZXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9ncmFwaHFsLW1ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBcUMsTUFBTSxTQUFTLENBQUM7QUFDdEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUVqRDs7OztHQUlHO0FBQ0gsTUFHYSxrQkFBa0I7SUFjUDtJQWJ0QixTQUFTO0lBQ0MsYUFBYSxDQUFnQjtJQUM3Qix1QkFBdUIsQ0FBNEI7SUFDbkQsS0FBSyxDQUFjO0lBQ25CLGVBQWUsQ0FBMEI7SUFDekMsaUJBQWlCLENBQTRCO0lBRXZELGlCQUFpQjtJQUNULG1CQUFtQixDQUFxQjtJQUVoRDs7T0FFRztJQUNILFlBQXNCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUV4Qzs7T0FFRztJQUNILElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVMsQ0FBQyxVQUFpRCxFQUFFO1FBQ2xFLHFCQUFxQjtRQUNyQixNQUFNLE1BQU0sR0FBRztZQUNiLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLElBQUk7WUFDWixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsY0FBYztRQUNkLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNoQixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdkMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQy9CO1lBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7WUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO2dCQUNqRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQzthQUNyQztpQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ25ELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO2FBQy9CO1NBQ0Y7UUFFRCw2QkFBNkI7UUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU07YUFDM0IsS0FBSyxDQUFDO1lBQ0wsS0FBSyxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzNELENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDbEIsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBRXZDLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUVuRix1QkFBdUI7WUFDdkIsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7YUFDM0I7WUFDRCxPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUosa0JBQWtCO1FBQ2xCLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1NBQzNDO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDO1NBQ3JDO1FBRUQsZ0JBQWdCO1FBQ2hCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPLENBQUMsVUFBOEMsRUFBRTtRQUM3RCxxQkFBcUI7UUFDckIsTUFBTSxNQUFNLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSTtZQUNYLEdBQUcsRUFBRSxLQUFLO1lBQ1YsR0FBRyxPQUFPO1NBQ1gsQ0FBQztRQUVGLGNBQWM7UUFDZCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNkLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUM3QjtTQUNGO1FBRUQsNkJBQTZCO1FBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3QyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUNsQixNQUFNO1lBQ04sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3pCO1lBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQztRQUVsQyxnQkFBZ0I7UUFDaEIsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzt1R0F6SFUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7U0FFUCxrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcG9sbG8sIGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBidWlsZENsaWVudFNjaGVtYSwgZ2V0SW50cm9zcGVjdGlvblF1ZXJ5LCBHcmFwaFFMU2NoZW1hLCBJbnRyb3NwZWN0aW9uUXVlcnkgfSBmcm9tICdncmFwaHFsJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEdyYXBoUUxNZXRhIH0gZnJvbSAnLi4vY2xhc3Nlcy9ncmFwaHFsLW1ldGEuY2xhc3MnO1xuaW1wb3J0IHsgSGVscGVyIH0gZnJvbSAnLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xuXG4vKipcbiAqIEdyYXBoUUwgbWV0YSBzZXJ2aWNlXG4gKlxuICogRm9yIGNvbGxlY3RpbmcgbWV0YSBpbmZvcm1hdGlvbiBvZiB0aGUgR3JhcGhRTCBBUElcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdyYXBoUUxNZXRhU2VydmljZSB7XG4gIC8vIENhY2hlc1xuICBwcm90ZWN0ZWQgX2Zyb3plblNjaGVtYTogR3JhcGhRTFNjaGVtYTtcbiAgcHJvdGVjdGVkIF9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEdyYXBoUUxTY2hlbWE+O1xuICBwcm90ZWN0ZWQgX21ldGE6IEdyYXBoUUxNZXRhO1xuICBwcm90ZWN0ZWQgX21ldGFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEdyYXBoUUxNZXRhPjtcbiAgcHJvdGVjdGVkIF9zY2hlbWFPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEdyYXBoUUxTY2hlbWE+O1xuXG4gIC8vIFByaXZhdGUgY2FjaGVzXG4gIHByaXZhdGUgX2ludHJvc3BlY3Rpb25RdWVyeTogSW50cm9zcGVjdGlvblF1ZXJ5O1xuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHNlcnZpY2VzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8pIHt9XG5cbiAgLyoqXG4gICAqIEdldHRlciBvZiBpbnRyb3NwZWN0aW9uUXVlcnlcbiAgICovXG4gIGdldCBpbnRyb3NwZWN0aW9uUXVlcnkoKTogSW50cm9zcGVjdGlvblF1ZXJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9pbnRyb3NwZWN0aW9uUXVlcnkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc2NoZW1hIGZvciBBUElcbiAgICogU2VlIGh0dHBzOi8vd3d3LmFwb2xsb2dyYXBocWwuY29tL2Jsb2cvdGhyZWUtd2F5cy10by1yZXByZXNlbnQteW91ci1ncmFwaHFsLXNjaGVtYS1hNDFmNDE3NTEwMGRcbiAgICovXG4gIHB1YmxpYyBnZXRTY2hlbWEob3B0aW9uczogeyBjYWNoZT86IGJvb2xlYW47IGZyZWV6ZT86IGJvb2xlYW4gfSA9IHt9KTogT2JzZXJ2YWJsZTxHcmFwaFFMU2NoZW1hPiB7XG4gICAgLy8gR2V0IGNvbmZpZ3VyYXRpb25zXG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgY2FjaGU6IHRydWUsXG4gICAgICBmcmVlemU6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBVc2UgY2FjaGluZ1xuICAgIGlmIChjb25maWcuY2FjaGUpIHtcbiAgICAgIGlmIChjb25maWcuZnJlZXplICYmIHRoaXMuX2Zyb3plblNjaGVtYSkge1xuICAgICAgICByZXR1cm4gb2YodGhpcy5fZnJvemVuU2NoZW1hKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9pbnRyb3NwZWN0aW9uUXVlcnkpIHtcbiAgICAgICAgcmV0dXJuIG9mKGJ1aWxkQ2xpZW50U2NoZW1hKHRoaXMuaW50cm9zcGVjdGlvblF1ZXJ5KSk7XG4gICAgICB9XG4gICAgICBpZiAoY29uZmlnLmZyZWV6ZSAmJiB0aGlzLl9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mcm96ZW5TY2hlbWFPYnNlcnZhYmxlO1xuICAgICAgfSBlbHNlIGlmICghY29uZmlnLmZyZWV6ZSAmJiB0aGlzLl9zY2hlbWFPYnNlcnZhYmxlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY2hlbWFPYnNlcnZhYmxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlcXVlc3Qgc2NoZW1hIGZyb20gc2VydmVyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuYXBvbGxvXG4gICAgICAucXVlcnkoe1xuICAgICAgICBxdWVyeTogZ3FsKGdldEludHJvc3BlY3Rpb25RdWVyeSh7IGRlc2NyaXB0aW9uczogZmFsc2UgfSkpLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHNjaGVtYTogYW55KSA9PiB7XG4gICAgICAgICAgLy8gQ2FjaGUgaW50cm9zcGVjdGlvblF1ZXJ5XG4gICAgICAgICAgdGhpcy5faW50cm9zcGVjdGlvblF1ZXJ5ID0gc2NoZW1hLmRhdGE7XG5cbiAgICAgICAgICAvLyBDb252ZXJ0IHNjaGVtYSB0byBHcmFwaFFMU2NoZW1hXG4gICAgICAgICAgdGhpcy5fZnJvemVuU2NoZW1hID0gSGVscGVyLmRlZXBGcmVlemUoYnVpbGRDbGllbnRTY2hlbWEodGhpcy5pbnRyb3NwZWN0aW9uUXVlcnkpKTtcblxuICAgICAgICAgIC8vIFJldHVybiBHcmFwaFFMU2NoZW1hXG4gICAgICAgICAgaWYgKGNvbmZpZy5mcmVlemUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9mcm96ZW5TY2hlbWE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBidWlsZENsaWVudFNjaGVtYShzY2hlbWEuZGF0YSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgLy8gU2V0IG9ic2VydmFibGVzXG4gICAgaWYgKGNvbmZpZy5mcmVlemUpIHtcbiAgICAgIHRoaXMuX2Zyb3plblNjaGVtYU9ic2VydmFibGUgPSBvYnNlcnZhYmxlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zY2hlbWFPYnNlcnZhYmxlID0gb2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gcmVzdWx0XG4gICAgcmV0dXJuIG9ic2VydmFibGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG1ldGEgZm9yIEFQSVxuICAgKiBTZWUgaHR0cHM6Ly93d3cuYXBvbGxvZ3JhcGhxbC5jb20vYmxvZy90aHJlZS13YXlzLXRvLXJlcHJlc2VudC15b3VyLWdyYXBocWwtc2NoZW1hLWE0MWY0MTc1MTAwZFxuICAgKi9cbiAgcHVibGljIGdldE1ldGEob3B0aW9uczogeyBjYWNoZT86IGJvb2xlYW47IGxvZz86IGJvb2xlYW4gfSA9IHt9KTogT2JzZXJ2YWJsZTxHcmFwaFFMTWV0YT4ge1xuICAgIC8vIEdldCBjb25maWd1cmF0aW9uc1xuICAgIGNvbnN0IGNvbmZpZyA9IHtcbiAgICAgIGNhY2hlOiB0cnVlLFxuICAgICAgbG9nOiBmYWxzZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIFVzZSBjYWNoaW5nXG4gICAgaWYgKGNvbmZpZy5jYWNoZSkge1xuICAgICAgaWYgKHRoaXMuX21ldGEpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRoaXMuX21ldGEpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9tZXRhT2JzZXJ2YWJsZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWV0YU9ic2VydmFibGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVxdWVzdCBzY2hlbWEgZnJvbSBzZXJ2ZXJcbiAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5nZXRTY2hlbWEob3B0aW9ucykucGlwZShcbiAgICAgIG1hcCgoc2NoZW1hOiBhbnkpID0+IHtcbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBzY2hlbWEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9tZXRhID0gbmV3IEdyYXBoUUxNZXRhKHNjaGVtYSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9tZXRhO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgLy8gU2V0IG9ic2VydmFibGVzXG4gICAgdGhpcy5fbWV0YU9ic2VydmFibGUgPSBvYnNlcnZhYmxlO1xuXG4gICAgLy8gUmV0dXJuIHJlc3VsdFxuICAgIHJldHVybiBvYnNlcnZhYmxlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,94 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { GraphQLService } from './graphql.service';
4
+ import { GraphQLRequestType } from '../enums/graphql-request-type.enum';
5
+ import { BASE_MODULE_CONFIG } from '../interfaces/base-module-config.interface';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "apollo-angular";
8
+ import * as i2 from "./graphql-meta.service";
9
+ import * as i3 from "./loader.service";
10
+ /**
11
+ * GraphQL plus service, for extra error handling and loading indication
12
+ */
13
+ class GraphQLPlusService extends GraphQLService {
14
+ apollo;
15
+ graphqlMetaService;
16
+ loaderService;
17
+ moduleConfig;
18
+ /**
19
+ * Include services
20
+ */
21
+ constructor(apollo, graphqlMetaService, loaderService, moduleConfig) {
22
+ super(apollo, graphqlMetaService, moduleConfig);
23
+ this.apollo = apollo;
24
+ this.graphqlMetaService = graphqlMetaService;
25
+ this.loaderService = loaderService;
26
+ this.moduleConfig = moduleConfig;
27
+ }
28
+ graphQl(graphql, options = {}) {
29
+ this.handleLoader('start', options);
30
+ return new Observable((subscriber) => {
31
+ super.graphQl(graphql, options).subscribe((response) => {
32
+ if (response && response.errors) {
33
+ this.handleError(response.errors, options.excludedErrors);
34
+ subscriber.error(response);
35
+ this.handleLoader('stop', options);
36
+ subscriber.complete();
37
+ }
38
+ subscriber.next(response);
39
+ this.handleLoader('stop', options);
40
+ if (options.type !== GraphQLRequestType.SUBSCRIPTION) {
41
+ subscriber.complete();
42
+ }
43
+ }, (error) => {
44
+ if (!options.ignoreErrors) {
45
+ this.handleError(error, options.excludedErrors);
46
+ }
47
+ subscriber.error(error);
48
+ this.handleLoader('stop', options);
49
+ subscriber.complete();
50
+ });
51
+ });
52
+ }
53
+ handleLoader(state, options) {
54
+ if (options.loading) {
55
+ if (state === 'start') {
56
+ this.loaderService.start();
57
+ }
58
+ else if (state === 'stop') {
59
+ this.loaderService.stop();
60
+ }
61
+ }
62
+ }
63
+ handleError(error, excludedErrors = null) {
64
+ if (excludedErrors) {
65
+ if (Array.isArray(excludedErrors)) {
66
+ excludedErrors.forEach((excludedError) => {
67
+ if (error.message.includes(excludedError.toLowerCase())) {
68
+ return;
69
+ }
70
+ });
71
+ }
72
+ else if (error.message.toLowerCase().includes(excludedErrors?.toLowerCase())) {
73
+ return;
74
+ }
75
+ }
76
+ this.displayError(error);
77
+ }
78
+ displayError(error) {
79
+ console.error(error);
80
+ }
81
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GraphQLPlusService, deps: [{ token: i1.Apollo }, { token: i2.GraphQLMetaService }, { token: i3.LoaderService }, { token: BASE_MODULE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
82
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GraphQLPlusService, providedIn: 'root' });
83
+ }
84
+ export { GraphQLPlusService };
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: GraphQLPlusService, decorators: [{
86
+ type: Injectable,
87
+ args: [{
88
+ providedIn: 'root',
89
+ }]
90
+ }], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }, { type: i3.LoaderService }, { type: undefined, decorators: [{
91
+ type: Inject,
92
+ args: [BASE_MODULE_CONFIG]
93
+ }] }]; } });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1wbHVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL3NoYXJlZC9zZXJ2aWNlcy9ncmFwaHFsLXBsdXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUluRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sNENBQTRDLENBQUM7Ozs7O0FBRWxHOztHQUVHO0FBQ0gsTUFHYSxrQkFBbUIsU0FBUSxjQUFjO0lBS3hDO0lBQ0E7SUFDQTtJQUM0QjtJQVB4Qzs7T0FFRztJQUNILFlBQ1ksTUFBYyxFQUNkLGtCQUFzQyxFQUN0QyxhQUE0QixFQUNBLFlBQThCO1FBRXBFLEtBQUssQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFMdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDQSxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7SUFHdEUsQ0FBQztJQUVNLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBK0IsRUFBRTtRQUMvRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVwQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUN2QyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNYLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzFELFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNuQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3ZCO2dCQUVELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsWUFBWSxFQUFFO29CQUNwRCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3ZCO1lBQ0gsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDakQ7Z0JBQ0QsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ25DLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUF1QixFQUFFLE9BQTRCO1FBQ2hFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixJQUFJLEtBQUssS0FBSyxPQUFPLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDNUI7aUJBQU0sSUFBSSxLQUFLLEtBQUssTUFBTSxFQUFFO2dCQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVksRUFBRSxpQkFBc0IsSUFBSTtRQUNsRCxJQUFJLGNBQWMsRUFBRTtZQUNsQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ2pDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTt3QkFDdkQsT0FBTztxQkFDUjtnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNKO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUU7Z0JBQzlFLE9BQU87YUFDUjtTQUNGO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO3VHQXhFVSxrQkFBa0IsdUdBUW5CLGtCQUFrQjsyR0FSakIsa0JBQWtCLGNBRmpCLE1BQU07O1NBRVAsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFTSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JhcGhRTFNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBHcmFwaFFMTWV0YVNlcnZpY2UgfSBmcm9tICcuL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmltcG9ydCB7IElHcmFwaFFMUGx1c09wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyYXBocWwtcGx1cy1vcHRpb25zLmludGVyZmFjZW4nO1xuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4vbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlIH0gZnJvbSAnLi4vZW51bXMvZ3JhcGhxbC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBCQVNFX01PRFVMRV9DT05GSUcsIEJhc2VNb2R1bGVDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEdyYXBoUUwgcGx1cyBzZXJ2aWNlLCBmb3IgZXh0cmEgZXJyb3IgaGFuZGxpbmcgYW5kIGxvYWRpbmcgaW5kaWNhdGlvblxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR3JhcGhRTFBsdXNTZXJ2aWNlIGV4dGVuZHMgR3JhcGhRTFNlcnZpY2Uge1xuICAvKipcbiAgICogSW5jbHVkZSBzZXJ2aWNlc1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGFwb2xsbzogQXBvbGxvLFxuICAgIHByb3RlY3RlZCBncmFwaHFsTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZSxcbiAgICBASW5qZWN0KEJBU0VfTU9EVUxFX0NPTkZJRykgcHJvdGVjdGVkIG1vZHVsZUNvbmZpZzogQmFzZU1vZHVsZUNvbmZpZ1xuICApIHtcbiAgICBzdXBlcihhcG9sbG8sIGdyYXBocWxNZXRhU2VydmljZSwgbW9kdWxlQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBncmFwaFFsKGdyYXBocWw6IHN0cmluZywgb3B0aW9uczogSUdyYXBoUUxQbHVzT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLmhhbmRsZUxvYWRlcignc3RhcnQnLCBvcHRpb25zKTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3VwZXIuZ3JhcGhRbChncmFwaHFsLCBvcHRpb25zKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5lcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzcG9uc2UuZXJyb3JzLCBvcHRpb25zLmV4Y2x1ZGVkRXJyb3JzKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IocmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVMb2FkZXIoJ3N0b3AnLCBvcHRpb25zKTtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzcG9uc2UpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlTG9hZGVyKCdzdG9wJywgb3B0aW9ucyk7XG4gICAgICAgICAgaWYgKG9wdGlvbnMudHlwZSAhPT0gR3JhcGhRTFJlcXVlc3RUeXBlLlNVQlNDUklQVElPTikge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgaWYgKCFvcHRpb25zLmlnbm9yZUVycm9ycykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvciwgb3B0aW9ucy5leGNsdWRlZEVycm9ycyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHRoaXMuaGFuZGxlTG9hZGVyKCdzdG9wJywgb3B0aW9ucyk7XG4gICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlTG9hZGVyKHN0YXRlOiAnc3RhcnQnIHwgJ3N0b3AnLCBvcHRpb25zOiBJR3JhcGhRTFBsdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbnMubG9hZGluZykge1xuICAgICAgaWYgKHN0YXRlID09PSAnc3RhcnQnKSB7XG4gICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5zdGFydCgpO1xuICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gJ3N0b3AnKSB7XG4gICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5zdG9wKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yLCBleGNsdWRlZEVycm9yczogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgIGlmIChleGNsdWRlZEVycm9ycykge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZXhjbHVkZWRFcnJvcnMpKSB7XG4gICAgICAgIGV4Y2x1ZGVkRXJyb3JzLmZvckVhY2goKGV4Y2x1ZGVkRXJyb3IpID0+IHtcbiAgICAgICAgICBpZiAoZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhleGNsdWRlZEVycm9yLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZXJyb3IubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGV4Y2x1ZGVkRXJyb3JzPy50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5kaXNwbGF5RXJyb3IoZXJyb3IpO1xuICB9XG5cbiAgZGlzcGxheUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgfVxufVxuIl19