@cleavelandprice/ngx-lib 3.7.2 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/active-directory/active-directory.module.d.ts +11 -11
  2. package/active-directory/gui/components/user-chooser/user-chooser.component.d.ts +58 -58
  3. package/active-directory/gui/components/user-form-field/user-form-field.component.d.ts +29 -29
  4. package/active-directory/gui/gui.module.d.ts +25 -25
  5. package/active-directory/gui/index.d.ts +5 -5
  6. package/active-directory/gui/model/selectable-user.d.ts +5 -5
  7. package/active-directory/gui/model/user-chooser-data.d.ts +22 -22
  8. package/active-directory/gui/model/user-chooser-filter-options.d.ts +7 -7
  9. package/active-directory/gui/model/user-chooser-mode.d.ts +4 -4
  10. package/active-directory/gui/model/user-chooser-pre-processing-group.d.ts +6 -6
  11. package/active-directory/gui/public_api.d.ts +8 -8
  12. package/active-directory/index.d.ts +5 -5
  13. package/active-directory/model/ad-object-with-children.d.ts +4 -4
  14. package/active-directory/model/ad-object.d.ts +13 -13
  15. package/active-directory/model/cache-object.d.ts +4 -4
  16. package/active-directory/model/caching-config.d.ts +4 -4
  17. package/active-directory/model/cleaveland-price-user.d.ts +17 -17
  18. package/active-directory/model/group.d.ts +7 -7
  19. package/active-directory/model/logging-config.d.ts +6 -6
  20. package/active-directory/model/service-config.d.ts +8 -8
  21. package/active-directory/model/user-or-group.d.ts +7 -7
  22. package/active-directory/model/user.d.ts +23 -23
  23. package/active-directory/public_api.d.ts +11 -11
  24. package/active-directory/services/active-directory.service.d.ts +32 -32
  25. package/authentication/authentication.base.module.d.ts +7 -7
  26. package/authentication/index.d.ts +5 -5
  27. package/authentication/model/abstract-authentication-service.d.ts +16 -16
  28. package/authentication/model/authenticated-user.d.ts +9 -9
  29. package/authentication/model/authentication-request.d.ts +8 -6
  30. package/authentication/model/service-config.d.ts +8 -7
  31. package/authentication/object/index.d.ts +5 -5
  32. package/authentication/object/model/service-config.d.ts +4 -4
  33. package/authentication/object/object.module.d.ts +11 -11
  34. package/authentication/object/public_api.d.ts +3 -3
  35. package/authentication/object/services/authentication.service.d.ts +25 -25
  36. package/authentication/public_api.d.ts +5 -5
  37. package/authentication/token/gui/components/login/login.component.d.ts +14 -13
  38. package/authentication/token/gui/components/login-form/login-form.component.d.ts +29 -28
  39. package/authentication/token/gui/index.d.ts +5 -5
  40. package/authentication/token/gui/model/login-form-data.d.ts +4 -3
  41. package/authentication/token/gui/model/service-config.d.ts +5 -5
  42. package/authentication/token/gui/public_api.d.ts +6 -6
  43. package/authentication/token/gui/services/authentication.service.d.ts +15 -15
  44. package/authentication/token/gui/token-gui.module.d.ts +21 -21
  45. package/authentication/token/index.d.ts +5 -5
  46. package/authentication/token/model/authentication-token.d.ts +17 -17
  47. package/authentication/token/model/service-config.d.ts +5 -5
  48. package/authentication/token/public_api.d.ts +4 -4
  49. package/authentication/token/services/authentication.service.d.ts +24 -24
  50. package/authentication/token/token.module.d.ts +11 -11
  51. package/dialog/components/base/base.component.d.ts +22 -22
  52. package/dialog/components/choice/choice.component.d.ts +12 -12
  53. package/dialog/components/confirmation/confirmation.component.d.ts +12 -12
  54. package/dialog/components/input/input.component.d.ts +12 -12
  55. package/dialog/components/message/message.component.d.ts +12 -12
  56. package/dialog/dialog.module.d.ts +18 -18
  57. package/dialog/index.d.ts +5 -5
  58. package/dialog/model/confirmation-dialog-mode.d.ts +6 -6
  59. package/dialog/model/dialog-base-data.d.ts +10 -10
  60. package/dialog/model/dialog-choice-data.d.ts +4 -4
  61. package/dialog/model/dialog-type.d.ts +6 -6
  62. package/dialog/public_api.d.ts +9 -9
  63. package/esm2022/active-directory/active-directory.module.mjs +40 -0
  64. package/{esm2020 → esm2022}/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +4 -4
  65. package/{esm2020 → esm2022}/active-directory/gui/cleavelandprice-ngx-lib-active-directory-gui.mjs +4 -4
  66. package/esm2022/active-directory/gui/components/user-chooser/user-chooser.component.mjs +375 -0
  67. package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs +130 -0
  68. package/esm2022/active-directory/gui/gui.module.mjs +97 -0
  69. package/{esm2020 → esm2022}/active-directory/gui/model/selectable-user.mjs +1 -1
  70. package/{esm2020 → esm2022}/active-directory/gui/model/user-chooser-data.mjs +32 -32
  71. package/{esm2020 → esm2022}/active-directory/gui/model/user-chooser-filter-options.mjs +9 -9
  72. package/{esm2020 → esm2022}/active-directory/gui/model/user-chooser-mode.mjs +5 -5
  73. package/{esm2020 → esm2022}/active-directory/gui/model/user-chooser-pre-processing-group.mjs +8 -8
  74. package/{esm2020 → esm2022}/active-directory/gui/public_api.mjs +8 -8
  75. package/{esm2020 → esm2022}/active-directory/model/ad-object-with-children.mjs +1 -1
  76. package/{esm2020 → esm2022}/active-directory/model/ad-object.mjs +1 -1
  77. package/{esm2020 → esm2022}/active-directory/model/cache-object.mjs +2 -2
  78. package/{esm2020 → esm2022}/active-directory/model/caching-config.mjs +6 -6
  79. package/{esm2020 → esm2022}/active-directory/model/cleaveland-price-user.mjs +1 -1
  80. package/{esm2020 → esm2022}/active-directory/model/group.mjs +1 -1
  81. package/{esm2020 → esm2022}/active-directory/model/logging-config.mjs +8 -8
  82. package/{esm2020 → esm2022}/active-directory/model/service-config.mjs +11 -11
  83. package/{esm2020 → esm2022}/active-directory/model/user-or-group.mjs +1 -1
  84. package/{esm2020 → esm2022}/active-directory/model/user.mjs +1 -1
  85. package/{esm2020 → esm2022}/active-directory/public_api.mjs +11 -11
  86. package/esm2022/active-directory/services/active-directory.service.mjs +112 -0
  87. package/esm2022/authentication/authentication.base.module.mjs +20 -0
  88. package/{esm2020 → esm2022}/authentication/cleavelandprice-ngx-lib-authentication.mjs +4 -4
  89. package/{esm2020 → esm2022}/authentication/model/abstract-authentication-service.mjs +1 -1
  90. package/{esm2020 → esm2022}/authentication/model/authenticated-user.mjs +1 -1
  91. package/{esm2020 → esm2022}/authentication/model/authentication-request.mjs +2 -2
  92. package/esm2022/authentication/model/service-config.mjs +12 -0
  93. package/{esm2020 → esm2022}/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +4 -4
  94. package/esm2022/authentication/object/model/service-config.mjs +9 -0
  95. package/esm2022/authentication/object/object.module.mjs +40 -0
  96. package/{esm2020 → esm2022}/authentication/object/public_api.mjs +3 -3
  97. package/esm2022/authentication/object/services/authentication.service.mjs +109 -0
  98. package/{esm2020 → esm2022}/authentication/public_api.mjs +5 -5
  99. package/{esm2020 → esm2022}/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +4 -4
  100. package/{esm2020 → esm2022}/authentication/token/gui/cleavelandprice-ngx-lib-authentication-token-gui.mjs +4 -4
  101. package/esm2022/authentication/token/gui/components/login/login.component.mjs +45 -0
  102. package/esm2022/authentication/token/gui/components/login-form/login-form.component.mjs +74 -0
  103. package/{esm2020 → esm2022}/authentication/token/gui/model/login-form-data.mjs +2 -2
  104. package/esm2022/authentication/token/gui/model/service-config.mjs +10 -0
  105. package/{esm2020 → esm2022}/authentication/token/gui/public_api.mjs +6 -6
  106. package/esm2022/authentication/token/gui/services/authentication.service.mjs +79 -0
  107. package/esm2022/authentication/token/gui/token-gui.module.mjs +82 -0
  108. package/{esm2020 → esm2022}/authentication/token/model/authentication-token.mjs +1 -1
  109. package/esm2022/authentication/token/model/service-config.mjs +10 -0
  110. package/{esm2020 → esm2022}/authentication/token/public_api.mjs +4 -4
  111. package/esm2022/authentication/token/services/authentication.service.mjs +120 -0
  112. package/esm2022/authentication/token/token.module.mjs +40 -0
  113. package/{esm2020 → esm2022}/cleavelandprice-ngx-lib.mjs +4 -4
  114. package/{esm2020 → esm2022}/dialog/cleavelandprice-ngx-lib-dialog.mjs +4 -4
  115. package/esm2022/dialog/components/base/base.component.mjs +93 -0
  116. package/esm2022/dialog/components/choice/choice.component.mjs +24 -0
  117. package/esm2022/dialog/components/confirmation/confirmation.component.mjs +24 -0
  118. package/esm2022/dialog/components/input/input.component.mjs +24 -0
  119. package/esm2022/dialog/components/message/message.component.mjs +24 -0
  120. package/esm2022/dialog/dialog.module.mjs +69 -0
  121. package/{esm2020 → esm2022}/dialog/model/confirmation-dialog-mode.mjs +7 -7
  122. package/{esm2020 → esm2022}/dialog/model/dialog-base-data.mjs +1 -1
  123. package/{esm2020 → esm2022}/dialog/model/dialog-choice-data.mjs +1 -1
  124. package/{esm2020 → esm2022}/dialog/model/dialog-type.mjs +7 -7
  125. package/{esm2020 → esm2022}/dialog/public_api.mjs +9 -9
  126. package/{esm2020 → esm2022}/lib/model/app-path-config.mjs +1 -1
  127. package/{esm2020 → esm2022}/lib/model/app-type.mjs +1 -1
  128. package/{esm2020 → esm2022}/lib/model/app.mjs +1 -1
  129. package/esm2022/lib/model/service-config.mjs +21 -0
  130. package/esm2022/lib/ngx-lib.module.mjs +37 -0
  131. package/esm2022/lib/services/app-path-config.service.mjs +46 -0
  132. package/{esm2020 → esm2022}/msgraph/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
  133. package/{esm2020 → esm2022}/msgraph/model/address.mjs +1 -1
  134. package/{esm2020 → esm2022}/msgraph/model/attendee.mjs +1 -1
  135. package/{esm2020 → esm2022}/msgraph/model/bulk-calendar-events.mjs +1 -1
  136. package/{esm2020 → esm2022}/msgraph/model/bulk-calendar-request.mjs +1 -1
  137. package/{esm2020 → esm2022}/msgraph/model/calendar-event.mjs +1 -1
  138. package/{esm2020 → esm2022}/msgraph/model/coordinates.mjs +1 -1
  139. package/{esm2020 → esm2022}/msgraph/model/email-address.mjs +1 -1
  140. package/{esm2020 → esm2022}/msgraph/model/location.mjs +1 -1
  141. package/{esm2020 → esm2022}/msgraph/model/online-meeting-info.mjs +1 -1
  142. package/{esm2020 → esm2022}/msgraph/model/patterned-recurrence.mjs +1 -1
  143. package/{esm2020 → esm2022}/msgraph/model/phone.mjs +1 -1
  144. package/{esm2020 → esm2022}/msgraph/model/recipient.mjs +1 -1
  145. package/{esm2020 → esm2022}/msgraph/model/recurrence-pattern.mjs +1 -1
  146. package/{esm2020 → esm2022}/msgraph/model/recurrence-range.mjs +1 -1
  147. package/{esm2020 → esm2022}/msgraph/model/response-status.mjs +1 -1
  148. package/{esm2020 → esm2022}/msgraph/model/room.mjs +5 -5
  149. package/{esm2020 → esm2022}/msgraph/model/user.mjs +131 -131
  150. package/esm2022/msgraph/msgraph.module.mjs +33 -0
  151. package/{esm2020 → esm2022}/msgraph/public_api.mjs +18 -18
  152. package/{esm2020 → esm2022}/public_api.mjs +9 -9
  153. package/{esm2020 → esm2022}/quill/cleavelandprice-ngx-lib-quill.mjs +4 -4
  154. package/esm2022/quill/components/editor/editor.component.mjs +297 -0
  155. package/esm2022/quill/components/raw/raw.component.mjs +25 -0
  156. package/{esm2020 → esm2022}/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +4 -4
  157. package/esm2022/quill/mention/components/editor/editor.component.mjs +156 -0
  158. package/{esm2020 → esm2022}/quill/mention/model/buttons.mjs +3 -3
  159. package/{esm2020 → esm2022}/quill/mention/model/config.mjs +3 -3
  160. package/{esm2020 → esm2022}/quill/mention/model/dialog-data.mjs +1 -1
  161. package/{esm2020 → esm2022}/quill/mention/model/icons.mjs +3 -3
  162. package/{esm2020 → esm2022}/quill/mention/model/tooltips.mjs +3 -3
  163. package/{esm2020 → esm2022}/quill/mention/public_api.mjs +7 -7
  164. package/esm2022/quill/mention/quill-mention.module.mjs +66 -0
  165. package/{esm2020 → esm2022}/quill/model/buttons.mjs +51 -51
  166. package/{esm2020 → esm2022}/quill/model/config.mjs +39 -39
  167. package/{esm2020 → esm2022}/quill/model/dialog-data.mjs +1 -1
  168. package/{esm2020 → esm2022}/quill/model/icons.mjs +8 -8
  169. package/{esm2020 → esm2022}/quill/model/tooltips.mjs +54 -54
  170. package/{esm2020 → esm2022}/quill/public_api.mjs +8 -8
  171. package/esm2022/quill/quill.module.mjs +79 -0
  172. package/{esm2020 → esm2022}/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +4 -4
  173. package/esm2022/sharepoint/components/employee-photo/employee-photo.component.mjs +38 -0
  174. package/{esm2020 → esm2022}/sharepoint/model/base-item.mjs +1 -1
  175. package/{esm2020 → esm2022}/sharepoint/model/base-request-credential.mjs +1 -1
  176. package/{esm2020 → esm2022}/sharepoint/model/base-request.mjs +1 -1
  177. package/{esm2020 → esm2022}/sharepoint/model/cache-object.mjs +2 -2
  178. package/{esm2020 → esm2022}/sharepoint/model/file-request.mjs +1 -1
  179. package/{esm2020 → esm2022}/sharepoint/model/folder-request.mjs +1 -1
  180. package/{esm2020 → esm2022}/sharepoint/model/list-item.mjs +1 -1
  181. package/{esm2020 → esm2022}/sharepoint/model/list-items-request.mjs +1 -1
  182. package/{esm2020 → esm2022}/sharepoint/model/photo-item.mjs +1 -1
  183. package/{esm2020 → esm2022}/sharepoint/model/service-config.mjs +28 -28
  184. package/{esm2020 → esm2022}/sharepoint/model/uri-request.mjs +1 -1
  185. package/{esm2020 → esm2022}/sharepoint/model/user-request.mjs +1 -1
  186. package/{esm2020 → esm2022}/sharepoint/model/user.mjs +1 -1
  187. package/esm2022/sharepoint/pipes/employee-photo-url.pipe.mjs +39 -0
  188. package/{esm2020 → esm2022}/sharepoint/public_api.mjs +16 -16
  189. package/esm2022/sharepoint/services/sharepoint.service.mjs +149 -0
  190. package/esm2022/sharepoint/sharepoint.module.mjs +50 -0
  191. package/{esm2020 → esm2022}/upload/cleavelandprice-ngx-lib-upload.mjs +4 -4
  192. package/esm2022/upload/components/upload/upload.component.mjs +35 -0
  193. package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +87 -0
  194. package/{esm2020 → esm2022}/upload/model/database-file-info.mjs +1 -1
  195. package/{esm2020 → esm2022}/upload/model/file-upload-request.mjs +1 -1
  196. package/{esm2020 → esm2022}/upload/model/filesystem-file-info.mjs +1 -1
  197. package/{esm2020 → esm2022}/upload/model/service-config.mjs +15 -15
  198. package/{esm2020 → esm2022}/upload/public_api.mjs +8 -8
  199. package/esm2022/upload/services/upload.service.mjs +92 -0
  200. package/esm2022/upload/upload.module.mjs +66 -0
  201. package/{esm2020 → esm2022}/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +4 -4
  202. package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +21 -0
  203. package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +21 -0
  204. package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +106 -0
  205. package/{esm2020 → esm2022}/url-utilities/public_api.mjs +4 -4
  206. package/esm2022/url-utilities/url-utilities.module.mjs +35 -0
  207. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-active-directory-gui.mjs +586 -587
  208. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
  209. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-active-directory.mjs +155 -156
  210. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  211. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-authentication-object.mjs +141 -140
  212. package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -0
  213. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-authentication-token-gui.mjs +232 -226
  214. package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -0
  215. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-authentication-token.mjs +152 -151
  216. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -0
  217. package/{fesm2015 → fesm2022}/cleavelandprice-ngx-lib-authentication.mjs +25 -25
  218. package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs.map +1 -0
  219. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-dialog.mjs +205 -205
  220. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  221. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-msgraph.mjs +161 -162
  222. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
  223. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-quill-mention.mjs +188 -189
  224. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  225. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-quill.mjs +492 -493
  226. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  227. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-sharepoint.mjs +269 -270
  228. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  229. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-upload.mjs +250 -251
  230. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  231. package/{fesm2015 → fesm2022}/cleavelandprice-ngx-lib-url-utilities.mjs +159 -160
  232. package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -0
  233. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib.mjs +91 -92
  234. package/{fesm2020 → fesm2022}/cleavelandprice-ngx-lib.mjs.map +1 -1
  235. package/index.d.ts +5 -5
  236. package/lib/model/app-path-config.d.ts +10 -10
  237. package/lib/model/app-type.d.ts +5 -5
  238. package/lib/model/app.d.ts +16 -16
  239. package/lib/model/service-config.d.ts +6 -6
  240. package/lib/ngx-lib.module.d.ts +10 -10
  241. package/lib/services/app-path-config.service.d.ts +20 -20
  242. package/msgraph/index.d.ts +5 -5
  243. package/msgraph/model/address.d.ts +7 -7
  244. package/msgraph/model/attendee.d.ts +13 -13
  245. package/msgraph/model/bulk-calendar-events.d.ts +5 -5
  246. package/msgraph/model/bulk-calendar-request.d.ts +3 -3
  247. package/msgraph/model/calendar-event.d.ts +53 -53
  248. package/msgraph/model/coordinates.d.ts +7 -7
  249. package/msgraph/model/email-address.d.ts +4 -4
  250. package/msgraph/model/location.d.ts +12 -12
  251. package/msgraph/model/online-meeting-info.d.ts +9 -9
  252. package/msgraph/model/patterned-recurrence.d.ts +6 -6
  253. package/msgraph/model/phone.d.ts +4 -4
  254. package/msgraph/model/recipient.d.ts +4 -4
  255. package/msgraph/model/recurrence-pattern.d.ts +9 -9
  256. package/msgraph/model/recurrence-range.d.ts +7 -7
  257. package/msgraph/model/response-status.d.ts +4 -4
  258. package/msgraph/model/room.d.ts +22 -22
  259. package/msgraph/model/user.d.ts +29 -29
  260. package/msgraph/msgraph.module.d.ts +10 -10
  261. package/msgraph/public_api.d.ts +18 -18
  262. package/package.json +61 -93
  263. package/public_api.d.ts +6 -6
  264. package/quill/components/editor/editor.component.d.ts +53 -53
  265. package/quill/components/raw/raw.component.d.ts +7 -7
  266. package/quill/index.d.ts +5 -5
  267. package/quill/mention/components/editor/editor.component.d.ts +20 -20
  268. package/quill/mention/index.d.ts +5 -5
  269. package/quill/mention/model/buttons.d.ts +3 -3
  270. package/quill/mention/model/config.d.ts +3 -3
  271. package/quill/mention/model/dialog-data.d.ts +5 -5
  272. package/quill/mention/model/icons.d.ts +3 -3
  273. package/quill/mention/model/tooltips.d.ts +3 -3
  274. package/quill/mention/public_api.d.ts +7 -7
  275. package/quill/mention/quill-mention.module.d.ts +17 -17
  276. package/quill/model/buttons.d.ts +29 -29
  277. package/quill/model/config.d.ts +30 -30
  278. package/quill/model/dialog-data.d.ts +21 -21
  279. package/quill/model/icons.d.ts +6 -6
  280. package/quill/model/tooltips.d.ts +32 -32
  281. package/quill/public_api.d.ts +8 -8
  282. package/quill/quill.module.d.ts +20 -20
  283. package/sharepoint/components/employee-photo/employee-photo.component.d.ts +16 -16
  284. package/sharepoint/index.d.ts +5 -5
  285. package/sharepoint/model/base-item.d.ts +4 -4
  286. package/sharepoint/model/base-request-credential.d.ts +4 -4
  287. package/sharepoint/model/base-request.d.ts +8 -8
  288. package/sharepoint/model/cache-object.d.ts +4 -4
  289. package/sharepoint/model/file-request.d.ts +4 -4
  290. package/sharepoint/model/folder-request.d.ts +4 -4
  291. package/sharepoint/model/list-item.d.ts +10 -10
  292. package/sharepoint/model/list-items-request.d.ts +5 -5
  293. package/sharepoint/model/photo-item.d.ts +11 -11
  294. package/sharepoint/model/service-config.d.ts +23 -23
  295. package/sharepoint/model/uri-request.d.ts +4 -4
  296. package/sharepoint/model/user-request.d.ts +4 -4
  297. package/sharepoint/model/user.d.ts +12 -12
  298. package/sharepoint/pipes/employee-photo-url.pipe.d.ts +12 -12
  299. package/sharepoint/public_api.d.ts +16 -16
  300. package/sharepoint/services/sharepoint.service.d.ts +25 -25
  301. package/sharepoint/sharepoint.module.d.ts +13 -13
  302. package/upload/components/upload/upload.component.d.ts +15 -15
  303. package/upload/components/upload-dialog/upload-dialog.component.d.ts +24 -24
  304. package/upload/index.d.ts +5 -5
  305. package/upload/model/database-file-info.d.ts +7 -7
  306. package/upload/model/file-upload-request.d.ts +6 -6
  307. package/upload/model/filesystem-file-info.d.ts +12 -12
  308. package/upload/model/service-config.d.ts +15 -15
  309. package/upload/public_api.d.ts +8 -8
  310. package/upload/services/upload.service.d.ts +18 -18
  311. package/upload/upload.module.d.ts +17 -17
  312. package/url-utilities/index.d.ts +5 -5
  313. package/url-utilities/pipes/safe-resource-url.pipe.d.ts +10 -10
  314. package/url-utilities/pipes/safe-url.pipe.d.ts +10 -10
  315. package/url-utilities/pipes/uri-scheme.pipe.d.ts +9 -9
  316. package/url-utilities/public_api.d.ts +4 -4
  317. package/url-utilities/url-utilities.module.d.ts +10 -10
  318. package/esm2020/active-directory/active-directory.module.mjs +0 -39
  319. package/esm2020/active-directory/gui/components/user-chooser/user-chooser.component.mjs +0 -374
  320. package/esm2020/active-directory/gui/components/user-form-field/user-form-field.component.mjs +0 -129
  321. package/esm2020/active-directory/gui/gui.module.mjs +0 -96
  322. package/esm2020/active-directory/services/active-directory.service.mjs +0 -111
  323. package/esm2020/authentication/authentication.base.module.mjs +0 -19
  324. package/esm2020/authentication/model/service-config.mjs +0 -11
  325. package/esm2020/authentication/object/model/service-config.mjs +0 -9
  326. package/esm2020/authentication/object/object.module.mjs +0 -39
  327. package/esm2020/authentication/object/services/authentication.service.mjs +0 -106
  328. package/esm2020/authentication/token/gui/components/login/login.component.mjs +0 -39
  329. package/esm2020/authentication/token/gui/components/login-form/login-form.component.mjs +0 -71
  330. package/esm2020/authentication/token/gui/model/service-config.mjs +0 -10
  331. package/esm2020/authentication/token/gui/services/authentication.service.mjs +0 -78
  332. package/esm2020/authentication/token/gui/token-gui.module.mjs +0 -81
  333. package/esm2020/authentication/token/model/service-config.mjs +0 -10
  334. package/esm2020/authentication/token/services/authentication.service.mjs +0 -117
  335. package/esm2020/authentication/token/token.module.mjs +0 -39
  336. package/esm2020/dialog/components/base/base.component.mjs +0 -92
  337. package/esm2020/dialog/components/choice/choice.component.mjs +0 -23
  338. package/esm2020/dialog/components/confirmation/confirmation.component.mjs +0 -23
  339. package/esm2020/dialog/components/input/input.component.mjs +0 -23
  340. package/esm2020/dialog/components/message/message.component.mjs +0 -23
  341. package/esm2020/dialog/dialog.module.mjs +0 -68
  342. package/esm2020/lib/model/service-config.mjs +0 -21
  343. package/esm2020/lib/ngx-lib.module.mjs +0 -36
  344. package/esm2020/lib/services/app-path-config.service.mjs +0 -45
  345. package/esm2020/msgraph/msgraph.module.mjs +0 -32
  346. package/esm2020/quill/components/editor/editor.component.mjs +0 -296
  347. package/esm2020/quill/components/raw/raw.component.mjs +0 -24
  348. package/esm2020/quill/mention/components/editor/editor.component.mjs +0 -155
  349. package/esm2020/quill/mention/quill-mention.module.mjs +0 -65
  350. package/esm2020/quill/quill.module.mjs +0 -78
  351. package/esm2020/sharepoint/components/employee-photo/employee-photo.component.mjs +0 -37
  352. package/esm2020/sharepoint/pipes/employee-photo-url.pipe.mjs +0 -38
  353. package/esm2020/sharepoint/services/sharepoint.service.mjs +0 -148
  354. package/esm2020/sharepoint/sharepoint.module.mjs +0 -49
  355. package/esm2020/upload/components/upload/upload.component.mjs +0 -34
  356. package/esm2020/upload/components/upload-dialog/upload-dialog.component.mjs +0 -86
  357. package/esm2020/upload/services/upload.service.mjs +0 -91
  358. package/esm2020/upload/upload.module.mjs +0 -65
  359. package/esm2020/url-utilities/pipes/safe-resource-url.pipe.mjs +0 -20
  360. package/esm2020/url-utilities/pipes/safe-url.pipe.mjs +0 -20
  361. package/esm2020/url-utilities/pipes/uri-scheme.pipe.mjs +0 -105
  362. package/esm2020/url-utilities/url-utilities.module.mjs +0 -34
  363. package/fesm2015/cleavelandprice-ngx-lib-active-directory-gui.mjs +0 -652
  364. package/fesm2015/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +0 -1
  365. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs +0 -187
  366. package/fesm2015/cleavelandprice-ngx-lib-active-directory.mjs.map +0 -1
  367. package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs +0 -161
  368. package/fesm2015/cleavelandprice-ngx-lib-authentication-object.mjs.map +0 -1
  369. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs +0 -274
  370. package/fesm2015/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +0 -1
  371. package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs +0 -173
  372. package/fesm2015/cleavelandprice-ngx-lib-authentication-token.mjs.map +0 -1
  373. package/fesm2015/cleavelandprice-ngx-lib-authentication.mjs.map +0 -1
  374. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs +0 -250
  375. package/fesm2015/cleavelandprice-ngx-lib-dialog.mjs.map +0 -1
  376. package/fesm2015/cleavelandprice-ngx-lib-msgraph.mjs +0 -178
  377. package/fesm2015/cleavelandprice-ngx-lib-msgraph.mjs.map +0 -1
  378. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs +0 -230
  379. package/fesm2015/cleavelandprice-ngx-lib-quill-mention.mjs.map +0 -1
  380. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs +0 -539
  381. package/fesm2015/cleavelandprice-ngx-lib-quill.mjs.map +0 -1
  382. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs +0 -310
  383. package/fesm2015/cleavelandprice-ngx-lib-sharepoint.mjs.map +0 -1
  384. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs +0 -288
  385. package/fesm2015/cleavelandprice-ngx-lib-upload.mjs.map +0 -1
  386. package/fesm2015/cleavelandprice-ngx-lib-url-utilities.mjs.map +0 -1
  387. package/fesm2015/cleavelandprice-ngx-lib.mjs +0 -113
  388. package/fesm2015/cleavelandprice-ngx-lib.mjs.map +0 -1
  389. package/fesm2020/cleavelandprice-ngx-lib-authentication-object.mjs.map +0 -1
  390. package/fesm2020/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +0 -1
  391. package/fesm2020/cleavelandprice-ngx-lib-authentication-token.mjs.map +0 -1
  392. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs +0 -38
  393. package/fesm2020/cleavelandprice-ngx-lib-authentication.mjs.map +0 -1
  394. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs +0 -177
  395. package/fesm2020/cleavelandprice-ngx-lib-url-utilities.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cleavelandprice-ngx-lib-active-directory.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/caching-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/logging-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/service-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":["export class CachingConfig {\r\n enabled = false;\r\n lifeMinutes = 720;\r\n }","export class LoggingConfig {\r\n dataCached = false;\r\n cachedDataReturned = false;\r\n freshDataReturned = false;\r\n cacheCleared = false;\r\n }","import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';\r\nimport { CachingConfig } from './caching-config';\r\nimport { LoggingConfig } from './logging-config';\r\n\r\nexport class ServiceConfig extends NgxLibServiceConfig {\r\n caching = new CachingConfig();\r\n logging = new LoggingConfig();\r\n\r\n // See the comment in the library's main service-config.ts file for an explanation\r\n constructor(useSsl_or_customApiUrl: boolean | string = false) {\r\n super(useSsl_or_customApiUrl);\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport moment from 'moment';\r\n\r\nimport { ADObject } from '../model/ad-object';\r\nimport { ADObjectWithChildren } from '../model/ad-object-with-children';\r\nimport { CacheObject } from '../model/cache-object';\r\nimport { CleavelandPriceUser } from '../model/cleaveland-price-user';\r\nimport { Group } from '../model/group';\r\nimport { ServiceConfig } from '../model/service-config';\r\nimport { User } from '../model/user';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ActiveDirectoryService {\r\n private cache: CacheObject<CleavelandPriceUser> | undefined;\r\n private defaultCacheLifeMinutes = 720;\r\n\r\n //#region Properties\r\n private get cacheExpired(): boolean {\r\n if (!this.cache) {\r\n return true;\r\n }\r\n\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n const expiration = moment(this.cache.lastUpdate)\r\n .add(lifeMinutes, 'minutes');\r\n\r\n return moment().isAfter(expiration);\r\n }\r\n //#endregion\r\n\r\n //#region Initialization\r\n constructor(@Optional() private config: ServiceConfig,\r\n private http: HttpClient) {\r\n\r\n this.config = this.config ?? new ServiceConfig();\r\n }\r\n //#endregion\r\n\r\n getUsers(includePhoto = false, includeDisabled = false, parentOU = ''): Observable<CleavelandPriceUser[]> {\r\n // If caching is enabled, there will be two calls to the API if the cache is null/expired\r\n // One call is to update the cache and the other is to return the data that the user requested\r\n // Subsequent calls will bypass the API and returned cached data until it expires\r\n\r\n const observable$ = this.http.get<CleavelandPriceUser[]>(`${this.config.apiUrl}/users/${includePhoto}/${includeDisabled}/${parentOU}`);\r\n\r\n if (this.config.caching?.enabled) {\r\n if (this.cacheExpired) {\r\n // Get the data and cache it\r\n observable$.subscribe(data => {\r\n this.cache = {\r\n data,\r\n lastUpdate: moment()\r\n };\r\n\r\n if (this.config.logging?.dataCached) {\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n console.log(`Data cached for ${lifeMinutes} minutes`);\r\n }\r\n });\r\n } else {\r\n // Cache exists and hasn't expired yet\r\n if (this.config.logging?.cachedDataReturned) {\r\n console.log('Returning cached users');\r\n }\r\n\r\n return of(this.cache!.data);\r\n }\r\n }\r\n\r\n // Cache is either disabled or expired, return data from API\r\n if (this.config.logging?.freshDataReturned) {\r\n console.log('Returning fresh users');\r\n }\r\n\r\n return observable$;\r\n }\r\n\r\n getUser(accountName: string, includePhoto = false): Observable<CleavelandPriceUser> {\r\n return this.http.get<CleavelandPriceUser>(`${this.config.apiUrl}/users/name/${accountName}/${includePhoto}`);\r\n }\r\n\r\n clearCache(): void {\r\n this.cache = undefined;\r\n\r\n if (this.config.logging?.cacheCleared) {\r\n console.log('Cache cleared');\r\n }\r\n }\r\n\r\n getDomains(): Observable<ADObject[]> {\r\n return this.http.get<ADObject[]>(`${this.config.apiUrl}/activedirectory/domains`);\r\n }\r\n\r\n getOUs(parentOU = ''): Observable<ADObjectWithChildren[]> {\r\n return this.http.get<ADObjectWithChildren[]>(`${this.config.apiUrl}/activedirectory/ous/${parentOU}`);\r\n }\r\n\r\n getContainers(parentOU = ''): Observable<ADObjectWithChildren[]> {\r\n return this.http.get<ADObjectWithChildren[]>(`${this.config.apiUrl}/activedirectory/containers/${parentOU}`);\r\n }\r\n\r\n getGroups(parentOU = ''): Observable<Group[]> {\r\n return this.http.get<Group[]>(`${this.config.apiUrl}/activedirectory/groups/${parentOU}`);\r\n }\r\n\r\n getDistinctUserAttributeValues(attributeName: string) : Observable<any[]> {\r\n return this.http.get<any[]>(`${this.config.apiUrl}/activedirectory/distinct/${attributeName}`);\r\n }\r\n\r\n getDepartments() : Observable<string[]> {\r\n return this.http.get<string[]>(`${this.config.apiUrl}/activedirectory/departments`);\r\n }\r\n\r\n getTitles() : Observable<string[]> {\r\n return this.http.get<string[]>(`${this.config.apiUrl}/activedirectory/titles`);\r\n }\r\n\r\n getComputers(includeDisabled = false, parentOU = ''): Observable<User[]> {\r\n return this.http.get<User[]>(`${this.config.apiUrl}/activedirectory/computers/${includeDisabled}/${parentOU}`);\r\n }\r\n\r\n getServers(includeDisabled = false, parentOU = ''): Observable<User[]> {\r\n return this.http.get<User[]>(`${this.config.apiUrl}/activedirectory/servers/${includeDisabled}/${parentOU}`);\r\n }\r\n\r\n getWorkstations(includeDisabled = false, parentOU = ''): Observable<User[]> {\r\n return this.http.get<User[]>(`${this.config.apiUrl}/activedirectory/workstations/${includeDisabled}/${parentOU}`);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ServiceConfig } from './model/service-config';\r\n\r\nimport { ActiveDirectoryService } from './services/active-directory.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: []\r\n})\r\nexport class ActiveDirectoryModule {\r\n static forRoot(config: ServiceConfig): ModuleWithProviders<ActiveDirectoryModule> {\r\n return {\r\n ngModule: ActiveDirectoryModule,\r\n providers: [\r\n ActiveDirectoryService,\r\n { provide: ServiceConfig, useValue: config }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: ActiveDirectoryModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'ActiveDirectoryModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgxLibServiceConfig","i1.ServiceConfig"],"mappings":"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"}
1
+ {"version":3,"file":"cleavelandprice-ngx-lib-active-directory.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/caching-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/logging-config.ts","../../../../projects/cleavelandprice/ngx-lib/active-directory/src/model/service-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":["export class CachingConfig {\r\n enabled = false;\r\n lifeMinutes = 720;\r\n }","export class LoggingConfig {\r\n dataCached = false;\r\n cachedDataReturned = false;\r\n freshDataReturned = false;\r\n cacheCleared = false;\r\n }","import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';\r\nimport { CachingConfig } from './caching-config';\r\nimport { LoggingConfig } from './logging-config';\r\n\r\nexport class ServiceConfig extends NgxLibServiceConfig {\r\n caching = new CachingConfig();\r\n logging = new LoggingConfig();\r\n\r\n // See the comment in the library's main service-config.ts file for an explanation\r\n constructor(useSsl_or_customApiUrl: boolean | string = false) {\r\n super(useSsl_or_customApiUrl);\r\n }\r\n}\r\n","import { Injectable, Optional } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport moment from 'moment';\r\n\r\nimport { ADObject } from '../model/ad-object';\r\nimport { ADObjectWithChildren } from '../model/ad-object-with-children';\r\nimport { CacheObject } from '../model/cache-object';\r\nimport { CleavelandPriceUser } from '../model/cleaveland-price-user';\r\nimport { Group } from '../model/group';\r\nimport { ServiceConfig } from '../model/service-config';\r\nimport { User } from '../model/user';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ActiveDirectoryService {\r\n private cache: CacheObject<CleavelandPriceUser> | undefined;\r\n private defaultCacheLifeMinutes = 720;\r\n\r\n //#region Properties\r\n private get cacheExpired(): boolean {\r\n if (!this.cache) {\r\n return true;\r\n }\r\n\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n const expiration = moment(this.cache.lastUpdate)\r\n .add(lifeMinutes, 'minutes');\r\n\r\n return moment().isAfter(expiration);\r\n }\r\n //#endregion\r\n\r\n //#region Initialization\r\n constructor(@Optional() private config: ServiceConfig,\r\n private http: HttpClient) {\r\n\r\n this.config = this.config ?? new ServiceConfig();\r\n }\r\n //#endregion\r\n\r\n getUsers(includePhoto = false, includeDisabled = false, parentOU = ''): Observable<CleavelandPriceUser[]> {\r\n // If caching is enabled, there will be two calls to the API if the cache is null/expired\r\n // One call is to update the cache and the other is to return the data that the user requested\r\n // Subsequent calls will bypass the API and returned cached data until it expires\r\n\r\n const observable$ = this.http.get<CleavelandPriceUser[]>(`${this.config.apiUrl}/users/${includePhoto}/${includeDisabled}/${parentOU}`);\r\n\r\n if (this.config.caching?.enabled) {\r\n if (this.cacheExpired) {\r\n // Get the data and cache it\r\n observable$.subscribe(data => {\r\n this.cache = {\r\n data,\r\n lastUpdate: moment()\r\n };\r\n\r\n if (this.config.logging?.dataCached) {\r\n const lifeMinutes = this.config.caching?.lifeMinutes ?? this.defaultCacheLifeMinutes;\r\n console.log(`Data cached for ${lifeMinutes} minutes`);\r\n }\r\n });\r\n } else {\r\n // Cache exists and hasn't expired yet\r\n if (this.config.logging?.cachedDataReturned) {\r\n console.log('Returning cached users');\r\n }\r\n\r\n return of(this.cache!.data);\r\n }\r\n }\r\n\r\n // Cache is either disabled or expired, return data from API\r\n if (this.config.logging?.freshDataReturned) {\r\n console.log('Returning fresh users');\r\n }\r\n\r\n return observable$;\r\n }\r\n\r\n getUser(accountName: string, includePhoto = false): Observable<CleavelandPriceUser> {\r\n return this.http.get<CleavelandPriceUser>(`${this.config.apiUrl}/users/name/${accountName}/${includePhoto}`);\r\n }\r\n\r\n clearCache(): void {\r\n this.cache = undefined;\r\n\r\n if (this.config.logging?.cacheCleared) {\r\n console.log('Cache cleared');\r\n }\r\n }\r\n\r\n getDomains(): Observable<ADObject[]> {\r\n return this.http.get<ADObject[]>(`${this.config.apiUrl}/activedirectory/domains`);\r\n }\r\n\r\n getOUs(parentOU = ''): Observable<ADObjectWithChildren[]> {\r\n return this.http.get<ADObjectWithChildren[]>(`${this.config.apiUrl}/activedirectory/ous/${parentOU}`);\r\n }\r\n\r\n getContainers(parentOU = ''): Observable<ADObjectWithChildren[]> {\r\n return this.http.get<ADObjectWithChildren[]>(`${this.config.apiUrl}/activedirectory/containers/${parentOU}`);\r\n }\r\n\r\n getGroups(parentOU = ''): Observable<Group[]> {\r\n return this.http.get<Group[]>(`${this.config.apiUrl}/activedirectory/groups/${parentOU}`);\r\n }\r\n\r\n getDistinctUserAttributeValues(attributeName: string) : Observable<any[]> {\r\n return this.http.get<any[]>(`${this.config.apiUrl}/activedirectory/distinct/${attributeName}`);\r\n }\r\n\r\n getDepartments() : Observable<string[]> {\r\n return this.http.get<string[]>(`${this.config.apiUrl}/activedirectory/departments`);\r\n }\r\n\r\n getTitles() : Observable<string[]> {\r\n return this.http.get<string[]>(`${this.config.apiUrl}/activedirectory/titles`);\r\n }\r\n\r\n getComputers(includeDisabled = false, parentOU = ''): Observable<User[]> {\r\n return this.http.get<User[]>(`${this.config.apiUrl}/activedirectory/computers/${includeDisabled}/${parentOU}`);\r\n }\r\n\r\n getServers(includeDisabled = false, parentOU = ''): Observable<User[]> {\r\n return this.http.get<User[]>(`${this.config.apiUrl}/activedirectory/servers/${includeDisabled}/${parentOU}`);\r\n }\r\n\r\n getWorkstations(includeDisabled = false, parentOU = ''): Observable<User[]> {\r\n return this.http.get<User[]>(`${this.config.apiUrl}/activedirectory/workstations/${includeDisabled}/${parentOU}`);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ServiceConfig } from './model/service-config';\r\n\r\nimport { ActiveDirectoryService } from './services/active-directory.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: []\r\n})\r\nexport class ActiveDirectoryModule {\r\n static forRoot(config: ServiceConfig): ModuleWithProviders<ActiveDirectoryModule> {\r\n return {\r\n ngModule: ActiveDirectoryModule,\r\n providers: [\r\n ActiveDirectoryService,\r\n { provide: ServiceConfig, useValue: config }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: ActiveDirectoryModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'ActiveDirectoryModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["NgxLibServiceConfig","i1.ServiceConfig"],"mappings":"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"}
@@ -4,153 +4,154 @@ import { EventEmitter, Injectable, Optional, Output, NgModule, SkipSelf } from '
4
4
  import * as i2 from '@angular/common/http';
5
5
  import { CommonModule } from '@angular/common';
6
6
 
7
- //import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';
8
- class ServiceConfig extends ServiceConfig$1 {
9
- // See the comment in the library's main service-config.ts file for an explanation
10
- constructor(useSsl_or_customApiUrl = false, tokenName = 'user', authenticateEndpoint = '/authenticate') {
11
- super(useSsl_or_customApiUrl, tokenName, authenticateEndpoint);
12
- }
7
+ //import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';
8
+ class ServiceConfig extends ServiceConfig$1 {
9
+ // See the comment in the library's main service-config.ts file for an explanation
10
+ constructor(useSsl_or_customApiUrl = false, appName = undefined, tokenName = 'user', authenticateEndpoint = '/authenticate') {
11
+ super(useSsl_or_customApiUrl, appName, tokenName, authenticateEndpoint);
12
+ }
13
13
  }
14
14
 
15
- class AuthenticationService {
16
- //#endregion
17
- //#region Lifecycle
18
- constructor(config, http) {
19
- this.config = config;
20
- this.http = http;
21
- //#region Fields
22
- this.authenticatedChanged = new EventEmitter();
23
- this.authenticatingChanged = new EventEmitter();
24
- this.authenticationError = new EventEmitter();
25
- this.authenticating = false; // Flag set to true while the service is attempting to authenticate the user
26
- this.authenticated = false; // Flag set to true when the user is successfully authenticated
27
- this.config = this.config ?? new ServiceConfig();
28
- this.checkForExistingToken();
29
- }
30
- //#endregion
31
- //#region Properties
32
- get useSessionStorage() {
33
- return !!localStorage.getItem('storeTokenInSession');
34
- }
35
- get storage() {
36
- return this.useSessionStorage ?
37
- sessionStorage :
38
- localStorage;
39
- }
40
- //#endregion
41
- //#region Utilities
42
- //Authenticate the user and store the token in Local Storage
43
- login(username, password, adminGroup) {
44
- const request = {
45
- username: username,
46
- password: password,
47
- adminGroup: adminGroup
48
- };
49
- this.authenticating = true;
50
- this.authenticatingChanged.emit(this.authenticating);
51
- this.http.post(`${this.config.apiUrl}${this.config.authenticateEndpoint}`, request)
52
- .subscribe({
53
- next: (user) => {
54
- if (user) {
55
- this.validateUser(user);
56
- }
57
- else {
58
- this.logout();
59
- }
60
- },
61
- error: (err) => {
62
- this.authenticating = false;
63
- this.authenticatingChanged.emit(this.authenticating);
64
- this.authenticationError.emit(err);
65
- }
66
- });
67
- }
68
- //Logout the user and delete the token from Local Storage
69
- logout() {
70
- if (this.storage.getItem(this.config.tokenName)) {
71
- this.storage.removeItem(this.config.tokenName);
72
- }
73
- this.authenticatedUser = undefined;
74
- this.authenticated = false;
75
- this.authenticatedChanged.emit(false);
76
- }
77
- validateUser(token) {
78
- this.authenticatedUser = {
79
- admin: false,
80
- displayName: token.displayName,
81
- accountName: token.sAMAccountName,
82
- distinguishedName: token.distinguishedName,
83
- employeeNumber: token.employeeNumber,
84
- memberOf: token.memberOf.join(',')
85
- };
86
- this.storage.setItem(this.config.tokenName, JSON.stringify(token));
87
- this.authenticated = true;
88
- this.authenticatedChanged.emit(this.authenticated);
89
- this.authenticating = false;
90
- this.authenticatingChanged.emit(this.authenticating);
91
- }
92
- checkForExistingToken() {
93
- const token = this.storage.getItem(this.config.tokenName);
94
- if (token) {
95
- this.validateUser(JSON.parse(token));
96
- }
97
- }
98
- }
99
- AuthenticationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthenticationService, deps: [{ token: ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
100
- AuthenticationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthenticationService, providedIn: 'root' });
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AuthenticationService, decorators: [{
102
- type: Injectable,
103
- args: [{
104
- providedIn: 'root'
105
- }]
106
- }], ctorParameters: function () { return [{ type: ServiceConfig, decorators: [{
107
- type: Optional
108
- }] }, { type: i2.HttpClient }]; }, propDecorators: { authenticatedChanged: [{
109
- type: Output
110
- }], authenticatingChanged: [{
111
- type: Output
112
- }], authenticationError: [{
113
- type: Output
15
+ class AuthenticationService {
16
+ //#endregion
17
+ //#region Properties
18
+ get useSessionStorage() {
19
+ return !!localStorage.getItem('storeTokenInSession');
20
+ }
21
+ get storage() {
22
+ return this.useSessionStorage ?
23
+ sessionStorage :
24
+ localStorage;
25
+ }
26
+ //#endregion
27
+ //#region Lifecycle
28
+ constructor(config, http) {
29
+ this.config = config;
30
+ this.http = http;
31
+ //#region Fields
32
+ this.authenticatedChanged = new EventEmitter();
33
+ this.authenticatingChanged = new EventEmitter();
34
+ this.authenticationError = new EventEmitter();
35
+ this.authenticating = false; // Flag set to true while the service is attempting to authenticate the user
36
+ this.authenticated = false; // Flag set to true when the user is successfully authenticated
37
+ this.config = this.config ?? new ServiceConfig();
38
+ this.checkForExistingToken();
39
+ }
40
+ //#endregion
41
+ //#region Utilities
42
+ //Authenticate the user and store the token in Local Storage
43
+ login(username, password, adminGroup, additionalInfo) {
44
+ const request = {
45
+ username,
46
+ password,
47
+ adminGroup,
48
+ additionalInfo,
49
+ appName: this.config.appName
50
+ };
51
+ this.authenticating = true;
52
+ this.authenticatingChanged.emit(this.authenticating);
53
+ this.http.post(`${this.config.apiUrl}${this.config.authenticateEndpoint}`, request)
54
+ .subscribe({
55
+ next: (user) => {
56
+ if (user) {
57
+ this.validateUser(user);
58
+ }
59
+ else {
60
+ this.logout();
61
+ }
62
+ },
63
+ error: (err) => {
64
+ this.authenticating = false;
65
+ this.authenticatingChanged.emit(this.authenticating);
66
+ this.authenticationError.emit(err);
67
+ }
68
+ });
69
+ }
70
+ //Logout the user and delete the token from Local Storage
71
+ logout() {
72
+ if (this.storage.getItem(this.config.tokenName)) {
73
+ this.storage.removeItem(this.config.tokenName);
74
+ }
75
+ this.authenticatedUser = undefined;
76
+ this.authenticated = false;
77
+ this.authenticatedChanged.emit(false);
78
+ }
79
+ validateUser(token) {
80
+ this.authenticatedUser = {
81
+ admin: false,
82
+ displayName: token.displayName,
83
+ accountName: token.sAMAccountName,
84
+ distinguishedName: token.distinguishedName,
85
+ employeeNumber: token.employeeNumber,
86
+ memberOf: token.memberOf.join(',')
87
+ };
88
+ this.storage.setItem(this.config.tokenName, JSON.stringify(token));
89
+ this.authenticated = true;
90
+ this.authenticatedChanged.emit(this.authenticated);
91
+ this.authenticating = false;
92
+ this.authenticatingChanged.emit(this.authenticating);
93
+ }
94
+ checkForExistingToken() {
95
+ const token = this.storage.getItem(this.config.tokenName);
96
+ if (token) {
97
+ this.validateUser(JSON.parse(token));
98
+ }
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthenticationService, deps: [{ token: ServiceConfig, optional: true }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
101
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthenticationService, providedIn: 'root' }); }
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AuthenticationService, decorators: [{
104
+ type: Injectable,
105
+ args: [{
106
+ providedIn: 'root'
107
+ }]
108
+ }], ctorParameters: function () { return [{ type: ServiceConfig, decorators: [{
109
+ type: Optional
110
+ }] }, { type: i2.HttpClient }]; }, propDecorators: { authenticatedChanged: [{
111
+ type: Output
112
+ }], authenticatingChanged: [{
113
+ type: Output
114
+ }], authenticationError: [{
115
+ type: Output
114
116
  }] } });
115
117
 
116
- class ObjectModule {
117
- constructor(parentModule) {
118
- if (parentModule) {
119
- throw new Error('ObjectModule is already loaded. Import it in the AppModule only');
120
- }
121
- }
122
- static forRoot(config) {
123
- return {
124
- ngModule: ObjectModule,
125
- providers: [
126
- AuthenticationService,
127
- { provide: ServiceConfig, useValue: config }
128
- ]
129
- };
130
- }
131
- }
132
- ObjectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ObjectModule, deps: [{ token: ObjectModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
133
- ObjectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ObjectModule, imports: [CommonModule] });
134
- ObjectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ObjectModule, imports: [CommonModule] });
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ObjectModule, decorators: [{
136
- type: NgModule,
137
- args: [{
138
- declarations: [],
139
- imports: [
140
- CommonModule
141
- ],
142
- exports: []
143
- }]
144
- }], ctorParameters: function () { return [{ type: ObjectModule, decorators: [{
145
- type: Optional
146
- }, {
147
- type: SkipSelf
118
+ class ObjectModule {
119
+ static forRoot(config) {
120
+ return {
121
+ ngModule: ObjectModule,
122
+ providers: [
123
+ AuthenticationService,
124
+ { provide: ServiceConfig, useValue: config }
125
+ ]
126
+ };
127
+ }
128
+ constructor(parentModule) {
129
+ if (parentModule) {
130
+ throw new Error('ObjectModule is already loaded. Import it in the AppModule only');
131
+ }
132
+ }
133
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ObjectModule, deps: [{ token: ObjectModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
134
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ObjectModule, imports: [CommonModule] }); }
135
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ObjectModule, imports: [CommonModule] }); }
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ObjectModule, decorators: [{
138
+ type: NgModule,
139
+ args: [{
140
+ declarations: [],
141
+ imports: [
142
+ CommonModule
143
+ ],
144
+ exports: []
145
+ }]
146
+ }], ctorParameters: function () { return [{ type: ObjectModule, decorators: [{
147
+ type: Optional
148
+ }, {
149
+ type: SkipSelf
148
150
  }] }]; } });
149
151
 
150
- /**
151
- * Generated bundle index. Do not edit.
152
+ /**
153
+ * Generated bundle index. Do not edit.
152
154
  */
153
155
 
154
156
  export { AuthenticationService, ObjectModule, ServiceConfig };
155
157
  //# sourceMappingURL=cleavelandprice-ngx-lib-authentication-object.mjs.map
156
- //# sourceMappingURL=cleavelandprice-ngx-lib-authentication-object.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleavelandprice-ngx-lib-authentication-object.mjs","sources":["../../../../projects/cleavelandprice/ngx-lib/authentication/object/src/model/service-config.ts","../../../../projects/cleavelandprice/ngx-lib/authentication/object/src/services/authentication.service.ts","../../../../projects/cleavelandprice/ngx-lib/authentication/object/src/object.module.ts","../../../../projects/cleavelandprice/ngx-lib/authentication/object/src/cleavelandprice-ngx-lib-authentication-object.ts"],"sourcesContent":["//import { ServiceConfig as NgxLibServiceConfig } from '@cleavelandprice/ngx-lib';\r\nimport { ServiceConfig as BaseServiceConfig } from '@cleavelandprice/ngx-lib/authentication';\r\n\r\nexport class ServiceConfig extends BaseServiceConfig {\r\n \r\n // See the comment in the library's main service-config.ts file for an explanation\r\n constructor(useSsl_or_customApiUrl: boolean | string = false,\r\n appName: string | undefined = undefined,\r\n tokenName = 'user',\r\n authenticateEndpoint = '/authenticate'\r\n ) {\r\n super(useSsl_or_customApiUrl, appName, tokenName, authenticateEndpoint);\r\n }\r\n}","import { EventEmitter, Injectable, Optional, Output } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { User } from '@cleavelandprice/ngx-lib/active-directory';\r\n\r\nimport {\r\n AbstractAuthenticationService,\r\n AuthenticatedUser,\r\n AuthenticationRequest\r\n} from '@cleavelandprice/ngx-lib/authentication';\r\n\r\nimport { ServiceConfig } from '../model/service-config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService implements AbstractAuthenticationService {\r\n //#region Fields\r\n @Output() authenticatedChanged = new EventEmitter<boolean>();\r\n @Output() authenticatingChanged = new EventEmitter<boolean>();\r\n @Output() authenticationError = new EventEmitter();\r\n authenticating = false; // Flag set to true while the service is attempting to authenticate the user\r\n authenticated = false; // Flag set to true when the user is successfully authenticated\r\n authenticatedUser: AuthenticatedUser | undefined; // Object representing the authenticated user\r\n //#endregion\r\n\r\n //#region Properties\r\n get useSessionStorage(): boolean {\r\n return !!localStorage.getItem('storeTokenInSession');\r\n }\r\n\r\n get storage(): Storage {\r\n return this.useSessionStorage ?\r\n sessionStorage:\r\n localStorage;\r\n }\r\n //#endregion\r\n\r\n //#region Lifecycle\r\n constructor(@Optional() private config: ServiceConfig,\r\n private http: HttpClient) {\r\n\r\n this.config = this.config ?? new ServiceConfig();\r\n \r\n this.checkForExistingToken();\r\n }\r\n //#endregion\r\n\r\n //#region Utilities\r\n //Authenticate the user and store the token in Local Storage\r\n login(username: string, password: string, adminGroup?: string, additionalInfo?: string): void {\r\n const request: AuthenticationRequest = {\r\n username,\r\n password,\r\n adminGroup,\r\n additionalInfo,\r\n appName: this.config.appName\r\n };\r\n\r\n this.authenticating = true;\r\n this.authenticatingChanged.emit(this.authenticating);\r\n\r\n this.http.post(`${this.config.apiUrl}${this.config.authenticateEndpoint}`, request)\r\n .subscribe({\r\n next: (user) => {\r\n if (user) {\r\n this.validateUser(user as User);\r\n } else {\r\n this.logout();\r\n }\r\n },\r\n error: (err) => {\r\n this.authenticating = false;\r\n this.authenticatingChanged.emit(this.authenticating);\r\n this.authenticationError.emit(err);\r\n }\r\n });\r\n }\r\n \r\n //Logout the user and delete the token from Local Storage\r\n logout(): void {\r\n if (this.storage.getItem(this.config.tokenName)) {\r\n this.storage.removeItem(this.config.tokenName);\r\n }\r\n\r\n this.authenticatedUser = undefined;\r\n this.authenticated = false;\r\n this.authenticatedChanged.emit(false);\r\n }\r\n \r\n validateUser(token: User): void {\r\n this.authenticatedUser = {\r\n admin: false, // This type of authentication has no concept of Admin\r\n displayName: token.displayName,\r\n accountName: token.sAMAccountName,\r\n distinguishedName: token.distinguishedName,\r\n employeeNumber: token.employeeNumber,\r\n memberOf: token.memberOf.join(',')\r\n };\r\n\r\n this.storage.setItem(this.config.tokenName, JSON.stringify(token));\r\n \r\n this.authenticated = true;\r\n this.authenticatedChanged.emit(this.authenticated);\r\n\r\n this.authenticating = false;\r\n this.authenticatingChanged.emit(this.authenticating);\r\n }\r\n\r\n checkForExistingToken(): void {\r\n const token = this.storage.getItem(this.config.tokenName);\r\n if (token) {\r\n this.validateUser(JSON.parse(token) as User);\r\n }\r\n }\r\n //#endregion\r\n}\r\n ","import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ServiceConfig } from './model/service-config';\r\n\r\nimport { AuthenticationService } from './services/authentication.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: []\r\n})\r\nexport class ObjectModule {\r\n static forRoot(config: ServiceConfig): ModuleWithProviders<ObjectModule> {\r\n return {\r\n ngModule: ObjectModule,\r\n providers: [\r\n AuthenticationService,\r\n { provide: ServiceConfig, useValue: config }\r\n ]\r\n };\r\n }\r\n\r\n constructor(@Optional() @SkipSelf() parentModule: ObjectModule) {\r\n if (parentModule) {\r\n throw new Error(\r\n 'ObjectModule is already loaded. Import it in the AppModule only');\r\n }\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["BaseServiceConfig","i1.ServiceConfig"],"mappings":"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"}