@ohioepa/oepa-ui-lib 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/esm2022/lib/account-search-input/account-search-input.component.mjs +3 -3
  2. package/esm2022/lib/account-search-modal/account-search-modal.component.mjs +3 -3
  3. package/esm2022/lib/action-btn/action-btn.component.mjs +3 -3
  4. package/esm2022/lib/action-btn-modal/action-btn-modal.component.mjs +3 -3
  5. package/esm2022/lib/address/address.component.mjs +3 -3
  6. package/esm2022/lib/address/oepa-address.service.mjs +3 -3
  7. package/esm2022/lib/blank/blank.component.mjs +3 -3
  8. package/esm2022/lib/checkbox/checkbox.component.mjs +3 -3
  9. package/esm2022/lib/checkbox-input/checkbox-input.component.mjs +3 -3
  10. package/esm2022/lib/comment-modal/comment-modal.component.mjs +3 -3
  11. package/esm2022/lib/common-forms.module.mjs +9 -36
  12. package/esm2022/lib/confirmation-modal/confirmation-modal.component.mjs +3 -3
  13. package/esm2022/lib/contact/contact.component.mjs +3 -3
  14. package/esm2022/lib/date-input/date-input.component.mjs +3 -3
  15. package/esm2022/lib/date-input-modal/date-input-modal.component.mjs +3 -3
  16. package/esm2022/lib/datepicker/datepicker.component.mjs +3 -3
  17. package/esm2022/lib/daterangepicker/daterangepicker.component.mjs +3 -3
  18. package/esm2022/lib/dual-list-box/array.pipes.mjs +6 -6
  19. package/esm2022/lib/dual-list-box/dual-list-box.component.mjs +3 -3
  20. package/esm2022/lib/ebiz-address/ebiz-address.component.mjs +3 -3
  21. package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +3 -3
  22. package/esm2022/lib/edoc-attachment/edoc-attachment.service.mjs +3 -3
  23. package/esm2022/lib/entity/entity.service.mjs +3 -3
  24. package/esm2022/lib/entity/organization-create-modal/organization-create-modal.component.mjs +3 -3
  25. package/esm2022/lib/entity/organization-search-input/organization-search-input.component.mjs +3 -3
  26. package/esm2022/lib/entity/organization-search-modal/organization-search-modal.component.mjs +5 -5
  27. package/esm2022/lib/entity/person-create-modal/person-create-modal.component.mjs +3 -3
  28. package/esm2022/lib/entity/person-search-input/person-search-input.component.mjs +3 -3
  29. package/esm2022/lib/entity/person-search-modal/person-search-modal.component.mjs +5 -5
  30. package/esm2022/lib/entity/place-create-modal/place-create-modal.component.mjs +3 -3
  31. package/esm2022/lib/entity/place-search-input/place-search-input.component.mjs +3 -3
  32. package/esm2022/lib/entity/place-search-modal/place-search-modal.component.mjs +5 -5
  33. package/esm2022/lib/file-upload/file-upload.component.mjs +3 -3
  34. package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +3 -3
  35. package/esm2022/lib/lynx-image-upload/lynx.service.mjs +3 -3
  36. package/esm2022/lib/message/message.component.mjs +3 -3
  37. package/esm2022/lib/message-list/message-list.component.mjs +3 -3
  38. package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +3 -3
  39. package/esm2022/lib/notes-modal/notes-modal.component.mjs +3 -3
  40. package/esm2022/lib/numeric-input/numeric-input.component.mjs +3 -3
  41. package/esm2022/lib/numeric-input.directive.mjs +3 -3
  42. package/esm2022/lib/oepa-error-message/oepa-error-message.component.mjs +3 -3
  43. package/esm2022/lib/oepa-forms.service.mjs +3 -3
  44. package/esm2022/lib/oepa-wait-message/oepa-wait-message.component.mjs +3 -3
  45. package/esm2022/lib/parameter/parameter.service.mjs +3 -3
  46. package/esm2022/lib/params-help-button/params-help-button.component.mjs +3 -3
  47. package/esm2022/lib/phone-number/phone-number.component.mjs +3 -3
  48. package/esm2022/lib/pin-modal/oepa-pin.service.mjs +3 -3
  49. package/esm2022/lib/pin-modal/pin-modal.component.mjs +3 -3
  50. package/esm2022/lib/select-input/select-input.component.mjs +3 -3
  51. package/esm2022/lib/server-timeout-modal/server-timeout-modal.component.mjs +3 -3
  52. package/esm2022/lib/shopping-cart/shopping-cart-summary/shopping-cart-summary.component.mjs +3 -3
  53. package/esm2022/lib/shopping-cart/shopping-cart-view/shopping-cart-view.component.mjs +3 -3
  54. package/esm2022/lib/shopping-cart/shopping-cart.service.mjs +3 -3
  55. package/esm2022/lib/start-end-timepicker/start-end-timepicker.component.mjs +3 -3
  56. package/esm2022/lib/table/oepa-table-cell-classname.pipe.mjs +3 -3
  57. package/esm2022/lib/table/oepa-table-cell-colspan.pipe.mjs +3 -3
  58. package/esm2022/lib/table/oepa-table-cell-hidden.pipe.mjs +3 -3
  59. package/esm2022/lib/table/oepa-table-cell-icon-classname.pipe.mjs +3 -3
  60. package/esm2022/lib/table/oepa-table-cell-img-src.pipe.mjs +3 -3
  61. package/esm2022/lib/table/oepa-table-cell-inner-html.pipe.mjs +3 -3
  62. package/esm2022/lib/table/oepa-table-cell-input-component.pipe.mjs +3 -3
  63. package/esm2022/lib/table/oepa-table-cell-not-selectable.pipe.mjs +3 -3
  64. package/esm2022/lib/table/oepa-table-cell-value.pipe.mjs +3 -3
  65. package/esm2022/lib/table/oepa-table-filtering.directive.mjs +3 -3
  66. package/esm2022/lib/table/oepa-table-sorting.directive.mjs +3 -3
  67. package/esm2022/lib/table/p-table/p-table.component.mjs +3 -3
  68. package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +3 -3
  69. package/esm2022/lib/table/table-export.service.mjs +3 -3
  70. package/esm2022/lib/table/table-header-cell/table-header-cell.component.mjs +3 -3
  71. package/esm2022/lib/table/table.component.mjs +3 -3
  72. package/esm2022/lib/table/table.service.mjs +3 -3
  73. package/esm2022/lib/template-confirmation-modal/template-confirmation-modal.component.mjs +3 -3
  74. package/esm2022/lib/text-area-input/text-area-input.component.mjs +3 -3
  75. package/esm2022/lib/text-input/text-input.component.mjs +3 -3
  76. package/esm2022/lib/timeout-modal/timeout-modal.component.mjs +3 -3
  77. package/esm2022/lib/timepicker/timepicker.component.mjs +3 -3
  78. package/esm2022/lib/validation/validation.service.mjs +3 -3
  79. package/esm2022/lib/yes-no/yes-no.component.mjs +3 -3
  80. package/esm2022/lib/yes-no-boolean/yes-no.component.mjs +3 -3
  81. package/esm2022/lib/yes-no-other-input/yes-no-other-input.component.mjs +3 -3
  82. package/esm2022/lib/zip-code/zip-code.component.mjs +3 -3
  83. package/esm2022/public-api.mjs +1 -28
  84. package/fesm2022/ohioepa-oepa-ui-lib.mjs +495 -2519
  85. package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
  86. package/lib/common-forms.module.d.ts +70 -82
  87. package/ohioepa-oepa-ui-lib-1.2.0.tgz +0 -0
  88. package/package.json +3 -3
  89. package/public-api.d.ts +0 -27
  90. package/esm2022/lib/document/document-editor/document-editor.component.mjs +0 -225
  91. package/esm2022/lib/document/document-event-entity-type.mjs +0 -7
  92. package/esm2022/lib/document/document-event-type.mjs +0 -7
  93. package/esm2022/lib/document/document-event.mjs +0 -2
  94. package/esm2022/lib/document/document-group/document-group.component.mjs +0 -210
  95. package/esm2022/lib/document/document-part/document-part.component.mjs +0 -19
  96. package/esm2022/lib/document/document-part-editor/document-part-editor.component.mjs +0 -296
  97. package/esm2022/lib/document/document-placeholder-modal/document-placeholder-modal.component.mjs +0 -49
  98. package/esm2022/lib/document/document-section/document-section.component.mjs +0 -226
  99. package/esm2022/lib/document/document.service.mjs +0 -325
  100. package/esm2022/lib/document/group-modal/group-modal.component.mjs +0 -46
  101. package/esm2022/lib/document/part-modal/part-modal.component.mjs +0 -48
  102. package/esm2022/lib/document/portal-document-class.mjs +0 -2
  103. package/esm2022/lib/document/portal-document-group.mjs +0 -2
  104. package/esm2022/lib/document/portal-document-part.mjs +0 -2
  105. package/esm2022/lib/document/portal-document-placeholder.mjs +0 -2
  106. package/esm2022/lib/document/portal-document-section.mjs +0 -2
  107. package/esm2022/lib/document/portal-document-text.mjs +0 -2
  108. package/esm2022/lib/document/portal-document-type.mjs +0 -2
  109. package/esm2022/lib/document/portal-document.mjs +0 -2
  110. package/esm2022/lib/document/portal-email-attachment-type.mjs +0 -2
  111. package/esm2022/lib/document/portal-email-attachment.mjs +0 -2
  112. package/esm2022/lib/document/portal-email-filter.mjs +0 -2
  113. package/esm2022/lib/document/portal-email.mjs +0 -2
  114. package/esm2022/lib/document/section-modal/section-modal.component.mjs +0 -46
  115. package/esm2022/lib/esri-map/esri-map.component.mjs +0 -416
  116. package/esm2022/lib/ohio-lat-long/ohio-lat-long.component.mjs +0 -176
  117. package/lib/document/document-editor/document-editor.component.d.ts +0 -34
  118. package/lib/document/document-event-entity-type.d.ts +0 -5
  119. package/lib/document/document-event-type.d.ts +0 -5
  120. package/lib/document/document-event.d.ts +0 -9
  121. package/lib/document/document-group/document-group.component.d.ts +0 -38
  122. package/lib/document/document-part/document-part.component.d.ts +0 -10
  123. package/lib/document/document-part-editor/document-part-editor.component.d.ts +0 -46
  124. package/lib/document/document-placeholder-modal/document-placeholder-modal.component.d.ts +0 -19
  125. package/lib/document/document-section/document-section.component.d.ts +0 -37
  126. package/lib/document/document.service.d.ts +0 -90
  127. package/lib/document/group-modal/group-modal.component.d.ts +0 -20
  128. package/lib/document/part-modal/part-modal.component.d.ts +0 -20
  129. package/lib/document/portal-document-class.d.ts +0 -10
  130. package/lib/document/portal-document-group.d.ts +0 -15
  131. package/lib/document/portal-document-part.d.ts +0 -22
  132. package/lib/document/portal-document-placeholder.d.ts +0 -12
  133. package/lib/document/portal-document-section.d.ts +0 -13
  134. package/lib/document/portal-document-text.d.ts +0 -7
  135. package/lib/document/portal-document-type.d.ts +0 -15
  136. package/lib/document/portal-document.d.ts +0 -27
  137. package/lib/document/portal-email-attachment-type.d.ts +0 -6
  138. package/lib/document/portal-email-attachment.d.ts +0 -12
  139. package/lib/document/portal-email-filter.d.ts +0 -12
  140. package/lib/document/portal-email.d.ts +0 -18
  141. package/lib/document/section-modal/section-modal.component.d.ts +0 -20
  142. package/lib/esri-map/esri-map.component.d.ts +0 -41
  143. package/lib/ohio-lat-long/ohio-lat-long.component.d.ts +0 -63
  144. package/ohioepa-oepa-ui-lib-1.1.0.tgz +0 -0
@@ -1,210 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import { GroupModalComponent } from '../group-modal/group-modal.component';
3
- import { DocumentEventType } from '../document-event-type';
4
- import { DocumentEventEntityType } from '../document-event-entity-type';
5
- import { ConfirmationModalComponent } from '../../confirmation-modal/confirmation-modal.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "ngx-bootstrap/modal";
8
- import * as i2 from "ngx-toastr";
9
- import * as i3 from "../document.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "ngx-bootstrap/tooltip";
12
- import * as i6 from "../document-part-editor/document-part-editor.component";
13
- export class DocumentGroupComponent {
14
- modalService;
15
- toastr;
16
- documentService;
17
- group;
18
- onMoveUp = new EventEmitter();
19
- onInsertAbove = new EventEmitter();
20
- onMoveDown = new EventEmitter();
21
- onInsertBelow = new EventEmitter();
22
- onDelete = new EventEmitter();
23
- busy = false;
24
- constructor(modalService, toastr, documentService) {
25
- this.modalService = modalService;
26
- this.toastr = toastr;
27
- this.documentService = documentService;
28
- }
29
- ngOnInit() {
30
- }
31
- moveUp() {
32
- this.onMoveUp.emit(this.group);
33
- }
34
- insertAbove() {
35
- this.onInsertAbove.emit(this.group);
36
- }
37
- moveDown() {
38
- this.onMoveDown.emit(this.group);
39
- }
40
- insertBelow() {
41
- this.onInsertBelow.emit(this.group);
42
- }
43
- delete() {
44
- this.onDelete.emit(this.group);
45
- }
46
- movePartUp(part) {
47
- if (part.sequence && part.sequence > 1) {
48
- let clone = Object.assign({}, this.group);
49
- if (clone.parts && clone.documentID) {
50
- clone.parts.splice(part.sequence - 2, 0, clone.parts.splice(part.sequence - 1, 1)[0]);
51
- this.resequence(clone);
52
- this.documentService.updateDocumentGroup(clone).subscribe({
53
- next: () => {
54
- this.documentService.updateDcoumentID(clone.documentID || '');
55
- }, error: err => {
56
- this.toastr.error('Failed updating group: ' + err, 'ERROR');
57
- }
58
- });
59
- }
60
- }
61
- }
62
- insertAbovePart(part) {
63
- if (part.sequence) {
64
- let newPart = this.newPart(part.sequence - 1 || 1);
65
- this.insertPart(part.sequence - 1, newPart);
66
- }
67
- }
68
- movePartDown(part) {
69
- if (part.sequence && this.group.parts && part.sequence < this.group.parts.length) {
70
- let clone = Object.assign({}, this.group);
71
- if (clone.parts && clone.documentID) {
72
- clone.parts.splice(part.sequence, 0, clone.parts.splice(part.sequence - 1, 1)[0]);
73
- this.resequence(clone);
74
- this.documentService.updateDocumentGroup(clone).subscribe({
75
- next: () => {
76
- this.documentService.updateDcoumentID(clone.documentID || '');
77
- }, error: err => {
78
- this.toastr.error('Failed updating group: ' + err, 'ERROR');
79
- }
80
- });
81
- }
82
- }
83
- }
84
- insertBelowPart(part) {
85
- if (part.sequence) {
86
- let newPart = this.newPart(part.sequence + 1);
87
- this.insertPart(part.sequence, newPart);
88
- }
89
- }
90
- newPart(sequence) {
91
- return {
92
- groupID: this.group.id,
93
- documentID: this.group.documentID,
94
- sequence: sequence,
95
- name: 'Paragraph ' + sequence,
96
- display: true,
97
- required: true
98
- };
99
- }
100
- insertPart(insertIndex, newPart) {
101
- const initialState = {
102
- headerText: 'Insert Paragraph',
103
- bodyText: 'Insert new paragraph?'
104
- };
105
- let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
106
- modal.content.confirmClicked.subscribe(() => {
107
- let clone = Object.assign({}, this.group);
108
- if (clone.parts && clone.documentID) {
109
- clone.parts.splice(insertIndex, 0, newPart);
110
- this.resequence(clone);
111
- this.documentService.createDocumentPart(newPart).subscribe({
112
- next: partID => {
113
- newPart.id = partID;
114
- this.documentService.updateDocumentGroup(clone).subscribe({
115
- next: () => {
116
- this.documentService.updateDcoumentID(clone.documentID || '');
117
- }, error: err => {
118
- this.toastr.error('Failed updating group: ' + err, 'ERROR');
119
- }
120
- });
121
- }, error: err => {
122
- this.toastr.error('Failed inserting paragraph: ' + err, 'ERROR');
123
- }
124
- });
125
- }
126
- });
127
- }
128
- deletePart(part) {
129
- let bodyText = 'Delete paragraph ' + part.name + '?';
130
- const eventOverride = this.documentService.isOverriddenEvent({ eventType: DocumentEventType.Delete, entityType: DocumentEventEntityType.Part });
131
- if (eventOverride && eventOverride.confirmationMessage) {
132
- bodyText = eventOverride.confirmationMessage;
133
- }
134
- const initialState = {
135
- headerText: 'Delete Paragraph',
136
- bodyText: bodyText,
137
- confirmBtnLabel: 'Yes',
138
- cancelBtnLabel: 'No'
139
- };
140
- let modal = this.modalService.show(ConfirmationModalComponent, { initialState, ignoreBackdropClick: true });
141
- modal.content.confirmClicked.subscribe(() => {
142
- this.doDeletePart(part);
143
- });
144
- }
145
- doDeletePart(part) {
146
- let clone = Object.assign({}, this.group);
147
- if (clone.parts && clone.documentID) {
148
- clone.parts = clone.parts.filter(keep => {
149
- keep.id != part.id;
150
- });
151
- this.resequence(clone);
152
- this.documentService.updateDocumentGroup(clone).subscribe({
153
- next: () => {
154
- this.documentService.deleteDocumentPart(part).subscribe({
155
- next: () => {
156
- this.documentService.updateDcoumentID(clone.documentID || '');
157
- }, error: err => {
158
- this.toastr.error('Failed deleting paragraph: ' + err, 'ERROR');
159
- }
160
- });
161
- }, error: err => {
162
- this.toastr.error('Failed updating group: ' + err, 'ERROR');
163
- }
164
- });
165
- }
166
- }
167
- resequence(group) {
168
- let sequence = 1;
169
- if (group.parts) {
170
- group.parts.forEach(part => {
171
- part.sequence = sequence++;
172
- });
173
- }
174
- }
175
- editGroup(group) {
176
- const initialState = {
177
- label: 'Edit Group Attributes',
178
- group: group
179
- };
180
- let modal = this.modalService.show(GroupModalComponent, { initialState, ignoreBackdropClick: true });
181
- modal.content.onGroupSave.subscribe(updatedGroup => {
182
- this.busy = true;
183
- this.documentService.updateDocumentGroup(updatedGroup).subscribe(() => {
184
- this.busy = false;
185
- }, err => {
186
- this.toastr.error('Failed updating group: ' + err, 'ERROR');
187
- this.busy = false;
188
- });
189
- });
190
- }
191
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentGroupComponent, deps: [{ token: i1.BsModalService }, { token: i2.ToastrService }, { token: i3.DocumentService }], target: i0.ɵɵFactoryTarget.Component });
192
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentGroupComponent, selector: "oepa-document-group", inputs: { group: "group" }, outputs: { onMoveUp: "onMoveUp", onInsertAbove: "onInsertAbove", onMoveDown: "onMoveDown", onInsertBelow: "onInsertBelow", onDelete: "onDelete" }, ngImport: i0, template: "<div *ngIf=\"group\" class=\"card\">\n <div *ngIf=\"!group.isCollapsed\" class=\"row\">\n <div class=\"col-sm-10\">\n <div *ngIf=\"group.parts && group.parts.length > 0\">\n <div *ngFor=\"let p of group.parts\" class=\"row\">\n <div class=\"col-sm-12\">\n <oepa-document-part-editor [part]=\"p\" (onMoveUp)=\"movePartUp($event)\"\n (onInsertAbove)=\"insertAbovePart($event)\" (onMoveDown)=\"movePartDown($event)\"\n (onInsertBelow)=\"insertBelowPart($event)\" (onDelete)=\"deletePart($event)\">\n </oepa-document-part-editor>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-sm-2 alert alert-info\" role=\"alert\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <button [id]=\"'deleteGroup'+group.sequence\" class=\"btn\" (click)=\"this.delete()\" tooltip=\"Delete Group\">\n <i class=\"bi bi-trash\"></i> \n </button>\n &nbsp;{{group.name || ''}}\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupUp'+group.sequence\" class=\"btn\" (click)=\"moveUp()\" tooltip=\"Move Group Up\">\n <i class=\"bi bi-chevron-double-up\"></i>\n </button>\n <button [id]=\"'insertaboveGroup'+group.sequence\" class=\"btn\" (click)=\"insertAbove()\" tooltip=\"Insert Group Above\">\n <i class=\"bi bi-arrow-up-circle\"></i>\n </button>\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupDown'+group.sequence\" class=\"btn\" (click)=\"moveDown()\" tooltip=\"Move Group Down\">\n <i class=\"bi bi-chevron-double-down\"></i>\n </button>\n <button [id]=\"'insertBelowGroup'+group.sequence\" class=\"btn\" (click)=\"insertBelow()\" tooltip=\"Insert Group Below\">\n <i class=\"bi bi-arrow-down-circle\"></i>\n </button>\n </div>\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.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i6.DocumentPartEditorComponent, selector: "oepa-document-part-editor", inputs: ["part", "editing"], outputs: ["partChange", "onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
193
- }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentGroupComponent, decorators: [{
195
- type: Component,
196
- args: [{ selector: 'oepa-document-group', template: "<div *ngIf=\"group\" class=\"card\">\n <div *ngIf=\"!group.isCollapsed\" class=\"row\">\n <div class=\"col-sm-10\">\n <div *ngIf=\"group.parts && group.parts.length > 0\">\n <div *ngFor=\"let p of group.parts\" class=\"row\">\n <div class=\"col-sm-12\">\n <oepa-document-part-editor [part]=\"p\" (onMoveUp)=\"movePartUp($event)\"\n (onInsertAbove)=\"insertAbovePart($event)\" (onMoveDown)=\"movePartDown($event)\"\n (onInsertBelow)=\"insertBelowPart($event)\" (onDelete)=\"deletePart($event)\">\n </oepa-document-part-editor>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-sm-2 alert alert-info\" role=\"alert\">\n <div class=\"row\">\n <div class=\"col-sm-12\">\n <button [id]=\"'deleteGroup'+group.sequence\" class=\"btn\" (click)=\"this.delete()\" tooltip=\"Delete Group\">\n <i class=\"bi bi-trash\"></i> \n </button>\n &nbsp;{{group.name || ''}}\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupUp'+group.sequence\" class=\"btn\" (click)=\"moveUp()\" tooltip=\"Move Group Up\">\n <i class=\"bi bi-chevron-double-up\"></i>\n </button>\n <button [id]=\"'insertaboveGroup'+group.sequence\" class=\"btn\" (click)=\"insertAbove()\" tooltip=\"Insert Group Above\">\n <i class=\"bi bi-arrow-up-circle\"></i>\n </button>\n </div>\n <div class=\"col-sm-12\">\n <button [id]=\"'moveGroupDown'+group.sequence\" class=\"btn\" (click)=\"moveDown()\" tooltip=\"Move Group Down\">\n <i class=\"bi bi-chevron-double-down\"></i>\n </button>\n <button [id]=\"'insertBelowGroup'+group.sequence\" class=\"btn\" (click)=\"insertBelow()\" tooltip=\"Insert Group Below\">\n <i class=\"bi bi-arrow-down-circle\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n</div>" }]
197
- }], ctorParameters: () => [{ type: i1.BsModalService }, { type: i2.ToastrService }, { type: i3.DocumentService }], propDecorators: { group: [{
198
- type: Input
199
- }], onMoveUp: [{
200
- type: Output
201
- }], onInsertAbove: [{
202
- type: Output
203
- }], onMoveDown: [{
204
- type: Output
205
- }], onInsertBelow: [{
206
- type: Output
207
- }], onDelete: [{
208
- type: Output
209
- }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb2VwYS11aS1saWIvc3JjL2xpYi9kb2N1bWVudC9kb2N1bWVudC1ncm91cC9kb2N1bWVudC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LWdyb3VwL2RvY3VtZW50LWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7O0FBT25HLE1BQU0sT0FBTyxzQkFBc0I7SUFZYjtJQUNWO0lBQ0E7SUFiRCxLQUFLLENBQXVCO0lBRTNCLFFBQVEsR0FBdUMsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFDdkYsYUFBYSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUMzRixVQUFVLEdBQXNDLElBQUksWUFBWSxFQUF1QixDQUFDO0lBQ3hGLGFBQWEsR0FBc0MsSUFBSSxZQUFZLEVBQXVCLENBQUM7SUFDM0YsUUFBUSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztJQUd6RixJQUFJLEdBQUcsS0FBSyxDQUFDO0lBRXBCLFlBQW9CLFlBQTRCLEVBQ3RDLE1BQXFCLEVBQ3JCLGVBQWdDO1FBRnRCLGlCQUFZLEdBQVosWUFBWSxDQUFn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RkFBdEIsc0JBQXNCLDBPQ2pCbkMsazhFQXlDTTs7NEZEeEJPLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxxQkFBcUI7NklBS3RCLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3J0YWxEb2N1bWVudEdyb3VwIH0gZnJvbSAnLi4vcG9ydGFsLWRvY3VtZW50LWdyb3VwJztcbmltcG9ydCB7IFBvcnRhbERvY3VtZW50UGFydCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudC1wYXJ0JztcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uL2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEdyb3VwTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9ncm91cC1tb2RhbC9ncm91cC1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRFdmVudFR5cGUgfSBmcm9tICcuLi9kb2N1bWVudC1ldmVudC10eXBlJztcbmltcG9ydCB7IERvY3VtZW50RXZlbnRFbnRpdHlUeXBlIH0gZnJvbSAnLi4vZG9jdW1lbnQtZXZlbnQtZW50aXR5LXR5cGUnO1xuaW1wb3J0IHsgRG9jdW1lbnRFdmVudCB9IGZyb20gJy4uL2RvY3VtZW50LWV2ZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29uZmlybWF0aW9uLW1vZGFsL2NvbmZpcm1hdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWRvY3VtZW50LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZG9jdW1lbnQtZ3JvdXAuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBncm91cCE6IFBvcnRhbERvY3VtZW50R3JvdXA7XG5cbiAgQE91dHB1dCgpIG9uTW92ZVVwOiAgRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25JbnNlcnRBYm92ZTogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25Nb3ZlRG93bjogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25JbnNlcnRCZWxvdzogRXZlbnRFbWl0dGVyPFBvcnRhbERvY3VtZW50R3JvdXA+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPigpO1xuICBAT3V0cHV0KCkgb25EZWxldGU6IEV2ZW50RW1pdHRlcjxQb3J0YWxEb2N1bWVudEdyb3VwPiA9IG5ldyBFdmVudEVtaXR0ZXI8UG9ydGFsRG9jdW1lbnRHcm91cD4oKTtcblxuXG4gIHB1YmxpYyBidXN5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgcHVibGljIG1vdmVVcCgpIHtcbiAgICB0aGlzLm9uTW92ZVVwLmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QWJvdmUoKSB7XG4gICAgdGhpcy5vbkluc2VydEFib3ZlLmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgbW92ZURvd24oKSB7XG4gICAgdGhpcy5vbk1vdmVEb3duLmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgaW5zZXJ0QmVsb3coKSB7XG4gICAgdGhpcy5vbkluc2VydEJlbG93LmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKCkge1xuICAgIHRoaXMub25EZWxldGUuZW1pdCh0aGlzLmdyb3VwKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlUGFydFVwKHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIGlmIChwYXJ0LnNlcXVlbmNlICYmIHBhcnQuc2VxdWVuY2UgPiAxKSB7XG4gICAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyb3VwKTtcbiAgICAgIGlmIChjbG9uZS5wYXJ0cyAmJiBjbG9uZS5kb2N1bWVudElEKSB7XG4gICAgICAgIGNsb25lLnBhcnRzLnNwbGljZShwYXJ0LnNlcXVlbmNlIC0gMiwgMCwgY2xvbmUucGFydHMuc3BsaWNlKHBhcnQuc2VxdWVuY2UgLSAxLCAxKVswXSk7XG4gICAgICAgIHRoaXMucmVzZXF1ZW5jZShjbG9uZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50R3JvdXAoY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgICB9fSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluc2VydEFib3ZlUGFydChwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpIHtcbiAgICBpZiAocGFydC5zZXF1ZW5jZSkge1xuICAgICAgbGV0IG5ld1BhcnQgPSB0aGlzLm5ld1BhcnQocGFydC5zZXF1ZW5jZSAtIDEgfHwgMSk7XG4gICAgICB0aGlzLmluc2VydFBhcnQocGFydC5zZXF1ZW5jZSAtMSwgbmV3UGFydCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vdmVQYXJ0RG93bihwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpIHtcbiAgICBpZiAocGFydC5zZXF1ZW5jZSAmJiB0aGlzLmdyb3VwLnBhcnRzICYmIHBhcnQuc2VxdWVuY2UgPCB0aGlzLmdyb3VwLnBhcnRzLmxlbmd0aCkge1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cCk7XG4gICAgICBpZiAoY2xvbmUucGFydHMgJiYgY2xvbmUuZG9jdW1lbnRJRCkge1xuICAgICAgICBjbG9uZS5wYXJ0cy5zcGxpY2UocGFydC5zZXF1ZW5jZSwgMCwgY2xvbmUucGFydHMuc3BsaWNlKHBhcnQuc2VxdWVuY2UgLSAgMSwgMSlbMF0pO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEb2N1bWVudEdyb3VwKGNsb25lKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGVEY291bWVudElEKGNsb25lLmRvY3VtZW50SUQgfHwgJycpO1xuICAgICAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwZGF0aW5nIGdyb3VwOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgfX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbnNlcnRCZWxvd1BhcnQocGFydDogUG9ydGFsRG9jdW1lbnRQYXJ0KSB7XG4gICAgaWYgKHBhcnQuc2VxdWVuY2UpIHtcbiAgICAgIGxldCBuZXdQYXJ0ID0gdGhpcy5uZXdQYXJ0KHBhcnQuc2VxdWVuY2UgKyAxKTtcbiAgICAgIHRoaXMuaW5zZXJ0UGFydChwYXJ0LnNlcXVlbmNlLCBuZXdQYXJ0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5ld1BhcnQoc2VxdWVuY2U6IG51bWJlcikgOiBQb3J0YWxEb2N1bWVudFBhcnQge1xuICAgIHJldHVybiB7XG4gICAgICBncm91cElEOiB0aGlzLmdyb3VwLmlkLFxuICAgICAgZG9jdW1lbnRJRDogdGhpcy5ncm91cC5kb2N1bWVudElELFxuICAgICAgc2VxdWVuY2U6IHNlcXVlbmNlLFxuICAgICAgbmFtZTogJ1BhcmFncmFwaCAnICsgc2VxdWVuY2UsXG4gICAgICBkaXNwbGF5OiB0cnVlLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBpbnNlcnRQYXJ0KGluc2VydEluZGV4OiBudW1iZXIsIG5ld1BhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdJbnNlcnQgUGFyYWdyYXBoJyxcbiAgICAgIGJvZHlUZXh0OiAnSW5zZXJ0IG5ldyBwYXJhZ3JhcGg/J1xuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgbGV0IGNsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ncm91cCk7XG4gICAgICBpZiAoY2xvbmUucGFydHMgJiYgY2xvbmUuZG9jdW1lbnRJRCkge1xuICAgICAgICBjbG9uZS5wYXJ0cy5zcGxpY2UoaW5zZXJ0SW5kZXgsIDAsIG5ld1BhcnQpO1xuICAgICAgICB0aGlzLnJlc2VxdWVuY2UoY2xvbmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5jcmVhdGVEb2N1bWVudFBhcnQobmV3UGFydCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiBwYXJ0SUQgPT4ge1xuICAgICAgICAgIG5ld1BhcnQuaWQgPSBwYXJ0SUQ7XG4gICAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UudXBkYXRlRG9jdW1lbnRHcm91cChjbG9uZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwZGF0aW5nIGdyb3VwOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgICB9fSk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgaW5zZXJ0aW5nIHBhcmFncmFwaDogJyArIGVyciwgJ0VSUk9SJyk7XG4gICAgICAgIH19KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVQYXJ0KHBhcnQ6IFBvcnRhbERvY3VtZW50UGFydCkge1xuICAgIGxldCBib2R5VGV4dCA9ICdEZWxldGUgcGFyYWdyYXBoICcgKyBwYXJ0Lm5hbWUgKyAnPyc7XG4gICAgY29uc3QgZXZlbnRPdmVycmlkZTogRG9jdW1lbnRFdmVudCB8IHVuZGVmaW5lZCA9IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmlzT3ZlcnJpZGRlbkV2ZW50KHtldmVudFR5cGU6IERvY3VtZW50RXZlbnRUeXBlLkRlbGV0ZSwgZW50aXR5VHlwZTogRG9jdW1lbnRFdmVudEVudGl0eVR5cGUuUGFydH0pO1xuICAgIGlmIChldmVudE92ZXJyaWRlICYmIGV2ZW50T3ZlcnJpZGUuY29uZmlybWF0aW9uTWVzc2FnZSkge1xuICAgICAgYm9keVRleHQgPSBldmVudE92ZXJyaWRlLmNvbmZpcm1hdGlvbk1lc3NhZ2U7XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdEZWxldGUgUGFyYWdyYXBoJyxcbiAgICAgIGJvZHlUZXh0OiBib2R5VGV4dCxcbiAgICAgIGNvbmZpcm1CdG5MYWJlbDogJ1llcycsXG4gICAgICBjYW5jZWxCdG5MYWJlbDogJ05vJ1xuICAgIH1cbiAgICBsZXQgbW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudD5tb2RhbC5jb250ZW50KS5jb25maXJtQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5kb0RlbGV0ZVBhcnQocGFydCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRvRGVsZXRlUGFydChwYXJ0OiBQb3J0YWxEb2N1bWVudFBhcnQpIHtcbiAgICBsZXQgY2xvbmUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdyb3VwKTtcbiAgICBpZiAoY2xvbmUucGFydHMgJiYgY2xvbmUuZG9jdW1lbnRJRCkge1xuICAgICAgY2xvbmUucGFydHMgPSBjbG9uZS5wYXJ0cy5maWx0ZXIoa2VlcCA9PiB7XG4gICAgICAgIGtlZXAuaWQgIT0gcGFydC5pZDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZXNlcXVlbmNlKGNsb25lKTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50R3JvdXAoY2xvbmUpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZGVsZXRlRG9jdW1lbnRQYXJ0KHBhcnQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURjb3VtZW50SUQoY2xvbmUuZG9jdW1lbnRJRCB8fCAnJyk7XG4gICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgZGVsZXRpbmcgcGFyYWdyYXBoOiAnICsgZXJyLCAnRVJST1InKTtcbiAgICAgICAgfX0pO1xuICAgICAgfSwgZXJyb3I6IGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgfX0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXF1ZW5jZShncm91cDogUG9ydGFsRG9jdW1lbnRHcm91cCkge1xuICAgIGxldCBzZXF1ZW5jZSA9IDE7XG4gICAgaWYgKGdyb3VwLnBhcnRzKSB7XG4gICAgICBncm91cC5wYXJ0cy5mb3JFYWNoKHBhcnQgPT4ge1xuICAgICAgICBwYXJ0LnNlcXVlbmNlID0gc2VxdWVuY2UrKztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlZGl0R3JvdXAoZ3JvdXA6IFBvcnRhbERvY3VtZW50R3JvdXApIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBsYWJlbDogJ0VkaXQgR3JvdXAgQXR0cmlidXRlcycsXG4gICAgICBncm91cDogZ3JvdXBcbiAgICB9XG4gICAgbGV0IG1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uuc2hvdyhHcm91cE1vZGFsQ29tcG9uZW50LCB7aW5pdGlhbFN0YXRlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlfSk7XG4gICAgKDxHcm91cE1vZGFsQ29tcG9uZW50Pm1vZGFsLmNvbnRlbnQpLm9uR3JvdXBTYXZlLnN1YnNjcmliZSh1cGRhdGVkR3JvdXAgPT4ge1xuICAgICAgdGhpcy5idXN5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLnVwZGF0ZURvY3VtZW50R3JvdXAodXBkYXRlZEdyb3VwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdGYWlsZWQgdXBkYXRpbmcgZ3JvdXA6ICcgKyBlcnIsICdFUlJPUicpO1xuICAgICAgICB0aGlzLmJ1c3kgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgfSk7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cImdyb3VwXCIgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZ3JvdXAuaXNDb2xsYXBzZWRcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJncm91cC5wYXJ0cyAmJiBncm91cC5wYXJ0cy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHAgb2YgZ3JvdXAucGFydHNcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvZXBhLWRvY3VtZW50LXBhcnQtZWRpdG9yIFtwYXJ0XT1cInBcIiAob25Nb3ZlVXApPVwibW92ZVBhcnRVcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uSW5zZXJ0QWJvdmUpPVwiaW5zZXJ0QWJvdmVQYXJ0KCRldmVudClcIiAob25Nb3ZlRG93bik9XCJtb3ZlUGFydERvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkluc2VydEJlbG93KT1cImluc2VydEJlbG93UGFydCgkZXZlbnQpXCIgKG9uRGVsZXRlKT1cImRlbGV0ZVBhcnQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb2VwYS1kb2N1bWVudC1wYXJ0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yIGFsZXJ0IGFsZXJ0LWluZm9cIiByb2xlPVwiYWxlcnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2lkXT1cIidkZWxldGVHcm91cCcrZ3JvdXAuc2VxdWVuY2VcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJ0aGlzLmRlbGV0ZSgpXCIgdG9vbHRpcD1cIkRlbGV0ZSBHcm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIj48L2k+IFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDt7e2dyb3VwLm5hbWUgfHwgJyd9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbaWRdPVwiJ21vdmVHcm91cFVwJytncm91cC5zZXF1ZW5jZVwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cIm1vdmVVcCgpXCIgdG9vbHRpcD1cIk1vdmUgR3JvdXAgVXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWNoZXZyb24tZG91YmxlLXVwXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtpZF09XCInaW5zZXJ0YWJvdmVHcm91cCcrZ3JvdXAuc2VxdWVuY2VcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJpbnNlcnRBYm92ZSgpXCIgdG9vbHRpcD1cIkluc2VydCBHcm91cCBBYm92ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3ctdXAtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtpZF09XCInbW92ZUdyb3VwRG93bicrZ3JvdXAuc2VxdWVuY2VcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJtb3ZlRG93bigpXCIgdG9vbHRpcD1cIk1vdmUgR3JvdXAgRG93blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3VibGUtZG93blwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbaWRdPVwiJ2luc2VydEJlbG93R3JvdXAnK2dyb3VwLnNlcXVlbmNlXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiaW5zZXJ0QmVsb3coKVwiIHRvb2x0aXA9XCJJbnNlcnQgR3JvdXAgQmVsb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWFycm93LWRvd24tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../document-part-editor/document-part-editor.component";
5
- export class DocumentPartComponent {
6
- part;
7
- constructor() { }
8
- ngOnInit() {
9
- }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentPartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DocumentPartComponent, selector: "oepa-document-part", inputs: { part: "part" }, ngImport: i0, template: "<div *ngIf=\"part\">\n <oepa-document-part-editor [part]=\"part\"></oepa-document-part-editor>\n</div>\n<div *ngIf=\"part.parts && part.parts.length > 0\">\n <div *ngFor=\"let p of part.parts\">\n <oepa-document-part-editor [part]=\"p\"></oepa-document-part-editor>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DocumentPartEditorComponent, selector: "oepa-document-part-editor", inputs: ["part", "editing"], outputs: ["partChange", "onMoveUp", "onInsertAbove", "onMoveDown", "onInsertBelow", "onDelete"] }] });
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DocumentPartComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'oepa-document-part', template: "<div *ngIf=\"part\">\n <oepa-document-part-editor [part]=\"part\"></oepa-document-part-editor>\n</div>\n<div *ngIf=\"part.parts && part.parts.length > 0\">\n <div *ngFor=\"let p of part.parts\">\n <oepa-document-part-editor [part]=\"p\"></oepa-document-part-editor>\n </div>\n</div>\n" }]
16
- }], ctorParameters: () => [], propDecorators: { part: [{
17
- type: Input
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtcGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LXBhcnQvZG9jdW1lbnQtcGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2RvY3VtZW50L2RvY3VtZW50LXBhcnQvZG9jdW1lbnQtcGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLElBQUksQ0FBc0I7SUFFbkMsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7d0dBTlUscUJBQXFCOzRGQUFyQixxQkFBcUIsb0ZDUmxDLDhTQVFBOzs0RkRBYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usb0JBQW9CO3dEQUtyQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvcnRhbERvY3VtZW50UGFydCB9IGZyb20gJy4uL3BvcnRhbC1kb2N1bWVudC1wYXJ0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS1kb2N1bWVudC1wYXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RvY3VtZW50LXBhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb2N1bWVudC1wYXJ0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEb2N1bWVudFBhcnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwYXJ0ITogUG9ydGFsRG9jdW1lbnRQYXJ0O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cInBhcnRcIj5cbiAgICA8b2VwYS1kb2N1bWVudC1wYXJ0LWVkaXRvciBbcGFydF09XCJwYXJ0XCI+PC9vZXBhLWRvY3VtZW50LXBhcnQtZWRpdG9yPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwicGFydC5wYXJ0cyAmJiBwYXJ0LnBhcnRzLmxlbmd0aCA+IDBcIj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwIG9mIHBhcnQucGFydHNcIj5cbiAgICAgICAgPG9lcGEtZG9jdW1lbnQtcGFydC1lZGl0b3IgW3BhcnRdPVwicFwiPjwvb2VwYS1kb2N1bWVudC1wYXJ0LWVkaXRvcj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19