@universis/ngx-tables 0.6.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/LICENSE +163 -0
- package/README.md +121 -0
- package/bundles/universis-ngx-tables.umd.js +4591 -0
- package/bundles/universis-ngx-tables.umd.js.map +1 -0
- package/bundles/universis-ngx-tables.umd.min.js +2 -0
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -0
- package/esm2015/lib/components/add-items/add-items.component.js +142 -0
- package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +120 -0
- package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +53 -0
- package/esm2015/lib/components/advanced-list/advanced-list.component.js +173 -0
- package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +175 -0
- package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +134 -0
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +51 -0
- package/esm2015/lib/components/advanced-select/advanced-select.service.js +40 -0
- package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +37 -0
- package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +44 -0
- package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +23 -0
- package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +519 -0
- package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +109 -0
- package/esm2015/lib/components/advanced-table/advanced-table.component.js +1007 -0
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +16 -0
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +271 -0
- package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +2 -0
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +379 -0
- package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +52 -0
- package/esm2015/lib/directives/advanced-table-editor.directive.js +157 -0
- package/esm2015/lib/directives/btnexp.directive.js +225 -0
- package/esm2015/lib/i18n/tables.el.js +104 -0
- package/esm2015/lib/i18n/tables.en.js +103 -0
- package/esm2015/lib/pipes/advanced-aggregator.pipe.js +35 -0
- package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +46 -0
- package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +117 -0
- package/esm2015/lib/tables.activated-table.service.js +36 -0
- package/esm2015/lib/tables.module.js +134 -0
- package/esm2015/public_api.js +22 -0
- package/esm2015/universis-ngx-tables.js +14 -0
- package/esm5/lib/components/add-items/add-items.component.js +153 -0
- package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +169 -0
- package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +56 -0
- package/esm5/lib/components/advanced-list/advanced-list.component.js +185 -0
- package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +179 -0
- package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +137 -0
- package/esm5/lib/components/advanced-select/advanced-select.component.js +56 -0
- package/esm5/lib/components/advanced-select/advanced-select.service.js +43 -0
- package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +50 -0
- package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +48 -0
- package/esm5/lib/components/advanced-table/advanced-table-search-base.js +29 -0
- package/esm5/lib/components/advanced-table/advanced-table-search.component.js +556 -0
- package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +115 -0
- package/esm5/lib/components/advanced-table/advanced-table.component.js +1035 -0
- package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +16 -0
- package/esm5/lib/components/advanced-table/advanced-table.formatters.js +313 -0
- package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +2 -0
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +295 -0
- package/esm5/lib/components/table-simple-header/table-simple-header.component.js +58 -0
- package/esm5/lib/directives/advanced-table-editor.directive.js +175 -0
- package/esm5/lib/directives/btnexp.directive.js +253 -0
- package/esm5/lib/i18n/tables.el.js +104 -0
- package/esm5/lib/i18n/tables.en.js +103 -0
- package/esm5/lib/pipes/advanced-aggregator.pipe.js +39 -0
- package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +49 -0
- package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +130 -0
- package/esm5/lib/tables.activated-table.service.js +43 -0
- package/esm5/lib/tables.module.js +139 -0
- package/esm5/public_api.js +22 -0
- package/esm5/universis-ngx-tables.js +14 -0
- package/fesm2015/universis-ngx-tables.js +4127 -0
- package/fesm2015/universis-ngx-tables.js.map +1 -0
- package/fesm5/universis-ngx-tables.js +4313 -0
- package/fesm5/universis-ngx-tables.js.map +1 -0
- package/lib/advanced-aggregator.d.ts +124 -0
- package/lib/components/add-items/add-items.component.d.ts +44 -0
- package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +45 -0
- package/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.d.ts +25 -0
- package/lib/components/advanced-list/advanced-list.component.d.ts +42 -0
- package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +42 -0
- package/lib/components/advanced-search-form/advanced-search-form.component.d.ts +27 -0
- package/lib/components/advanced-select/advanced-select.component.d.ts +14 -0
- package/lib/components/advanced-select/advanced-select.service.d.ts +9 -0
- package/lib/components/advanced-table/advanced-filter-value-provider.service.d.ts +8 -0
- package/lib/components/advanced-table/advanced-table-resolvers.d.ts +12 -0
- package/lib/components/advanced-table/advanced-table-search-base.d.ts +7 -0
- package/lib/components/advanced-table/advanced-table-search.component.d.ts +80 -0
- package/lib/components/advanced-table/advanced-table-settings.component.d.ts +35 -0
- package/lib/components/advanced-table/advanced-table.component.d.ts +142 -0
- package/lib/components/advanced-table/advanced-table.formatters.d.ts +62 -0
- package/lib/components/advanced-table/advanced-table.formatters.interface.d.ts +15 -0
- package/lib/components/advanced-table/advanced-table.interfaces.d.ts +27 -0
- package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +82 -0
- package/lib/components/table-simple-header/table-simple-header.component.d.ts +14 -0
- package/lib/directives/advanced-table-editor.directive.d.ts +25 -0
- package/lib/directives/btnexp.directive.d.ts +68 -0
- package/lib/i18n/tables.el.d.ts +102 -0
- package/lib/i18n/tables.en.d.ts +101 -0
- package/lib/pipes/advanced-aggregator.pipe.d.ts +21 -0
- package/lib/pipes/advansed-aggregator-list-title-parse.pipe.d.ts +21 -0
- package/lib/services/advanced-aggregator/advanced-aggregator.service.d.ts +32 -0
- package/lib/tables.activated-table.service.d.ts +9 -0
- package/lib/tables.module.d.ts +7 -0
- package/package.json +51 -0
- package/public_api.d.ts +18 -0
- package/universis-ngx-tables.d.ts +12 -0
- package/universis-ngx-tables.metadata.json +1 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import * as tslib_1 from "tslib";
|
|
2
|
+
import { Component, Input, EventEmitter, ViewChild, ViewEncapsulation, Output } from '@angular/core';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
5
|
+
import { AngularDataContext } from '@themost/angular';
|
|
6
|
+
import 'rxjs/add/observable/combineLatest';
|
|
7
|
+
import { ErrorService, ModalService } from '@universis/common';
|
|
8
|
+
import { RouterModalOkCancel } from '@universis/common/routing';
|
|
9
|
+
import { AppEventService } from '@universis/common';
|
|
10
|
+
import { Observable } from 'rxjs';
|
|
11
|
+
import { AdvancedFormComponent } from '@universis/forms';
|
|
12
|
+
import { ProgressbarComponent } from 'ngx-bootstrap/progressbar';
|
|
13
|
+
export class AdvancedRowActionComponent extends RouterModalOkCancel {
|
|
14
|
+
constructor(router, activatedRoute, _translateService, _context, _errorService, _modalService, _appEvent) {
|
|
15
|
+
super(router, activatedRoute);
|
|
16
|
+
this._translateService = _translateService;
|
|
17
|
+
this._context = _context;
|
|
18
|
+
this._errorService = _errorService;
|
|
19
|
+
this._modalService = _modalService;
|
|
20
|
+
this._appEvent = _appEvent;
|
|
21
|
+
this.modalIcon = 'fas fa-project-diagram';
|
|
22
|
+
this.progressType = 'indigo';
|
|
23
|
+
this.errorMessage = 'Tables.Actions.CompletedWithErrors';
|
|
24
|
+
this.loading = false;
|
|
25
|
+
this.refresh = new EventEmitter();
|
|
26
|
+
// set modal size
|
|
27
|
+
this.modalClass = 'modal-lg';
|
|
28
|
+
// set modal title
|
|
29
|
+
this.modalTitle = 'Tables.Actions.Label';
|
|
30
|
+
// disable ok button
|
|
31
|
+
this.okButtonDisabled = false;
|
|
32
|
+
// set button text
|
|
33
|
+
this.okButtonText = 'Tables.Actions.Start';
|
|
34
|
+
}
|
|
35
|
+
get form() {
|
|
36
|
+
return this.formComponent;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.refreshSubscription = this.refresh.subscribe((value) => {
|
|
40
|
+
if (value && value.progress) {
|
|
41
|
+
let progress = 0;
|
|
42
|
+
if (value.progress < 0) {
|
|
43
|
+
progress = 0;
|
|
44
|
+
}
|
|
45
|
+
else if (value.progress > 100) {
|
|
46
|
+
progress = 100;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
progress = value.progress;
|
|
50
|
+
}
|
|
51
|
+
this.progressComponent.value = progress;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
ngAfterViewInit() {
|
|
56
|
+
if (this.formComponent && this.formComponent.form) {
|
|
57
|
+
this.okButtonDisabled = true;
|
|
58
|
+
this.invalidSubscription = this.formComponent.form.change.subscribe((event) => {
|
|
59
|
+
if (Object.prototype.hasOwnProperty.call(event, "isValid") && (event.changed != null)) {
|
|
60
|
+
this.okButtonDisabled = !event.isValid;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
ngOnDestroy() {
|
|
66
|
+
if (this.refreshSubscription) {
|
|
67
|
+
this.refreshSubscription.unsubscribe();
|
|
68
|
+
}
|
|
69
|
+
if (this.executeSubscription) {
|
|
70
|
+
this.executeSubscription.unsubscribe();
|
|
71
|
+
}
|
|
72
|
+
if (this.invalidSubscription) {
|
|
73
|
+
this.invalidSubscription.unsubscribe();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
cancel() {
|
|
77
|
+
if (this.loading) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
// close
|
|
81
|
+
if (this._modalService.modalRef) {
|
|
82
|
+
return this._modalService.modalRef.hide();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
ok() {
|
|
86
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
try {
|
|
88
|
+
this.loading = true;
|
|
89
|
+
this.lastError = null;
|
|
90
|
+
if (this.formComponent && this.formComponent.form &&
|
|
91
|
+
this.formComponent.form.formio && this.formComponent.form.formio.data) {
|
|
92
|
+
// set data
|
|
93
|
+
this.data = this.formComponent.form.formio.data;
|
|
94
|
+
}
|
|
95
|
+
// do action
|
|
96
|
+
this.execute.subscribe((result) => {
|
|
97
|
+
this.loading = false;
|
|
98
|
+
this.refresh.emit({
|
|
99
|
+
progress: 100
|
|
100
|
+
});
|
|
101
|
+
if (result && result.errors && result.errors > 0) {
|
|
102
|
+
// show message for partial success
|
|
103
|
+
if (result.errors === 1) {
|
|
104
|
+
this.lastError = new Error(this._translateService.instant(`${this.errorMessage}.Description.One`));
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.lastError = new Error(this._translateService.instant(`${this.errorMessage}.Description.Many`, result));
|
|
108
|
+
}
|
|
109
|
+
this.refresh.emit({
|
|
110
|
+
progress: 1
|
|
111
|
+
});
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (this._modalService.modalRef) {
|
|
115
|
+
this._modalService.modalRef.hide();
|
|
116
|
+
}
|
|
117
|
+
}, (err) => {
|
|
118
|
+
this.loading = false;
|
|
119
|
+
this.lastError = err;
|
|
120
|
+
this.refresh.emit({
|
|
121
|
+
progress: 0
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
this.loading = false;
|
|
127
|
+
this.lastError = err;
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
AdvancedRowActionComponent.decorators = [
|
|
133
|
+
{ type: Component, args: [{
|
|
134
|
+
selector: 'app-advanced-row-action',
|
|
135
|
+
template: "<div>\n <div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button (click)=\"cancel()\" [disabled]=\"loading\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body pt-0 mt-2 pb-0\">\n <div class=\"row\" *ngIf=\"lastError\">\n <div class=\"col-12\">\n <div class=\"alert alert-warning\" role=\"alert\">\n <span>{{ 'Tables.Actions.CompletedWithErrors.Title' | translate }}</span><br>\n <small *ngIf=\"lastError.status >= 0\" [translate]=\"'E' + lastError.status + '.message'\"></small>\n <small *ngIf=\"lastError.status == null\">{{lastError.message}}</small>\n </div>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-12 mb-3\">\n <div class=\"text-justify\">\n {{description | translate}}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <div *ngIf=\"items && items.length > 1\" [translate]=\"'Tables.Actions.ActionMessage.Many'\" [translateParams]=\"items\"></div>\n <div *ngIf=\"items && items.length === 1\" [translate]=\"'Tables.Actions.ActionMessage.One'\"></div>\n <div class=\"font-weight-bold text-danger\" *ngIf=\"items && items.length <= 0\" [translate]=\"'Tables.Actions.ActionMessage.None'\"></div>\n <div class=\"pt-2 font-weight-bold text-danger\" *ngIf=\"additionalMessage && items && items.length <= 0\">{{additionalMessage}}</div>\n </div>\n </div>\n <div class=\"row pt-3\" *ngIf=\"formTemplate\">\n <div class=\"col-12 mb-3\">\n <div>\n <advanced-form-edit #formComponent [formName]=\"formTemplate\" [(data)]=\"data\"></advanced-form-edit>\n </div>\n </div>\n </div>\n\n <div class=\"row mt-3\">\n <div class=\"col-12\">\n <progressbar #progress [type]=\"progressType\" [max]=\"100\">\n </progressbar>\n </div>\n </div>\n </div>\n\n <div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled || loading || (items && items.length === 0)\" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"okButtonClass\">\n {{okButtonText | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled || loading\"\n (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\" data-dismiss=\"modal\">\n {{cancelButtonText | translate}}\n </button>\n </div>\n</div>\n",
|
|
136
|
+
encapsulation: ViewEncapsulation.None,
|
|
137
|
+
styles: [`
|
|
138
|
+
.fa-1_5x {
|
|
139
|
+
font-size: 1.5rem;
|
|
140
|
+
}
|
|
141
|
+
.form-control:disabled, .form-control[readonly] {
|
|
142
|
+
background-color: inherit;
|
|
143
|
+
}
|
|
144
|
+
.form-check.checkbox {
|
|
145
|
+
position: relative
|
|
146
|
+
}
|
|
147
|
+
`]
|
|
148
|
+
}] }
|
|
149
|
+
];
|
|
150
|
+
/** @nocollapse */
|
|
151
|
+
AdvancedRowActionComponent.ctorParameters = () => [
|
|
152
|
+
{ type: Router },
|
|
153
|
+
{ type: ActivatedRoute },
|
|
154
|
+
{ type: TranslateService },
|
|
155
|
+
{ type: AngularDataContext },
|
|
156
|
+
{ type: ErrorService },
|
|
157
|
+
{ type: ModalService },
|
|
158
|
+
{ type: AppEventService }
|
|
159
|
+
];
|
|
160
|
+
AdvancedRowActionComponent.propDecorators = {
|
|
161
|
+
items: [{ type: Input }],
|
|
162
|
+
modalIcon: [{ type: Input }],
|
|
163
|
+
description: [{ type: Input }],
|
|
164
|
+
formTemplate: [{ type: Input }],
|
|
165
|
+
progressType: [{ type: Input }],
|
|
166
|
+
data: [{ type: Output }],
|
|
167
|
+
additionalMessage: [{ type: Input }],
|
|
168
|
+
errorMessage: [{ type: Input }],
|
|
169
|
+
progressComponent: [{ type: ViewChild, args: ['progress',] }],
|
|
170
|
+
formComponent: [{ type: ViewChild, args: ['formComponent',] }],
|
|
171
|
+
refresh: [{ type: Input }],
|
|
172
|
+
execute: [{ type: Input }]
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtcm93LWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1yb3ctYWN0aW9uL2FkdmFuY2VkLXJvdy1hY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBYyxpQkFBaUIsRUFBMkMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNLLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBb0JqRSxNQUFNLGlDQUFrQyxTQUFRLG1CQUFtQjtJQXNCL0QsWUFBWSxNQUFjLEVBQ2QsY0FBOEIsRUFDdEIsaUJBQW1DLEVBQ25DLFFBQTRCLEVBQzVCLGFBQTJCLEVBQzNCLGFBQTJCLEVBQzNCLFNBQTBCO1FBQzFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFMZCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBdEJyQyxjQUFTLEdBQUcsd0JBQXdCLENBQUM7UUFHckMsaUJBQVksR0FBVyxRQUFRLENBQUM7UUFHaEMsaUJBQVksR0FBRyxvQ0FBb0MsQ0FBQztRQUV0RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2QsWUFBTyxHQUFRLElBQUksWUFBWSxFQUFPLENBQUM7UUFhNUMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLHNCQUFzQixDQUFDO1FBQ3pDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN4RCxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUN6QixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUU7b0JBQ3BCLFFBQVEsR0FBRyxDQUFDLENBQUM7aUJBQ2hCO3FCQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7b0JBQzdCLFFBQVEsR0FBRyxHQUFHLENBQUM7aUJBQ2xCO3FCQUFNO29CQUNILFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2lCQUM3QjtnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQzthQUMzQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7WUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNoRixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFO29CQUNwRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO2lCQUN6QztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxQztRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxQztRQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTztTQUNWO1FBQ0QsUUFBUTtRQUNSLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDN0IsT0FBUSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM5QztJQUNMLENBQUM7SUFFSyxFQUFFOztZQUNKLElBQUk7Z0JBQ0EsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJO29CQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtvQkFDdkUsV0FBVztvQkFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7aUJBQ2pEO2dCQUNMLFlBQVk7Z0JBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNkLFFBQVEsRUFBRSxHQUFHO3FCQUNoQixDQUFDLENBQUM7b0JBQ0gsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDOUMsbUNBQW1DO3dCQUNuQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFOzRCQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQ3JELEdBQUcsSUFBSSxDQUFDLFlBQVksa0JBQWtCLENBQUMsQ0FBQyxDQUFDO3lCQUNoRDs2QkFBTTs0QkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQ3ZELEdBQUcsSUFBSSxDQUFDLFlBQVksbUJBQW1CLEVBQ3JDLE1BQU0sQ0FBQyxDQUFDLENBQUM7eUJBQ2hCO3dCQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUNkLFFBQVEsRUFBRSxDQUFDO3lCQUNkLENBQUMsQ0FBQzt3QkFDSCxPQUFPO3FCQUNWO29CQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO3FCQUN0QztnQkFDTCxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUNkLFFBQVEsRUFBRSxDQUFDO3FCQUNkLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQzthQUNOO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQztLQUFBOzs7WUEzSkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLDQyRkFBbUQ7Z0JBY25ELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO3lCQVpqQzs7Ozs7Ozs7OztTQVVDO2FBR1I7Ozs7WUEzQnVCLE1BQU07WUFBdEIsY0FBYztZQURkLGdCQUFnQjtZQUVoQixrQkFBa0I7WUFFbEIsWUFBWTtZQUFFLFlBQVk7WUFFMUIsZUFBZTs7O29CQTRCbEIsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLO21CQUNMLE1BQU07Z0NBQ04sS0FBSzsyQkFDTCxLQUFLO2dDQUdMLFNBQVMsU0FBQyxVQUFVOzRCQUNwQixTQUFTLFNBQUMsZUFBZTtzQkFDekIsS0FBSztzQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBbmd1bGFyRGF0YUNvbnRleHR9IGZyb20gJ0B0aGVtb3N0L2FuZ3VsYXInO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QnO1xuaW1wb3J0IHtFcnJvclNlcnZpY2UsIE1vZGFsU2VydmljZSwgVG9hc3RTZXJ2aWNlfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5pbXBvcnQge1JvdXRlck1vZGFsT2tDYW5jZWx9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uL3JvdXRpbmcnO1xuaW1wb3J0IHtBcHBFdmVudFNlcnZpY2V9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWR2YW5jZWRGb3JtQ29tcG9uZW50fSBmcm9tICdAdW5pdmVyc2lzL2Zvcm1zJztcbmltcG9ydCB7IFByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wcm9ncmVzc2Jhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXJvdy1hY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1yb3ctYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAuZmEtMV81eCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICAuZm9ybS1jb250cm9sOmRpc2FibGVkLCAuZm9ybS1jb250cm9sW3JlYWRvbmx5XSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICAgIC5mb3JtLWNoZWNrLmNoZWNrYm94IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkUm93QWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUm91dGVyTW9kYWxPa0NhbmNlbCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBpbnZhbGlkU3Vic2NyaXB0aW9uOiBhbnk7XG5cblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBhbnk7XG4gICAgQElucHV0KCkgbW9kYWxJY29uID0gJ2ZhcyBmYS1wcm9qZWN0LWRpYWdyYW0nO1xuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9ybVRlbXBsYXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJvZ3Jlc3NUeXBlOiBzdHJpbmcgPSAnaW5kaWdvJztcbiAgICBAT3V0cHV0KCkgZGF0YTogYW55O1xuICAgIEBJbnB1dCgpIGFkZGl0aW9uYWxNZXNzYWdlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJ1RhYmxlcy5BY3Rpb25zLkNvbXBsZXRlZFdpdGhFcnJvcnMnO1xuICAgIHB1YmxpYyBsYXN0RXJyb3I6IGFueTtcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuICAgIEBWaWV3Q2hpbGQoJ3Byb2dyZXNzJykgcHJvZ3Jlc3NDb21wb25lbnQ6IFByb2dyZXNzYmFyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1Db21wb25lbnQnKSBmb3JtQ29tcG9uZW50OiBBZHZhbmNlZEZvcm1Db21wb25lbnQ7XG4gICAgQElucHV0KCkgcmVmcmVzaDogYW55ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQElucHV0KCkgZXhlY3V0ZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHByaXZhdGUgcmVmcmVzaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZXhlY3V0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3Iocm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FwcEV2ZW50OiBBcHBFdmVudFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIocm91dGVyLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgIC8vIHNldCBtb2RhbCBzaXplXG4gICAgICAgIHRoaXMubW9kYWxDbGFzcyA9ICdtb2RhbC1sZyc7XG4gICAgICAgIC8vIHNldCBtb2RhbCB0aXRsZVxuICAgICAgICB0aGlzLm1vZGFsVGl0bGUgPSAnVGFibGVzLkFjdGlvbnMuTGFiZWwnO1xuICAgICAgICAvLyBkaXNhYmxlIG9rIGJ1dHRvblxuICAgICAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gc2V0IGJ1dHRvbiB0ZXh0XG4gICAgICAgIHRoaXMub2tCdXR0b25UZXh0ID0gJ1RhYmxlcy5BY3Rpb25zLlN0YXJ0JztcbiAgICB9XG5cbiAgICBnZXQgZm9ybSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1Db21wb25lbnQ7XG4gICAgfVxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hTdWJzY3JpcHRpb24gPSB0aGlzLnJlZnJlc2guc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gMDtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUucHJvZ3Jlc3MgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnByb2dyZXNzID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMTAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gdmFsdWUucHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NDb21wb25lbnQudmFsdWUgPSBwcm9ncmVzcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtKSB7XG4gICAgICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaW52YWxpZFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtLmNoYW5nZS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChldmVudCwgXCJpc1ZhbGlkXCIpICYmIChldmVudC5jaGFuZ2VkICE9IG51bGwpKSB7XG4gICAgICAgICAgICAgIHRoaXMub2tCdXR0b25EaXNhYmxlZCA9ICFldmVudC5pc1ZhbGlkO1xuICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5yZWZyZXNoU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5leGVjdXRlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pbnZhbGlkU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNhbmNlbCgpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAodGhpcy5sb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gY2xvc2VcbiAgICAgICAgaWYgKHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZikge1xuICAgICAgICAgICAgcmV0dXJuICB0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgb2soKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCAmJiB0aGlzLmZvcm1Db21wb25lbnQuZm9ybSAmJlxuICAgICAgICAgICAgICB0aGlzLmZvcm1Db21wb25lbnQuZm9ybS5mb3JtaW8gJiYgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uZm9ybWlvLmRhdGEpIHtcbiAgICAgICAgICAgICAgLy8gc2V0IGRhdGFcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtLmZvcm1pby5kYXRhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvIGFjdGlvblxuICAgICAgICAgICAgdGhpcy5leGVjdXRlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzczogMTAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuZXJyb3JzICYmIHJlc3VsdC5lcnJvcnMgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNob3cgbWVzc2FnZSBmb3IgcGFydGlhbCBzdWNjZXNzXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3JzID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IG5ldyBFcnJvcih0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvck1lc3NhZ2V9LkRlc2NyaXB0aW9uLk9uZWApKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gbmV3IEVycm9yKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5lcnJvck1lc3NhZ2V9LkRlc2NyaXB0aW9uLk1hbnlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaC5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAxXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBlcnI7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzczogMFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycjtcbiAgICAgICAgfVxuICAgIH1cblxuXG59XG4iXX0=
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { FormioComponent } from 'angular-formio';
|
|
3
|
+
import { AngularDataContext } from '@themost/angular';
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
|
+
import { ServiceUrlPreProcessor, TranslatePreProcessor } from '@universis/forms';
|
|
6
|
+
import { AdvancedTableSearchBaseComponent } from '../advanced-table/advanced-table-search-base';
|
|
7
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
8
|
+
import { HttpClient } from '@angular/common/http';
|
|
9
|
+
export class AdvancedSearchFormComponent extends AdvancedTableSearchBaseComponent {
|
|
10
|
+
constructor(_context, _translateService, _activatedRoute, _http) {
|
|
11
|
+
super();
|
|
12
|
+
this._context = _context;
|
|
13
|
+
this._translateService = _translateService;
|
|
14
|
+
this._activatedRoute = _activatedRoute;
|
|
15
|
+
this._http = _http;
|
|
16
|
+
this.form = {};
|
|
17
|
+
this.refreshForm = new EventEmitter();
|
|
18
|
+
this.submission = { data: {} };
|
|
19
|
+
this.loading = true;
|
|
20
|
+
}
|
|
21
|
+
ngOnChanges(changes) {
|
|
22
|
+
if (Object.prototype.hasOwnProperty.call(changes, 'form')) {
|
|
23
|
+
if (changes.form != null) {
|
|
24
|
+
if (changes.form.currentValue &&
|
|
25
|
+
changes.form.currentValue != changes.form.previousValue) {
|
|
26
|
+
this.ngOnInit();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(changes, 'formSrc')) {
|
|
31
|
+
if (changes.formSrc != null) {
|
|
32
|
+
if (changes.formSrc.currentValue &&
|
|
33
|
+
changes.formSrc.currentValue != changes.formSrc.previousValue) {
|
|
34
|
+
this._http.get(changes.formSrc.currentValue).toPromise().then((form) => {
|
|
35
|
+
// set form
|
|
36
|
+
this.form = form;
|
|
37
|
+
// and init
|
|
38
|
+
this.ngOnInit();
|
|
39
|
+
}).catch((err) => {
|
|
40
|
+
console.error('An error occurred while loading search configuration');
|
|
41
|
+
console.error(err);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (Object.prototype.hasOwnProperty.call(changes, 'filter')) {
|
|
47
|
+
if (changes.filter != null) {
|
|
48
|
+
this.submission.data = changes.filter.currentValue || {};
|
|
49
|
+
this.refreshForm.emit({
|
|
50
|
+
submission: this.submission
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
if (this.form) {
|
|
57
|
+
new ServiceUrlPreProcessor(this._context).parse(this.form);
|
|
58
|
+
new TranslatePreProcessor(this._translateService).parse(this.form);
|
|
59
|
+
this.submission = {
|
|
60
|
+
data: this.filter
|
|
61
|
+
};
|
|
62
|
+
this.refreshForm.emit({
|
|
63
|
+
form: this.form
|
|
64
|
+
});
|
|
65
|
+
this.loading = false;
|
|
66
|
+
this.filterSubscription = this.filterChange.subscribe(filter => {
|
|
67
|
+
this.submission.data = filter;
|
|
68
|
+
this.refreshForm.emit({
|
|
69
|
+
submission: this.submission
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
onChange(event) {
|
|
75
|
+
Object.keys(this.formComponent.submission.data).forEach(key => {
|
|
76
|
+
if (Object.prototype.hasOwnProperty.call(this.formComponent.submission.data, key)) {
|
|
77
|
+
const value = this.formComponent.submission.data[key];
|
|
78
|
+
// the filter with type is a string and is not empty
|
|
79
|
+
const isEmptyString = typeof value === 'string' && value.length === 0;
|
|
80
|
+
if (!isEmptyString) {
|
|
81
|
+
Object.defineProperty(this.filter, key, {
|
|
82
|
+
configurable: true,
|
|
83
|
+
enumerable: true,
|
|
84
|
+
value: value
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
delete this.filter[key];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
onFormLoad(form) {
|
|
94
|
+
const currentLang = this._translateService.currentLang;
|
|
95
|
+
this.formComponent.formio.i18next.options.resources[currentLang] = { translation: this._translateService.instant(`Forms`) };
|
|
96
|
+
this.formComponent.formio.language = currentLang;
|
|
97
|
+
}
|
|
98
|
+
ngAfterViewInit() {
|
|
99
|
+
//
|
|
100
|
+
}
|
|
101
|
+
ngOnDestroy() {
|
|
102
|
+
if (this.filterSubscription) {
|
|
103
|
+
this.filterSubscription.unsubscribe();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
AdvancedSearchFormComponent.decorators = [
|
|
108
|
+
{ type: Component, args: [{
|
|
109
|
+
selector: 'app-advanced-search-form',
|
|
110
|
+
template: `
|
|
111
|
+
<div class="p-4">
|
|
112
|
+
<formio #formioComponent class="formio-search" (keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"
|
|
113
|
+
[refresh]="refreshForm" [submission]="submission" [form]="form"></formio>
|
|
114
|
+
</div>
|
|
115
|
+
`,
|
|
116
|
+
encapsulation: ViewEncapsulation.None,
|
|
117
|
+
styles: ["formio.formio-search .form-group{margin-bottom:0}formio.formio-search .form-group .col-form-label{font-size:90%;padding-top:4px;padding-bottom:4px}.choices__list.choices__list--single .choices__item:first-child.choices__item--selectable{width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}"]
|
|
118
|
+
}] }
|
|
119
|
+
];
|
|
120
|
+
/** @nocollapse */
|
|
121
|
+
AdvancedSearchFormComponent.ctorParameters = () => [
|
|
122
|
+
{ type: AngularDataContext },
|
|
123
|
+
{ type: TranslateService },
|
|
124
|
+
{ type: ActivatedRoute },
|
|
125
|
+
{ type: HttpClient }
|
|
126
|
+
];
|
|
127
|
+
AdvancedSearchFormComponent.propDecorators = {
|
|
128
|
+
formComponent: [{ type: ViewChild, args: ['formioComponent',] }],
|
|
129
|
+
form: [{ type: Input }],
|
|
130
|
+
formSrc: [{ type: Input }],
|
|
131
|
+
refreshForm: [{ type: Output }]
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VhcmNoLWZvcm0vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBQy9KLE9BQU8sRUFBQyxlQUFlLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDOUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFHckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBYWxELE1BQU0sa0NBQW1DLFNBQVEsZ0NBQWdDO0lBVy9FLFlBQW9CLFFBQTRCLEVBQzVCLGlCQUFtQyxFQUNuQyxlQUErQixFQUMvQixLQUFpQjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQUxVLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFWNUIsU0FBSSxHQUFRLEVBQUUsQ0FBQztRQUVkLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FB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QUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzdILElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWU7UUFDYixFQUFFO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDOzs7WUF0SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFFBQVEsRUFBRTs7Ozs7R0FLVDtnQkFFRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7Ozs7WUFuQk8sa0JBQWtCO1lBSWxCLGdCQUFnQjtZQUhoQixjQUFjO1lBTWIsVUFBVTs7OzRCQWdCaEIsU0FBUyxTQUFDLGlCQUFpQjttQkFDM0IsS0FBSztzQkFDTCxLQUFLOzBCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybWlvQ29tcG9uZW50LCBGb3JtaW9Gb3JtfSBmcm9tICdhbmd1bGFyLWZvcm1pbyc7XG5pbXBvcnQge0FuZ3VsYXJEYXRhQ29udGV4dH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTZXJ2aWNlVXJsUHJlUHJvY2Vzc29yLCBUcmFuc2xhdGVQcmVQcm9jZXNzb3J9IGZyb20gJ0B1bml2ZXJzaXMvZm9ybXMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2VhcmNoLWJhc2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1zZWFyY2gtZm9ybScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgICAgPGZvcm1pbyAjZm9ybWlvQ29tcG9uZW50IGNsYXNzPVwiZm9ybWlvLXNlYXJjaFwiIChrZXlkb3duKT1cIm9uS2V5RW50ZXIoJGV2ZW50KVwiIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiIChmb3JtTG9hZCk9XCJvbkZvcm1Mb2FkKCRldmVudClcIlxuICAgICAgICAgICAgICBbcmVmcmVzaF09XCJyZWZyZXNoRm9ybVwiIFtzdWJtaXNzaW9uXT1cInN1Ym1pc3Npb25cIiBbZm9ybV09XCJmb3JtXCI+PC9mb3JtaW8+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2FkdmFuY2VkLXNlYXJjaC1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRTZWFyY2hGb3JtQ29tcG9uZW50IGV4dGVuZHMgQWR2YW5jZWRUYWJsZVNlYXJjaEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcblxuXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1pb0NvbXBvbmVudCcpIGZvcm1Db21wb25lbnQ6IEZvcm1pb0NvbXBvbmVudDtcbiAgQElucHV0KCkgZm9ybTogYW55ID0ge307XG4gIEBJbnB1dCgpIGZvcm1TcmM6IHN0cmluZztcbiAgQE91dHB1dCgpIHJlZnJlc2hGb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHN1Ym1pc3Npb246IGFueSA9IHsgZGF0YToge30gfTtcbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGxvYWRpbmcgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbnRleHQ6IEFuZ3VsYXJEYXRhQ29udGV4dCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnZm9ybScpKSB7XG4gICAgICBpZiAoY2hhbmdlcy5mb3JtICE9IG51bGwpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZm9ybS5jdXJyZW50VmFsdWUgJiZcbiAgICAgICAgICBjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlICE9IGNoYW5nZXMuZm9ybS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Zvcm1TcmMnKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZm9ybVNyYyAhPSBudWxsKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm1TcmMuY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgY2hhbmdlcy5mb3JtU3JjLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLmZvcm1TcmMucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuX2h0dHAuZ2V0KGNoYW5nZXMuZm9ybVNyYy5jdXJyZW50VmFsdWUpLnRvUHJvbWlzZSgpLnRoZW4oKGZvcm0pID0+IHtcbiAgICAgICAgICAgIC8vIHNldCBmb3JtXG4gICAgICAgICAgICB0aGlzLmZvcm0gPSBmb3JtO1xuICAgICAgICAgICAgLy8gYW5kIGluaXRcbiAgICAgICAgICAgIHRoaXMubmdPbkluaXQoKTtcbiAgICAgICAgICB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHNlYXJjaCBjb25maWd1cmF0aW9uJyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjaGFuZ2VzLCAnZmlsdGVyJykpIHtcbiAgICAgIGlmIChjaGFuZ2VzLmZpbHRlciAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc3VibWlzc2lvbi5kYXRhID0gY2hhbmdlcy5maWx0ZXIuY3VycmVudFZhbHVlIHx8IHt9O1xuICAgICAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe1xuICAgICAgICAgIHN1Ym1pc3Npb246IHRoaXMuc3VibWlzc2lvblxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICBuZXcgU2VydmljZVVybFByZVByb2Nlc3Nvcih0aGlzLl9jb250ZXh0KS5wYXJzZSh0aGlzLmZvcm0pO1xuICAgICAgbmV3IFRyYW5zbGF0ZVByZVByb2Nlc3Nvcih0aGlzLl90cmFuc2xhdGVTZXJ2aWNlKS5wYXJzZSh0aGlzLmZvcm0pO1xuICAgICAgdGhpcy5zdWJtaXNzaW9uID0ge1xuICAgICAgICBkYXRhOiB0aGlzLmZpbHRlclxuICAgICAgfTtcbiAgICAgIHRoaXMucmVmcmVzaEZvcm0uZW1pdCh7XG4gICAgICAgIGZvcm06IHRoaXMuZm9ybVxuICAgICAgfSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uID0gdGhpcy5maWx0ZXJDaGFuZ2Uuc3Vic2NyaWJlKCBmaWx0ZXIgPT4ge1xuICAgICAgICB0aGlzLnN1Ym1pc3Npb24uZGF0YSA9IGZpbHRlcjtcbiAgICAgICAgdGhpcy5yZWZyZXNoRm9ybS5lbWl0KHtcbiAgICAgICAgICBzdWJtaXNzaW9uOiB0aGlzLnN1Ym1pc3Npb25cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogb2JqZWN0KSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmZvcm1Db21wb25lbnQuc3VibWlzc2lvbi5kYXRhLCBrZXkpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YVtrZXldO1xuICAgICAgICAvLyB0aGUgZmlsdGVyIHdpdGggdHlwZSBpcyBhIHN0cmluZyBhbmQgaXMgbm90IGVtcHR5XG4gICAgICAgIGNvbnN0IGlzRW1wdHlTdHJpbmcgPSAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5sZW5ndGggPT09IDA7XG4gICAgICAgIGlmICghaXNFbXB0eVN0cmluZykge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmZpbHRlciwga2V5LCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGUgOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlIDogdmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25Gb3JtTG9hZChmb3JtOiBGb3JtaW9Gb3JtKSB7XG4gICAgY29uc3QgY3VycmVudExhbmcgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nO1xuICAgIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtaW8uaTE4bmV4dC5vcHRpb25zLnJlc291cmNlc1tjdXJyZW50TGFuZ10gPSB7IHRyYW5zbGF0aW9uIDogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBGb3Jtc2ApIH07XG4gICAgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm1pby5sYW5ndWFnZSA9IGN1cnJlbnRMYW5nO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWx0ZXJTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as tslib_1 from "tslib";
|
|
2
|
+
import { AdvancedTableModalBaseComponent } from "../advanced-table-modal/advanced-table-modal-base.component";
|
|
3
|
+
import { ActivatedRoute, Router } from "@angular/router";
|
|
4
|
+
import { AdvancedFilterValueProvider } from "../advanced-table/advanced-filter-value-provider.service";
|
|
5
|
+
import { AngularDataContext } from "@themost/angular";
|
|
6
|
+
import { Component, EventEmitter, ViewEncapsulation } from "@angular/core";
|
|
7
|
+
import { BsModalRef } from "ngx-bootstrap/modal";
|
|
8
|
+
import { DatePipe } from "@angular/common";
|
|
9
|
+
export class AdvancedSelectComponent extends AdvancedTableModalBaseComponent {
|
|
10
|
+
constructor(router, activatedRoute, context, advancedFilterValueProvider, datePipe, _modalRef) {
|
|
11
|
+
super(router, activatedRoute, context, advancedFilterValueProvider, datePipe);
|
|
12
|
+
this._modalRef = _modalRef;
|
|
13
|
+
this.dismiss = new EventEmitter();
|
|
14
|
+
}
|
|
15
|
+
ok() {
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
this._modalRef.hide();
|
|
18
|
+
this.dismiss.emit('ok');
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
cancel() {
|
|
22
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
this._modalRef.hide();
|
|
24
|
+
this.dismiss.emit('cancel');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
AdvancedSelectComponent.decorators = [
|
|
29
|
+
{ type: Component, args: [{
|
|
30
|
+
selector: 'app-advanced-select',
|
|
31
|
+
template: "<div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button [disabled]=\"cancelButtonDisabled\" (click)=\"cancel()\" type=\"button\" class=\"close\" data-dismiss=\"modal\"\n aria-label=\"Cancel\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div>\n <!-- search -->\n <div class=\"row mt-3\">\n <div class=\"col-12 col-lg-3\">\n <div class=\"input-group mb-3\">\n <input spellcheck=\"false\" type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"searchText\"\n class=\"form-control bg-gray-100 border-0\" placeholder=\"{{'Tables.SearchPlaceholder' | translate}}\"\n aria-label=\"Search\" aria-describedby=\"basic-addon2\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default bg-gray-100 border-0\" type=\"button\">\n <i class=\"fa fa-search text-secondary\"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class=\"d-none\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n\n </div>\n </div>\n <div class=\"col-12 col-lg-5\">\n <div class=\"btn-toolbar\">\n <button class=\"btn btn-gray-100\">\n <i class=\"fa fa-sliders-h pr-2 text-secondary\" aria-hidden=\"true\"></i>{{'Tables.Filters' | translate}}\n </button>\n <div class=\"dropdown ml-3\" dropdown>\n <button dropdownToggle class=\"btn btn-gray-100 dropdown-toggle\" type=\"button\" id=\"dropdownDefaultFilters\"\n data-toggle=\"dropdown\">\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownDefaultFilters\" *dropdownMenu>\n <a class=\"dropdown-item\" *ngFor=\"let filter of defaultFilters\"\n (click)=\"advancedSearch(filter.filter ? filter : '')\">\n {{ filter.name | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col text-lg-right mt-3 mt-lg-0\">\n <button [disabled]=\"true\" class=\"btn rounded-pill btn-outline-theme\">\n <span class=\"pr-2 font-lg\">+</span><span [translate]=\"'Tables.AddItem'\"></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\" [ngClass]=\"{ 'component-loading': loading}\">\n <app-advanced-table #advancedTable (init)=\"onTableInit($event)\" (load)=\"onDataLoad($event)\"\n [selectable]=\"true\" [multipleSelect]=\"true\" [scrollX]=\"false\" [scrollY]=\"320\" [pageLength]=\"pageLength\"\n [scrollable]=\"false\" [showFooter]=\"false\" [showActions]=\"false\" [lengthMenu]=\"lengthMenu\"\n [config]=\"tableConfig\" [configSrc]=\"tableConfigSrc\"></app-advanced-table>\n </div>\n </div>\n <div class=\"row mt-3 table-custom-pager\">\n <div class=\"col-12 d-flex\" *ngIf=\"recordsTotal\">\n <div class=\"mt-2 ml-auto mr-3 text-secondary\" [translate]=\"'Tables.RecordsPerPage'\"></div>\n <div class=\"dropdown mr-3\" dropdown>\n <button dropdownToggle class=\"btn btn-gray-100 dropdown-toggle\" type=\"button\" id=\"dropdownPageSize\"\n data-toggle=\"dropdown\">\n {{pageLength}}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownPageSize\" *dropdownMenu>\n <button (click)=\"setLength(item)\" class=\"dropdown-item dropdown-item-theme\" type=\"button\"\n *ngFor=\"let item of lengthMenu\">{{item}}</button>\n </div>\n </div>\n <div class=\"mt-2 mr-2\" [translate]=\"'Tables.PageInfo'\" [translateParams]=\"pageInfo\"></div>\n <button [disabled]=\"pageInfo && pageInfo.page === 0\" class=\"btn text-nowrap\" (click)=\"firstPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===0\" class=\"btn\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn\" (click)=\"nextPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn text-nowrap\"\n (click)=\"lastPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled\" (click)=\"ok()\" type=\"button\" [ngClass]=\"okButtonClass\">\n {{okButtonText | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled\" (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\"\n data-dismiss=\"modal\">\n {{ cancelButtonText | translate}}\n </button>\n</div>\n",
|
|
32
|
+
encapsulation: ViewEncapsulation.None,
|
|
33
|
+
styles: [`
|
|
34
|
+
.modal-table .dataTables_wrapper {
|
|
35
|
+
height: 50vh;
|
|
36
|
+
overflow-y: auto;
|
|
37
|
+
}
|
|
38
|
+
`]
|
|
39
|
+
}] }
|
|
40
|
+
];
|
|
41
|
+
/** @nocollapse */
|
|
42
|
+
AdvancedSelectComponent.ctorParameters = () => [
|
|
43
|
+
{ type: Router },
|
|
44
|
+
{ type: ActivatedRoute },
|
|
45
|
+
{ type: AngularDataContext },
|
|
46
|
+
{ type: AdvancedFilterValueProvider },
|
|
47
|
+
{ type: DatePipe },
|
|
48
|
+
{ type: BsModalRef }
|
|
49
|
+
];
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLXNlbGVjdC9hZHZhbmNlZC1zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFlM0MsTUFBTSw4QkFBK0IsU0FBUSwrQkFBK0I7SUFJMUUsWUFBWSxNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsT0FBMkIsRUFDM0IsMkJBQXdELEVBQ3hELFFBQWtCLEVBQ1YsU0FBcUI7UUFDdkMsS0FBSyxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRDVELGNBQVMsR0FBVCxTQUFTLENBQVk7UUFQbEMsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBU3ZELENBQUM7SUFFSyxFQUFFOztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztLQUFBO0lBRUssTUFBTTs7WUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLENBQUM7S0FBQTs7O1lBbENGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixxbkxBQStDO2dCQVMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTt5QkFQbkM7Ozs7O0tBS0M7YUFHSjs7OztZQW5Cd0IsTUFBTTtZQUF0QixjQUFjO1lBRWQsa0JBQWtCO1lBRGxCLDJCQUEyQjtZQUkzQixRQUFRO1lBRFIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vYWR2YW5jZWQtdGFibGUtbW9kYWwvYWR2YW5jZWQtdGFibGUtbW9kYWwtYmFzZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlclZhbHVlUHJvdmlkZXIgfSBmcm9tIFwiLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFuZ3VsYXJEYXRhQ29udGV4dCB9IGZyb20gXCJAdGhlbW9zdC9hbmd1bGFyXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL21vZGFsXCI7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgLm1vZGFsLXRhYmxlIC5kYXRhVGFibGVzX3dyYXBwZXIge1xuICAgICAgaGVpZ2h0OiA1MHZoO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG4gICAgYFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudCB7XG5cbiAgcHVibGljIGRpc21pc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IEFuZ3VsYXJEYXRhQ29udGV4dCxcbiAgICAgICAgICAgICAgYWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyOiBBZHZhbmNlZEZpbHRlclZhbHVlUHJvdmlkZXIsXG4gICAgICAgICAgICAgIGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbW9kYWxSZWY6IEJzTW9kYWxSZWYpIHtcbiAgICBzdXBlcihyb3V0ZXIsIGFjdGl2YXRlZFJvdXRlLCBjb250ZXh0LCBhZHZhbmNlZEZpbHRlclZhbHVlUHJvdmlkZXIsIGRhdGVQaXBlKTtcbiAgfVxuXG4gIGFzeW5jIG9rKCkge1xuICAgIHRoaXMuX21vZGFsUmVmLmhpZGUoKTtcbiAgICB0aGlzLmRpc21pc3MuZW1pdCgnb2snKTtcbiAgfVxuXG4gIGFzeW5jIGNhbmNlbCgpIHtcbiAgICB0aGlzLl9tb2RhbFJlZi5oaWRlKCk7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoJ2NhbmNlbCcpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ModalService } from '@universis/common';
|
|
3
|
+
import { AdvancedSelectComponent } from './advanced-select.component';
|
|
4
|
+
export class AdvancedSelectService {
|
|
5
|
+
constructor(_modal) {
|
|
6
|
+
this._modal = _modal;
|
|
7
|
+
//
|
|
8
|
+
}
|
|
9
|
+
select(initialState) {
|
|
10
|
+
return new Promise((resolve, reject) => {
|
|
11
|
+
try {
|
|
12
|
+
const modalRef = this._modal.openModalComponent(AdvancedSelectComponent, {
|
|
13
|
+
class: 'modal-xl modal-table',
|
|
14
|
+
ignoreBackdropClick: true,
|
|
15
|
+
animated: true,
|
|
16
|
+
initialState: initialState
|
|
17
|
+
});
|
|
18
|
+
const componentRef = modalRef.content;
|
|
19
|
+
componentRef.dismiss.subscribe((result) => {
|
|
20
|
+
return resolve({
|
|
21
|
+
result: result,
|
|
22
|
+
items: componentRef.advancedTable.selected
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
return reject(err);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
AdvancedSelectService.decorators = [
|
|
33
|
+
{ type: Injectable }
|
|
34
|
+
];
|
|
35
|
+
/** @nocollapse */
|
|
36
|
+
AdvancedSelectService.ctorParameters = () => [
|
|
37
|
+
{ type: ModalService }
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VsZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1zZWxlY3QvYWR2YW5jZWQtc2VsZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsTUFBTTtJQUVKLFlBQW9CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDdEMsRUFBRTtJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBaUI7UUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLEVBQUU7b0JBQ3ZFLEtBQUssRUFBRSxzQkFBc0I7b0JBQzdCLG1CQUFtQixFQUFFLElBQUk7b0JBQ3pCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFlBQVksRUFBRSxZQUFZO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxZQUFZLEdBQTRCLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQy9ELFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ3hDLE9BQU8sT0FBTyxDQUFDO3dCQUNiLE1BQU0sRUFBRSxNQUFNO3dCQUNkLEtBQUssRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDLFFBQVE7cUJBQzNDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTNCRixVQUFVOzs7O1lBRkYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuaW1wb3J0IHsgQWR2YW5jZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2FkdmFuY2VkLXNlbGVjdC5jb21wb25lbnQnO1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU2VsZWN0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbW9kYWw6IE1vZGFsU2VydmljZSkge1xuICAgIC8vXG4gIH1cblxuICBzZWxlY3QoaW5pdGlhbFN0YXRlOiBhbnkpOiBQcm9taXNlPHtyZXN1bHQ6IHN0cmluZywgaXRlbXM6IEFycmF5PGFueT59PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5fbW9kYWwub3Blbk1vZGFsQ29tcG9uZW50KEFkdmFuY2VkU2VsZWN0Q29tcG9uZW50LCB7XG4gICAgICAgICAgY2xhc3M6ICdtb2RhbC14bCBtb2RhbC10YWJsZScsXG4gICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgICAgICBpbml0aWFsU3RhdGU6IGluaXRpYWxTdGF0ZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmOiBBZHZhbmNlZFNlbGVjdENvbXBvbmVudCA9IG1vZGFsUmVmLmNvbnRlbnQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5kaXNtaXNzLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoe1xuICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICBpdGVtczogY29tcG9uZW50UmVmLmFkdmFuY2VkVGFibGUuc2VsZWN0ZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as tslib_1 from "tslib";
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { TemplatePipe } from '@universis/common';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AdvancedFilterValueProvider {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.values = {};
|
|
8
|
+
this._template = new TemplatePipe();
|
|
9
|
+
}
|
|
10
|
+
buildFilter(filter) {
|
|
11
|
+
if (filter) {
|
|
12
|
+
return this._template.transform(filter, this.values);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
asyncBuildFilter(filter) {
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
if (filter) {
|
|
18
|
+
return this._template.transform(filter, yield this.getValues());
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
getValues() {
|
|
23
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
return this.values;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
AdvancedFilterValueProvider.decorators = [
|
|
29
|
+
{ type: Injectable, args: [{
|
|
30
|
+
providedIn: 'root'
|
|
31
|
+
},] }
|
|
32
|
+
];
|
|
33
|
+
/** @nocollapse */
|
|
34
|
+
AdvancedFilterValueProvider.ctorParameters = () => [];
|
|
35
|
+
AdvancedFilterValueProvider.ngInjectableDef = i0.defineInjectable({ factory: function AdvancedFilterValueProvider_Factory() { return new AdvancedFilterValueProvider(); }, token: AdvancedFilterValueProvider, providedIn: "root" });
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC1maWx0ZXItdmFsdWUtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBS2pELE1BQU07SUFLSjtRQUhPLFdBQU0sR0FBRyxFQUFHLENBQUM7UUFJbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBTTtRQUNoQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUNyRDtJQUNILENBQUM7SUFFSyxnQkFBZ0IsQ0FBQyxNQUFNOztZQUMzQixJQUFJLE1BQU0sRUFBRTtnQkFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2FBQ2pFO1FBQ0gsQ0FBQztLQUFBO0lBRUssU0FBUzs7WUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQztLQUFBOzs7WUExQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVtcGxhdGVQaXBlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZEZpbHRlclZhbHVlUHJvdmlkZXIge1xuXG4gIHB1YmxpYyB2YWx1ZXMgPSB7IH07XG4gIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVBpcGU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fdGVtcGxhdGUgPSBuZXcgVGVtcGxhdGVQaXBlKCk7XG4gIH1cblxuICBidWlsZEZpbHRlcihmaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKGZpbHRlciwgdGhpcy52YWx1ZXMpXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYXN5bmNCdWlsZEZpbHRlcihmaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKGZpbHRlciwgYXdhaXQgdGhpcy5nZXRWYWx1ZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0VmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
export class AdvancedTableConfigurationResolver {
|
|
4
|
+
constructor(_http) {
|
|
5
|
+
this._http = _http;
|
|
6
|
+
}
|
|
7
|
+
resolve(route, state) {
|
|
8
|
+
// get list
|
|
9
|
+
const list = route.data.list || route.params.list;
|
|
10
|
+
// get model
|
|
11
|
+
const model = route.data.model || route.params.model;
|
|
12
|
+
// get configuration
|
|
13
|
+
return this._http.get(`assets/lists/${model}/${list}.json`).toPromise();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
AdvancedTableConfigurationResolver.decorators = [
|
|
17
|
+
{ type: Injectable }
|
|
18
|
+
];
|
|
19
|
+
/** @nocollapse */
|
|
20
|
+
AdvancedTableConfigurationResolver.ctorParameters = () => [
|
|
21
|
+
{ type: HttpClient }
|
|
22
|
+
];
|
|
23
|
+
export class AdvancedSearchConfigurationResolver {
|
|
24
|
+
constructor(_http) {
|
|
25
|
+
this._http = _http;
|
|
26
|
+
}
|
|
27
|
+
resolve(route, state) {
|
|
28
|
+
// get list
|
|
29
|
+
const list = route.data.list || route.params.list;
|
|
30
|
+
// get model
|
|
31
|
+
const model = route.data.model || route.params.model;
|
|
32
|
+
// get configuration
|
|
33
|
+
return this._http.get(`assets/lists/${model}/search.${list}.json`).toPromise();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
AdvancedSearchConfigurationResolver.decorators = [
|
|
37
|
+
{ type: Injectable }
|
|
38
|
+
];
|
|
39
|
+
/** @nocollapse */
|
|
40
|
+
AdvancedSearchConfigurationResolver.ctorParameters = () => [
|
|
41
|
+
{ type: HttpClient }
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUtcmVzb2x2ZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtcmVzb2x2ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR2hELE1BQU07SUFDRixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUN6QyxPQUFPLENBQ0gsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2xELFlBQVk7UUFDWixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyRCxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUUsQ0FBQzs7O1lBYkosVUFBVTs7OztZQUZILFVBQVU7O0FBbUJsQixNQUFNO0lBQ0YsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUFHLENBQUM7SUFDekMsT0FBTyxDQUNILEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLFdBQVc7UUFDWCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNsRCxZQUFZO1FBQ1osTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDckQsb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25GLENBQUM7OztZQWJKLFVBQVU7Ozs7WUFsQkgsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmUsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBZHZhbmNlZEZvcm1zU2VydmljZX0gZnJvbSAnQHVuaXZlcnNpcy9mb3Jtcyc7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPHN0cmluZz4ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHt9XG4gICAgcmVzb2x2ZShcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICAgKTogUHJvbWlzZTxhbnk+fGFueSB7XG4gICAgICAgIC8vIGdldCBsaXN0XG4gICAgICAgIGNvbnN0IGxpc3QgPSByb3V0ZS5kYXRhLmxpc3QgfHwgcm91dGUucGFyYW1zLmxpc3Q7XG4gICAgICAgIC8vIGdldCBtb2RlbFxuICAgICAgICBjb25zdCBtb2RlbCA9IHJvdXRlLmRhdGEubW9kZWwgfHwgcm91dGUucGFyYW1zLm1vZGVsO1xuICAgICAgICAvLyBnZXQgY29uZmlndXJhdGlvblxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYGFzc2V0cy9saXN0cy8ke21vZGVsfS8ke2xpc3R9Lmpzb25gKS50b1Byb21pc2UoKTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFNlYXJjaENvbmZpZ3VyYXRpb25SZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8c3RyaW5nPiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge31cbiAgICByZXNvbHZlKFxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAgICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3RcbiAgICApOiBQcm9taXNlPGFueT58YW55IHtcbiAgICAgICAgLy8gZ2V0IGxpc3RcbiAgICAgICAgY29uc3QgbGlzdCA9IHJvdXRlLmRhdGEubGlzdCB8fCByb3V0ZS5wYXJhbXMubGlzdDtcbiAgICAgICAgLy8gZ2V0IG1vZGVsXG4gICAgICAgIGNvbnN0IG1vZGVsID0gcm91dGUuZGF0YS5tb2RlbCB8fCByb3V0ZS5wYXJhbXMubW9kZWw7XG4gICAgICAgIC8vIGdldCBjb25maWd1cmF0aW9uXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwLmdldChgYXNzZXRzL2xpc3RzLyR7bW9kZWx9L3NlYXJjaC4ke2xpc3R9Lmpzb25gKS50b1Byb21pc2UoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
export class AdvancedTableSearchBaseComponent {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.filterChange = new EventEmitter();
|
|
5
|
+
}
|
|
6
|
+
get filter() {
|
|
7
|
+
return this._filter;
|
|
8
|
+
}
|
|
9
|
+
set filter(value) {
|
|
10
|
+
this._filter = value;
|
|
11
|
+
}
|
|
12
|
+
onKeyEnter(event) {
|
|
13
|
+
if (event.code === 'Enter') {
|
|
14
|
+
this.filterChange.emit(this._filter);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
AdvancedTableSearchBaseComponent.propDecorators = {
|
|
19
|
+
filterChange: [{ type: Output }],
|
|
20
|
+
filter: [{ type: Input }]
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUtc2VhcmNoLWJhc2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS1zZWFyY2gtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUQsTUFBTTtJQUFOO1FBRWMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBZ0JoRCxDQUFDO0lBZEcsSUFDSyxNQUFNO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLO1FBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUMzQixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUM7OzsyQkFmQSxNQUFNO3FCQUVOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBfZmlsdGVyOiBhbnk7XG4gICAgQE91dHB1dCgpIGZpbHRlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0ICBmaWx0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gICAgfVxuXG4gICAgc2V0IGZpbHRlcih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbktleUVudGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5jb2RlID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KHRoaXMuX2ZpbHRlcik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|