@universis/ngx-tables 6.0.0 → 15.0.3
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/esm2020/lib/actions/table.actions.mjs +27 -0
- package/esm2020/lib/advanced-aggregator.mjs +2 -0
- package/esm2020/lib/components/add-items/add-items.component.mjs +138 -0
- package/esm2020/lib/components/advanced-aggregator/advanced-aggregator.component.mjs +126 -0
- package/esm2020/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.mjs +53 -0
- package/esm2020/lib/components/advanced-list/advanced-list.component.mjs +184 -0
- package/esm2020/lib/components/advanced-row-action/advanced-row-action.component.mjs +178 -0
- package/esm2020/lib/components/advanced-search-form/advanced-search-form.component.mjs +154 -0
- package/esm2020/lib/components/advanced-select/advanced-select.component.mjs +42 -0
- package/esm2020/lib/components/advanced-select/advanced-select.service.mjs +38 -0
- package/esm2020/lib/components/advanced-table/advanced-filter-value-provider.service.mjs +31 -0
- package/esm2020/lib/components/advanced-table/advanced-table-resolvers.mjs +40 -0
- package/esm2020/lib/components/advanced-table/advanced-table-search-base.mjs +31 -0
- package/esm2020/lib/components/advanced-table/advanced-table-search.component.mjs +525 -0
- package/esm2020/lib/components/advanced-table/advanced-table-settings.component.mjs +108 -0
- package/esm2020/lib/components/advanced-table/advanced-table.component.mjs +1599 -0
- package/esm2020/lib/components/advanced-table/advanced-table.formatters.interface.mjs +17 -0
- package/esm2020/lib/components/advanced-table/advanced-table.formatters.mjs +429 -0
- package/esm2020/lib/components/advanced-table/advanced-table.interfaces.mjs +2 -0
- package/esm2020/lib/components/advanced-table-modal/advanced-table-modal-base.component.mjs +420 -0
- package/esm2020/lib/components/column-selector/column-selector.component.mjs +205 -0
- package/esm2020/lib/components/column-selector/column-selector.service.mjs +45 -0
- package/esm2020/lib/components/table-simple-header/table-simple-header.component.mjs +52 -0
- package/esm2020/lib/directives/advance-search-state.directive.mjs +111 -0
- package/esm2020/lib/directives/advance-table-state.directive.mjs +63 -0
- package/esm2020/lib/directives/advanced-search-router-state.directive.mjs +64 -0
- package/esm2020/lib/directives/advanced-table-editor.directive.mjs +154 -0
- package/esm2020/lib/directives/btnexp.directive.mjs +222 -0
- package/esm2020/lib/i18n/tables.el.mjs +129 -0
- package/esm2020/lib/i18n/tables.en.mjs +128 -0
- package/esm2020/lib/pipes/advanced-aggregator.pipe.mjs +38 -0
- package/esm2020/lib/pipes/advansed-aggregator-list-title-parse.pipe.mjs +45 -0
- package/esm2020/lib/reducers/index.mjs +37 -0
- package/esm2020/lib/services/advanced-aggregator/advanced-aggregator.service.mjs +119 -0
- package/esm2020/lib/tables.activated-table.service.mjs +46 -0
- package/esm2020/lib/tables.module.mjs +218 -0
- package/esm2020/public_api.mjs +37 -0
- package/esm2020/universis-ngx-tables.mjs +5 -0
- package/fesm2015/universis-ngx-tables.mjs +5642 -0
- package/fesm2015/universis-ngx-tables.mjs.map +1 -0
- package/fesm2020/universis-ngx-tables.mjs +5609 -0
- package/fesm2020/universis-ngx-tables.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/actions/table.actions.d.ts +4 -4
- package/lib/components/add-items/add-items.component.d.ts +8 -8
- package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +10 -4
- package/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.d.ts +4 -1
- package/lib/components/advanced-list/advanced-list.component.d.ts +6 -3
- package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +9 -7
- package/lib/components/advanced-search-form/advanced-search-form.component.d.ts +4 -1
- package/lib/components/advanced-select/advanced-select.component.d.ts +3 -1
- package/lib/components/advanced-select/advanced-select.service.d.ts +3 -0
- package/lib/components/advanced-table/advanced-filter-value-provider.service.d.ts +3 -0
- package/lib/components/advanced-table/advanced-table-resolvers.d.ts +5 -0
- package/lib/components/advanced-table/advanced-table-search-base.d.ts +6 -2
- package/lib/components/advanced-table/advanced-table-search.component.d.ts +6 -2
- package/lib/components/advanced-table/advanced-table-settings.component.d.ts +3 -0
- package/lib/components/advanced-table/advanced-table.component.d.ts +21 -12
- package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +4 -1
- package/lib/components/column-selector/column-selector.component.d.ts +8 -5
- package/lib/components/column-selector/column-selector.service.d.ts +3 -0
- package/lib/components/table-simple-header/table-simple-header.component.d.ts +8 -3
- package/lib/directives/advance-search-state.directive.d.ts +3 -0
- package/lib/directives/advance-table-state.directive.d.ts +3 -0
- package/lib/directives/advanced-search-router-state.directive.d.ts +3 -0
- package/lib/directives/advanced-table-editor.directive.d.ts +4 -1
- package/lib/directives/btnexp.directive.d.ts +3 -0
- package/lib/i18n/tables.el.d.ts +107 -107
- package/lib/i18n/tables.en.d.ts +106 -106
- package/lib/pipes/advanced-aggregator.pipe.d.ts +4 -1
- package/lib/pipes/advansed-aggregator-list-title-parse.pipe.d.ts +4 -1
- package/lib/reducers/index.d.ts +5 -3
- package/lib/services/advanced-aggregator/advanced-aggregator.service.d.ts +3 -0
- package/lib/tables.activated-table.service.d.ts +5 -1
- package/lib/tables.module.d.ts +36 -0
- package/package.json +44 -42
- package/public_api.d.ts +3 -0
- package/bundles/universis-ngx-tables.umd.js +0 -8161
- package/bundles/universis-ngx-tables.umd.js.map +0 -1
- package/bundles/universis-ngx-tables.umd.min.js +0 -2
- package/bundles/universis-ngx-tables.umd.min.js.map +0 -1
- package/esm2015/lib/actions/table.actions.js +0 -69
- package/esm2015/lib/advanced-aggregator.js +0 -6
- package/esm2015/lib/components/add-items/add-items.component.js +0 -209
- package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +0 -190
- package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +0 -80
- package/esm2015/lib/components/advanced-list/advanced-list.component.js +0 -245
- package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +0 -265
- package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +0 -213
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +0 -97
- package/esm2015/lib/components/advanced-select/advanced-select.service.js +0 -57
- package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +0 -58
- package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +0 -72
- package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +0 -49
- package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +0 -718
- package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +0 -191
- package/esm2015/lib/components/advanced-table/advanced-table.component.js +0 -1973
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +0 -53
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +0 -642
- package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +0 -6
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +0 -553
- package/esm2015/lib/components/column-selector/column-selector.component.js +0 -296
- package/esm2015/lib/components/column-selector/column-selector.service.js +0 -64
- package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +0 -76
- package/esm2015/lib/directives/advance-search-state.directive.js +0 -147
- package/esm2015/lib/directives/advance-table-state.directive.js +0 -86
- package/esm2015/lib/directives/advanced-search-router-state.directive.js +0 -90
- package/esm2015/lib/directives/advanced-table-editor.directive.js +0 -186
- package/esm2015/lib/directives/btnexp.directive.js +0 -272
- package/esm2015/lib/i18n/tables.el.js +0 -133
- package/esm2015/lib/i18n/tables.en.js +0 -132
- package/esm2015/lib/pipes/advanced-aggregator.pipe.js +0 -39
- package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +0 -58
- package/esm2015/lib/reducers/index.js +0 -63
- package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +0 -142
- package/esm2015/lib/tables.activated-table.service.js +0 -85
- package/esm2015/lib/tables.module.js +0 -163
- package/esm2015/public_api.js +0 -37
- package/esm2015/universis-ngx-tables.js +0 -13
- package/esm5/lib/actions/table.actions.js +0 -64
- package/esm5/lib/advanced-aggregator.js +0 -6
- package/esm5/lib/components/add-items/add-items.component.js +0 -243
- package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +0 -265
- package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +0 -99
- package/esm5/lib/components/advanced-list/advanced-list.component.js +0 -273
- package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +0 -288
- package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +0 -232
- package/esm5/lib/components/advanced-select/advanced-select.component.js +0 -103
- package/esm5/lib/components/advanced-select/advanced-select.service.js +0 -61
- package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +0 -82
- package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +0 -80
- package/esm5/lib/components/advanced-table/advanced-table-search-base.js +0 -59
- package/esm5/lib/components/advanced-table/advanced-table-search.component.js +0 -828
- package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +0 -212
- package/esm5/lib/components/advanced-table/advanced-table.component.js +0 -2145
- package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +0 -53
- package/esm5/lib/components/advanced-table/advanced-table.formatters.js +0 -815
- package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +0 -6
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +0 -555
- package/esm5/lib/components/column-selector/column-selector.component.js +0 -389
- package/esm5/lib/components/column-selector/column-selector.service.js +0 -68
- package/esm5/lib/components/table-simple-header/table-simple-header.component.js +0 -92
- package/esm5/lib/directives/advance-search-state.directive.js +0 -169
- package/esm5/lib/directives/advance-table-state.directive.js +0 -87
- package/esm5/lib/directives/advanced-search-router-state.directive.js +0 -98
- package/esm5/lib/directives/advanced-table-editor.directive.js +0 -244
- package/esm5/lib/directives/btnexp.directive.js +0 -389
- package/esm5/lib/i18n/tables.el.js +0 -133
- package/esm5/lib/i18n/tables.en.js +0 -132
- package/esm5/lib/pipes/advanced-aggregator.pipe.js +0 -65
- package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +0 -75
- package/esm5/lib/reducers/index.js +0 -65
- package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +0 -196
- package/esm5/lib/tables.activated-table.service.js +0 -88
- package/esm5/lib/tables.module.js +0 -168
- package/esm5/public_api.js +0 -37
- package/esm5/universis-ngx-tables.js +0 -13
- package/fesm2015/universis-ngx-tables.js +0 -6745
- package/fesm2015/universis-ngx-tables.js.map +0 -1
- package/fesm5/universis-ngx-tables.js +0 -7837
- package/fesm5/universis-ngx-tables.js.map +0 -1
- package/universis-ngx-tables.d.ts +0 -8
- package/universis-ngx-tables.metadata.json +0 -1
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// tslint:disable-next-line:max-line-length
|
|
2
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { ServiceUrlPreProcessor, TranslatePreProcessor } from '@universis/forms';
|
|
4
|
+
import { AdvancedTableSearchBaseComponent } from '../advanced-table/advanced-table-search-base';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@themost/angular";
|
|
7
|
+
import * as i2 from "@ngx-translate/core";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@angular/common/http";
|
|
10
|
+
import * as i5 from "@formio/angular";
|
|
11
|
+
export class AdvancedSearchFormComponent extends AdvancedTableSearchBaseComponent {
|
|
12
|
+
constructor(_context, _translateService, _activatedRoute, _http) {
|
|
13
|
+
super();
|
|
14
|
+
this._context = _context;
|
|
15
|
+
this._translateService = _translateService;
|
|
16
|
+
this._activatedRoute = _activatedRoute;
|
|
17
|
+
this._http = _http;
|
|
18
|
+
this.form = {};
|
|
19
|
+
this.refreshForm = new EventEmitter();
|
|
20
|
+
this.loading = new EventEmitter();
|
|
21
|
+
this.submission = { data: {} };
|
|
22
|
+
this.componentLoading = true;
|
|
23
|
+
}
|
|
24
|
+
ngOnChanges(changes) {
|
|
25
|
+
if (Object.prototype.hasOwnProperty.call(changes, 'form')) {
|
|
26
|
+
if (changes.form != null) {
|
|
27
|
+
if (changes.form.currentValue &&
|
|
28
|
+
// tslint:disable-next-line:triple-equals
|
|
29
|
+
changes.form.currentValue != changes.form.previousValue) {
|
|
30
|
+
this.ngOnInit();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (Object.prototype.hasOwnProperty.call(changes, 'formSrc')) {
|
|
35
|
+
if (changes.formSrc != null) {
|
|
36
|
+
if (changes.formSrc.currentValue &&
|
|
37
|
+
// tslint:disable-next-line:triple-equals
|
|
38
|
+
changes.formSrc.currentValue != changes.formSrc.previousValue) {
|
|
39
|
+
this._http.get(changes.formSrc.currentValue).toPromise().then((form) => {
|
|
40
|
+
// set form
|
|
41
|
+
this.form = form;
|
|
42
|
+
// and init
|
|
43
|
+
this.ngOnInit();
|
|
44
|
+
}).catch((err) => {
|
|
45
|
+
console.error('An error occurred while loading search configuration');
|
|
46
|
+
console.error(err);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (Object.prototype.hasOwnProperty.call(changes, 'filter')) {
|
|
52
|
+
if (changes.filter != null) {
|
|
53
|
+
this.submission.data = changes.filter.currentValue || {};
|
|
54
|
+
this.refreshForm.emit({
|
|
55
|
+
submission: this.submission
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
ngOnInit() {
|
|
61
|
+
if (this.form) {
|
|
62
|
+
new ServiceUrlPreProcessor(this._context).parse(this.form);
|
|
63
|
+
new TranslatePreProcessor(this._translateService).parse(this.form);
|
|
64
|
+
this.submission = {
|
|
65
|
+
data: this.filter
|
|
66
|
+
};
|
|
67
|
+
this.loading.emit({
|
|
68
|
+
target: this
|
|
69
|
+
});
|
|
70
|
+
this.refreshForm.emit({
|
|
71
|
+
form: this.form
|
|
72
|
+
});
|
|
73
|
+
this.componentLoading = false;
|
|
74
|
+
this.filterSubscription = this.filterChange.subscribe(filter => {
|
|
75
|
+
this.submission.data = filter;
|
|
76
|
+
this.refreshForm.emit({
|
|
77
|
+
submission: this.submission
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
onChange(event) {
|
|
83
|
+
if (this.formComponent == null) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
const formComponent = this.formComponent;
|
|
87
|
+
Object.keys(formComponent.submission.data).forEach(key => {
|
|
88
|
+
if (Object.prototype.hasOwnProperty.call(formComponent.submission.data, key)) {
|
|
89
|
+
const value = formComponent.submission.data[key];
|
|
90
|
+
// the filter with type is a string and is not empty
|
|
91
|
+
const isEmptyString = typeof value === 'string' && value.length === 0;
|
|
92
|
+
// do not include empty objects in filter
|
|
93
|
+
const isEmptyObject = typeof value === 'object' && Object.keys(value).length === 0;
|
|
94
|
+
// make isEmptyString, isEmptyObject mutex
|
|
95
|
+
if (!isEmptyString && !isEmptyObject) {
|
|
96
|
+
Object.defineProperty(this.filter, key, {
|
|
97
|
+
configurable: true,
|
|
98
|
+
enumerable: true,
|
|
99
|
+
value: value
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
delete this.filter[key];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
onFormLoad(form) {
|
|
109
|
+
if (this.formComponent == null) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const currentLang = this._translateService.currentLang;
|
|
113
|
+
this.formComponent.formio.i18next.options.resources[currentLang] = { translation: this._translateService.instant(`Forms`) };
|
|
114
|
+
this.formComponent.formio.language = currentLang;
|
|
115
|
+
}
|
|
116
|
+
ngAfterViewInit() {
|
|
117
|
+
//
|
|
118
|
+
}
|
|
119
|
+
ngOnDestroy() {
|
|
120
|
+
if (this.filterSubscription) {
|
|
121
|
+
this.filterSubscription.unsubscribe();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
AdvancedSearchFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSearchFormComponent, deps: [{ token: i1.AngularDataContext }, { token: i2.TranslateService }, { token: i3.ActivatedRoute }, { token: i4.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
+
AdvancedSearchFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdvancedSearchFormComponent, selector: "app-advanced-search-form", inputs: { form: "form", formSrc: "formSrc" }, outputs: { refreshForm: "refreshForm", loading: "loading" }, viewQueries: [{ propertyName: "formComponent", first: true, predicate: ["formioComponent"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
127
|
+
<div class="p-4">
|
|
128
|
+
<formio #formioComponent class="formio-search"
|
|
129
|
+
(keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"
|
|
130
|
+
[refresh]="refreshForm" [submission]="submission" [form]="form"></formio>
|
|
131
|
+
</div>
|
|
132
|
+
`, isInline: true, 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}\n"], dependencies: [{ kind: "component", type: i5.FormioComponent, selector: "formio" }], encapsulation: i0.ViewEncapsulation.None });
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSearchFormComponent, decorators: [{
|
|
134
|
+
type: Component,
|
|
135
|
+
args: [{ selector: 'app-advanced-search-form', template: `
|
|
136
|
+
<div class="p-4">
|
|
137
|
+
<formio #formioComponent class="formio-search"
|
|
138
|
+
(keydown)="onKeyEnter($event)" (change)="onChange($event)" (formLoad)="onFormLoad($event)"
|
|
139
|
+
[refresh]="refreshForm" [submission]="submission" [form]="form"></formio>
|
|
140
|
+
</div>
|
|
141
|
+
`, encapsulation: ViewEncapsulation.None, 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}\n"] }]
|
|
142
|
+
}], ctorParameters: function () { return [{ type: i1.AngularDataContext }, { type: i2.TranslateService }, { type: i3.ActivatedRoute }, { type: i4.HttpClient }]; }, propDecorators: { formComponent: [{
|
|
143
|
+
type: ViewChild,
|
|
144
|
+
args: ['formioComponent']
|
|
145
|
+
}], form: [{
|
|
146
|
+
type: Input
|
|
147
|
+
}], formSrc: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], refreshForm: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], loading: [{
|
|
152
|
+
type: Output
|
|
153
|
+
}] } });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXNlYXJjaC1mb3JtL2FkdmFuY2VkLXNlYXJjaC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFJL0osT0FBTyxFQUFDLHNCQUFzQixFQUFFLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0UsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7QUFrQjlGLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQ0FBZ0M7SUFZL0UsWUFBb0IsUUFBNEIsRUFDNUIsaUJBQW1DLEVBQ25DLGVBQStCLEVBQy9CLEtBQWlCO1FBRW5DLEtBQUssRUFBRSxDQUFDO1FBTFUsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVg1QixTQUFJLEdBQVEsRUFBRSxDQUFDO1FBRWQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBMEMsQ0FBQztRQUMvRSxlQUFVLEdBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFFeEIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO0lBUS9CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxF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Q0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFnQjtRQUN6QixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQzlCLE9BQU87U0FDUjtRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzdILElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWU7UUFDYixFQUFFO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7SUFDSCxDQUFDOzt3SEEzSFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIseVVBVjVCOzs7Ozs7R0FNVDsyRkFJVSwyQkFBMkI7a0JBYnZDLFNBQVM7K0JBRUUsMEJBQTBCLFlBQzFCOzs7Ozs7R0FNVCxpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJOzhMQUtQLGFBQWE7c0JBQTFDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNuQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9Db21wb25lbnQsIEZvcm1pb0Zvcm19IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge0FuZ3VsYXJEYXRhQ29udGV4dH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTZXJ2aWNlVXJsUHJlUHJvY2Vzc29yLCBUcmFuc2xhdGVQcmVQcm9jZXNzb3J9IGZyb20gJ0B1bml2ZXJzaXMvZm9ybXMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2VhcmNoLWJhc2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXNlYXJjaC1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgICA8Zm9ybWlvICNmb3JtaW9Db21wb25lbnQgY2xhc3M9XCJmb3JtaW8tc2VhcmNoXCJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlFbnRlcigkZXZlbnQpXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgKGZvcm1Mb2FkKT1cIm9uRm9ybUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hGb3JtXCIgW3N1Ym1pc3Npb25dPVwic3VibWlzc2lvblwiIFtmb3JtXT1cImZvcm1cIj48L2Zvcm1pbz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFNlYXJjaEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG5cbiAgQFZpZXdDaGlsZCgnZm9ybWlvQ29tcG9uZW50JykgZm9ybUNvbXBvbmVudD86IEZvcm1pb0NvbXBvbmVudDtcbiAgQElucHV0KCkgZm9ybTogYW55ID0ge307XG4gIEBJbnB1dCgpIGZvcm1TcmM/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSByZWZyZXNoRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgbG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YXJnZXQ6IEFkdmFuY2VkU2VhcmNoRm9ybUNvbXBvbmVudH0+KCk7XG4gIHN1Ym1pc3Npb246IGFueSA9IHsgZGF0YToge30gfTtcbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjb21wb25lbnRMb2FkaW5nID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb250ZXh0OiBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Zvcm0nKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZm9ybSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnRyaXBsZS1lcXVhbHNcbiAgICAgICAgICBjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlICE9IGNoYW5nZXMuZm9ybS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Zvcm1TcmMnKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZm9ybVNyYyAhPSBudWxsKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm1TcmMuY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnRyaXBsZS1lcXVhbHNcbiAgICAgICAgICBjaGFuZ2VzLmZvcm1TcmMuY3VycmVudFZhbHVlICE9IGNoYW5nZXMuZm9ybVNyYy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5faHR0cC5nZXQoY2hhbmdlcy5mb3JtU3JjLmN1cnJlbnRWYWx1ZSkudG9Qcm9taXNlKCkudGhlbigoZm9ybSkgPT4ge1xuICAgICAgICAgICAgLy8gc2V0IGZvcm1cbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgICAgICAgICAvLyBhbmQgaW5pdFxuICAgICAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgICAgICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgc2VhcmNoIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdmaWx0ZXInKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZmlsdGVyICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5zdWJtaXNzaW9uLmRhdGEgPSBjaGFuZ2VzLmZpbHRlci5jdXJyZW50VmFsdWUgfHwge307XG4gICAgICAgIHRoaXMucmVmcmVzaEZvcm0uZW1pdCh7XG4gICAgICAgICAgc3VibWlzc2lvbjogdGhpcy5zdWJtaXNzaW9uXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIG5ldyBTZXJ2aWNlVXJsUHJlUHJvY2Vzc29yKHRoaXMuX2NvbnRleHQpLnBhcnNlKHRoaXMuZm9ybSk7XG4gICAgICBuZXcgVHJhbnNsYXRlUHJlUHJvY2Vzc29yKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UpLnBhcnNlKHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLnN1Ym1pc3Npb24gPSB7XG4gICAgICAgIGRhdGE6IHRoaXMuZmlsdGVyXG4gICAgICB9O1xuICAgICAgdGhpcy5sb2FkaW5nLmVtaXQoe1xuICAgICAgICB0YXJnZXQ6IHRoaXNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZWZyZXNoRm9ybS5lbWl0KHtcbiAgICAgICAgZm9ybTogdGhpcy5mb3JtXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29tcG9uZW50TG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmZpbHRlckNoYW5nZS5zdWJzY3JpYmUoIGZpbHRlciA9PiB7XG4gICAgICAgIHRoaXMuc3VibWlzc2lvbi5kYXRhID0gZmlsdGVyO1xuICAgICAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe1xuICAgICAgICAgIHN1Ym1pc3Npb246IHRoaXMuc3VibWlzc2lvblxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBvYmplY3QpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbXBvbmVudCA9IHRoaXMuZm9ybUNvbXBvbmVudDtcbiAgICBPYmplY3Qua2V5cyhmb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YSwga2V5KSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZvcm1Db21wb25lbnQuc3VibWlzc2lvbi5kYXRhW2tleV07XG4gICAgICAgIC8vIHRoZSBmaWx0ZXIgd2l0aCB0eXBlIGlzIGEgc3RyaW5nIGFuZCBpcyBub3QgZW1wdHlcbiAgICAgICAgY29uc3QgaXNFbXB0eVN0cmluZyA9ICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgZW1wdHkgb2JqZWN0cyBpbiBmaWx0ZXJcbiAgICAgICAgY29uc3QgaXNFbXB0eU9iamVjdCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgLy8gbWFrZSBpc0VtcHR5U3RyaW5nLCBpc0VtcHR5T2JqZWN0IG11dGV4XG4gICAgICAgIGlmICghaXNFbXB0eVN0cmluZyAmJiAhaXNFbXB0eU9iamVjdCkge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmZpbHRlciwga2V5LCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGUgOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlIDogdmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25Gb3JtTG9hZChmb3JtOiBGb3JtaW9Gb3JtKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgICB0aGlzLmZvcm1Db21wb25lbnQuZm9ybWlvLmkxOG5leHQub3B0aW9ucy5yZXNvdXJjZXNbY3VycmVudExhbmddID0geyB0cmFuc2xhdGlvbiA6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgRm9ybXNgKSB9O1xuICAgIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtaW8ubGFuZ3VhZ2UgPSBjdXJyZW50TGFuZztcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvL1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { AdvancedTableModalBaseComponent } from '../advanced-table-modal/advanced-table-modal-base.component';
|
|
2
|
+
import { Component, EventEmitter, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
import * as i2 from "@themost/angular";
|
|
6
|
+
import * as i3 from "../advanced-table/advanced-filter-value-provider.service";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "ngx-bootstrap/modal";
|
|
9
|
+
import * as i6 from "@ngx-translate/core";
|
|
10
|
+
import * as i7 from "@angular/forms";
|
|
11
|
+
import * as i8 from "../advanced-table/advanced-table.component";
|
|
12
|
+
export class AdvancedSelectComponent extends AdvancedTableModalBaseComponent {
|
|
13
|
+
constructor(router, activatedRoute, context, advancedFilterValueProvider, datePipe, _modalRef, el) {
|
|
14
|
+
super(router, activatedRoute, context, advancedFilterValueProvider, datePipe);
|
|
15
|
+
this._modalRef = _modalRef;
|
|
16
|
+
this.el = el;
|
|
17
|
+
this.dismiss = new EventEmitter();
|
|
18
|
+
}
|
|
19
|
+
ngAfterViewInit() {
|
|
20
|
+
super.ngAfterViewInit();
|
|
21
|
+
setTimeout(() => {
|
|
22
|
+
if (this.searchElement && this.searchElement.nativeElement) {
|
|
23
|
+
this.searchElement.nativeElement.focus();
|
|
24
|
+
}
|
|
25
|
+
}, 0);
|
|
26
|
+
}
|
|
27
|
+
async ok() {
|
|
28
|
+
this._modalRef.hide();
|
|
29
|
+
this.dismiss.emit('ok');
|
|
30
|
+
}
|
|
31
|
+
async cancel() {
|
|
32
|
+
this._modalRef.hide();
|
|
33
|
+
this.dismiss.emit('cancel');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
AdvancedSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSelectComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.AngularDataContext }, { token: i3.AdvancedFilterValueProvider }, { token: i4.DatePipe }, { token: i5.BsModalRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
AdvancedSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdvancedSelectComponent, selector: "app-advanced-select", usesInheritance: true, ngImport: i0, 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\" #searchElement (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\" (click)=\"onSearch()\">\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\">\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\">\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 d-none\">\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()\" (load)=\"onDataLoad($event)\"\n [autoLoad]=\"true\"\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\">\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\">\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", styles: [".modal-table .dataTables_wrapper{height:50vh;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.AdvancedTableComponent, selector: "app-advanced-table", inputs: ["height", "showActions", "autoLoad", "reload", "scrollable", "serverSide", "lengthMenu", "paging", "pageLength", "columnOrdering", "stateSave", "stateLoadCallback", "stateSaveCallback", "scrollY", "scrollX", "selectable", "multipleSelect", "customSelect", "selected", "configSrc", "config", "showFooter", "showHeader", "showPaging", "query"], outputs: ["load", "init", "select", "draw", "page", "order", "scroll", "selectedItems", "loading"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSelectComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'app-advanced-select', encapsulation: ViewEncapsulation.None, 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\" #searchElement (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\" (click)=\"onSearch()\">\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\">\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\">\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 d-none\">\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()\" (load)=\"onDataLoad($event)\"\n [autoLoad]=\"true\"\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\">\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\">\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", styles: [".modal-table .dataTables_wrapper{height:50vh;overflow-y:auto}\n"] }]
|
|
41
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.AngularDataContext }, { type: i3.AdvancedFilterValueProvider }, { type: i4.DatePipe }, { type: i5.BsModalRef }, { type: i0.ElementRef }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1zZWxlY3QvYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hZHZhbmNlZC1zZWxlY3QvYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBSTlHLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQWtCakgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLCtCQUErQjtJQUkxRSxZQUFZLE1BQWMsRUFDeEIsY0FBOEIsRUFDOUIsT0FBMkIsRUFDM0IsMkJBQXdELEVBQ3hELFFBQWtCLEVBQ1YsU0FBcUIsRUFDckIsRUFBYztRQUN0QixLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFGdEUsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBUmpCLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQVV2RCxDQUFDO0lBRUQsZUFBZTtRQUNiLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMxQztRQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTSxLQUFLLENBQUMsRUFBRTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7b0hBL0JVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLGtGQ3RCcEMsc29MQStHQTsyRkR6RmEsdUJBQXVCO2tCQWRuQyxTQUFTOytCQUVFLHFCQUFxQixpQkFVaEIsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlciB9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLWZpbHRlci12YWx1ZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFuZ3VsYXJEYXRhQ29udGV4dCB9IGZyb20gJ0B0aGVtb3N0L2FuZ3VsYXInO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgLm1vZGFsLXRhYmxlIC5kYXRhVGFibGVzX3dyYXBwZXIge1xuICAgICAgaGVpZ2h0OiA1MHZoO1xuICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG4gICAgYCxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgcHVibGljIGRpc21pc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHJvdXRlcjogUm91dGVyLFxuICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBjb250ZXh0OiBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgYWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyOiBBZHZhbmNlZEZpbHRlclZhbHVlUHJvdmlkZXIsXG4gICAgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgX21vZGFsUmVmOiBCc01vZGFsUmVmLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihyb3V0ZXIsIGFjdGl2YXRlZFJvdXRlLCBjb250ZXh0LCBhZHZhbmNlZEZpbHRlclZhbHVlUHJvdmlkZXIsIGRhdGVQaXBlKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlYXJjaEVsZW1lbnQgJiYgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9LCAwKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvaygpIHtcbiAgICB0aGlzLl9tb2RhbFJlZi5oaWRlKCk7XG4gICAgdGhpcy5kaXNtaXNzLmVtaXQoJ29rJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsKCkge1xuICAgIHRoaXMuX21vZGFsUmVmLmhpZGUoKTtcbiAgICB0aGlzLmRpc21pc3MuZW1pdCgnY2FuY2VsJyk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiICpuZ0lmPVwibW9kYWxUaXRsZVwiPlxuICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiPnt7bW9kYWxUaXRsZSB8IHRyYW5zbGF0ZX19PC9oNT5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiY2FuY2VsQnV0dG9uRGlzYWJsZWRcIiAoY2xpY2spPVwiY2FuY2VsKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCJcbiAgICBhcmlhLWxhYmVsPVwiQ2FuY2VsXCI+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gICAgPGRpdj5cbiAgICAgIDwhLS0gc2VhcmNoIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWxnLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItM1wiPlxuICAgICAgICAgICAgPGlucHV0IHNwZWxsY2hlY2s9XCJmYWxzZVwiIHR5cGU9XCJ0ZXh0XCIgI3NlYXJjaEVsZW1lbnQgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBiZy1ncmF5LTEwMCBib3JkZXItMFwiIHBsYWNlaG9sZGVyPVwie3snVGFibGVzLlNlYXJjaFBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZX19XCJcbiAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJiYXNpYy1hZGRvbjJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBiZy1ncmF5LTEwMCBib3JkZXItMFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25TZWFyY2goKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtc2VhcmNoIHRleHQtc2Vjb25kYXJ5XCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAjZW1wdHlUYWJsZSBjbGFzcz1cImQtbm9uZVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jaXJjbGUgYmctZ3JheS0zMDAgYm9yZGVyLWdyYXktMTAwXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICAgIDxoNCBjbGFzcz1cImZvbnQtM3hsIHRleHQtZGFya1wiIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5FbXB0eVRhYmxlVGl0bGUnXCI+PC9oND5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb250LWxnIHRleHQtZGFya1wiIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5FbXB0eVRhYmxlTWVzc2FnZSdcIj48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbGctNVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZ3JheS0xMDBcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zbGlkZXJzLWggcHItMiB0ZXh0LXNlY29uZGFyeVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57eydUYWJsZXMuRmlsdGVycycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gbWwtM1wiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGRyb3Bkb3duVG9nZ2xlIGNsYXNzPVwiYnRuIGJ0bi1ncmF5LTEwMCBkcm9wZG93bi10b2dnbGVcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJkcm9wZG93bkRlZmF1bHRGaWx0ZXJzXCJcbiAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAge3sgdGhpcy5kZWZhdWx0RmlsdGVyLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25EZWZhdWx0RmlsdGVyc1wiPlxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZGVmYXVsdEZpbHRlcnNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkdmFuY2VkU2VhcmNoKGZpbHRlci5maWx0ZXIgPyBmaWx0ZXIgOiAnJylcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZpbHRlci5uYW1lIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB0ZXh0LWxnLXJpZ2h0IG10LTMgbXQtbGctMCBkLW5vbmVcIj5cbiAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ0cnVlXCIgY2xhc3M9XCJidG4gcm91bmRlZC1waWxsIGJ0bi1vdXRsaW5lLXRoZW1lXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTIgZm9udC1sZ1wiPis8L3NwYW4+PHNwYW4gW3RyYW5zbGF0ZV09XCInVGFibGVzLkFkZEl0ZW0nXCI+PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgW25nQ2xhc3NdPVwieyAnY29tcG9uZW50LWxvYWRpbmcnOiBsb2FkaW5nfVwiPlxuICAgICAgICAgIDxhcHAtYWR2YW5jZWQtdGFibGUgI2FkdmFuY2VkVGFibGUgKGluaXQpPVwib25UYWJsZUluaXQoKVwiIChsb2FkKT1cIm9uRGF0YUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbYXV0b0xvYWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCIgW211bHRpcGxlU2VsZWN0XT1cInRydWVcIiBbc2Nyb2xsWF09XCJmYWxzZVwiIFtzY3JvbGxZXT1cIjMyMFwiIFtwYWdlTGVuZ3RoXT1cInBhZ2VMZW5ndGhcIlxuICAgICAgICAgICAgW3Njcm9sbGFibGVdPVwiZmFsc2VcIiBbc2hvd0Zvb3Rlcl09XCJmYWxzZVwiIFtzaG93QWN0aW9uc109XCJmYWxzZVwiIFtsZW5ndGhNZW51XT1cImxlbmd0aE1lbnVcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJ0YWJsZUNvbmZpZ1wiIFtjb25maWdTcmNdPVwidGFibGVDb25maWdTcmNcIj48L2FwcC1hZHZhbmNlZC10YWJsZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyB0YWJsZS1jdXN0b20tcGFnZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXhcIiAqbmdJZj1cInJlY29yZHNUb3RhbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIG1sLWF1dG8gbXItMyB0ZXh0LXNlY29uZGFyeVwiIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5SZWNvcmRzUGVyUGFnZSdcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gbXItM1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBkcm9wZG93blRvZ2dsZSBjbGFzcz1cImJ0biBidG4tZ3JheS0xMDAgZHJvcGRvd24tdG9nZ2xlXCIgdHlwZT1cImJ1dHRvblwiIGlkPVwiZHJvcGRvd25QYWdlU2l6ZVwiXG4gICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAge3twYWdlTGVuZ3RofX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93blBhZ2VTaXplXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNldExlbmd0aChpdGVtKVwiIGNsYXNzPVwiZHJvcGRvd24taXRlbSBkcm9wZG93bi1pdGVtLXRoZW1lXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVuZ3RoTWVudVwiPnt7aXRlbX19PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtci0yXCIgW3RyYW5zbGF0ZV09XCInVGFibGVzLlBhZ2VJbmZvJ1wiIFt0cmFuc2xhdGVQYXJhbXNdPVwicGFnZUluZm9cIj48L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJwYWdlSW5mbyAmJiBwYWdlSW5mby5wYWdlID09PSAwXCIgY2xhc3M9XCJidG4gdGV4dC1ub3dyYXBcIiAoY2xpY2spPVwiZmlyc3RQYWdlKClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0IHRleHQtY29sb3ItdGhlbWVcIj48L2k+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tbGVmdCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2VJbmZvICYmIHBhZ2VJbmZvLnBhZ2U9PT0wXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwicHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0IHRleHQtY29sb3ItdGhlbWVcIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZUluZm8gJiYgcGFnZUluZm8ucGFnZT09PXBhZ2VJbmZvLnBhZ2VzLTFcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJuZXh0UGFnZSgpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHQgdGV4dC1jb2xvci10aGVtZVwiPjwvaT5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJwYWdlSW5mbyAmJiBwYWdlSW5mby5wYWdlPT09cGFnZUluZm8ucGFnZXMtMVwiIGNsYXNzPVwiYnRuIHRleHQtbm93cmFwXCJcbiAgICAgICAgICAgIChjbGljayk9XCJsYXN0UGFnZSgpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHQgdGV4dC1jb2xvci10aGVtZVwiPjwvaT5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtZm9vdGVyIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwib2tCdXR0b25EaXNhYmxlZFwiIChjbGljayk9XCJvaygpXCIgdHlwZT1cImJ1dHRvblwiIFtuZ0NsYXNzXT1cIm9rQnV0dG9uQ2xhc3NcIj5cbiAgICB7e29rQnV0dG9uVGV4dCB8IHRyYW5zbGF0ZX19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJjYW5jZWxCdXR0b25EaXNhYmxlZFwiIChjbGljayk9XCJjYW5jZWwoKVwiIHR5cGU9XCJidXR0b25cIiBbbmdDbGFzc109XCJjYW5jZWxCdXR0b25DbGFzc1wiXG4gICAgZGF0YS1kaXNtaXNzPVwibW9kYWxcIj5cbiAgICB7eyBjYW5jZWxCdXR0b25UZXh0IHwgdHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { AdvancedSelectComponent } from './advanced-select.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@universis/common";
|
|
5
|
+
export class AdvancedSelectService {
|
|
6
|
+
constructor(_modal) {
|
|
7
|
+
this._modal = _modal;
|
|
8
|
+
//
|
|
9
|
+
}
|
|
10
|
+
select(initialState) {
|
|
11
|
+
return new Promise((resolve, reject) => {
|
|
12
|
+
try {
|
|
13
|
+
const modalRef = this._modal.openModalComponent(AdvancedSelectComponent, {
|
|
14
|
+
class: 'modal-xl modal-table',
|
|
15
|
+
ignoreBackdropClick: true,
|
|
16
|
+
animated: true,
|
|
17
|
+
initialState: initialState
|
|
18
|
+
});
|
|
19
|
+
const componentRef = modalRef.content;
|
|
20
|
+
componentRef.dismiss.subscribe((result) => {
|
|
21
|
+
return resolve({
|
|
22
|
+
result: result,
|
|
23
|
+
items: (componentRef.advancedTable && componentRef.advancedTable.selected)
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
return reject(err);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
AdvancedSelectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSelectService, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
34
|
+
AdvancedSelectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSelectService });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSelectService, decorators: [{
|
|
36
|
+
type: Injectable
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.ModalService }]; } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VsZWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VsZWN0L2FkdmFuY2VkLXNlbGVjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUV0RSxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDdEMsRUFBRTtJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBaUI7UUFDdEIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJO2dCQUNGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLEVBQUU7b0JBQ3ZFLEtBQUssRUFBRSxzQkFBc0I7b0JBQzdCLG1CQUFtQixFQUFFLElBQUk7b0JBQ3pCLFFBQVEsRUFBRSxJQUFJO29CQUNkLFlBQVksRUFBRSxZQUFZO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxZQUFZLEdBQTRCLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQy9ELFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ3hDLE9BQU8sT0FBTyxDQUFDO3dCQUNiLE1BQU0sRUFBRSxNQUFNO3dCQUNkLEtBQUssRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQVU7cUJBQ3BGLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNKO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2tIQTFCVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuaW1wb3J0IHsgQWR2YW5jZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2FkdmFuY2VkLXNlbGVjdC5jb21wb25lbnQnO1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkU2VsZWN0U2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbW9kYWw6IE1vZGFsU2VydmljZSkge1xuICAgIC8vXG4gIH1cblxuICBzZWxlY3QoaW5pdGlhbFN0YXRlOiBhbnkpOiBQcm9taXNlPHtyZXN1bHQ6IHN0cmluZywgaXRlbXM6IEFycmF5PGFueT59PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5fbW9kYWwub3Blbk1vZGFsQ29tcG9uZW50KEFkdmFuY2VkU2VsZWN0Q29tcG9uZW50LCB7XG4gICAgICAgICAgY2xhc3M6ICdtb2RhbC14bCBtb2RhbC10YWJsZScsXG4gICAgICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgICAgICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgICAgICBpbml0aWFsU3RhdGU6IGluaXRpYWxTdGF0ZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmOiBBZHZhbmNlZFNlbGVjdENvbXBvbmVudCA9IG1vZGFsUmVmLmNvbnRlbnQ7XG4gICAgICAgIGNvbXBvbmVudFJlZi5kaXNtaXNzLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoe1xuICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQsXG4gICAgICAgICAgICBpdGVtczogKGNvbXBvbmVudFJlZi5hZHZhbmNlZFRhYmxlICYmIGNvbXBvbmVudFJlZi5hZHZhbmNlZFRhYmxlLnNlbGVjdGVkKSBhcyBhbnlbXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { TemplatePipe } from '@universis/common';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class AdvancedFilterValueProvider {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.values = {};
|
|
7
|
+
this._template = new TemplatePipe();
|
|
8
|
+
}
|
|
9
|
+
buildFilter(filter) {
|
|
10
|
+
if (filter) {
|
|
11
|
+
return this._template.transform(filter, this.values);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
async asyncBuildFilter(filter) {
|
|
15
|
+
if (filter) {
|
|
16
|
+
return this._template.transform(filter, await this.getValues());
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async getValues() {
|
|
20
|
+
return this.values;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
AdvancedFilterValueProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedFilterValueProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
+
AdvancedFilterValueProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedFilterValueProvider, providedIn: 'root' });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedFilterValueProvider, decorators: [{
|
|
26
|
+
type: Injectable,
|
|
27
|
+
args: [{
|
|
28
|
+
providedIn: 'root'
|
|
29
|
+
}]
|
|
30
|
+
}], ctorParameters: function () { return []; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBS2pELE1BQU0sT0FBTywyQkFBMkI7SUFLdEM7UUFITyxXQUFNLEdBQUcsRUFBRyxDQUFDO1FBSWxCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQU07UUFDaEIsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU07UUFDM0IsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7O3dIQXZCVSwyQkFBMkI7NEhBQTNCLDJCQUEyQixjQUYxQixNQUFNOzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBpcGUgfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlciB7XG5cbiAgcHVibGljIHZhbHVlcyA9IHsgfTtcbiAgcHJpdmF0ZSBfdGVtcGxhdGU6IFRlbXBsYXRlUGlwZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl90ZW1wbGF0ZSA9IG5ldyBUZW1wbGF0ZVBpcGUoKTtcbiAgfVxuXG4gIGJ1aWxkRmlsdGVyKGZpbHRlcikge1xuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZS50cmFuc2Zvcm0oZmlsdGVyLCB0aGlzLnZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYXN5bmNCdWlsZEZpbHRlcihmaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKGZpbHRlciwgYXdhaXQgdGhpcy5nZXRWYWx1ZXMoKSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0VmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common/http";
|
|
4
|
+
export class AdvancedTableConfigurationResolver {
|
|
5
|
+
constructor(_http) {
|
|
6
|
+
this._http = _http;
|
|
7
|
+
}
|
|
8
|
+
resolve(route, state) {
|
|
9
|
+
// get list
|
|
10
|
+
const list = route.data.list || route.params.list;
|
|
11
|
+
// get model
|
|
12
|
+
const model = route.data.model || route.params.model;
|
|
13
|
+
// get configuration
|
|
14
|
+
return this._http.get(`assets/lists/${model}/${list}.json`).toPromise();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
AdvancedTableConfigurationResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedTableConfigurationResolver, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
18
|
+
AdvancedTableConfigurationResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedTableConfigurationResolver });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedTableConfigurationResolver, decorators: [{
|
|
20
|
+
type: Injectable
|
|
21
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
22
|
+
export class AdvancedSearchConfigurationResolver {
|
|
23
|
+
constructor(_http) {
|
|
24
|
+
this._http = _http;
|
|
25
|
+
}
|
|
26
|
+
resolve(route, state) {
|
|
27
|
+
// get list
|
|
28
|
+
const list = route.data.list || route.params.list;
|
|
29
|
+
// get model
|
|
30
|
+
const model = route.data.model || route.params.model;
|
|
31
|
+
// get configuration
|
|
32
|
+
return this._http.get(`assets/lists/${model}/search.${list}.json`).toPromise();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
AdvancedSearchConfigurationResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSearchConfigurationResolver, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
AdvancedSearchConfigurationResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSearchConfigurationResolver });
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedSearchConfigurationResolver, decorators: [{
|
|
38
|
+
type: Injectable
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUtcmVzb2x2ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXJlc29sdmVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFLekMsTUFBTSxPQUFPLGtDQUFrQztJQUMzQyxZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUN6QyxPQUFPLENBQ0gsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2xELFlBQVk7UUFDWixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyRCxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUUsQ0FBQzs7K0hBWlEsa0NBQWtDO21JQUFsQyxrQ0FBa0M7MkZBQWxDLGtDQUFrQztrQkFEOUMsVUFBVTs7QUFpQlgsTUFBTSxPQUFPLG1DQUFtQztJQUM1QyxZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQUcsQ0FBQztJQUN6QyxPQUFPLENBQ0gsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsV0FBVztRQUNYLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2xELFlBQVk7UUFDWixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNyRCxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkYsQ0FBQzs7Z0lBWlEsbUNBQW1DO29JQUFuQyxtQ0FBbUM7MkZBQW5DLG1DQUFtQztrQkFEL0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmUsIFJvdXRlclN0YXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uUmVzb2x2ZXIgaW1wbGVtZW50cyBSZXNvbHZlPHN0cmluZz4ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHt9XG4gICAgcmVzb2x2ZShcbiAgICAgICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gICAgICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90XG4gICAgKTogUHJvbWlzZTxhbnk+fGFueSB7XG4gICAgICAgIC8vIGdldCBsaXN0XG4gICAgICAgIGNvbnN0IGxpc3QgPSByb3V0ZS5kYXRhLmxpc3QgfHwgcm91dGUucGFyYW1zLmxpc3Q7XG4gICAgICAgIC8vIGdldCBtb2RlbFxuICAgICAgICBjb25zdCBtb2RlbCA9IHJvdXRlLmRhdGEubW9kZWwgfHwgcm91dGUucGFyYW1zLm1vZGVsO1xuICAgICAgICAvLyBnZXQgY29uZmlndXJhdGlvblxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYGFzc2V0cy9saXN0cy8ke21vZGVsfS8ke2xpc3R9Lmpzb25gKS50b1Byb21pc2UoKTtcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFNlYXJjaENvbmZpZ3VyYXRpb25SZXNvbHZlciBpbXBsZW1lbnRzIFJlc29sdmU8c3RyaW5nPiB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge31cbiAgICByZXNvbHZlKFxuICAgICAgICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgICAgICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3RcbiAgICApOiBQcm9taXNlPGFueT58YW55IHtcbiAgICAgICAgLy8gZ2V0IGxpc3RcbiAgICAgICAgY29uc3QgbGlzdCA9IHJvdXRlLmRhdGEubGlzdCB8fCByb3V0ZS5wYXJhbXMubGlzdDtcbiAgICAgICAgLy8gZ2V0IG1vZGVsXG4gICAgICAgIGNvbnN0IG1vZGVsID0gcm91dGUuZGF0YS5tb2RlbCB8fCByb3V0ZS5wYXJhbXMubW9kZWw7XG4gICAgICAgIC8vIGdldCBjb25maWd1cmF0aW9uXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwLmdldChgYXNzZXRzL2xpc3RzLyR7bW9kZWx9L3NlYXJjaC4ke2xpc3R9Lmpzb25gKS50b1Byb21pc2UoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class AdvancedTableSearchBaseComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.filterChange = new EventEmitter();
|
|
6
|
+
}
|
|
7
|
+
get filter() {
|
|
8
|
+
return this._filter;
|
|
9
|
+
}
|
|
10
|
+
set filter(value) {
|
|
11
|
+
this._filter = value;
|
|
12
|
+
}
|
|
13
|
+
onKeyEnter(event) {
|
|
14
|
+
if (event.code === 'Enter') {
|
|
15
|
+
this.filterChange.emit(this._filter);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
AdvancedTableSearchBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedTableSearchBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
AdvancedTableSearchBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AdvancedTableSearchBaseComponent, selector: "ng-component", inputs: { filter: "filter" }, outputs: { filterChange: "filterChange" }, ngImport: i0, template: '', isInline: true });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedTableSearchBaseComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{
|
|
24
|
+
template: ''
|
|
25
|
+
}]
|
|
26
|
+
}], propDecorators: { filterChange: [{
|
|
27
|
+
type: Output
|
|
28
|
+
}], filter: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}] } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUtc2VhcmNoLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2VhcmNoLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFJckUsTUFBTSxPQUFPLGdDQUFnQztJQUg3QztRQUtjLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQWdCL0M7SUFkRyxJQUNLLE1BQU07UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUs7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQW9CO1FBQzNCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs7NkhBakJRLGdDQUFnQztpSEFBaEMsZ0NBQWdDLDZIQUYvQixFQUFFOzJGQUVILGdDQUFnQztrQkFINUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs4QkFHVyxZQUFZO3NCQUFyQixNQUFNO2dCQUdGLE1BQU07c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6ICcnXG4gIH0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRUYWJsZVNlYXJjaEJhc2VDb21wb25lbnQge1xuICAgIHByaXZhdGUgX2ZpbHRlcjogYW55O1xuICAgIEBPdXRwdXQoKSBmaWx0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCAgZmlsdGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICAgIH1cblxuICAgIHNldCBmaWx0ZXIodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25LZXlFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdCh0aGlzLl9maWx0ZXIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|