@cleavelandprice/ngx-lib 2.2.3 → 2.3.7

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 (275) hide show
  1. package/README.md +617 -615
  2. package/active-directory/active-directory.module.d.ts +11 -0
  3. package/active-directory/index.d.ts +5 -0
  4. package/active-directory/model/ad-object.d.ts +13 -0
  5. package/active-directory/model/cache-object.d.ts +4 -0
  6. package/active-directory/model/caching-config.d.ts +4 -0
  7. package/active-directory/model/default-caching-config.d.ts +2 -0
  8. package/active-directory/model/default-config.d.ts +2 -0
  9. package/active-directory/model/default-logging-config.d.ts +2 -0
  10. package/active-directory/model/logging-config.d.ts +6 -0
  11. package/active-directory/model/service-config.d.ts +7 -0
  12. package/active-directory/model/user-or-group.d.ts +7 -0
  13. package/active-directory/model/user.d.ts +23 -0
  14. package/active-directory/public_api.d.ts +8 -0
  15. package/active-directory/services/active-directory.service.d.ts +18 -0
  16. package/authentication/authentication.module.d.ts +20 -0
  17. package/authentication/components/login/login.component.d.ts +13 -0
  18. package/authentication/components/login-form/login-form.component.d.ts +23 -0
  19. package/authentication/index.d.ts +5 -0
  20. package/authentication/model/authenticated-user.d.ts +9 -0
  21. package/authentication/model/authentication-request.d.ts +6 -0
  22. package/{src/authentication → authentication}/model/authentication-token.d.ts +0 -0
  23. package/authentication/model/default-config.d.ts +2 -0
  24. package/authentication/model/login-form-data.d.ts +3 -0
  25. package/authentication/model/service-config.d.ts +3 -0
  26. package/authentication/public_api.d.ts +9 -0
  27. package/authentication/services/authentication.service.d.ts +25 -0
  28. package/dialog/components/base/base.component.d.ts +20 -0
  29. package/dialog/components/confirmation/confirmation.component.d.ts +12 -0
  30. package/dialog/components/input/input.component.d.ts +12 -0
  31. package/dialog/components/message/message.component.d.ts +12 -0
  32. package/dialog/dialog.module.d.ts +17 -0
  33. package/dialog/index.d.ts +5 -0
  34. package/{src/dialog/model/confirmation-dialog-mode.enum.d.ts → dialog/model/confirmation-dialog-mode.d.ts} +0 -0
  35. package/dialog/model/dialog-base-data.d.ts +10 -0
  36. package/dialog/model/dialog-type.d.ts +5 -0
  37. package/dialog/public_api.d.ts +8 -0
  38. package/esm2020/active-directory/active-directory.module.mjs +38 -0
  39. package/esm2020/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +5 -0
  40. package/esm2020/active-directory/model/ad-object.mjs +2 -0
  41. package/esm2020/active-directory/model/cache-object.mjs +3 -0
  42. package/esm2020/active-directory/model/caching-config.mjs +2 -0
  43. package/esm2020/active-directory/model/default-caching-config.mjs +5 -0
  44. package/esm2020/active-directory/model/default-config.mjs +8 -0
  45. package/esm2020/active-directory/model/default-logging-config.mjs +7 -0
  46. package/esm2020/active-directory/model/logging-config.mjs +2 -0
  47. package/esm2020/active-directory/model/service-config.mjs +3 -0
  48. package/esm2020/active-directory/model/user-or-group.mjs +2 -0
  49. package/esm2020/active-directory/model/user.mjs +2 -0
  50. package/esm2020/active-directory/public_api.mjs +9 -0
  51. package/esm2020/active-directory/services/active-directory.service.mjs +89 -0
  52. package/esm2020/authentication/authentication.module.mjs +77 -0
  53. package/esm2020/authentication/cleavelandprice-ngx-lib-authentication.mjs +5 -0
  54. package/esm2020/authentication/components/login/login.component.mjs +39 -0
  55. package/esm2020/authentication/components/login-form/login-form.component.mjs +60 -0
  56. package/esm2020/authentication/model/authenticated-user.mjs +2 -0
  57. package/esm2020/authentication/model/authentication-request.mjs +2 -0
  58. package/esm2020/authentication/model/authentication-token.mjs +2 -0
  59. package/esm2020/authentication/model/default-config.mjs +4 -0
  60. package/esm2020/authentication/model/login-form-data.mjs +2 -0
  61. package/esm2020/authentication/model/service-config.mjs +3 -0
  62. package/esm2020/authentication/public_api.mjs +11 -0
  63. package/esm2020/authentication/services/authentication.service.mjs +120 -0
  64. package/esm2020/cleavelandprice-ngx-lib.mjs +2 -2
  65. package/esm2020/dialog/cleavelandprice-ngx-lib-dialog.mjs +5 -0
  66. package/esm2020/dialog/components/base/base.component.mjs +84 -0
  67. package/esm2020/dialog/components/confirmation/confirmation.component.mjs +23 -0
  68. package/esm2020/dialog/components/input/input.component.mjs +23 -0
  69. package/esm2020/dialog/components/message/message.component.mjs +23 -0
  70. package/esm2020/dialog/dialog.module.mjs +63 -0
  71. package/esm2020/dialog/model/confirmation-dialog-mode.mjs +8 -0
  72. package/esm2020/dialog/model/dialog-base-data.mjs +2 -0
  73. package/esm2020/dialog/model/dialog-type.mjs +7 -0
  74. package/esm2020/dialog/public_api.mjs +9 -0
  75. package/esm2020/lib/ngx-lib.module.mjs +16 -0
  76. package/esm2020/public-api.mjs +5 -0
  77. package/esm2020/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +5 -0
  78. package/esm2020/sharepoint/model/base-item.mjs +2 -0
  79. package/esm2020/sharepoint/model/base-request-credential.mjs +2 -0
  80. package/esm2020/sharepoint/model/base-request.mjs +2 -0
  81. package/esm2020/sharepoint/model/cache-object.mjs +3 -0
  82. package/esm2020/sharepoint/model/caching-config.mjs +2 -0
  83. package/esm2020/sharepoint/model/default-config.mjs +25 -0
  84. package/esm2020/sharepoint/model/file-request.mjs +2 -0
  85. package/esm2020/sharepoint/model/folder-request.mjs +2 -0
  86. package/esm2020/sharepoint/model/list-item.mjs +2 -0
  87. package/esm2020/sharepoint/model/list-items-request.mjs +2 -0
  88. package/esm2020/sharepoint/model/logging-config.mjs +2 -0
  89. package/esm2020/sharepoint/model/photo-item.mjs +2 -0
  90. package/esm2020/sharepoint/model/service-config.mjs +3 -0
  91. package/esm2020/sharepoint/model/uri-request.mjs +2 -0
  92. package/esm2020/sharepoint/model/user-request.mjs +2 -0
  93. package/esm2020/sharepoint/model/user.mjs +2 -0
  94. package/esm2020/sharepoint/public_api.mjs +18 -0
  95. package/esm2020/sharepoint/services/sharepoint.service.mjs +152 -0
  96. package/esm2020/sharepoint/sharepoint.module.mjs +38 -0
  97. package/esm2020/upload/cleavelandprice-ngx-lib-upload.mjs +5 -0
  98. package/esm2020/upload/components/upload/upload.component.mjs +33 -0
  99. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +92 -0
  100. package/esm2020/upload/model/database-file-info.mjs +2 -0
  101. package/esm2020/upload/model/file-upload-request.mjs +2 -0
  102. package/esm2020/upload/model/filesystem-file-info.mjs +2 -0
  103. package/esm2020/upload/model/service-config.mjs +3 -0
  104. package/esm2020/upload/public_api.mjs +9 -0
  105. package/esm2020/upload/services/upload.service.mjs +93 -0
  106. package/esm2020/upload/upload.module.mjs +61 -0
  107. package/esm2020/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +5 -0
  108. package/esm2020/url-utilities/pipes/safe-resource-url.pipe.mjs +20 -0
  109. package/esm2020/url-utilities/pipes/safe-url.pipe.mjs +20 -0
  110. package/esm2020/url-utilities/pipes/uri-scheme.pipe.mjs +105 -0
  111. package/esm2020/url-utilities/public_api.mjs +5 -0
  112. package/esm2020/url-utilities/url-utilities.module.mjs +34 -0
  113. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs +156 -0
  114. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -0
  115. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs +299 -0
  116. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs.map +1 -0
  117. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +218 -0
  118. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +1 -0
  119. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs +233 -0
  120. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -0
  121. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +280 -0
  122. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +1 -0
  123. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs +176 -0
  124. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -0
  125. package/fesm2015/cleavelandprice-ngx-lib.mjs +11 -1404
  126. package/fesm2015/cleavelandprice-ngx-lib.mjs.map +1 -1
  127. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs +147 -0
  128. package/fesm2020/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -0
  129. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs +290 -0
  130. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs.map +1 -0
  131. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs +212 -0
  132. package/fesm2020/cleavelandprice-ngx-lib-dialog.mjs.map +1 -0
  133. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs +219 -0
  134. package/fesm2020/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -0
  135. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs +273 -0
  136. package/fesm2020/cleavelandprice-ngx-lib-upload.mjs.map +1 -0
  137. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs +176 -0
  138. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -0
  139. package/fesm2020/cleavelandprice-ngx-lib.mjs +11 -1376
  140. package/fesm2020/cleavelandprice-ngx-lib.mjs.map +1 -1
  141. package/index.d.ts +1 -1
  142. package/lib/ngx-lib.module.d.ts +6 -0
  143. package/package.json +57 -12
  144. package/public-api.d.ts +1 -0
  145. package/sharepoint/index.d.ts +5 -0
  146. package/sharepoint/model/base-item.d.ts +4 -0
  147. package/sharepoint/model/base-request-credential.d.ts +4 -0
  148. package/sharepoint/model/base-request.d.ts +8 -0
  149. package/sharepoint/model/cache-object.d.ts +4 -0
  150. package/sharepoint/model/caching-config.d.ts +4 -0
  151. package/sharepoint/model/default-config.d.ts +2 -0
  152. package/sharepoint/model/file-request.d.ts +4 -0
  153. package/sharepoint/model/folder-request.d.ts +4 -0
  154. package/sharepoint/model/list-item.d.ts +10 -0
  155. package/sharepoint/model/list-items-request.d.ts +5 -0
  156. package/sharepoint/model/logging-config.d.ts +6 -0
  157. package/sharepoint/model/photo-item.d.ts +11 -0
  158. package/sharepoint/model/service-config.d.ts +16 -0
  159. package/sharepoint/model/uri-request.d.ts +4 -0
  160. package/sharepoint/model/user-request.d.ts +4 -0
  161. package/sharepoint/model/user.d.ts +12 -0
  162. package/sharepoint/public_api.d.ts +16 -0
  163. package/sharepoint/services/sharepoint.service.d.ts +25 -0
  164. package/sharepoint/sharepoint.module.d.ts +11 -0
  165. package/{src/file-upload → upload}/components/upload/upload.component.d.ts +0 -0
  166. package/{src/file-upload → upload}/components/upload-dialog/upload-dialog.component.d.ts +3 -3
  167. package/upload/index.d.ts +5 -0
  168. package/{src/file-upload → upload}/model/database-file-info.d.ts +0 -0
  169. package/{src/file-upload → upload}/model/file-upload-request.d.ts +0 -0
  170. package/{src/file-upload → upload}/model/filesystem-file-info.d.ts +0 -0
  171. package/{src/file-upload/model/upload.service.config.d.ts → upload/model/service-config.d.ts} +1 -1
  172. package/upload/public_api.d.ts +8 -0
  173. package/{src/file-upload → upload}/services/upload.service.d.ts +6 -8
  174. package/upload/upload.module.d.ts +16 -0
  175. package/url-utilities/index.d.ts +5 -0
  176. package/url-utilities/pipes/safe-resource-url.pipe.d.ts +10 -0
  177. package/{src/url → url-utilities}/pipes/safe-url.pipe.d.ts +0 -0
  178. package/{src/url → url-utilities}/pipes/uri-scheme.pipe.d.ts +1 -1
  179. package/url-utilities/public_api.d.ts +4 -0
  180. package/url-utilities/url-utilities.module.d.ts +10 -0
  181. package/esm2020/public_api.mjs +0 -8
  182. package/esm2020/src/authentication/authentication.module.mjs +0 -112
  183. package/esm2020/src/authentication/components/login/login.component.mjs +0 -40
  184. package/esm2020/src/authentication/components/login-form/login-form.component.mjs +0 -45
  185. package/esm2020/src/authentication/model/authentication-token.mjs +0 -2
  186. package/esm2020/src/authentication/model/authentication.service.config.mjs +0 -3
  187. package/esm2020/src/authentication/services/authentication.service.mjs +0 -144
  188. package/esm2020/src/dialog/components/_dialog/dialog.component.mjs +0 -83
  189. package/esm2020/src/dialog/components/confirmation-dialog/confirmation-dialog.component.mjs +0 -21
  190. package/esm2020/src/dialog/components/input-dialog/input-dialog.component.mjs +0 -21
  191. package/esm2020/src/dialog/components/message-dialog/message-dialog.component.mjs +0 -21
  192. package/esm2020/src/dialog/dialog.module.mjs +0 -74
  193. package/esm2020/src/dialog/model/confirmation-dialog-mode.enum.mjs +0 -8
  194. package/esm2020/src/email/email.module.mjs +0 -47
  195. package/esm2020/src/email/model/email-dto.mjs +0 -2
  196. package/esm2020/src/email/model/email-sender.mjs +0 -2
  197. package/esm2020/src/email/model/email.mjs +0 -2
  198. package/esm2020/src/email/model/email.service.config.mjs +0 -3
  199. package/esm2020/src/email/services/email.service.mjs +0 -31
  200. package/esm2020/src/employee/employee.module.mjs +0 -91
  201. package/esm2020/src/employee/model/employee.mjs +0 -2
  202. package/esm2020/src/employee/model/employee.service.config.mjs +0 -3
  203. package/esm2020/src/employee/pipes/departments.pipe.mjs +0 -24
  204. package/esm2020/src/employee/pipes/employee-by-dn.pipe.mjs +0 -17
  205. package/esm2020/src/employee/pipes/employee-photo-url.pipe.mjs +0 -27
  206. package/esm2020/src/employee/pipes/employees-with-property-value.pipe.mjs +0 -17
  207. package/esm2020/src/employee/pipes/filter-employees.pipe.mjs +0 -22
  208. package/esm2020/src/employee/pipes/is-member-of.pipe.mjs +0 -17
  209. package/esm2020/src/employee/pipes/sort-employees.pipe.mjs +0 -44
  210. package/esm2020/src/employee/services/employee.service.mjs +0 -41
  211. package/esm2020/src/file-upload/components/upload/upload.component.mjs +0 -34
  212. package/esm2020/src/file-upload/components/upload-dialog/upload-dialog.component.mjs +0 -102
  213. package/esm2020/src/file-upload/model/database-file-info.mjs +0 -2
  214. package/esm2020/src/file-upload/model/file-upload-request.mjs +0 -2
  215. package/esm2020/src/file-upload/model/filesystem-file-info.mjs +0 -2
  216. package/esm2020/src/file-upload/model/upload.service.config.mjs +0 -3
  217. package/esm2020/src/file-upload/services/upload.service.mjs +0 -93
  218. package/esm2020/src/file-upload/upload.module.mjs +0 -93
  219. package/esm2020/src/sharepoint/model/sharepoint-calendar-event.mjs +0 -2
  220. package/esm2020/src/sharepoint/model/sharepoint-customer-visit.mjs +0 -2
  221. package/esm2020/src/sharepoint/model/sharepoint-employee-picture.mjs +0 -2
  222. package/esm2020/src/sharepoint/model/sharepoint-list-item.mjs +0 -2
  223. package/esm2020/src/sharepoint/model/sharepoint-list.mjs +0 -2
  224. package/esm2020/src/sharepoint/model/sharepoint-person.mjs +0 -2
  225. package/esm2020/src/sharepoint/model/sharepoint-picture.mjs +0 -2
  226. package/esm2020/src/sharepoint/model/sharepoint.service.config.mjs +0 -3
  227. package/esm2020/src/sharepoint/pipes/sharepoint-photo-url.pipe.mjs +0 -16
  228. package/esm2020/src/sharepoint/pipes/sharepoint-url.pipe.mjs +0 -16
  229. package/esm2020/src/sharepoint/services/sharepoint.service.mjs +0 -77
  230. package/esm2020/src/sharepoint/sharepoint.module.mjs +0 -69
  231. package/esm2020/src/url/pipes/safe-url.pipe.mjs +0 -21
  232. package/esm2020/src/url/pipes/uri-scheme.pipe.mjs +0 -103
  233. package/esm2020/src/url/url.module.mjs +0 -38
  234. package/public_api.d.ts +0 -7
  235. package/src/authentication/authentication.module.d.ts +0 -31
  236. package/src/authentication/components/login/login.component.d.ts +0 -15
  237. package/src/authentication/components/login-form/login-form.component.d.ts +0 -20
  238. package/src/authentication/model/authentication.service.config.d.ts +0 -3
  239. package/src/authentication/services/authentication.service.d.ts +0 -68
  240. package/src/dialog/components/_dialog/dialog.component.d.ts +0 -22
  241. package/src/dialog/components/confirmation-dialog/confirmation-dialog.component.d.ts +0 -9
  242. package/src/dialog/components/input-dialog/input-dialog.component.d.ts +0 -9
  243. package/src/dialog/components/message-dialog/message-dialog.component.d.ts +0 -9
  244. package/src/dialog/dialog.module.d.ts +0 -20
  245. package/src/email/email.module.d.ts +0 -14
  246. package/src/email/model/email-dto.d.ts +0 -13
  247. package/src/email/model/email-sender.d.ts +0 -6
  248. package/src/email/model/email.d.ts +0 -9
  249. package/src/email/model/email.service.config.d.ts +0 -7
  250. package/src/email/services/email.service.d.ts +0 -13
  251. package/src/employee/employee.module.d.ts +0 -28
  252. package/src/employee/model/employee.d.ts +0 -35
  253. package/src/employee/model/employee.service.config.d.ts +0 -3
  254. package/src/employee/pipes/departments.pipe.d.ts +0 -8
  255. package/src/employee/pipes/employee-by-dn.pipe.d.ts +0 -8
  256. package/src/employee/pipes/employee-photo-url.pipe.d.ts +0 -9
  257. package/src/employee/pipes/employees-with-property-value.pipe.d.ts +0 -8
  258. package/src/employee/pipes/filter-employees.pipe.d.ts +0 -8
  259. package/src/employee/pipes/is-member-of.pipe.d.ts +0 -8
  260. package/src/employee/pipes/sort-employees.pipe.d.ts +0 -9
  261. package/src/employee/services/employee.service.d.ts +0 -15
  262. package/src/file-upload/upload.module.d.ts +0 -26
  263. package/src/sharepoint/model/sharepoint-calendar-event.d.ts +0 -6
  264. package/src/sharepoint/model/sharepoint-customer-visit.d.ts +0 -8
  265. package/src/sharepoint/model/sharepoint-employee-picture.d.ts +0 -5
  266. package/src/sharepoint/model/sharepoint-list-item.d.ts +0 -11
  267. package/src/sharepoint/model/sharepoint-list.d.ts +0 -8
  268. package/src/sharepoint/model/sharepoint-person.d.ts +0 -9
  269. package/src/sharepoint/model/sharepoint-picture.d.ts +0 -14
  270. package/src/sharepoint/model/sharepoint.service.config.d.ts +0 -5
  271. package/src/sharepoint/pipes/sharepoint-photo-url.pipe.d.ts +0 -8
  272. package/src/sharepoint/pipes/sharepoint-url.pipe.d.ts +0 -7
  273. package/src/sharepoint/services/sharepoint.service.d.ts +0 -23
  274. package/src/sharepoint/sharepoint.module.d.ts +0 -24
  275. package/src/url/url.module.d.ts +0 -11
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class SafeResourceUrlPipe {
5
+ constructor(domSanitizer) {
6
+ this.domSanitizer = domSanitizer;
7
+ }
8
+ transform(value) {
9
+ return this.domSanitizer.bypassSecurityTrustResourceUrl(value);
10
+ }
11
+ }
12
+ SafeResourceUrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SafeResourceUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ SafeResourceUrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SafeResourceUrlPipe, name: "safeResourceUrl" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SafeResourceUrlPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'safeResourceUrl'
18
+ }]
19
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1yZXNvdXJjZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL3BpcGVzL3NhZmUtcmVzb3VyY2UtdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUksQ0FBQztJQUVuRCxTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsOEJBQThCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7Z0hBTFUsbUJBQW1COzhHQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUJBQWlCO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzYWZlUmVzb3VyY2VVcmwnXG59KVxuZXhwb3J0IGNsYXNzIFNhZmVSZXNvdXJjZVVybFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcikgeyB9XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBTYWZlVXJsIHtcbiAgICByZXR1cm4gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class SafeUrlPipe {
5
+ constructor(domSanitizer) {
6
+ this.domSanitizer = domSanitizer;
7
+ }
8
+ transform(value) {
9
+ return this.domSanitizer.bypassSecurityTrustUrl(value);
10
+ }
11
+ }
12
+ SafeUrlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ SafeUrlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: SafeUrlPipe, name: "safeUrl" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SafeUrlPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{
17
+ name: 'safeUrl'
18
+ }]
19
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL3BpcGVzL3NhZmUtdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUFJLENBQUM7SUFFbkQsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7O3dHQU5VLFdBQVc7c0dBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUh2QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdzYWZlVXJsJ1xufSlcbmV4cG9ydCBjbGFzcyBTYWZlVXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHsgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogU2FmZVVybCB7XG4gICAgcmV0dXJuIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwodmFsdWUpO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,105 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class UriSchemePipe {
4
+ // https://docs.microsoft.com/en-us/office/client-developer/office-uri-schemes
5
+ transform(value, ignoreLocalStorage = false) {
6
+ if (!localStorage.getItem('useUriScheme') && !ignoreLocalStorage) {
7
+ return value;
8
+ }
9
+ const urlSplit = value.split('.');
10
+ const extension = urlSplit[urlSplit.length - 1];
11
+ if (!extension) {
12
+ return value;
13
+ }
14
+ const command = this.command(extension);
15
+ const app = this.app(extension);
16
+ return `ms-${app}:${command}|u|${value}`;
17
+ }
18
+ app(extension) {
19
+ switch (extension.toLowerCase()) {
20
+ // documents
21
+ case 'doc':
22
+ case 'docx':
23
+ case 'docm':
24
+ case 'docb':
25
+ case 'dot':
26
+ case 'dotx':
27
+ case 'dotm': // templates
28
+ return 'word';
29
+ case 'xls':
30
+ case 'xlsx':
31
+ case 'xlm':
32
+ case 'xlsm':
33
+ case 'xlsb':
34
+ case 'xlw':
35
+ case 'xlt':
36
+ case 'xltx':
37
+ case 'xltm': // templates
38
+ return 'excel';
39
+ case 'ppt':
40
+ case 'pptx':
41
+ case 'pps':
42
+ case 'ppsx':
43
+ case 'pptm':
44
+ case 'ppsm':
45
+ case 'sldx':
46
+ case 'sldm':
47
+ case 'pot':
48
+ case 'potx':
49
+ case 'potm': // templates
50
+ return 'powerpoint';
51
+ case 'vsd':
52
+ case 'vsdx':
53
+ case 'vst':
54
+ case 'vstx': // templates
55
+ return 'visio';
56
+ case 'mdb':
57
+ case 'accdb':
58
+ case 'accde':
59
+ case 'accdr':
60
+ case 'accdt': // templates
61
+ return 'access';
62
+ case 'mpp':
63
+ case 'mppx':
64
+ case 'mpt': // templates
65
+ return 'project';
66
+ case 'pub':
67
+ return 'publisher';
68
+ case 'xsn':
69
+ return 'infopath';
70
+ default:
71
+ return '';
72
+ }
73
+ }
74
+ command(extension) {
75
+ switch (extension.toLowerCase()) {
76
+ case 'dot':
77
+ case 'dotx':
78
+ case 'dotm':
79
+ case 'xlt':
80
+ case 'xltx':
81
+ case 'xltm':
82
+ case 'pot':
83
+ case 'potx':
84
+ case 'potm':
85
+ case 'vst':
86
+ case 'vstx':
87
+ case 'accdt':
88
+ case 'mpt':
89
+ return 'nft'; // new from template
90
+ default:
91
+ const openMode = 'v'; // for view, or 'e' or edit
92
+ return `of${openMode}`; // default: open file as view/edit
93
+ }
94
+ }
95
+ }
96
+ UriSchemePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UriSchemePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
97
+ UriSchemePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: UriSchemePipe, name: "uriScheme", pure: false });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UriSchemePipe, decorators: [{
99
+ type: Pipe,
100
+ args: [{
101
+ name: 'uriScheme',
102
+ pure: false
103
+ }]
104
+ }] });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLXNjaGVtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvdXJsLXV0aWxpdGllcy9zcmMvcGlwZXMvdXJpLXNjaGVtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sYUFBYTtJQUN4Qiw4RUFBOEU7SUFFOUUsU0FBUyxDQUFDLEtBQWEsRUFBRSxrQkFBa0IsR0FBRyxLQUFLO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztTQUFFO1FBRW5GLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFFakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhDLE9BQU8sTUFBTSxHQUFHLElBQUksT0FBTyxNQUFNLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFTyxHQUFHLENBQUMsU0FBaUI7UUFDM0IsUUFBUSxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDL0IsWUFBWTtZQUNaLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDeEIsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN6QixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLEVBQUUsWUFBWTtnQkFDaEQsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN4QixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLEtBQUssQ0FBQztZQUNqRCxLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLEVBQUUsWUFBWTtnQkFDaEQsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN4QixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUNsRCxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQ3pCLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLE1BQU0sRUFBRSxZQUFZO2dCQUNoRCxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQ3hCLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLEVBQUUsWUFBWTtnQkFDbkMsT0FBTyxPQUFPLENBQUM7WUFDakIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE9BQU8sQ0FBQztZQUFDLEtBQUssT0FBTyxDQUFDO1lBQUMsS0FBSyxPQUFPLENBQUM7WUFDckQsS0FBSyxPQUFPLEVBQUUsWUFBWTtnQkFDeEIsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN4QixLQUFLLEtBQUssRUFBRSxZQUFZO2dCQUN0QixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxXQUFXLENBQUM7WUFDckIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sVUFBVSxDQUFDO1lBQ3BCO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLFNBQWlCO1FBQy9CLFFBQVEsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQy9CLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUNyQyxLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDckMsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQ3JDLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDeEIsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUMsQ0FBQyxvQkFBb0I7WUFDcEM7Z0JBQ0UsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLENBQUMsMkJBQTJCO2dCQUNqRCxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUMsQ0FBQyxrQ0FBa0M7U0FDN0Q7SUFDSCxDQUFDOzswR0FoRVUsYUFBYTt3R0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBSnpCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd1cmlTY2hlbWUnLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBVcmlTY2hlbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIC8vIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL29mZmljZS9jbGllbnQtZGV2ZWxvcGVyL29mZmljZS11cmktc2NoZW1lc1xuXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBpZ25vcmVMb2NhbFN0b3JhZ2UgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlVXJpU2NoZW1lJykgJiYgIWlnbm9yZUxvY2FsU3RvcmFnZSkgeyByZXR1cm4gdmFsdWU7IH1cblxuICAgIGNvbnN0IHVybFNwbGl0ID0gdmFsdWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBleHRlbnNpb24gPSB1cmxTcGxpdFt1cmxTcGxpdC5sZW5ndGggLSAxXTtcblxuICAgIGlmICghZXh0ZW5zaW9uKSB7IHJldHVybiB2YWx1ZTsgfVxuXG4gICAgY29uc3QgY29tbWFuZCA9IHRoaXMuY29tbWFuZChleHRlbnNpb24pO1xuICAgIGNvbnN0IGFwcCA9IHRoaXMuYXBwKGV4dGVuc2lvbik7XG5cbiAgICByZXR1cm4gYG1zLSR7YXBwfToke2NvbW1hbmR9fHV8JHt2YWx1ZX1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHAoZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIC8vIGRvY3VtZW50c1xuICAgICAgY2FzZSAnZG9jJzogY2FzZSAnZG9jeCc6XG4gICAgICBjYXNlICdkb2NtJzogY2FzZSAnZG9jYic6XG4gICAgICBjYXNlICdkb3QnOiBjYXNlICdkb3R4JzogY2FzZSAnZG90bSc6IC8vIHRlbXBsYXRlc1xuICAgICAgICByZXR1cm4gJ3dvcmQnO1xuICAgICAgY2FzZSAneGxzJzogY2FzZSAneGxzeCc6XG4gICAgICBjYXNlICd4bG0nOiBjYXNlICd4bHNtJzogY2FzZSAneGxzYic6IGNhc2UgJ3hsdyc6XG4gICAgICBjYXNlICd4bHQnOiBjYXNlICd4bHR4JzogY2FzZSAneGx0bSc6IC8vIHRlbXBsYXRlc1xuICAgICAgICByZXR1cm4gJ2V4Y2VsJztcbiAgICAgIGNhc2UgJ3BwdCc6IGNhc2UgJ3BwdHgnOlxuICAgICAgY2FzZSAncHBzJzogY2FzZSAncHBzeCc6IGNhc2UgJ3BwdG0nOiBjYXNlICdwcHNtJzpcbiAgICAgIGNhc2UgJ3NsZHgnOiBjYXNlICdzbGRtJzpcbiAgICAgIGNhc2UgJ3BvdCc6IGNhc2UgJ3BvdHgnOiBjYXNlICdwb3RtJzogLy8gdGVtcGxhdGVzXG4gICAgICAgIHJldHVybiAncG93ZXJwb2ludCc7XG4gICAgICBjYXNlICd2c2QnOiBjYXNlICd2c2R4JzpcbiAgICAgIGNhc2UgJ3ZzdCc6IGNhc2UgJ3ZzdHgnOiAvLyB0ZW1wbGF0ZXNcbiAgICAgICAgcmV0dXJuICd2aXNpbyc7XG4gICAgICBjYXNlICdtZGInOiBjYXNlICdhY2NkYic6IGNhc2UgJ2FjY2RlJzogY2FzZSAnYWNjZHInOlxuICAgICAgY2FzZSAnYWNjZHQnOiAvLyB0ZW1wbGF0ZXNcbiAgICAgICAgcmV0dXJuICdhY2Nlc3MnO1xuICAgICAgY2FzZSAnbXBwJzogY2FzZSAnbXBweCc6XG4gICAgICBjYXNlICdtcHQnOiAvLyB0ZW1wbGF0ZXNcbiAgICAgICAgcmV0dXJuICdwcm9qZWN0JztcbiAgICAgIGNhc2UgJ3B1Yic6XG4gICAgICAgIHJldHVybiAncHVibGlzaGVyJztcbiAgICAgIGNhc2UgJ3hzbic6XG4gICAgICAgIHJldHVybiAnaW5mb3BhdGgnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tbWFuZChleHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChleHRlbnNpb24udG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAnZG90JzogY2FzZSAnZG90eCc6IGNhc2UgJ2RvdG0nOlxuICAgICAgY2FzZSAneGx0JzogY2FzZSAneGx0eCc6IGNhc2UgJ3hsdG0nOlxuICAgICAgY2FzZSAncG90JzogY2FzZSAncG90eCc6IGNhc2UgJ3BvdG0nOlxuICAgICAgY2FzZSAndnN0JzogY2FzZSAndnN0eCc6XG4gICAgICBjYXNlICdhY2NkdCc6XG4gICAgICBjYXNlICdtcHQnOlxuICAgICAgICByZXR1cm4gJ25mdCc7IC8vIG5ldyBmcm9tIHRlbXBsYXRlXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zdCBvcGVuTW9kZSA9ICd2JzsgLy8gZm9yIHZpZXcsIG9yICdlJyBvciBlZGl0XG4gICAgICAgIHJldHVybiBgb2Yke29wZW5Nb2RlfWA7IC8vIGRlZmF1bHQ6IG9wZW4gZmlsZSBhcyB2aWV3L2VkaXRcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './pipes/safe-resource-url.pipe';
2
+ export * from './pipes/safe-url.pipe';
3
+ export * from './pipes/uri-scheme.pipe';
4
+ export * from './url-utilities.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2FmZS1yZXNvdXJjZS11cmwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2FmZS11cmwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdXJpLXNjaGVtZS5waXBlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vdXJsLXV0aWxpdGllcy5tb2R1bGUnOyJdfQ==
@@ -0,0 +1,34 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SafeResourceUrlPipe } from './pipes/safe-resource-url.pipe';
4
+ import { SafeUrlPipe } from './pipes/safe-url.pipe';
5
+ import { UriSchemePipe } from './pipes/uri-scheme.pipe';
6
+ import * as i0 from "@angular/core";
7
+ export class UrlUtilitiesModule {
8
+ }
9
+ UrlUtilitiesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UrlUtilitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ UrlUtilitiesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: UrlUtilitiesModule, declarations: [SafeResourceUrlPipe,
11
+ SafeUrlPipe,
12
+ UriSchemePipe], imports: [CommonModule], exports: [SafeResourceUrlPipe,
13
+ SafeUrlPipe,
14
+ UriSchemePipe] });
15
+ UrlUtilitiesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UrlUtilitiesModule, imports: [CommonModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: UrlUtilitiesModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [
20
+ SafeResourceUrlPipe,
21
+ SafeUrlPipe,
22
+ UriSchemePipe
23
+ ],
24
+ imports: [
25
+ CommonModule
26
+ ],
27
+ exports: [
28
+ SafeResourceUrlPipe,
29
+ SafeUrlPipe,
30
+ UriSchemePipe
31
+ ]
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXV0aWxpdGllcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cmwtdXRpbGl0aWVzL3NyYy91cmwtdXRpbGl0aWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWlCeEQsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQWIzQixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLGFBQWEsYUFHYixZQUFZLGFBR1osbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxhQUFhO2dIQUdKLGtCQUFrQixZQVIzQixZQUFZOzJGQVFILGtCQUFrQjtrQkFmOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFNhZmVSZXNvdXJjZVVybFBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUtcmVzb3VyY2UtdXJsLnBpcGUnO1xuaW1wb3J0IHsgU2FmZVVybFBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUtdXJsLnBpcGUnO1xuaW1wb3J0IHsgVXJpU2NoZW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvdXJpLXNjaGVtZS5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2FmZVJlc291cmNlVXJsUGlwZSxcbiAgICBTYWZlVXJsUGlwZSxcbiAgICBVcmlTY2hlbWVQaXBlXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNhZmVSZXNvdXJjZVVybFBpcGUsXG4gICAgU2FmZVVybFBpcGUsXG4gICAgVXJpU2NoZW1lUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFVybFV0aWxpdGllc01vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,156 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, Optional, NgModule, SkipSelf } from '@angular/core';
3
+ import { of } from 'rxjs';
4
+ import moment from 'moment';
5
+ import * as i2 from '@angular/common/http';
6
+ import { CommonModule } from '@angular/common';
7
+
8
+ class ServiceConfig {
9
+ }
10
+
11
+ const defaultCachingConfig = {
12
+ enabled: false,
13
+ lifeMinutes: 720
14
+ };
15
+
16
+ const defaultLoggingConfig = {
17
+ dataCached: false,
18
+ cachedDataReturned: false,
19
+ freshDataReturned: false,
20
+ cacheCleared: false
21
+ };
22
+
23
+ const defaultConfig = {
24
+ apiUrl: 'http://utilityapi/users',
25
+ caching: defaultCachingConfig,
26
+ logging: defaultLoggingConfig
27
+ };
28
+
29
+ //#region Imports
30
+ //#endregion
31
+ class ActiveDirectoryService {
32
+ //#endregion
33
+ //#region Initialization
34
+ // If a ServiceConfig object is not provided when the module is imported, then default values are pulled in from default-config.ts.
35
+ constructor(config, http) {
36
+ var _a, _b, _c;
37
+ this.config = config;
38
+ this.http = http;
39
+ this.cache = null;
40
+ this.defaultCacheLifeMinutes = 720;
41
+ this.config = (_a = this.config) !== null && _a !== void 0 ? _a : defaultConfig;
42
+ this.config.caching = (_b = this.config.caching) !== null && _b !== void 0 ? _b : defaultCachingConfig;
43
+ this.config.logging = (_c = this.config.logging) !== null && _c !== void 0 ? _c : defaultLoggingConfig;
44
+ }
45
+ //#region Properties
46
+ get cacheExpired() {
47
+ var _a, _b;
48
+ if (!this.cache) {
49
+ return true;
50
+ }
51
+ const lifeMinutes = (_b = (_a = this.config.caching) === null || _a === void 0 ? void 0 : _a.lifeMinutes) !== null && _b !== void 0 ? _b : this.defaultCacheLifeMinutes;
52
+ const expiration = moment(this.cache.lastUpdate)
53
+ .add(lifeMinutes, 'minutes');
54
+ return moment().isAfter(expiration);
55
+ }
56
+ //#endregion
57
+ getUsers(includePhoto = false, includeDisabled = false, parentOU) {
58
+ var _a, _b, _c;
59
+ // If caching is enabled, there will be two calls to the API if the cache is null/expired
60
+ // One call is to update the cache and the other is to return the data that the user requested
61
+ // Subsequent calls will bypass the API and returned cached data until it expires
62
+ const observable$ = this.http.get(`${this.config.apiUrl}/${includePhoto}/${includeDisabled}/${parentOU !== null && parentOU !== void 0 ? parentOU : ''}`);
63
+ if ((_a = this.config.caching) === null || _a === void 0 ? void 0 : _a.enabled) {
64
+ if (this.cacheExpired) {
65
+ // Get the data and cache it
66
+ observable$.subscribe(data => {
67
+ var _a, _b, _c;
68
+ this.cache = {
69
+ data,
70
+ lastUpdate: moment()
71
+ };
72
+ if ((_a = this.config.logging) === null || _a === void 0 ? void 0 : _a.dataCached) {
73
+ const lifeMinutes = (_c = (_b = this.config.caching) === null || _b === void 0 ? void 0 : _b.lifeMinutes) !== null && _c !== void 0 ? _c : this.defaultCacheLifeMinutes;
74
+ console.log(`Data cached for ${lifeMinutes} minutes`);
75
+ }
76
+ });
77
+ }
78
+ else {
79
+ // Cache exists and hasn't expired yet
80
+ if ((_b = this.config.logging) === null || _b === void 0 ? void 0 : _b.cachedDataReturned) {
81
+ console.log('Returning cached users');
82
+ }
83
+ return of(this.cache.data);
84
+ }
85
+ }
86
+ // Cache is either disabled or expired, return data from API
87
+ if ((_c = this.config.logging) === null || _c === void 0 ? void 0 : _c.freshDataReturned) {
88
+ console.log('Returning fresh users');
89
+ }
90
+ return observable$;
91
+ }
92
+ getUser(accountName, includePhoto = false) {
93
+ return this.http.get(`${this.config.apiUrl}/name/${accountName}/${includePhoto}`);
94
+ }
95
+ clearCache() {
96
+ var _a;
97
+ this.cache = null;
98
+ if ((_a = this.config.logging) === null || _a === void 0 ? void 0 : _a.cacheCleared) {
99
+ console.log('Cache cleared');
100
+ }
101
+ }
102
+ }
103
+ ActiveDirectoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryService, deps: [{ token: ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
104
+ ActiveDirectoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryService, providedIn: 'root' });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryService, decorators: [{
106
+ type: Injectable,
107
+ args: [{
108
+ providedIn: 'root'
109
+ }]
110
+ }], ctorParameters: function () {
111
+ return [{ type: ServiceConfig, decorators: [{
112
+ type: Optional
113
+ }] }, { type: i2.HttpClient }];
114
+ } });
115
+
116
+ class ActiveDirectoryModule {
117
+ constructor(parentModule) {
118
+ if (parentModule) {
119
+ throw new Error('ActiveDirectoryModule is already loaded. Import it in the AppModule only');
120
+ }
121
+ }
122
+ static forRoot(config) {
123
+ return {
124
+ ngModule: ActiveDirectoryModule,
125
+ providers: [
126
+ ActiveDirectoryService,
127
+ { provide: ServiceConfig, useValue: config }
128
+ ]
129
+ };
130
+ }
131
+ }
132
+ ActiveDirectoryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, deps: [{ token: ActiveDirectoryModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
133
+ ActiveDirectoryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
134
+ ActiveDirectoryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, imports: [CommonModule] });
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: ActiveDirectoryModule, decorators: [{
136
+ type: NgModule,
137
+ args: [{
138
+ declarations: [],
139
+ imports: [
140
+ CommonModule
141
+ ]
142
+ }]
143
+ }], ctorParameters: function () {
144
+ return [{ type: ActiveDirectoryModule, decorators: [{
145
+ type: Optional
146
+ }, {
147
+ type: SkipSelf
148
+ }] }];
149
+ } });
150
+
151
+ /**
152
+ * Generated bundle index. Do not edit.
153
+ */
154
+
155
+ export { ActiveDirectoryModule, ActiveDirectoryService, ServiceConfig };
156
+ //# sourceMappingURL=cleavelandprice-ngx-lib-active-directory.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleavelandprice-ngx-lib-active-directory.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/service-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/default-caching-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/default-logging-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/default-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/services/active-directory.service.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/active-directory.module.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/cleavelandprice-ngx-lib-active-directory.ts"],"sourcesContent":["import { CachingConfig } from \"./caching-config\";\r\nimport { LoggingConfig } from './logging-config';\r\n\r\nexport class ServiceConfig {\r\n apiUrl!: string;\r\n caching?: CachingConfig;\r\n logging?: LoggingConfig;\r\n}\r\n","import { CachingConfig } from \"./caching-config\";\r\n\r\nexport const defaultCachingConfig: CachingConfig = {\r\n enabled: false,\r\n lifeMinutes: 720\r\n}","import { LoggingConfig } from \"./logging-config\";\r\n\r\nexport const defaultLoggingConfig: LoggingConfig = {\r\n dataCached: false,\r\n cachedDataReturned: false,\r\n freshDataReturned: false,\r\n cacheCleared: false\r\n}","import { ServiceConfig } from \"./service-config\";\r\nimport { defaultCachingConfig } from './default-caching-config';\r\nimport { defaultLoggingConfig } from \"./default-logging-config\";\r\n\r\nexport const defaultConfig: ServiceConfig = {\r\n apiUrl: 'http://utilityapi/users',\r\n caching: defaultCachingConfig,\r\n logging: defaultLoggingConfig\r\n}","//#region Imports\nimport { Injectable, Optional } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\n\nimport { defaultConfig } from '../model/default-config';\nimport { defaultCachingConfig } from '../model/default-caching-config';\nimport { defaultLoggingConfig } from '../model/default-logging-config';\n\nimport { CacheObject } from '../model/cache-object';\nimport { ServiceConfig } from '../model/service-config';\nimport { User } from '../model/user';\n\nimport moment from 'moment';\n//#endregion\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActiveDirectoryService {\n private cache: CacheObject<User> | null = null;\n private defaultCacheLifeMinutes = 720;\n\n //#region Properties\n private get cacheExpired(): boolean {\n if (!this.cache) {\n return true;\n }\n\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\n const expiration = moment(this.cache.lastUpdate)\n .add(lifeMinutes, 'minutes');\n\n return moment().isAfter(expiration);\n }\n //#endregion\n\n //#region Initialization\n // If a ServiceConfig object is not provided when the module is imported, then default values are pulled in from default-config.ts.\n constructor(@Optional() private config: ServiceConfig,\n private http: HttpClient) {\n\n this.config = this.config ?? defaultConfig;\n this.config.caching = this.config.caching ?? defaultCachingConfig;\n this.config.logging = this.config.logging ?? defaultLoggingConfig;\n }\n //#endregion\n\n getUsers(includePhoto = false, includeDisabled = false, parentOU?: string): Observable<User[]> {\n // If caching is enabled, there will be two calls to the API if the cache is null/expired\n // One call is to update the cache and the other is to return the data that the user requested\n // Subsequent calls will bypass the API and returned cached data until it expires\n\n const observable$ = this.http.get<User[]>(`${this.config.apiUrl}/${includePhoto}/${includeDisabled}/${parentOU ?? ''}`);\n\n if (this.config.caching?.enabled) {\n if (this.cacheExpired) {\n // Get the data and cache it\n observable$.subscribe(data => {\n this.cache = {\n data,\n lastUpdate: moment()\n };\n\n if (this.config.logging?.dataCached) {\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\n console.log(`Data cached for ${lifeMinutes} minutes`);\n }\n });\n } else {\n // Cache exists and hasn't expired yet\n if (this.config.logging?.cachedDataReturned) {\n console.log('Returning cached users');\n }\n\n return of(this.cache!.data);\n }\n }\n\n // Cache is either disabled or expired, return data from API\n if (this.config.logging?.freshDataReturned) {\n console.log('Returning fresh users');\n }\n\n return observable$;\n }\n\n getUser(accountName: string, includePhoto = false): Observable<User> {\n return this.http.get<User>(`${this.config.apiUrl}/name/${accountName}/${includePhoto}`);\n }\n\n clearCache(): void {\n this.cache = null;\n\n if (this.config.logging?.cacheCleared) {\n console.log('Cache cleared');\n }\n }\n}\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ServiceConfig } from './model/service-config';\nimport { ActiveDirectoryService } from './services/active-directory.service';\n\n@NgModule({\n declarations: [],\n imports: [\n CommonModule\n ]\n})\nexport class ActiveDirectoryModule {\n static forRoot(config: ServiceConfig): ModuleWithProviders<ActiveDirectoryModule> {\n return {\n ngModule: ActiveDirectoryModule,\n providers: [\n ActiveDirectoryService,\n { provide: ServiceConfig, useValue: config }\n ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ActiveDirectoryModule) {\n if (parentModule) {\n throw new Error(\n 'ActiveDirectoryModule is already loaded. Import it in the AppModule only');\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.ServiceConfig"],"mappings":"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"}