@ohioepa/oepa-ui-lib 1.1.0 → 1.2.1

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 (175) hide show
  1. package/esm2022/lib/account-search-input/account-search-input.component.mjs +11 -19
  2. package/esm2022/lib/account-search-input/account-search.service.mjs +31 -0
  3. package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +10 -18
  4. package/esm2022/lib/action-btn/action-btn.component.mjs +3 -3
  5. package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +3 -3
  6. package/esm2022/lib/address/address.component.mjs +3 -3
  7. package/esm2022/lib/address/oepa-address.service.mjs +13 -7
  8. package/esm2022/lib/blank/blank.component.mjs +3 -3
  9. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  10. package/esm2022/lib/checkbox-input/checkbox-input.component.mjs +3 -3
  11. package/esm2022/lib/comment-modal/comment-modal.component.mjs +3 -3
  12. package/esm2022/lib/common-forms.module.mjs +44 -36
  13. package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +3 -3
  14. package/esm2022/lib/contact/contact.component.mjs +3 -3
  15. package/esm2022/lib/date-input/date-input.component.mjs +3 -3
  16. package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +3 -3
  17. package/esm2022/lib/datepicker/datepicker.component.mjs +3 -3
  18. package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +3 -3
  19. package/esm2022/lib/dual-list-box/array.pipes.mjs +6 -6
  20. package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +3 -3
  21. package/esm2022/lib/ebiz-address/ebiz-address.component.mjs +3 -3
  22. package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +10 -9
  23. package/esm2022/lib/edoc-attachment/edoc-attachment.service.mjs +13 -7
  24. package/esm2022/lib/entity/entity.service.mjs +13 -7
  25. package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +3 -3
  26. package/esm2022/lib/entity/organization-search-input/organization-search-input.component.mjs +3 -3
  27. package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +5 -5
  28. package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +3 -3
  29. package/esm2022/lib/entity/person-search-input/person-search-input.component.mjs +3 -3
  30. package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +5 -5
  31. package/esm2022/lib/entity/place-create-modal/place-create-modal.component.mjs +3 -3
  32. package/esm2022/lib/entity/place-search-input/place-search-input.component.mjs +3 -3
  33. package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +5 -5
  34. package/esm2022/lib/file-upload/file-upload.component.mjs +9 -8
  35. package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +8 -7
  36. package/esm2022/lib/lynx-image-upload/lynx.service.mjs +13 -7
  37. package/esm2022/lib/message/message.component.mjs +3 -3
  38. package/esm2022/lib/message-list/message-list.component.mjs +3 -3
  39. package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +9 -8
  40. package/esm2022/lib/notes-modal/notes-modal.component.mjs +3 -3
  41. package/esm2022/lib/numeric-input/numeric-input.component.mjs +3 -3
  42. package/esm2022/lib/numeric-input.directive.mjs +3 -3
  43. package/esm2022/lib/oepa-account/account-service.mjs +62 -0
  44. package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +3 -3
  45. package/esm2022/lib/oepa-file-utils/oepa-file-util.service.mjs +227 -0
  46. package/esm2022/lib/oepa-forms.service.mjs +3 -3
  47. package/esm2022/lib/oepa-reference/oepa-reference.service.mjs +47 -0
  48. package/esm2022/lib/oepa-user-account/oepa-user-account.service.mjs +304 -0
  49. package/esm2022/lib/oepa-wait-message/oepa-wait-message.component.mjs +3 -3
  50. package/esm2022/lib/parameter/parameter.service.mjs +13 -7
  51. package/esm2022/lib/params-help-button/params-help-button.component.mjs +10 -10
  52. package/esm2022/lib/params-help-button/params-help.service.mjs +26 -0
  53. package/esm2022/lib/phone-number/phone-number.component.mjs +3 -3
  54. package/esm2022/lib/pin-modal/oepa-pin.service.mjs +13 -7
  55. package/esm2022/lib/pin-modal/pin-modal.component.mjs +5 -5
  56. package/esm2022/lib/select-input/select-input.component.mjs +3 -3
  57. package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +5 -5
  58. package/esm2022/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.mjs +3 -3
  59. package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +3 -3
  60. package/esm2022/lib/shopping-cart/shopping-cart.service.mjs +13 -7
  61. package/esm2022/lib/start-end-timepicker/start-end-timepicker.component.mjs +3 -3
  62. package/esm2022/lib/table/oepa-table-cell-classname.pipe.mjs +3 -3
  63. package/esm2022/lib/table/oepa-table-cell-colspan.pipe.mjs +3 -3
  64. package/esm2022/lib/table/oepa-table-cell-hidden.pipe.mjs +3 -3
  65. package/esm2022/lib/table/oepa-table-cell-icon-classname.pipe.mjs +3 -3
  66. package/esm2022/lib/table/oepa-table-cell-img-src.pipe.mjs +3 -3
  67. package/esm2022/lib/table/oepa-table-cell-inner-html.pipe.mjs +3 -3
  68. package/esm2022/lib/table/oepa-table-cell-input-component.pipe.mjs +3 -3
  69. package/esm2022/lib/table/oepa-table-cell-not-selectable.pipe.mjs +3 -3
  70. package/esm2022/lib/table/oepa-table-cell-value.pipe.mjs +3 -3
  71. package/esm2022/lib/table/oepa-table-filtering.directive.mjs +3 -3
  72. package/esm2022/lib/table/oepa-table-sorting.directive.mjs +3 -3
  73. package/esm2022/lib/table/p-table/p-table.component.mjs +11 -10
  74. package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +3 -3
  75. package/esm2022/lib/table/table-export.service.mjs +16 -7
  76. package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +3 -3
  77. package/esm2022/lib/table/table.component.mjs +15 -14
  78. package/esm2022/lib/table/table.service.mjs +3 -3
  79. package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +3 -3
  80. package/esm2022/lib/text-area-input/text-area-input.component.mjs +3 -3
  81. package/esm2022/lib/text-input/text-input.component.mjs +3 -3
  82. package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +3 -3
  83. package/esm2022/lib/timepicker/timepicker.component.mjs +3 -3
  84. package/esm2022/lib/validation/validation.service.mjs +3 -3
  85. package/esm2022/lib/yes-no/yes-no.component.mjs +3 -3
  86. package/esm2022/lib/yes-no-boolean/yes-no.component.mjs +3 -3
  87. package/esm2022/lib/yes-no-other-input/yes-no-other-input.component.mjs +3 -3
  88. package/esm2022/lib/zip-code/zip-code.component.mjs +3 -3
  89. package/esm2022/public-api.mjs +1 -28
  90. package/fesm2022/ohioepa-oepa-ui-lib.mjs +1369 -2662
  91. package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
  92. package/lib/account-search-input/account-search-input.component.d.ts +3 -4
  93. package/lib/account-search-input/account-search.service.d.ts +12 -0
  94. package/lib/account-search-modal/account-search-modal.component.d.ts +3 -5
  95. package/lib/address/oepa-address.service.d.ts +2 -1
  96. package/lib/common-forms.module.d.ts +72 -82
  97. package/lib/edoc-attachment/edoc-attachment.component.d.ts +2 -1
  98. package/lib/edoc-attachment/edoc-attachment.service.d.ts +2 -1
  99. package/lib/entity/entity.service.d.ts +2 -1
  100. package/lib/file-upload/file-upload.component.d.ts +2 -1
  101. package/lib/lynx-image-upload/lynx-image-upload.component.d.ts +2 -1
  102. package/lib/lynx-image-upload/lynx.service.d.ts +2 -1
  103. package/lib/multi-file-upload/multi-file-upload.component.d.ts +2 -1
  104. package/lib/oepa-account/account-service.d.ts +23 -0
  105. package/lib/oepa-file-utils/oepa-file-util.service.d.ts +53 -0
  106. package/lib/oepa-reference/oepa-reference.service.d.ts +26 -0
  107. package/lib/oepa-user-account/oepa-user-account.service.d.ts +122 -0
  108. package/lib/parameter/parameter.service.d.ts +2 -1
  109. package/lib/params-help-button/params-help-button.component.d.ts +3 -3
  110. package/lib/params-help-button/params-help.service.d.ts +11 -0
  111. package/lib/pin-modal/oepa-pin.service.d.ts +2 -1
  112. package/lib/pin-modal/pin-modal.component.d.ts +2 -1
  113. package/lib/server-timeout-modal/server-timeout-modal.component.d.ts +1 -1
  114. package/lib/shopping-cart/shopping-cart.service.d.ts +2 -1
  115. package/lib/table/p-table/p-table.component.d.ts +2 -1
  116. package/lib/table/table-export.service.d.ts +2 -1
  117. package/lib/table/table.component.d.ts +1 -1
  118. package/ohioepa-oepa-ui-lib-1.2.1.tgz +0 -0
  119. package/package.json +3 -3
  120. package/public-api.d.ts +0 -27
  121. package/esm2022/lib/document/document-editor/document-editor.component.mjs +0 -225
  122. package/esm2022/lib/document/document-event-entity-type.mjs +0 -7
  123. package/esm2022/lib/document/document-event-type.mjs +0 -7
  124. package/esm2022/lib/document/document-event.mjs +0 -2
  125. package/esm2022/lib/document/document-group/document-group.component.mjs +0 -210
  126. package/esm2022/lib/document/document-part/document-part.component.mjs +0 -19
  127. package/esm2022/lib/document/document-part-editor/document-part-editor.component.mjs +0 -296
  128. package/esm2022/lib/document/document-placeholder-modal/document-placeholder-modal.component.mjs +0 -49
  129. package/esm2022/lib/document/document-section/document-section.component.mjs +0 -226
  130. package/esm2022/lib/document/document.service.mjs +0 -325
  131. package/esm2022/lib/document/group-modal/group-modal.component.mjs +0 -46
  132. package/esm2022/lib/document/part-modal/part-modal.component.mjs +0 -48
  133. package/esm2022/lib/document/portal-document-class.mjs +0 -2
  134. package/esm2022/lib/document/portal-document-group.mjs +0 -2
  135. package/esm2022/lib/document/portal-document-part.mjs +0 -2
  136. package/esm2022/lib/document/portal-document-placeholder.mjs +0 -2
  137. package/esm2022/lib/document/portal-document-section.mjs +0 -2
  138. package/esm2022/lib/document/portal-document-text.mjs +0 -2
  139. package/esm2022/lib/document/portal-document-type.mjs +0 -2
  140. package/esm2022/lib/document/portal-document.mjs +0 -2
  141. package/esm2022/lib/document/portal-email-attachment-type.mjs +0 -2
  142. package/esm2022/lib/document/portal-email-attachment.mjs +0 -2
  143. package/esm2022/lib/document/portal-email-filter.mjs +0 -2
  144. package/esm2022/lib/document/portal-email.mjs +0 -2
  145. package/esm2022/lib/document/section-modal/section-modal.component.mjs +0 -46
  146. package/esm2022/lib/esri-map/esri-map.component.mjs +0 -416
  147. package/esm2022/lib/ohio-lat-long/ohio-lat-long.component.mjs +0 -176
  148. package/lib/document/document-editor/document-editor.component.d.ts +0 -34
  149. package/lib/document/document-event-entity-type.d.ts +0 -5
  150. package/lib/document/document-event-type.d.ts +0 -5
  151. package/lib/document/document-event.d.ts +0 -9
  152. package/lib/document/document-group/document-group.component.d.ts +0 -38
  153. package/lib/document/document-part/document-part.component.d.ts +0 -10
  154. package/lib/document/document-part-editor/document-part-editor.component.d.ts +0 -46
  155. package/lib/document/document-placeholder-modal/document-placeholder-modal.component.d.ts +0 -19
  156. package/lib/document/document-section/document-section.component.d.ts +0 -37
  157. package/lib/document/document.service.d.ts +0 -90
  158. package/lib/document/group-modal/group-modal.component.d.ts +0 -20
  159. package/lib/document/part-modal/part-modal.component.d.ts +0 -20
  160. package/lib/document/portal-document-class.d.ts +0 -10
  161. package/lib/document/portal-document-group.d.ts +0 -15
  162. package/lib/document/portal-document-part.d.ts +0 -22
  163. package/lib/document/portal-document-placeholder.d.ts +0 -12
  164. package/lib/document/portal-document-section.d.ts +0 -13
  165. package/lib/document/portal-document-text.d.ts +0 -7
  166. package/lib/document/portal-document-type.d.ts +0 -15
  167. package/lib/document/portal-document.d.ts +0 -27
  168. package/lib/document/portal-email-attachment-type.d.ts +0 -6
  169. package/lib/document/portal-email-attachment.d.ts +0 -12
  170. package/lib/document/portal-email-filter.d.ts +0 -12
  171. package/lib/document/portal-email.d.ts +0 -18
  172. package/lib/document/section-modal/section-modal.component.d.ts +0 -20
  173. package/lib/esri-map/esri-map.component.d.ts +0 -41
  174. package/lib/ohio-lat-long/ohio-lat-long.component.d.ts +0 -63
  175. package/ohioepa-oepa-ui-lib-1.1.0.tgz +0 -0
@@ -1,14 +1,14 @@
1
1
  import { OnInit } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
- import { HttpClient } from '@angular/common/http';
3
+ import { ParamsHelpService } from './params-help.service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ParamsHelpButtonComponent implements OnInit {
6
6
  private router;
7
- private http;
7
+ private helpService;
8
8
  helpURL: string;
9
9
  title: string;
10
10
  anchorClass: string;
11
- constructor(router: Router, http: HttpClient);
11
+ constructor(router: Router, helpService: ParamsHelpService);
12
12
  ngOnInit(): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<ParamsHelpButtonComponent, never>;
14
14
  static ɵcmp: i0.ɵɵComponentDeclaration<ParamsHelpButtonComponent, "oepa-params-help-button", never, { "title": { "alias": "title"; "required": false; }; "anchorClass": { "alias": "anchorClass"; "required": false; }; }, {}, never, never, false, never>;
@@ -0,0 +1,11 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ParamsHelpService {
5
+ private http;
6
+ private baseURL;
7
+ constructor(http: HttpClient, ebizRootURL: string);
8
+ retrieveHelpURL(helpURLParamName: string): Observable<string>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ParamsHelpService, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<ParamsHelpService>;
11
+ }
@@ -6,8 +6,9 @@ import { OepaPin } from './oepa-pin';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class OepaPinService {
8
8
  private http;
9
+ private ebizRootURL;
9
10
  private pinsUrl;
10
- constructor(http: HttpClient);
11
+ constructor(http: HttpClient, ebizRootURL: string);
11
12
  /**
12
13
  * Retrieve an attestation by id.
13
14
  * @param attestationID
@@ -2,10 +2,11 @@ import { OnInit, EventEmitter } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
3
  import { Observable } from 'rxjs';
4
4
  import { BsModalRef } from 'ngx-bootstrap/modal';
5
- import { OepaUserAccountService, OepaUserAccount } from '@ohioepa/oepa-common-lib';
5
+ import { OepaUserAccount } from '@ohioepa/oepa-common-lib';
6
6
  import { OepaAttestation } from './oepa-attestation';
7
7
  import { OepaSecurityQuestion } from './oepa-security-question';
8
8
  import { OepaPinService } from './oepa-pin.service';
9
+ import { OepaUserAccountService } from '../oepa-user-account/oepa-user-account.service';
9
10
  import * as i0 from "@angular/core";
10
11
  export declare class PinModalComponent implements OnInit {
11
12
  private userAccountService;
@@ -1,6 +1,6 @@
1
1
  import { OnInit, EventEmitter } from '@angular/core';
2
- import { OepaUserAccountService } from '@ohioepa/oepa-common-lib';
3
2
  import { BsModalRef } from 'ngx-bootstrap/modal';
3
+ import { OepaUserAccountService } from '../oepa-user-account/oepa-user-account.service';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ServerTimeoutModalComponent implements OnInit {
6
6
  private userAccountService;
@@ -4,8 +4,9 @@ import { ShoppingCart, ShoppingCartItem } from '@ohioepa/oepa-ebiz-lib';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ShoppingCartService {
6
6
  private http;
7
+ private ebizRootURL;
7
8
  private paymentUrl;
8
- constructor(http: HttpClient);
9
+ constructor(http: HttpClient, ebizRootURL: string);
9
10
  /**
10
11
  * Retrieve a shopping cart for the current user for the provided serviceName.
11
12
  * @param serviceName
@@ -9,7 +9,7 @@ import { OepaTablePageInfo } from '../oepa-table-page-info';
9
9
  import { OepaTableCellClickEvent } from '../oepa-table-cell-click-event';
10
10
  import { OepaActionEvent } from '../../action-btn/oepa-action-event';
11
11
  import { TableExportService } from '../table-export.service';
12
- import { OepaFileUtilService, OepaTemplateInfo } from '@ohioepa/oepa-common-lib';
12
+ import { OepaTemplateInfo } from '@ohioepa/oepa-common-lib';
13
13
  import { TableService } from '../table.service';
14
14
  import { OepaTableSortCriterion } from '../oepa-table-sort-criterion';
15
15
  import { PageChangedEvent } from 'ngx-bootstrap/pagination';
@@ -17,6 +17,7 @@ import { OepaPColumn } from '../oepa-p-column';
17
17
  import { TableDataCellClickEvent } from '../table-data-cell/table-data-cell-click-event';
18
18
  import { Subject } from 'rxjs';
19
19
  import { OepaTableFilter } from '../oepa-table-filter';
20
+ import { OepaFileUtilService } from '../../oepa-file-utils/oepa-file-util.service';
20
21
  import * as i0 from "@angular/core";
21
22
  export declare class PTableComponent implements OnInit, AfterViewChecked {
22
23
  private sanitizer;
@@ -5,11 +5,12 @@ import { OepaTableConfig } from './oepa-table-config';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class TableExportService {
7
7
  private http;
8
+ private ebizRootURL;
8
9
  private downloadHTMLUrl;
9
10
  private downloadExcelUrl;
10
11
  private downloadDummyHTMLUrl;
11
12
  private downloadDummyExcelUrl;
12
- constructor(http: HttpClient);
13
+ constructor(http: HttpClient, ebizRootURL: string);
13
14
  /**
14
15
  * Return a string representing the contents of table as HTML.
15
16
  * @param table
@@ -10,11 +10,11 @@ import { OepaTablePageInfo } from './oepa-table-page-info';
10
10
  import { OepaTableCellClickEvent } from './oepa-table-cell-click-event';
11
11
  import { OepaActionEvent } from '../action-btn/oepa-action-event';
12
12
  import { TableExportService } from './table-export.service';
13
- import { OepaFileUtilService } from '@ohioepa/oepa-common-lib';
14
13
  import { OepaTemplateInfo } from '@ohioepa/oepa-common-lib';
15
14
  import { TableService } from './table.service';
16
15
  import { OepaTableSortCriterion } from './oepa-table-sort-criterion';
17
16
  import { PageChangedEvent } from 'ngx-bootstrap/pagination';
17
+ import { OepaFileUtilService } from '../oepa-file-utils/oepa-file-util.service';
18
18
  import * as i0 from "@angular/core";
19
19
  export declare class TableComponent implements OnInit {
20
20
  private sanitizer;
Binary file
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@ohioepa/oepa-ui-lib",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "peerDependencies": {
5
- "@angular/common": "^17.1.0",
6
- "@angular/core": "^17.1.0"
5
+ "@angular/common": "^18.2.13",
6
+ "@angular/core": "^18.2.13"
7
7
  },
8
8
  "dependencies": {
9
9
  "tslib": "^2.3.0"
package/public-api.d.ts CHANGED
@@ -19,31 +19,6 @@ export * from './lib/datepicker/datepicker.component';
19
19
  export * from './lib/daterangepicker/daterangepicker.component';
20
20
  export * from './lib/date-input/date-input.component';
21
21
  export * from './lib/date-input-modal/date-input-modal.component';
22
- export * from './lib/document/document-editor/document-editor.component';
23
- export * from './lib/document/document-group/document-group.component';
24
- export * from './lib/document/document-part/document-part.component';
25
- export * from './lib/document/document-part-editor/document-part-editor.component';
26
- export * from './lib/document/document-placeholder-modal/document-placeholder-modal.component';
27
- export * from './lib/document/document-section/document-section.component';
28
- export * from './lib/document/document.service';
29
- export * from './lib/document/group-modal/group-modal.component';
30
- export * from './lib/document/part-modal/part-modal.component';
31
- export * from './lib/document/section-modal/section-modal.component';
32
- export * from './lib/document/document-event';
33
- export * from './lib/document/document-event-entity-type';
34
- export * from './lib/document/document-event-type';
35
- export * from './lib/document/portal-document';
36
- export * from './lib/document/portal-document-class';
37
- export * from './lib/document/portal-document-group';
38
- export * from './lib/document/portal-document-part';
39
- export * from './lib/document/portal-document-placeholder';
40
- export * from './lib/document/portal-document-section';
41
- export * from './lib/document/portal-document-text';
42
- export * from './lib/document/portal-document-type';
43
- export * from './lib/document/portal-email';
44
- export * from './lib/document/portal-email-attachment';
45
- export * from './lib/document/portal-email-attachment-type';
46
- export * from './lib/document/portal-email-filter';
47
22
  export * from './lib/dual-list-box/dual-list-box.component';
48
23
  export * from './lib/dual-list-box/array.pipes';
49
24
  export * from './lib/dual-list-box/items-moved-event';
@@ -64,7 +39,6 @@ export * from './lib/entity/person-search-modal/person-search-modal.component';
64
39
  export * from './lib/entity/place-create-modal/place-create-modal.component';
65
40
  export * from './lib/entity/place-search-input/place-search-input.component';
66
41
  export * from './lib/entity/place-search-modal/place-search-modal.component';
67
- export * from './lib/esri-map/esri-map.component';
68
42
  export * from './lib/file-upload/file-upload.component';
69
43
  export * from './lib/lynx-image-upload/lynx-image-upload.component';
70
44
  export * from './lib/lynx-image-upload/lynx.service';
@@ -75,7 +49,6 @@ export * from './lib/parameter/parameter';
75
49
  export * from './lib/parameter/parameter.service';
76
50
  export * from './lib/oepa-error-message/oepa-error-message.component';
77
51
  export * from './lib/oepa-wait-message/oepa-wait-message.component';
78
- export * from './lib/ohio-lat-long/ohio-lat-long.component';
79
52
  export * from './lib/message/oepa-message';
80
53
  export * from './lib/message/oepa-message-type';
81
54
  export * from './lib/message/message.component';
@@ -1,225 +0,0 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { SectionModalComponent } from '../section-modal/section-modal.component';
3
- import { ConfirmationModalComponent } from '../../confirmation-modal/confirmation-modal.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "ngx-bootstrap/modal";
6
- import * as i2 from "ngx-toastr";
7
- import * as i3 from "../document.service";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "ngx-bootstrap/tabs";
10
- import * as i6 from "../document-section/document-section.component";
11
- export class DocumentEditorComponent {
12
- modalService;
13
- toastr;
14
- documentService;
15
- document;
16
- allowRemoveSection = false;
17
- showSectionOptions = false;
18
- documentSectionTabs;
19
- busy = false;
20
- static selectedTabIndex = 0;
21
- constructor(modalService, toastr, documentService) {
22
- this.modalService = modalService;
23
- this.toastr = toastr;
24
- this.documentService = documentService;
25
- }
26
- ngOnInit() {
27
- // TODO add check for DSWSWIMSSystemAdmin to the NPDES code
28
- // this.userAccountService.retrieveAccountForCurrentUser().subscribe((account) => {
29
- // if (account && account.roleList) {
30
- // account.roleList.forEach(role => {
31
- // if (role.name == 'DSWSWIMSSystemAdmin') {
32
- // this.showSectionOptions = true;
33
- // }
34
- // });
35
- // } else {
36
- // alert('No Account could be found in the OepaAccountService!');
37
- // }
38
- // });
39
- }
40
- ngAfterViewInit() {
41
- if (this.documentSectionTabs?.tabs[DocumentEditorComponent.selectedTabIndex]) {
42
- this.documentSectionTabs.tabs[DocumentEditorComponent.selectedTabIndex].active = true;
43
- }
44
- }
45
- onSectionTabSelect(index) {
46
- console.log(index);
47
- console.log(DocumentEditorComponent.selectedTabIndex);
48
- DocumentEditorComponent.selectedTabIndex = index;
49
- if (this.documentSectionTabs?.tabs[DocumentEditorComponent.selectedTabIndex]) {
50
- this.documentService.updateSelectedSectionName(this.documentSectionTabs.tabs[DocumentEditorComponent.selectedTabIndex].heading);
51
- }
52
- else if (this.documentSectionTabs?.tabs[DocumentEditorComponent.selectedTabIndex]) {
53
- this.editSection(this.documentSectionTabs.tabs[DocumentEditorComponent.selectedTabIndex]);
54
- }
55
- }
56
- moveSectionUp(section) {
57
- if (section.sequence && section.sequence > 1) {
58
- let clone = Object.assign({}, this.document);
59
- if (clone.sections) {
60
- clone.sections.splice(section.sequence - 2, 0, clone.sections.splice(section.sequence - 1, 1)[0]);
61
- this.resequence(clone);
62
- this.documentService.updateDocumentGroup(clone).subscribe({
63
- next: () => {
64
- this.documentService.updateDcoumentID(clone.id || '');
65
- }, error: err => {
66
- this.toastr.error('Failed updating document: ' + err, 'ERROR');
67
- }
68
- });
69
- }
70
- }
71
- else {
72
- this.toastr.info('Cannot move top section up', '', { disableTimeOut: false, timeOut: 5000 });
73
- }
74
- }
75
- insertAboveSection(section) {
76
- if (section.sequence) {
77
- let newSection = this.newSection(section.sequence - 1 || 1);
78
- this.insertSection(section.sequence - 1, newSection);
79
- }
80
- }
81
- moveSectionDown(section) {
82
- if (section.sequence && this.document && this.document.sections && section.sequence < this.document.sections.length - 1) {
83
- let clone = Object.assign({}, this.document);
84
- if (clone.sections) {
85
- clone.sections.splice(section.sequence, 0, clone.sections.splice(section.sequence - 1, 1)[0]);
86
- this.resequence(clone);
87
- this.documentService.updateDocumentGroup(clone).subscribe({
88
- next: () => {
89
- this.documentService.updateDcoumentID(clone.id || '');
90
- }, error: err => {
91
- this.toastr.error('Failed updating document: ' + err, 'ERROR');
92
- }
93
- });
94
- }
95
- }
96
- else {
97
- this.toastr.info('Cannot move bottom section down', '', { disableTimeOut: false, timeOut: 5000 });
98
- }
99
- }
100
- insertBelowSection(section) {
101
- if (section.sequence) {
102
- let newSection = this.newSection(section.sequence + 1);
103
- this.insertSection(section.sequence, newSection);
104
- }
105
- }
106
- newSection(sequence) {
107
- return {
108
- documentID: this.document?.id,
109
- sequence: sequence,
110
- name: 'Section ' + sequence,
111
- groups: [
112
- {
113
- name: 'Group 1',
114
- parts: [
115
- {
116
- name: 'Paragraph 1',
117
- text: {
118
- text: ''
119
- }
120
- }
121
- ]
122
- }
123
- ]
124
- };
125
- }
126
- insertSection(insertIndex, newSection) {
127
- const initialState = {
128
- label: 'Insert Section',
129
- section: newSection
130
- };
131
- let modal = this.modalService.show(SectionModalComponent, { initialState, ignoreBackdropClick: true });
132
- modal.content.onSectionSave.subscribe(updatedSection => {
133
- this.busy = true;
134
- let clone = Object.assign({}, this.document);
135
- if (clone.sections) {
136
- clone.sections.splice(insertIndex, 0, updatedSection);
137
- this.resequence(clone);
138
- this.documentService.updateDocument(clone).subscribe({
139
- next: () => {
140
- this.documentService.updateDcoumentID(clone.id || '');
141
- this.busy = false;
142
- }, error: err => {
143
- this.toastr.error('Failed updating section: ' + err, 'ERROR');
144
- this.busy = false;
145
- }
146
- });
147
- }
148
- });
149
- }
150
- resequence(document) {
151
- let sequence = 1;
152
- if (document.sections) {
153
- document.sections.forEach(section => {
154
- section.sequence = sequence++;
155
- });
156
- }
157
- }
158
- deleteSection(section) {
159
- const initialState = {
160
- headerText: 'Delete Section',
161
- bodyText: 'Delete Section ' + section.name + '?',
162
- confirmBtnLabel: 'Yes',
163
- cancelBtnLabel: 'No'
164
- };
165
- let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
166
- modal.content.confirmClicked.subscribe(() => {
167
- this.busy = true;
168
- let clone = Object.assign({}, this.document);
169
- if (clone.sections) {
170
- clone.sections = clone.sections.filter(keep => {
171
- keep.id != section.id;
172
- });
173
- this.resequence(clone);
174
- this.documentService.updateDocument(clone).subscribe({
175
- next: () => {
176
- this.documentService.deleteDocumentSection(section).subscribe({
177
- next: () => {
178
- this.documentService.updateDcoumentID(clone.id || '');
179
- this.busy = false;
180
- }, error: err => {
181
- this.toastr.error('Failed deleting section: ' + err, 'ERROR');
182
- this.busy = false;
183
- }
184
- });
185
- }, error: err => {
186
- this.toastr.error('Failed updating document: ' + err, 'ERROR');
187
- this.busy = false;
188
- }
189
- });
190
- }
191
- });
192
- }
193
- editSection(section) {
194
- const initialState = {
195
- label: 'Edit Section Attributes',
196
- section: section
197
- };
198
- let modal = this.modalService.show(SectionModalComponent, { initialState, ignoreBackdropClick: true });
199
- modal.content.onSectionSave.subscribe(updatedSection => {
200
- this.busy = true;
201
- this.documentService.updateDocumentSection(updatedSection).subscribe(() => {
202
- this.busy = false;
203
- }, err => {
204
- this.toastr.error('Failed updating section: ' + err, 'ERROR');
205
- this.busy = false;
206
- });
207
- });
208
- }
209
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentEditorComponent, deps: [{ token: i1.BsModalService }, { token: i2.ToastrService }, { token: i3.DocumentService }], target: i0.ɵɵFactoryTarget.Component });
210
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentEditorComponent, selector: "oepa-document-editor", inputs: { document: "document", allowRemoveSection: "allowRemoveSection", showSectionOptions: "showSectionOptions" }, viewQueries: [{ propertyName: "documentSectionTabs", first: true, predicate: ["documentSectionTabs"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"document\">\n <div *ngIf=\"document.sections && document.sections.length > 0\">\n <div class=\"row\">\n <div class=\"col-sm-4\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n (click)=\"insertBelowSection(document.sections[document.sections.length-1])\">\n Add new section\n </button>\n </div>\n <div class=\"col-sm-8\">\n </div>\n <div class=\"col-sm-12\" class=\"row\">\n <tabset #documentSectionTabs>\n <tab *ngFor=\"let s of document.sections; let i = index;\" (selectTab)=\"onSectionTabSelect(i)\"\n [removable]=\"allowRemoveSection\" (removed)=\"deleteSection(s)\">\n <ng-template tabHeading>\n <span>\n <span>{{s.name}}</span>\n <span *ngIf=\"showSectionOptions\">&nbsp;<i class=\"bi bi-pencil-fill\"\n (click)=\"editSection(s)\"></i> &nbsp;<i class=\"bi bi-x-lg\"\n (click)=\"deleteSection(s)\"></i></span>\n </span>\n </ng-template>\n <oepa-document-section [section]=\"s\" (onMoveUp)=\"moveSectionUp($event)\"\n (onInsertAbove)=\"insertAboveSection($event)\" (onMoveDown)=\"moveSectionDown($event)\"\n (onInsertBelow)=\"insertBelowSection($event)\" (onDelete)=\"deleteSection($event)\">\n </oepa-document-section>\n </tab>\n </tabset>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.TabDirective, selector: "tab, [tab]", inputs: ["heading", "id", "disabled", "removable", "customClass", "active"], outputs: ["selectTab", "deselect", "removed"], exportAs: ["tab"] }, { kind: "component", type: i5.TabsetComponent, selector: "tabset", inputs: ["vertical", "justified", "type"] }, { kind: "directive", type: i5.TabHeadingDirective, selector: "[tabHeading]" }, { kind: "component", type: i6.DocumentSectionComponent, selector: "oepa-document-section", inputs: ["section"], outputs: ["onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
211
- }
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentEditorComponent, decorators: [{
213
- type: Component,
214
- args: [{ selector: 'oepa-document-editor', template: "<div *ngIf=\"document\">\n <div *ngIf=\"document.sections && document.sections.length > 0\">\n <div class=\"row\">\n <div class=\"col-sm-4\">\n <button type=\"button\" class=\"btn btn-primary btn-sm\"\n (click)=\"insertBelowSection(document.sections[document.sections.length-1])\">\n Add new section\n </button>\n </div>\n <div class=\"col-sm-8\">\n </div>\n <div class=\"col-sm-12\" class=\"row\">\n <tabset #documentSectionTabs>\n <tab *ngFor=\"let s of document.sections; let i = index;\" (selectTab)=\"onSectionTabSelect(i)\"\n [removable]=\"allowRemoveSection\" (removed)=\"deleteSection(s)\">\n <ng-template tabHeading>\n <span>\n <span>{{s.name}}</span>\n <span *ngIf=\"showSectionOptions\">&nbsp;<i class=\"bi bi-pencil-fill\"\n (click)=\"editSection(s)\"></i> &nbsp;<i class=\"bi bi-x-lg\"\n (click)=\"deleteSection(s)\"></i></span>\n </span>\n </ng-template>\n <oepa-document-section [section]=\"s\" (onMoveUp)=\"moveSectionUp($event)\"\n (onInsertAbove)=\"insertAboveSection($event)\" (onMoveDown)=\"moveSectionDown($event)\"\n (onInsertBelow)=\"insertBelowSection($event)\" (onDelete)=\"deleteSection($event)\">\n </oepa-document-section>\n </tab>\n </tabset>\n </div>\n </div>\n </div>\n</div>" }]
215
- }], ctorParameters: () => [{ type: i1.BsModalService }, { type: i2.ToastrService }, { type: i3.DocumentService }], propDecorators: { document: [{
216
- type: Input
217
- }], allowRemoveSection: [{
218
- type: Input
219
- }], showSectionOptions: [{
220
- type: Input
221
- }], documentSectionTabs: [{
222
- type: ViewChild,
223
- args: ['documentSectionTabs', { static: false }]
224
- }] } });
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvZG9jdW1lbnQtZWRpdG9yL2RvY3VtZW50LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWVkaXRvci9kb2N1bWVudC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU1uRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7Ozs7QUFPbkcsTUFBTSxPQUFPLHVCQUF1QjtJQVdkO0lBQ1Y7SUFDQTtJQVhELFFBQVEsQ0FBNkI7SUFDckMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLGtCQUFrQixHQUFZLEtBQUssQ0FBQztJQUVRLG1CQUFtQixDQUFtQjtJQUVwRixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ1osTUFBTSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUVwQyxZQUFvQixZQUE0QixFQUN0QyxNQUFxQixFQUNyQixlQUFnQztRQUZ0QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFFMUMsQ0FBQztJQUVELFFBQVE7UUFDTiwyREFBMkQ7UUFDM0QsbUZBQW1GO1FBQ25GLHVDQUF1QztRQUN2Qyx5Q0FBeUM7UUFDekMsa0RBQWtEO1FBQ2xELDBDQUEwQztRQUMxQyxVQUFVO1FBQ1YsVUFB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LEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQWhOVSx1QkFBdUI7NEZBQXZCLHVCQUF1Qiw4U0NmcEMsaXdEQWdDTTs7NEZEakJPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxzQkFBc0I7NklBTXZCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFK0MsbUJBQW1CO3NCQUF2RSxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudCc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudFNlY3Rpb24gfSBmcm9tICcuLi9wb3J0YWwtZG9jdW1lbnQtc2VjdGlvbic7XG5pbXBvcnQgeyBEb2N1bWVudFNlcnZpY2UgfSBmcm9tICcuLi9kb2N1bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBTZWN0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zZWN0aW9uLW1vZGFsL3NlY3Rpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNldENvbXBvbmVudCB9IGZyb20gJ25neC1ib290c3RyYXAvdGFicyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbmZpcm1hdGlvbi1tb2RhbC9jb25maXJtYXRpb24tbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kb2N1bWVudC1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZG9jdW1lbnQtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtZWRpdG9yLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgZG9jdW1lbnQ6IFBvcnRhbERvY3VtZW50IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBhbGxvd1JlbW92ZVNlY3Rpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2hvd1NlY3Rpb25PcHRpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnZG9jdW1lbnRTZWN0aW9uVGFicycsIHsgc3RhdGljOiBmYWxzZSB9KSBkb2N1bWVudFNlY3Rpb25UYWJzPzogVGFic2V0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyBidXN5ID0gZmFsc2U7XG4gIHByaXZhdGUgc3RhdGljIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIFRPRE8gYWRkIGNoZWNrIGZvciBEU1dTV0lNU1N5c3RlbUFkbWluIHRvIHRoZSBOUERFUyBjb2RlXG4gICAgLy8gdGhpcy51c2VyQWNjb3VudFNlcnZpY2UucmV0cmlldmVBY2NvdW50Rm9yQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKGFjY291bnQpID0+IHtcbiAgICAvLyAgIGlmIChhY2NvdW50ICYmIGFjY291bnQucm9sZUxpc3QpIHtcbiAgICAvLyAgICAgYWNjb3VudC5yb2xlTGlzdC5mb3JFYWNoKHJvbGUgPT4ge1xuICAgIC8vICAgICAgIGlmIChyb2xlLm5hbWUgPT0gJ0RTV1NXSU1TU3lzdGVtQWRtaW4nKSB7XG4gICAgLy8gICAgICAgICB0aGlzLnNob3dTZWN0aW9uT3B0aW9ucyA9IHRydWU7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KTtcbiAgICAvLyAgIH0gZWxzZSB7XG4gICAgLy8gICAgIGFsZXJ0KCdObyBBY2NvdW50IGNvdWxkIGJlIGZvdW5kIGluIHRoZSBPZXBhQWNjb3VudFNlcnZpY2UhJyk7XG4gICAgLy8gICB9XG4gICAgLy8gfSk7XG4gIH1cblxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudFNlY3Rpb25UYWJzPy50YWJzW0RvY3VtZW50RWRpdG9yQ29tcG9uZW50LnNlbGVjdGVkVGFiSW5kZXhdKSB7XG4gICAgICB0aGlzLmRvY3VtZW50U2VjdGlvblRhYnMudGFic1tEb2N1bWVudEVkaXRvckNvbXBvbmVudC5zZWxlY3RlZFRhYkluZGV4XS5hY3RpdmUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlY3Rpb25UYWJTZWxlY3QoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnNvbGUubG9nKGluZGV4KVxuICAgIGNvbnNvbGUubG9nKERvY3VtZW50RWRpdG9yQ29tcG9uZW50LnNlbGVjdGVkVGFiSW5kZXgpXG4gICAgRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleCA9IGluZGV4O1xuICAgIGlmICh0aGlzLmRvY3VtZW50U2VjdGlvblRhYnM/LnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0pIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZVNlbGVjdGVkU2VjdGlvbk5hbWUodGhpcy5kb2N1bWVudFNlY3Rpb25UYWJzLnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0uaGVhZGluZyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRvY3VtZW50U2VjdGlvblRhYnM/LnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0pIHtcbiAgICAgIHRoaXMuZWRpdFNlY3Rpb24odGhpcy5kb2N1bWVudFNlY3Rpb25UYWJzLnRhYnNbRG9jdW1lbnRFZGl0b3JDb21wb25lbnQuc2VsZWN0ZWRUYWJJbmRleF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtb3ZlU2VjdGlvblVwKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGlmIChzZWN0aW9uLnNlcXVlbmNlICYmIHNlY3Rpb24uc2VxdWVuY2UgPiAxKSB7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRvY3VtZW50KTtcbiAgICAgIGlmIChjbG9uZS5zZWN0aW9ucykge1xuICAgICAgICBjbG9uZS5zZWN0aW9ucy5zcGxpY2Uoc2VjdGlvbi5zZXF1ZW5jZSAtIDIsIDAsIGNsb25lLnNlY3Rpb25zLnNwbGljZShzZWN0aW9uLnNlcXVlbmNlIC0gMSwgMSlbMF0pO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudEdyb3VwKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuaWQgfHwgJycpO1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBkb2N1bWVudDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2FzdHIuaW5mbygnQ2Fubm90IG1vdmUgdG9wIHNlY3Rpb24gdXAnLCAnJywgeyBkaXNhYmxlVGltZU91dDogZmFsc2UsIHRpbWVPdXQ6IDUwMDAgfSk7XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QWJvdmVTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGlmIChzZWN0aW9uLnNlcXVlbmNlKSB7XG4gICAgICBsZXQgbmV3U2VjdGlvbiA9IHRoaXMubmV3U2VjdGlvbihzZWN0aW9uLnNlcXVlbmNlIC0gMSB8fCAxKTtcbiAgICAgIHRoaXMuaW5zZXJ0U2VjdGlvbihzZWN0aW9uLnNlcXVlbmNlIC0gMSwgbmV3U2VjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vdmVTZWN0aW9uRG93bihzZWN0aW9uOiBQb3J0YWxEb2N1bWVudFNlY3Rpb24pIHtcbiAgICBpZiAoc2VjdGlvbi5zZXF1ZW5jZSAmJiB0aGlzLmRvY3VtZW50ICYmIHRoaXMuZG9jdW1lbnQuc2VjdGlvbnMgJiYgc2VjdGlvbi5zZXF1ZW5jZSA8IHRoaXMuZG9jdW1lbnQuc2VjdGlvbnMubGVuZ3RoIC0gMSkge1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kb2N1bWVudCk7XG4gICAgICBpZiAoY2xvbmUuc2VjdGlvbnMpIHtcbiAgICAgICAgY2xvbmUuc2VjdGlvbnMuc3BsaWNlKHNlY3Rpb24uc2VxdWVuY2UsIDAsIGNsb25lLnNlY3Rpb25zLnNwbGljZShzZWN0aW9uLnNlcXVlbmNlIC0gMSwgMSlbMF0pO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudEdyb3VwKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuaWQgfHwgJycpO1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBkb2N1bWVudDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50b2FzdHIuaW5mbygnQ2Fubm90IG1vdmUgYm90dG9tIHNlY3Rpb24gZG93bicsICcnLCB7IGRpc2FibGVUaW1lT3V0OiBmYWxzZSwgdGltZU91dDogNTAwMCB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QmVsb3dTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGlmIChzZWN0aW9uLnNlcXVlbmNlKSB7XG4gICAgICBsZXQgbmV3U2VjdGlvbiA9IHRoaXMubmV3U2VjdGlvbihzZWN0aW9uLnNlcXVlbmNlICsgMSk7XG4gICAgICB0aGlzLmluc2VydFNlY3Rpb24oc2VjdGlvbi5zZXF1ZW5jZSwgbmV3U2VjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXdTZWN0aW9uKHNlcXVlbmNlOiBudW1iZXIpOiBQb3J0YWxEb2N1bWVudFNlY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICBkb2N1bWVudElEOiB0aGlzLmRvY3VtZW50Py5pZCxcbiAgICAgIHNlcXVlbmNlOiBzZXF1ZW5jZSxcbiAgICAgIG5hbWU6ICdTZWN0aW9uICcgKyBzZXF1ZW5jZSxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0dyb3VwIDEnLFxuICAgICAgICAgIHBhcnRzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdQYXJhZ3JhcGggMScsXG4gICAgICAgICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAnJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9XG4gIHByaXZhdGUgaW5zZXJ0U2VjdGlvbihpbnNlcnRJbmRleDogbnVtYmVyLCBuZXdTZWN0aW9uOiBQb3J0YWxEb2N1bWVudFNlY3Rpb24pIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBsYWJlbDogJ0luc2VydCBTZWN0aW9uJyxcbiAgICAgIHNlY3Rpb246IG5ld1NlY3Rpb25cbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhTZWN0aW9uTW9kYWxDb21wb25lbnQsIHsgaW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuICAgICg8U2VjdGlvbk1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLm9uU2VjdGlvblNhdmUuc3Vic2NyaWJlKHVwZGF0ZWRTZWN0aW9uID0+IHtcbiAgICAgIHRoaXMuYnVzeSA9IHRydWU7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmRvY3VtZW50KTtcbiAgICAgIGlmIChjbG9uZS5zZWN0aW9ucykge1xuICAgICAgICBjbG9uZS5zZWN0aW9ucy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIHVwZGF0ZWRTZWN0aW9uKTtcbiAgICAgICAgdGhpcy5yZXNlcXVlbmNlKGNsb25lKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRG9jdW1lbnQoY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRGNvdW1lbnRJRChjbG9uZS5pZCB8fCAnJyk7XG4gICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNlcXVlbmNlKGRvY3VtZW50OiBQb3J0YWxEb2N1bWVudCkge1xuICAgIGxldCBzZXF1ZW5jZSA9IDE7XG4gICAgaWYgKGRvY3VtZW50LnNlY3Rpb25zKSB7XG4gICAgICBkb2N1bWVudC5zZWN0aW9ucy5mb3JFYWNoKHNlY3Rpb24gPT4ge1xuICAgICAgICBzZWN0aW9uLnNlcXVlbmNlID0gc2VxdWVuY2UrKztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdEZWxldGUgU2VjdGlvbicsXG4gICAgICBib2R5VGV4dDogJ0RlbGV0ZSBTZWN0aW9uICcgKyBzZWN0aW9uLm5hbWUgKyAnPycsXG4gICAgICBjb25maXJtQnRuTGFiZWw6ICdZZXMnLFxuICAgICAgY2FuY2VsQnRuTGFiZWw6ICdObydcbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUsIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIGxldCBjbG9uZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZG9jdW1lbnQpO1xuICAgICAgaWYgKGNsb25lLnNlY3Rpb25zKSB7XG4gICAgICAgIGNsb25lLnNlY3Rpb25zID0gY2xvbmUuc2VjdGlvbnMuZmlsdGVyKGtlZXAgPT4ge1xuICAgICAgICAgIGtlZXAuaWQgIT0gc2VjdGlvbi5pZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVzZXF1ZW5jZShjbG9uZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50KGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmRlbGV0ZURvY3VtZW50U2VjdGlvbihzZWN0aW9uKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRGNvdW1lbnRJRChjbG9uZS5pZCB8fCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgZGVsZXRpbmcgc2VjdGlvbjogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB1cGRhdGluZyBkb2N1bWVudDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVkaXRTZWN0aW9uKHNlY3Rpb246IFBvcnRhbERvY3VtZW50U2VjdGlvbikge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGxhYmVsOiAnRWRpdCBTZWN0aW9uIEF0dHJpYnV0ZXMnLFxuICAgICAgc2VjdGlvbjogc2VjdGlvblxuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KFNlY3Rpb25Nb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUsIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG4gICAgKDxTZWN0aW9uTW9kYWxDb21wb25lbnQ+bW9kYWwuY29udGVudCkub25TZWN0aW9uU2F2ZS5zdWJzY3JpYmUodXBkYXRlZFNlY3Rpb24gPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50U2VjdGlvbih1cGRhdGVkU2VjdGlvbikuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5idXN5ID0gZmFsc2U7XG4gICAgICB9LCBlcnIgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwZGF0aW5nIHNlY3Rpb246ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cImRvY3VtZW50XCI+XG4gICAgPGRpdiAqbmdJZj1cImRvY3VtZW50LnNlY3Rpb25zICYmIGRvY3VtZW50LnNlY3Rpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImluc2VydEJlbG93U2VjdGlvbihkb2N1bWVudC5zZWN0aW9uc1tkb2N1bWVudC5zZWN0aW9ucy5sZW5ndGgtMV0pXCI+XG4gICAgICAgICAgICAgICAgICAgIEFkZCBuZXcgc2VjdGlvblxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiIGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPHRhYnNldCAjZG9jdW1lbnRTZWN0aW9uVGFicz5cbiAgICAgICAgICAgICAgICAgICAgPHRhYiAqbmdGb3I9XCJsZXQgcyBvZiBkb2N1bWVudC5zZWN0aW9uczsgbGV0IGkgPSBpbmRleDtcIiAoc2VsZWN0VGFiKT1cIm9uU2VjdGlvblRhYlNlbGVjdChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cImFsbG93UmVtb3ZlU2VjdGlvblwiIChyZW1vdmVkKT1cImRlbGV0ZVNlY3Rpb24ocylcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0YWJIZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3MubmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dTZWN0aW9uT3B0aW9uc1wiPiZuYnNwOzxpIGNsYXNzPVwiYmkgYmktcGVuY2lsLWZpbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0U2VjdGlvbihzKVwiPjwvaT4gJm5ic3A7PGkgY2xhc3M9XCJiaSBiaS14LWxnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VjdGlvbihzKVwiPjwvaT48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvZXBhLWRvY3VtZW50LXNlY3Rpb24gW3NlY3Rpb25dPVwic1wiIChvbk1vdmVVcCk9XCJtb3ZlU2VjdGlvblVwKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEFib3ZlKT1cImluc2VydEFib3ZlU2VjdGlvbigkZXZlbnQpXCIgKG9uTW92ZURvd24pPVwibW92ZVNlY3Rpb25Eb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEJlbG93KT1cImluc2VydEJlbG93U2VjdGlvbigkZXZlbnQpXCIgKG9uRGVsZXRlKT1cImRlbGV0ZVNlY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vZXBhLWRvY3VtZW50LXNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvdGFiPlxuICAgICAgICAgICAgICAgIDwvdGFic2V0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,7 +0,0 @@
1
- export var DocumentEventEntityType;
2
- (function (DocumentEventEntityType) {
3
- DocumentEventEntityType[DocumentEventEntityType["Section"] = 0] = "Section";
4
- DocumentEventEntityType[DocumentEventEntityType["Group"] = 1] = "Group";
5
- DocumentEventEntityType[DocumentEventEntityType["Part"] = 2] = "Part";
6
- })(DocumentEventEntityType || (DocumentEventEntityType = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZXZlbnQtZW50aXR5LXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWV2ZW50LWVudGl0eS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHVCQUlYO0FBSkQsV0FBWSx1QkFBdUI7SUFDL0IsMkVBQU8sQ0FBQTtJQUNQLHVFQUFLLENBQUE7SUFDTCxxRUFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLHVCQUF1QixLQUF2Qix1QkFBdUIsUUFJbEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEb2N1bWVudEV2ZW50RW50aXR5VHlwZSB7XG4gICAgU2VjdGlvbixcbiAgICBHcm91cCxcbiAgICBQYXJ0XG59Il19
@@ -1,7 +0,0 @@
1
- export var DocumentEventType;
2
- (function (DocumentEventType) {
3
- DocumentEventType[DocumentEventType["Create"] = 0] = "Create";
4
- DocumentEventType[DocumentEventType["Update"] = 1] = "Update";
5
- DocumentEventType[DocumentEventType["Delete"] = 2] = "Delete";
6
- })(DocumentEventType || (DocumentEventType = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZXZlbnQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvZG9jdW1lbnQvZG9jdW1lbnQtZXZlbnQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFJWDtBQUpELFdBQVksaUJBQWlCO0lBQ3pCLDZEQUFNLENBQUE7SUFDTiw2REFBTSxDQUFBO0lBQ04sNkRBQU0sQ0FBQTtBQUNWLENBQUMsRUFKVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBSTVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRG9jdW1lbnRFdmVudFR5cGUge1xuICAgIENyZWF0ZSxcbiAgICBVcGRhdGUsXG4gICAgRGVsZXRlXG59Il19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudEV2ZW50RW50aXR5VHlwZSB9IGZyb20gXCIuL2RvY3VtZW50LWV2ZW50LWVudGl0eS10eXBlXCI7XG5pbXBvcnQgeyBEb2N1bWVudEV2ZW50VHlwZSB9IGZyb20gXCIuL2RvY3VtZW50LWV2ZW50LXR5cGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudEV2ZW50IHtcbiAgICBldmVudFR5cGU/OiBEb2N1bWVudEV2ZW50VHlwZTtcbiAgICBlbnRpdHlUeXBlPzogRG9jdW1lbnRFdmVudEVudGl0eVR5cGU7XG4gICAgZW50aXR5SUQ/OiBzdHJpbmc7XG4gICAgY29uZmlybWF0aW9uTWVzc2FnZT86IHN0cmluZztcbiAgICBlbnRpdHk/OiBhbnk7XG59Il19