@sunbird-cb/utils 1.0.0 → 1.0.4

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 (245) hide show
  1. package/bundles/sunbird-cb-utils.umd.js +5082 -4921
  2. package/bundles/sunbird-cb-utils.umd.js.map +1 -1
  3. package/bundles/sunbird-cb-utils.umd.min.js +1 -1
  4. package/bundles/sunbird-cb-utils.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/image-crop/image-crop.component.js +194 -194
  6. package/esm2015/lib/components/image-crop/image-crop.module.js +26 -26
  7. package/esm2015/lib/constants/features.enum.js +554 -554
  8. package/esm2015/lib/constants/instances.enum.js +4 -4
  9. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +86 -86
  10. package/esm2015/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +14 -14
  11. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.directive.js +37 -37
  12. package/esm2015/lib/directives/default-thumbnail/default-thumbnail.module.js +14 -14
  13. package/esm2015/lib/directives/image-responsive/image-responsive.directive.js +91 -91
  14. package/esm2015/lib/directives/image-responsive/image-responsive.module.js +14 -14
  15. package/esm2015/lib/directives/in-view-port/in-view-port.directive.js +67 -67
  16. package/esm2015/lib/directives/in-view-port/in-view-port.module.js +14 -14
  17. package/esm2015/lib/directives/navigation/navigation.directive.js +38 -38
  18. package/esm2015/lib/directives/navigation/navigation.module.js +14 -14
  19. package/esm2015/lib/directives/permission/permission.directive.js +10 -10
  20. package/esm2015/lib/directives/permission/permission.module.js +14 -14
  21. package/esm2015/lib/helpers/functions/getStringifiedQueryParams.js +8 -8
  22. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +98 -98
  23. package/esm2015/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +18 -18
  24. package/esm2015/lib/helpers/logout/logout.component.js +55 -55
  25. package/esm2015/lib/helpers/logout/logout.module.js +17 -17
  26. package/esm2015/lib/models/contentRating.model.js +12 -12
  27. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +12 -12
  28. package/esm2015/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +58 -58
  29. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +14 -14
  30. package/esm2015/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +32 -32
  31. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +14 -14
  32. package/esm2015/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +42 -42
  33. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +14 -14
  34. package/esm2015/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +59 -59
  35. package/esm2015/lib/pipes/pipe-filter/pipe-filter.module.js +14 -14
  36. package/esm2015/lib/pipes/pipe-filter/pipe-filter.pipe.js +15 -15
  37. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +14 -14
  38. package/esm2015/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +29 -29
  39. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +14 -14
  40. package/esm2015/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js +11 -11
  41. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +14 -14
  42. package/esm2015/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +24 -24
  43. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +14 -14
  44. package/esm2015/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +16 -16
  45. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +14 -14
  46. package/esm2015/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +30 -30
  47. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.module.js +14 -14
  48. package/esm2015/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +15 -15
  49. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +14 -14
  50. package/esm2015/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +17 -17
  51. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +14 -14
  52. package/esm2015/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js +15 -15
  53. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +14 -14
  54. package/esm2015/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +34 -34
  55. package/esm2015/lib/resolvers/explore-detail.resolver.js +88 -88
  56. package/esm2015/lib/resolvers/marketing-offering.resolve.js +39 -39
  57. package/esm2015/lib/resolvers/page.constant.js +3 -3
  58. package/esm2015/lib/resolvers/page.model.js +46 -46
  59. package/esm2015/lib/resolvers/page.resolver.js +89 -89
  60. package/esm2015/lib/resolvers/resolver.model.js +5 -5
  61. package/esm2015/lib/services/auth-keycloak.service.js +225 -230
  62. package/esm2015/lib/services/auth-microsoft.service.js +195 -195
  63. package/esm2015/lib/services/card-content.model.js +30 -30
  64. package/esm2015/lib/services/configurations.model.js +508 -490
  65. package/esm2015/lib/services/configurations.service.js +103 -109
  66. package/esm2015/lib/services/content-strip-multiple.model.js +74 -74
  67. package/esm2015/lib/services/event.model.js +163 -154
  68. package/esm2015/lib/services/event.service.js +53 -39
  69. package/esm2015/lib/services/logger.service.js +54 -54
  70. package/esm2015/lib/services/ms-office.model.js +7 -7
  71. package/esm2015/lib/services/subapplication-respond.service.js +224 -224
  72. package/esm2015/lib/services/telemetry.service.js +400 -278
  73. package/esm2015/lib/services/user-preference.model.js +28 -28
  74. package/esm2015/lib/services/user-preference.service.js +89 -89
  75. package/esm2015/lib/services/utility.service.js +99 -99
  76. package/esm2015/lib/services/value.service.js +30 -30
  77. package/esm2015/lib/services/widget-content.model.js +341 -341
  78. package/esm2015/lib/services/widget-content.service.js +191 -191
  79. package/esm2015/lib/services/widget-resolver.model.js +56 -56
  80. package/esm2015/lib/services/widget-search.model.js +125 -125
  81. package/esm2015/public-api.js +66 -66
  82. package/esm2015/sunbird-cb-utils.js +8 -8
  83. package/esm5/lib/components/image-crop/image-crop.component.js +199 -199
  84. package/esm5/lib/components/image-crop/image-crop.module.js +30 -30
  85. package/esm5/lib/constants/features.enum.js +554 -554
  86. package/esm5/lib/constants/instances.enum.js +4 -4
  87. package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.js +104 -104
  88. package/esm5/lib/directives/class-change-on-scroll/class-change-on-scroll.module.js +18 -18
  89. package/esm5/lib/directives/default-thumbnail/default-thumbnail.directive.js +39 -39
  90. package/esm5/lib/directives/default-thumbnail/default-thumbnail.module.js +18 -18
  91. package/esm5/lib/directives/image-responsive/image-responsive.directive.js +94 -94
  92. package/esm5/lib/directives/image-responsive/image-responsive.module.js +18 -18
  93. package/esm5/lib/directives/in-view-port/in-view-port.directive.js +72 -72
  94. package/esm5/lib/directives/in-view-port/in-view-port.module.js +18 -18
  95. package/esm5/lib/directives/navigation/navigation.directive.js +40 -40
  96. package/esm5/lib/directives/navigation/navigation.module.js +18 -18
  97. package/esm5/lib/directives/permission/permission.directive.js +13 -13
  98. package/esm5/lib/directives/permission/permission.module.js +18 -18
  99. package/esm5/lib/helpers/functions/getStringifiedQueryParams.js +8 -8
  100. package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.component.js +102 -102
  101. package/esm5/lib/helpers/horizontal-scroller/horizontal-scroller.module.js +22 -22
  102. package/esm5/lib/helpers/logout/logout.component.js +61 -61
  103. package/esm5/lib/helpers/logout/logout.module.js +21 -21
  104. package/esm5/lib/models/contentRating.model.js +12 -12
  105. package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.js +16 -16
  106. package/esm5/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.js +62 -62
  107. package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.module.js +18 -18
  108. package/esm5/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.js +36 -36
  109. package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.module.js +18 -18
  110. package/esm5/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.js +44 -44
  111. package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.js +18 -18
  112. package/esm5/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.js +63 -63
  113. package/esm5/lib/pipes/pipe-filter/pipe-filter.module.js +18 -18
  114. package/esm5/lib/pipes/pipe-filter/pipe-filter.pipe.js +19 -19
  115. package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.module.js +18 -18
  116. package/esm5/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.js +37 -37
  117. package/esm5/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.js +18 -18
  118. package/esm5/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.js +15 -15
  119. package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.module.js +18 -18
  120. package/esm5/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.js +29 -29
  121. package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.module.js +18 -18
  122. package/esm5/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.js +20 -20
  123. package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.module.js +18 -18
  124. package/esm5/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.js +34 -34
  125. package/esm5/lib/pipes/pipe-order-by/pipe-order-by.module.js +18 -18
  126. package/esm5/lib/pipes/pipe-order-by/pipe-order-by.pipe.js +17 -17
  127. package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.module.js +18 -18
  128. package/esm5/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.js +33 -33
  129. package/esm5/lib/pipes/pipe-relative-time/pipe-relative-time.module.js +18 -18
  130. package/esm5/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.js +19 -19
  131. package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.js +18 -18
  132. package/esm5/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.js +37 -37
  133. package/esm5/lib/resolvers/explore-detail.resolver.js +92 -92
  134. package/esm5/lib/resolvers/marketing-offering.resolve.js +42 -42
  135. package/esm5/lib/resolvers/page.constant.js +3 -3
  136. package/esm5/lib/resolvers/page.model.js +46 -46
  137. package/esm5/lib/resolvers/page.resolver.js +97 -97
  138. package/esm5/lib/resolvers/resolver.model.js +5 -5
  139. package/esm5/lib/services/auth-keycloak.service.js +293 -302
  140. package/esm5/lib/services/auth-microsoft.service.js +250 -250
  141. package/esm5/lib/services/card-content.model.js +30 -30
  142. package/esm5/lib/services/configurations.model.js +508 -490
  143. package/esm5/lib/services/configurations.service.js +105 -111
  144. package/esm5/lib/services/content-strip-multiple.model.js +74 -74
  145. package/esm5/lib/services/event.model.js +163 -154
  146. package/esm5/lib/services/event.service.js +55 -41
  147. package/esm5/lib/services/logger.service.js +72 -72
  148. package/esm5/lib/services/ms-office.model.js +7 -7
  149. package/esm5/lib/services/subapplication-respond.service.js +229 -229
  150. package/esm5/lib/services/telemetry.service.js +429 -296
  151. package/esm5/lib/services/user-preference.model.js +28 -28
  152. package/esm5/lib/services/user-preference.service.js +108 -108
  153. package/esm5/lib/services/utility.service.js +127 -127
  154. package/esm5/lib/services/value.service.js +32 -32
  155. package/esm5/lib/services/widget-content.model.js +341 -341
  156. package/esm5/lib/services/widget-content.service.js +213 -213
  157. package/esm5/lib/services/widget-resolver.model.js +56 -56
  158. package/esm5/lib/services/widget-search.model.js +125 -125
  159. package/esm5/public-api.js +66 -66
  160. package/esm5/sunbird-cb-utils.js +8 -8
  161. package/fesm2015/sunbird-cb-utils.js +4666 -4512
  162. package/fesm2015/sunbird-cb-utils.js.map +1 -1
  163. package/fesm5/sunbird-cb-utils.js +5074 -4913
  164. package/fesm5/sunbird-cb-utils.js.map +1 -1
  165. package/lib/components/image-crop/image-crop.component.d.ts +56 -56
  166. package/lib/components/image-crop/image-crop.module.d.ts +2 -2
  167. package/lib/constants/features.enum.d.ts +553 -553
  168. package/lib/constants/instances.enum.d.ts +3 -3
  169. package/lib/constants/misc.constants.d.ts +2 -2
  170. package/lib/directives/class-change-on-scroll/class-change-on-scroll.directive.d.ts +18 -18
  171. package/lib/directives/class-change-on-scroll/class-change-on-scroll.module.d.ts +2 -2
  172. package/lib/directives/default-thumbnail/default-thumbnail.directive.d.ts +9 -9
  173. package/lib/directives/default-thumbnail/default-thumbnail.module.d.ts +2 -2
  174. package/lib/directives/image-responsive/image-responsive.directive.d.ts +17 -17
  175. package/lib/directives/image-responsive/image-responsive.module.d.ts +2 -2
  176. package/lib/directives/in-view-port/in-view-port.directive.d.ts +11 -11
  177. package/lib/directives/in-view-port/in-view-port.module.d.ts +2 -2
  178. package/lib/directives/navigation/navigation.directive.d.ts +9 -9
  179. package/lib/directives/navigation/navigation.module.d.ts +2 -2
  180. package/lib/directives/permission/permission.directive.d.ts +3 -3
  181. package/lib/directives/permission/permission.module.d.ts +2 -2
  182. package/lib/helpers/functions/getStringifiedQueryParams.d.ts +3 -3
  183. package/lib/helpers/horizontal-scroller/horizontal-scroller.component.d.ts +18 -18
  184. package/lib/helpers/horizontal-scroller/horizontal-scroller.module.d.ts +2 -2
  185. package/lib/helpers/logout/logout.component.d.ts +18 -18
  186. package/lib/helpers/logout/logout.module.d.ts +2 -2
  187. package/lib/models/contentRating.model.d.ts +9 -9
  188. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.module.d.ts +2 -2
  189. package/lib/pipes/pipe-concise-date-range/pipe-concise-date-range.pipe.d.ts +10 -10
  190. package/lib/pipes/pipe-count-transform/pipe-count-transform.module.d.ts +2 -2
  191. package/lib/pipes/pipe-count-transform/pipe-count-transform.pipe.d.ts +4 -4
  192. package/lib/pipes/pipe-date-concat/pipe-date-concat.module.d.ts +2 -2
  193. package/lib/pipes/pipe-date-concat/pipe-date-concat.pipe.d.ts +13 -13
  194. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.module.d.ts +2 -2
  195. package/lib/pipes/pipe-duration-transform/pipe-duration-transform.pipe.d.ts +5 -5
  196. package/lib/pipes/pipe-filter/pipe-filter.module.d.ts +2 -2
  197. package/lib/pipes/pipe-filter/pipe-filter.pipe.d.ts +4 -4
  198. package/lib/pipes/pipe-filter-search/pipe-filter-search.module.d.ts +2 -2
  199. package/lib/pipes/pipe-filter-search/pipe-filter-search.pipe.d.ts +4 -4
  200. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.module.d.ts +2 -2
  201. package/lib/pipes/pipe-html-tag-removal/pipe-html-tag-removal.pipe.d.ts +4 -4
  202. package/lib/pipes/pipe-limit-to/pipe-limit-to.module.d.ts +2 -2
  203. package/lib/pipes/pipe-limit-to/pipe-limit-to.pipe.d.ts +4 -4
  204. package/lib/pipes/pipe-list-filter/pipe-list-filter.module.d.ts +2 -2
  205. package/lib/pipes/pipe-list-filter/pipe-list-filter.pipe.d.ts +4 -4
  206. package/lib/pipes/pipe-name-transform/pipe-name-transform.module.d.ts +2 -2
  207. package/lib/pipes/pipe-name-transform/pipe-name-transform.pipe.d.ts +10 -10
  208. package/lib/pipes/pipe-order-by/pipe-order-by.module.d.ts +2 -2
  209. package/lib/pipes/pipe-order-by/pipe-order-by.pipe.d.ts +9 -9
  210. package/lib/pipes/pipe-partial-content/pipe-partial-content.module.d.ts +2 -2
  211. package/lib/pipes/pipe-partial-content/pipe-partial-content.pipe.d.ts +4 -4
  212. package/lib/pipes/pipe-relative-time/pipe-relative-time.module.d.ts +2 -2
  213. package/lib/pipes/pipe-relative-time/pipe-relative-time.pipe.d.ts +4 -4
  214. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.module.d.ts +2 -2
  215. package/lib/pipes/pipe-safe-sanitizer/pipe-safe-sanitizer.pipe.d.ts +7 -7
  216. package/lib/resolvers/explore-detail.resolver.d.ts +16 -16
  217. package/lib/resolvers/marketing-offering.resolve.d.ts +10 -10
  218. package/lib/resolvers/page.constant.d.ts +1 -1
  219. package/lib/resolvers/page.model.d.ts +40 -40
  220. package/lib/resolvers/page.resolver.d.ts +17 -17
  221. package/lib/resolvers/resolver.model.d.ts +4 -4
  222. package/lib/services/auth-keycloak.service.d.ts +27 -29
  223. package/lib/services/auth-microsoft.service.d.ts +30 -30
  224. package/lib/services/card-content.model.d.ts +29 -29
  225. package/lib/services/configurations.model.d.ts +487 -473
  226. package/lib/services/configurations.service.d.ts +49 -51
  227. package/lib/services/content-strip-multiple.model.d.ts +79 -79
  228. package/lib/services/event.model.d.ts +137 -129
  229. package/lib/services/event.service.d.ts +9 -8
  230. package/lib/services/logger.service.d.ts +15 -15
  231. package/lib/services/ms-office.model.d.ts +6 -6
  232. package/lib/services/subapplication-respond.service.d.ts +25 -25
  233. package/lib/services/telemetry.service.d.ts +39 -33
  234. package/lib/services/user-preference.model.d.ts +26 -26
  235. package/lib/services/user-preference.service.d.ts +11 -11
  236. package/lib/services/utility.service.d.ts +23 -23
  237. package/lib/services/value.service.d.ts +8 -8
  238. package/lib/services/widget-content.model.d.ts +314 -314
  239. package/lib/services/widget-content.service.d.ts +49 -49
  240. package/lib/services/widget-resolver.model.d.ts +48 -48
  241. package/lib/services/widget-search.model.d.ts +114 -114
  242. package/package.json +1 -1
  243. package/public-api.d.ts +66 -66
  244. package/sunbird-cb-utils.d.ts +8 -8
  245. package/sunbird-cb-utils.metadata.json +1 -1
@@ -1,192 +1,192 @@
1
- import * as tslib_1 from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { of } from 'rxjs';
5
- import { catchError, retry } from 'rxjs/operators';
6
- import { ConfigurationsService } from './configurations.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common/http";
9
- import * as i2 from "./configurations.service";
10
- const PROTECTED_SLAG_V8 = '/apis/protected/v8';
11
- const ɵ0 = (type, id) => `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`, ɵ1 = (contentId) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`;
12
- const API_END_POINTS = {
13
- CONTENT: `${PROTECTED_SLAG_V8}/content`,
14
- AUTHORING_CONTENT: `/apis/authApi/hierarchy`,
15
- CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,
16
- SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,
17
- SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,
18
- FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,
19
- FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,
20
- MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,
21
- CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,
22
- CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,
23
- CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,
24
- CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,
25
- USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,
26
- CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,
27
- CONTENT_RATING_V2: `${PROTECTED_SLAG_V8}/user/rating/content/average-ratingInfo`,
28
- COLLECTION_HIERARCHY: (ɵ0),
29
- REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,
30
- MARK_AS_COMPLETE_META: (ɵ1),
31
- };
32
- export class WidgetContentService {
33
- constructor(http, configSvc) {
34
- this.http = http;
35
- this.configSvc = configSvc;
36
- }
37
- fetchMarkAsCompleteMeta(identifier) {
38
- const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier);
39
- return this.http.get(url).toPromise();
40
- }
41
- fetchContent(contentId, hierarchyType = 'detail', additionalFields = []) {
42
- const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`;
43
- return this.http
44
- .post(url, { additionalFields })
45
- .pipe(retry(1));
46
- }
47
- fetchAuthoringContent(contentId) {
48
- const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`;
49
- return this.http.get(url).pipe(retry(1));
50
- }
51
- fetchMultipleContent(ids) {
52
- return this.http.get(`${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`);
53
- }
54
- fetchCollectionHierarchy(type, id, pageNumber = 0, pageSize = 1) {
55
- return this.http.get(`${API_END_POINTS.COLLECTION_HIERARCHY(type, id)}?pageNumber=${pageNumber}&pageSize=${pageSize}`);
56
- }
57
- fetchContentLikes(contentIds) {
58
- return this.http
59
- .post(API_END_POINTS.CONTENT_LIKES, contentIds)
60
- .toPromise();
61
- }
62
- fetchContentRatings(contentIds) {
63
- return this.http
64
- .post(`${API_END_POINTS.CONTENT_RATING}/rating`, contentIds)
65
- .toPromise();
66
- }
67
- fetchContentRatingsV2(contentId) {
68
- return this.http
69
- .get(`${API_END_POINTS.CONTENT_RATING_V2}/${contentId}`);
70
- }
71
- fetchContentHistory(contentId) {
72
- return this.http.get(`${API_END_POINTS.CONTENT_HISTORY}/${contentId}`);
73
- }
74
- continueLearning(id, collectionId, collectionType) {
75
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
- return new Promise(((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
77
- if (collectionType &&
78
- collectionType.toLowerCase() === 'playlist') {
79
- const reqBody = {
80
- contextPathId: collectionId ? collectionId : id,
81
- resourceId: id,
82
- data: JSON.stringify({
83
- timestamp: Date.now(),
84
- contextFullPath: [collectionId, id],
85
- }),
86
- dateAccessed: Date.now(),
87
- contextType: 'playlist',
88
- };
89
- yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
90
- resolve(true);
91
- }));
92
- }
93
- else {
94
- const reqBody = {
95
- contextPathId: collectionId ? collectionId : id,
96
- resourceId: id,
97
- data: JSON.stringify({ timestamp: Date.now() }),
98
- dateAccessed: Date.now(),
99
- };
100
- yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
101
- resolve(true);
102
- }));
103
- }
104
- })));
105
- });
106
- }
107
- saveContinueLearning(content) {
108
- const url = API_END_POINTS.USER_CONTINUE_LEARNING;
109
- return this.http.post(url, content);
110
- }
111
- setS3Cookie(contentId) {
112
- return this.http
113
- .post(API_END_POINTS.SET_S3_COOKIE, { contentId })
114
- .pipe(catchError((_err => of(true))));
115
- }
116
- setS3ImageCookie() {
117
- return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError((_err => of(true))));
118
- }
119
- fetchManifest(url) {
120
- return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });
121
- }
122
- fetchWebModuleContent(url) {
123
- return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);
124
- }
125
- search(req) {
126
- req.query = req.query || '';
127
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_V5, {
128
- request: req,
129
- });
130
- }
131
- searchRegionRecommendation(req) {
132
- req.query = req.query || '';
133
- req.preLabelValue =
134
- (req.preLabelValue || '') +
135
- ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');
136
- req.filters = Object.assign({}, req.filters, { labels: [req.preLabelValue || ''] });
137
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION, { request: req });
138
- }
139
- searchV6(req) {
140
- req.query = req.query || '';
141
- return this.http.post(API_END_POINTS.CONTENT_SEARCH_V6, req);
142
- }
143
- fetchContentRating(contentId) {
144
- return this.http.get(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
145
- }
146
- deleteContentRating(contentId) {
147
- return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
148
- }
149
- addContentRating(contentId, data) {
150
- return this.http.post(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);
151
- }
152
- getFirstChildInHierarchy(content) {
153
- if (!(content.children || []).length) {
154
- return content;
155
- }
156
- if (content.contentType === 'Learning Path' &&
157
- !(content.artifactUrl && content.artifactUrl.length)) {
158
- const child = content.children[0];
159
- return this.getFirstChildInHierarchy(child);
160
- }
161
- if (content.contentType === 'Resource' ||
162
- content.contentType === 'Knowledge Artifact' ||
163
- content.contentType === 'Learning Path') {
164
- return content;
165
- }
166
- const firstChild = content.children[0];
167
- const resultContent = this.getFirstChildInHierarchy(firstChild);
168
- return resultContent;
169
- }
170
- getRegistrationStatus(source) {
171
- return this.http.get(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();
172
- }
173
- fetchConfig(url) {
174
- return this.http.get(url);
175
- }
176
- }
177
- WidgetContentService.decorators = [
178
- { type: Injectable, args: [{
179
- providedIn: 'root',
180
- },] }
181
- ];
182
- WidgetContentService.ctorParameters = () => [
183
- { type: HttpClient },
184
- { type: ConfigurationsService }
185
- ];
186
- /** @nocollapse */ WidgetContentService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WidgetContentService_Factory() { return new WidgetContentService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigurationsService)); }, token: WidgetContentService, providedIn: "root" });
187
- if (false) {
188
- WidgetContentService.prototype.http;
189
- WidgetContentService.prototype.configSvc;
190
- }
191
- export { ɵ0, ɵ1 };
1
+ import * as tslib_1 from "tslib";
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Injectable } from '@angular/core';
4
+ import { of } from 'rxjs';
5
+ import { catchError, retry } from 'rxjs/operators';
6
+ import { ConfigurationsService } from './configurations.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common/http";
9
+ import * as i2 from "./configurations.service";
10
+ const PROTECTED_SLAG_V8 = '/apis/protected/v8';
11
+ const ɵ0 = (type, id) => `${PROTECTED_SLAG_V8}/content/collection/${type}/${id}`, ɵ1 = (contentId) => `${PROTECTED_SLAG_V8}/user/progress/${contentId}`;
12
+ const API_END_POINTS = {
13
+ CONTENT: `${PROTECTED_SLAG_V8}/content`,
14
+ AUTHORING_CONTENT: `/apis/authApi/hierarchy`,
15
+ CONTENT_LIKES: `${PROTECTED_SLAG_V8}/content/likeCount`,
16
+ SET_S3_COOKIE: `${PROTECTED_SLAG_V8}/content/setCookie`,
17
+ SET_S3_IMAGE_COOKIE: `${PROTECTED_SLAG_V8}/content/setImageCookie`,
18
+ FETCH_MANIFEST: `${PROTECTED_SLAG_V8}/content/getWebModuleManifest`,
19
+ FETCH_WEB_MODULE_FILES: `${PROTECTED_SLAG_V8}/content/getWebModuleFiles`,
20
+ MULTIPLE_CONTENT: `${PROTECTED_SLAG_V8}/content/multiple`,
21
+ CONTENT_SEARCH_V5: `${PROTECTED_SLAG_V8}/content/searchV5`,
22
+ CONTENT_SEARCH_V6: `${PROTECTED_SLAG_V8}/content/searchV6`,
23
+ CONTENT_SEARCH_REGION_RECOMMENDATION: `${PROTECTED_SLAG_V8}/content/searchRegionRecommendation`,
24
+ CONTENT_HISTORY: `${PROTECTED_SLAG_V8}/user/history`,
25
+ USER_CONTINUE_LEARNING: `${PROTECTED_SLAG_V8}/user/history/continue`,
26
+ CONTENT_RATING: `${PROTECTED_SLAG_V8}/user/rating`,
27
+ CONTENT_RATING_V2: `${PROTECTED_SLAG_V8}/user/rating/content/average-ratingInfo`,
28
+ COLLECTION_HIERARCHY: (ɵ0),
29
+ REGISTRATION_STATUS: `${PROTECTED_SLAG_V8}/admin/userRegistration/checkUserRegistrationContent`,
30
+ MARK_AS_COMPLETE_META: (ɵ1),
31
+ };
32
+ export class WidgetContentService {
33
+ constructor(http, configSvc) {
34
+ this.http = http;
35
+ this.configSvc = configSvc;
36
+ }
37
+ fetchMarkAsCompleteMeta(identifier) {
38
+ const url = API_END_POINTS.MARK_AS_COMPLETE_META(identifier);
39
+ return this.http.get(url).toPromise();
40
+ }
41
+ fetchContent(contentId, hierarchyType = 'detail', additionalFields = []) {
42
+ const url = `${API_END_POINTS.CONTENT}/${contentId}?hierarchyType=${hierarchyType}`;
43
+ return this.http
44
+ .post(url, { additionalFields })
45
+ .pipe(retry(1));
46
+ }
47
+ fetchAuthoringContent(contentId) {
48
+ const url = `${API_END_POINTS.AUTHORING_CONTENT}/${contentId}`;
49
+ return this.http.get(url).pipe(retry(1));
50
+ }
51
+ fetchMultipleContent(ids) {
52
+ return this.http.get(`${API_END_POINTS.MULTIPLE_CONTENT}/${ids.join(',')}`);
53
+ }
54
+ fetchCollectionHierarchy(type, id, pageNumber = 0, pageSize = 1) {
55
+ return this.http.get(`${API_END_POINTS.COLLECTION_HIERARCHY(type, id)}?pageNumber=${pageNumber}&pageSize=${pageSize}`);
56
+ }
57
+ fetchContentLikes(contentIds) {
58
+ return this.http
59
+ .post(API_END_POINTS.CONTENT_LIKES, contentIds)
60
+ .toPromise();
61
+ }
62
+ fetchContentRatings(contentIds) {
63
+ return this.http
64
+ .post(`${API_END_POINTS.CONTENT_RATING}/rating`, contentIds)
65
+ .toPromise();
66
+ }
67
+ fetchContentRatingsV2(contentId) {
68
+ return this.http
69
+ .get(`${API_END_POINTS.CONTENT_RATING_V2}/${contentId}`);
70
+ }
71
+ fetchContentHistory(contentId) {
72
+ return this.http.get(`${API_END_POINTS.CONTENT_HISTORY}/${contentId}`);
73
+ }
74
+ continueLearning(id, collectionId, collectionType) {
75
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
+ return new Promise(((resolve) => tslib_1.__awaiter(this, void 0, void 0, function* () {
77
+ if (collectionType &&
78
+ collectionType.toLowerCase() === 'playlist') {
79
+ const reqBody = {
80
+ contextPathId: collectionId ? collectionId : id,
81
+ resourceId: id,
82
+ data: JSON.stringify({
83
+ timestamp: Date.now(),
84
+ contextFullPath: [collectionId, id],
85
+ }),
86
+ dateAccessed: Date.now(),
87
+ contextType: 'playlist',
88
+ };
89
+ yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
90
+ resolve(true);
91
+ }));
92
+ }
93
+ else {
94
+ const reqBody = {
95
+ contextPathId: collectionId ? collectionId : id,
96
+ resourceId: id,
97
+ data: JSON.stringify({ timestamp: Date.now() }),
98
+ dateAccessed: Date.now(),
99
+ };
100
+ yield this.saveContinueLearning(reqBody).toPromise().catch().finally((() => {
101
+ resolve(true);
102
+ }));
103
+ }
104
+ })));
105
+ });
106
+ }
107
+ saveContinueLearning(content) {
108
+ const url = API_END_POINTS.USER_CONTINUE_LEARNING;
109
+ return this.http.post(url, content);
110
+ }
111
+ setS3Cookie(contentId) {
112
+ return this.http
113
+ .post(API_END_POINTS.SET_S3_COOKIE, { contentId })
114
+ .pipe(catchError((_err => of(true))));
115
+ }
116
+ setS3ImageCookie() {
117
+ return this.http.post(API_END_POINTS.SET_S3_IMAGE_COOKIE, {}).pipe(catchError((_err => of(true))));
118
+ }
119
+ fetchManifest(url) {
120
+ return this.http.post(API_END_POINTS.FETCH_MANIFEST, { url });
121
+ }
122
+ fetchWebModuleContent(url) {
123
+ return this.http.get(`${API_END_POINTS.FETCH_WEB_MODULE_FILES}?url=${encodeURIComponent(url)}`);
124
+ }
125
+ search(req) {
126
+ req.query = req.query || '';
127
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_V5, {
128
+ request: req,
129
+ });
130
+ }
131
+ searchRegionRecommendation(req) {
132
+ req.query = req.query || '';
133
+ req.preLabelValue =
134
+ (req.preLabelValue || '') +
135
+ ((this.configSvc.userProfile && this.configSvc.userProfile.country) || '');
136
+ req.filters = Object.assign({}, req.filters, { labels: [req.preLabelValue || ''] });
137
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_REGION_RECOMMENDATION, { request: req });
138
+ }
139
+ searchV6(req) {
140
+ req.query = req.query || '';
141
+ return this.http.post(API_END_POINTS.CONTENT_SEARCH_V6, req);
142
+ }
143
+ fetchContentRating(contentId) {
144
+ return this.http.get(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
145
+ }
146
+ deleteContentRating(contentId) {
147
+ return this.http.delete(`${API_END_POINTS.CONTENT_RATING}/${contentId}`);
148
+ }
149
+ addContentRating(contentId, data) {
150
+ return this.http.post(`${API_END_POINTS.CONTENT_RATING}/${contentId}`, data);
151
+ }
152
+ getFirstChildInHierarchy(content) {
153
+ if (!(content.children || []).length) {
154
+ return content;
155
+ }
156
+ if (content.contentType === 'Learning Path' &&
157
+ !(content.artifactUrl && content.artifactUrl.length)) {
158
+ const child = content.children[0];
159
+ return this.getFirstChildInHierarchy(child);
160
+ }
161
+ if (content.contentType === 'Resource' ||
162
+ content.contentType === 'Knowledge Artifact' ||
163
+ content.contentType === 'Learning Path') {
164
+ return content;
165
+ }
166
+ const firstChild = content.children[0];
167
+ const resultContent = this.getFirstChildInHierarchy(firstChild);
168
+ return resultContent;
169
+ }
170
+ getRegistrationStatus(source) {
171
+ return this.http.get(`${API_END_POINTS.REGISTRATION_STATUS}/${source}`).toPromise();
172
+ }
173
+ fetchConfig(url) {
174
+ return this.http.get(url);
175
+ }
176
+ }
177
+ WidgetContentService.decorators = [
178
+ { type: Injectable, args: [{
179
+ providedIn: 'root',
180
+ },] }
181
+ ];
182
+ WidgetContentService.ctorParameters = () => [
183
+ { type: HttpClient },
184
+ { type: ConfigurationsService }
185
+ ];
186
+ /** @nocollapse */ WidgetContentService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function WidgetContentService_Factory() { return new WidgetContentService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.ConfigurationsService)); }, token: WidgetContentService, providedIn: "root" });
187
+ if (false) {
188
+ WidgetContentService.prototype.http;
189
+ WidgetContentService.prototype.configSvc;
190
+ }
191
+ export { ɵ0, ɵ1 };
192
192
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbnRlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdW5iaXJkLWNiL3V0aWxzLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3dpZGdldC1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7OztNQU0xRCxpQkFBaUIsR0FBRyxvQkFBb0I7V0FrQnRCLENBQUMsSUFBWSxFQUFFLEVBQVUsRUFBRSxFQUFFLENBQ2pELEdBQUcsaUJBQWlCLHVCQUF1QixJQUFJLElBQUksRUFBRSxFQUFFLE9BRWxDLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsR0FBRyxpQkFBaUIsa0JBQWtCLFNBQVMsRUFBRTtNQW5CM0YsY0FBYyxHQUFHO0lBQ3JCLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixVQUFVO0lBQ3ZDLGlCQUFpQixFQUFFLHlCQUF5QjtJQUM1QyxhQUFhLEVBQUUsR0FBRyxpQkFBaUIsb0JBQW9CO0lBQ3ZELGFBQWEsRUFBRSxHQUFHLGlCQUFpQixvQkFBb0I7SUFDdkQsbUJBQW1CLEVBQUUsR0FBRyxpQkFBaUIseUJBQXlCO0lBQ2xFLGNBQWMsRUFBRSxHQUFHLGlCQUFpQiwrQkFBK0I7SUFDbkUsc0JBQXNCLEVBQUUsR0FBRyxpQkFBaUIsNEJBQTRCO0lBQ3hFLGdCQUFnQixFQUFFLEdBQUcsaUJBQWlCLG1CQUFtQjtJQUN6RCxpQkFBaUIsRUFBRSxHQUFHLGlCQUFpQixtQkFBbUI7SUFDMUQsaUJBQWlCLEVB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QkFBcUIsQ0FBQyxNQUFjO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxjQUFjLENBQUMsbUJBQW1CLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUMxRixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLENBQUMsQ0FBQTtJQUNoQyxDQUFDOzs7WUF6TEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFyQ1EsVUFBVTtZQUtWLHFCQUFxQjs7OztJQW1DMUIsb0NBQXdCO0lBQ3hCLHlDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgSUNvbnRlbnRSYXRpbmcgfSBmcm9tICcuLi9tb2RlbHMvY29udGVudFJhdGluZy5tb2RlbCdcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9ucy5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBOc0NvbnRlbnRTdHJpcE11bHRpcGxlIH0gZnJvbSAnLi9jb250ZW50LXN0cmlwLW11bHRpcGxlLm1vZGVsJ1xyXG5pbXBvcnQgeyBOc0NvbnRlbnQgfSBmcm9tICcuL3dpZGdldC1jb250ZW50Lm1vZGVsJ1xyXG5pbXBvcnQgeyBOU1NlYXJjaCB9IGZyb20gJy4vd2lkZ2V0LXNlYXJjaC5tb2RlbCdcclxuXHJcbi8vIFRPRE86IG1vdmUgdGhpcyBpbiBzb21lIGNvbW1vbiBwbGFjZVxyXG5jb25zdCBQUk9URUNURURfU0xBR19WOCA9ICcvYXBpcy9wcm90ZWN0ZWQvdjgnXHJcblxyXG5jb25zdCBBUElfRU5EX1BPSU5UUyA9IHtcclxuICBDT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudGAsXHJcbiAgQVVUSE9SSU5HX0NPTlRFTlQ6IGAvYXBpcy9hdXRoQXBpL2hpZXJhcmNoeWAsXHJcbiAgQ09OVEVOVF9MSUtFUzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvbGlrZUNvdW50YCxcclxuICBTRVRfUzNfQ09PS0lFOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9zZXRDb29raWVgLFxyXG4gIFNFVF9TM19JTUFHRV9DT09LSUU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NldEltYWdlQ29va2llYCxcclxuICBGRVRDSF9NQU5JRkVTVDogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvZ2V0V2ViTW9kdWxlTWFuaWZlc3RgLFxyXG4gIEZFVENIX1dFQl9NT0RVTEVfRklMRVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L2dldFdlYk1vZHVsZUZpbGVzYCxcclxuICBNVUxUSVBMRV9DT05URU5UOiBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9tdWx0aXBsZWAsXHJcbiAgQ09OVEVOVF9TRUFSQ0hfVjU6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9jb250ZW50L3NlYXJjaFY1YCxcclxuICBDT05URU5UX1NFQVJDSF9WNjogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2VhcmNoVjZgLFxyXG4gIENPTlRFTlRfU0VBUkNIX1JFR0lPTl9SRUNPTU1FTkRBVElPTjogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L2NvbnRlbnQvc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb25gLFxyXG4gIENPTlRFTlRfSElTVE9SWTogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvaGlzdG9yeWAsXHJcbiAgVVNFUl9DT05USU5VRV9MRUFSTklORzogYCR7UFJPVEVDVEVEX1NMQUdfVjh9L3VzZXIvaGlzdG9yeS9jb250aW51ZWAsXHJcbiAgQ09OVEVOVF9SQVRJTkc6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL3JhdGluZ2AsXHJcbiAgQ09OVEVOVF9SQVRJTkdfVjI6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS91c2VyL3JhdGluZy9jb250ZW50L2F2ZXJhZ2UtcmF0aW5nSW5mb2AsXHJcbiAgQ09MTEVDVElPTl9ISUVSQVJDSFk6ICh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcpID0+XHJcbiAgICBgJHtQUk9URUNURURfU0xBR19WOH0vY29udGVudC9jb2xsZWN0aW9uLyR7dHlwZX0vJHtpZH1gLFxyXG4gIFJFR0lTVFJBVElPTl9TVEFUVVM6IGAke1BST1RFQ1RFRF9TTEFHX1Y4fS9hZG1pbi91c2VyUmVnaXN0cmF0aW9uL2NoZWNrVXNlclJlZ2lzdHJhdGlvbkNvbnRlbnRgLFxyXG4gIE1BUktfQVNfQ09NUExFVEVfTUVUQTogKGNvbnRlbnRJZDogc3RyaW5nKSA9PiBgJHtQUk9URUNURURfU0xBR19WOH0vdXNlci9wcm9ncmVzcy8ke2NvbnRlbnRJZH1gLFxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0Q29udGVudFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdmM6IENvbmZpZ3VyYXRpb25zU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIGZldGNoTWFya0FzQ29tcGxldGVNZXRhKGlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSBBUElfRU5EX1BPSU5UUy5NQVJLX0FTX0NPTVBMRVRFX01FVEEoaWRlbnRpZmllcilcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCkudG9Qcm9taXNlKClcclxuICB9XHJcblxyXG4gIGZldGNoQ29udGVudChcclxuICAgIGNvbnRlbnRJZDogc3RyaW5nLFxyXG4gICAgaGllcmFyY2h5VHlwZTogJ2FsbCcgfCAnbWluaW1hbCcgfCAnZGV0YWlsJyA9ICdkZXRhaWwnLFxyXG4gICAgYWRkaXRpb25hbEZpZWxkczogc3RyaW5nW10gPSBbXSxcclxuICApOiBPYnNlcnZhYmxlPE5zQ29udGVudC5JQ29udGVudD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVH0vJHtjb250ZW50SWR9P2hpZXJhcmNoeVR5cGU9JHtoaWVyYXJjaHlUeXBlfWBcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8TnNDb250ZW50LklDb250ZW50Pih1cmwsIHsgYWRkaXRpb25hbEZpZWxkcyB9KVxyXG4gICAgICAucGlwZShyZXRyeSgxKSlcclxuICB9XHJcbiAgZmV0Y2hBdXRob3JpbmdDb250ZW50KGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRlbnQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke0FQSV9FTkRfUE9JTlRTLkFVVEhPUklOR19DT05URU5UfS8ke2NvbnRlbnRJZH1gXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRlbnQ+KHVybCkucGlwZShyZXRyeSgxKSlcclxuICB9XHJcbiAgZmV0Y2hNdWx0aXBsZUNvbnRlbnQoaWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8TnNDb250ZW50LklDb250ZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PE5zQ29udGVudC5JQ29udGVudFtdPihcclxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuTVVMVElQTEVfQ09OVEVOVH0vJHtpZHMuam9pbignLCcpfWAsXHJcbiAgICApXHJcbiAgfVxyXG4gIGZldGNoQ29sbGVjdGlvbkhpZXJhcmNoeSh0eXBlOiBzdHJpbmcsIGlkOiBzdHJpbmcsIHBhZ2VOdW1iZXI6IG51bWJlciA9IDAsIHBhZ2VTaXplOiBudW1iZXIgPSAxKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbGxlY3Rpb25IaWVyYXJjaHlSZXNwb25zZT4oXHJcbiAgICAgIGAke0FQSV9FTkRfUE9JTlRTLkNPTExFQ1RJT05fSElFUkFSQ0hZKFxyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgICAgaWQsXHJcbiAgICAgICl9P3BhZ2VOdW1iZXI9JHtwYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke3BhZ2VTaXplfWAsXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnRMaWtlcyhjb250ZW50SWRzOiB7IGNvbnRlbnRfaWQ6IHN0cmluZ1tdIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3Q8eyBbaWRlbnRpZmllcjogc3RyaW5nXTogbnVtYmVyIH0+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfTElLRVMsIGNvbnRlbnRJZHMpXHJcbiAgICAgIC50b1Byb21pc2UoKVxyXG4gIH1cclxuICBmZXRjaENvbnRlbnRSYXRpbmdzKGNvbnRlbnRJZHM6IHsgY29udGVudElkczogc3RyaW5nW10gfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdChgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vcmF0aW5nYCwgY29udGVudElkcylcclxuICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnRSYXRpbmdzVjIoY29udGVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxJQ29udGVudFJhdGluZz4oYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9SQVRJTkdfVjJ9LyR7Y29udGVudElkfWApXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnRIaXN0b3J5KGNvbnRlbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxOc0NvbnRlbnQuSUNvbnRpbnVlTGVhcm5pbmdEYXRhPihcclxuICAgICAgYCR7QVBJX0VORF9QT0lOVFMuQ09OVEVOVF9ISVNUT1JZfS8ke2NvbnRlbnRJZH1gLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgY29udGludWVMZWFybmluZyhpZDogc3RyaW5nLCBjb2xsZWN0aW9uSWQ/OiBzdHJpbmcsIGNvbGxlY3Rpb25UeXBlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyByZXNvbHZlID0+IHtcclxuICAgICAgaWYgKGNvbGxlY3Rpb25UeXBlICYmXHJcbiAgICAgICAgY29sbGVjdGlvblR5cGUudG9Mb3dlckNhc2UoKSA9PT0gJ3BsYXlsaXN0Jykge1xyXG4gICAgICAgIGNvbnN0IHJlcUJvZHkgPSB7XHJcbiAgICAgICAgICBjb250ZXh0UGF0aElkOiBjb2xsZWN0aW9uSWQgPyBjb2xsZWN0aW9uSWQgOiBpZCxcclxuICAgICAgICAgIHJlc291cmNlSWQ6IGlkLFxyXG4gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXHJcbiAgICAgICAgICAgIGNvbnRleHRGdWxsUGF0aDogW2NvbGxlY3Rpb25JZCwgaWRdLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBkYXRlQWNjZXNzZWQ6IERhdGUubm93KCksXHJcbiAgICAgICAgICBjb250ZXh0VHlwZTogJ3BsYXlsaXN0JyxcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgcmVxQm9keSA9IHtcclxuICAgICAgICAgIGNvbnRleHRQYXRoSWQ6IGNvbGxlY3Rpb25JZCA/IGNvbGxlY3Rpb25JZCA6IGlkLFxyXG4gICAgICAgICAgcmVzb3VyY2VJZDogaWQsXHJcbiAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeSh7IHRpbWVzdGFtcDogRGF0ZS5ub3coKSB9KSxcclxuICAgICAgICAgIGRhdGVBY2Nlc3NlZDogRGF0ZS5ub3coKSxcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlQ29udGludWVMZWFybmluZyhyZXFCb2R5KS50b1Byb21pc2UoKS5jYXRjaCgpLmZpbmFsbHkoKCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHNhdmVDb250aW51ZUxlYXJuaW5nKGNvbnRlbnQ6IE5zQ29udGVudC5JVmlld2VyQ29udGludWVMZWFybmluZ1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gQVBJX0VORF9QT0lOVFMuVVNFUl9DT05USU5VRV9MRUFSTklOR1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odXJsLCBjb250ZW50KVxyXG4gIH1cclxuXHJcbiAgc2V0UzNDb29raWUoXHJcbiAgICBjb250ZW50SWQ6IHN0cmluZyxcclxuICAgIC8vIF9wYXRoOiBzdHJpbmcsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoQVBJX0VORF9QT0lOVFMuU0VUX1MzX0NPT0tJRSwgeyBjb250ZW50SWQgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcihfZXJyID0+IG9mKHRydWUpKSlcclxuICB9XHJcblxyXG4gIHNldFMzSW1hZ2VDb29raWUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChBUElfRU5EX1BPSU5UUy5TRVRfUzNfSU1BR0VfQ09PS0lFLCB7fSkucGlwZShjYXRjaEVycm9yKF9lcnIgPT4gb2YodHJ1ZSkpKVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hNYW5pZmVzdCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJX0VORF9QT0lOVFMuRkVUQ0hfTUFOSUZFU1QsIHsgdXJsIH0pXHJcbiAgfVxyXG4gIGZldGNoV2ViTW9kdWxlQ29udGVudCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHtBUElfRU5EX1BPSU5UUy5GRVRDSF9XRUJfTU9EVUxFX0ZJTEVTfT91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodXJsKX1gKVxyXG4gIH1cclxuICBzZWFyY2gocmVxOiBOU1NlYXJjaC5JU2VhcmNoUmVxdWVzdCk6IE9ic2VydmFibGU8TlNTZWFyY2guSVNlYXJjaEFwaVJlc3VsdD4ge1xyXG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TlNTZWFyY2guSVNlYXJjaEFwaVJlc3VsdD4oQVBJX0VORF9QT0lOVFMuQ09OVEVOVF9TRUFSQ0hfVjUsIHtcclxuICAgICAgcmVxdWVzdDogcmVxLFxyXG4gICAgfSlcclxuICB9XHJcbiAgc2VhcmNoUmVnaW9uUmVjb21tZW5kYXRpb24oXHJcbiAgICByZXE6IE5TU2VhcmNoLklTZWFyY2hPcmdSZWdpb25SZWNvbW1lbmRhdGlvblJlcXVlc3QsXHJcbiAgKTogT2JzZXJ2YWJsZTxOc0NvbnRlbnRTdHJpcE11bHRpcGxlLklDb250ZW50U3RyaXBSZXNwb25zZUFwaT4ge1xyXG4gICAgcmVxLnF1ZXJ5ID0gcmVxLnF1ZXJ5IHx8ICcnXHJcbiAgICByZXEucHJlTGFiZWxWYWx1ZSA9XHJcbiAgICAgIChyZXEucHJlTGFiZWxWYWx1ZSB8fCAnJykgK1xyXG4gICAgICAoKHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlICYmIHRoaXMuY29uZmlnU3ZjLnVzZXJQcm9maWxlLmNvdW50cnkpIHx8ICcnKVxyXG4gICAgcmVxLmZpbHRlcnMgPSB7XHJcbiAgICAgIC4uLnJlcS5maWx0ZXJzLFxyXG4gICAgICBsYWJlbHM6IFtyZXEucHJlTGFiZWxWYWx1ZSB8fCAnJ10sXHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TnNDb250ZW50U3RyaXBNdWx0aXBsZS5JQ29udGVudFN0cmlwUmVzcG9uc2VBcGk+KFxyXG4gICAgICBBUElfRU5EX1BPSU5UUy5DT05URU5UX1NFQVJDSF9SRUdJT05fUkVDT01NRU5EQVRJT04sXHJcbiAgICAgIHsgcmVxdWVzdDogcmVxIH0sXHJcbiAgICApXHJcbiAgfVxyXG4gIHNlYXJjaFY2KHJlcTogTlNTZWFyY2guSVNlYXJjaFY2UmVxdWVzdCk6IE9ic2VydmFibGU8TlNTZWFyY2guSVNlYXJjaFY2QXBpUmVzdWx0PiB7XHJcbiAgICByZXEucXVlcnkgPSByZXEucXVlcnkgfHwgJydcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxOU1NlYXJjaC5JU2VhcmNoVjZBcGlSZXN1bHQ+KEFQSV9FTkRfUE9JTlRTLkNPTlRFTlRfU0VBUkNIX1Y2LCByZXEpXHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRlbnRSYXRpbmcoY29udGVudElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHsgcmF0aW5nOiBudW1iZXIgfT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyByYXRpbmc6IG51bWJlciB9PihgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YClcclxuICB9XHJcbiAgZGVsZXRlQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHtBUElfRU5EX1BPSU5UUy5DT05URU5UX1JBVElOR30vJHtjb250ZW50SWR9YClcclxuICB9XHJcbiAgYWRkQ29udGVudFJhdGluZyhjb250ZW50SWQ6IHN0cmluZywgZGF0YTogeyByYXRpbmc6IG51bWJlciB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke0FQSV9FTkRfUE9JTlRTLkNPTlRFTlRfUkFUSU5HfS8ke2NvbnRlbnRJZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGNvbnRlbnQ6IE5zQ29udGVudC5JQ29udGVudCk6IE5zQ29udGVudC5JQ29udGVudCB7XHJcbiAgICBpZiAoIShjb250ZW50LmNoaWxkcmVuIHx8IFtdKS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGNvbnRlbnRcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgY29udGVudC5jb250ZW50VHlwZSA9PT0gJ0xlYXJuaW5nIFBhdGgnICYmXHJcbiAgICAgICEoY29udGVudC5hcnRpZmFjdFVybCAmJiBjb250ZW50LmFydGlmYWN0VXJsLmxlbmd0aClcclxuICAgICkge1xyXG4gICAgICBjb25zdCBjaGlsZCA9IGNvbnRlbnQuY2hpbGRyZW5bMF1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGNoaWxkKVxyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICBjb250ZW50LmNvbnRlbnRUeXBlID09PSAnUmVzb3VyY2UnIHx8XHJcbiAgICAgIGNvbnRlbnQuY29udGVudFR5cGUgPT09ICdLbm93bGVkZ2UgQXJ0aWZhY3QnIHx8XHJcbiAgICAgIGNvbnRlbnQuY29udGVudFR5cGUgPT09ICdMZWFybmluZyBQYXRoJ1xyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiBjb250ZW50XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaXJzdENoaWxkID0gY29udGVudC5jaGlsZHJlblswXVxyXG4gICAgY29uc3QgcmVzdWx0Q29udGVudCA9IHRoaXMuZ2V0Rmlyc3RDaGlsZEluSGllcmFyY2h5KGZpcnN0Q2hpbGQpXHJcbiAgICByZXR1cm4gcmVzdWx0Q29udGVudFxyXG4gIH1cclxuXHJcbiAgZ2V0UmVnaXN0cmF0aW9uU3RhdHVzKHNvdXJjZTogc3RyaW5nKTogUHJvbWlzZTx7IGhhc0FjY2VzczogYm9vbGVhbjsgcmVnaXN0cmF0aW9uVXJsPzogc3RyaW5nIH0+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7QVBJX0VORF9QT0lOVFMuUkVHSVNUUkFUSU9OX1NUQVRVU30vJHtzb3VyY2V9YCkudG9Qcm9taXNlKClcclxuICB9XHJcblxyXG4gIGZldGNoQ29uZmlnKHVybDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHVybClcclxuICB9XHJcbn1cclxuIl19
@@ -1,57 +1,57 @@
1
- export var NsWidgetResolver;
2
- (function (NsWidgetResolver) {
3
- function IUnitPermissionObject() { }
4
- NsWidgetResolver.IUnitPermissionObject = IUnitPermissionObject;
5
- if (false) {
6
- IUnitPermissionObject.prototype.all;
7
- IUnitPermissionObject.prototype.none;
8
- IUnitPermissionObject.prototype.some;
9
- }
10
- function IPermissions() { }
11
- NsWidgetResolver.IPermissions = IPermissions;
12
- if (false) {
13
- IPermissions.prototype.enabled;
14
- IPermissions.prototype.available;
15
- IPermissions.prototype.roles;
16
- IPermissions.prototype.features;
17
- IPermissions.prototype.groups;
18
- }
19
- function IBaseConfig() { }
20
- NsWidgetResolver.IBaseConfig = IBaseConfig;
21
- if (false) {
22
- IBaseConfig.prototype.widgetType;
23
- IBaseConfig.prototype.widgetSubType;
24
- }
25
- function IRegistrationConfig() { }
26
- NsWidgetResolver.IRegistrationConfig = IRegistrationConfig;
27
- if (false) {
28
- IRegistrationConfig.prototype.component;
29
- }
30
- function IRegistrationsPermissionConfig() { }
31
- NsWidgetResolver.IRegistrationsPermissionConfig = IRegistrationsPermissionConfig;
32
- if (false) {
33
- IRegistrationsPermissionConfig.prototype.widgetPermission;
34
- }
35
- function IRenderConfigWithTypedData() { }
36
- NsWidgetResolver.IRenderConfigWithTypedData = IRenderConfigWithTypedData;
37
- if (false) {
38
- IRenderConfigWithTypedData.prototype.widgetData;
39
- IRenderConfigWithTypedData.prototype.widgetInstanceId;
40
- IRenderConfigWithTypedData.prototype.widgetHostClass;
41
- IRenderConfigWithTypedData.prototype.widgetHostStyle;
42
- }
43
- function IWidgetData() { }
44
- NsWidgetResolver.IWidgetData = IWidgetData;
45
- if (false) {
46
- IWidgetData.prototype.widgetSafeStyle;
47
- IWidgetData.prototype.updateBaseComponent;
48
- }
49
- function ITitle() { }
50
- NsWidgetResolver.ITitle = ITitle;
51
- if (false) {
52
- ITitle.prototype.title;
53
- ITitle.prototype.url;
54
- ITitle.prototype.icon;
55
- }
56
- })(NsWidgetResolver || (NsWidgetResolver = {}));
1
+ export var NsWidgetResolver;
2
+ (function (NsWidgetResolver) {
3
+ function IUnitPermissionObject() { }
4
+ NsWidgetResolver.IUnitPermissionObject = IUnitPermissionObject;
5
+ if (false) {
6
+ IUnitPermissionObject.prototype.all;
7
+ IUnitPermissionObject.prototype.none;
8
+ IUnitPermissionObject.prototype.some;
9
+ }
10
+ function IPermissions() { }
11
+ NsWidgetResolver.IPermissions = IPermissions;
12
+ if (false) {
13
+ IPermissions.prototype.enabled;
14
+ IPermissions.prototype.available;
15
+ IPermissions.prototype.roles;
16
+ IPermissions.prototype.features;
17
+ IPermissions.prototype.groups;
18
+ }
19
+ function IBaseConfig() { }
20
+ NsWidgetResolver.IBaseConfig = IBaseConfig;
21
+ if (false) {
22
+ IBaseConfig.prototype.widgetType;
23
+ IBaseConfig.prototype.widgetSubType;
24
+ }
25
+ function IRegistrationConfig() { }
26
+ NsWidgetResolver.IRegistrationConfig = IRegistrationConfig;
27
+ if (false) {
28
+ IRegistrationConfig.prototype.component;
29
+ }
30
+ function IRegistrationsPermissionConfig() { }
31
+ NsWidgetResolver.IRegistrationsPermissionConfig = IRegistrationsPermissionConfig;
32
+ if (false) {
33
+ IRegistrationsPermissionConfig.prototype.widgetPermission;
34
+ }
35
+ function IRenderConfigWithTypedData() { }
36
+ NsWidgetResolver.IRenderConfigWithTypedData = IRenderConfigWithTypedData;
37
+ if (false) {
38
+ IRenderConfigWithTypedData.prototype.widgetData;
39
+ IRenderConfigWithTypedData.prototype.widgetInstanceId;
40
+ IRenderConfigWithTypedData.prototype.widgetHostClass;
41
+ IRenderConfigWithTypedData.prototype.widgetHostStyle;
42
+ }
43
+ function IWidgetData() { }
44
+ NsWidgetResolver.IWidgetData = IWidgetData;
45
+ if (false) {
46
+ IWidgetData.prototype.widgetSafeStyle;
47
+ IWidgetData.prototype.updateBaseComponent;
48
+ }
49
+ function ITitle() { }
50
+ NsWidgetResolver.ITitle = ITitle;
51
+ if (false) {
52
+ ITitle.prototype.title;
53
+ ITitle.prototype.url;
54
+ ITitle.prototype.icon;
55
+ }
56
+ })(NsWidgetResolver || (NsWidgetResolver = {}));
57
57
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXJlc29sdmVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN1bmJpcmQtY2IvdXRpbHMvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvd2lkZ2V0LXJlc29sdmVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sS0FBVyxnQkFBZ0IsQ0E2RGhDO0FBN0RELFdBQWlCLGdCQUFnQjtJQUUvQixvQ0FJQzs7O1FBSEMsb0NBQXVDO1FBQ3ZDLHFDQUF3QztRQUN4QyxxQ0FBd0M7O0lBWTFDLDJCQU1DOzs7UUFMQywrQkFBZ0I7UUFDaEIsaUNBQWtCO1FBQ2xCLDZCQUFzQjtRQUN0QixnQ0FBeUI7UUFDekIsOEJBQXVCOztJQUd6QiwwQkFHQzs7O1FBRkMsaUNBQWtCO1FBQ2xCLG9DQUFxQjs7SUFHdkIsa0NBRUM7OztRQURDLHdDQUFpQzs7SUFHbkMsNkNBRUM7OztRQURDLDBEQUErQjs7SUFHakMseUNBS0M7OztRQUpDLGdEQUFhO1FBQ2Isc0RBQXlCO1FBQ3pCLHFEQUF3QjtRQUN4QixxREFBMkM7O0lBRzdDLDBCQVVDOzs7UUFSQyxzQ0FBMkI7UUFDM0IsMENBTVM7O0lBRVgscUJBSUM7OztRQUhDLHVCQUFjO1FBQ2QscUJBQVU7UUFDVixzQkFBYTs7QUFFakIsQ0FBQyxFQTdEZ0IsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQTZEaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgU2FmZVN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlcidcclxudHlwZSBUVXJsID0gdW5kZWZpbmVkIHwgJ25vbmUnIHwgJ2JhY2snIHwgc3RyaW5nXHJcbmV4cG9ydCBuYW1lc3BhY2UgTnNXaWRnZXRSZXNvbHZlciB7XHJcbiAgZXhwb3J0IHR5cGUgVW5pdFBlcm1pc3Npb25QcmltaXRpdmUgPSB1bmRlZmluZWQgfCBudWxsIHwgc3RyaW5nXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJVW5pdFBlcm1pc3Npb25PYmplY3Qge1xyXG4gICAgYWxsOiBVbml0UGVybWlzc2lvblByaW1pdGl2ZSB8IHN0cmluZ1tdXHJcbiAgICBub25lOiBVbml0UGVybWlzc2lvblByaW1pdGl2ZSB8IHN0cmluZ1tdXHJcbiAgICBzb21lOiBVbml0UGVybWlzc2lvblByaW1pdGl2ZSB8IHN0cmluZ1tdXHJcbiAgfVxyXG4gIGV4cG9ydCB0eXBlIFVuaXRQZXJtaXNzaW9uID1cclxuICAgIHwgVW5pdFBlcm1pc3Npb25QcmltaXRpdmVcclxuICAgIHwgc3RyaW5nW11cclxuICAgIHwgSVVuaXRQZXJtaXNzaW9uT2JqZWN0XHJcbiAgICB8IFBpY2s8SVVuaXRQZXJtaXNzaW9uT2JqZWN0LCAnYWxsJz5cclxuICAgIHwgUGljazxJVW5pdFBlcm1pc3Npb25PYmplY3QsICdub25lJz5cclxuICAgIHwgUGljazxJVW5pdFBlcm1pc3Npb25PYmplY3QsICdzb21lJz5cclxuICAgIHwgRXhjbHVkZTxJVW5pdFBlcm1pc3Npb25PYmplY3QsICdhbGwnPlxyXG4gICAgfCBFeGNsdWRlPElVbml0UGVybWlzc2lvbk9iamVjdCwgJ25vbmUnPlxyXG4gICAgfCBFeGNsdWRlPElVbml0UGVybWlzc2lvbk9iamVjdCwgJ3NvbWUnPlxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVBlcm1pc3Npb25zIHtcclxuICAgIGVuYWJsZWQ6IGJvb2xlYW5cclxuICAgIGF2YWlsYWJsZTogYm9vbGVhblxyXG4gICAgcm9sZXM/OiBVbml0UGVybWlzc2lvblxyXG4gICAgZmVhdHVyZXM/OiBVbml0UGVybWlzc2lvblxyXG4gICAgZ3JvdXBzPzogVW5pdFBlcm1pc3Npb25cclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSUJhc2VDb25maWcge1xyXG4gICAgd2lkZ2V0VHlwZTogc3RyaW5nXHJcbiAgICB3aWRnZXRTdWJUeXBlOiBzdHJpbmdcclxuICB9XHJcblxyXG4gIGV4cG9ydCBpbnRlcmZhY2UgSVJlZ2lzdHJhdGlvbkNvbmZpZyBleHRlbmRzIElCYXNlQ29uZmlnIHtcclxuICAgIGNvbXBvbmVudDogVHlwZTxJV2lkZ2V0RGF0YTxhbnk+PlxyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGludGVyZmFjZSBJUmVnaXN0cmF0aW9uc1Blcm1pc3Npb25Db25maWcgZXh0ZW5kcyBJQmFzZUNvbmZpZyB7XHJcbiAgICB3aWRnZXRQZXJtaXNzaW9uPzogSVBlcm1pc3Npb25zXHJcbiAgfVxyXG5cclxuICBleHBvcnQgaW50ZXJmYWNlIElSZW5kZXJDb25maWdXaXRoVHlwZWREYXRhPFQ+IGV4dGVuZHMgSVJlZ2lzdHJhdGlvbnNQZXJtaXNzaW9uQ29uZmlnIHtcclxuICAgIHdpZGdldERhdGE6IFRcclxuICAgIHdpZGdldEluc3RhbmNlSWQ/OiBzdHJpbmdcclxuICAgIHdpZGdldEhvc3RDbGFzcz86IHN0cmluZ1xyXG4gICAgd2lkZ2V0SG9zdFN0eWxlPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxyXG4gIH1cclxuICBleHBvcnQgdHlwZSBJUmVuZGVyQ29uZmlnV2l0aEFueURhdGEgPSBJUmVuZGVyQ29uZmlnV2l0aFR5cGVkRGF0YTxhbnk+XHJcbiAgZXhwb3J0IGludGVyZmFjZSBJV2lkZ2V0RGF0YTxUPlxyXG4gICAgZXh0ZW5kcyBPbWl0PElSZW5kZXJDb25maWdXaXRoVHlwZWREYXRhPFQ+LCAnd2lkZ2V0UGVybWlzc2lvbicgfCAnd2lkZ2V0SG9zdFN0eWxlJz4ge1xyXG4gICAgd2lkZ2V0U2FmZVN0eWxlPzogU2FmZVN0eWxlXHJcbiAgICB1cGRhdGVCYXNlQ29tcG9uZW50OiAoXHJcbiAgICAgIHdpZGdldFR5cGU6IHN0cmluZyxcclxuICAgICAgd2lkZ2V0U3ViVHlwZTogc3RyaW5nLFxyXG4gICAgICB3aWRnZXRJbnN0YW5jZUlkPzogc3RyaW5nLFxyXG4gICAgICB3aWRnZXRIb3N0Q2xhc3M/OiBzdHJpbmcsXHJcbiAgICAgIHdpZGdldFNhZmVTdHlsZT86IFNhZmVTdHlsZSxcclxuICAgICkgPT4gdm9pZFxyXG4gIH1cclxuICBleHBvcnQgaW50ZXJmYWNlIElUaXRsZSB7XHJcbiAgICB0aXRsZTogc3RyaW5nLFxyXG4gICAgdXJsOiBUVXJsLFxyXG4gICAgaWNvbj86IHN0cmluZ1xyXG4gIH1cclxufVxyXG4iXX0=