@resolveio/client-lib-core 15.5.3 → 16.0.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.
- package/esm2022/lib/account-manager.service.mjs +229 -0
- package/esm2022/lib/auth/auth-guard.service.mjs +174 -0
- package/esm2022/lib/auth/auth-permissions.service.mjs +23 -0
- package/esm2022/lib/auth/auth.service.mjs +251 -0
- package/esm2022/lib/auth/auth365.component.mjs +51 -0
- package/esm2022/lib/auth/can-deactivate-guard.service.mjs +13 -0
- package/esm2022/lib/auth/enroll.component.mjs +88 -0
- package/esm2022/lib/auth/forgot-password.component.mjs +89 -0
- package/esm2022/lib/core.component.mjs +404 -0
- package/esm2022/lib/core.module.mjs +176 -0
- package/esm2022/lib/core.service.mjs +88 -0
- package/esm2022/lib/directive/focus.mjs +24 -0
- package/esm2022/lib/directive/scroll.mjs +54 -0
- package/esm2022/lib/home/home.component.mjs +84 -0
- package/esm2022/lib/logger/logger.component.mjs +229 -0
- package/esm2022/lib/models/app-status.model.mjs +2 -0
- package/esm2022/lib/models/collection-document.model.mjs +2 -0
- package/esm2022/lib/models/cron-job.model.mjs +2 -0
- package/esm2022/lib/models/dialog.model.mjs +2 -0
- package/esm2022/lib/models/file.model.mjs +2 -0
- package/esm2022/lib/models/log-method-latency.model.mjs +2 -0
- package/esm2022/lib/models/navbar-main-tab.model.mjs +2 -0
- package/esm2022/lib/models/pagination.model.mjs +2 -0
- package/esm2022/lib/models/permission.model.mjs +2 -0
- package/esm2022/lib/models/select-data-label.model.mjs +2 -0
- package/esm2022/lib/models/subscription.model.mjs +2 -0
- package/esm2022/lib/models/support-ticket.model.mjs +2 -0
- package/esm2022/lib/models/user-group.model.mjs +2 -0
- package/esm2022/lib/models/user.model.mjs +2 -0
- package/esm2022/lib/offline-db.mjs +519 -0
- package/esm2022/lib/offline-manager.service.mjs +109 -0
- package/esm2022/lib/pipes/domsanitizor.pipe.mjs +29 -0
- package/esm2022/lib/pipes/filter.pipe.mjs +36 -0
- package/esm2022/lib/pipes/json-parse.pipe.mjs +29 -0
- package/esm2022/lib/pipes/minus-currency.pipe.mjs +16 -0
- package/esm2022/lib/pipes/phone.pipe.mjs +47 -0
- package/esm2022/lib/pipes/pipe.module.mjs +54 -0
- package/esm2022/lib/pipes/reverse-list.pipe.mjs +17 -0
- package/esm2022/lib/pipes/titlecase.pipe.mjs +22 -0
- package/esm2022/lib/report-builder.permission.mjs +13 -0
- package/esm2022/lib/resolveio-class.mjs +50 -0
- package/esm2022/lib/shared/shared.module.mjs +96 -0
- package/esm2022/lib/socket-manager.service.mjs +340 -0
- package/esm2022/lib/socket.service.mjs +200 -0
- package/esm2022/lib/super-admin.permission.mjs +9 -0
- package/esm2022/lib/support-ticket/detail/support-ticket-detail.component.mjs +211 -0
- package/esm2022/lib/support-ticket/edit/support-ticket-edit.component.mjs +131 -0
- package/esm2022/lib/support-ticket/list/support-ticket-list.component.mjs +142 -0
- package/esm2022/lib/support-ticket/new/support-ticket-new.component.mjs +121 -0
- package/esm2022/lib/support-ticket/support-ticket.component.mjs +67 -0
- package/esm2022/lib/support-ticket/support-ticket.module.mjs +50 -0
- package/esm2022/lib/support-ticket/support-ticket.routing.mjs +20 -0
- package/esm2022/lib/support-ticket/support-ticket.service.mjs +16 -0
- package/esm2022/lib/token-manager.service.mjs +25 -0
- package/esm2022/lib/user-settings/settings/users-settings.component.mjs +302 -0
- package/esm2022/lib/user-settings/user-settings.component.mjs +61 -0
- package/esm2022/lib/user-settings/user-settings.module.mjs +41 -0
- package/esm2022/lib/user-settings/user-settings.permission.mjs +10 -0
- package/esm2022/lib/user-settings/user-settings.routing.mjs +14 -0
- package/esm2022/lib/user-settings/user-settings.service.mjs +16 -0
- package/esm2022/lib/util/action-name.helper.mjs +9 -0
- package/esm2022/lib/util/aws.service.mjs +80 -0
- package/esm2022/lib/util/common.helper.mjs +133 -0
- package/esm2022/lib/util/validation.service.mjs +185 -0
- package/esm2022/lib/util/window-resize.service.mjs +38 -0
- package/esm2022/lib/util/window.service.mjs +16 -0
- package/esm2022/lib/widgets/alert/alert.model.mjs +2 -0
- package/esm2022/lib/widgets/alert/alert.service.mjs +79 -0
- package/esm2022/lib/widgets/collapse-table/collapse-table.component.mjs +83 -0
- package/esm2022/lib/widgets/collapse-table/collapse-table.module.mjs +34 -0
- package/esm2022/lib/widgets/data-table/data-table.component.mjs +84 -0
- package/esm2022/lib/widgets/data-table/data-table.model.mjs +2 -0
- package/esm2022/lib/widgets/data-table/data-table.module.mjs +41 -0
- package/esm2022/lib/widgets/date-shortcut/date-shortcut.component.mjs +198 -0
- package/esm2022/lib/widgets/date-shortcut/date-shortcut.module.mjs +32 -0
- package/esm2022/lib/widgets/dialog/dialog.confirm.content.mjs +67 -0
- package/esm2022/lib/widgets/dialog/dialog.error.content.mjs +60 -0
- package/esm2022/lib/widgets/dialog/dialog.input.content.mjs +200 -0
- package/esm2022/lib/widgets/dialog/dialog.login.content.mjs +354 -0
- package/esm2022/lib/widgets/dialog/dialog.notify.content.mjs +60 -0
- package/esm2022/lib/widgets/dialog/dialog.register.content.mjs +333 -0
- package/esm2022/lib/widgets/dialog/dialog.select-array-objs.content.mjs +203 -0
- package/esm2022/lib/widgets/dialog/dialog.select-array.content.mjs +310 -0
- package/esm2022/lib/widgets/dialog/dialog.select-data-labels.content.mjs +196 -0
- package/esm2022/lib/widgets/dialog/dialog.select-datetime.content.mjs +191 -0
- package/esm2022/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +166 -0
- package/esm2022/lib/widgets/dialog/dialog.service.mjs +98 -0
- package/esm2022/lib/widgets/file/file-upload.component.mjs +433 -0
- package/esm2022/lib/widgets/file/file-upload.module.mjs +48 -0
- package/esm2022/lib/widgets/form-button/form-button.component.mjs +97 -0
- package/esm2022/lib/widgets/form-button/form-button.module.mjs +28 -0
- package/esm2022/lib/widgets/navbar-main/navbar-main.component.mjs +222 -0
- package/esm2022/lib/widgets/navbar-module/navbar-module.component.mjs +108 -0
- package/esm2022/lib/widgets/navbar-module/navbar-module.model.mjs +2 -0
- package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +41 -0
- package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +24 -0
- package/esm2022/lib/widgets/scheduler/scheduler.component.mjs +186 -0
- package/esm2022/lib/widgets/scheduler/scheduler.module.mjs +37 -0
- package/esm2022/lib/widgets/sort-table/sort-table-header.component.mjs +72 -0
- package/esm2022/lib/widgets/sort-table/sort-table-ngfor.component.mjs +49 -0
- package/esm2022/lib/widgets/sort-table/sort-table.directive.mjs +177 -0
- package/esm2022/lib/widgets/sort-table/sort-table.module.mjs +38 -0
- package/esm2022/lib/widgets/user-role/user-role.component.mjs +29 -0
- package/esm2022/lib/widgets/user-role/user-role.module.mjs +24 -0
- package/esm2022/public_api.mjs +91 -0
- package/esm2022/resolveio-client-lib-core.mjs +5 -0
- package/fesm2022/resolveio-client-lib-core.mjs +9019 -0
- package/fesm2022/resolveio-client-lib-core.mjs.map +1 -0
- package/index.d.ts +3 -0
- package/lib/auth/auth-guard.service.d.ts +2 -2
- package/lib/auth/can-deactivate-guard.service.d.ts +1 -2
- package/lib/core.component.d.ts +1 -2
- package/lib/core.module.d.ts +26 -29
- package/lib/directive/focus.d.ts +1 -1
- package/lib/directive/scroll.d.ts +1 -1
- package/lib/logger/logger.component.d.ts +0 -2
- package/lib/models/dialog.model.d.ts +1 -1
- package/lib/models/pagination.model.d.ts +1 -0
- package/lib/models/user-group.model.d.ts +0 -1
- package/lib/offline-db.d.ts +1 -5
- package/lib/offline-manager.service.d.ts +1 -4
- package/lib/socket-manager.service.d.ts +5 -34
- package/lib/socket.service.d.ts +3 -20
- package/lib/token-manager.service.d.ts +2 -4
- package/lib/util/aws.service.d.ts +1 -2
- package/lib/util/common.helper.d.ts +1 -3
- package/lib/util/window-resize.service.d.ts +6 -5
- package/lib/widgets/collapse-table/collapse-table.component.d.ts +1 -1
- package/lib/widgets/data-table/data-table.component.d.ts +1 -1
- package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +1 -5
- package/lib/widgets/dialog/dialog.confirm.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.error.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.input.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.login.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.notify.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-array.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +1 -1
- package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +1 -1
- package/lib/widgets/file/file-upload.component.d.ts +1 -1
- package/lib/widgets/file/file-upload.module.d.ts +2 -2
- package/lib/widgets/form-button/form-button.component.d.ts +1 -1
- package/lib/widgets/navbar-main/navbar-main.component.d.ts +1 -2
- package/lib/widgets/navbar-module/navbar-module.component.d.ts +1 -1
- package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +1 -1
- package/lib/widgets/sort-table/sort-table-header.component.d.ts +1 -1
- package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +1 -1
- package/lib/widgets/sort-table/sort-table.directive.d.ts +8 -1
- package/lib/widgets/user-role/user-role.component.d.ts +1 -1
- package/package.json +5 -6
- package/fesm2020/resolveio-client-lib-core.min.mjs +0 -1
- package/lib/logger/diff-viewer.component.d.ts +0 -35
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "../collapse-table/collapse-table.component";
|
|
7
|
+
import * as i4 from "../responsive-button-group/responsive-button-group.component";
|
|
8
|
+
import * as i5 from "@ng-select/ng-select";
|
|
9
|
+
import * as i6 from "@angular/common";
|
|
10
|
+
// tslint:disable-next-line:component-class-suffix
|
|
11
|
+
export class DialogSelectArrayContent {
|
|
12
|
+
_activeModal;
|
|
13
|
+
_cdRef;
|
|
14
|
+
title = '';
|
|
15
|
+
array = [];
|
|
16
|
+
multiple;
|
|
17
|
+
selectedIndexes = [];
|
|
18
|
+
close;
|
|
19
|
+
allElements;
|
|
20
|
+
method = 'list';
|
|
21
|
+
mappedArray = [];
|
|
22
|
+
selectIndexes = [];
|
|
23
|
+
constructor(_activeModal, _cdRef) {
|
|
24
|
+
this._activeModal = _activeModal;
|
|
25
|
+
this._cdRef = _cdRef;
|
|
26
|
+
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.mappedArray = this.array.map((a, index) => {
|
|
29
|
+
return {
|
|
30
|
+
value: index,
|
|
31
|
+
text: a
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
this.selectedIndexes.forEach(index => {
|
|
35
|
+
this.selectIndexes.push(index);
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
ngAfterViewInit() {
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
let foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);
|
|
41
|
+
if (foundElement) {
|
|
42
|
+
foundElement.focus();
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.close.nativeElement.focus();
|
|
46
|
+
this.close.nativeElement.blur();
|
|
47
|
+
}
|
|
48
|
+
}, 100);
|
|
49
|
+
}
|
|
50
|
+
recursiveFindFirstElement(element) {
|
|
51
|
+
let foundElement = null;
|
|
52
|
+
let htmlCol = element.children;
|
|
53
|
+
for (let i = 0; i < Object.keys(htmlCol).length; i++) {
|
|
54
|
+
let key = Object.keys(htmlCol)[i];
|
|
55
|
+
let htmlElem = htmlCol[key];
|
|
56
|
+
if (htmlElem.children && htmlElem.children.length) {
|
|
57
|
+
foundElement = this.recursiveFindFirstElement(htmlElem);
|
|
58
|
+
}
|
|
59
|
+
else if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
else if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {
|
|
63
|
+
return htmlElem;
|
|
64
|
+
}
|
|
65
|
+
if (foundElement) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return foundElement;
|
|
70
|
+
}
|
|
71
|
+
addDropDown() {
|
|
72
|
+
let firstValue = this.array.filter((a, index) => !this.selectedIndexes.includes(index))[0];
|
|
73
|
+
let firstIndex = this.array.findIndex(a => a === firstValue);
|
|
74
|
+
this.selectedIndexes.push(firstIndex);
|
|
75
|
+
this.selectIndexes.push(firstIndex);
|
|
76
|
+
}
|
|
77
|
+
onSelectDropdown(val, index) {
|
|
78
|
+
this.onSelectItem(this.selectedIndexes[index]);
|
|
79
|
+
this.onSelectItem(val);
|
|
80
|
+
}
|
|
81
|
+
availableAdd() {
|
|
82
|
+
return this.array.filter((a, index) => !this.selectedIndexes.includes(index))[0] ? true : false;
|
|
83
|
+
}
|
|
84
|
+
getFilteredArray(item) {
|
|
85
|
+
return this.mappedArray.filter(a => a.value === item || !this.selectedIndexes.includes(a.value));
|
|
86
|
+
}
|
|
87
|
+
isInSelectedIndex(index) {
|
|
88
|
+
if (this.selectedIndexes.includes(index)) {
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
onSelectItem(index) {
|
|
94
|
+
if (!this.multiple) {
|
|
95
|
+
if (this.selectedIndexes.includes(index)) {
|
|
96
|
+
this.selectedIndexes = [];
|
|
97
|
+
this.selectIndexes = [];
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.selectedIndexes = [index];
|
|
101
|
+
this.selectIndexes = [index];
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
if (this.selectedIndexes.includes(index)) {
|
|
106
|
+
this.selectedIndexes.splice(this.selectedIndexes.indexOf(index), 1);
|
|
107
|
+
this.selectIndexes.splice(this.selectIndexes.indexOf(index), 1);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.selectedIndexes.push(index);
|
|
111
|
+
this.selectIndexes.push(index);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
getArray() {
|
|
116
|
+
let res = [];
|
|
117
|
+
this.selectedIndexes.forEach(index => {
|
|
118
|
+
res.push(this.array[index]);
|
|
119
|
+
});
|
|
120
|
+
return res;
|
|
121
|
+
}
|
|
122
|
+
selectAll() {
|
|
123
|
+
this.selectedIndexes = [];
|
|
124
|
+
this.selectIndexes = [];
|
|
125
|
+
this.array.forEach((data, index) => {
|
|
126
|
+
this.selectedIndexes.push(index);
|
|
127
|
+
this.selectIndexes.push(index);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
removeAll() {
|
|
131
|
+
this.selectedIndexes = [];
|
|
132
|
+
this.selectIndexes = [];
|
|
133
|
+
}
|
|
134
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogSelectArrayContent, deps: [{ token: i1.NgbActiveModal }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
135
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogSelectArrayContent, selector: "ng-component", inputs: { title: "title", array: "array", multiple: "multiple", selectedIndexes: "selectedIndexes" }, viewQueries: [{ propertyName: "close", first: true, predicate: ["close"], descendants: true }, { propertyName: "allElements", first: true, predicate: ["allElements"], descendants: true }], ngImport: i0, template: `
|
|
136
|
+
<style>
|
|
137
|
+
collapse-table tr:hover {
|
|
138
|
+
background-color: lightblue;
|
|
139
|
+
cursor: pointer;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.selected {
|
|
143
|
+
background-color: lightblue;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
collapse-table {
|
|
147
|
+
width: 100%;
|
|
148
|
+
}
|
|
149
|
+
</style>
|
|
150
|
+
<div #allElements>
|
|
151
|
+
<div class="modal-header">
|
|
152
|
+
<h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
|
|
153
|
+
<button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()" #close>
|
|
154
|
+
<span aria-hidden="true">×</span>
|
|
155
|
+
</button>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="modal-body" style="height: 60vh;">
|
|
158
|
+
<responsive-button-group>
|
|
159
|
+
<ng-container *ngIf="multiple">
|
|
160
|
+
<button type="button" class="btn btn-primary" (click)="selectAll()">Select All</button>
|
|
161
|
+
<button type="button" class="btn btn-danger" (click)="removeAll()">Remove All</button>
|
|
162
|
+
</ng-container>
|
|
163
|
+
<button type="button" [ngClass]="['btn', method === 'list' ? 'btn-success' : 'btn-warning']" (click)="method = 'list'">Use List</button>
|
|
164
|
+
<button type="button" [ngClass]="['btn', method === 'dropdown' ? 'btn-success' : 'btn-warning']" (click)="method = 'dropdown'">Use Dropdown</button>
|
|
165
|
+
</responsive-button-group>
|
|
166
|
+
<div style="height: 50vh; overflow-y: auto; margin-top: 10px">
|
|
167
|
+
<ng-container *ngIf="method === 'list'">
|
|
168
|
+
<collapse-table collapseSize="900">
|
|
169
|
+
<thead>
|
|
170
|
+
<tr>
|
|
171
|
+
<th>List</th>
|
|
172
|
+
</tr>
|
|
173
|
+
</thead>
|
|
174
|
+
<tbody>
|
|
175
|
+
<tr *ngFor="let data of array; let i = index" (click)="onSelectItem(i)" [ngClass]="{'selected' : isInSelectedIndex(i)}">
|
|
176
|
+
<td>{{data}}</td>
|
|
177
|
+
</tr>
|
|
178
|
+
</tbody>
|
|
179
|
+
</collapse-table>
|
|
180
|
+
</ng-container>
|
|
181
|
+
<ng-container *ngIf="method === 'dropdown'">
|
|
182
|
+
<collapse-table collapseSize="900">
|
|
183
|
+
<thead>
|
|
184
|
+
<tr>
|
|
185
|
+
<th>Item</th>
|
|
186
|
+
<th>Remove</th>
|
|
187
|
+
</tr>
|
|
188
|
+
</thead>
|
|
189
|
+
<tbody>
|
|
190
|
+
<tr *ngFor="let item of selectIndexes; let i = index">
|
|
191
|
+
<td>
|
|
192
|
+
<ng-select placeholder="Select Item" [ngModel]="item" (change)="onSelectDropdown($event, i)">
|
|
193
|
+
<ng-option *ngFor="let data of getFilteredArray(item)" [value]="data.value">{{data.text}}</ng-option>
|
|
194
|
+
</ng-select>
|
|
195
|
+
</td>
|
|
196
|
+
<td>
|
|
197
|
+
<button type="button" class="btn btn-danger" (click)="onSelectItem(item)">Remove</button>
|
|
198
|
+
</td>
|
|
199
|
+
</tr>
|
|
200
|
+
</tbody>
|
|
201
|
+
</collapse-table>
|
|
202
|
+
<button type="button" class="btn btn-success" *ngIf="multiple || !selectIndexes.length" (click)="addDropDown()" [disabled]="!availableAdd()">Add</button>
|
|
203
|
+
</ng-container>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
<div class="modal-footer">
|
|
207
|
+
<button type="button" [ngClass]="['btn', selectedIndexes.length ? 'btn-success' : 'btn-danger']" [disabled]="!selectedIndexes.length || this.selectedIndexes.includes(null)" (click)="_activeModal.close(this.multiple ? getArray() : array[selectedIndexes[0]])">Submit</button>
|
|
208
|
+
<button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
`, isInline: true, styles: ["\n\t\t\tcollapse-table tr:hover {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.selected {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t}\n\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t"], dependencies: [{ kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CollapseTableComponent, selector: "collapse-table", inputs: ["collapseSize", "tableFixed", "headerFixed", "secondaryColor", "tertiaryColor"] }, { kind: "component", type: i4.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "component", type: i5.NgOptionComponent, selector: "ng-option", inputs: ["value", "disabled"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
212
|
+
}
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogSelectArrayContent, decorators: [{
|
|
214
|
+
type: Component,
|
|
215
|
+
args: [{
|
|
216
|
+
template: `
|
|
217
|
+
<style>
|
|
218
|
+
collapse-table tr:hover {
|
|
219
|
+
background-color: lightblue;
|
|
220
|
+
cursor: pointer;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.selected {
|
|
224
|
+
background-color: lightblue;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
collapse-table {
|
|
228
|
+
width: 100%;
|
|
229
|
+
}
|
|
230
|
+
</style>
|
|
231
|
+
<div #allElements>
|
|
232
|
+
<div class="modal-header">
|
|
233
|
+
<h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.85em" aria-hidden="true"></i> {{ title }}</h4>
|
|
234
|
+
<button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()" #close>
|
|
235
|
+
<span aria-hidden="true">×</span>
|
|
236
|
+
</button>
|
|
237
|
+
</div>
|
|
238
|
+
<div class="modal-body" style="height: 60vh;">
|
|
239
|
+
<responsive-button-group>
|
|
240
|
+
<ng-container *ngIf="multiple">
|
|
241
|
+
<button type="button" class="btn btn-primary" (click)="selectAll()">Select All</button>
|
|
242
|
+
<button type="button" class="btn btn-danger" (click)="removeAll()">Remove All</button>
|
|
243
|
+
</ng-container>
|
|
244
|
+
<button type="button" [ngClass]="['btn', method === 'list' ? 'btn-success' : 'btn-warning']" (click)="method = 'list'">Use List</button>
|
|
245
|
+
<button type="button" [ngClass]="['btn', method === 'dropdown' ? 'btn-success' : 'btn-warning']" (click)="method = 'dropdown'">Use Dropdown</button>
|
|
246
|
+
</responsive-button-group>
|
|
247
|
+
<div style="height: 50vh; overflow-y: auto; margin-top: 10px">
|
|
248
|
+
<ng-container *ngIf="method === 'list'">
|
|
249
|
+
<collapse-table collapseSize="900">
|
|
250
|
+
<thead>
|
|
251
|
+
<tr>
|
|
252
|
+
<th>List</th>
|
|
253
|
+
</tr>
|
|
254
|
+
</thead>
|
|
255
|
+
<tbody>
|
|
256
|
+
<tr *ngFor="let data of array; let i = index" (click)="onSelectItem(i)" [ngClass]="{'selected' : isInSelectedIndex(i)}">
|
|
257
|
+
<td>{{data}}</td>
|
|
258
|
+
</tr>
|
|
259
|
+
</tbody>
|
|
260
|
+
</collapse-table>
|
|
261
|
+
</ng-container>
|
|
262
|
+
<ng-container *ngIf="method === 'dropdown'">
|
|
263
|
+
<collapse-table collapseSize="900">
|
|
264
|
+
<thead>
|
|
265
|
+
<tr>
|
|
266
|
+
<th>Item</th>
|
|
267
|
+
<th>Remove</th>
|
|
268
|
+
</tr>
|
|
269
|
+
</thead>
|
|
270
|
+
<tbody>
|
|
271
|
+
<tr *ngFor="let item of selectIndexes; let i = index">
|
|
272
|
+
<td>
|
|
273
|
+
<ng-select placeholder="Select Item" [ngModel]="item" (change)="onSelectDropdown($event, i)">
|
|
274
|
+
<ng-option *ngFor="let data of getFilteredArray(item)" [value]="data.value">{{data.text}}</ng-option>
|
|
275
|
+
</ng-select>
|
|
276
|
+
</td>
|
|
277
|
+
<td>
|
|
278
|
+
<button type="button" class="btn btn-danger" (click)="onSelectItem(item)">Remove</button>
|
|
279
|
+
</td>
|
|
280
|
+
</tr>
|
|
281
|
+
</tbody>
|
|
282
|
+
</collapse-table>
|
|
283
|
+
<button type="button" class="btn btn-success" *ngIf="multiple || !selectIndexes.length" (click)="addDropDown()" [disabled]="!availableAdd()">Add</button>
|
|
284
|
+
</ng-container>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
<div class="modal-footer">
|
|
288
|
+
<button type="button" [ngClass]="['btn', selectedIndexes.length ? 'btn-success' : 'btn-danger']" [disabled]="!selectedIndexes.length || this.selectedIndexes.includes(null)" (click)="_activeModal.close(this.multiple ? getArray() : array[selectedIndexes[0]])">Submit</button>
|
|
289
|
+
<button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
|
|
290
|
+
</div>
|
|
291
|
+
</div>
|
|
292
|
+
`,
|
|
293
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
294
|
+
}]
|
|
295
|
+
}], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], array: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], multiple: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], selectedIndexes: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], close: [{
|
|
304
|
+
type: ViewChild,
|
|
305
|
+
args: ['close', { static: false }]
|
|
306
|
+
}], allElements: [{
|
|
307
|
+
type: ViewChild,
|
|
308
|
+
args: ['allElements', { static: false }]
|
|
309
|
+
}] } });
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlbGVjdC1hcnJheS5jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZWxlY3QtYXJyYXkuY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUIsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFrRjVELGtEQUFrRDtBQUNsRCxNQUFNLE9BQU8sd0JBQXdCO0lBYWpCO0lBQXFDO0lBWi9DLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxLQUFLLEdBQVUsRUFBRSxDQUFDO0lBQ2xCLFFBQVEsQ0FBVTtJQUNsQixlQUFlLEdBQWEsRUFBRSxDQUFDO0lBRUssS0FBSyxDQUFDO0lBQ0QsV0FBVyxDQUFDO0lBRTlELE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDaEIsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRW5CLFlBQW1CLFlBQTRCLEVBQVMsTUFBeUI7UUFBOUQsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFBRyxDQUFDO0lBRXJGLFFBQVE7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlDLE9BQU87Z0JBQ04sS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLENBQUM7YUFDUCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZ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d0IsdVZBaEYxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRFVDs7NEZBSVcsd0JBQXdCO2tCQWpGcEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE0RVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DO3FJQUdTLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUV1QyxLQUFLO3NCQUFqRCxTQUFTO3VCQUFFLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ2MsV0FBVztzQkFBNUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PHN0eWxlPlxuXHRcdFx0Y29sbGFwc2UtdGFibGUgdHI6aG92ZXIge1xuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG5cdFx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHRcdH1cblxuXHRcdFx0LnNlbGVjdGVkIHtcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb2xsYXBzZS10YWJsZSB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdDwvc3R5bGU+XG5cdFx0PGRpdiAjYWxsRWxlbWVudHM+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XG5cdFx0XHRcdDxoNCBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+PGkgY2xhc3M9XCJmYSBmYS1xdWVzdGlvbi1jaXJjbGVcIiBzdHlsZT1cImNvbG9yOiBibHVlOyBmb250LXNpemU6IDAuODVlbVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgdGl0bGUgfX08L2g0PlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNsb3NlXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIiAjY2xvc2U+XG5cdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCIgc3R5bGU9XCJoZWlnaHQ6IDYwdmg7XCI+XG5cdFx0XHRcdDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGVcIj5cblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInNlbGVjdEFsbCgpXCI+U2VsZWN0IEFsbDwvYnV0dG9uPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJyZW1vdmVBbGwoKVwiPlJlbW92ZSBBbGw8L2J1dHRvbj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIG1ldGhvZCA9PT0gJ2xpc3QnID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgIChjbGljayk9XCJtZXRob2QgPSAnbGlzdCdcIj5Vc2UgTGlzdDwvYnV0dG9uPlxuXHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIlsnYnRuJywgbWV0aG9kID09PSAnZHJvcGRvd24nID8gJ2J0bi1zdWNjZXNzJyA6ICdidG4td2FybmluZyddXCIgKGNsaWNrKT1cIm1ldGhvZCA9ICdkcm9wZG93bidcIj5Vc2UgRHJvcGRvd248L2J1dHRvbj5cblx0XHRcdFx0PC9yZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cblx0XHRcdFx0PGRpdiBzdHlsZT1cImhlaWdodDogNTB2aDsgb3ZlcmZsb3cteTogYXV0bzsgbWFyZ2luLXRvcDogMTBweFwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXRob2QgPT09ICdsaXN0J1wiPlxuXHRcdFx0XHRcdFx0PGNvbGxhcHNlLXRhYmxlIGNvbGxhcHNlU2l6ZT1cIjkwMFwiPlxuXHRcdFx0XHRcdFx0XHQ8dGhlYWQ+XG5cdFx0XHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRoPkxpc3Q8L3RoPlxuXHRcdFx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHRcdDwvdGhlYWQ+XG5cdFx0XHRcdFx0XHRcdDx0Ym9keT5cblx0XHRcdFx0XHRcdFx0XHQ8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgYXJyYXk7IGxldCBpID0gaW5kZXhcIiAoY2xpY2spPVwib25TZWxlY3RJdGVtKGkpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCcgOiBpc0luU2VsZWN0ZWRJbmRleChpKX1cIj5cblx0XHRcdFx0XHRcdFx0XHRcdDx0ZD57e2RhdGF9fTwvdGQ+XG5cdFx0XHRcdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0XHRcdFx0PC90Ym9keT5cblx0XHRcdFx0XHRcdDwvY29sbGFwc2UtdGFibGU+XG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGhvZCA9PT0gJ2Ryb3Bkb3duJ1wiPlxuXHRcdFx0XHRcdFx0PGNvbGxhcHNlLXRhYmxlIGNvbGxhcHNlU2l6ZT1cIjkwMFwiPlxuXHRcdFx0XHRcdFx0XHQ8dGhlYWQ+XG5cdFx0XHRcdFx0XHRcdFx0PHRyPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRoPkl0ZW08L3RoPlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRoPlJlbW92ZTwvdGg+XG5cdFx0XHRcdFx0XHRcdFx0PC90cj5cblx0XHRcdFx0XHRcdFx0PC90aGVhZD5cblx0XHRcdFx0XHRcdFx0PHRib2R5PlxuXHRcdFx0XHRcdFx0XHRcdDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RJbmRleGVzOyBsZXQgaSA9IGluZGV4XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1zZWxlY3QgcGxhY2Vob2xkZXI9XCJTZWxlY3QgSXRlbVwiIFtuZ01vZGVsXT1cIml0ZW1cIiAoY2hhbmdlKT1cIm9uU2VsZWN0RHJvcGRvd24oJGV2ZW50LCBpKVwiPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1vcHRpb24gKm5nRm9yPVwibGV0IGRhdGEgb2YgZ2V0RmlsdGVyZWRBcnJheShpdGVtKVwiIFt2YWx1ZV09XCJkYXRhLnZhbHVlXCI+e3tkYXRhLnRleHR9fTwvbmctb3B0aW9uPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLXNlbGVjdD5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXJcIiAoY2xpY2spPVwib25TZWxlY3RJdGVtKGl0ZW0pXCI+UmVtb3ZlPC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3RkPlxuXHRcdFx0XHRcdFx0XHRcdDwvdHI+XG5cdFx0XHRcdFx0XHRcdDwvdGJvZHk+XG5cdFx0XHRcdFx0XHQ8L2NvbGxhcHNlLXRhYmxlPlxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAqbmdJZj1cIm11bHRpcGxlIHx8ICFzZWxlY3RJbmRleGVzLmxlbmd0aFwiIChjbGljayk9XCJhZGREcm9wRG93bigpXCIgW2Rpc2FibGVkXT1cIiFhdmFpbGFibGVBZGQoKVwiPkFkZDwvYnV0dG9uPlxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJbJ2J0bicsIHNlbGVjdGVkSW5kZXhlcy5sZW5ndGggPyAnYnRuLXN1Y2Nlc3MnIDogJ2J0bi1kYW5nZXInXVwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWRJbmRleGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhudWxsKVwiIChjbGljayk9XCJfYWN0aXZlTW9kYWwuY2xvc2UodGhpcy5tdWx0aXBsZSA/IGdldEFycmF5KCkgOiBhcnJheVtzZWxlY3RlZEluZGV4ZXNbMF1dKVwiPlN1Ym1pdDwvYnV0dG9uPlxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgRGlhbG9nU2VsZWN0QXJyYXlDb250ZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblx0QElucHV0KCkgdGl0bGUgPSAnJztcblx0QElucHV0KCkgYXJyYXk6IGFueVtdID0gW107XG5cdEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xuXHRASW5wdXQoKSBzZWxlY3RlZEluZGV4ZXM6IG51bWJlcltdID0gW107XG5cblx0QFZpZXdDaGlsZCAoJ2Nsb3NlJywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgY2xvc2U7XG5cdEBWaWV3Q2hpbGQoJ2FsbEVsZW1lbnRzJywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgYWxsRWxlbWVudHM7XG5cblx0bWV0aG9kID0gJ2xpc3QnO1xuXHRtYXBwZWRBcnJheSA9IFtdO1xuXHRzZWxlY3RJbmRleGVzID0gW107XG5cblx0Y29uc3RydWN0b3IocHVibGljIF9hY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHB1YmxpYyBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMubWFwcGVkQXJyYXkgPSB0aGlzLmFycmF5Lm1hcCgoYSwgaW5kZXgpID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdHZhbHVlOiBpbmRleCxcblx0XHRcdFx0dGV4dDogYVxuXHRcdFx0fTtcblx0XHR9KTtcblxuXHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xuXHRcdFx0dGhpcy5zZWxlY3RJbmRleGVzLnB1c2goaW5kZXgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0bGV0IGZvdW5kRWxlbWVudCA9IHRoaXMucmVjdXJzaXZlRmluZEZpcnN0RWxlbWVudCh0aGlzLmFsbEVsZW1lbnRzLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0aWYgKGZvdW5kRWxlbWVudCkge1xuXHRcdFx0XHRmb3VuZEVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLmNsb3NlLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdFx0dGhpcy5jbG9zZS5uYXRpdmVFbGVtZW50LmJsdXIoKTtcblx0XHRcdH1cblx0XHR9LCAxMDApO1xuXHR9XG5cblx0cmVjdXJzaXZlRmluZEZpcnN0RWxlbWVudChlbGVtZW50KSB7XG5cdFx0bGV0IGZvdW5kRWxlbWVudCA9IG51bGw7XG5cdFx0bGV0IGh0bWxDb2w6IEhUTUxDb2xsZWN0aW9uID0gZWxlbWVudC5jaGlsZHJlbjtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IE9iamVjdC5rZXlzKGh0bWxDb2wpLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRsZXQga2V5ID0gT2JqZWN0LmtleXMoaHRtbENvbClbaV07XG5cblx0XHRcdGxldCBodG1sRWxlbSA9IGh0bWxDb2xba2V5XTtcblx0XHRcdGlmIChodG1sRWxlbS5jaGlsZHJlbiAmJiBodG1sRWxlbS5jaGlsZHJlbi5sZW5ndGgpIHtcblx0XHRcdFx0Zm91bmRFbGVtZW50ID0gdGhpcy5yZWN1cnNpdmVGaW5kRmlyc3RFbGVtZW50KGh0bWxFbGVtKTtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKGh0bWxFbGVtLnRhZ05hbWUgPT09ICdCVVRUT04nICYmIGh0bWxFbGVtLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2UnKSkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKChodG1sRWxlbS50YWdOYW1lID09PSAnQlVUVE9OJyB8fCBodG1sRWxlbS50YWdOYW1lID09PSAnSU5QVVQnIHx8IGh0bWxFbGVtLnRhZ05hbWUgPT09ICdTRUxFQ1QnIHx8IGh0bWxFbGVtLnRhZ05hbWUgPT09ICdURVhUQVJFQScpICYmICFodG1sRWxlbS5oaWRkZW4gJiYgIWh0bWxFbGVtLmRpc2FibGVkKSB7XG5cdFx0XHRcdHJldHVybiBodG1sRWxlbTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKGZvdW5kRWxlbWVudCkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZm91bmRFbGVtZW50O1xuXHR9XG5cblx0YWRkRHJvcERvd24oKSB7XG5cdFx0bGV0IGZpcnN0VmFsdWUgPSB0aGlzLmFycmF5LmZpbHRlcigoYSwgaW5kZXgpID0+ICF0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhpbmRleCkpWzBdO1xuXHRcdGxldCBmaXJzdEluZGV4ID0gdGhpcy5hcnJheS5maW5kSW5kZXgoYSA9PiBhID09PSBmaXJzdFZhbHVlKTtcblx0XHR0aGlzLnNlbGVjdGVkSW5kZXhlcy5wdXNoKGZpcnN0SW5kZXgpO1xuXHRcdHRoaXMuc2VsZWN0SW5kZXhlcy5wdXNoKGZpcnN0SW5kZXgpO1xuXHR9XG5cblx0b25TZWxlY3REcm9wZG93bih2YWwsIGluZGV4KSB7XG5cdFx0dGhpcy5vblNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEluZGV4ZXNbaW5kZXhdKTtcblx0XHR0aGlzLm9uU2VsZWN0SXRlbSh2YWwpO1xuXHR9XG5cblx0YXZhaWxhYmxlQWRkKCkge1xuXHRcdHJldHVybiB0aGlzLmFycmF5LmZpbHRlcigoYSwgaW5kZXgpID0+ICF0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhpbmRleCkpWzBdID8gdHJ1ZSA6IGZhbHNlO1xuXHR9XG5cblx0Z2V0RmlsdGVyZWRBcnJheShpdGVtKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwcGVkQXJyYXkuZmlsdGVyKGEgPT4gYS52YWx1ZSA9PT0gaXRlbSB8fCAhdGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5jbHVkZXMoYS52YWx1ZSkpO1xuXHR9XG5cblx0aXNJblNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlcikge1xuXHRcdGlmICh0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmNsdWRlcyhpbmRleCkpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdG9uU2VsZWN0SXRlbShpbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKCF0aGlzLm11bHRpcGxlKSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5jbHVkZXMoaW5kZXgpKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzID0gW107XG5cdFx0XHRcdHRoaXMuc2VsZWN0SW5kZXhlcyA9IFtdO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzID0gW2luZGV4XTtcblx0XHRcdFx0dGhpcy5zZWxlY3RJbmRleGVzID0gW2luZGV4XTtcblx0XHRcdH1cblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRpZiAodGhpcy5zZWxlY3RlZEluZGV4ZXMuaW5jbHVkZXMoaW5kZXgpKSB7XG5cdFx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzLnNwbGljZSh0aGlzLnNlbGVjdGVkSW5kZXhlcy5pbmRleE9mKGluZGV4KSwgMSk7XG5cdFx0XHRcdHRoaXMuc2VsZWN0SW5kZXhlcy5zcGxpY2UodGhpcy5zZWxlY3RJbmRleGVzLmluZGV4T2YoaW5kZXgpLCAxKTtcblx0XHRcdH1cblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkSW5kZXhlcy5wdXNoKGluZGV4KTtcblx0XHRcdFx0dGhpcy5zZWxlY3RJbmRleGVzLnB1c2goaW5kZXgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGdldEFycmF5KCkge1xuXHRcdGxldCByZXMgPSBbXTtcblxuXHRcdHRoaXMuc2VsZWN0ZWRJbmRleGVzLmZvckVhY2goaW5kZXggPT4ge1xuXHRcdFx0cmVzLnB1c2godGhpcy5hcnJheVtpbmRleF0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlcztcblx0fVxuXG5cdHNlbGVjdEFsbCgpIHtcblx0XHR0aGlzLnNlbGVjdGVkSW5kZXhlcyA9IFtdO1xuXHRcdHRoaXMuc2VsZWN0SW5kZXhlcyA9IFtdO1xuXG5cdFx0dGhpcy5hcnJheS5mb3JFYWNoKChkYXRhLCBpbmRleCkgPT4ge1xuXHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ZXMucHVzaChpbmRleCk7XG5cdFx0XHR0aGlzLnNlbGVjdEluZGV4ZXMucHVzaChpbmRleCk7XG5cdFx0fSk7XG5cdH1cblxuXHRyZW1vdmVBbGwoKSB7XG5cdFx0dGhpcy5zZWxlY3RlZEluZGV4ZXMgPSBbXTtcblx0XHR0aGlzLnNlbGVjdEluZGV4ZXMgPSBbXTtcblx0fVxufVxuIl19
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
|
|
3
|
+
import { FormBuilder } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@ng-bootstrap/ng-bootstrap";
|
|
6
|
+
import * as i2 from "@angular/forms";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
// tslint:disable-next-line:component-class-suffix
|
|
9
|
+
export class DialogSelectDataLabelsContent {
|
|
10
|
+
_activeModal;
|
|
11
|
+
_fb;
|
|
12
|
+
title = '';
|
|
13
|
+
subtitle = '';
|
|
14
|
+
data;
|
|
15
|
+
showArraySubData;
|
|
16
|
+
form;
|
|
17
|
+
dialogData = [];
|
|
18
|
+
constructor(_activeModal, _fb) {
|
|
19
|
+
this._activeModal = _activeModal;
|
|
20
|
+
this._fb = _fb;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
this.getKeys();
|
|
24
|
+
}
|
|
25
|
+
getKeys() {
|
|
26
|
+
let dataKeys = Object.keys(this.data);
|
|
27
|
+
let type = '';
|
|
28
|
+
dataKeys.filter(a => a !== '_id' && !a.startsWith('id_') && a !== '__v' && a !== 'createdAt' && a !== 'updatedAt').forEach(key => {
|
|
29
|
+
type = typeof (this.data[key]);
|
|
30
|
+
if (type === 'object') {
|
|
31
|
+
if (Array.isArray(this.data[key])) {
|
|
32
|
+
type = 'array';
|
|
33
|
+
this.dialogData.push({
|
|
34
|
+
label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
35
|
+
data: key,
|
|
36
|
+
selected: true,
|
|
37
|
+
type: type,
|
|
38
|
+
subLabel: null,
|
|
39
|
+
subData: null,
|
|
40
|
+
subtype: null
|
|
41
|
+
});
|
|
42
|
+
if (this.showArraySubData === true) {
|
|
43
|
+
let subDataKeys = Object.keys(this.data[key][0]);
|
|
44
|
+
subDataKeys.filter(a => a !== '_id' && !a.startsWith('id_')).forEach(subKey => {
|
|
45
|
+
this.dialogData.push({
|
|
46
|
+
label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
47
|
+
subLabel: subKey.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
48
|
+
data: key,
|
|
49
|
+
type: type,
|
|
50
|
+
subData: subKey,
|
|
51
|
+
selected: true,
|
|
52
|
+
subtype: typeof (subKey)
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
let subDataKeys = Object.keys(this.data[key]);
|
|
59
|
+
if (subDataKeys.length) {
|
|
60
|
+
subDataKeys.filter(a => a !== '_id' && !a.startsWith('id_')).forEach(subKey => {
|
|
61
|
+
this.dialogData.push({
|
|
62
|
+
label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
63
|
+
subLabel: subKey.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
64
|
+
data: key,
|
|
65
|
+
subData: subKey,
|
|
66
|
+
subtype: null,
|
|
67
|
+
selected: true,
|
|
68
|
+
type: type
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.dialogData.push({
|
|
74
|
+
label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
75
|
+
data: key,
|
|
76
|
+
selected: true,
|
|
77
|
+
type: type,
|
|
78
|
+
subData: null,
|
|
79
|
+
subLabel: null,
|
|
80
|
+
subtype: null
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this.dialogData.push({
|
|
87
|
+
label: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),
|
|
88
|
+
data: key,
|
|
89
|
+
selected: true,
|
|
90
|
+
type: type,
|
|
91
|
+
subData: null,
|
|
92
|
+
subLabel: null,
|
|
93
|
+
subtype: null
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
changeSelected(label) {
|
|
99
|
+
label.selected = !label.selected;
|
|
100
|
+
if (label.type === 'array' && label.subtype === null) {
|
|
101
|
+
this.dialogData.filter(a => a.label === label.label).forEach(subtype => {
|
|
102
|
+
subtype.selected = label.selected;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
submit() {
|
|
107
|
+
return this.dialogData;
|
|
108
|
+
}
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogSelectDataLabelsContent, deps: [{ token: i1.NgbActiveModal }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DialogSelectDataLabelsContent, selector: "ng-component", inputs: { title: "title", subtitle: "subtitle", data: "data", showArraySubData: "showArraySubData" }, ngImport: i0, template: `
|
|
111
|
+
<div class="modal-header">
|
|
112
|
+
<h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.75em" aria-hidden="true"></i> {{ title }} - {{ subtitle }}</h4>
|
|
113
|
+
<button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()">
|
|
114
|
+
<span aria-hidden="true">×</span>
|
|
115
|
+
</button>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="modal-body">
|
|
118
|
+
<div class="col-lg-12">
|
|
119
|
+
<div class="row">
|
|
120
|
+
<div class="col-lg-12">
|
|
121
|
+
<ng-container *ngFor="let label of dialogData">
|
|
122
|
+
<div class="row">
|
|
123
|
+
<div *ngIf="label.subtype === null && label.type !== 'object'" style="font-size: 12px;">
|
|
124
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.label }}
|
|
125
|
+
</div>
|
|
126
|
+
<div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel !== null" style="font-size: 12px;">
|
|
127
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.subLabel }}
|
|
128
|
+
</div>
|
|
129
|
+
<div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel === null" style="font-size: 12px;">
|
|
130
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.label }}
|
|
131
|
+
</div>
|
|
132
|
+
<div *ngIf="label.subtype !== null" style="font-size: 12px;">
|
|
133
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.subLabel }}
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
</ng-container>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<div class="modal-footer">
|
|
142
|
+
<button type="button" class="btn btn-success" (click)="_activeModal.close(dialogData)">Submit</button>
|
|
143
|
+
<button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
|
|
144
|
+
</div>
|
|
145
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
146
|
+
}
|
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DialogSelectDataLabelsContent, decorators: [{
|
|
148
|
+
type: Component,
|
|
149
|
+
args: [{
|
|
150
|
+
template: `
|
|
151
|
+
<div class="modal-header">
|
|
152
|
+
<h4 class="modal-title"><i class="fa fa-question-circle" style="color: blue; font-size: 0.75em" aria-hidden="true"></i> {{ title }} - {{ subtitle }}</h4>
|
|
153
|
+
<button type="button" class="close" aria-label="Close" (click)="_activeModal.dismiss()">
|
|
154
|
+
<span aria-hidden="true">×</span>
|
|
155
|
+
</button>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="modal-body">
|
|
158
|
+
<div class="col-lg-12">
|
|
159
|
+
<div class="row">
|
|
160
|
+
<div class="col-lg-12">
|
|
161
|
+
<ng-container *ngFor="let label of dialogData">
|
|
162
|
+
<div class="row">
|
|
163
|
+
<div *ngIf="label.subtype === null && label.type !== 'object'" style="font-size: 12px;">
|
|
164
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.label }}
|
|
165
|
+
</div>
|
|
166
|
+
<div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel !== null" style="font-size: 12px;">
|
|
167
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.subLabel }}
|
|
168
|
+
</div>
|
|
169
|
+
<div *ngIf="label.subtype === null && label.type === 'object' && label.subLabel === null" style="font-size: 12px;">
|
|
170
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.label }}
|
|
171
|
+
</div>
|
|
172
|
+
<div *ngIf="label.subtype !== null" style="font-size: 12px;">
|
|
173
|
+
<input type="checkbox" [checked]="label.selected" (click)="changeSelected(label)" style="height: 20px; width: auto;"> {{ label.subLabel }}
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</ng-container>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
<div class="modal-footer">
|
|
182
|
+
<button type="button" class="btn btn-success" (click)="_activeModal.close(dialogData)">Submit</button>
|
|
183
|
+
<button type="button" class="btn btn-secondary" (click)="_activeModal.dismiss()">Cancel</button>
|
|
184
|
+
</div>
|
|
185
|
+
`
|
|
186
|
+
}]
|
|
187
|
+
}], ctorParameters: function () { return [{ type: i1.NgbActiveModal }, { type: i2.FormBuilder }]; }, propDecorators: { title: [{
|
|
188
|
+
type: Input
|
|
189
|
+
}], subtitle: [{
|
|
190
|
+
type: Input
|
|
191
|
+
}], data: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], showArraySubData: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}] } });
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlbGVjdC1kYXRhLWxhYmVscy5jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvZGlhbG9nL2RpYWxvZy5zZWxlY3QtZGF0YS1sYWJlbHMuY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFhLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQTBDeEQsa0RBQWtEO0FBQ2xELE1BQU0sT0FBTyw2QkFBNkI7SUFVdEI7SUFBc0M7SUFUaEQsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxJQUFJLENBQUM7SUFDTCxnQkFBZ0IsQ0FBQztJQUUxQixJQUFJLENBQVk7SUFFaEIsVUFBVSxHQUEyQixFQUFFLENBQUM7SUFFeEMsWUFBbUIsWUFBNEIsRUFBVSxHQUFnQjtRQUF0RCxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFhO0lBQUcsQ0FBQztJQUU3RSxRQUFRO1FBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPO1FBQ04sSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUssQ0FBQyxL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LEdBQUc7b0JBQ1QsUUFBUSxFQUFFLElBQUk7b0JBQ2QsSUFBSSxFQUFFLElBQUk7b0JBQ1YsT0FBTyxFQUFFLElBQUk7b0JBQ2IsUUFBUSxFQUFFLElBQUk7b0JBQ2QsT0FBTyxFQUFFLElBQUk7aUJBQ2IsQ0FBQyxDQUFDO2FBQ0g7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBMkI7UUFDekMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFFakMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRTtZQUNyRCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDdEUsT0FBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ0g7SUFDRixDQUFDO0lBRUQsTUFBTTtRQUNMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4QixDQUFDO3dHQXZHVyw2QkFBNkI7NEZBQTdCLDZCQUE2QiwwSkF2Qy9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1DVDs7NEZBSVcsNkJBQTZCO2tCQXhDekMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUNUO2lCQUNEOytIQUlTLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFNlbGVjdERhdGFMYWJlbE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1kYXRhLWxhYmVsLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuXHRcdFx0PGg0IGNsYXNzPVwibW9kYWwtdGl0bGVcIj48aSBjbGFzcz1cImZhIGZhLXF1ZXN0aW9uLWNpcmNsZVwiIHN0eWxlPVwiY29sb3I6IGJsdWU7IGZvbnQtc2l6ZTogMC43NWVtXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPiB7eyB0aXRsZSB9fSAtIHt7IHN1YnRpdGxlIH19PC9oND5cblx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwiX2FjdGl2ZU1vZGFsLmRpc21pc3MoKVwiPlxuXHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxuXHRcdFx0PC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjb2wtbGctMTJcIj5cblx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxhYmVsIG9mIGRpYWxvZ0RhdGFcIj5cblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJvd1wiPlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJsYWJlbC5zdWJ0eXBlID09PSBudWxsICYmIGxhYmVsLnR5cGUgIT09ICdvYmplY3QnXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwibGFiZWwuc2VsZWN0ZWRcIiAoY2xpY2spPVwiY2hhbmdlU2VsZWN0ZWQobGFiZWwpXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiBhdXRvO1wiPiZuYnNwOyZuYnNwOyZuYnNwO3t7IGxhYmVsLmxhYmVsIH19XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cImxhYmVsLnN1YnR5cGUgPT09IG51bGwgJiYgbGFiZWwudHlwZSA9PT0gJ29iamVjdCcgJiYgbGFiZWwuc3ViTGFiZWwgIT09IG51bGxcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTJweDtcIj5cblx0XHRcdFx0XHRcdFx0XHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJsYWJlbC5zZWxlY3RlZFwiIChjbGljayk9XCJjaGFuZ2VTZWxlY3RlZChsYWJlbClcIiBzdHlsZT1cImhlaWdodDogMjBweDsgd2lkdGg6IGF1dG87XCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7e3sgbGFiZWwuc3ViTGFiZWwgfX1cblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwibGFiZWwuc3VidHlwZSA9PT0gbnVsbCAmJiBsYWJlbC50eXBlID09PSAnb2JqZWN0JyAmJiBsYWJlbC5zdWJMYWJlbCA9PT0gbnVsbFwiIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPlxuXHRcdFx0XHRcdFx0XHRcdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImxhYmVsLnNlbGVjdGVkXCIgKGNsaWNrKT1cImNoYW5nZVNlbGVjdGVkKGxhYmVsKVwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4OyB3aWR0aDogYXV0bztcIj4mbmJzcDsmbmJzcDsmbmJzcDt7eyBsYWJlbC5sYWJlbCB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJsYWJlbC5zdWJ0eXBlICE9PSBudWxsXCIgc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwibGFiZWwuc2VsZWN0ZWRcIiAoY2xpY2spPVwiY2hhbmdlU2VsZWN0ZWQobGFiZWwpXCIgc3R5bGU9XCJoZWlnaHQ6IDIwcHg7IHdpZHRoOiBhdXRvO1wiPiZuYnNwOyZuYnNwOyZuYnNwO3t7IGxhYmVsLnN1YkxhYmVsIH19XG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuXHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAoY2xpY2spPVwiX2FjdGl2ZU1vZGFsLmNsb3NlKGRpYWxvZ0RhdGEpXCI+U3VibWl0PC9idXR0b24+XG5cdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cIl9hY3RpdmVNb2RhbC5kaXNtaXNzKClcIj5DYW5jZWw8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0YFxufSlcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZWxlY3REYXRhTGFiZWxzQ29udGVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cdEBJbnB1dCgpIHN1YnRpdGxlID0gJyc7XG5cdEBJbnB1dCgpIGRhdGE7XG5cdEBJbnB1dCgpIHNob3dBcnJheVN1YkRhdGE7XG5cblx0Zm9ybTogRm9ybUdyb3VwO1xuXG5cdGRpYWxvZ0RhdGE6IFNlbGVjdERhdGFMYWJlbE1vZGVsW10gPSBbXTtcblxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgX2FjdGl2ZU1vZGFsOiBOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7fVxuXG5cdG5nT25Jbml0ICgpIHtcblx0XHR0aGlzLmdldEtleXMoKTtcblx0fVxuXG5cdGdldEtleXMoKSB7XG5cdFx0bGV0IGRhdGFLZXlzID0gT2JqZWN0LmtleXModGhpcy5kYXRhKTtcblx0XHRsZXQgdHlwZSA9ICcnO1xuXG5cdFx0ZGF0YUtleXMuZmlsdGVyKGEgPT4gYSAhPT0gJ19pZCcgJiYgIWEuc3RhcnRzV2l0aCgnaWRfJykgJiYgYSAhPT0gJ19fdicgICYmIGEgIT09ICdjcmVhdGVkQXQnICAmJiBhICE9PSAndXBkYXRlZEF0JykuZm9yRWFjaChrZXkgPT4ge1xuXHRcdFx0dHlwZSA9IHR5cGVvZih0aGlzLmRhdGFba2V5XSk7XG5cdFx0XHRpZiAodHlwZSA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhW2tleV0pKSB7XG5cdFx0XHRcdFx0dHlwZSA9ICdhcnJheSc7XG5cdFx0XHRcdFx0dGhpcy5kaWFsb2dEYXRhLnB1c2goe1xuXHRcdFx0XHRcdFx0bGFiZWw6IGtleS5yZXBsYWNlKG5ldyBSZWdFeHAoJ18nLCAnZycpLCAnICcpLnJlcGxhY2UoJ3N0cmluZycsICcnKS5yZXBsYWNlKC9cXHdcXFMqL2csIGZ1bmN0aW9uKHR4dCl7cmV0dXJuIHR4dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHR4dC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTsgfSksXG5cdFx0XHRcdFx0XHRkYXRhOiBrZXksXG5cdFx0XHRcdFx0XHRzZWxlY3RlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdFx0XHRzdWJMYWJlbDogbnVsbCxcblx0XHRcdFx0XHRcdHN1YkRhdGE6IG51bGwsXG5cdFx0XHRcdFx0XHRzdWJ0eXBlOiBudWxsXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuc2hvd0FycmF5U3ViRGF0YSA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdFx0bGV0IHN1YkRhdGFLZXlzID0gT2JqZWN0LmtleXModGhpcy5kYXRhW2tleV1bMF0pO1xuXHRcdFx0XHRcdFx0c3ViRGF0YUtleXMuZmlsdGVyKGEgPT4gYSAhPT0gJ19pZCcgJiYgIWEuc3RhcnRzV2l0aCgnaWRfJykpLmZvckVhY2goc3ViS2V5ID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5kaWFsb2dEYXRhLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdfJywgJ2cnKSwgJyAnKS5yZXBsYWNlKCdzdHJpbmcnLCAnJykucmVwbGFjZSgvXFx3XFxTKi9nLCBmdW5jdGlvbih0eHQpe3JldHVybiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7IH0pLFxuXHRcdFx0XHRcdFx0XHRcdHN1YkxhYmVsOiBzdWJLZXkucmVwbGFjZShuZXcgUmVnRXhwKCdfJywgJ2cnKSwgJyAnKS5yZXBsYWNlKCdzdHJpbmcnLCAnJykucmVwbGFjZSgvXFx3XFxTKi9nLCBmdW5jdGlvbih0eHQpe3JldHVybiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7IH0pLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6IGtleSxcblx0XHRcdFx0XHRcdFx0XHR0eXBlOiB0eXBlLFxuXHRcdFx0XHRcdFx0XHRcdHN1YkRhdGE6IHN1YktleSxcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRzdWJ0eXBlOiB0eXBlb2Yoc3ViS2V5KVxuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRsZXQgc3ViRGF0YUtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmRhdGFba2V5XSk7XG5cdFx0XHRcdFx0aWYgKHN1YkRhdGFLZXlzLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0c3ViRGF0YUtleXMuZmlsdGVyKGEgPT4gYSAhPT0gJ19pZCcgJiYgIWEuc3RhcnRzV2l0aCgnaWRfJykpLmZvckVhY2goc3ViS2V5ID0+IHtcblx0XHRcdFx0XHRcdFx0dGhpcy5kaWFsb2dEYXRhLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdGxhYmVsOiBrZXkucmVwbGFjZShuZXcgUmVnRXhwKCdfJywgJ2cnKSwgJyAnKS5yZXBsYWNlKCdzdHJpbmcnLCAnJykucmVwbGFjZSgvXFx3XFxTKi9nLCBmdW5jdGlvbih0eHQpe3JldHVybiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7IH0pLFxuXHRcdFx0XHRcdFx0XHRcdHN1YkxhYmVsOiBzdWJLZXkucmVwbGFjZShuZXcgUmVnRXhwKCdfJywgJ2cnKSwgJyAnKS5yZXBsYWNlKCdzdHJpbmcnLCAnJykucmVwbGFjZSgvXFx3XFxTKi9nLCBmdW5jdGlvbih0eHQpe3JldHVybiB0eHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB0eHQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7IH0pLFxuXHRcdFx0XHRcdFx0XHRcdGRhdGE6IGtleSxcblx0XHRcdFx0XHRcdFx0XHRzdWJEYXRhOiBzdWJLZXksXG5cdFx0XHRcdFx0XHRcdFx0c3VidHlwZTogbnVsbCxcblx0XHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHR0eXBlOiB0eXBlXG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5kaWFsb2dEYXRhLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRsYWJlbDoga2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXycsICdnJyksICcgJykucmVwbGFjZSgnc3RyaW5nJywgJycpLnJlcGxhY2UoL1xcd1xcUyovZywgZnVuY3Rpb24odHh0KXtyZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpOyB9KSxcblx0XHRcdFx0XHRcdFx0ZGF0YToga2V5LFxuXHRcdFx0XHRcdFx0XHRzZWxlY3RlZDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRcdFx0c3ViRGF0YTogbnVsbCxcblx0XHRcdFx0XHRcdFx0c3ViTGFiZWw6IG51bGwsXG5cdFx0XHRcdFx0XHRcdHN1YnR5cGU6IG51bGxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuZGlhbG9nRGF0YS5wdXNoKHtcblx0XHRcdFx0XHRsYWJlbDoga2V5LnJlcGxhY2UobmV3IFJlZ0V4cCgnXycsICdnJyksICcgJykucmVwbGFjZSgnc3RyaW5nJywgJycpLnJlcGxhY2UoL1xcd1xcUyovZywgZnVuY3Rpb24odHh0KXtyZXR1cm4gdHh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdHh0LnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpOyB9KSxcblx0XHRcdFx0XHRkYXRhOiBrZXksXG5cdFx0XHRcdFx0c2VsZWN0ZWQ6IHRydWUsXG5cdFx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0XHRzdWJEYXRhOiBudWxsLFxuXHRcdFx0XHRcdHN1YkxhYmVsOiBudWxsLFxuXHRcdFx0XHRcdHN1YnR5cGU6IG51bGxcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRjaGFuZ2VTZWxlY3RlZChsYWJlbDogU2VsZWN0RGF0YUxhYmVsTW9kZWwpIHtcblx0XHRsYWJlbC5zZWxlY3RlZCA9ICFsYWJlbC5zZWxlY3RlZDtcblxuXHRcdGlmIChsYWJlbC50eXBlID09PSAnYXJyYXknICYmIGxhYmVsLnN1YnR5cGUgPT09IG51bGwpIHtcblx0XHRcdHRoaXMuZGlhbG9nRGF0YS5maWx0ZXIoYSA9PiBhLmxhYmVsID09PSBsYWJlbC5sYWJlbCkuZm9yRWFjaChzdWJ0eXBlID0+IHtcblx0XHRcdFx0c3VidHlwZS5zZWxlY3RlZCA9IGxhYmVsLnNlbGVjdGVkO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0c3VibWl0KCkge1xuXHRcdHJldHVybiB0aGlzLmRpYWxvZ0RhdGE7XG5cdH1cbn0iXX0=
|