@cleavelandprice/ngx-lib 4.4.0 → 4.4.2

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 (200) 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/authentication/model/abstract-authentication-service.d.ts +4 -4
  4. package/authentication/object/services/authentication-object.service.d.ts +4 -3
  5. package/authentication/token/services/authentication-token.service.d.ts +4 -3
  6. package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs +13 -13
  7. package/fesm2022/cleavelandprice-ngx-lib-active-directory-material.mjs.map +1 -1
  8. package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs +7 -7
  9. package/fesm2022/cleavelandprice-ngx-lib-active-directory.mjs.map +1 -1
  10. package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs +17 -17
  11. package/fesm2022/cleavelandprice-ngx-lib-authentication-material.mjs.map +1 -1
  12. package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs +22 -12
  13. package/fesm2022/cleavelandprice-ngx-lib-authentication-object.mjs.map +1 -1
  14. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +22 -12
  15. package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
  16. package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs +4 -4
  17. package/fesm2022/cleavelandprice-ngx-lib-authentication.mjs.map +1 -1
  18. package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +25 -25
  19. package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
  20. package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs +4 -4
  21. package/fesm2022/cleavelandprice-ngx-lib-msgraph.mjs.map +1 -1
  22. package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +10 -10
  23. package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
  24. package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +15 -15
  25. package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
  26. package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +14 -14
  27. package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
  28. package/fesm2022/cleavelandprice-ngx-lib-table.mjs +14 -14
  29. package/fesm2022/cleavelandprice-ngx-lib-table.mjs.map +1 -1
  30. package/fesm2022/cleavelandprice-ngx-lib-upload.mjs +15 -16
  31. package/fesm2022/cleavelandprice-ngx-lib-upload.mjs.map +1 -1
  32. package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs +13 -13
  33. package/fesm2022/cleavelandprice-ngx-lib-url-utilities.mjs.map +1 -1
  34. package/fesm2022/cleavelandprice-ngx-lib.mjs +7 -7
  35. package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
  36. package/package.json +3 -33
  37. package/esm2022/active-directory/active-directory.api.mjs +0 -11
  38. package/esm2022/active-directory/active-directory.module.mjs +0 -40
  39. package/esm2022/active-directory/cleavelandprice-ngx-lib-active-directory.mjs +0 -5
  40. package/esm2022/active-directory/material/cleavelandprice-ngx-lib-active-directory-material.mjs +0 -5
  41. package/esm2022/active-directory/material/components/user-chooser/user-chooser.component.mjs +0 -437
  42. package/esm2022/active-directory/material/components/user-form-field/user-form-field.component.mjs +0 -159
  43. package/esm2022/active-directory/material/mat-active-directory.api.mjs +0 -11
  44. package/esm2022/active-directory/material/mat-active-directory.module.mjs +0 -100
  45. package/esm2022/active-directory/material/model/default-user-chooser-data.mjs +0 -15
  46. package/esm2022/active-directory/material/model/default-user-chooser-filter-options.mjs +0 -8
  47. package/esm2022/active-directory/material/model/selectable-group.mjs +0 -2
  48. package/esm2022/active-directory/material/model/selectable-user.mjs +0 -2
  49. package/esm2022/active-directory/material/model/user-chooser-data.mjs +0 -2
  50. package/esm2022/active-directory/material/model/user-chooser-filter-options.mjs +0 -3
  51. package/esm2022/active-directory/material/model/user-chooser-mode.mjs +0 -6
  52. package/esm2022/active-directory/material/model/user-chooser-pre-processing-group.mjs +0 -3
  53. package/esm2022/active-directory/model/active-directory-service-options-token.mjs +0 -3
  54. package/esm2022/active-directory/model/active-directory-service-options.mjs +0 -2
  55. package/esm2022/active-directory/model/ad-object-with-children.mjs +0 -2
  56. package/esm2022/active-directory/model/ad-object.mjs +0 -2
  57. package/esm2022/active-directory/model/cache-object.mjs +0 -3
  58. package/esm2022/active-directory/model/cleaveland-price-user.mjs +0 -2
  59. package/esm2022/active-directory/model/group.mjs +0 -2
  60. package/esm2022/active-directory/model/user-or-group.mjs +0 -2
  61. package/esm2022/active-directory/model/user.mjs +0 -2
  62. package/esm2022/active-directory/services/active-directory.service.mjs +0 -125
  63. package/esm2022/authentication/authentication.api.mjs +0 -7
  64. package/esm2022/authentication/authentication.base.module.mjs +0 -40
  65. package/esm2022/authentication/cleavelandprice-ngx-lib-authentication.mjs +0 -5
  66. package/esm2022/authentication/material/cleavelandprice-ngx-lib-authentication-material.mjs +0 -5
  67. package/esm2022/authentication/material/components/login/login.component.mjs +0 -49
  68. package/esm2022/authentication/material/components/login-form/login-form.component.mjs +0 -82
  69. package/esm2022/authentication/material/mat-authentication.api.mjs +0 -8
  70. package/esm2022/authentication/material/mat-authentication.module.mjs +0 -84
  71. package/esm2022/authentication/material/model/login-form-data.mjs +0 -2
  72. package/esm2022/authentication/material/model/mat-authentication-service-options-token.mjs +0 -3
  73. package/esm2022/authentication/material/model/mat-authentication-service-options.mjs +0 -2
  74. package/esm2022/authentication/material/services/mat-authentication.service.mjs +0 -67
  75. package/esm2022/authentication/model/abstract-authentication-service.mjs +0 -2
  76. package/esm2022/authentication/model/authenticated-user.mjs +0 -2
  77. package/esm2022/authentication/model/authentication-request.mjs +0 -2
  78. package/esm2022/authentication/model/authentication-service-options-token.mjs +0 -3
  79. package/esm2022/authentication/model/authentication-service-options.mjs +0 -2
  80. package/esm2022/authentication/object/authentication-object.api.mjs +0 -6
  81. package/esm2022/authentication/object/authentication-object.module.mjs +0 -40
  82. package/esm2022/authentication/object/cleavelandprice-ngx-lib-authentication-object.mjs +0 -5
  83. package/esm2022/authentication/object/services/authentication-object.service.mjs +0 -119
  84. package/esm2022/authentication/token/authentication-token.api.mjs +0 -6
  85. package/esm2022/authentication/token/authetiction-token.module.mjs +0 -40
  86. package/esm2022/authentication/token/cleavelandprice-ngx-lib-authentication-token.mjs +0 -5
  87. package/esm2022/authentication/token/model/authentication-token-service-options-token.mjs +0 -3
  88. package/esm2022/authentication/token/model/authentication-token-service-options.mjs +0 -2
  89. package/esm2022/authentication/token/model/authentication-token.mjs +0 -2
  90. package/esm2022/authentication/token/services/authentication-token.service.mjs +0 -128
  91. package/esm2022/cleavelandprice-ngx-lib.mjs +0 -5
  92. package/esm2022/dialog/cleavelandprice-ngx-lib-dialog.mjs +0 -5
  93. package/esm2022/dialog/components/base/base.component.mjs +0 -102
  94. package/esm2022/dialog/components/choice/choice.component.mjs +0 -21
  95. package/esm2022/dialog/components/confirmation/confirmation.component.mjs +0 -21
  96. package/esm2022/dialog/components/input/input.component.mjs +0 -21
  97. package/esm2022/dialog/components/message/message.component.mjs +0 -21
  98. package/esm2022/dialog/dialog.api.mjs +0 -20
  99. package/esm2022/dialog/dialog.module.mjs +0 -73
  100. package/esm2022/dialog/model/confirmation-dialog-mode.mjs +0 -8
  101. package/esm2022/dialog/model/dialog-base-data.mjs +0 -2
  102. package/esm2022/dialog/model/dialog-choice-data.mjs +0 -2
  103. package/esm2022/dialog/model/dialog-type.mjs +0 -8
  104. package/esm2022/lib/model/app-path-config.mjs +0 -2
  105. package/esm2022/lib/model/app-type.mjs +0 -2
  106. package/esm2022/lib/model/app.mjs +0 -2
  107. package/esm2022/lib/model/caching-config.mjs +0 -2
  108. package/esm2022/lib/model/credentials.mjs +0 -2
  109. package/esm2022/lib/model/logging-config.mjs +0 -2
  110. package/esm2022/lib/model/service-options-token.mjs +0 -3
  111. package/esm2022/lib/model/service-options.mjs +0 -2
  112. package/esm2022/lib/ngx-lib.module.mjs +0 -37
  113. package/esm2022/lib/services/app-path-config.service.mjs +0 -50
  114. package/esm2022/lib/services/service-base.mjs +0 -26
  115. package/esm2022/msgraph/cleavelandprice-ngx-lib-msgraph.mjs +0 -5
  116. package/esm2022/msgraph/model/address.mjs +0 -2
  117. package/esm2022/msgraph/model/attendee.mjs +0 -2
  118. package/esm2022/msgraph/model/bulk-calendar-events.mjs +0 -2
  119. package/esm2022/msgraph/model/bulk-calendar-request.mjs +0 -2
  120. package/esm2022/msgraph/model/calendar-event.mjs +0 -2
  121. package/esm2022/msgraph/model/coordinates.mjs +0 -2
  122. package/esm2022/msgraph/model/email-address.mjs +0 -2
  123. package/esm2022/msgraph/model/location.mjs +0 -2
  124. package/esm2022/msgraph/model/online-meeting-info.mjs +0 -2
  125. package/esm2022/msgraph/model/patterned-recurrence.mjs +0 -2
  126. package/esm2022/msgraph/model/phone.mjs +0 -2
  127. package/esm2022/msgraph/model/recipient.mjs +0 -2
  128. package/esm2022/msgraph/model/recurrence-pattern.mjs +0 -2
  129. package/esm2022/msgraph/model/recurrence-range.mjs +0 -2
  130. package/esm2022/msgraph/model/response-status.mjs +0 -2
  131. package/esm2022/msgraph/model/room.mjs +0 -6
  132. package/esm2022/msgraph/model/user.mjs +0 -132
  133. package/esm2022/msgraph/msgraph.api.mjs +0 -19
  134. package/esm2022/msgraph/msgraph.module.mjs +0 -27
  135. package/esm2022/public_api.mjs +0 -15
  136. package/esm2022/quill/cleavelandprice-ngx-lib-quill.mjs +0 -5
  137. package/esm2022/quill/components/editor/editor.component.mjs +0 -282
  138. package/esm2022/quill/components/raw/raw.component.mjs +0 -30
  139. package/esm2022/quill/mention/cleavelandprice-ngx-lib-quill-mention.mjs +0 -5
  140. package/esm2022/quill/mention/components/editor/editor.component.mjs +0 -151
  141. package/esm2022/quill/mention/model/dialog-data.mjs +0 -2
  142. package/esm2022/quill/mention/quill-mention.api.mjs +0 -9
  143. package/esm2022/quill/mention/quill-mention.module.mjs +0 -65
  144. package/esm2022/quill/model/buttons.mjs +0 -3
  145. package/esm2022/quill/model/config.mjs +0 -3
  146. package/esm2022/quill/model/default-buttons.mjs +0 -50
  147. package/esm2022/quill/model/default-config.mjs +0 -28
  148. package/esm2022/quill/model/default-icons.mjs +0 -7
  149. package/esm2022/quill/model/default-tooltips.mjs +0 -53
  150. package/esm2022/quill/model/dialog-data.mjs +0 -2
  151. package/esm2022/quill/model/icons.mjs +0 -3
  152. package/esm2022/quill/model/tooltips.mjs +0 -3
  153. package/esm2022/quill/quill.api.mjs +0 -13
  154. package/esm2022/quill/quill.module.mjs +0 -75
  155. package/esm2022/sharepoint/cleavelandprice-ngx-lib-sharepoint.mjs +0 -5
  156. package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +0 -40
  157. package/esm2022/sharepoint/default-credentials.mjs +0 -6
  158. package/esm2022/sharepoint/model/base-item.mjs +0 -2
  159. package/esm2022/sharepoint/model/base-request-credential.mjs +0 -2
  160. package/esm2022/sharepoint/model/base-request.mjs +0 -2
  161. package/esm2022/sharepoint/model/cache-object.mjs +0 -3
  162. package/esm2022/sharepoint/model/file-request.mjs +0 -2
  163. package/esm2022/sharepoint/model/folder-request.mjs +0 -2
  164. package/esm2022/sharepoint/model/list-item.mjs +0 -2
  165. package/esm2022/sharepoint/model/list-items-request.mjs +0 -2
  166. package/esm2022/sharepoint/model/photo-item.mjs +0 -2
  167. package/esm2022/sharepoint/model/sharepoint-service-options.mjs +0 -3
  168. package/esm2022/sharepoint/model/uri-request.mjs +0 -2
  169. package/esm2022/sharepoint/model/user-request.mjs +0 -2
  170. package/esm2022/sharepoint/model/user.mjs +0 -2
  171. package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +0 -37
  172. package/esm2022/sharepoint/services/sharepoint.service.mjs +0 -155
  173. package/esm2022/sharepoint/sharepoint.api.mjs +0 -17
  174. package/esm2022/sharepoint/sharepoint.module.mjs +0 -50
  175. package/esm2022/table/cleavelandprice-ngx-lib-table.mjs +0 -5
  176. package/esm2022/table/components/table/table.component.mjs +0 -120
  177. package/esm2022/table/model/table-column.mjs +0 -2
  178. package/esm2022/table/pipes/decimalPoints.mjs +0 -14
  179. package/esm2022/table/pipes/roundNumber.mjs +0 -14
  180. package/esm2022/table/table.api.mjs +0 -6
  181. package/esm2022/table/table.module.mjs +0 -78
  182. package/esm2022/upload/cleavelandprice-ngx-lib-upload.mjs +0 -5
  183. package/esm2022/upload/components/upload/upload.component.mjs +0 -32
  184. package/esm2022/upload/components/upload-dialog/upload-dialog.component.mjs +0 -98
  185. package/esm2022/upload/model/database-file-info.mjs +0 -2
  186. package/esm2022/upload/model/file-upload-request.mjs +0 -2
  187. package/esm2022/upload/model/filesystem-file-info.mjs +0 -2
  188. package/esm2022/upload/model/msg-file-content.mjs +0 -5
  189. package/esm2022/upload/model/upload-service-options-token.mjs +0 -3
  190. package/esm2022/upload/model/upload-service-options.mjs +0 -3
  191. package/esm2022/upload/model/upload-status.mjs +0 -2
  192. package/esm2022/upload/services/upload.service.mjs +0 -106
  193. package/esm2022/upload/upload.api.mjs +0 -11
  194. package/esm2022/upload/upload.module.mjs +0 -68
  195. package/esm2022/url-utilities/cleavelandprice-ngx-lib-url-utilities.mjs +0 -5
  196. package/esm2022/url-utilities/pipes/safe-resource-url.pipe.mjs +0 -19
  197. package/esm2022/url-utilities/pipes/safe-url.pipe.mjs +0 -19
  198. package/esm2022/url-utilities/pipes/uri-scheme.pipe.mjs +0 -106
  199. package/esm2022/url-utilities/url-utilities.api.mjs +0 -13
  200. package/esm2022/url-utilities/url-utilities.module.mjs +0 -34
@@ -1,19 +0,0 @@
1
- export * from './model/address';
2
- export * from './model/attendee';
3
- export * from './model/bulk-calendar-events';
4
- export * from './model/bulk-calendar-request';
5
- export * from './model/calendar-event';
6
- export * from './model/coordinates';
7
- export * from './model/email-address';
8
- export * from './model/location';
9
- export * from './model/online-meeting-info';
10
- export * from './model/patterned-recurrence';
11
- export * from './model/phone';
12
- export * from './model/recipient';
13
- export * from './model/recurrence-pattern';
14
- export * from './model/recurrence-range';
15
- export * from './model/response-status';
16
- export * from './model/room';
17
- export * from './model/user';
18
- export * from './msgraph.module';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNncmFwaC5hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9tc2dyYXBoL3NyYy9tc2dyYXBoLmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWwvYWRkcmVzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvYXR0ZW5kZWUnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2J1bGstY2FsZW5kYXItZXZlbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9idWxrLWNhbGVuZGFyLXJlcXVlc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL2NhbGVuZGFyLWV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9jb29yZGluYXRlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvZW1haWwtYWRkcmVzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvbG9jYXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL29ubGluZS1tZWV0aW5nLWluZm8nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3BhdHRlcm5lZC1yZWN1cnJlbmNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9waG9uZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvcmVjaXBpZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9yZWN1cnJlbmNlLXBhdHRlcm4nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3JlY3VycmVuY2UtcmFuZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVsL3Jlc3BvbnNlLXN0YXR1cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvcm9vbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWwvdXNlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL21zZ3JhcGgubW9kdWxlJzsiXX0=
@@ -1,27 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule, Optional, SkipSelf } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class MSGraphModule {
5
- constructor(parentModule) {
6
- if (parentModule) {
7
- throw new Error('MSGraphModule is already loaded. Import it in the AppModule only');
8
- }
9
- }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, deps: [{ token: MSGraphModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, imports: [CommonModule] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, imports: [CommonModule] }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MSGraphModule, decorators: [{
15
- type: NgModule,
16
- args: [{
17
- declarations: [],
18
- imports: [
19
- CommonModule
20
- ]
21
- }]
22
- }], ctorParameters: () => [{ type: MSGraphModule, decorators: [{
23
- type: Optional
24
- }, {
25
- type: SkipSelf
26
- }] }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNncmFwaC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9tc2dyYXBoL3NyYy9tc2dyYXBoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVE3RCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQyxZQUEyQjtRQUM3RCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQUMsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQzs4R0FOVSxhQUFhOytHQUFiLGFBQWEsWUFIdEIsWUFBWTsrR0FHSCxhQUFhLFlBSHRCLFlBQVk7OzJGQUdILGFBQWE7a0JBTnpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGOzswQkFFYyxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1TR3JhcGhNb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHBhcmVudE1vZHVsZTogTVNHcmFwaE1vZHVsZSkge1xyXG4gICAgaWYgKHBhcmVudE1vZHVsZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ01TR3JhcGhNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknKTtcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
@@ -1,15 +0,0 @@
1
- /*
2
- * Public API Surface of ngx-lib
3
- */
4
- export * from './lib/model/app';
5
- export * from './lib/model/app-path-config';
6
- export * from './lib/model/app-type';
7
- export * from './lib/model/caching-config';
8
- export * from './lib/model/credentials';
9
- export * from './lib/model/logging-config';
10
- export * from './lib/model/service-options';
11
- export * from './lib/model/service-options-token';
12
- export * from './lib/services/app-path-config.service';
13
- export * from './lib/services/service-base';
14
- export * from './lib/ngx-lib.module';
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5neC1saWJcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hcHAnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hcHAtcGF0aC1jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9hcHAtdHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2NhY2hpbmctY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvY3JlZGVudGlhbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9sb2dnaW5nLWNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3NlcnZpY2Utb3B0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3NlcnZpY2Utb3B0aW9ucy10b2tlbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHAtcGF0aC1jb25maWcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3NlcnZpY2UtYmFzZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtbGliLm1vZHVsZSc7XHJcblxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './quill.api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC9zcmMvY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9xdWlsbC5hcGknO1xuIl19
@@ -1,282 +0,0 @@
1
- import { NgTemplateOutlet } from '@angular/common';
2
- import { Component, forwardRef, inject, model, output, viewChild } from '@angular/core';
3
- import { FormsModule, NG_VALUE_ACCESSOR } from "@angular/forms";
4
- import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';
5
- import { MatIcon } from '@angular/material/icon';
6
- import { MatTooltip } from '@angular/material/tooltip';
7
- import { QuillEditorComponent } from 'ngx-quill';
8
- import { DefaultButtons } from '../../model/default-buttons';
9
- import { DefaultConfig } from '../../model/default-config';
10
- import { DefaultIcons } from '../../model/default-icons';
11
- import { DefaultTooltips } from '../../model/default-tooltips';
12
- import { RawComponent } from '../raw/raw.component';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/forms";
15
- export class EditorComponent {
16
- constructor() {
17
- this.#data = inject(MAT_DIALOG_DATA, { optional: true });
18
- this.#dialogRef = inject((MatDialogRef), { optional: true });
19
- this.#dialog = inject(MatDialog);
20
- this.editor = viewChild(QuillEditorComponent);
21
- this.onChange = (_) => { }; // Invoked when the model has been changed
22
- this.onTouched = () => { }; // Invoked when the model has been touched
23
- //#endregion
24
- this.config = model(DefaultConfig);
25
- this.placeholder = model();
26
- //#region These can be passed in as @Input(), or use values from config
27
- this.format = model();
28
- this.height = model();
29
- this.width = model();
30
- this.fullscreenHeight = model();
31
- this.fullscreenWidth = model();
32
- this.fullscreenMode = model();
33
- this.enableTooltips = model();
34
- this.fullscreen = model();
35
- this.readonly = model();
36
- this.applyReadonlyStyle = model();
37
- this.showToolbar = model();
38
- this.showBorder = model();
39
- //#region Optional Quill modules
40
- this.imageResizeModule = model();
41
- this.imageDropModule = model();
42
- this.syntaxModule = model();
43
- //#endregion
44
- //#endregion
45
- this.fullscreenChanged = output();
46
- //#region Passthrough events
47
- this.onBlur = output();
48
- this.onContentChanged = output();
49
- this.onEditorChanged = output();
50
- this.onEditorCreated = output();
51
- this.onFocus = output();
52
- this.onSelectionChanged = output();
53
- }
54
- get showBlockStyle() { return (this.config()?.buttons?.blockquote || this.config()?.buttons?.codeblock) ?? false; }
55
- ;
56
- get showFontStyle() { return (this.config()?.buttons?.bold || this.config()?.buttons?.italic || this.config()?.buttons?.strike || this.config()?.buttons?.underline) ?? false; }
57
- ;
58
- get showQuickHeadingStyle() { return (this.config()?.buttons?.h1 || this.config()?.buttons?.h2) ?? false; }
59
- ;
60
- get showIndentStyle() { return (this.config()?.buttons?.decreaseIndent || this.config()?.buttons?.increaseIndent) ?? false; }
61
- ;
62
- get showListStyle() { return (this.config()?.buttons?.bulleted || this.config()?.buttons?.ordered) ?? false; }
63
- ;
64
- get showMedia() { return (this.config()?.buttons?.link || this.config()?.buttons?.image || this.config()?.buttons?.video) ?? false; }
65
- ;
66
- get showScriptStyle() { return (this.config()?.buttons?.subScript || this.config()?.buttons?.superScript) ?? false; }
67
- ;
68
- #data;
69
- #dialogRef;
70
- #dialog;
71
- //#endregion
72
- ngOnInit() {
73
- this.initialize();
74
- /*if (!this.users) {
75
- this.activeDirectoryService.getUsers().subscribe(users =>
76
- this.users = users
77
- );
78
- }*/
79
- }
80
- initialize() {
81
- this.config.set({
82
- ...DefaultConfig,
83
- ...this.config(),
84
- ...this.#data?.config,
85
- buttons: this.config()?.buttons ?? DefaultButtons,
86
- icons: {
87
- ...DefaultIcons,
88
- ...this.config()?.icons
89
- },
90
- tooltips: {
91
- ...DefaultTooltips,
92
- ...this.config()?.tooltips
93
- }
94
- });
95
- this.value = this.value ?? this.#data?.value;
96
- // Moved to client responsibility
97
- /*if (this.imageDropModule) {
98
- Quill.register('modules/imageDrop', ImageDrop);
99
- }*/
100
- this.placeholder.set(this.placeholder() ?? this.#data?.placeholder);
101
- this.imageDropModule.set(this.imageDropModule() ?? this.#data?.imageDropModule ?? this.config().imageDropModule);
102
- this.imageResizeModule.set(this.imageResizeModule() ?? this.#data?.imageResizeModule ?? this.config().imageResizeModule);
103
- this.syntaxModule.set(this.syntaxModule() ?? this.#data?.syntaxModule ?? this.config().syntaxModule);
104
- this.format.set(this.format() ?? this.#data?.format ?? this.config().format);
105
- this.height.set(this.height() ?? this.#data?.height ?? this.config().height);
106
- this.width.set(this.width() ?? this.#data?.width ?? this.config().width);
107
- this.fullscreenHeight.set(this.fullscreenHeight() ?? this.#data?.maxHeight ?? this.config().fullscreenHeight);
108
- this.fullscreenWidth.set(this.fullscreenWidth() ?? this.#data?.maxWidth ?? this.config().fullscreenWidth);
109
- this.fullscreenMode.set(this.fullscreenMode() ?? this.#data?.fullscreenMode ?? this.config().fullscreenMode);
110
- this.enableTooltips.set(this.enableTooltips() !== undefined ?
111
- this.enableTooltips() :
112
- this.#data?.enableTooltips ?? this.config().enableTooltips);
113
- this.fullscreen.set(this.fullscreen() !== undefined ?
114
- this.fullscreen() :
115
- this.#data?.fullscreen ?? this.config().fullscreen);
116
- this.readonly.set(this.readonly() !== undefined ?
117
- this.readonly() :
118
- this.#data?.readonly ?? this.config().readonly);
119
- this.applyReadonlyStyle.set(this.applyReadonlyStyle() !== undefined ?
120
- this.applyReadonlyStyle() :
121
- this.#data?.applyReadonlyStyle ?? this.config().applyReadonlyStyle);
122
- this.showToolbar.set(this.showToolbar() !== undefined ?
123
- this.showToolbar() :
124
- this.#data?.showToolbar ?? this.config().showToolbar);
125
- this.showBorder.set(this.showBorder() !== undefined ?
126
- this.showBorder() :
127
- this.#data?.showBorder ?? this.config().showBorder);
128
- }
129
- toggleFullscreen() {
130
- if (this.fullscreenMode() === 'expand') {
131
- this.fullscreen.set(!this.fullscreen());
132
- this.fullscreenChanged.emit(this.fullscreen());
133
- }
134
- else {
135
- if (this.fullscreen()) {
136
- this.#dialogRef?.close(this.value);
137
- this.fullscreenChanged.emit(false);
138
- }
139
- else {
140
- const data = {
141
- value: this.value,
142
- config: this.config(),
143
- placeholder: this.placeholder(),
144
- format: this.format(),
145
- height: this.fullscreenHeight(),
146
- width: '100%',
147
- maxHeight: this.fullscreenHeight(),
148
- maxWidth: '100%',
149
- enableTooltips: this.enableTooltips(),
150
- fullscreen: true,
151
- fullscreenMode: this.fullscreenMode(),
152
- readonly: this.readonly(),
153
- applyReadonlyStyle: this.applyReadonlyStyle(),
154
- showToolbar: this.showToolbar(),
155
- showBorder: this.showBorder(),
156
- imageResizeModule: this.imageResizeModule(),
157
- imageDropModule: this.imageDropModule(),
158
- syntaxModule: this.syntaxModule()
159
- //users: this.users
160
- };
161
- this.#dialog.open(EditorComponent, {
162
- disableClose: true,
163
- width: this.fullscreenWidth(),
164
- height: this.fullscreenHeight(),
165
- data
166
- })
167
- .afterClosed()
168
- .subscribe(value => {
169
- this.value = value;
170
- this.updateChanges();
171
- });
172
- this.fullscreenChanged.emit(true);
173
- }
174
- }
175
- }
176
- rawEdit() {
177
- this.#dialog.open(RawComponent, {
178
- data: this.value,
179
- disableClose: true,
180
- height: '90%',
181
- width: '100%'
182
- })
183
- .afterClosed()
184
- .subscribe(value => {
185
- if (value === '__DO!!NOT!!UPDATE__') {
186
- return;
187
- }
188
- this.value = value;
189
- });
190
- }
191
- tooltip(val) {
192
- return this.enableTooltips() ? val : '';
193
- }
194
- get modules() {
195
- //if (!this.users) { return undefined; }
196
- const modules = {};
197
- if (!this.showToolbar()) {
198
- modules['toolbar'] = [];
199
- }
200
- if (this.imageResizeModule()) {
201
- modules['imageResize'] = {};
202
- }
203
- if (this.imageDropModule()) {
204
- modules['imageDrop'] = true;
205
- }
206
- if (this.syntaxModule()) {
207
- modules['syntax'] = true;
208
- }
209
- /*if (this.mentionModule) {
210
- modules['mention'] = {
211
- allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
212
-
213
- onSelect: (item: DOMStringMap, insertItem: any) => {
214
- const editor = this.editor!.quillEditor
215
- insertItem(item)
216
- // necessary because quill-mention triggers changes as 'api' instead of 'user'
217
- editor.insertText(editor.getLength() - 1, '', 'user')
218
- },
219
-
220
- source: (searchTerm: string, renderList: any) => {
221
- if (searchTerm.length === 0) {
222
- renderList(this.users?.map(u => ({ value: `${u.displayName} (${u.sAMAccountName.toLowerCase()})` })), searchTerm)
223
- } else {
224
- const matches: any[] = []
225
-
226
- this.users!.forEach((entry) => {
227
- if (
228
- entry.displayName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1 ||
229
- entry.sAMAccountName.toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1
230
- ) {
231
- matches.push({ value: `${entry.displayName} (${entry.sAMAccountName.toLowerCase()})` })
232
- }
233
- })
234
-
235
- renderList(matches, searchTerm)
236
- }
237
- }
238
- };
239
- }*/
240
- return modules;
241
- }
242
- //#region ControlValueAccessor methods
243
- // Method that is invoked on an update of a model.
244
- updateChanges() {
245
- this.onChange(this.value);
246
- }
247
- //#region ControlValueAccessor Overrides
248
- // Writes a new item to the element.
249
- writeValue(value) {
250
- this.value = value;
251
- this.updateChanges();
252
- }
253
- // Registers a callback function that should be called when the control's value changes in the UI.
254
- registerOnChange(fn) {
255
- this.onChange = fn;
256
- }
257
- // Registers a callback function that should be called when the control receives a blur event.
258
- registerOnTouched(fn) {
259
- this.onTouched = fn;
260
- }
261
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: EditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
262
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: EditorComponent, isStandalone: true, selector: "cpquill-editor", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, fullscreenHeight: { classPropertyName: "fullscreenHeight", publicName: "fullscreenHeight", isSignal: true, isRequired: false, transformFunction: null }, fullscreenWidth: { classPropertyName: "fullscreenWidth", publicName: "fullscreenWidth", isSignal: true, isRequired: false, transformFunction: null }, fullscreenMode: { classPropertyName: "fullscreenMode", publicName: "fullscreenMode", isSignal: true, isRequired: false, transformFunction: null }, enableTooltips: { classPropertyName: "enableTooltips", publicName: "enableTooltips", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, applyReadonlyStyle: { classPropertyName: "applyReadonlyStyle", publicName: "applyReadonlyStyle", isSignal: true, isRequired: false, transformFunction: null }, showToolbar: { classPropertyName: "showToolbar", publicName: "showToolbar", isSignal: true, isRequired: false, transformFunction: null }, showBorder: { classPropertyName: "showBorder", publicName: "showBorder", isSignal: true, isRequired: false, transformFunction: null }, imageResizeModule: { classPropertyName: "imageResizeModule", publicName: "imageResizeModule", isSignal: true, isRequired: false, transformFunction: null }, imageDropModule: { classPropertyName: "imageDropModule", publicName: "imageDropModule", isSignal: true, isRequired: false, transformFunction: null }, syntaxModule: { classPropertyName: "syntaxModule", publicName: "syntaxModule", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { config: "configChange", placeholder: "placeholderChange", format: "formatChange", height: "heightChange", width: "widthChange", fullscreenHeight: "fullscreenHeightChange", fullscreenWidth: "fullscreenWidthChange", fullscreenMode: "fullscreenModeChange", enableTooltips: "enableTooltipsChange", fullscreen: "fullscreenChange", readonly: "readonlyChange", applyReadonlyStyle: "applyReadonlyStyleChange", showToolbar: "showToolbarChange", showBorder: "showBorderChange", imageResizeModule: "imageResizeModuleChange", imageDropModule: "imageDropModuleChange", syntaxModule: "syntaxModuleChange", fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, providers: [{
263
- provide: NG_VALUE_ACCESSOR,
264
- useExisting: forwardRef(() => EditorComponent),
265
- multi: true
266
- }], viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container>\r\n <form>\r\n <quill-editor name=\"editor\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n [placeholder]=\"placeholder() ?? ''\"\r\n [format]=\"format()\"\r\n [style.height]=\"fullscreen() ? fullscreenHeight() : height()\"\r\n [style.width]=\"fullscreen() ? fullscreenWidth() : width()\"\r\n [readOnly]=\"readonly() ?? false\"\r\n [class.readonly]=\"readonly() && applyReadonlyStyle()\"\r\n [class.no-toolbar]=\"!showToolbar()\"\r\n [class.no-border]=\"!showBorder()\"\r\n [modules]=\"modules\"\r\n\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onContentChanged)=\"onContentChanged.emit($event)\"\r\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\r\n (onEditorCreated)=\"onEditorCreated.emit()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n\r\n @if (showToolbar()) {\r\n <div quill-editor-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"toolbar\"/>\r\n <ng-container [ngTemplateOutlet]=\"editorSize\"/>\r\n </div>\r\n }\r\n </quill-editor>\r\n </form>\r\n</ng-container>\r\n\r\n<ng-template #toolbar>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"fontStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"blockStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"headingStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"listStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"indentStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"rtl\"/>\r\n <ng-container [ngTemplateOutlet]=\"fontSize\"/>\r\n <ng-container [ngTemplateOutlet]=\"heading\"/>\r\n <ng-container [ngTemplateOutlet]=\"color\"/>\r\n <ng-container [ngTemplateOutlet]=\"font\"/>\r\n <ng-container [ngTemplateOutlet]=\"align\"/>\r\n <ng-container [ngTemplateOutlet]=\"clean\"/>\r\n <ng-container [ngTemplateOutlet]=\"formula\"/>\r\n <ng-container [ngTemplateOutlet]=\"media\"/>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fontStyle>\r\n @if (showFontStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.bold) {\r\n <button class=\"ql-bold\" [matTooltip]=\"tooltip(config()!.tooltips!.bold!)\"></button>\r\n }\r\n @if (config()!.buttons!.italic) {\r\n <button class=\"ql-italic\" [matTooltip]=\"tooltip(config()!.tooltips!.italic!)\"></button>\r\n }\r\n @if (config()!.buttons!.underline) {\r\n <button class=\"ql-underline\" [matTooltip]=\"tooltip(config()!.tooltips!.underline!)\"></button>\r\n }\r\n @if (config()!.buttons!.strike) {\r\n <button class=\"ql-strike\" [matTooltip]=\"tooltip(config()!.tooltips!.strike!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #blockStyle>\r\n @if (showBlockStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.blockquote) {\r\n <button class=\"ql-blockquote\" [matTooltip]=\"tooltip(config()!.tooltips!.blockquote!)\"></button>\r\n }\r\n @if (config()!.buttons!.codeblock) {\r\n <button class=\"ql-code-block\" [matTooltip]=\"tooltip(config()!.tooltips!.codeblock!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #headingStyle>\r\n @if (showQuickHeadingStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.h1) {\r\n <button class=\"ql-header\" value=\"1\" [matTooltip]=\"tooltip(config()!.tooltips!.h1!)\"></button>\r\n }\r\n @if (config()!.buttons!.h2) {\r\n <button class=\"ql-header\" value=\"2\" [matTooltip]=\"tooltip(config()!.tooltips!.h2!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #listStyle>\r\n @if (showListStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.ordered) {\r\n <button class=\"ql-list\" value=\"ordered\" [matTooltip]=\"tooltip(config()!.tooltips!.ordered!)\"></button>\r\n }\r\n @if (config()!.buttons!.bulleted) {\r\n <button class=\"ql-list\" value=\"bullet\" [matTooltip]=\"tooltip(config()!.tooltips!.bulleted!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #scriptStyle>\r\n @if (showScriptStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.subScript) {\r\n <button class=\"ql-script\" value=\"sub\" [matTooltip]=\"tooltip(config()!.tooltips!.subScript!)\"></button>\r\n }\r\n @if (config()!.buttons!.superScript) {\r\n <button class=\"ql-script\" value=\"super\" [matTooltip]=\"tooltip(config()!.tooltips!.superScript!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #indentStyle>\r\n @if (showIndentStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.decreaseIndent) {\r\n <button class=\"ql-indent\" value=\"-1\" [matTooltip]=\"tooltip(config()!.tooltips!.decreaseIndent!)\"></button>\r\n }\r\n @if (config()!.buttons!.increaseIndent) {\r\n <button class=\"ql-indent\" value=\"+1\" [matTooltip]=\"tooltip(config()!.tooltips!.increaseIndent!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rtl>\r\n @if (config()!.buttons!.rtl) {\r\n <span class=\"ql-formats\">\r\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config()!.tooltips!.rtl!)\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #fontSize>\r\n @if (config()!.buttons!.fontSize) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.fontSize!)\">\r\n <select class=\"ql-size\">\r\n <option value=\"small\"></option>\r\n <option selected></option>\r\n <option value=\"large\"></option>\r\n <option value=\"huge\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #heading>\r\n @if (config()!.buttons!.headingStyle) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.headingStyle!)\">\r\n <select class=\"ql-header\">\r\n <option value=\"1\"></option>\r\n <option value=\"2\"></option>\r\n <option value=\"3\"></option>\r\n <option value=\"4\"></option>\r\n <option value=\"5\"></option>\r\n <option value=\"6\"></option>\r\n <option selected=\"selected\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #color>\r\n @if (config()!.buttons!.color) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.color!)\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #font>\r\n @if (config()!.buttons!.font) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.font!)\">\r\n <select class=\"ql-font\">\r\n <option selected></option>\r\n <option value=\"serif\"></option>\r\n <option value=\"monospace\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #align>\r\n @if (config()!.buttons!.align) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.align!)\">\r\n <select class=\"ql-align\">\r\n <option selected></option>\r\n <option value=\"center\"></option>\r\n <option value=\"right\"></option>\r\n <option value=\"justify\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #clean>\r\n @if (config()!.buttons!.clean) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.clean!)\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #media>\r\n @if (showMedia) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.link) {\r\n <button class=\"ql-link\" [matTooltip]=\"tooltip(config()!.tooltips!.link!)\"></button>\r\n }\r\n @if (config()!.buttons!.image) {\r\n <button class=\"ql-image\" [matTooltip]=\"tooltip(config()!.tooltips!.image!)\"></button>\r\n }\r\n @if (config()!.buttons!.video) {\r\n <button class=\"ql-video\" [matTooltip]=\"tooltip(config()!.tooltips!.video!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #editorSize>\r\n <div>\r\n @if (config()!.buttons!.rawEditor) {\r\n <span class=\"ql-formats\">\r\n <button id=\"rawdog\"\r\n [matTooltip]=\"tooltip(config()!.tooltips!.rawEditor!)\">\r\n <mat-icon (click)=\"rawEdit()\">\r\n code\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n\r\n @if (config()!.buttons!.editorSize) {\r\n <span class=\"ql-formats\">\r\n <button id=\"fullscreen\"\r\n [matTooltip]=\"tooltip(fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.minimize! : config()!.tooltips!.popin!) :\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.maximize! : config()!.tooltips!.popout!))\">\r\n <mat-icon (click)=\"toggleFullscreen()\">\r\n {{ fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.icons!.minimize : config()!.icons!.popin) :\r\n (fullscreenMode() === 'expand' ? config()!.icons!.maximize : config()!.icons!.popout)\r\n }}\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #formula>\r\n @if (config()!.buttons!.formula) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.formula!)\">\r\n <button class=\"ql-formula\"></button>\r\n </span>\r\n }\r\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: QuillEditorComponent, selector: "quill-editor" }] }); }
267
- }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: EditorComponent, decorators: [{
269
- type: Component,
270
- args: [{ selector: 'cpquill-editor', standalone: true, imports: [
271
- FormsModule,
272
- MatIcon,
273
- MatTooltip,
274
- NgTemplateOutlet,
275
- QuillEditorComponent,
276
- ], providers: [{
277
- provide: NG_VALUE_ACCESSOR,
278
- useExisting: forwardRef(() => EditorComponent),
279
- multi: true
280
- }], template: "<ng-container>\r\n <form>\r\n <quill-editor name=\"editor\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"updateChanges()\"\r\n [placeholder]=\"placeholder() ?? ''\"\r\n [format]=\"format()\"\r\n [style.height]=\"fullscreen() ? fullscreenHeight() : height()\"\r\n [style.width]=\"fullscreen() ? fullscreenWidth() : width()\"\r\n [readOnly]=\"readonly() ?? false\"\r\n [class.readonly]=\"readonly() && applyReadonlyStyle()\"\r\n [class.no-toolbar]=\"!showToolbar()\"\r\n [class.no-border]=\"!showBorder()\"\r\n [modules]=\"modules\"\r\n\r\n (onBlur)=\"onBlur.emit($event)\"\r\n (onContentChanged)=\"onContentChanged.emit($event)\"\r\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\r\n (onEditorCreated)=\"onEditorCreated.emit()\"\r\n (onFocus)=\"onFocus.emit($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\r\n\r\n @if (showToolbar()) {\r\n <div quill-editor-toolbar>\r\n <ng-container [ngTemplateOutlet]=\"toolbar\"/>\r\n <ng-container [ngTemplateOutlet]=\"editorSize\"/>\r\n </div>\r\n }\r\n </quill-editor>\r\n </form>\r\n</ng-container>\r\n\r\n<ng-template #toolbar>\r\n <div>\r\n <ng-container [ngTemplateOutlet]=\"fontStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"blockStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"headingStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"listStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"indentStyle\"/>\r\n <ng-container [ngTemplateOutlet]=\"rtl\"/>\r\n <ng-container [ngTemplateOutlet]=\"fontSize\"/>\r\n <ng-container [ngTemplateOutlet]=\"heading\"/>\r\n <ng-container [ngTemplateOutlet]=\"color\"/>\r\n <ng-container [ngTemplateOutlet]=\"font\"/>\r\n <ng-container [ngTemplateOutlet]=\"align\"/>\r\n <ng-container [ngTemplateOutlet]=\"clean\"/>\r\n <ng-container [ngTemplateOutlet]=\"formula\"/>\r\n <ng-container [ngTemplateOutlet]=\"media\"/>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fontStyle>\r\n @if (showFontStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.bold) {\r\n <button class=\"ql-bold\" [matTooltip]=\"tooltip(config()!.tooltips!.bold!)\"></button>\r\n }\r\n @if (config()!.buttons!.italic) {\r\n <button class=\"ql-italic\" [matTooltip]=\"tooltip(config()!.tooltips!.italic!)\"></button>\r\n }\r\n @if (config()!.buttons!.underline) {\r\n <button class=\"ql-underline\" [matTooltip]=\"tooltip(config()!.tooltips!.underline!)\"></button>\r\n }\r\n @if (config()!.buttons!.strike) {\r\n <button class=\"ql-strike\" [matTooltip]=\"tooltip(config()!.tooltips!.strike!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #blockStyle>\r\n @if (showBlockStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.blockquote) {\r\n <button class=\"ql-blockquote\" [matTooltip]=\"tooltip(config()!.tooltips!.blockquote!)\"></button>\r\n }\r\n @if (config()!.buttons!.codeblock) {\r\n <button class=\"ql-code-block\" [matTooltip]=\"tooltip(config()!.tooltips!.codeblock!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #headingStyle>\r\n @if (showQuickHeadingStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.h1) {\r\n <button class=\"ql-header\" value=\"1\" [matTooltip]=\"tooltip(config()!.tooltips!.h1!)\"></button>\r\n }\r\n @if (config()!.buttons!.h2) {\r\n <button class=\"ql-header\" value=\"2\" [matTooltip]=\"tooltip(config()!.tooltips!.h2!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #listStyle>\r\n @if (showListStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.ordered) {\r\n <button class=\"ql-list\" value=\"ordered\" [matTooltip]=\"tooltip(config()!.tooltips!.ordered!)\"></button>\r\n }\r\n @if (config()!.buttons!.bulleted) {\r\n <button class=\"ql-list\" value=\"bullet\" [matTooltip]=\"tooltip(config()!.tooltips!.bulleted!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #scriptStyle>\r\n @if (showScriptStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.subScript) {\r\n <button class=\"ql-script\" value=\"sub\" [matTooltip]=\"tooltip(config()!.tooltips!.subScript!)\"></button>\r\n }\r\n @if (config()!.buttons!.superScript) {\r\n <button class=\"ql-script\" value=\"super\" [matTooltip]=\"tooltip(config()!.tooltips!.superScript!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #indentStyle>\r\n @if (showIndentStyle) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.decreaseIndent) {\r\n <button class=\"ql-indent\" value=\"-1\" [matTooltip]=\"tooltip(config()!.tooltips!.decreaseIndent!)\"></button>\r\n }\r\n @if (config()!.buttons!.increaseIndent) {\r\n <button class=\"ql-indent\" value=\"+1\" [matTooltip]=\"tooltip(config()!.tooltips!.increaseIndent!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #rtl>\r\n @if (config()!.buttons!.rtl) {\r\n <span class=\"ql-formats\">\r\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config()!.tooltips!.rtl!)\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #fontSize>\r\n @if (config()!.buttons!.fontSize) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.fontSize!)\">\r\n <select class=\"ql-size\">\r\n <option value=\"small\"></option>\r\n <option selected></option>\r\n <option value=\"large\"></option>\r\n <option value=\"huge\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #heading>\r\n @if (config()!.buttons!.headingStyle) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.headingStyle!)\">\r\n <select class=\"ql-header\">\r\n <option value=\"1\"></option>\r\n <option value=\"2\"></option>\r\n <option value=\"3\"></option>\r\n <option value=\"4\"></option>\r\n <option value=\"5\"></option>\r\n <option value=\"6\"></option>\r\n <option selected=\"selected\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #color>\r\n @if (config()!.buttons!.color) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.color!)\">\r\n <select class=\"ql-color\"></select>\r\n <select class=\"ql-background\"></select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #font>\r\n @if (config()!.buttons!.font) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.font!)\">\r\n <select class=\"ql-font\">\r\n <option selected></option>\r\n <option value=\"serif\"></option>\r\n <option value=\"monospace\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #align>\r\n @if (config()!.buttons!.align) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.align!)\">\r\n <select class=\"ql-align\">\r\n <option selected></option>\r\n <option value=\"center\"></option>\r\n <option value=\"right\"></option>\r\n <option value=\"justify\"></option>\r\n </select>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #clean>\r\n @if (config()!.buttons!.clean) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.clean!)\">\r\n <button class=\"ql-clean\"></button>\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #media>\r\n @if (showMedia) {\r\n <span class=\"ql-formats\">\r\n @if (config()!.buttons!.link) {\r\n <button class=\"ql-link\" [matTooltip]=\"tooltip(config()!.tooltips!.link!)\"></button>\r\n }\r\n @if (config()!.buttons!.image) {\r\n <button class=\"ql-image\" [matTooltip]=\"tooltip(config()!.tooltips!.image!)\"></button>\r\n }\r\n @if (config()!.buttons!.video) {\r\n <button class=\"ql-video\" [matTooltip]=\"tooltip(config()!.tooltips!.video!)\"></button>\r\n }\r\n </span>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #editorSize>\r\n <div>\r\n @if (config()!.buttons!.rawEditor) {\r\n <span class=\"ql-formats\">\r\n <button id=\"rawdog\"\r\n [matTooltip]=\"tooltip(config()!.tooltips!.rawEditor!)\">\r\n <mat-icon (click)=\"rawEdit()\">\r\n code\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n\r\n @if (config()!.buttons!.editorSize) {\r\n <span class=\"ql-formats\">\r\n <button id=\"fullscreen\"\r\n [matTooltip]=\"tooltip(fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.minimize! : config()!.tooltips!.popin!) :\r\n (fullscreenMode() === 'expand' ? config()!.tooltips!.maximize! : config()!.tooltips!.popout!))\">\r\n <mat-icon (click)=\"toggleFullscreen()\">\r\n {{ fullscreen() ?\r\n (fullscreenMode() === 'expand' ? config()!.icons!.minimize : config()!.icons!.popin) :\r\n (fullscreenMode() === 'expand' ? config()!.icons!.maximize : config()!.icons!.popout)\r\n }}\r\n </mat-icon>\r\n </button>\r\n </span>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #formula>\r\n @if (config()!.buttons!.formula) {\r\n <span class=\"ql-formats\" [matTooltip]=\"tooltip(config()!.tooltips!.formula!)\">\r\n <button class=\"ql-formula\"></button>\r\n </span>\r\n }\r\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0;visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
281
- }] });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUF3QixXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBMEUsb0JBQW9CLEVBQW1CLE1BQU0sV0FBVyxDQUFDO0FBRTFJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENB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QU0sRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxJQUFJLElBQUksQ0FB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RSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxrR0FBa0c7SUFDbEcsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsOEZBQThGO0lBQzlGLGlCQUFpQixDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0F0UlUsZUFBZTtrR0FBZixlQUFlLDJzR0FOZixDQUFDO2dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsa0VBZW1CLG9CQUFvQixnRUM5QzNDLDBzVEE0UWMsc1pEdlBWLFdBQVcscStCQUNYLE9BQU8sMklBQ1AsVUFBVSxpUkFDVixnQkFBZ0Isb0pBQ2hCLG9CQUFvQjs7MkZBUVgsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBR2QsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3FCQUNyQixhQUNVLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBCbHVyLCBDb250ZW50Q2hhbmdlLCBFZGl0b3JDaGFuZ2VDb250ZW50LCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBRdWlsbEVkaXRvckNvbXBvbmVudCwgU2VsZWN0aW9uQ2hhbmdlIH0gZnJvbSAnbmd4LXF1aWxsJztcclxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlnJztcclxuaW1wb3J0IHsgRGVmYXVsdEJ1dHRvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9kZWZhdWx0LWJ1dHRvbnMnO1xyXG5pbXBvcnQgeyBEZWZhdWx0Q29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGVmYXVsdC1jb25maWcnO1xyXG5pbXBvcnQgeyBEZWZhdWx0SWNvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9kZWZhdWx0LWljb25zJztcclxuaW1wb3J0IHsgRGVmYXVsdFRvb2x0aXBzIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGVmYXVsdC10b29sdGlwcyc7XHJcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XHJcbmltcG9ydCB7IFJhd0NvbXBvbmVudCB9IGZyb20gJy4uL3Jhdy9yYXcuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTWF0VG9vbHRpcCxcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBRdWlsbEVkaXRvckNvbXBvbmVudCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWRpdG9yQ29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIGdldCBzaG93QmxvY2tTdHlsZSgpOiBib29sZWFuIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5ibG9ja3F1b3RlIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LmNvZGVibG9jaykgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dGb250U3R5bGUoKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5jb25maWcoKT8uYnV0dG9ucz8uYm9sZCB8fCB0aGlzLmNvbmZpZygpPy5idXR0b25zPy5pdGFsaWMgfHwgdGhpcy5jb25maWcoKT8uYnV0dG9ucz8uc3RyaWtlIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LnVuZGVybGluZSkgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dRdWlja0hlYWRpbmdTdHlsZSgpOiBib29sZWFuIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5oMSB8fCB0aGlzLmNvbmZpZygpPy5idXR0b25zPy5oMikgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dJbmRlbnRTdHlsZSgpOiBib29sZWFuIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5kZWNyZWFzZUluZGVudCB8fCB0aGlzLmNvbmZpZygpPy5idXR0b25zPy5pbmNyZWFzZUluZGVudCkgPz8gZmFsc2U7IH07XHJcbiAgZ2V0IHNob3dMaXN0U3R5bGUoKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5jb25maWcoKT8uYnV0dG9ucz8uYnVsbGV0ZWQgfHwgdGhpcy5jb25maWcoKT8uYnV0dG9ucz8ub3JkZXJlZCkgPz8gZmFsc2UgfTtcclxuICBnZXQgc2hvd01lZGlhKCk6IGJvb2xlYW4gIHsgcmV0dXJuICh0aGlzLmNvbmZpZygpPy5idXR0b25zPy5saW5rIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LmltYWdlIHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LnZpZGVvKSA/PyBmYWxzZSB9O1xyXG4gIGdldCBzaG93U2NyaXB0U3R5bGUoKTogYm9vbGVhbiB7IHJldHVybiAodGhpcy5jb25maWcoKT8uYnV0dG9ucz8uc3ViU2NyaXB0IHx8IHRoaXMuY29uZmlnKCk/LmJ1dHRvbnM/LnN1cGVyU2NyaXB0KSA/PyBmYWxzZSB9O1xyXG5cclxuICAjZGF0YSA9IGluamVjdDxEaWFsb2dEYXRhPihNQVRfRElBTE9HX0RBVEEsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgI2RpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcclxuICAjZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcbiAgXHJcbiAgICBlZGl0b3IgPSB2aWV3Q2hpbGQoUXVpbGxFZGl0b3JDb21wb25lbnQpO1xyXG5cclxuICAvLyNyZWdpb24gQ29udHJvbFZhbHVlQWNjZXNzb3Igc3R1ZmZcclxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy81MDYxODA1MC9ob3ctdG8tY3JlYXRlLWN1c3RvbS1pbnB1dC1jb21wb25lbnQtd2l0aC1uZ21vZGVsLXdvcmtpbmctaW4tYW5ndWxhci02XHJcbiAgdmFsdWU6IGFueTsgLy8gc3RyaW5nXHJcbiAgb25DaGFuZ2U6IChfOiBhbnkpID0+IHZvaWQgPSAoXzogYW55KSA9PiB7fTsgLy8gSW52b2tlZCB3aGVuIHRoZSBtb2RlbCBoYXMgYmVlbiBjaGFuZ2VkXHJcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307IC8vIEludm9rZWQgd2hlbiB0aGUgbW9kZWwgaGFzIGJlZW4gdG91Y2hlZFxyXG4gIC8vI2VuZHJlZ2lvblxyXG4gIFxyXG4gIGNvbmZpZyA9IG1vZGVsPENvbmZpZz4oRGVmYXVsdENvbmZpZyk7XHJcbiAgcGxhY2Vob2xkZXIgPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgXHJcbiAgLy8jcmVnaW9uIFRoZXNlIGNhbiBiZSBwYXNzZWQgaW4gYXMgQElucHV0KCksIG9yIHVzZSB2YWx1ZXMgZnJvbSBjb25maWdcclxuICBmb3JtYXQgPSBtb2RlbDwnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJz4oKTtcclxuICBoZWlnaHQgPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgd2lkdGggPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgZnVsbHNjcmVlbkhlaWdodCA9IG1vZGVsPHN0cmluZz4oKTtcclxuICBmdWxsc2NyZWVuV2lkdGggPSBtb2RlbDxzdHJpbmc+KCk7XHJcbiAgZnVsbHNjcmVlbk1vZGUgPSBtb2RlbDwnZXhwYW5kJyB8ICdwb3BvdXQnPigpO1xyXG5cclxuICBlbmFibGVUb29sdGlwcyA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgZnVsbHNjcmVlbiA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgcmVhZG9ubHkgPSBtb2RlbDxib29sZWFuPigpO1xyXG4gIGFwcGx5UmVhZG9ubHlTdHlsZSA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgc2hvd1Rvb2xiYXIgPSBtb2RlbDxib29sZWFuPigpO1xyXG4gIHNob3dCb3JkZXIgPSBtb2RlbDxib29sZWFuPigpO1xyXG5cclxuICAvLyNyZWdpb24gT3B0aW9uYWwgUXVpbGwgbW9kdWxlc1xyXG4gIGltYWdlUmVzaXplTW9kdWxlID0gbW9kZWw8Ym9vbGVhbj4oKTtcclxuICBpbWFnZURyb3BNb2R1bGUgPSBtb2RlbDxib29sZWFuPigpO1xyXG4gIHN5bnRheE1vZHVsZSA9IG1vZGVsPGJvb2xlYW4+KCk7XHJcbiAgLy8jZW5kcmVnaW9uXHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGZ1bGxzY3JlZW5DaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gIC8vI3JlZ2lvbiBQYXNzdGhyb3VnaCBldmVudHNcclxuICBvbkJsdXIgPSBvdXRwdXQ8Qmx1cj4oKTtcclxuICBvbkNvbnRlbnRDaGFuZ2VkID0gb3V0cHV0PENvbnRlbnRDaGFuZ2U+KCk7XHJcbiAgb25FZGl0b3JDaGFuZ2VkID0gb3V0cHV0PEVkaXRvckNoYW5nZUNvbnRlbnQgfCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24+KCk7XHJcbiAgb25FZGl0b3JDcmVhdGVkID0gb3V0cHV0KCk7XHJcbiAgb25Gb2N1cyA9IG91dHB1dDxGb2N1cz4oKTtcclxuICBvblNlbGVjdGlvbkNoYW5nZWQgPSBvdXRwdXQ8U2VsZWN0aW9uQ2hhbmdlPigpO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgXHJcbiAgICAvKmlmICghdGhpcy51c2Vycykge1xyXG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoKS5zdWJzY3JpYmUodXNlcnMgPT5cclxuICAgICAgICB0aGlzLnVzZXJzID0gdXNlcnNcclxuICAgICAgKTtcclxuICAgIH0qL1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnLnNldCh7XHJcbiAgICAgIC4uLkRlZmF1bHRDb25maWcsXHJcbiAgICAgIC4uLnRoaXMuY29uZmlnKCksXHJcbiAgICAgIC4uLnRoaXMuI2RhdGE/LmNvbmZpZyxcclxuICAgICAgYnV0dG9uczogdGhpcy5jb25maWcoKT8uYnV0dG9ucyA/PyBEZWZhdWx0QnV0dG9ucyxcclxuICAgICAgaWNvbnM6IHtcclxuICAgICAgICAuLi5EZWZhdWx0SWNvbnMsXHJcbiAgICAgICAgLi4udGhpcy5jb25maWcoKT8uaWNvbnNcclxuICAgICAgfSxcclxuICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAuLi5EZWZhdWx0VG9vbHRpcHMsXHJcbiAgICAgICAgLi4udGhpcy5jb25maWcoKT8udG9vbHRpcHNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgPz8gdGhpcy4jZGF0YT8udmFsdWU7XHJcblxyXG4gICAgLy8gTW92ZWQgdG8gY2xpZW50IHJlc3BvbnNpYmlsaXR5XHJcbiAgICAvKmlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSkge1xyXG4gICAgICBRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZURyb3AnLCBJbWFnZURyb3ApO1xyXG4gICAgfSovXHJcblxyXG4gICAgdGhpcy5wbGFjZWhvbGRlci5zZXQodGhpcy5wbGFjZWhvbGRlcigpID8/IHRoaXMuI2RhdGE/LnBsYWNlaG9sZGVyKTtcclxuXHJcbiAgICB0aGlzLmltYWdlRHJvcE1vZHVsZS5zZXQodGhpcy5pbWFnZURyb3BNb2R1bGUoKSA/PyB0aGlzLiNkYXRhPy5pbWFnZURyb3BNb2R1bGUgPz8gdGhpcy5jb25maWcoKSEuaW1hZ2VEcm9wTW9kdWxlKTtcclxuICAgIHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUuc2V0KHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUoKSA/PyB0aGlzLiNkYXRhPy5pbWFnZVJlc2l6ZU1vZHVsZSA/PyB0aGlzLmNvbmZpZygpIS5pbWFnZVJlc2l6ZU1vZHVsZSk7XHJcbiAgICB0aGlzLnN5bnRheE1vZHVsZS5zZXQodGhpcy5zeW50YXhNb2R1bGUoKSA/PyB0aGlzLiNkYXRhPy5zeW50YXhNb2R1bGUgPz8gdGhpcy5jb25maWcoKSEuc3ludGF4TW9kdWxlKTtcclxuXHJcbiAgICB0aGlzLmZvcm1hdC5zZXQodGhpcy5mb3JtYXQoKSA/PyB0aGlzLiNkYXRhPy5mb3JtYXQgPz8gdGhpcy5jb25maWcoKSEuZm9ybWF0KTtcclxuICAgIHRoaXMuaGVpZ2h0LnNldCh0aGlzLmhlaWdodCgpID8/IHRoaXMuI2RhdGE/LmhlaWdodCA/PyB0aGlzLmNvbmZpZygpIS5oZWlnaHQpO1xyXG4gICAgdGhpcy53aWR0aC5zZXQodGhpcy53aWR0aCgpID8/IHRoaXMuI2RhdGE/LndpZHRoID8/IHRoaXMuY29uZmlnKCkhLndpZHRoKTtcclxuICAgIHRoaXMuZnVsbHNjcmVlbkhlaWdodC5zZXQodGhpcy5mdWxsc2NyZWVuSGVpZ2h0KCkgPz8gdGhpcy4jZGF0YT8ubWF4SGVpZ2h0ID8/IHRoaXMuY29uZmlnKCkhLmZ1bGxzY3JlZW5IZWlnaHQpO1xyXG4gICAgdGhpcy5mdWxsc2NyZWVuV2lkdGguc2V0KHRoaXMuZnVsbHNjcmVlbldpZHRoKCkgPz8gdGhpcy4jZGF0YT8ubWF4V2lkdGggPz8gdGhpcy5jb25maWcoKSEuZnVsbHNjcmVlbldpZHRoKTtcclxuICAgIHRoaXMuZnVsbHNjcmVlbk1vZGUuc2V0KHRoaXMuZnVsbHNjcmVlbk1vZGUoKSA/PyB0aGlzLiNkYXRhPy5mdWxsc2NyZWVuTW9kZSA/PyB0aGlzLmNvbmZpZygpIS5mdWxsc2NyZWVuTW9kZSk7XHJcblxyXG4gICAgdGhpcy5lbmFibGVUb29sdGlwcy5zZXQodGhpcy5lbmFibGVUb29sdGlwcygpICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLmVuYWJsZVRvb2x0aXBzKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5lbmFibGVUb29sdGlwcyA/PyB0aGlzLmNvbmZpZygpIS5lbmFibGVUb29sdGlwcyk7XHJcblxyXG4gICAgdGhpcy5mdWxsc2NyZWVuLnNldCh0aGlzLmZ1bGxzY3JlZW4oKSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5mdWxsc2NyZWVuKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5mdWxsc2NyZWVuID8/IHRoaXMuY29uZmlnKCkhLmZ1bGxzY3JlZW4pO1xyXG5cclxuICAgIHRoaXMucmVhZG9ubHkuc2V0KHRoaXMucmVhZG9ubHkoKSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5yZWFkb25seSgpIDpcclxuICAgICAgdGhpcy4jZGF0YT8ucmVhZG9ubHkgPz8gdGhpcy5jb25maWcoKSEucmVhZG9ubHkpO1xyXG5cclxuICAgIHRoaXMuYXBwbHlSZWFkb25seVN0eWxlLnNldCh0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSgpICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSgpIDpcclxuICAgICAgdGhpcy4jZGF0YT8uYXBwbHlSZWFkb25seVN0eWxlID8/IHRoaXMuY29uZmlnKCkhLmFwcGx5UmVhZG9ubHlTdHlsZSk7XHJcblxyXG4gICAgdGhpcy5zaG93VG9vbGJhci5zZXQodGhpcy5zaG93VG9vbGJhcigpICE9PSB1bmRlZmluZWQgP1xyXG4gICAgICB0aGlzLnNob3dUb29sYmFyKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5zaG93VG9vbGJhciA/PyB0aGlzLmNvbmZpZygpIS5zaG93VG9vbGJhcik7XHJcblxyXG4gICAgdGhpcy5zaG93Qm9yZGVyLnNldCh0aGlzLnNob3dCb3JkZXIoKSAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgdGhpcy5zaG93Qm9yZGVyKCkgOlxyXG4gICAgICB0aGlzLiNkYXRhPy5zaG93Qm9yZGVyID8/IHRoaXMuY29uZmlnKCkhLnNob3dCb3JkZXIpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnKSB7XHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuLnNldCghdGhpcy5mdWxsc2NyZWVuKCkpO1xyXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdCh0aGlzLmZ1bGxzY3JlZW4oKSEpO1xyXG4gICAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZnVsbHNjcmVlbigpKSB7XHJcbiAgICAgICAgdGhpcy4jZGlhbG9nUmVmPy5jbG9zZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcclxuXHJcbiAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcoKSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyKCksXHJcbiAgICAgICAgICBmb3JtYXQ6IHRoaXMuZm9ybWF0KCkhLFxyXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSEsXHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSEsXHJcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxyXG4gICAgICAgICAgZW5hYmxlVG9vbHRpcHM6IHRoaXMuZW5hYmxlVG9vbHRpcHMoKSEsXHJcbiAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLFxyXG4gICAgICAgICAgZnVsbHNjcmVlbk1vZGU6IHRoaXMuZnVsbHNjcmVlbk1vZGUoKSEsXHJcbiAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSgpISxcclxuICAgICAgICAgIGFwcGx5UmVhZG9ubHlTdHlsZTogdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUoKSEsXHJcbiAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5zaG93VG9vbGJhcigpISxcclxuICAgICAgICAgIHNob3dCb3JkZXI6IHRoaXMuc2hvd0JvcmRlcigpISxcclxuICAgICAgICAgIGltYWdlUmVzaXplTW9kdWxlOiB0aGlzLmltYWdlUmVzaXplTW9kdWxlKCkhLFxyXG4gICAgICAgICAgaW1hZ2VEcm9wTW9kdWxlOiB0aGlzLmltYWdlRHJvcE1vZHVsZSgpISxcclxuICAgICAgICAgIHN5bnRheE1vZHVsZTogdGhpcy5zeW50YXhNb2R1bGUoKSFcclxuICAgICAgICAgIC8vdXNlcnM6IHRoaXMudXNlcnNcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLiNkaWFsb2cub3BlbihFZGl0b3JDb21wb25lbnQsIHtcclxuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgIHdpZHRoOiB0aGlzLmZ1bGxzY3JlZW5XaWR0aCgpLFxyXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQoKSxcclxuICAgICAgICAgIGRhdGFcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByYXdFZGl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy4jZGlhbG9nLm9wZW4oUmF3Q29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHRoaXMudmFsdWUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgaGVpZ2h0OiAnOTAlJyxcclxuICAgICAgd2lkdGg6ICcxMDAlJ1xyXG4gICAgfSlcclxuICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgaWYgKHZhbHVlID09PSAnX19ETyEhTk9UISFVUERBVEVfXycpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdG9vbHRpcCh2YWw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbmFibGVUb29sdGlwcygpID8gdmFsIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9kdWxlcygpIHtcclxuICAgIC8vaWYgKCF0aGlzLnVzZXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cclxuXHJcbiAgICBjb25zdCBtb2R1bGVzID0geyB9O1xyXG5cclxuICAgIGlmICghdGhpcy5zaG93VG9vbGJhcigpKSB7XHJcbiAgICAgIG1vZHVsZXNbJ3Rvb2xiYXInXSA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmltYWdlUmVzaXplTW9kdWxlKCkpIHtcclxuICAgICAgbW9kdWxlc1snaW1hZ2VSZXNpemUnXSA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSgpKSB7XHJcbiAgICAgIG1vZHVsZXNbJ2ltYWdlRHJvcCddID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zeW50YXhNb2R1bGUoKSkge1xyXG4gICAgICBtb2R1bGVzWydzeW50YXgnXSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyppZiAodGhpcy5tZW50aW9uTW9kdWxlKSB7XHJcbiAgICAgIG1vZHVsZXNbJ21lbnRpb24nXSA9IHtcclxuICAgICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXHJcblxyXG4gICAgICAgIG9uU2VsZWN0OiAoaXRlbTogRE9NU3RyaW5nTWFwLCBpbnNlcnRJdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yIS5xdWlsbEVkaXRvclxyXG4gICAgICAgICAgaW5zZXJ0SXRlbShpdGVtKVxyXG4gICAgICAgICAgLy8gbmVjZXNzYXJ5IGJlY2F1c2UgcXVpbGwtbWVudGlvbiB0cmlnZ2VycyBjaGFuZ2VzIGFzICdhcGknIGluc3RlYWQgb2YgJ3VzZXInXHJcbiAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmVuZGVyTGlzdCh0aGlzLnVzZXJzPy5tYXAodSA9PiAoeyB2YWx1ZTogYCR7dS5kaXNwbGF5TmFtZX0gKCR7dS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pKSwgc2VhcmNoVGVybSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXM6IGFueVtdID0gW11cclxuXHJcbiAgICAgICAgICAgIHRoaXMudXNlcnMhLmZvckVhY2goKGVudHJ5KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgZW50cnkuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8XHJcbiAgICAgICAgICAgICAgICBlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTFcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHsgdmFsdWU6IGAke2VudHJ5LmRpc3BsYXlOYW1lfSAoJHtlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpfSlgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH0qL1xyXG5cclxuICAgIHJldHVybiBtb2R1bGVzO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcclxuICAvLyBNZXRob2QgdGhhdCBpcyBpbnZva2VkIG9uIGFuIHVwZGF0ZSBvZiBhIG1vZGVsLlxyXG4gIHVwZGF0ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIENvbnRyb2xWYWx1ZUFjY2Vzc29yIE92ZXJyaWRlc1xyXG5cclxuICAvLyBXcml0ZXMgYSBuZXcgaXRlbSB0byB0aGUgZWxlbWVudC5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUNoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcyBpbiB0aGUgVUkuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgYmx1ciBldmVudC5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jZW5kcmVnaW9uXHJcbn0iLCI8bmctY29udGFpbmVyPlxyXG4gIDxmb3JtPlxyXG4gICAgPHF1aWxsLWVkaXRvciBuYW1lPVwiZWRpdG9yXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUNoYW5nZXMoKVwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpID8/ICcnXCJcclxuICAgICAgW2Zvcm1hdF09XCJmb3JtYXQoKVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZnVsbHNjcmVlbigpID8gZnVsbHNjcmVlbkhlaWdodCgpIDogaGVpZ2h0KClcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwiZnVsbHNjcmVlbigpID8gZnVsbHNjcmVlbldpZHRoKCkgOiB3aWR0aCgpXCJcclxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5KCkgPz8gZmFsc2VcIlxyXG4gICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkoKSAmJiBhcHBseVJlYWRvbmx5U3R5bGUoKVwiXHJcbiAgICAgIFtjbGFzcy5uby10b29sYmFyXT1cIiFzaG93VG9vbGJhcigpXCJcclxuICAgICAgW2NsYXNzLm5vLWJvcmRlcl09XCIhc2hvd0JvcmRlcigpXCJcclxuICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXHJcblxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxyXG4gICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkNvbnRlbnRDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXHJcbiAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XHJcblxyXG4gICAgICBAaWYgKHNob3dUb29sYmFyKCkpIHtcclxuICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sYmFyXCIvPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlZGl0b3JTaXplXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L3F1aWxsLWVkaXRvcj5cclxuICA8L2Zvcm0+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0b29sYmFyPlxyXG4gIDxkaXY+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTdHlsZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmxvY2tTdHlsZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1N0eWxlXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3R5bGVcIi8+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNjcmlwdFN0eWxlXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpbmRlbnRTdHlsZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicnRsXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U2l6ZVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGluZ1wiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JcIi8+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRcIi8+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFsaWduXCIvPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbGVhblwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9ybXVsYVwiLz5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVkaWFcIi8+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2ZvbnRTdHlsZT5cclxuICBAaWYgKHNob3dGb250U3R5bGUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ib2xkKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJvbGRcIiAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmJvbGQhKVwiPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLml0YWxpYykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pdGFsaWNcIiAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaXRhbGljISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS51bmRlcmxpbmUpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdW5kZXJsaW5lXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnVuZGVybGluZSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3RyaWtlKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXN0cmlrZVwiICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5zdHJpa2UhKVwiPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNibG9ja1N0eWxlPlxyXG4gIEBpZiAoc2hvd0Jsb2NrU3R5bGUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5ibG9ja3F1b3RlKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWJsb2NrcXVvdGVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuYmxvY2txdW90ZSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuY29kZWJsb2NrKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmNvZGVibG9jayEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRpbmdTdHlsZT5cclxuICBAaWYgKHNob3dRdWlja0hlYWRpbmdTdHlsZSkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmgxKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWhlYWRlclwiIHZhbHVlPVwiMVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5oMSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaDIpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmgyISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjbGlzdFN0eWxlPlxyXG4gIEBpZiAoc2hvd0xpc3RTdHlsZSkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLm9yZGVyZWQpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEub3JkZXJlZCEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuYnVsbGV0ZWQpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5idWxsZXRlZCEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3NjcmlwdFN0eWxlPlxyXG4gIEBpZiAoc2hvd1NjcmlwdFN0eWxlKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuc3ViU2NyaXB0KSB7XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3ViXCIgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuc3ViU2NyaXB0ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5zdXBlclNjcmlwdCkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1zY3JpcHRcIiB2YWx1ZT1cInN1cGVyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLnN1cGVyU2NyaXB0ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaW5kZW50U3R5bGU+XHJcbiAgQGlmIChzaG93SW5kZW50U3R5bGUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5kZWNyZWFzZUluZGVudCkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIi0xXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmRlY3JlYXNlSW5kZW50ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pbmNyZWFzZUluZGVudCkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmluY3JlYXNlSW5kZW50ISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcnRsPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLnJ0bCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5ydGwhKVwiPjwvYnV0dG9uPlxyXG4gICAgPC9zcGFuPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZm9udFNpemU+XHJcbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9udFNpemUpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb250U2l6ZSEpXCI+XHJcbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1zaXplXCI+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNtYWxsXCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiaHVnZVwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2hlYWRpbmc+XHJcbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuaGVhZGluZ1N0eWxlKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuaGVhZGluZ1N0eWxlISlcIj5cclxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWhlYWRlclwiPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ9XCJzZWxlY3RlZFwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbG9yPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmNvbG9yKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuY29sb3IhKVwiPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIj48L3NlbGVjdD5cclxuICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2ZvbnQ+XHJcbiAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEuZm9udCkge1xyXG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcoKSEudG9vbHRpcHMhLmZvbnQhKVwiPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxyXG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2FsaWduPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmFsaWduKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuYWxpZ24hKVwiPlxyXG4gICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYWxpZ25cIj5cclxuICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NsZWFuPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmNsZWFuKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEuY2xlYW4hKVwiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwicWwtY2xlYW5cIj48L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI21lZGlhPlxyXG4gIEBpZiAoc2hvd01lZGlhKSB7XHJcbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEubGluaykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saW5rXCIgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5saW5rISlcIj48L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5pbWFnZSkge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5pbWFnZSEpXCI+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjb25maWcoKSEuYnV0dG9ucyEudmlkZW8pIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdmlkZW9cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEudmlkZW8hKVwiPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L3NwYW4+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxyXG4gIDxkaXY+XHJcbiAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5yYXdFZGl0b3IpIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBpZD1cInJhd2RvZ1wiXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZygpIS50b29sdGlwcyEucmF3RWRpdG9yISlcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicmF3RWRpdCgpXCI+XHJcbiAgICAgICAgICAgIGNvZGVcclxuICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKGNvbmZpZygpIS5idXR0b25zIS5lZGl0b3JTaXplKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgIDxidXR0b24gaWQ9XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoZnVsbHNjcmVlbigpID9cclxuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUoKSA9PT0gJ2V4cGFuZCcgPyBjb25maWcoKSEudG9vbHRpcHMhLm1pbmltaXplISA6IGNvbmZpZygpIS50b29sdGlwcyEucG9waW4hKSA6XHJcbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLnRvb2x0aXBzIS5tYXhpbWl6ZSEgOiBjb25maWcoKSEudG9vbHRpcHMhLnBvcG91dCEpKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIChjbGljayk9XCJ0b2dnbGVGdWxsc2NyZWVuKClcIj5cclxuICAgICAgICAgICAge3sgZnVsbHNjcmVlbigpID9cclxuICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLmljb25zIS5taW5pbWl6ZSA6IGNvbmZpZygpIS5pY29ucyEucG9waW4pIDpcclxuICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlKCkgPT09ICdleHBhbmQnID8gY29uZmlnKCkhLmljb25zIS5tYXhpbWl6ZSA6IGNvbmZpZygpIS5pY29ucyEucG9wb3V0KVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNmb3JtdWxhPlxyXG4gIEBpZiAoY29uZmlnKCkhLmJ1dHRvbnMhLmZvcm11bGEpIHtcclxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnKCkhLnRvb2x0aXBzIS5mb3JtdWxhISlcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWZvcm11bGFcIj48L2J1dHRvbj5cclxuICAgIDwvc3Bhbj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -1,30 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { MatButton } from '@angular/material/button';
4
- import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent } from '@angular/material/dialog';
5
- import { MatFormField } from '@angular/material/form-field';
6
- import { MatIcon } from '@angular/material/icon';
7
- import { MatInput } from '@angular/material/input';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- export class RawComponent {
11
- constructor() {
12
- this.data = inject(MAT_DIALOG_DATA);
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RawComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: RawComponent, isStandalone: true, selector: "cpquill-raw", ngImport: i0, template: "<mat-dialog-content>\r\n <form>\r\n <mat-form-field appearance=\"outline\">\r\n <textarea matInput [(ngModel)]=\"data\" name=\"data\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-raised-button color=\"warn\" mat-dialog-close=\"__DO!!NOT!!UPDATE__\">\r\n <mat-icon>cancel</mat-icon>\r\n <span>Cancel</span>\r\n </button>\r\n\r\n <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"data\">\r\n <mat-icon>done</mat-icon>\r\n <span>Accept</span>\r\n </button>\r\n</mat-dialog-actions>", styles: ["mat-dialog-content{height:95%;max-height:initial!important}form{width:100%}mat-form-field{width:100%}textarea{height:70vh}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: RawComponent, decorators: [{
18
- type: Component,
19
- args: [{ selector: 'cpquill-raw', standalone: true, imports: [
20
- FormsModule,
21
- MatButton,
22
- MatDialogActions,
23
- MatDialogClose,
24
- MatDialogContent,
25
- MatFormField,
26
- MatIcon,
27
- MatInput
28
- ], template: "<mat-dialog-content>\r\n <form>\r\n <mat-form-field appearance=\"outline\">\r\n <textarea matInput [(ngModel)]=\"data\" name=\"data\"></textarea>\r\n </mat-form-field>\r\n </form>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-raised-button color=\"warn\" mat-dialog-close=\"__DO!!NOT!!UPDATE__\">\r\n <mat-icon>cancel</mat-icon>\r\n <span>Cancel</span>\r\n </button>\r\n\r\n <button mat-raised-button color=\"primary\" [mat-dialog-close]=\"data\">\r\n <mat-icon>done</mat-icon>\r\n <span>Accept</span>\r\n </button>\r\n</mat-dialog-actions>", styles: ["mat-dialog-content{height:95%;max-height:initial!important}form{width:100%}mat-form-field{width:100%}textarea{height:70vh}\n"] }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL3NyYy9jb21wb25lbnRzL3Jhdy9yYXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwvc3JjL2NvbXBvbmVudHMvcmF3L3Jhdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQWtCbkQsTUFBTSxPQUFPLFlBQVk7SUFoQnpCO1FBaUJFLFNBQUksR0FBRyxNQUFNLENBQVMsZUFBZSxDQUFDLENBQUM7S0FDeEM7OEdBRlksWUFBWTtrR0FBWixZQUFZLHVFQ3hCekIsNG5CQWtCcUIscUxETmpCLFdBQVcsd2lDQUNYLFNBQVMsaUxBQ1QsZ0JBQWdCLDRIQUNoQixjQUFjLHFMQUNkLGdCQUFnQix5R0FDaEIsWUFBWSw0TEFDWixPQUFPLDJJQUNQLFFBQVE7OzJGQUtDLFlBQVk7a0JBaEJ4QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1A7d0JBQ1AsV0FBVzt3QkFDWCxTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxRQUFRO3FCQUNUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3BxdWlsbC1yYXcnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b24sXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTWF0RGlhbG9nQ2xvc2UsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0Rm9ybUZpZWxkLFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdElucHV0XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmF3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmF3LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmF3Q29tcG9uZW50IHtcclxuICBkYXRhID0gaW5qZWN0PHN0cmluZz4oTUFUX0RJQUxPR19EQVRBKTtcclxufSIsIjxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8Zm9ybT5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IFsobmdNb2RlbCldPVwiZGF0YVwiIG5hbWU9XCJkYXRhXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG48L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbjxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIG1hdC1kaWFsb2ctY2xvc2U9XCJfX0RPISFOT1QhIVVQREFURV9fXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgPHNwYW4+Q2FuY2VsPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJkYXRhXCI+XHJcbiAgICAgICAgPG1hdC1pY29uPmRvbmU8L21hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuPkFjY2VwdDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG48L21hdC1kaWFsb2ctYWN0aW9ucz4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './quill-mention.api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXZlbGFuZHByaWNlLW5neC1saWItcXVpbGwtbWVudGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsL21lbnRpb24vc3JjL2NsZWF2ZWxhbmRwcmljZS1uZ3gtbGliLXF1aWxsLW1lbnRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3F1aWxsLW1lbnRpb24uYXBpJztcbiJdfQ==