@colijnit/corecomponents_v12 12.0.21 → 12.0.24
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/bundles/colijnit-corecomponents_v12.umd.js +988 -158
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
- package/colijnit-corecomponents_v12-12.0.24.tgz +0 -0
- package/colijnit-corecomponents_v12.d.ts +15 -9
- package/colijnit-corecomponents_v12.metadata.json +1 -1
- package/esm2015/colijnit-corecomponents_v12.js +16 -10
- package/esm2015/lib/components/base/base-input.component.js +43 -10
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +92 -0
- package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +19 -0
- package/esm2015/lib/components/button/button.component.js +1 -1
- package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +2 -6
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +51 -0
- package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +17 -0
- package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +4 -1
- package/esm2015/lib/components/form/form.component.js +8 -3
- package/esm2015/lib/components/grid/base/base-grid.component.js +7 -3
- package/esm2015/lib/components/grid/base/base-inline-edit-grid.component.js +47 -3
- package/esm2015/lib/components/grid/base/base-selection-grid.component.js +12 -2
- package/esm2015/lib/components/grid/co-grid.component.js +35 -32
- package/esm2015/lib/components/grid/co-grid.module.js +4 -2
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +41 -0
- package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +23 -0
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +4 -1
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +4 -1
- package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +5 -4
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +4 -1
- package/esm2015/lib/components/input-listbox/input-listbox.component.js +4 -1
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +22 -24
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +4 -1
- package/esm2015/lib/components/input-text/input-text.component.js +11 -13
- package/esm2015/lib/components/input-text/input-text.module.js +4 -2
- package/esm2015/lib/components/input-textarea/input-textarea.component.js +4 -1
- package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +4 -1
- package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +86 -0
- package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +163 -0
- package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +43 -4
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +257 -59
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +11 -2
- package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +2 -1
- package/esm2015/public-api.js +3 -1
- package/fesm2015/colijnit-corecomponents_v12.js +1032 -205
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
- package/lib/components/base/base-input.component.d.ts +5 -2
- package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +19 -0
- package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +2 -0
- package/lib/components/base/commit-buttons/style/_layout.scss +127 -0
- package/lib/components/base/commit-buttons/style/_material-definition.scss +5 -0
- package/lib/components/base/commit-buttons/style/_theme.scss +34 -0
- package/lib/components/base/commit-buttons/style/material.scss +4 -0
- package/lib/components/co-dialog/style/_layout.scss +3 -0
- package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +9 -0
- package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +2 -0
- package/lib/components/co-dialog-wizard/style/_layout.scss +51 -0
- package/lib/components/co-dialog-wizard/style/_material-definition.scss +25 -0
- package/lib/components/co-dialog-wizard/style/_theme.scss +16 -0
- package/lib/components/co-dialog-wizard/style/material.scss +5 -0
- package/lib/components/collapsible/style/_layout.scss +1 -1
- package/lib/components/collapsible/style/_material-definition.scss +1 -0
- package/lib/components/form/form.component.d.ts +1 -0
- package/lib/components/grid/base/base-grid.component.d.ts +3 -0
- package/lib/components/grid/base/base-inline-edit-grid.component.d.ts +11 -2
- package/lib/components/grid/base/base-selection-grid.component.d.ts +4 -0
- package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +13 -0
- package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +2 -0
- package/lib/components/grid-toolbar/style/_layout.scss +10 -0
- package/lib/components/grid-toolbar/style/_material-definition.scss +0 -0
- package/lib/components/grid-toolbar/style/_theme.scss +5 -0
- package/lib/components/grid-toolbar/style/material.scss +5 -0
- package/lib/components/input-combo-box/input-combo-box.component.d.ts +0 -1
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +1 -6
- package/lib/components/input-radio-button/style/_material-definition.scss +1 -1
- package/lib/components/input-text/style/_layout.scss +0 -32
- package/lib/components/input-text/style/_material-definition.scss +0 -3
- package/lib/components/input-text/style/_theme.scss +0 -16
- package/lib/components/input-text/style/material.scss +1 -0
- package/lib/components/simple-grid/base-simple-grid.component.d.ts +31 -0
- package/lib/components/simple-grid/simple-grid-cell.component.d.ts +28 -0
- package/lib/components/simple-grid/simple-grid-column.directive.d.ts +15 -2
- package/lib/components/simple-grid/simple-grid.component.d.ts +39 -22
- package/lib/components/simple-grid/style/_layout.scss +23 -0
- package/lib/components/simple-grid/style/_material-definition.scss +13 -4
- package/lib/components/simple-grid/style/_theme.scss +17 -0
- package/lib/components/simple-grid/style/material.scss +1 -0
- package/lib/style/_input.mixins.scss +1 -1
- package/lib/style/_variables.scss +5 -1
- package/package.json +2 -2
- package/public-api.d.ts +2 -0
|
@@ -1,69 +1,260 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, ViewEncapsulation } from "@angular/core";
|
|
2
|
+
import { FormMasterService } from "../../core/service/form-master.service";
|
|
3
|
+
import { BaseSimpleGridComponent } from "./base-simple-grid.component";
|
|
4
|
+
import { ColumnAlign } from "./simple-grid-column.directive";
|
|
5
|
+
export class SimpleGridComponent extends BaseSimpleGridComponent {
|
|
6
|
+
constructor(_changeDetection, _formMaster) {
|
|
7
|
+
super();
|
|
8
|
+
this._changeDetection = _changeDetection;
|
|
9
|
+
this._formMaster = _formMaster;
|
|
6
10
|
this.defaultTextAlign = ColumnAlign.Left;
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.emitDragDrop = false;
|
|
14
|
-
this.onDrop = new EventEmitter();
|
|
15
|
-
this.columns = [];
|
|
16
|
-
}
|
|
17
|
-
set content(columnComponents) {
|
|
18
|
-
this.columns = columnComponents.toArray();
|
|
11
|
+
this.editting = false;
|
|
12
|
+
this.editRowIndex = -1;
|
|
13
|
+
this.editCellIndex = -1;
|
|
14
|
+
this.selectedRowIndex = -1;
|
|
15
|
+
this._doubleClicked = false;
|
|
16
|
+
this._newRow = false;
|
|
19
17
|
}
|
|
20
18
|
showClass() {
|
|
21
19
|
return true;
|
|
22
20
|
}
|
|
23
|
-
|
|
24
|
-
if (
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.
|
|
21
|
+
handleKeyDown(event) {
|
|
22
|
+
if (!this.inlineEdit) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (event.code === 'Tab') {
|
|
26
|
+
event.preventDefault();
|
|
27
|
+
this._nextAvailableCellToEdit(!event.shiftKey, this.editCellIndex)
|
|
28
|
+
.then((index) => {
|
|
29
|
+
this.editCellIndex = index;
|
|
30
|
+
this._changeDetection.markForCheck();
|
|
31
|
+
});
|
|
32
|
+
this._detectChanges();
|
|
33
|
+
}
|
|
34
|
+
if (event.code === 'Escape') {
|
|
35
|
+
this.cancelEditRow();
|
|
36
|
+
}
|
|
37
|
+
if (event.code === 'Enter') {
|
|
38
|
+
this.validateAndSave();
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
isSingleColumn(column) {
|
|
42
|
+
return column.singleColumn;
|
|
34
43
|
}
|
|
35
|
-
|
|
36
|
-
this.
|
|
44
|
+
rowContainsSingleColumn(row, columns) {
|
|
45
|
+
const singleColumn = columns.find(column => this.isSingleColumn(column) && !!row[column.field]);
|
|
46
|
+
return !!singleColumn;
|
|
37
47
|
}
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
addRow() {
|
|
49
|
+
const valid = this.validateAndSave();
|
|
50
|
+
this._detectChanges();
|
|
51
|
+
if (valid) {
|
|
52
|
+
this.data.unshift({});
|
|
53
|
+
this._newRow = true;
|
|
54
|
+
this.editRowIndex = 0;
|
|
55
|
+
this._nextAvailableCellToEdit(true).then((index) => {
|
|
56
|
+
this.editCellIndex = index;
|
|
57
|
+
});
|
|
58
|
+
this.editting = true;
|
|
59
|
+
this.rowToEdit = this.data[0];
|
|
60
|
+
this._detectChanges();
|
|
61
|
+
}
|
|
40
62
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
63
|
+
validateAndSave(stopEditting = true) {
|
|
64
|
+
if (!this.editting) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
const valid = this._formMaster.submitSlaves();
|
|
68
|
+
this._detectChanges();
|
|
69
|
+
if (valid) {
|
|
70
|
+
this._saveRow(stopEditting);
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
cancelEditRow() {
|
|
75
|
+
if (!this.editting) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (this._newRow) {
|
|
79
|
+
this.data.shift();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.data[this.editRowIndex] = this.rowToEdit;
|
|
83
|
+
}
|
|
84
|
+
this._newRow = false;
|
|
85
|
+
this.editting = false;
|
|
86
|
+
this._detectChanges();
|
|
87
|
+
}
|
|
88
|
+
handleClickRow(event, index) {
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
if (this._doubleClicked) {
|
|
46
91
|
return;
|
|
47
92
|
}
|
|
48
|
-
|
|
49
|
-
|
|
93
|
+
this.selectTheRow(index);
|
|
94
|
+
}, 200);
|
|
95
|
+
}
|
|
96
|
+
selectTheRow(index, emit = true) {
|
|
97
|
+
if (this.selectedRowIndex !== index && ((this.editting && this.validateAndSave()) || !this.editting)) {
|
|
98
|
+
this.selectedRowIndex = index;
|
|
99
|
+
if (emit) {
|
|
100
|
+
this.selectRow.next(this.data[this.selectedRowIndex]);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
this._detectChanges();
|
|
104
|
+
}
|
|
105
|
+
handleDblClickRow(event, index) {
|
|
106
|
+
this._doubleClicked = true;
|
|
107
|
+
this.dblClickRow.next(this.data[index]);
|
|
108
|
+
this.selectTheRow(index, false);
|
|
109
|
+
if (this.inlineEdit) {
|
|
110
|
+
this.editRow(event);
|
|
111
|
+
}
|
|
112
|
+
this._resetDblClick();
|
|
113
|
+
}
|
|
114
|
+
editRow(event) {
|
|
115
|
+
this.editRowIndex = this.selectedRowIndex;
|
|
116
|
+
this.rowToEdit = this.data[this.editRowIndex];
|
|
117
|
+
this.editting = true;
|
|
118
|
+
this._nextAvailableCellToEdit(true).then((index) => {
|
|
119
|
+
this.editCellIndex = index;
|
|
120
|
+
});
|
|
121
|
+
this._detectChanges();
|
|
122
|
+
}
|
|
123
|
+
handleCellClick(index) {
|
|
124
|
+
this.editCellIndex = index;
|
|
125
|
+
this._detectChanges();
|
|
126
|
+
}
|
|
127
|
+
_resetDblClick() {
|
|
128
|
+
setTimeout(() => {
|
|
129
|
+
this._doubleClicked = false;
|
|
130
|
+
}, 500);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
*
|
|
134
|
+
* @param next; Move to next or previous cell
|
|
135
|
+
* @param start; Start from cellindex
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
_nextAvailableCellToEdit(next, start = -1) {
|
|
139
|
+
return new Promise((resolve, reject) => {
|
|
140
|
+
const numEditableColumns = this.columns.filter(c => !c.readonly).length;
|
|
141
|
+
const wantedIndex = start + (next ? 1 : -1);
|
|
142
|
+
if (wantedIndex >= numEditableColumns) {
|
|
143
|
+
this._getNextEditRowIndex()
|
|
144
|
+
.then((index) => {
|
|
145
|
+
this.editRowIndex = index;
|
|
146
|
+
resolve(this._getNextEditCellIndex(0));
|
|
147
|
+
})
|
|
148
|
+
.catch((e) => {
|
|
149
|
+
reject();
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
else if (wantedIndex < 0) {
|
|
153
|
+
this._getPreviousEditRowIndex()
|
|
154
|
+
.then((index) => {
|
|
155
|
+
this.editRowIndex = index;
|
|
156
|
+
resolve(this._getPreviousEditCellIndex(this.columns.length - 1));
|
|
157
|
+
})
|
|
158
|
+
.catch((e) => {
|
|
159
|
+
reject();
|
|
160
|
+
});
|
|
50
161
|
}
|
|
51
162
|
else {
|
|
52
|
-
|
|
163
|
+
resolve(next ? this._getNextEditCellIndex(start + 1) : this._getPreviousEditCellIndex(start - 1));
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
_getNextEditCellIndex(start) {
|
|
168
|
+
for (let i = start; i < this.columns.length; i++) {
|
|
169
|
+
if (!this.columns[i].readonly) {
|
|
170
|
+
return i;
|
|
53
171
|
}
|
|
54
172
|
}
|
|
55
|
-
|
|
56
|
-
|
|
173
|
+
}
|
|
174
|
+
_getPreviousEditCellIndex(start) {
|
|
175
|
+
for (let i = start; i >= 0; i--) {
|
|
176
|
+
if (!this.columns[i].readonly) {
|
|
177
|
+
return i;
|
|
178
|
+
}
|
|
57
179
|
}
|
|
58
180
|
}
|
|
181
|
+
_getNextEditRowIndex() {
|
|
182
|
+
return new Promise((resolve, reject) => {
|
|
183
|
+
let newRowIndex = 0;
|
|
184
|
+
if (this.editRowIndex + 1 >= this.data.length) {
|
|
185
|
+
newRowIndex = 0;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
newRowIndex = this.editRowIndex + 1;
|
|
189
|
+
}
|
|
190
|
+
if (newRowIndex !== this.editRowIndex) { // go to different row validate current one first
|
|
191
|
+
if (this.validateAndSave(false)) {
|
|
192
|
+
this.rowToEdit = this.data[newRowIndex];
|
|
193
|
+
resolve(newRowIndex);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
reject();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
resolve(newRowIndex);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
_getPreviousEditRowIndex() {
|
|
205
|
+
return new Promise((resolve, reject) => {
|
|
206
|
+
let newRowIndex = 0;
|
|
207
|
+
if (this.editRowIndex - 1 < 0) {
|
|
208
|
+
newRowIndex = this.data.length - 1;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
newRowIndex = this.editRowIndex - 1;
|
|
212
|
+
}
|
|
213
|
+
if (newRowIndex !== this.editRowIndex) { // go to different row validate current one first
|
|
214
|
+
if (this.validateAndSave(false)) {
|
|
215
|
+
this.rowToEdit = this.data[newRowIndex];
|
|
216
|
+
resolve(newRowIndex);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
reject();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
resolve(newRowIndex);
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
_saveRow(stopEditting = true) {
|
|
228
|
+
// emit saveEvent
|
|
229
|
+
if (this.rowToEdit) {
|
|
230
|
+
this.saveRow.next(this.rowToEdit);
|
|
231
|
+
}
|
|
232
|
+
this._newRow = false;
|
|
233
|
+
if (stopEditting) {
|
|
234
|
+
this.editRowIndex = -1;
|
|
235
|
+
this.editCellIndex = -1;
|
|
236
|
+
this.editting = false;
|
|
237
|
+
this.rowToEdit = undefined;
|
|
238
|
+
}
|
|
239
|
+
this._detectChanges();
|
|
240
|
+
}
|
|
241
|
+
_detectChanges() {
|
|
242
|
+
this._changeDetection.detectChanges();
|
|
243
|
+
}
|
|
59
244
|
}
|
|
60
245
|
SimpleGridComponent.decorators = [
|
|
61
246
|
{ type: Component, args: [{
|
|
62
247
|
selector: "co-simple-grid",
|
|
63
248
|
template: `
|
|
249
|
+
<co-grid-toolbar *ngIf="inlineEdit && showToolbar"
|
|
250
|
+
(addClick)="addRow()"
|
|
251
|
+
(editClick)="editRow($event)"
|
|
252
|
+
(saveClick)="validateAndSave()"
|
|
253
|
+
(cancelClick)="cancelEditRow()"
|
|
254
|
+
></co-grid-toolbar>
|
|
64
255
|
<div class="simple-grid-column-header-wrapper">
|
|
65
256
|
<div class="simple-grid-column-header" *ngFor="let column of columns; let index = index"
|
|
66
|
-
[style.min-width.px]="column.width" [style.max-width.px]="column.width">
|
|
257
|
+
[style.min-width.px]="column.width" [style.max-width.px]="column.width" [style.padding-right.px]="isSingleColumn(column) ? 0 : 5">
|
|
67
258
|
<div class="simple-grid-column-header-label" [ngClass]="column.textAlign ? column.textAlign : defaultTextAlign"
|
|
68
259
|
[textContent]="column.headerText"
|
|
69
260
|
></div>
|
|
@@ -80,33 +271,40 @@ SimpleGridComponent.decorators = [
|
|
|
80
271
|
[cdkDropListEnterPredicate]="handleCanDragDrop"
|
|
81
272
|
(cdkDropListDropped)="handleDrop($event)"
|
|
82
273
|
>
|
|
83
|
-
<div class="simple-grid-row"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
274
|
+
<div class="simple-grid-row" [class.selected]="rowIndex === selectedRowIndex"
|
|
275
|
+
[class.editting]="rowIndex === editRowIndex" *ngFor="let row of data; let rowIndex = index" cdkDrag
|
|
276
|
+
(click)="handleClickRow($event, rowIndex)" (dblclick)="handleDblClickRow($event, rowIndex)">
|
|
277
|
+
<co-form class="simple-grid-row-form">
|
|
278
|
+
<div class="simple-grid-column-cell" *ngFor="let column of columns; let columnIndex = index"
|
|
279
|
+
[style.min-width]="isSingleColumn(column) ? 'fit-content' : column.width" [style.max-width.px]="column.width"
|
|
280
|
+
[style.padding-right.px]="isSingleColumn(column) ? 0 : 5" >
|
|
281
|
+
<co-simple-grid-cell
|
|
282
|
+
[column]="column"
|
|
283
|
+
[row]="row"
|
|
284
|
+
[editMode]="inlineEdit && editting && rowIndex === editRowIndex && !isSingleColumn(column) && !rowContainsSingleColumn(row, columns)"
|
|
285
|
+
[fieldEditMode]="editCellIndex === columnIndex"
|
|
286
|
+
(cellClick)="handleCellClick(columnIndex)"
|
|
287
|
+
></co-simple-grid-cell>
|
|
288
|
+
<div *ngIf="column.resizable" class="simple-grid-column-sizer-placeholder"></div>
|
|
91
289
|
</div>
|
|
92
|
-
|
|
93
|
-
</div>
|
|
290
|
+
</co-form>
|
|
94
291
|
</div>
|
|
95
292
|
</div>
|
|
96
293
|
</div>
|
|
97
294
|
`,
|
|
295
|
+
providers: [
|
|
296
|
+
FormMasterService
|
|
297
|
+
],
|
|
98
298
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
99
299
|
encapsulation: ViewEncapsulation.None
|
|
100
300
|
},] }
|
|
101
301
|
];
|
|
302
|
+
SimpleGridComponent.ctorParameters = () => [
|
|
303
|
+
{ type: ChangeDetectorRef },
|
|
304
|
+
{ type: FormMasterService }
|
|
305
|
+
];
|
|
102
306
|
SimpleGridComponent.propDecorators = {
|
|
103
|
-
content: [{ type: ContentChildren, args: [SimpleGridColumnDirective,] }],
|
|
104
|
-
data: [{ type: Input }],
|
|
105
|
-
dragDropEnabled: [{ type: Input }],
|
|
106
|
-
emitDragDrop: [{ type: Input }],
|
|
107
|
-
onDrop: [{ type: Output }],
|
|
108
307
|
showClass: [{ type: HostBinding, args: ["class.co-simple-grid",] }],
|
|
109
|
-
|
|
110
|
-
handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
|
|
308
|
+
handleKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]
|
|
111
309
|
};
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NpbXBsZS1ncmlkL3NpbXBsZS1ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxlQUFlLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRixPQUFPLEVBQUMsV0FBVyxFQUFFLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUEwQ3RGLE1BQU0sT0FBTyxtQkFBbUI7SUF4Q2hDO1FBeUNrQixxQkFBZ0IsR0FBZ0IsV0FBVyxDQUFDLElBQUksQ0FBQztRQU8xRCxTQUFJLEdBQWEsRUFBRSxDQUFDO1FBR3BCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBRXhDOzs7V0FHRztRQUVJLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLFdBQU0sR0FBNkMsSUFBSSxZQUFZLEVBQThCLENBQUM7UUF1QmxHLFlBQU8sR0FBZ0MsRUFBRSxDQUFDO0lBNkJuRCxDQUFDO0lBdEVDLElBQWdELE9BQU8sQ0FBQyxnQkFBc0Q7UUFDNUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBbUJNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFHTSxlQUFlLENBQUMsS0FBaUI7UUFDdEMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hDLE1BQU0sSUFBSSxHQUFnQixLQUFLLENBQUMsTUFBYyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUNyRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDMUM7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBR00sYUFBYSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQU1NLG9CQUFvQixDQUFDLEtBQWlCLEVBQUUsTUFBaUM7UUFDOUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBYSxFQUFFLElBQWlCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUE0QjtRQUM1QyxJQUFJO1lBQ0YsTUFBTSxJQUFJLEdBQVcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBVyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3RDLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPO2FBQ1I7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDdEM7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQjtJQUNILENBQUM7OztZQS9HRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O3NCQUlFLGVBQWUsU0FBQyx5QkFBeUI7bUJBSXpDLEtBQUs7OEJBR0wsS0FBSzsyQkFPTCxLQUFLO3FCQUdMLE1BQU07d0JBR04sV0FBVyxTQUFDLHNCQUFzQjs4QkFLbEMsWUFBWSxTQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDOzRCQVc3QyxZQUFZLFNBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDZGtEcmFnLCBDZGtEcmFnRHJvcCwgQ2RrRHJvcExpc3QsIG1vdmVJdGVtSW5BcnJheX0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuaW1wb3J0IHtDb2x1bW5BbGlnbiwgU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZX0gZnJvbSBcIi4vc2ltcGxlLWdyaWQtY29sdW1uLmRpcmVjdGl2ZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc2ltcGxlLWdyaWRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInNpbXBsZS1ncmlkLWNvbHVtbi1oZWFkZXItd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlclwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiY29sdW1uLndpZHRoXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJjb2x1bW4ud2lkdGhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlci1sYWJlbFwiIFtuZ0NsYXNzXT1cImNvbHVtbi50ZXh0QWxpZ24gPyBjb2x1bW4udGV4dEFsaWduIDogZGVmYXVsdFRleHRBbGlnblwiXHJcbiAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiY29sdW1uLmhlYWRlclRleHRcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLnJlc2l6YWJsZVwiIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLXNpemVyXCJcclxuICAgICAgICAgICAgIChtb3VzZWRvd24pPVwiaGFuZGxlU2l6ZXJNb3VzZURvd24oJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNka0Ryb3BMaXN0R3JvdXAgY2xhc3M9XCJkcm9wLWxpc3QtZ3JvdXBcIj5cclxuICAgICAgPGRpdiAjZHJvcExpc3QgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkLWRyYWctZHJvcC1saXN0XCJcclxuICAgICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ0Ryb3BFbmFibGVkXCJcclxuICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImhhbmRsZUNhbkRyYWdEcm9wXCJcclxuICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImhhbmRsZURyb3AoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtcm93XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhXCIgY2RrRHJhZz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW1wbGUtZ3JpZC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiY29sdW1uLndpZHRoXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJjb2x1bW4ud2lkdGhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpbXBsZS1ncmlkLWNvbHVtbi1jZWxsLXZhbHVlXCIgW25nQ2xhc3NdPVwiY29sdW1uLnRleHRBbGlnbiA/IGNvbHVtbi50ZXh0QWxpZ24gOiBkZWZhdWx0VGV4dEFsaWduXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50ZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2x1bW4udGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie3ZhbHVlOiByb3dbY29sdW1uLmZpZWxkXSwgcm93OiByb3d9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCIhY29sdW1uLnRlbXBsYXRlXCIgW3RleHRDb250ZW50XT1cInJvd1tjb2x1bW4uZmllbGRdXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLnJlc2l6YWJsZVwiIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLXNpemVyLXBsYWNlaG9sZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVHcmlkQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFRleHRBbGlnbjogQ29sdW1uQWxpZ24gPSBDb2x1bW5BbGlnbi5MZWZ0O1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmUpIHNldCBjb250ZW50KGNvbHVtbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlPikge1xyXG4gICAgdGhpcy5jb2x1bW5zID0gY29sdW1uQ29tcG9uZW50cy50b0FycmF5KCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhOiBPYmplY3RbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkcmFnRHJvcEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIGNvbXBvbmVudCBlbWl0IGRyYWcgYW5kIGRyb3AgYWN0aW9ucyBpbnN0ZWFkIG9mIGhhbmRsZVxyXG4gICAqICh1cGRhdGUgY29sbGVjdGlvbikgYnkgaXRzZWxmXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1pdERyYWdEcm9wOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkRyb3A6IEV2ZW50RW1pdHRlcjx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtmcm9tOiBudW1iZXI7IHRvOiBudW1iZXJ9PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1zaW1wbGUtZ3JpZFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmJ1dHRvbnMgPT09IDEgJiYgdGhpcy5fY29sdW1uRm9yUmVzaXplKSB7XHJcbiAgICAgIGlmICghdGhpcy5fY29sdW1uRm9yUmVzaXplLndpZHRoKSB7XHJcbiAgICAgICAgY29uc3QgcmVjdDogQ2xpZW50UmVjdCA9IChldmVudC50YXJnZXQgYXMgYW55KS5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIHRoaXMuX2NvbHVtbkZvclJlc2l6ZS53aWR0aCA9IHJlY3Qud2lkdGg7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fY29sdW1uRm9yUmVzaXplLndpZHRoICs9IGV2ZW50Lm1vdmVtZW50WDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb2x1bW5Gb3JSZXNpemUgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sdW1uczogU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2NvbHVtbkZvclJlc2l6ZTogU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZTtcclxuXHJcbiAgcHVibGljIGhhbmRsZVNpemVyTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBjb2x1bW46IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmUpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbHVtbkZvclJlc2l6ZSA9IGNvbHVtbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYW5EcmFnRHJvcChkcmFnOiBDZGtEcmFnLCBkcm9wOiBDZGtEcm9wTGlzdCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8T2JqZWN0W10+KTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBmcm9tOiBudW1iZXIgPSBldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgICBjb25zdCB0bzogbnVtYmVyID0gZXZlbnQuY3VycmVudEluZGV4O1xyXG4gICAgICBpZiAoZnJvbSA9PT0gdG8pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZW1pdERyYWdEcm9wKSB7XHJcbiAgICAgICAgdGhpcy5vbkRyb3AubmV4dCh7ZnJvbTogZnJvbSwgdG86IHRvfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZGF0YSwgZnJvbSwgdG8pO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWdyaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NpbXBsZS1ncmlkL3NpbXBsZS1ncmlkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBeUQ3RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsdUJBQXVCO0lBdUM5RCxZQUNVLGdCQUFtQyxFQUNuQyxXQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUhBLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBeEN4QixxQkFBZ0IsR0FBZ0IsV0FBVyxDQUFDLElBQUksQ0FBQztRQTZCMUQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixpQkFBWSxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDM0IscUJBQWdCLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFHN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsWUFBTyxHQUFZLEtBQUssQ0FBQztJQU9qQyxDQUFDO0lBeENNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFHTSxhQUFhLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVB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SSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7OztZQXZURixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7aUJBQ2xCO2dCQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBaEVDLGlCQUFpQjtZQU1WLGlCQUFpQjs7O3dCQThEdkIsV0FBVyxTQUFDLHNCQUFzQjs0QkFLbEMsWUFBWSxTQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1NYXN0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9mb3JtLW1hc3Rlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEJhc2VTaW1wbGVHcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4vYmFzZS1zaW1wbGUtZ3JpZC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ29sdW1uQWxpZ24gfSBmcm9tIFwiLi9zaW1wbGUtZ3JpZC1jb2x1bW4uZGlyZWN0aXZlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zaW1wbGUtZ3JpZFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZ3JpZC10b29sYmFyICpuZ0lmPVwiaW5saW5lRWRpdCAmJiBzaG93VG9vbGJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChhZGRDbGljayk9XCJhZGRSb3coKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChlZGl0Q2xpY2spPVwiZWRpdFJvdygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGljayk9XCJ2YWxpZGF0ZUFuZFNhdmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJjYW5jZWxFZGl0Um93KClcIlxyXG4gICAgPjwvY28tZ3JpZC10b29sYmFyPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpbXBsZS1ncmlkLWNvbHVtbi1oZWFkZXItd3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlclwiICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiY29sdW1uLndpZHRoXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJjb2x1bW4ud2lkdGhcIiBbc3R5bGUucGFkZGluZy1yaWdodC5weF09XCJpc1NpbmdsZUNvbHVtbihjb2x1bW4pID8gMCA6IDVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWhlYWRlci1sYWJlbFwiIFtuZ0NsYXNzXT1cImNvbHVtbi50ZXh0QWxpZ24gPyBjb2x1bW4udGV4dEFsaWduIDogZGVmYXVsdFRleHRBbGlnblwiXHJcbiAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiY29sdW1uLmhlYWRlclRleHRcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLnJlc2l6YWJsZVwiIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLXNpemVyXCJcclxuICAgICAgICAgICAgIChtb3VzZWRvd24pPVwiaGFuZGxlU2l6ZXJNb3VzZURvd24oJGV2ZW50LCBjb2x1bW4pXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNka0Ryb3BMaXN0R3JvdXAgY2xhc3M9XCJkcm9wLWxpc3QtZ3JvdXBcIj5cclxuICAgICAgPGRpdiAjZHJvcExpc3QgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkLWRyYWctZHJvcC1saXN0XCJcclxuICAgICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhZHJhZ0Ryb3BFbmFibGVkXCJcclxuICAgICAgICAgICBbY2RrRHJvcExpc3REYXRhXT1cImRhdGFcIlxyXG4gICAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImhhbmRsZUNhbkRyYWdEcm9wXCJcclxuICAgICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImhhbmRsZURyb3AoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtcm93XCIgW2NsYXNzLnNlbGVjdGVkXT1cInJvd0luZGV4ID09PSBzZWxlY3RlZFJvd0luZGV4XCJcclxuICAgICAgICAgICAgIFtjbGFzcy5lZGl0dGluZ109XCJyb3dJbmRleCA9PT0gZWRpdFJvd0luZGV4XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBkYXRhOyBsZXQgcm93SW5kZXggPSBpbmRleFwiIGNka0RyYWdcclxuICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDbGlja1JvdygkZXZlbnQsIHJvd0luZGV4KVwiIChkYmxjbGljayk9XCJoYW5kbGVEYmxDbGlja1JvdygkZXZlbnQsIHJvd0luZGV4KVwiPlxyXG4gICAgICAgICAgPGNvLWZvcm0gY2xhc3M9XCJzaW1wbGUtZ3JpZC1yb3ctZm9ybVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCBjb2x1bW5JbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImlzU2luZ2xlQ29sdW1uKGNvbHVtbikgPyAnZml0LWNvbnRlbnQnIDogY29sdW1uLndpZHRoXCIgW3N0eWxlLm1heC13aWR0aC5weF09XCJjb2x1bW4ud2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0LnB4XT1cImlzU2luZ2xlQ29sdW1uKGNvbHVtbikgPyAwIDogNVwiID5cclxuICAgICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jZWxsXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgW3Jvd109XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAgICBbZWRpdE1vZGVdPVwiaW5saW5lRWRpdCAmJiBlZGl0dGluZyAmJiByb3dJbmRleCA9PT0gZWRpdFJvd0luZGV4ICYmICFpc1NpbmdsZUNvbHVtbihjb2x1bW4pICYmICFyb3dDb250YWluc1NpbmdsZUNvbHVtbihyb3csIGNvbHVtbnMpXCJcclxuICAgICAgICAgICAgICAgICAgW2ZpZWxkRWRpdE1vZGVdPVwiZWRpdENlbGxJbmRleCA9PT0gY29sdW1uSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAoY2VsbENsaWNrKT1cImhhbmRsZUNlbGxDbGljayhjb2x1bW5JbmRleClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tc2ltcGxlLWdyaWQtY2VsbD5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sdW1uLnJlc2l6YWJsZVwiIGNsYXNzPVwic2ltcGxlLWdyaWQtY29sdW1uLXNpemVyLXBsYWNlaG9sZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBsZUdyaWRDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2ltcGxlR3JpZENvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRUZXh0QWxpZ246IENvbHVtbkFsaWduID0gQ29sdW1uQWxpZ24uTGVmdDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tc2ltcGxlLWdyaWRcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlubGluZUVkaXQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdUYWInKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuX25leHRBdmFpbGFibGVDZWxsVG9FZGl0KCFldmVudC5zaGlmdEtleSwgdGhpcy5lZGl0Q2VsbEluZGV4KVxyXG4gICAgICAgIC50aGVuKChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRDZWxsSW5kZXggPSBpbmRleDtcclxuICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9KVxyXG4gICAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VzY2FwZScpIHtcclxuICAgICAgdGhpcy5jYW5jZWxFZGl0Um93KCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xyXG4gICAgICB0aGlzLnZhbGlkYXRlQW5kU2F2ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVkaXR0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGVkaXRSb3dJbmRleDogbnVtYmVyID0gLTE7XHJcbiAgcHVibGljIGVkaXRDZWxsSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gIHB1YmxpYyBzZWxlY3RlZFJvd0luZGV4OiBudW1iZXIgPSAtMTtcclxuICBwdWJsaWMgcm93VG9FZGl0OiBhbnk7XHJcblxyXG4gIHByaXZhdGUgX2RvdWJsZUNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9uZXdSb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlcjogRm9ybU1hc3RlclNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTaW5nbGVDb2x1bW4oY29sdW1uKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gY29sdW1uLnNpbmdsZUNvbHVtbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByb3dDb250YWluc1NpbmdsZUNvbHVtbihyb3csIGNvbHVtbnMpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHNpbmdsZUNvbHVtbiA9IGNvbHVtbnMuZmluZChjb2x1bW4gPT4gdGhpcy5pc1NpbmdsZUNvbHVtbihjb2x1bW4pICYmICEhcm93W2NvbHVtbi5maWVsZF0pXHJcbiAgICByZXR1cm4gISFzaW5nbGVDb2x1bW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUm93KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsaWQ6IGJvb2xlYW4gPSB0aGlzLnZhbGlkYXRlQW5kU2F2ZSgpO1xyXG4gICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuZGF0YS51bnNoaWZ0KHt9KTtcclxuICAgICAgdGhpcy5fbmV3Um93ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0Um93SW5kZXggPSAwO1xyXG4gICAgICB0aGlzLl9uZXh0QXZhaWxhYmxlQ2VsbFRvRWRpdCh0cnVlKS50aGVuKChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2VsbEluZGV4ID0gaW5kZXg7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmVkaXR0aW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5yb3dUb0VkaXQgPSB0aGlzLmRhdGFbMF07XHJcbiAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB2YWxpZGF0ZUFuZFNhdmUoc3RvcEVkaXR0aW5nOiBib29sZWFuID0gdHJ1ZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmVkaXR0aW5nKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsaWQ6IGJvb2xlYW4gPSB0aGlzLl9mb3JtTWFzdGVyLnN1Ym1pdFNsYXZlcygpO1xyXG4gICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuX3NhdmVSb3coc3RvcEVkaXR0aW5nKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsRWRpdFJvdygpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5lZGl0dGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fbmV3Um93KSB7XHJcbiAgICAgIHRoaXMuZGF0YS5zaGlmdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhW3RoaXMuZWRpdFJvd0luZGV4XSA9IHRoaXMucm93VG9FZGl0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbmV3Um93ID0gZmFsc2U7XHJcbiAgICB0aGlzLmVkaXR0aW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2xpY2tSb3coZXZlbnQ6IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5fZG91YmxlQ2xpY2tlZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlbGVjdFRoZVJvdyhpbmRleCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdFRoZVJvdyhpbmRleDogbnVtYmVyLCBlbWl0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb3dJbmRleCAhPT0gaW5kZXggJiYgKCh0aGlzLmVkaXR0aW5nICYmIHRoaXMudmFsaWRhdGVBbmRTYXZlKCkpIHx8ICF0aGlzLmVkaXR0aW5nKSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm93SW5kZXggPSBpbmRleDtcclxuICAgICAgaWYgKGVtaXQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdFJvdy5uZXh0KHRoaXMuZGF0YVt0aGlzLnNlbGVjdGVkUm93SW5kZXhdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURibENsaWNrUm93KGV2ZW50OiBNb3VzZUV2ZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kb3VibGVDbGlja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuZGJsQ2xpY2tSb3cubmV4dCh0aGlzLmRhdGFbaW5kZXhdKTtcclxuICAgIHRoaXMuc2VsZWN0VGhlUm93KGluZGV4LCBmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5pbmxpbmVFZGl0KSB7XHJcbiAgICAgIHRoaXMuZWRpdFJvdyhldmVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9yZXNldERibENsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdFJvdyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0Um93SW5kZXggPSB0aGlzLnNlbGVjdGVkUm93SW5kZXg7XHJcbiAgICB0aGlzLnJvd1RvRWRpdCA9IHRoaXMuZGF0YVt0aGlzLmVkaXRSb3dJbmRleF07XHJcbiAgICB0aGlzLmVkaXR0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX25leHRBdmFpbGFibGVDZWxsVG9FZGl0KHRydWUpLnRoZW4oKGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5lZGl0Q2VsbEluZGV4ID0gaW5kZXg7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDZWxsQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0Q2VsbEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLl9kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNldERibENsaWNrKCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2RvdWJsZUNsaWNrZWQgPSBmYWxzZTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBuZXh0OyBNb3ZlIHRvIG5leHQgb3IgcHJldmlvdXMgY2VsbFxyXG4gICAqIEBwYXJhbSBzdGFydDsgU3RhcnQgZnJvbSBjZWxsaW5kZXhcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX25leHRBdmFpbGFibGVDZWxsVG9FZGl0KG5leHQ6IGJvb2xlYW4sIHN0YXJ0OiBudW1iZXIgPSAtMSk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IG51bUVkaXRhYmxlQ29sdW1uczogbnVtYmVyID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjID0+ICFjLnJlYWRvbmx5KS5sZW5ndGg7XHJcbiAgICAgIGNvbnN0IHdhbnRlZEluZGV4ID0gc3RhcnQgKyAobmV4dCA/IDEgOiAtMSk7XHJcbiAgICAgIGlmICh3YW50ZWRJbmRleCA+PSBudW1FZGl0YWJsZUNvbHVtbnMpIHtcclxuICAgICAgICB0aGlzLl9nZXROZXh0RWRpdFJvd0luZGV4KClcclxuICAgICAgICAgIC50aGVuKChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdFJvd0luZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fZ2V0TmV4dEVkaXRDZWxsSW5kZXgoMCkpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICByZWplY3QoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHdhbnRlZEluZGV4IDwgMCkge1xyXG4gICAgICAgIHRoaXMuX2dldFByZXZpb3VzRWRpdFJvd0luZGV4KClcclxuICAgICAgICAgIC50aGVuKChpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdFJvd0luZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fZ2V0UHJldmlvdXNFZGl0Q2VsbEluZGV4KHRoaXMuY29sdW1ucy5sZW5ndGggLSAxKSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHJlamVjdCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzb2x2ZShuZXh0ID8gdGhpcy5fZ2V0TmV4dEVkaXRDZWxsSW5kZXgoc3RhcnQgKyAxKSA6IHRoaXMuX2dldFByZXZpb3VzRWRpdENlbGxJbmRleChzdGFydCAtIDEpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXROZXh0RWRpdENlbGxJbmRleChzdGFydDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHN0YXJ0OyBpIDwgdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICghdGhpcy5jb2x1bW5zW2ldLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFByZXZpb3VzRWRpdENlbGxJbmRleChzdGFydDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHN0YXJ0OyBpID49IDA7IGktLSkge1xyXG4gICAgICBpZiAoIXRoaXMuY29sdW1uc1tpXS5yZWFkb25seSkge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXROZXh0RWRpdFJvd0luZGV4KCk6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIGxldCBuZXdSb3dJbmRleDogbnVtYmVyID0gMDtcclxuICAgICAgaWYgKHRoaXMuZWRpdFJvd0luZGV4ICsgMSA+PSB0aGlzLmRhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgbmV3Um93SW5kZXggPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld1Jvd0luZGV4ID0gdGhpcy5lZGl0Um93SW5kZXggKyAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChuZXdSb3dJbmRleCAhPT0gdGhpcy5lZGl0Um93SW5kZXgpIHsgLy8gZ28gdG8gZGlmZmVyZW50IHJvdyB2YWxpZGF0ZSBjdXJyZW50IG9uZSBmaXJzdFxyXG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlQW5kU2F2ZShmYWxzZSkpIHtcclxuICAgICAgICAgIHRoaXMucm93VG9FZGl0ID0gdGhpcy5kYXRhW25ld1Jvd0luZGV4XTtcclxuICAgICAgICAgIHJlc29sdmUobmV3Um93SW5kZXgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmVzb2x2ZShuZXdSb3dJbmRleCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0UHJldmlvdXNFZGl0Um93SW5kZXgoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgbGV0IG5ld1Jvd0luZGV4OiBudW1iZXIgPSAwO1xyXG4gICAgICBpZiAodGhpcy5lZGl0Um93SW5kZXggLSAxIDwgMCkge1xyXG4gICAgICAgIG5ld1Jvd0luZGV4ID0gdGhpcy5kYXRhLmxlbmd0aCAtIDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3Um93SW5kZXggPSB0aGlzLmVkaXRSb3dJbmRleCAtIDE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG5ld1Jvd0luZGV4ICE9PSB0aGlzLmVkaXRSb3dJbmRleCkgeyAvLyBnbyB0byBkaWZmZXJlbnQgcm93IHZhbGlkYXRlIGN1cnJlbnQgb25lIGZpcnN0XHJcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVBbmRTYXZlKGZhbHNlKSkge1xyXG4gICAgICAgICAgdGhpcy5yb3dUb0VkaXQgPSB0aGlzLmRhdGFbbmV3Um93SW5kZXhdO1xyXG4gICAgICAgICAgcmVzb2x2ZShuZXdSb3dJbmRleCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKG5ld1Jvd0luZGV4KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zYXZlUm93KHN0b3BFZGl0dGluZzogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIC8vIGVtaXQgc2F2ZUV2ZW50XHJcbiAgICBpZiAodGhpcy5yb3dUb0VkaXQpIHtcclxuICAgICAgdGhpcy5zYXZlUm93Lm5leHQodGhpcy5yb3dUb0VkaXQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbmV3Um93ID0gZmFsc2U7XHJcbiAgICBpZiAoc3RvcEVkaXR0aW5nKSB7XHJcbiAgICAgIHRoaXMuZWRpdFJvd0luZGV4ID0gLTE7XHJcbiAgICAgIHRoaXMuZWRpdENlbGxJbmRleCA9IC0xO1xyXG4gICAgICB0aGlzLmVkaXR0aW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucm93VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdGlvbi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -3,22 +3,31 @@ import { CommonModule } from "@angular/common";
|
|
|
3
3
|
import { SimpleGridComponent } from "./simple-grid.component";
|
|
4
4
|
import { DragDropModule } from "@angular/cdk/drag-drop";
|
|
5
5
|
import { SimpleGridColumnDirective } from "./simple-grid-column.directive";
|
|
6
|
+
import { GridToolbarModule } from "../grid-toolbar/grid-toolbar.module";
|
|
7
|
+
import { InputTextModule } from "../input-text/input-text.module";
|
|
8
|
+
import { SimpleGridCellComponent } from "./simple-grid-cell.component";
|
|
9
|
+
import { FormModule } from "../form/form.module";
|
|
6
10
|
export class SimpleGridModule {
|
|
7
11
|
}
|
|
8
12
|
SimpleGridModule.decorators = [
|
|
9
13
|
{ type: NgModule, args: [{
|
|
10
14
|
imports: [
|
|
11
15
|
CommonModule,
|
|
12
|
-
DragDropModule
|
|
16
|
+
DragDropModule,
|
|
17
|
+
GridToolbarModule,
|
|
18
|
+
InputTextModule,
|
|
19
|
+
FormModule
|
|
13
20
|
],
|
|
14
21
|
declarations: [
|
|
15
22
|
SimpleGridComponent,
|
|
23
|
+
SimpleGridCellComponent,
|
|
16
24
|
SimpleGridColumnDirective
|
|
17
25
|
],
|
|
18
26
|
exports: [
|
|
19
27
|
SimpleGridComponent,
|
|
28
|
+
SimpleGridCellComponent,
|
|
20
29
|
SimpleGridColumnDirective
|
|
21
30
|
]
|
|
22
31
|
},] }
|
|
23
32
|
];
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWdyaWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NpbXBsZS1ncmlkL3NpbXBsZS1ncmlkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQXFCL0MsTUFBTSxPQUFPLGdCQUFnQjs7O1lBbkI1QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxpQkFBaUI7b0JBQ2pCLGVBQWU7b0JBQ2YsVUFBVTtpQkFDWDtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osbUJBQW1CO29CQUNuQix1QkFBdUI7b0JBQ3ZCLHlCQUF5QjtpQkFDMUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLG1CQUFtQjtvQkFDbkIsdUJBQXVCO29CQUN2Qix5QkFBeUI7aUJBQzFCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1NpbXBsZUdyaWRDb21wb25lbnR9IGZyb20gXCIuL3NpbXBsZS1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQge1NpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmV9IGZyb20gXCIuL3NpbXBsZS1ncmlkLWNvbHVtbi5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtHcmlkVG9vbGJhck1vZHVsZX0gZnJvbSBcIi4uL2dyaWQtdG9vbGJhci9ncmlkLXRvb2xiYXIubW9kdWxlXCI7XHJcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge1NpbXBsZUdyaWRDZWxsQ29tcG9uZW50fSBmcm9tIFwiLi9zaW1wbGUtZ3JpZC1jZWxsLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0Zvcm1Nb2R1bGV9IGZyb20gXCIuLi9mb3JtL2Zvcm0ubW9kdWxlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgR3JpZFRvb2xiYXJNb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBGb3JtTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNpbXBsZUdyaWRDb21wb25lbnQsXHJcbiAgICBTaW1wbGVHcmlkQ2VsbENvbXBvbmVudCxcclxuICAgIFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNpbXBsZUdyaWRDb21wb25lbnQsXHJcbiAgICBTaW1wbGVHcmlkQ2VsbENvbXBvbmVudCxcclxuICAgIFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVHcmlkTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -7,6 +7,7 @@ export const NUMBER_INPUTS_KEY_DOWN_WHITE_LIST = [
|
|
|
7
7
|
KeyboardCode.Down,
|
|
8
8
|
KeyboardCode.Up,
|
|
9
9
|
KeyboardCode.Tab,
|
|
10
|
+
KeyboardCode.Enter,
|
|
10
11
|
KeyboardCode.Home,
|
|
11
12
|
KeyboardCode.End,
|
|
12
13
|
KeyboardCode.Delete,
|
|
@@ -41,4 +42,4 @@ export const NUMBER_INPUTS_KEY_DOWN_WHITE_LIST = [
|
|
|
41
42
|
KeyboardCode.NumpadEight,
|
|
42
43
|
KeyboardCode.NumpadNine
|
|
43
44
|
];
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0cy1rZXktZG93bi13aGl0ZS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL2NvbnN0YW50L251bWJlci1pbnB1dHMta2V5LWRvd24td2hpdGUtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQW1CO0lBQzdELCtDQUErQztJQUMvQyxZQUFZLENBQUMsSUFBSTtJQUNqQixZQUFZLENBQUMsRUFBRTtJQUNmLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxFQUFFO0lBQ2YsWUFBWSxDQUFDLEdBQUc7SUFDaEIsWUFBWSxDQUFDLEtBQUs7SUFDbEIsWUFBWSxDQUFDLElBQUk7SUFDakIsWUFBWSxDQUFDLEdBQUc7SUFDaEIsWUFBWSxDQUFDLE1BQU07SUFDbkIsWUFBWSxDQUFDLE1BQU07SUFDbkIsWUFBWSxDQUFDLEtBQUs7SUFDbEIsWUFBWSxDQUFDLFNBQVM7SUFFdEIsOEJBQThCO0lBQzlCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxNQUFNO0lBQ25CLFlBQVksQ0FBQyxZQUFZO0lBQ3pCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxHQUFHO0lBQ2hCLFlBQVksQ0FBQyxHQUFHO0lBQ2hCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxHQUFHO0lBQ2hCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxJQUFJO0lBQ2pCLFlBQVksQ0FBQyxLQUFLO0lBQ2xCLFlBQVksQ0FBQyxZQUFZO0lBQ3pCLFlBQVksQ0FBQyxTQUFTO0lBQ3RCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFlBQVksQ0FBQyxTQUFTO0lBQ3RCLFlBQVksQ0FBQyxTQUFTO0lBQ3RCLFlBQVksQ0FBQyxXQUFXO0lBQ3hCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFlBQVksQ0FBQyxVQUFVO0lBQ3ZCLFlBQVksQ0FBQyxTQUFTO0lBQ3RCLFlBQVksQ0FBQyxXQUFXO0lBQ3hCLFlBQVksQ0FBQyxXQUFXO0lBQ3hCLFlBQVksQ0FBQyxVQUFVO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0tleWJvYXJkQ29kZX0gZnJvbSBcIi4uL2VudW0va2V5Ym9hcmQtY29kZS5lbnVtXCI7XHJcblxyXG5leHBvcnQgY29uc3QgTlVNQkVSX0lOUFVUU19LRVlfRE9XTl9XSElURV9MSVNUOiBLZXlib2FyZENvZGVbXSA9IFtcclxuICAgIC8qIG5hdmlnYXRpb24gYW5kIGZ1bmN0aW9uYWwgdXRpbGl0eSBidXR0b25zICovXHJcbiAgICBLZXlib2FyZENvZGUuTGVmdCxcclxuICAgIEtleWJvYXJkQ29kZS5VcCxcclxuICAgIEtleWJvYXJkQ29kZS5SaWdodCxcclxuICAgIEtleWJvYXJkQ29kZS5Eb3duLFxyXG4gICAgS2V5Ym9hcmRDb2RlLlVwLFxyXG4gICAgS2V5Ym9hcmRDb2RlLlRhYixcclxuICAgIEtleWJvYXJkQ29kZS5FbnRlcixcclxuICAgIEtleWJvYXJkQ29kZS5Ib21lLFxyXG4gICAgS2V5Ym9hcmRDb2RlLkVuZCxcclxuICAgIEtleWJvYXJkQ29kZS5EZWxldGUsXHJcbiAgICBLZXlib2FyZENvZGUuSW5zZXJ0LFxyXG4gICAgS2V5Ym9hcmRDb2RlLlNoaWZ0LFxyXG4gICAgS2V5Ym9hcmRDb2RlLkJhY2tzcGFjZSxcclxuXHJcbiAgICAvKiBhY3R1YWwgbnVtYmVyIGlucHV0IHBhcnQgKi9cclxuICAgIEtleWJvYXJkQ29kZS5Db21tYSxcclxuICAgIEtleWJvYXJkQ29kZS5QZXJpb2QsXHJcbiAgICBLZXlib2FyZENvZGUuRGVjaW1hbFBvaW50LFxyXG4gICAgS2V5Ym9hcmRDb2RlLlplcm8sXHJcbiAgICBLZXlib2FyZENvZGUuT25lLFxyXG4gICAgS2V5Ym9hcmRDb2RlLlR3byxcclxuICAgIEtleWJvYXJkQ29kZS5UaHJlZSxcclxuICAgIEtleWJvYXJkQ29kZS5Gb3VyLFxyXG4gICAgS2V5Ym9hcmRDb2RlLkZpdmUsXHJcbiAgICBLZXlib2FyZENvZGUuU2l4LFxyXG4gICAgS2V5Ym9hcmRDb2RlLlNldmVuLFxyXG4gICAgS2V5Ym9hcmRDb2RlLkVpZ2h0LFxyXG4gICAgS2V5Ym9hcmRDb2RlLk5pbmUsXHJcbiAgICBLZXlib2FyZENvZGUuTWludXMsXHJcbiAgICBLZXlib2FyZENvZGUuTWludXNGaXJlRm94LFxyXG4gICAgS2V5Ym9hcmRDb2RlLlN1YnN0cmFjdCxcclxuICAgIEtleWJvYXJkQ29kZS5OdW1wYWRaZXJvLFxyXG4gICAgS2V5Ym9hcmRDb2RlLk51bXBhZE9uZSxcclxuICAgIEtleWJvYXJkQ29kZS5OdW1wYWRUd28sXHJcbiAgICBLZXlib2FyZENvZGUuTnVtcGFkVGhyZWUsXHJcbiAgICBLZXlib2FyZENvZGUuTnVtcGFkRm91cixcclxuICAgIEtleWJvYXJkQ29kZS5OdW1wYWRGaXZlLFxyXG4gICAgS2V5Ym9hcmRDb2RlLk51bXBhZFNpeCxcclxuICAgIEtleWJvYXJkQ29kZS5OdW1wYWRTZXZlbixcclxuICAgIEtleWJvYXJkQ29kZS5OdW1wYWRFaWdodCxcclxuICAgIEtleWJvYXJkQ29kZS5OdW1wYWROaW5lXHJcbl07XHJcbiJdfQ==
|
package/esm2015/public-api.js
CHANGED
|
@@ -11,6 +11,8 @@ export * from './lib/components/co-dialog/co-dialog.module';
|
|
|
11
11
|
export * from './lib/components/co-dialog/co-dialog.component';
|
|
12
12
|
export * from './lib/components/co-dialog-prompt/co-dialog-prompt.module';
|
|
13
13
|
export * from './lib/components/co-dialog-prompt/co-dialog-prompt.component';
|
|
14
|
+
export * from './lib/components/co-dialog-wizard/co-dialog-wizard.module';
|
|
15
|
+
export * from './lib/components/co-dialog-wizard/co-dialog-wizard.component';
|
|
14
16
|
export * from './lib/components/co-kanban/co-kanban.module';
|
|
15
17
|
export * from './lib/components/co-kanban/co-kanban.component';
|
|
16
18
|
export * from './lib/components/co-schedule/co-schedule.module';
|
|
@@ -76,4 +78,4 @@ export * from './lib/components/carousel-3d/carousel-3d.component';
|
|
|
76
78
|
export * from './lib/components/carousel-3d/carousel-3d.module';
|
|
77
79
|
export * from './lib/pipes/price-display.pipe';
|
|
78
80
|
export * from './lib/pipes/price-display-pipe.module';
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLCtEQUErRCxDQUFDO0FBQzlFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb3JlY29tcG9uZW50c1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXJ0aWNsZS10aWxlL2FydGljbGUtdGlsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hcnRpY2xlLXRpbGUvYXJ0aWNsZS10aWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24tZHJvcC1kb3duL2J1dHRvbi1kcm9wLWRvd24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uLWRyb3AtZG93bi9idXR0b24tZHJvcC1kb3duLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvLWRpYWxvZy9jby1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY28tZGlhbG9nL2NvLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jby1kaWFsb2ctcHJvbXB0L2NvLWRpYWxvZy1wcm9tcHQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY28tZGlhbG9nLXByb21wdC9jby1kaWFsb2ctcHJvbXB0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvLWRpYWxvZy13aXphcmQvY28tZGlhbG9nLXdpemFyZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jby1kaWFsb2ctd2l6YXJkL2NvLWRpYWxvZy13aXphcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY28ta2FuYmFuL2NvLWthbmJhbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jby1rYW5iYW4vY28ta2FuYmFuLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvLXNjaGVkdWxlL2NvLXNjaGVkdWxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvLXNjaGVkdWxlL2NvLXNjaGVkdWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvLXNpZGViYXIvY28tc2lkZWJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jby1zaWRlYmFyL2NvLXNpZGViYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY28tdG9nZ2xlL2NvLXRvZ2dsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jby10b2dnbGUvY28tdG9nZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbGxhcHNpYmxlL2NvbGxhcHNpYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Ryb3AtZG93bi1saXN0L2Ryb3AtZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kcm9wLWRvd24tbGlzdC9kcm9wLWRvd24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm0ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2UvZm9ybS1tYXN0ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyaWQvY28tZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmlkL2NvLWdyaWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbWFnZS9pbWFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1jaGVja2JveC1tdWx0aS1zZWxlY3QvaW5wdXQtY2hlY2tib3gtbXVsdGktc2VsZWN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0LWNoZWNrYm94LW11bHRpLXNlbGVjdC9pbnB1dC1jaGVja2JveC1tdWx0aS1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXQtY29tYm8tYm94L2lucHV0LWNvbWJvLWJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1jb21iby1ib3gvaW5wdXQtY29tYm8tYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcGlja2VyL2lucHV0LWRhdGUtcGlja2VyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcGlja2VyL2lucHV0LWRhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0LW51bWJlci1waWNrZXIvaW5wdXQtbnVtYmVyLXBpY2tlci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1udW1iZXItcGlja2VyL2lucHV0LW51bWJlci1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXQtcmFkaW8tYnV0dG9uL2lucHV0LXJhZGlvLWJ1dHRvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1yYWRpby1idXR0b24vaW5wdXQtcmFkaW8tYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0LXRleHQvaW5wdXQtdGV4dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXQtdGV4dGFyZWEvaW5wdXQtdGV4dGFyZWEubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXQtdGV4dGFyZWEvaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGV2ZWwtaW5kaWNhdG9yL2xldmVsLWluZGljYXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sZXZlbC1pbmRpY2F0b3IvbGV2ZWwtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1saXN0L211bHRpLXNlbGVjdC1saXN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1saXN0L211bHRpLXNlbGVjdC1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Bpdm90L2NvLXBpdm90Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Bpdm90L2NvLXBpdm90LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BvcHVwL3RleHQtaW5wdXQtcG9wdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcG9wdXAvcG9wdXAtd2luZG93LXNoZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLW1lc3NhZ2UtZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wb3B1cC9wb3B1cC1idXR0b25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RpbGUvdGlsZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90aWxlL3RpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvZW51bS9jb3JlLWNvbXBvbmVudHMtaWNvbi5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcG9wdXAvc2VydmljZS9wcm9tcHQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi1jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmFzZS9jb21wb25lbnQtaW50ZXJmYWNlLW5hbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jby1yaWNoLXRleHQtZWRpdG9yL2NvLXJpY2gtdGV4dC1lZGl0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY28tcmljaC10ZXh0LWVkaXRvci9jby1yaWNoLXRleHQtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0LWxpc3Rib3gvaW5wdXQtbGlzdGJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dC1saXN0Ym94L2lucHV0LWxpc3Rib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2ltcGxlLWdyaWQvc2ltcGxlLWdyaWQtY29sdW1uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpbXBsZS1ncmlkL3NpbXBsZS1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NpbXBsZS1ncmlkL3NpbXBsZS1ncmlkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsLTNkL2Nhcm91c2VsLTNkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Nhcm91c2VsLTNkL2Nhcm91c2VsLTNkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9wcmljZS1kaXNwbGF5LnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcHJpY2UtZGlzcGxheS1waXBlLm1vZHVsZSc7XG5cbiJdfQ==
|