@cleavelandprice/ngx-lib 4.4.2 → 4.4.3

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 (198) hide show
  1. package/README.md +5 -5
  2. package/active-directory/material/components/user-chooser/user-chooser.component.d.ts +18 -18
  3. package/esm2022/active-directory/active-directory.api.mjs +11 -0
  4. package/esm2022/active-directory/active-directory.module.mjs +40 -0
  5. package/esm2022/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +5 -0
  6. package/esm2022/active-directory/material/cleavelandprice-ngx-lib-active-directory-material.mjs +5 -0
  7. package/esm2022/active-directory/material/components/user-chooser/user-chooser.component.mjs +437 -0
  8. package/esm2022/active-directory/material/components/user-form-field/user-form-field.component.mjs +159 -0
  9. package/esm2022/active-directory/material/mat-active-directory.api.mjs +11 -0
  10. package/esm2022/active-directory/material/mat-active-directory.module.mjs +100 -0
  11. package/esm2022/active-directory/material/model/default-user-chooser-data.mjs +15 -0
  12. package/esm2022/active-directory/material/model/default-user-chooser-filter-options.mjs +8 -0
  13. package/esm2022/active-directory/material/model/selectable-group.mjs +2 -0
  14. package/esm2022/active-directory/material/model/selectable-user.mjs +2 -0
  15. package/esm2022/active-directory/material/model/user-chooser-data.mjs +2 -0
  16. package/esm2022/active-directory/material/model/user-chooser-filter-options.mjs +3 -0
  17. package/esm2022/active-directory/material/model/user-chooser-mode.mjs +6 -0
  18. package/esm2022/active-directory/material/model/user-chooser-pre-processing-group.mjs +3 -0
  19. package/esm2022/active-directory/model/active-directory-service-options-token.mjs +3 -0
  20. package/esm2022/active-directory/model/active-directory-service-options.mjs +2 -0
  21. package/esm2022/active-directory/model/ad-object-with-children.mjs +2 -0
  22. package/esm2022/active-directory/model/ad-object.mjs +2 -0
  23. package/esm2022/active-directory/model/cache-object.mjs +3 -0
  24. package/esm2022/active-directory/model/cleaveland-price-user.mjs +2 -0
  25. package/esm2022/active-directory/model/group.mjs +2 -0
  26. package/esm2022/active-directory/model/user-or-group.mjs +2 -0
  27. package/esm2022/active-directory/model/user.mjs +2 -0
  28. package/esm2022/active-directory/services/active-directory.service.mjs +125 -0
  29. package/esm2022/authentication/authentication.api.mjs +7 -0
  30. package/esm2022/authentication/authentication.base.module.mjs +40 -0
  31. package/esm2022/authentication/cleavelandprice-ngx-lib-authentication.mjs +5 -0
  32. package/esm2022/authentication/material/cleavelandprice-ngx-lib-authentication-material.mjs +5 -0
  33. package/esm2022/authentication/material/components/login/login.component.mjs +49 -0
  34. package/esm2022/authentication/material/components/login-form/login-form.component.mjs +82 -0
  35. package/esm2022/authentication/material/mat-authentication.api.mjs +8 -0
  36. package/esm2022/authentication/material/mat-authentication.module.mjs +84 -0
  37. package/esm2022/authentication/material/model/login-form-data.mjs +2 -0
  38. package/esm2022/authentication/material/model/mat-authentication-service-options-token.mjs +3 -0
  39. package/esm2022/authentication/material/model/mat-authentication-service-options.mjs +2 -0
  40. package/esm2022/authentication/material/services/mat-authentication.service.mjs +67 -0
  41. package/esm2022/authentication/model/abstract-authentication-service.mjs +2 -0
  42. package/esm2022/authentication/model/authenticated-user.mjs +2 -0
  43. package/esm2022/authentication/model/authentication-request.mjs +2 -0
  44. package/esm2022/authentication/model/authentication-service-options-token.mjs +3 -0
  45. package/esm2022/authentication/model/authentication-service-options.mjs +2 -0
  46. package/esm2022/authentication/object/authentication-object.api.mjs +6 -0
  47. package/esm2022/authentication/object/authentication-object.module.mjs +40 -0
  48. package/esm2022/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +5 -0
  49. package/esm2022/authentication/object/services/authentication-object.service.mjs +129 -0
  50. package/esm2022/authentication/token/authentication-token.api.mjs +6 -0
  51. package/esm2022/authentication/token/authetiction-token.module.mjs +40 -0
  52. package/esm2022/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +5 -0
  53. package/esm2022/authentication/token/model/authentication-token-service-options-token.mjs +3 -0
  54. package/esm2022/authentication/token/model/authentication-token-service-options.mjs +2 -0
  55. package/esm2022/authentication/token/model/authentication-token.mjs +2 -0
  56. package/esm2022/authentication/token/services/authentication-token.service.mjs +138 -0
  57. package/esm2022/cleavelandprice-ngx-lib.mjs +5 -0
  58. package/esm2022/dialog/cleavelandprice-ngx-lib-dialog.mjs +5 -0
  59. package/esm2022/dialog/components/base/base.component.mjs +102 -0
  60. package/esm2022/dialog/components/choice/choice.component.mjs +21 -0
  61. package/esm2022/dialog/components/confirmation/confirmation.component.mjs +21 -0
  62. package/esm2022/dialog/components/input/input.component.mjs +21 -0
  63. package/esm2022/dialog/components/message/message.component.mjs +21 -0
  64. package/esm2022/dialog/dialog.api.mjs +20 -0
  65. package/esm2022/dialog/dialog.module.mjs +73 -0
  66. package/esm2022/dialog/model/confirmation-dialog-mode.mjs +8 -0
  67. package/esm2022/dialog/model/dialog-base-data.mjs +2 -0
  68. package/esm2022/dialog/model/dialog-choice-data.mjs +2 -0
  69. package/esm2022/dialog/model/dialog-type.mjs +8 -0
  70. package/esm2022/lib/model/app-path-config.mjs +2 -0
  71. package/esm2022/lib/model/app-type.mjs +2 -0
  72. package/esm2022/lib/model/app.mjs +2 -0
  73. package/esm2022/lib/model/caching-config.mjs +2 -0
  74. package/esm2022/lib/model/credentials.mjs +2 -0
  75. package/esm2022/lib/model/logging-config.mjs +2 -0
  76. package/esm2022/lib/model/service-options-token.mjs +3 -0
  77. package/esm2022/lib/model/service-options.mjs +2 -0
  78. package/esm2022/lib/ngx-lib.module.mjs +37 -0
  79. package/esm2022/lib/services/app-path-config.service.mjs +50 -0
  80. package/esm2022/lib/services/service-base.mjs +26 -0
  81. package/esm2022/msgraph/cleavelandprice-ngx-lib-msgraph.mjs +5 -0
  82. package/esm2022/msgraph/model/address.mjs +2 -0
  83. package/esm2022/msgraph/model/attendee.mjs +2 -0
  84. package/esm2022/msgraph/model/bulk-calendar-events.mjs +2 -0
  85. package/esm2022/msgraph/model/bulk-calendar-request.mjs +2 -0
  86. package/esm2022/msgraph/model/calendar-event.mjs +2 -0
  87. package/esm2022/msgraph/model/coordinates.mjs +2 -0
  88. package/esm2022/msgraph/model/email-address.mjs +2 -0
  89. package/esm2022/msgraph/model/location.mjs +2 -0
  90. package/esm2022/msgraph/model/online-meeting-info.mjs +2 -0
  91. package/esm2022/msgraph/model/patterned-recurrence.mjs +2 -0
  92. package/esm2022/msgraph/model/phone.mjs +2 -0
  93. package/esm2022/msgraph/model/recipient.mjs +2 -0
  94. package/esm2022/msgraph/model/recurrence-pattern.mjs +2 -0
  95. package/esm2022/msgraph/model/recurrence-range.mjs +2 -0
  96. package/esm2022/msgraph/model/response-status.mjs +2 -0
  97. package/esm2022/msgraph/model/room.mjs +6 -0
  98. package/esm2022/msgraph/model/user.mjs +132 -0
  99. package/esm2022/msgraph/msgraph.api.mjs +19 -0
  100. package/esm2022/msgraph/msgraph.module.mjs +27 -0
  101. package/esm2022/public_api.mjs +15 -0
  102. package/esm2022/quill/cleavelandprice-ngx-lib-quill.mjs +5 -0
  103. package/esm2022/quill/components/editor/editor.component.mjs +282 -0
  104. package/esm2022/quill/components/raw/raw.component.mjs +30 -0
  105. package/esm2022/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +5 -0
  106. package/esm2022/quill/mention/components/editor/editor.component.mjs +151 -0
  107. package/esm2022/quill/mention/model/dialog-data.mjs +2 -0
  108. package/esm2022/quill/mention/quill-mention.api.mjs +9 -0
  109. package/esm2022/quill/mention/quill-mention.module.mjs +65 -0
  110. package/esm2022/quill/model/buttons.mjs +3 -0
  111. package/esm2022/quill/model/config.mjs +3 -0
  112. package/esm2022/quill/model/default-buttons.mjs +50 -0
  113. package/esm2022/quill/model/default-config.mjs +28 -0
  114. package/esm2022/quill/model/default-icons.mjs +7 -0
  115. package/esm2022/quill/model/default-tooltips.mjs +53 -0
  116. package/esm2022/quill/model/dialog-data.mjs +2 -0
  117. package/esm2022/quill/model/icons.mjs +3 -0
  118. package/esm2022/quill/model/tooltips.mjs +3 -0
  119. package/esm2022/quill/quill.api.mjs +13 -0
  120. package/esm2022/quill/quill.module.mjs +75 -0
  121. package/esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +5 -0
  122. package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +40 -0
  123. package/esm2022/sharepoint/default-credentials.mjs +6 -0
  124. package/esm2022/sharepoint/model/base-item.mjs +2 -0
  125. package/esm2022/sharepoint/model/base-request-credential.mjs +2 -0
  126. package/esm2022/sharepoint/model/base-request.mjs +2 -0
  127. package/esm2022/sharepoint/model/cache-object.mjs +3 -0
  128. package/esm2022/sharepoint/model/file-request.mjs +2 -0
  129. package/esm2022/sharepoint/model/folder-request.mjs +2 -0
  130. package/esm2022/sharepoint/model/list-item.mjs +2 -0
  131. package/esm2022/sharepoint/model/list-items-request.mjs +2 -0
  132. package/esm2022/sharepoint/model/photo-item.mjs +2 -0
  133. package/esm2022/sharepoint/model/sharepoint-service-options.mjs +3 -0
  134. package/esm2022/sharepoint/model/uri-request.mjs +2 -0
  135. package/esm2022/sharepoint/model/user-request.mjs +2 -0
  136. package/esm2022/sharepoint/model/user.mjs +2 -0
  137. package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +37 -0
  138. package/esm2022/sharepoint/services/sharepoint.service.mjs +155 -0
  139. package/esm2022/sharepoint/sharepoint.api.mjs +17 -0
  140. package/esm2022/sharepoint/sharepoint.module.mjs +50 -0
  141. package/esm2022/table/cleavelandprice-ngx-lib-table.mjs +5 -0
  142. package/esm2022/table/components/table/table.component.mjs +120 -0
  143. package/esm2022/table/model/table-column.mjs +2 -0
  144. package/esm2022/table/pipes/decimalPoints.mjs +14 -0
  145. package/esm2022/table/pipes/roundNumber.mjs +14 -0
  146. package/esm2022/table/table.api.mjs +6 -0
  147. package/esm2022/table/table.module.mjs +78 -0
  148. package/esm2022/upload/cleavelandprice-ngx-lib-upload.mjs +5 -0
  149. package/esm2022/upload/components/upload/upload.component.mjs +32 -0
  150. package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +98 -0
  151. package/esm2022/upload/model/database-file-info.mjs +2 -0
  152. package/esm2022/upload/model/file-upload-request.mjs +2 -0
  153. package/esm2022/upload/model/filesystem-file-info.mjs +2 -0
  154. package/esm2022/upload/model/msg-file-content.mjs +5 -0
  155. package/esm2022/upload/model/upload-service-options-token.mjs +3 -0
  156. package/esm2022/upload/model/upload-service-options.mjs +3 -0
  157. package/esm2022/upload/model/upload-status.mjs +2 -0
  158. package/esm2022/upload/services/upload.service.mjs +106 -0
  159. package/esm2022/upload/upload.api.mjs +11 -0
  160. package/esm2022/upload/upload.module.mjs +68 -0
  161. package/esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +5 -0
  162. package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +19 -0
  163. package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +19 -0
  164. package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +106 -0
  165. package/esm2022/url-utilities/url-utilities.api.mjs +13 -0
  166. package/esm2022/url-utilities/url-utilities.module.mjs +34 -0
  167. package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs +12 -12
  168. package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs.map +1 -1
  169. package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs +7 -7
  170. package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  171. package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs +15 -15
  172. package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs.map +1 -1
  173. package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +7 -7
  174. package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
  175. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +7 -7
  176. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
  177. package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs +4 -4
  178. package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
  179. package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +24 -24
  180. package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  181. package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
  182. package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
  183. package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +10 -10
  184. package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  185. package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +14 -14
  186. package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  187. package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +14 -14
  188. package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  189. package/fesm2022/cleavelandprice-ngx-lib-table.mjs +14 -14
  190. package/fesm2022/cleavelandprice-ngx-lib-table.mjs.map +1 -1
  191. package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +15 -14
  192. package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  193. package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
  194. package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
  195. package/fesm2022/cleavelandprice-ngx-lib.mjs +7 -7
  196. package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
  197. package/package.json +35 -5
  198. package/table/model/table-column.d.ts +4 -1
@@ -0,0 +1,106 @@
1
+ import { HttpClient, HttpEventType, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';
2
+ import { Inject, Injectable, Optional, inject } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import { NgxLibServiceBase } from '@cleavelandprice/ngx-lib';
5
+ import { UploadServiceOptionsToken } from '../model/upload-service-options-token';
6
+ import * as i0 from "@angular/core";
7
+ // https://malcoded.com/posts/angular-file-upload-component-with-express
8
+ export class UploadService extends NgxLibServiceBase {
9
+ #http = inject(HttpClient);
10
+ constructor(options) {
11
+ super(options);
12
+ this.options = options;
13
+ this.options = {
14
+ ...options,
15
+ databaseEndpoint: options?.databaseEndpoint ?? '/upload/database',
16
+ uploadDialogTitle: options?.uploadDialogTitle ?? 'Upload Files',
17
+ uploadButtonText: options?.uploadButtonText ?? 'Upload',
18
+ uploadDialogCancelButtonText: options?.uploadDialogCancelButtonText ?? 'Cancel',
19
+ uploadDialogFinishButtonText: options?.uploadDialogFinishButtonText ?? 'Finish',
20
+ uploadDialogUploadButtonText: options?.uploadButtonText ?? 'Upload',
21
+ uploadDialogAddFilesButtonText: options?.uploadDialogAddFilesButtonText ?? 'Add Files'
22
+ };
23
+ }
24
+ upload(files) {
25
+ // this will be the our resulting map
26
+ const status = {};
27
+ files.forEach(file => {
28
+ // create a new multipart-form for every file
29
+ const formData = new FormData();
30
+ formData.append('file', file, file.name);
31
+ // create a http-post request and pass the form
32
+ // tell it to report the upload progress
33
+ // A 'Destination' header is used to optionally configure the file upload destination (filesystem)
34
+ // A 'DbAppId' header is used to configure the unique identifier of database uploads
35
+ let headers = new HttpHeaders();
36
+ if (this.options.uploadPath) {
37
+ headers = headers.set('Destination', this.options.uploadPath);
38
+ }
39
+ if (this.options.dbAppId) {
40
+ headers = headers.set('DbAppId', this.options.dbAppId);
41
+ }
42
+ if (this.options.externalReferenceId) {
43
+ headers = headers.set('ExternalReferenceId', this.options.externalReferenceId);
44
+ }
45
+ if (this.options.comment) {
46
+ headers = headers.set('Comment', this.options.comment);
47
+ }
48
+ const req = new HttpRequest('POST', `${this.apiUrl}${this.options.databaseEndpoint}`, formData, {
49
+ reportProgress: true,
50
+ responseType: 'blob',
51
+ headers
52
+ });
53
+ // create a new progress-subject for every file
54
+ const progress = new Subject();
55
+ // send the http-request and subscribe for progress-updates
56
+ this.#http.request(req).subscribe(event => {
57
+ if (event.type === HttpEventType.UploadProgress) {
58
+ // calculate the progress percentage
59
+ const percentDone = Math.round(100 * event.loaded / (event.total ?? 1));
60
+ // pass the percentage into the progress-stream
61
+ progress.next(percentDone);
62
+ }
63
+ else if (event instanceof HttpResponse) {
64
+ // Close the progress-stream if we get an answer form the API
65
+ // The upload is complete
66
+ progress.complete();
67
+ }
68
+ });
69
+ // Save every progress-observable in a map of all observables
70
+ status[file.name] = {
71
+ progress: progress.asObservable()
72
+ };
73
+ });
74
+ // return the map of progress.observables
75
+ return status;
76
+ }
77
+ exists(fileName) {
78
+ const query = `${this.apiUrl}${this.options.databaseEndpoint}`.toLowerCase().includes('filesystem') ?
79
+ { name: fileName, destination: this.options.uploadPath } :
80
+ { name: fileName, dbAppId: this.options.dbAppId };
81
+ return this.#http.post(`${this.apiUrl}${this.options.databaseEndpoint}/exists`, query);
82
+ }
83
+ download(request) {
84
+ return this.#http.post(`${this.apiUrl}${this.options.databaseEndpoint}/stream`, request, { responseType: 'blob' });
85
+ }
86
+ getMsgContent(request) {
87
+ return this.#http.post(`${this.apiUrl}${this.options.databaseEndpoint}/msg`, request);
88
+ }
89
+ getUploadInfo(request) {
90
+ return this.#http.post(`${this.apiUrl}${this.options.databaseEndpoint}/info`, request);
91
+ }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UploadService, deps: [{ token: UploadServiceOptionsToken, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UploadService, providedIn: 'root' }); }
94
+ }
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UploadService, decorators: [{
96
+ type: Injectable,
97
+ args: [{
98
+ providedIn: 'root'
99
+ }]
100
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
101
+ type: Optional
102
+ }, {
103
+ type: Inject,
104
+ args: [UploadServiceOptionsToken]
105
+ }] }] });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cGxvYWQvc3JjL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekcsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTTdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUdsRix3RUFBd0U7QUFLeEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFDbEQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUzQixZQUFrRSxPQUE2QjtRQUM3RixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEaUQsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFHN0YsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLEdBQUcsT0FBTztZQUNWLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxrQkFBa0I7WUFDakUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixJQUFJLGNBQWM7WUFDL0QsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixJQUFJLFFBQVE7WUFDdkQsNEJBQTRCLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixJQUFJLFFBQVE7WUFDL0UsNEJBQTRCLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixJQUFJLFFBQVE7WUFD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R0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDOzhHQXZHVSxhQUFhLGtCQUdRLHlCQUF5QjtrSEFIOUMsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBIZWFkZXJzLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTmd4TGliU2VydmljZUJhc2UgfSBmcm9tICdAY2xlYXZlbGFuZHByaWNlL25neC1saWInO1xyXG5pbXBvcnQgeyBEYXRhYmFzZUZpbGVJbmZvIH0gZnJvbSAnLi4vbW9kZWwvZGF0YWJhc2UtZmlsZS1pbmZvJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFJlcXVlc3QgfSBmcm9tICcuLi9tb2RlbC9maWxlLXVwbG9hZC1yZXF1ZXN0JztcclxuaW1wb3J0IHsgRmlsZXN5c3RlbUZpbGVJbmZvIH0gZnJvbSAnLi4vbW9kZWwvZmlsZXN5c3RlbS1maWxlLWluZm8nO1xyXG5pbXBvcnQgeyBNc2dGaWxlQ29udGVudCB9IGZyb20gJy4uL21vZGVsL21zZy1maWxlLWNvbnRlbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4uL21vZGVsL3VwbG9hZC1zZXJ2aWNlLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlT3B0aW9uc1Rva2VuIH0gZnJvbSAnLi4vbW9kZWwvdXBsb2FkLXNlcnZpY2Utb3B0aW9ucy10b2tlbic7XHJcbmltcG9ydCB7IFVwbG9hZFN0YXR1cyB9IGZyb20gJy4uL21vZGVsL3VwbG9hZC1zdGF0dXMnO1xyXG5cclxuLy8gaHR0cHM6Ly9tYWxjb2RlZC5jb20vcG9zdHMvYW5ndWxhci1maWxlLXVwbG9hZC1jb21wb25lbnQtd2l0aC1leHByZXNzXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRTZXJ2aWNlIGV4dGVuZHMgTmd4TGliU2VydmljZUJhc2Uge1xyXG4gICNodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KFVwbG9hZFNlcnZpY2VPcHRpb25zVG9rZW4pIHB1YmxpYyBvcHRpb25zOiBVcGxvYWRTZXJ2aWNlT3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICBcclxuICAgIHRoaXMub3B0aW9ucyA9IHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgZGF0YWJhc2VFbmRwb2ludDogb3B0aW9ucz8uZGF0YWJhc2VFbmRwb2ludCA/PyAnL3VwbG9hZC9kYXRhYmFzZScsXHJcbiAgICAgIHVwbG9hZERpYWxvZ1RpdGxlOiBvcHRpb25zPy51cGxvYWREaWFsb2dUaXRsZSA/PyAnVXBsb2FkIEZpbGVzJyxcclxuICAgICAgdXBsb2FkQnV0dG9uVGV4dDogb3B0aW9ucz8udXBsb2FkQnV0dG9uVGV4dCA/PyAnVXBsb2FkJyxcclxuICAgICAgdXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dDogb3B0aW9ucz8udXBsb2FkRGlhbG9nQ2FuY2VsQnV0dG9uVGV4dCA/PyAnQ2FuY2VsJyxcclxuICAgICAgdXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dDogb3B0aW9ucz8udXBsb2FkRGlhbG9nRmluaXNoQnV0dG9uVGV4dCA/PyAnRmluaXNoJyxcclxuICAgICAgdXBsb2FkRGlhbG9nVXBsb2FkQnV0dG9uVGV4dDogb3B0aW9ucz8udXBsb2FkQnV0dG9uVGV4dCA/PyAnVXBsb2FkJyxcclxuICAgICAgdXBsb2FkRGlhbG9nQWRkRmlsZXNCdXR0b25UZXh0OiBvcHRpb25zPy51cGxvYWREaWFsb2dBZGRGaWxlc0J1dHRvblRleHQgPz8gJ0FkZCBGaWxlcydcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICB1cGxvYWQoZmlsZXM6IFNldDxGaWxlPik6IFVwbG9hZFN0YXR1cyB7IC8vIHtba2V5OiBzdHJpbmddOiBPYnNlcnZhYmxlPG51bWJlcj59IHtcclxuICAgIC8vIHRoaXMgd2lsbCBiZSB0aGUgb3VyIHJlc3VsdGluZyBtYXBcclxuICAgIGNvbnN0IHN0YXR1czogVXBsb2FkU3RhdHVzID0ge307XHJcblxyXG4gICAgZmlsZXMuZm9yRWFjaChmaWxlID0+IHtcclxuICAgICAgLy8gY3JlYXRlIGEgbmV3IG11bHRpcGFydC1mb3JtIGZvciBldmVyeSBmaWxlXHJcbiAgICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG5cclxuICAgICAgLy8gY3JlYXRlIGEgaHR0cC1wb3N0IHJlcXVlc3QgYW5kIHBhc3MgdGhlIGZvcm1cclxuICAgICAgLy8gdGVsbCBpdCB0byByZXBvcnQgdGhlIHVwbG9hZCBwcm9ncmVzc1xyXG5cclxuICAgICAgLy8gQSAnRGVzdGluYXRpb24nIGhlYWRlciBpcyB1c2VkIHRvIG9wdGlvbmFsbHkgY29uZmlndXJlIHRoZSBmaWxlIHVwbG9hZCBkZXN0aW5hdGlvbiAoZmlsZXN5c3RlbSlcclxuICAgICAgLy8gQSAnRGJBcHBJZCcgaGVhZGVyIGlzIHVzZWQgdG8gY29uZmlndXJlIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBkYXRhYmFzZSB1cGxvYWRzXHJcbiAgICAgIFxyXG4gICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnVwbG9hZFBhdGgpIHtcclxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0Rlc3RpbmF0aW9uJywgdGhpcy5vcHRpb25zLnVwbG9hZFBhdGgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZGJBcHBJZCkge1xyXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnRGJBcHBJZCcsIHRoaXMub3B0aW9ucy5kYkFwcElkKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLmV4dGVybmFsUmVmZXJlbmNlSWQpIHtcclxuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0V4dGVybmFsUmVmZXJlbmNlSWQnLCB0aGlzLm9wdGlvbnMuZXh0ZXJuYWxSZWZlcmVuY2VJZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5jb21tZW50KSB7XHJcbiAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb21tZW50JywgdGhpcy5vcHRpb25zLmNvbW1lbnQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCBgJHt0aGlzLmFwaVVybH0ke3RoaXMub3B0aW9ucy5kYXRhYmFzZUVuZHBvaW50fWAsIGZvcm1EYXRhLCB7XHJcbiAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgICAgaGVhZGVyc1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIGNyZWF0ZSBhIG5ldyBwcm9ncmVzcy1zdWJqZWN0IGZvciBldmVyeSBmaWxlXHJcbiAgICAgIGNvbnN0IHByb2dyZXNzID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG5cclxuICAgICAgLy8gc2VuZCB0aGUgaHR0cC1yZXF1ZXN0IGFuZCBzdWJzY3JpYmUgZm9yIHByb2dyZXNzLXVwZGF0ZXNcclxuICAgICAgdGhpcy4jaHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcykge1xyXG5cclxuICAgICAgICAgIC8vIGNhbGN1bGF0ZSB0aGUgcHJvZ3Jlc3MgcGVyY2VudGFnZVxyXG4gICAgICAgICAgY29uc3QgcGVyY2VudERvbmUgPSBNYXRoLnJvdW5kKDEwMCAqIGV2ZW50LmxvYWRlZCAvIChldmVudC50b3RhbCA/PyAxKSk7XHJcblxyXG4gICAgICAgICAgLy8gcGFzcyB0aGUgcGVyY2VudGFnZSBpbnRvIHRoZSBwcm9ncmVzcy1zdHJlYW1cclxuICAgICAgICAgIHByb2dyZXNzLm5leHQocGVyY2VudERvbmUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuXHJcbiAgICAgICAgICAvLyBDbG9zZSB0aGUgcHJvZ3Jlc3Mtc3RyZWFtIGlmIHdlIGdldCBhbiBhbnN3ZXIgZm9ybSB0aGUgQVBJXHJcbiAgICAgICAgICAvLyBUaGUgdXBsb2FkIGlzIGNvbXBsZXRlXHJcbiAgICAgICAgICBwcm9ncmVzcy5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBTYXZlIGV2ZXJ5IHByb2dyZXNzLW9ic2VydmFibGUgaW4gYSBtYXAgb2YgYWxsIG9ic2VydmFibGVzXHJcbiAgICAgIHN0YXR1c1tmaWxlLm5hbWVdID0ge1xyXG4gICAgICAgIHByb2dyZXNzOiBwcm9ncmVzcy5hc09ic2VydmFibGUoKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gcmV0dXJuIHRoZSBtYXAgb2YgcHJvZ3Jlc3Mub2JzZXJ2YWJsZXNcclxuICAgIHJldHVybiBzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBleGlzdHMoZmlsZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcXVlcnkgPSBgJHt0aGlzLmFwaVVybH0ke3RoaXMub3B0aW9ucy5kYXRhYmFzZUVuZHBvaW50fWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZmlsZXN5c3RlbScpID9cclxuICAgICAgeyBuYW1lOiBmaWxlTmFtZSwgZGVzdGluYXRpb246IHRoaXMub3B0aW9ucy51cGxvYWRQYXRoIH0gOlxyXG4gICAgICB7IG5hbWU6IGZpbGVOYW1lLCBkYkFwcElkOiB0aGlzLm9wdGlvbnMuZGJBcHBJZCB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLiNodHRwLnBvc3Q8Ym9vbGVhbj4oYCR7dGhpcy5hcGlVcmx9JHt0aGlzLm9wdGlvbnMuZGF0YWJhc2VFbmRwb2ludH0vZXhpc3RzYCwgcXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWQocmVxdWVzdDogRmlsZVVwbG9hZFJlcXVlc3QpOiBPYnNlcnZhYmxlPEJsb2I+IHtcclxuICAgIHJldHVybiB0aGlzLiNodHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9JHt0aGlzLm9wdGlvbnMuZGF0YWJhc2VFbmRwb2ludH0vc3RyZWFtYCwgcmVxdWVzdCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KTtcclxuICB9XHJcblxyXG4gIGdldE1zZ0NvbnRlbnQocmVxdWVzdDogRmlsZVVwbG9hZFJlcXVlc3QpOiBPYnNlcnZhYmxlPE1zZ0ZpbGVDb250ZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy4jaHR0cC5wb3N0PE1zZ0ZpbGVDb250ZW50PihgJHt0aGlzLmFwaVVybH0ke3RoaXMub3B0aW9ucy5kYXRhYmFzZUVuZHBvaW50fS9tc2dgLCByZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIGdldFVwbG9hZEluZm8ocmVxdWVzdDogRmlsZVVwbG9hZFJlcXVlc3QpOlxyXG4gICAgT2JzZXJ2YWJsZTxEYXRhYmFzZUZpbGVJbmZvIHwgRGF0YWJhc2VGaWxlSW5mb1tdIHwgRmlsZXN5c3RlbUZpbGVJbmZvIHwgRmlsZXN5c3RlbUZpbGVJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLiNodHRwLnBvc3Q8RGF0YWJhc2VGaWxlSW5mbyB8IERhdGFiYXNlRmlsZUluZm9bXSB8IEZpbGVzeXN0ZW1GaWxlSW5mbyB8IEZpbGVzeXN0ZW1GaWxlSW5mb1tdPlxyXG4gICAgICAoYCR7dGhpcy5hcGlVcmx9JHt0aGlzLm9wdGlvbnMuZGF0YWJhc2VFbmRwb2ludH0vaW5mb2AsIHJlcXVlc3QpO1xyXG4gIH1cclxufSJdfQ==
@@ -0,0 +1,11 @@
1
+ export * from './model/database-file-info';
2
+ export * from './model/file-upload-request';
3
+ export * from './model/filesystem-file-info';
4
+ export * from './model/msg-file-content';
5
+ export * from './model/upload-service-options';
6
+ export * from './model/upload-service-options-token';
7
+ export * from './components/upload-dialog/upload-dialog.component';
8
+ export * from './components/upload/upload.component';
9
+ export * from './services/upload.service';
10
+ export * from './upload.module';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvdXBsb2FkLmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9kYXRhYmFzZS1maWxlLWluZm8nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2ZpbGUtdXBsb2FkLXJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2ZpbGVzeXN0ZW0tZmlsZS1pbmZvJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9tc2ctZmlsZS1jb250ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC91cGxvYWQtc2VydmljZS1vcHRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC91cGxvYWQtc2VydmljZS1vcHRpb25zLXRva2VuJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91cGxvYWQtZGlhbG9nL3VwbG9hZC1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3VwbG9hZC91cGxvYWQuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdXBsb2FkLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91cGxvYWQubW9kdWxlJztcclxuXHJcbiJdfQ==
@@ -0,0 +1,68 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule, Optional, SkipSelf } from '@angular/core';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatDialogModule } from '@angular/material/dialog';
5
+ import { MatListModule } from '@angular/material/list';
6
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
7
+ import { UploadDialogComponent } from './components/upload-dialog/upload-dialog.component';
8
+ import { UploadComponent } from './components/upload/upload.component';
9
+ import { UploadServiceOptionsToken } from './model/upload-service-options-token';
10
+ import * as i0 from "@angular/core";
11
+ export class UploadModule {
12
+ static forRoot(options) {
13
+ return {
14
+ ngModule: UploadModule,
15
+ providers: [
16
+ {
17
+ provide: UploadServiceOptionsToken,
18
+ useValue: options
19
+ }
20
+ ]
21
+ };
22
+ }
23
+ constructor(parentModule) {
24
+ if (parentModule) {
25
+ throw new Error('UploadModule is already loaded. Import it in the AppModule only');
26
+ }
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UploadModule, deps: [{ token: UploadModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
29
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: UploadModule, imports: [CommonModule,
30
+ MatButtonModule,
31
+ MatDialogModule,
32
+ MatListModule,
33
+ MatProgressBarModule,
34
+ UploadComponent,
35
+ UploadDialogComponent], exports: [UploadComponent,
36
+ UploadDialogComponent] }); }
37
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UploadModule, imports: [CommonModule,
38
+ MatButtonModule,
39
+ MatDialogModule,
40
+ MatListModule,
41
+ MatProgressBarModule,
42
+ UploadComponent,
43
+ UploadDialogComponent] }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UploadModule, decorators: [{
46
+ type: NgModule,
47
+ args: [{
48
+ declarations: [],
49
+ imports: [
50
+ CommonModule,
51
+ MatButtonModule,
52
+ MatDialogModule,
53
+ MatListModule,
54
+ MatProgressBarModule,
55
+ UploadComponent,
56
+ UploadDialogComponent
57
+ ],
58
+ exports: [
59
+ UploadComponent,
60
+ UploadDialogComponent
61
+ ]
62
+ }]
63
+ }], ctorParameters: () => [{ type: UploadModule, decorators: [{
64
+ type: Optional
65
+ }, {
66
+ type: SkipSelf
67
+ }] }] });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VwbG9hZC9zcmMvdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBbUJqRixNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQTZCO1FBQzFDLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtvQkFDbEMsUUFBUSxFQUFFLE9BQU87aUJBQ2xCO2FBQ0Y7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELFlBQW9DLFlBQTBCO1FBQzVELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDOzhHQWxCVSxZQUFZOytHQUFaLFlBQVksWUFkckIsWUFBWTtZQUNaLGVBQWU7WUFDZixlQUFlO1lBQ2YsYUFBYTtZQUNiLG9CQUFvQjtZQUVwQixlQUFlO1lBQ2YscUJBQXFCLGFBR3JCLGVBQWU7WUFDZixxQkFBcUI7K0dBR1osWUFBWSxZQWRyQixZQUFZO1lBQ1osZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2Isb0JBQW9CO1lBRXBCLGVBQWU7WUFDZixxQkFBcUI7OzJGQU9aLFlBQVk7a0JBakJ4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixvQkFBb0I7d0JBRXBCLGVBQWU7d0JBQ2YscUJBQXFCO3FCQUN0QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZUFBZTt3QkFDZixxQkFBcUI7cUJBQ3RCO2lCQUNGOzswQkFjYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcblxyXG5pbXBvcnQgeyBVcGxvYWREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBsb2FkLWRpYWxvZy91cGxvYWQtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZFNlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi9tb2RlbC91cGxvYWQtc2VydmljZS1vcHRpb25zJztcclxuaW1wb3J0IHsgVXBsb2FkU2VydmljZU9wdGlvbnNUb2tlbiB9IGZyb20gJy4vbW9kZWwvdXBsb2FkLXNlcnZpY2Utb3B0aW9ucy10b2tlbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxyXG5cclxuICAgIFVwbG9hZENvbXBvbmVudCxcclxuICAgIFVwbG9hZERpYWxvZ0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgVXBsb2FkRGlhbG9nQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXBsb2FkTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zOiBVcGxvYWRTZXJ2aWNlT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VXBsb2FkTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogVXBsb2FkTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBVcGxvYWRTZXJ2aWNlT3B0aW9uc1Rva2VuLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudE1vZHVsZTogVXBsb2FkTW9kdWxlKSB7XHJcbiAgICBpZiAocGFyZW50TW9kdWxlKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnVXBsb2FkTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './url-utilities.api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItdXJsLXV0aWxpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL2NsZWF2ZWxhbmRwcmljZS1uZ3gtbGliLXVybC11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3VybC11dGlsaXRpZXMuYXBpJztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { inject, Pipe } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ export class SafeResourceUrlPipe {
5
+ #domSanitizer = inject(DomSanitizer);
6
+ transform(value) {
7
+ return this.#domSanitizer.bypassSecurityTrustResourceUrl(value);
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SafeResourceUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: SafeResourceUrlPipe, isStandalone: true, name: "safeResourceUrl" }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SafeResourceUrlPipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{
15
+ name: 'safeResourceUrl',
16
+ standalone: true
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1yZXNvdXJjZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL3BpcGVzL3NhZmUtcmVzb3VyY2UtdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixhQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRXJDLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDOzhHQUxVLG1CQUFtQjs0R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxpQkFBaUI7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2FmZVJlc291cmNlVXJsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWZlUmVzb3VyY2VVcmxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgI2RvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IFNhZmVVcmwge1xyXG4gICAgcmV0dXJuIHRoaXMuI2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0UmVzb3VyY2VVcmwodmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { inject, Pipe } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import * as i0 from "@angular/core";
4
+ export class SafeUrlPipe {
5
+ #domSanitizer = inject(DomSanitizer);
6
+ transform(value) {
7
+ return this.#domSanitizer.bypassSecurityTrustUrl(value);
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SafeUrlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
10
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: SafeUrlPipe, decorators: [{
13
+ type: Pipe,
14
+ args: [{
15
+ name: 'safeUrl',
16
+ standalone: true
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS11cmwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3VybC11dGlsaXRpZXMvc3JjL3BpcGVzL3NhZmUtdXJsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVyQyxTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0FMVSxXQUFXOzRHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdzYWZlVXJsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWZlVXJsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gICNkb21TYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBTYWZlVXJsIHtcclxuICAgIHJldHVybiB0aGlzLiNkb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh2YWx1ZSk7XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,106 @@
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UriSchemePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
96
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: UriSchemePipe, isStandalone: true, name: "uriScheme", pure: false }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UriSchemePipe, decorators: [{
99
+ type: Pipe,
100
+ args: [{
101
+ name: 'uriScheme',
102
+ standalone: true,
103
+ pure: false
104
+ }]
105
+ }] });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJpLXNjaGVtZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvdXJsLXV0aWxpdGllcy9zcmMvcGlwZXMvdXJpLXNjaGVtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sYUFBYTtJQUN4Qiw4RUFBOEU7SUFFOUUsU0FBUyxDQUFDLEtBQWEsRUFBRSxrQkFBa0IsR0FBRyxLQUFLO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDO1FBQUMsQ0FBQztRQUVuRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUFDLE9BQU8sS0FBSyxDQUFDO1FBQUMsQ0FBQztRQUVqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakMsT0FBTyxNQUFNLEdBQUcsSUFBSSxPQUFPLE1BQU0sS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFpQjtRQUNwQixRQUFRLFNBQVMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLFlBQVk7WUFDWixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQ3hCLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDekIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxFQUFFLFlBQVk7Z0JBQ2hELE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDeEIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxLQUFLLENBQUM7WUFDakQsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxFQUFFLFlBQVk7Z0JBQ2hELE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDeEIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDbEQsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN6QixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLEVBQUUsWUFBWTtnQkFDaEQsT0FBTyxZQUFZLENBQUM7WUFDdEIsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN4QixLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxFQUFFLFlBQVk7Z0JBQ25DLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxPQUFPLENBQUM7WUFBQyxLQUFLLE9BQU8sQ0FBQztZQUFDLEtBQUssT0FBTyxDQUFDO1lBQ3JELEtBQUssT0FBTyxFQUFFLFlBQVk7Z0JBQ3hCLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDeEIsS0FBSyxLQUFLLEVBQUUsWUFBWTtnQkFDdEIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sV0FBVyxDQUFDO1lBQ3JCLEtBQUssS0FBSztnQkFDUixPQUFPLFVBQVUsQ0FBQztZQUNwQjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLFNBQWlCO1FBQ3hCLFFBQVEsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDaEMsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQ3JDLEtBQUssS0FBSyxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUNyQyxLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssTUFBTSxDQUFDO1lBQUMsS0FBSyxNQUFNLENBQUM7WUFDckMsS0FBSyxLQUFLLENBQUM7WUFBQyxLQUFLLE1BQU0sQ0FBQztZQUN4QixLQUFLLE9BQU8sQ0FBQztZQUNiLEtBQUssS0FBSztnQkFDUixPQUFPLEtBQUssQ0FBQyxDQUFDLG9CQUFvQjtZQUNwQztnQkFDRSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQywyQkFBMkI7Z0JBQ2pELE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQyxDQUFDLGtDQUFrQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQzs4R0FoRVUsYUFBYTs0R0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUx6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO29CQUNqQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3VyaVNjaGVtZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwdXJlOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXJpU2NoZW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIC8vIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL29mZmljZS9jbGllbnQtZGV2ZWxvcGVyL29mZmljZS11cmktc2NoZW1lc1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgaWdub3JlTG9jYWxTdG9yYWdlID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlVXJpU2NoZW1lJykgJiYgIWlnbm9yZUxvY2FsU3RvcmFnZSkgeyByZXR1cm4gdmFsdWU7IH1cclxuXHJcbiAgICBjb25zdCB1cmxTcGxpdCA9IHZhbHVlLnNwbGl0KCcuJyk7XHJcbiAgICBjb25zdCBleHRlbnNpb24gPSB1cmxTcGxpdFt1cmxTcGxpdC5sZW5ndGggLSAxXTtcclxuXHJcbiAgICBpZiAoIWV4dGVuc2lvbikgeyByZXR1cm4gdmFsdWU7IH1cclxuXHJcbiAgICBjb25zdCBjb21tYW5kID0gdGhpcy4jY29tbWFuZChleHRlbnNpb24pO1xyXG4gICAgY29uc3QgYXBwID0gdGhpcy4jYXBwKGV4dGVuc2lvbik7XHJcblxyXG4gICAgcmV0dXJuIGBtcy0ke2FwcH06JHtjb21tYW5kfXx1fCR7dmFsdWV9YDtcclxuICB9XHJcblxyXG4gICNhcHAoZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChleHRlbnNpb24udG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAvLyBkb2N1bWVudHNcclxuICAgICAgY2FzZSAnZG9jJzogY2FzZSAnZG9jeCc6XHJcbiAgICAgIGNhc2UgJ2RvY20nOiBjYXNlICdkb2NiJzpcclxuICAgICAgY2FzZSAnZG90JzogY2FzZSAnZG90eCc6IGNhc2UgJ2RvdG0nOiAvLyB0ZW1wbGF0ZXNcclxuICAgICAgICByZXR1cm4gJ3dvcmQnO1xyXG4gICAgICBjYXNlICd4bHMnOiBjYXNlICd4bHN4JzpcclxuICAgICAgY2FzZSAneGxtJzogY2FzZSAneGxzbSc6IGNhc2UgJ3hsc2InOiBjYXNlICd4bHcnOlxyXG4gICAgICBjYXNlICd4bHQnOiBjYXNlICd4bHR4JzogY2FzZSAneGx0bSc6IC8vIHRlbXBsYXRlc1xyXG4gICAgICAgIHJldHVybiAnZXhjZWwnO1xyXG4gICAgICBjYXNlICdwcHQnOiBjYXNlICdwcHR4JzpcclxuICAgICAgY2FzZSAncHBzJzogY2FzZSAncHBzeCc6IGNhc2UgJ3BwdG0nOiBjYXNlICdwcHNtJzpcclxuICAgICAgY2FzZSAnc2xkeCc6IGNhc2UgJ3NsZG0nOlxyXG4gICAgICBjYXNlICdwb3QnOiBjYXNlICdwb3R4JzogY2FzZSAncG90bSc6IC8vIHRlbXBsYXRlc1xyXG4gICAgICAgIHJldHVybiAncG93ZXJwb2ludCc7XHJcbiAgICAgIGNhc2UgJ3ZzZCc6IGNhc2UgJ3ZzZHgnOlxyXG4gICAgICBjYXNlICd2c3QnOiBjYXNlICd2c3R4JzogLy8gdGVtcGxhdGVzXHJcbiAgICAgICAgcmV0dXJuICd2aXNpbyc7XHJcbiAgICAgIGNhc2UgJ21kYic6IGNhc2UgJ2FjY2RiJzogY2FzZSAnYWNjZGUnOiBjYXNlICdhY2Nkcic6XHJcbiAgICAgIGNhc2UgJ2FjY2R0JzogLy8gdGVtcGxhdGVzXHJcbiAgICAgICAgcmV0dXJuICdhY2Nlc3MnO1xyXG4gICAgICBjYXNlICdtcHAnOiBjYXNlICdtcHB4JzpcclxuICAgICAgY2FzZSAnbXB0JzogLy8gdGVtcGxhdGVzXHJcbiAgICAgICAgcmV0dXJuICdwcm9qZWN0JztcclxuICAgICAgY2FzZSAncHViJzpcclxuICAgICAgICByZXR1cm4gJ3B1Ymxpc2hlcic7XHJcbiAgICAgIGNhc2UgJ3hzbic6XHJcbiAgICAgICAgcmV0dXJuICdpbmZvcGF0aCc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2NvbW1hbmQoZXh0ZW5zaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgc3dpdGNoIChleHRlbnNpb24udG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlICdkb3QnOiBjYXNlICdkb3R4JzogY2FzZSAnZG90bSc6XHJcbiAgICAgIGNhc2UgJ3hsdCc6IGNhc2UgJ3hsdHgnOiBjYXNlICd4bHRtJzpcclxuICAgICAgY2FzZSAncG90JzogY2FzZSAncG90eCc6IGNhc2UgJ3BvdG0nOlxyXG4gICAgICBjYXNlICd2c3QnOiBjYXNlICd2c3R4JzpcclxuICAgICAgY2FzZSAnYWNjZHQnOlxyXG4gICAgICBjYXNlICdtcHQnOlxyXG4gICAgICAgIHJldHVybiAnbmZ0JzsgLy8gbmV3IGZyb20gdGVtcGxhdGVcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjb25zdCBvcGVuTW9kZSA9ICd2JzsgLy8gZm9yIHZpZXcsIG9yICdlJyBvciBlZGl0XHJcbiAgICAgICAgcmV0dXJuIGBvZiR7b3Blbk1vZGV9YDsgLy8gZGVmYXVsdDogb3BlbiBmaWxlIGFzIHZpZXcvZWRpdFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { SafeResourceUrlPipe } from './pipes/safe-resource-url.pipe';
2
+ import { SafeUrlPipe } from './pipes/safe-url.pipe';
3
+ import { UriSchemePipe } from './pipes/uri-scheme.pipe';
4
+ export * from './pipes/safe-resource-url.pipe';
5
+ export * from './pipes/safe-url.pipe';
6
+ export * from './pipes/uri-scheme.pipe';
7
+ export * from './url-utilities.module';
8
+ export const CP_URL_PIPES = [
9
+ SafeResourceUrlPipe,
10
+ SafeUrlPipe,
11
+ UriSchemePipe
12
+ ];
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXV0aWxpdGllcy5hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cmwtdXRpbGl0aWVzL3NyYy91cmwtdXRpbGl0aWVzLmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQ3hCLG1CQUFtQjtJQUNuQixXQUFXO0lBQ1gsYUFBYTtDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmxQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLXJlc291cmNlLXVybC5waXBlJztcclxuaW1wb3J0IHsgU2FmZVVybFBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUtdXJsLnBpcGUnO1xyXG5pbXBvcnQgeyBVcmlTY2hlbWVQaXBlIH0gZnJvbSAnLi9waXBlcy91cmktc2NoZW1lLnBpcGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLXJlc291cmNlLXVybC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLXVybC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy91cmktc2NoZW1lLnBpcGUnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi91cmwtdXRpbGl0aWVzLm1vZHVsZSc7XHJcblxyXG5leHBvcnQgY29uc3QgQ1BfVVJMX1BJUEVTID0gW1xyXG4gICAgU2FmZVJlc291cmNlVXJsUGlwZSxcclxuICAgIFNhZmVVcmxQaXBlLFxyXG4gICAgVXJpU2NoZW1lUGlwZVxyXG4gXSBhcyBjb25zdDsiXX0=
@@ -0,0 +1,34 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
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
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UrlUtilitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: UrlUtilitiesModule, imports: [CommonModule,
10
+ SafeResourceUrlPipe,
11
+ SafeUrlPipe,
12
+ UriSchemePipe], exports: [SafeResourceUrlPipe,
13
+ SafeUrlPipe,
14
+ UriSchemePipe] }); }
15
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UrlUtilitiesModule, imports: [CommonModule] }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: UrlUtilitiesModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ declarations: [],
21
+ imports: [
22
+ CommonModule,
23
+ SafeResourceUrlPipe,
24
+ SafeUrlPipe,
25
+ UriSchemePipe
26
+ ],
27
+ exports: [
28
+ SafeResourceUrlPipe,
29
+ SafeUrlPipe,
30
+ UriSchemePipe
31
+ ]
32
+ }]
33
+ }] });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXV0aWxpdGllcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi91cmwtdXRpbGl0aWVzL3NyYy91cmwtdXRpbGl0aWVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQWlCeEQsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFYM0IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsYUFBYSxhQUdiLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsYUFBYTsrR0FHSixrQkFBa0IsWUFYM0IsWUFBWTs7MkZBV0gsa0JBQWtCO2tCQWY5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxhQUFhO3FCQUNkO29CQUNELE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTYWZlUmVzb3VyY2VVcmxQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLXJlc291cmNlLXVybC5waXBlJztcclxuaW1wb3J0IHsgU2FmZVVybFBpcGUgfSBmcm9tICcuL3BpcGVzL3NhZmUtdXJsLnBpcGUnO1xyXG5pbXBvcnQgeyBVcmlTY2hlbWVQaXBlIH0gZnJvbSAnLi9waXBlcy91cmktc2NoZW1lLnBpcGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNhZmVSZXNvdXJjZVVybFBpcGUsXHJcbiAgICBTYWZlVXJsUGlwZSxcclxuICAgIFVyaVNjaGVtZVBpcGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNhZmVSZXNvdXJjZVVybFBpcGUsXHJcbiAgICBTYWZlVXJsUGlwZSxcclxuICAgIFVyaVNjaGVtZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcmxVdGlsaXRpZXNNb2R1bGUgeyB9XHJcbiJdfQ==