@magic-xpa/angular-material-core 4.1100.0-dev4110.23 → 4.1100.0-dev4110.236
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +9 -0
- package/{esm2020 → esm2022}/magic-xpa-angular-material-core.mjs +1 -1
- package/{esm2020 → esm2022}/src/angular-material.module.mjs +83 -83
- package/esm2022/src/components/base-mat-table-magic.component.mjs +62 -0
- package/esm2022/src/directives/magic/form-controls/mat-magic-autocomplete.directive.mjs +28 -0
- package/{esm2020 → esm2022}/src/directives/magic/form-controls/mat-magic-checkbox.directive.mjs +14 -14
- package/esm2022/src/directives/magic/form-controls/mat-magic-combobox.directive.mjs +30 -0
- package/esm2022/src/directives/magic/form-controls/mat-magic-listbox.directive.mjs +27 -0
- package/{esm2020 → esm2022}/src/services/mat.magic.providers.mjs +6 -6
- package/esm2022/src/services/mattable.magic.service.mjs +138 -0
- package/{fesm2020 → fesm2022}/magic-xpa-angular-material-core.mjs +322 -302
- package/fesm2022/magic-xpa-angular-material-core.mjs.map +1 -0
- package/index.d.ts +8 -8
- package/package.json +10 -16
- package/src/angular-material.module.d.ts +26 -26
- package/src/components/base-mat-table-magic.component.d.ts +19 -19
- package/src/directives/magic/form-controls/mat-magic-autocomplete.directive.d.ts +7 -7
- package/src/directives/magic/form-controls/mat-magic-checkbox.directive.d.ts +6 -6
- package/src/directives/magic/form-controls/mat-magic-combobox.directive.d.ts +9 -9
- package/src/directives/magic/form-controls/mat-magic-listbox.directive.d.ts +9 -9
- package/src/services/mat.magic.providers.d.ts +38 -38
- package/src/services/mattable.magic.service.d.ts +36 -36
- package/esm2020/index.mjs +0 -9
- package/esm2020/src/components/base-mat-table-magic.component.mjs +0 -54
- package/esm2020/src/directives/magic/form-controls/mat-magic-autocomplete.directive.mjs +0 -28
- package/esm2020/src/directives/magic/form-controls/mat-magic-combobox.directive.mjs +0 -30
- package/esm2020/src/directives/magic/form-controls/mat-magic-listbox.directive.mjs +0 -26
- package/esm2020/src/services/mattable.magic.service.mjs +0 -127
- package/fesm2015/magic-xpa-angular-material-core.mjs +0 -367
- package/fesm2015/magic-xpa-angular-material-core.mjs.map +0 -1
- package/fesm2020/magic-xpa-angular-material-core.mjs.map +0 -1
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener } from "@angular/core";
|
|
2
|
-
import { MagicDirective } from "@magic-xpa/angular";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@magic-xpa/angular";
|
|
5
|
-
export class MatListboxDirective {
|
|
6
|
-
constructor(magicDirective) {
|
|
7
|
-
this.magicDirective = magicDirective;
|
|
8
|
-
}
|
|
9
|
-
onChange($event) {
|
|
10
|
-
this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
MatListboxDirective.ɵfac = function MatListboxDirective_Factory(t) { return new (t || MatListboxDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective)); };
|
|
14
|
-
MatListboxDirective.ɵdir = i0.ɵɵdefineDirective({ type: MatListboxDirective, selectors: [["mat-selection-list", "magic", ""]], hostBindings: function MatListboxDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
15
|
-
i0.ɵɵlistener("selectionChange", function MatListboxDirective_selectionChange_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
16
|
-
} } });
|
|
17
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatListboxDirective, [{
|
|
18
|
-
type: Directive,
|
|
19
|
-
args: [{
|
|
20
|
-
selector: `mat-selection-list[magic]`,
|
|
21
|
-
}]
|
|
22
|
-
}], function () { return [{ type: i1.MagicDirective }]; }, { onChange: [{
|
|
23
|
-
type: HostListener,
|
|
24
|
-
args: ['selectionChange', ['$event']]
|
|
25
|
-
}] }); })();
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW1hZ2ljLWxpc3Rib3guZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1tYXRlcmlhbC1jb3JlL3NyYy9kaXJlY3RpdmVzL21hZ2ljL2Zvcm0tY29udHJvbHMvbWF0LW1hZ2ljLWxpc3Rib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVXBELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBc0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3BELENBQUM7SUFPRCxRQUFRLENBQUMsTUFBTTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7O3NGQVpVLG1CQUFtQjt3REFBbkIsbUJBQW1COzBIQUFuQixvQkFBZ0I7O3VGQUFoQixtQkFBbUI7Y0FKL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFDTiwyQkFBMkI7YUFDOUI7aUVBV0MsUUFBUTtrQkFEUCxZQUFZO21CQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYWdpY0RpcmVjdGl2ZSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcclxuXHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBtYXRlcmlhbC1kZXNpZ24gbGlzdGJveGVzIG5vdCBvbiBtYXRlcmlhbC1kZXNpZ24gdGFibGVcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOlxyXG4gICAgYG1hdC1zZWxlY3Rpb24tbGlzdFttYWdpY11gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0TGlzdGJveERpcmVjdGl2ZXtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1hZ2ljRGlyZWN0aXZlOiBNYWdpY0RpcmVjdGl2ZSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgXCJzZWxlY3Rpb25DaGFuZ2VcIiBldmVudCAtIHBhc3MgaXQgdG8gdGhlIFwiY2hhbmdlXCIgZXZlbnQgaGFuZGxlclxyXG4gICAqIEBwYXJhbSAkZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdzZWxlY3Rpb25DaGFuZ2UnLCBbJyRldmVudCddKVxyXG4gIG9uQ2hhbmdlKCRldmVudCkge1xyXG4gICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLm9uTGlzdEJveFNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCB0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { TaskMagicService, ComponentListMagicService } from "@magic-xpa/angular";
|
|
3
|
-
import { getGuiEventObj } from "@magic-xpa/engine";
|
|
4
|
-
import { TableMagicService } from "@magic-xpa/angular";
|
|
5
|
-
import { isNullOrUndefined } from "@magic-xpa/mscorelib";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@magic-xpa/angular";
|
|
8
|
-
export class MgMatTableService extends TableMagicService {
|
|
9
|
-
get DataSource() {
|
|
10
|
-
return this.dataSource;
|
|
11
|
-
}
|
|
12
|
-
set DataSource(dataSource) {
|
|
13
|
-
this.dataSource = dataSource;
|
|
14
|
-
}
|
|
15
|
-
get Selection() {
|
|
16
|
-
return this.selection;
|
|
17
|
-
}
|
|
18
|
-
set Selection(selection) {
|
|
19
|
-
this.selection = selection;
|
|
20
|
-
}
|
|
21
|
-
get Paginator() {
|
|
22
|
-
return this.paginator;
|
|
23
|
-
}
|
|
24
|
-
set Paginator(paginator) {
|
|
25
|
-
this.paginator = paginator;
|
|
26
|
-
}
|
|
27
|
-
constructor(componentList, task) {
|
|
28
|
-
super(componentList, task);
|
|
29
|
-
this.componentList = componentList;
|
|
30
|
-
this.task = task;
|
|
31
|
-
}
|
|
32
|
-
connect(dataSource, paginator, selection) {
|
|
33
|
-
this.dataSource = dataSource;
|
|
34
|
-
this.paginator = paginator;
|
|
35
|
-
this.selection = selection;
|
|
36
|
-
}
|
|
37
|
-
refreshDataSource() {
|
|
38
|
-
if (!isNullOrUndefined(this.paginator))
|
|
39
|
-
this.dataSource.paginator = this.paginator;
|
|
40
|
-
this.dataSource.data = (this.task.mgAccessorService.isDataviewEmpty() ? [] : this.task.Records.list);
|
|
41
|
-
}
|
|
42
|
-
getPageSize() {
|
|
43
|
-
if (isNullOrUndefined(this.paginator))
|
|
44
|
-
return 10;
|
|
45
|
-
return this.paginator.pageSize;
|
|
46
|
-
}
|
|
47
|
-
selectRow(guiRowid) {
|
|
48
|
-
super.selectRow(guiRowid);
|
|
49
|
-
this.selection.select(this.task.Records.list[guiRowid]);
|
|
50
|
-
this.refreshDataSource();
|
|
51
|
-
}
|
|
52
|
-
selectPage(pageId) {
|
|
53
|
-
if (!isNullOrUndefined(this.paginator))
|
|
54
|
-
this.paginator.pageIndex = pageId;
|
|
55
|
-
this.refreshDataSource();
|
|
56
|
-
}
|
|
57
|
-
selectedRow() {
|
|
58
|
-
return this.selection.selected[0];
|
|
59
|
-
}
|
|
60
|
-
mgOnPaginateChange(e, changeSelectedRow) {
|
|
61
|
-
if (this.task.oldPageSize != e.pageSize) {
|
|
62
|
-
this.handleResize(e.pageIndex, e.previousPageIndex, e.pageSize);
|
|
63
|
-
this.task.oldPageSize = e.pageSize;
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
if (changeSelectedRow) {
|
|
67
|
-
let evt = (e.pageIndex > e.previousPageIndex) ? "next-page" : "previous-page";
|
|
68
|
-
let guiEvent = getGuiEventObj("navigateInTable", "magicRow", 0);
|
|
69
|
-
guiEvent.Value = evt;
|
|
70
|
-
this.task.insertEvent(guiEvent);
|
|
71
|
-
}
|
|
72
|
-
else
|
|
73
|
-
this.getRowsIfNeeded(e.pageIndex, e.previousPageIndex, e.pageSize);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
handleResize(pageIndex, prevPageIndex, pageSize) {
|
|
77
|
-
let requiredGuiRowId = pageIndex * pageSize;
|
|
78
|
-
this.task.resize(pageSize, requiredGuiRowId);
|
|
79
|
-
}
|
|
80
|
-
getRowsIfNeeded(pageIndex, prevPageIndex, pageSize) {
|
|
81
|
-
let guiEvent = getGuiEventObj("getRows", "", 0);
|
|
82
|
-
guiEvent.Line = pageIndex * pageSize;
|
|
83
|
-
this.task.insertEvent(guiEvent);
|
|
84
|
-
this.setTableTopIndex(this.task.getDvRowId(pageSize * pageIndex));
|
|
85
|
-
}
|
|
86
|
-
sortData(e) {
|
|
87
|
-
let direction = 0;
|
|
88
|
-
if (e.direction === 'asc')
|
|
89
|
-
direction = 0;
|
|
90
|
-
else if (e.direction === 'desc')
|
|
91
|
-
direction = 1;
|
|
92
|
-
let guiEvent = getGuiEventObj("columnSort", e.active, direction);
|
|
93
|
-
this.task.insertEvent(guiEvent);
|
|
94
|
-
}
|
|
95
|
-
updateTableSize(size) {
|
|
96
|
-
if (size === 0) {
|
|
97
|
-
size = 1;
|
|
98
|
-
this.task.Records.clearFirstTableRecord(this.task.template);
|
|
99
|
-
}
|
|
100
|
-
else if (isNullOrUndefined(this.paginator))
|
|
101
|
-
size = this.getPageSize();
|
|
102
|
-
this.task.formGroups.length = size;
|
|
103
|
-
this.task.Records.updateSize(size);
|
|
104
|
-
this.task.setIncludesFirst(false);
|
|
105
|
-
}
|
|
106
|
-
selectPageForGuiRowId(guiRowId) {
|
|
107
|
-
let pageToBeSelected = 0;
|
|
108
|
-
let prevSelectedRow = this.selectedRow();
|
|
109
|
-
pageToBeSelected = Math.floor(guiRowId / this.getPageSize());
|
|
110
|
-
if ((isNullOrUndefined(prevSelectedRow) || (!isNullOrUndefined(this.paginator) && pageToBeSelected != this.paginator.pageIndex)))
|
|
111
|
-
this.selectPage(pageToBeSelected);
|
|
112
|
-
}
|
|
113
|
-
setTableTopIndex(value) {
|
|
114
|
-
this.task.Records.setGuiTopIndex(value);
|
|
115
|
-
if (value >= 0)
|
|
116
|
-
this.selectPageForGuiRowId(this.task.getGuiRowId(value, true));
|
|
117
|
-
}
|
|
118
|
-
getTableTopIndex() {
|
|
119
|
-
return this.task.Records.getGuiTopIndex();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
MgMatTableService.ɵfac = function MgMatTableService_Factory(t) { return new (t || MgMatTableService)(i0.ɵɵinject(i1.ComponentListMagicService), i0.ɵɵinject(i1.TaskMagicService)); };
|
|
123
|
-
MgMatTableService.ɵprov = i0.ɵɵdefineInjectable({ token: MgMatTableService, factory: MgMatTableService.ɵfac });
|
|
124
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgMatTableService, [{
|
|
125
|
-
type: Injectable
|
|
126
|
-
}], function () { return [{ type: i1.ComponentListMagicService }, { type: i1.TaskMagicService }]; }, null); })();
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0dGFibGUubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtY29yZS9zcmMvc2VydmljZXMvbWF0dGFibGUubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBQVksY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQVN2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO0lBU3RELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBS0QsSUFBSSxVQUFVLENBQUMsVUFBdUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQVVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFBSSxTQUFTLENBQUMsU0FBa0M7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQVVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFBSSxTQUFTLENBQUMsU0FBdUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUtELFlBQXNCLGFBQXdDLEVBQVksSUFBc0I7UUFDOUYsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQURQLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUFZLFNBQUksR0FBSixJQUFJLENBQWtCO0lBRWhHLENBQUM7SUFRRCxPQUFPLENBQUMsVUFBdUMsRUFBRyxTQUF1QixFQUFFLFNBQWtDO1FBQzNHLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFLRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBTUQsV0FBVztRQUNULElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuQyxPQUFPLEVBQUUsQ0FBQztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQU1ELFNBQVMsQ0FBQyxRQUFnQjtRQUN4QixLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFNRCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUM7UUFFcEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQU1ELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFNRCxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsaUJBQTJCO1FBRS9DLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3BDO2FBQ0k7WUFDSCxJQUFJLGlCQUFpQixFQUNyQjtnQkFDRSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUM5RSxJQUFJLFFBQVEsR0FBYyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRSxRQUFRLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7O2dCQUVDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQVFELFlBQVksQ0FBQyxTQUFpQixFQUFFLGFBQXFCLEVBQUUsUUFBZ0I7UUFDckUsSUFBSSxnQkFBZ0IsR0FBRyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFRSCxlQUFlLENBQUMsU0FBaUIsRUFBRSxhQUFxQixFQUFFLFFBQWdCO1FBQ3hFLElBQUksUUFBUSxHQUFjLGNBQWMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQU1ELFFBQVEsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxTQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQ3ZCLFNBQVMsR0FBRyxDQUFDLENBQUM7YUFDWCxJQUFJLENBQUMsQ0FBQyxTQUFTLEtBQUssTUFBTTtZQUM3QixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLElBQUksUUFBUSxHQUFjLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBTUQsZUFBZSxDQUFDLElBQVk7UUFDMUIsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUNkO1lBQ0csSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUQ7YUFFSSxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFNUyxxQkFBcUIsQ0FBQyxRQUFnQjtRQUM5QyxJQUFJLGdCQUFnQixHQUFXLENBQUMsQ0FBQztRQUNqQyxJQUFJLGVBQWUsR0FBdUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTdFLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRzdELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUgsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFLRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQ1osSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFLRCxnQkFBZ0I7UUFFZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVDLENBQUM7O2tGQTlPVSxpQkFBaUI7eURBQWpCLGlCQUFpQixXQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcblxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSwgQ29tcG9uZW50TGlzdE1hZ2ljU2VydmljZSwgQ29udHJvbHNNZXRhZGF0YSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUd1aUV2ZW50LCBnZXRHdWlFdmVudE9ian0gZnJvbSBcIkBtYWdpYy14cGEvZW5naW5lXCI7XG5pbXBvcnQgeyBUYWJsZU1hZ2ljU2VydmljZSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcblxuXG4vKipcbiAqIEV4dGVuZHMgdGhlIE1hZ2ljIHRhYmxlIHNlcnZpY2UgdG8gc3VwcGx5IGZ1bmN0aW9uYWxpdHkgZm9yIE1hdGVyaWFsIERlc2lnbiB0YWJsZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1nTWF0VGFibGVTZXJ2aWNlIGV4dGVuZHMgVGFibGVNYWdpY1NlcnZpY2Uge1xuICAvKipcbiAgICogVGFibGUgZGF0YSBzb3VyY2VcbiAgICovXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxFbGVtZW50PjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IERhdGFTb3VyY2UoKTogTWF0VGFibGVEYXRhU291cmNlPEVsZW1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldCBEYXRhU291cmNlKGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxFbGVtZW50Pikge1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgc2VsZWN0aW9uIG9wdGlvbnMgZm9yIHRoZSB0YWJsZVxuICAgKi9cbiAgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxFbGVtZW50PjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IFNlbGVjdGlvbigpOiBTZWxlY3Rpb25Nb2RlbDxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldCBTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxFbGVtZW50Pikge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gc2VsZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhZ2luYXRvciB0byBlbmFibGUgY2hhbmdpbmcgcGFnZXMgaW4gdGhlIHRhYmxlXG4gICAqL1xuICBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IFBhZ2luYXRvcigpOiBNYXRQYWdpbmF0b3Ige1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBzZXQgUGFnaW5hdG9yKHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yKSB7XG4gICAgdGhpcy5wYWdpbmF0b3IgPSBwYWdpbmF0b3I7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbXBvbmVudExpc3Q6IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsIHByb3RlY3RlZCB0YXNrOiBUYXNrTWFnaWNTZXJ2aWNlICkge1xuICAgIHN1cGVyKGNvbXBvbmVudExpc3QsIHRhc2spO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbm5lY3RzIHRoZSBzZXJ2aWNlIHRvIHRoZSBlbGVtZW50cyBvZiB0aGUgdGFibGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBkYXRhU291cmNlIFRhYmxlIGRhdGEgc291cmNlXG4gICAqIEBwYXJhbSBwYWdpbmF0b3IgVGFibGUgcGFnaW5hdG9yXG4gICAqIEBwYXJhbSBzZWxlY3Rpb24gdGFibGUgU2VsZWN0aW9uTW9kZWxcbiAgICovXG4gIGNvbm5lY3QoZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPEVsZW1lbnQ+ICwgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3IsIHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8RWxlbWVudD4pIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMucGFnaW5hdG9yID0gcGFnaW5hdG9yO1xuICAgIHRoaXMuc2VsZWN0aW9uID0gc2VsZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHJlZnJlc2hEYXRhU291cmNlKCkge1xuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5wYWdpbmF0b3IpKVxuICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSAodGhpcy50YXNrLm1nQWNjZXNzb3JTZXJ2aWNlLmlzRGF0YXZpZXdFbXB0eSgpID8gW10gOiB0aGlzLnRhc2suUmVjb3Jkcy5saXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIHRoZSBwYWdlIHNpemUgb2YgdGhlIHRhYmxlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRQYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLnBhZ2luYXRvcikpXG4gICAgICByZXR1cm4gMTA7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYSB0YWJsZSByb3dcbiAgICogQHBhcmFtIGd1aVJvd2lkIElkIG9mIHJvdyB0byBiZSBzZWxlY3RlZFxuICAgKi9cbiAgc2VsZWN0Um93KGd1aVJvd2lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzdXBlci5zZWxlY3RSb3coZ3VpUm93aWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdCh0aGlzLnRhc2suUmVjb3Jkcy5saXN0W2d1aVJvd2lkXSk7XG4gICAgdGhpcy5yZWZyZXNoRGF0YVNvdXJjZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSByZXF1ZXN0ZWQgdGFibGUgcGFnZVxuICAgKiBAcGFyYW0gcGFnZUlkIElkIG9mIHBhZ2UgdG8gYmUgc2VsZWN0ZWRcbiAgICovXG4gIHNlbGVjdFBhZ2UocGFnZUlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucGFnaW5hdG9yKSlcbiAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IHBhZ2VJZDtcblxuICAgIHRoaXMucmVmcmVzaERhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZXRlZCByb3dcbiAgICogQHJldHVybnNcbiAgICovXG4gIHNlbGVjdGVkUm93KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcGFnaW5hdG9yJ3MgXCJwYWdlXCIgZXZlbnRcbiAgICogQHBhcmFtIGUgVGhlIGV2ZW50IHJlY2VpdmVkIGZyb20gdGhlIFVJXG4gICAqL1xuICBtZ09uUGFnaW5hdGVDaGFuZ2UoZSwgY2hhbmdlU2VsZWN0ZWRSb3c/OiBib29sZWFuKVxuICB7XG4gICAgaWYgKHRoaXMudGFzay5vbGRQYWdlU2l6ZSAhPSBlLnBhZ2VTaXplKSB7XG4gICAgICB0aGlzLmhhbmRsZVJlc2l6ZShlLnBhZ2VJbmRleCwgZS5wcmV2aW91c1BhZ2VJbmRleCwgZS5wYWdlU2l6ZSk7XG4gICAgICB0aGlzLnRhc2sub2xkUGFnZVNpemUgPSBlLnBhZ2VTaXplO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChjaGFuZ2VTZWxlY3RlZFJvdylcbiAgICAgIHtcbiAgICAgICAgbGV0IGV2dCA9IChlLnBhZ2VJbmRleCA+IGUucHJldmlvdXNQYWdlSW5kZXgpID8gXCJuZXh0LXBhZ2VcIiA6IFwicHJldmlvdXMtcGFnZVwiO1xuICAgICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwibmF2aWdhdGVJblRhYmxlXCIsIFwibWFnaWNSb3dcIiwwKTtcbiAgICAgICAgZ3VpRXZlbnQuVmFsdWUgPSBldnQ7XG4gICAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChndWlFdmVudCk7XG4gICAgICB9XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuZ2V0Um93c0lmTmVlZGVkKGUucGFnZUluZGV4LCBlLnByZXZpb3VzUGFnZUluZGV4LCBlLnBhZ2VTaXplKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHJlc2l6ZSBhbmQgc2V0IHRhYmxlIHRvcCBpbmRleC5cbiAgICogQHBhcmFtIHBhZ2VJbmRleCA6IE5ldyBwYWdlIGluZGV4LlxuICAgKiBAcGFyYW0gcHJldlBhZ2VJbmRleCA6IFByZXYgcGFnZSBpbmRleFxuICAgKiBAcGFyYW0gcGFnZVNpemUgOiBQYWdlU2l6ZVxuICAgKi9cbiAgaGFuZGxlUmVzaXplKHBhZ2VJbmRleDogbnVtYmVyLCBwcmV2UGFnZUluZGV4OiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgcmVxdWlyZWRHdWlSb3dJZCA9IHBhZ2VJbmRleCAqIHBhZ2VTaXplO1xuICAgIHRoaXMudGFzay5yZXNpemUocGFnZVNpemUsIHJlcXVpcmVkR3VpUm93SWQpO1xuICAgIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBnZXRSb3dzIHRvIGZldGNoIHJlcXVpcmVkIGNodW5rIG9mIHJlY29yZHMuXG4gICAqIEBwYXJhbSBwYWdlSW5kZXggOiBOZXcgcGFnZSBpbmRleC5cbiAgICogQHBhcmFtIHByZXZQYWdlSW5kZXggOiBQcmV2IHBhZ2UgaW5kZXhcbiAgICogQHBhcmFtIHBhZ2VTaXplIDogUGFnZVNpemVcbiAgICovXG4gIGdldFJvd3NJZk5lZWRlZChwYWdlSW5kZXg6IG51bWJlciwgcHJldlBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IGd1aUV2ZW50OiBJR3VpRXZlbnQgPSBnZXRHdWlFdmVudE9iaihcImdldFJvd3NcIiwgXCJcIiwwKTtcbiAgICBndWlFdmVudC5MaW5lID0gcGFnZUluZGV4ICogcGFnZVNpemU7XG4gICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcbiAgICB0aGlzLnNldFRhYmxlVG9wSW5kZXgodGhpcy50YXNrLmdldER2Um93SWQocGFnZVNpemUgKiBwYWdlSW5kZXgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBcIm1hdFNvcnRDaGFuZ2VcIiBldmVudFxuICAgKiBAcGFyYW0gZSBUaGUgZXZlbnQgcmVjZWl2ZWQgZnJvbSB0aGUgVUlcbiAgICovXG4gIHNvcnREYXRhKGUpIHtcbiAgICBsZXQgZGlyZWN0aW9uOiBudW1iZXIgPSAwO1xuICAgIGlmIChlLmRpcmVjdGlvbiA9PT0gJ2FzYycpXG4gICAgICBkaXJlY3Rpb24gPSAwO1xuICAgIGVsc2UgaWYgKGUuZGlyZWN0aW9uID09PSAnZGVzYycpXG4gICAgICBkaXJlY3Rpb24gPSAxO1xuXG4gICAgbGV0IGd1aUV2ZW50OiBJR3VpRXZlbnQgPSBnZXRHdWlFdmVudE9iaihcImNvbHVtblNvcnRcIiwgZS5hY3RpdmUsIGRpcmVjdGlvbik7XG4gICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIG51bWJlciBvZiBsaW5lcyBpbiBhIHRhYmxlXG4gICAqIEBwYXJhbSAgc2l6ZSBOZXcgbnVtYmVyIG9mIGxpbmVzIGluIHRhYmxlXG4gICAqL1xuICB1cGRhdGVUYWJsZVNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgaWYgKHNpemUgPT09IDApIC8vIG5ldmVyIHJlbW92ZSByb3cgMCBmb3Igbm93XG4gICAge1xuICAgICAgIHNpemUgPSAxO1xuICAgICAgIHRoaXMudGFzay5SZWNvcmRzLmNsZWFyRmlyc3RUYWJsZVJlY29yZCh0aGlzLnRhc2sudGVtcGxhdGUpO1xuICAgIH1cblxuICAgIGVsc2UgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucGFnaW5hdG9yKSlcbiAgICAgICBzaXplID0gdGhpcy5nZXRQYWdlU2l6ZSgpO1xuXG4gICAgdGhpcy50YXNrLmZvcm1Hcm91cHMubGVuZ3RoID0gc2l6ZTtcbiAgICB0aGlzLnRhc2suUmVjb3Jkcy51cGRhdGVTaXplKHNpemUpO1xuICAgIHRoaXMudGFzay5zZXRJbmNsdWRlc0ZpcnN0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHNlbGVjdGlvbiBvZiByb3cgYW5kIGlmIG5lZWRlZCBtb3ZlIHRvIHJlc3BlY3RpdmUgcGFnZS5cbiAgICogQHBhcmFtICBndWlSb3dJZCBOZXcgbnVtYmVyIG9mIGxpbmVzIGluIHRhYmxlXG4gICAqL1xuICBwcm90ZWN0ZWQgc2VsZWN0UGFnZUZvckd1aVJvd0lkKGd1aVJvd0lkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgcGFnZVRvQmVTZWxlY3RlZDogbnVtYmVyID0gMDtcbiAgICBsZXQgcHJldlNlbGVjdGVkUm93OiBDb250cm9sc01ldGFkYXRhID0gPENvbnRyb2xzTWV0YWRhdGE+dGhpcy5zZWxlY3RlZFJvdygpO1xuXG4gICAgcGFnZVRvQmVTZWxlY3RlZCA9IE1hdGguZmxvb3IoZ3VpUm93SWQgLyB0aGlzLmdldFBhZ2VTaXplKCkpO1xuXG4gICAgLy8gRXhwbGljaXRseSBoYW5kbGUgc2VsZWN0aW9uIG9mIHBhZ2Ugd2hlbiBpdCdzIG5vdCByYWlzZWQgYnkgdXNpbmcgcGFnaW5hdGlvblxuICAgIGlmICgoaXNOdWxsT3JVbmRlZmluZWQocHJldlNlbGVjdGVkUm93KSB8fCAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucGFnaW5hdG9yKSAmJiBwYWdlVG9CZVNlbGVjdGVkICE9IHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCkpKVxuICAgICAgdGhpcy5zZWxlY3RQYWdlKHBhZ2VUb0JlU2VsZWN0ZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldFRhYmxlVG9wSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMudGFzay5SZWNvcmRzLnNldEd1aVRvcEluZGV4KHZhbHVlKTtcblxuICAgIGlmICh2YWx1ZSA+PSAwKVxuICAgICAgdGhpcy5zZWxlY3RQYWdlRm9yR3VpUm93SWQodGhpcy50YXNrLmdldEd1aVJvd0lkKHZhbHVlLCB0cnVlKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0VGFibGVUb3BJbmRleCgpOm51bWJlclxuICB7XG4gICAgcmV0dXJuIHRoaXMudGFzay5SZWNvcmRzLmdldEd1aVRvcEluZGV4KCk7XG4gIH1cbn1cblxuIl19
|
|
@@ -1,367 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, HostListener, Injectable, Component, ViewChild, NgModule } from '@angular/core';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import * as i1 from '@magic-xpa/angular';
|
|
6
|
-
import { CheckboxMagicDirective, ComboboxMagicDirective, MagicDirective, TableMagicService, basicMagicProviders, TaskBaseMagicComponent, MagicModule } from '@magic-xpa/angular';
|
|
7
|
-
import { MatSort } from '@angular/material/sort';
|
|
8
|
-
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
9
|
-
import { SelectionModel } from '@angular/cdk/collections';
|
|
10
|
-
import { getGuiEventObj } from '@magic-xpa/engine';
|
|
11
|
-
import { isNullOrUndefined } from '@magic-xpa/mscorelib';
|
|
12
|
-
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
|
|
13
|
-
import { MatInputModule } from '@angular/material/input';
|
|
14
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
15
|
-
import { MatListModule } from '@angular/material/list';
|
|
16
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
17
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
|
18
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
19
|
-
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
20
|
-
import { MatNativeDateModule } from '@angular/material/core';
|
|
21
|
-
|
|
22
|
-
class MatCheckboxDirective extends CheckboxMagicDirective {
|
|
23
|
-
}
|
|
24
|
-
MatCheckboxDirective.ɵfac = function () { let ɵMatCheckboxDirective_BaseFactory; return function MatCheckboxDirective_Factory(t) { return (ɵMatCheckboxDirective_BaseFactory || (ɵMatCheckboxDirective_BaseFactory = i0.ɵɵgetInheritedFactory(MatCheckboxDirective)))(t || MatCheckboxDirective); }; }();
|
|
25
|
-
MatCheckboxDirective.ɵdir = i0.ɵɵdefineDirective({ type: MatCheckboxDirective, selectors: [["mat-checkbox", "magic", "", 3, "noFormControl", ""]], features: [i0.ɵɵInheritDefinitionFeature] });
|
|
26
|
-
(function () {
|
|
27
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatCheckboxDirective, [{
|
|
28
|
-
type: Directive,
|
|
29
|
-
args: [{
|
|
30
|
-
selector: `
|
|
31
|
-
mat-checkbox[magic]:not([noFormControl])
|
|
32
|
-
`,
|
|
33
|
-
}]
|
|
34
|
-
}], null, null);
|
|
35
|
-
})();
|
|
36
|
-
|
|
37
|
-
class MatComboboxDirective extends ComboboxMagicDirective {
|
|
38
|
-
onChange($event) {
|
|
39
|
-
super.onChange($event);
|
|
40
|
-
}
|
|
41
|
-
onOpenedChanged($event) {
|
|
42
|
-
MagicDirective.opened = $event;
|
|
43
|
-
}
|
|
44
|
-
onComboboxItemsListChanged() {
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
MatComboboxDirective.ɵfac = function () { let ɵMatComboboxDirective_BaseFactory; return function MatComboboxDirective_Factory(t) { return (ɵMatComboboxDirective_BaseFactory || (ɵMatComboboxDirective_BaseFactory = i0.ɵɵgetInheritedFactory(MatComboboxDirective)))(t || MatComboboxDirective); }; }();
|
|
48
|
-
MatComboboxDirective.ɵdir = i0.ɵɵdefineDirective({ type: MatComboboxDirective, selectors: [["mat-select", "magic", ""]], hostBindings: function MatComboboxDirective_HostBindings(rf, ctx) {
|
|
49
|
-
if (rf & 1) {
|
|
50
|
-
i0.ɵɵlistener("selectionChange", function MatComboboxDirective_selectionChange_HostBindingHandler($event) { return ctx.onChange($event); })("openedChange", function MatComboboxDirective_openedChange_HostBindingHandler($event) { return ctx.onOpenedChanged($event); });
|
|
51
|
-
}
|
|
52
|
-
}, features: [i0.ɵɵInheritDefinitionFeature] });
|
|
53
|
-
(function () {
|
|
54
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatComboboxDirective, [{
|
|
55
|
-
type: Directive,
|
|
56
|
-
args: [{
|
|
57
|
-
selector: `mat-select[magic]`,
|
|
58
|
-
}]
|
|
59
|
-
}], null, { onChange: [{
|
|
60
|
-
type: HostListener,
|
|
61
|
-
args: ['selectionChange', ['$event']]
|
|
62
|
-
}], onOpenedChanged: [{
|
|
63
|
-
type: HostListener,
|
|
64
|
-
args: ['openedChange', ['$event']]
|
|
65
|
-
}] });
|
|
66
|
-
})();
|
|
67
|
-
|
|
68
|
-
class MgMatTableService extends TableMagicService {
|
|
69
|
-
get DataSource() {
|
|
70
|
-
return this.dataSource;
|
|
71
|
-
}
|
|
72
|
-
set DataSource(dataSource) {
|
|
73
|
-
this.dataSource = dataSource;
|
|
74
|
-
}
|
|
75
|
-
get Selection() {
|
|
76
|
-
return this.selection;
|
|
77
|
-
}
|
|
78
|
-
set Selection(selection) {
|
|
79
|
-
this.selection = selection;
|
|
80
|
-
}
|
|
81
|
-
get Paginator() {
|
|
82
|
-
return this.paginator;
|
|
83
|
-
}
|
|
84
|
-
set Paginator(paginator) {
|
|
85
|
-
this.paginator = paginator;
|
|
86
|
-
}
|
|
87
|
-
constructor(componentList, task) {
|
|
88
|
-
super(componentList, task);
|
|
89
|
-
this.componentList = componentList;
|
|
90
|
-
this.task = task;
|
|
91
|
-
}
|
|
92
|
-
connect(dataSource, paginator, selection) {
|
|
93
|
-
this.dataSource = dataSource;
|
|
94
|
-
this.paginator = paginator;
|
|
95
|
-
this.selection = selection;
|
|
96
|
-
}
|
|
97
|
-
refreshDataSource() {
|
|
98
|
-
if (!isNullOrUndefined(this.paginator))
|
|
99
|
-
this.dataSource.paginator = this.paginator;
|
|
100
|
-
this.dataSource.data = (this.task.mgAccessorService.isDataviewEmpty() ? [] : this.task.Records.list);
|
|
101
|
-
}
|
|
102
|
-
getPageSize() {
|
|
103
|
-
if (isNullOrUndefined(this.paginator))
|
|
104
|
-
return 10;
|
|
105
|
-
return this.paginator.pageSize;
|
|
106
|
-
}
|
|
107
|
-
selectRow(guiRowid) {
|
|
108
|
-
super.selectRow(guiRowid);
|
|
109
|
-
this.selection.select(this.task.Records.list[guiRowid]);
|
|
110
|
-
this.refreshDataSource();
|
|
111
|
-
}
|
|
112
|
-
selectPage(pageId) {
|
|
113
|
-
if (!isNullOrUndefined(this.paginator))
|
|
114
|
-
this.paginator.pageIndex = pageId;
|
|
115
|
-
this.refreshDataSource();
|
|
116
|
-
}
|
|
117
|
-
selectedRow() {
|
|
118
|
-
return this.selection.selected[0];
|
|
119
|
-
}
|
|
120
|
-
mgOnPaginateChange(e, changeSelectedRow) {
|
|
121
|
-
if (this.task.oldPageSize != e.pageSize) {
|
|
122
|
-
this.handleResize(e.pageIndex, e.previousPageIndex, e.pageSize);
|
|
123
|
-
this.task.oldPageSize = e.pageSize;
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
if (changeSelectedRow) {
|
|
127
|
-
let evt = (e.pageIndex > e.previousPageIndex) ? "next-page" : "previous-page";
|
|
128
|
-
let guiEvent = getGuiEventObj("navigateInTable", "magicRow", 0);
|
|
129
|
-
guiEvent.Value = evt;
|
|
130
|
-
this.task.insertEvent(guiEvent);
|
|
131
|
-
}
|
|
132
|
-
else
|
|
133
|
-
this.getRowsIfNeeded(e.pageIndex, e.previousPageIndex, e.pageSize);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
handleResize(pageIndex, prevPageIndex, pageSize) {
|
|
137
|
-
let requiredGuiRowId = pageIndex * pageSize;
|
|
138
|
-
this.task.resize(pageSize, requiredGuiRowId);
|
|
139
|
-
}
|
|
140
|
-
getRowsIfNeeded(pageIndex, prevPageIndex, pageSize) {
|
|
141
|
-
let guiEvent = getGuiEventObj("getRows", "", 0);
|
|
142
|
-
guiEvent.Line = pageIndex * pageSize;
|
|
143
|
-
this.task.insertEvent(guiEvent);
|
|
144
|
-
this.setTableTopIndex(this.task.getDvRowId(pageSize * pageIndex));
|
|
145
|
-
}
|
|
146
|
-
sortData(e) {
|
|
147
|
-
let direction = 0;
|
|
148
|
-
if (e.direction === 'asc')
|
|
149
|
-
direction = 0;
|
|
150
|
-
else if (e.direction === 'desc')
|
|
151
|
-
direction = 1;
|
|
152
|
-
let guiEvent = getGuiEventObj("columnSort", e.active, direction);
|
|
153
|
-
this.task.insertEvent(guiEvent);
|
|
154
|
-
}
|
|
155
|
-
updateTableSize(size) {
|
|
156
|
-
if (size === 0) {
|
|
157
|
-
size = 1;
|
|
158
|
-
this.task.Records.clearFirstTableRecord(this.task.template);
|
|
159
|
-
}
|
|
160
|
-
else if (isNullOrUndefined(this.paginator))
|
|
161
|
-
size = this.getPageSize();
|
|
162
|
-
this.task.formGroups.length = size;
|
|
163
|
-
this.task.Records.updateSize(size);
|
|
164
|
-
this.task.setIncludesFirst(false);
|
|
165
|
-
}
|
|
166
|
-
selectPageForGuiRowId(guiRowId) {
|
|
167
|
-
let pageToBeSelected = 0;
|
|
168
|
-
let prevSelectedRow = this.selectedRow();
|
|
169
|
-
pageToBeSelected = Math.floor(guiRowId / this.getPageSize());
|
|
170
|
-
if ((isNullOrUndefined(prevSelectedRow) || (!isNullOrUndefined(this.paginator) && pageToBeSelected != this.paginator.pageIndex)))
|
|
171
|
-
this.selectPage(pageToBeSelected);
|
|
172
|
-
}
|
|
173
|
-
setTableTopIndex(value) {
|
|
174
|
-
this.task.Records.setGuiTopIndex(value);
|
|
175
|
-
if (value >= 0)
|
|
176
|
-
this.selectPageForGuiRowId(this.task.getGuiRowId(value, true));
|
|
177
|
-
}
|
|
178
|
-
getTableTopIndex() {
|
|
179
|
-
return this.task.Records.getGuiTopIndex();
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
MgMatTableService.ɵfac = function MgMatTableService_Factory(t) { return new (t || MgMatTableService)(i0.ɵɵinject(i1.ComponentListMagicService), i0.ɵɵinject(i1.TaskMagicService)); };
|
|
183
|
-
MgMatTableService.ɵprov = i0.ɵɵdefineInjectable({ token: MgMatTableService, factory: MgMatTableService.ɵfac });
|
|
184
|
-
(function () {
|
|
185
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgMatTableService, [{
|
|
186
|
-
type: Injectable
|
|
187
|
-
}], function () { return [{ type: i1.ComponentListMagicService }, { type: i1.TaskMagicService }]; }, null);
|
|
188
|
-
})();
|
|
189
|
-
|
|
190
|
-
const matMagicProviders = [
|
|
191
|
-
...basicMagicProviders,
|
|
192
|
-
{ provide: TableMagicService, useClass: MgMatTableService }
|
|
193
|
-
];
|
|
194
|
-
|
|
195
|
-
class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
|
|
196
|
-
constructor(ref, magicService) {
|
|
197
|
-
super(ref, magicService);
|
|
198
|
-
this.ref = ref;
|
|
199
|
-
this.magicService = magicService;
|
|
200
|
-
this.displayedColumns = [];
|
|
201
|
-
this.dataSource = new MatTableDataSource(this.task.Records.list);
|
|
202
|
-
this.selection = new SelectionModel(false, []);
|
|
203
|
-
}
|
|
204
|
-
ngOnInit() {
|
|
205
|
-
super.ngOnInit();
|
|
206
|
-
this.magicService.tableService.connect(this.dataSource, this.paginator, this.selection);
|
|
207
|
-
}
|
|
208
|
-
ngAfterContentChecked() {
|
|
209
|
-
if (!isNullOrUndefined(this.paginator) && !isNullOrUndefined(this.paginator.pageSize) &&
|
|
210
|
-
this.paginator.pageSize != this.task.oldPageSize) {
|
|
211
|
-
this.magicService.tableService.handleResize(this.paginator.pageIndex, 0, this.paginator.pageSize);
|
|
212
|
-
this.task.oldPageSize = this.paginator.pageSize;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
BaseMatTableMagicComponent.ɵfac = function BaseMatTableMagicComponent_Factory(t) { return new (t || BaseMatTableMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MagicServices)); };
|
|
217
|
-
BaseMatTableMagicComponent.ɵcmp = i0.ɵɵdefineComponent({ type: BaseMatTableMagicComponent, selectors: [["ng-component"]], viewQuery: function BaseMatTableMagicComponent_Query(rf, ctx) {
|
|
218
|
-
if (rf & 1) {
|
|
219
|
-
i0.ɵɵviewQuery(MatPaginator, 7);
|
|
220
|
-
i0.ɵɵviewQuery(MatSort, 7);
|
|
221
|
-
}
|
|
222
|
-
if (rf & 2) {
|
|
223
|
-
let _t;
|
|
224
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.paginator = _t.first);
|
|
225
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
|
|
226
|
-
}
|
|
227
|
-
}, features: [i0.ɵɵProvidersFeature(matMagicProviders), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BaseMatTableMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
|
|
228
|
-
(function () {
|
|
229
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMatTableMagicComponent, [{
|
|
230
|
-
type: Component,
|
|
231
|
-
args: [{
|
|
232
|
-
providers: matMagicProviders,
|
|
233
|
-
template: ''
|
|
234
|
-
}]
|
|
235
|
-
}], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.MagicServices }]; }, { paginator: [{
|
|
236
|
-
type: ViewChild,
|
|
237
|
-
args: [MatPaginator, { static: true }]
|
|
238
|
-
}], sort: [{
|
|
239
|
-
type: ViewChild,
|
|
240
|
-
args: [MatSort, { static: true }]
|
|
241
|
-
}] });
|
|
242
|
-
})();
|
|
243
|
-
|
|
244
|
-
class MatListboxDirective {
|
|
245
|
-
constructor(magicDirective) {
|
|
246
|
-
this.magicDirective = magicDirective;
|
|
247
|
-
}
|
|
248
|
-
onChange($event) {
|
|
249
|
-
this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
MatListboxDirective.ɵfac = function MatListboxDirective_Factory(t) { return new (t || MatListboxDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective)); };
|
|
253
|
-
MatListboxDirective.ɵdir = i0.ɵɵdefineDirective({ type: MatListboxDirective, selectors: [["mat-selection-list", "magic", ""]], hostBindings: function MatListboxDirective_HostBindings(rf, ctx) {
|
|
254
|
-
if (rf & 1) {
|
|
255
|
-
i0.ɵɵlistener("selectionChange", function MatListboxDirective_selectionChange_HostBindingHandler($event) { return ctx.onChange($event); });
|
|
256
|
-
}
|
|
257
|
-
} });
|
|
258
|
-
(function () {
|
|
259
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatListboxDirective, [{
|
|
260
|
-
type: Directive,
|
|
261
|
-
args: [{
|
|
262
|
-
selector: `mat-selection-list[magic]`,
|
|
263
|
-
}]
|
|
264
|
-
}], function () { return [{ type: i1.MagicDirective }]; }, { onChange: [{
|
|
265
|
-
type: HostListener,
|
|
266
|
-
args: ['selectionChange', ['$event']]
|
|
267
|
-
}] });
|
|
268
|
-
})();
|
|
269
|
-
|
|
270
|
-
class MatMagicAutocompleteDirective {
|
|
271
|
-
onOpenedChanged($event) {
|
|
272
|
-
MagicDirective.noOfAutoCompleteBoxesOpened++;
|
|
273
|
-
}
|
|
274
|
-
onClosedChanged($event) {
|
|
275
|
-
MagicDirective.noOfAutoCompleteBoxesOpened--;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
MatMagicAutocompleteDirective.ɵfac = function MatMagicAutocompleteDirective_Factory(t) { return new (t || MatMagicAutocompleteDirective)(); };
|
|
279
|
-
MatMagicAutocompleteDirective.ɵdir = i0.ɵɵdefineDirective({ type: MatMagicAutocompleteDirective, selectors: [["mat-autocomplete", "magic", ""]], hostBindings: function MatMagicAutocompleteDirective_HostBindings(rf, ctx) {
|
|
280
|
-
if (rf & 1) {
|
|
281
|
-
i0.ɵɵlistener("opened", function MatMagicAutocompleteDirective_opened_HostBindingHandler($event) { return ctx.onOpenedChanged($event); })("closed", function MatMagicAutocompleteDirective_closed_HostBindingHandler($event) { return ctx.onClosedChanged($event); });
|
|
282
|
-
}
|
|
283
|
-
} });
|
|
284
|
-
(function () {
|
|
285
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatMagicAutocompleteDirective, [{
|
|
286
|
-
type: Directive,
|
|
287
|
-
args: [{
|
|
288
|
-
selector: 'mat-autocomplete[magic]'
|
|
289
|
-
}]
|
|
290
|
-
}], null, { onOpenedChanged: [{
|
|
291
|
-
type: HostListener,
|
|
292
|
-
args: ['opened', ['$event']]
|
|
293
|
-
}], onClosedChanged: [{
|
|
294
|
-
type: HostListener,
|
|
295
|
-
args: ['closed', ['$event']]
|
|
296
|
-
}] });
|
|
297
|
-
})();
|
|
298
|
-
|
|
299
|
-
const materialModules = [
|
|
300
|
-
MatTableModule,
|
|
301
|
-
MatPaginatorModule,
|
|
302
|
-
MatInputModule,
|
|
303
|
-
MatButtonModule,
|
|
304
|
-
MatListModule,
|
|
305
|
-
MatCheckboxModule,
|
|
306
|
-
MatTabsModule,
|
|
307
|
-
MatSelectModule,
|
|
308
|
-
MatDatepickerModule,
|
|
309
|
-
MatNativeDateModule,
|
|
310
|
-
];
|
|
311
|
-
class MagicAngularMaterialModule {
|
|
312
|
-
}
|
|
313
|
-
MagicAngularMaterialModule.ɵfac = function MagicAngularMaterialModule_Factory(t) { return new (t || MagicAngularMaterialModule)(); };
|
|
314
|
-
MagicAngularMaterialModule.ɵmod = i0.ɵɵdefineNgModule({ type: MagicAngularMaterialModule });
|
|
315
|
-
MagicAngularMaterialModule.ɵinj = i0.ɵɵdefineInjector({ imports: [CommonModule,
|
|
316
|
-
FormsModule, materialModules, MagicModule] });
|
|
317
|
-
(function () {
|
|
318
|
-
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicAngularMaterialModule, [{
|
|
319
|
-
type: NgModule,
|
|
320
|
-
args: [{
|
|
321
|
-
declarations: [
|
|
322
|
-
MatCheckboxDirective,
|
|
323
|
-
MatComboboxDirective,
|
|
324
|
-
MatListboxDirective,
|
|
325
|
-
MatMagicAutocompleteDirective,
|
|
326
|
-
BaseMatTableMagicComponent,
|
|
327
|
-
],
|
|
328
|
-
exports: [
|
|
329
|
-
MatCheckboxDirective,
|
|
330
|
-
MatComboboxDirective,
|
|
331
|
-
MatListboxDirective,
|
|
332
|
-
MatMagicAutocompleteDirective,
|
|
333
|
-
BaseMatTableMagicComponent
|
|
334
|
-
],
|
|
335
|
-
imports: [
|
|
336
|
-
CommonModule,
|
|
337
|
-
FormsModule,
|
|
338
|
-
...materialModules,
|
|
339
|
-
MagicModule
|
|
340
|
-
]
|
|
341
|
-
}]
|
|
342
|
-
}], null, null);
|
|
343
|
-
})();
|
|
344
|
-
(function () {
|
|
345
|
-
(typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(MagicAngularMaterialModule, { declarations: [MatCheckboxDirective,
|
|
346
|
-
MatComboboxDirective,
|
|
347
|
-
MatListboxDirective,
|
|
348
|
-
MatMagicAutocompleteDirective,
|
|
349
|
-
BaseMatTableMagicComponent], imports: [CommonModule,
|
|
350
|
-
FormsModule, MatTableModule,
|
|
351
|
-
MatPaginatorModule,
|
|
352
|
-
MatInputModule,
|
|
353
|
-
MatButtonModule,
|
|
354
|
-
MatListModule,
|
|
355
|
-
MatCheckboxModule,
|
|
356
|
-
MatTabsModule,
|
|
357
|
-
MatSelectModule,
|
|
358
|
-
MatDatepickerModule,
|
|
359
|
-
MatNativeDateModule, MagicModule], exports: [MatCheckboxDirective,
|
|
360
|
-
MatComboboxDirective,
|
|
361
|
-
MatListboxDirective,
|
|
362
|
-
MatMagicAutocompleteDirective,
|
|
363
|
-
BaseMatTableMagicComponent] });
|
|
364
|
-
})();
|
|
365
|
-
|
|
366
|
-
export { BaseMatTableMagicComponent, MagicAngularMaterialModule, MatCheckboxDirective, MatComboboxDirective, MatListboxDirective, MatMagicAutocompleteDirective, MgMatTableService, matMagicProviders, materialModules };
|
|
367
|
-
//# sourceMappingURL=magic-xpa-angular-material-core.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magic-xpa-angular-material-core.mjs","sources":["../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-checkbox.directive.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-combobox.directive.ts","../../../../projects/angular-material-core/src/services/mattable.magic.service.ts","../../../../projects/angular-material-core/src/services/mat.magic.providers.ts","../../../../projects/angular-material-core/src/components/base-mat-table-magic.component.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-listbox.directive.ts","../../../../projects/angular-material-core/src/directives/magic/form-controls/mat-magic-autocomplete.directive.ts","../../../../projects/angular-material-core/src/angular-material.module.ts"],"sourcesContent":["import { Directive } from \"@angular/core\";\r\nimport { CheckboxMagicDirective } from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design checkboxes not on material-design table\r\n */\r\n@Directive({\r\n selector:\r\n `\r\n mat-checkbox[magic]:not([noFormControl])\r\n `,\r\n})\r\nexport class MatCheckboxDirective extends CheckboxMagicDirective {\r\n\r\n\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport {ComboboxMagicDirective, MagicDirective} from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design comboboxes not on material-design table\r\n */\r\n@Directive({\r\n selector:\r\n `mat-select[magic]`,\r\n})\r\nexport class MatComboboxDirective extends ComboboxMagicDirective {\r\n\r\n /**\r\n * Handles the \"selectionChange\" event - pass it to the \"change\" event handler\r\n * @param $event\r\n */\r\n @HostListener('selectionChange', ['$event'])\r\n onChange($event) {\r\n super.onChange($event);\r\n }\r\n\r\n @HostListener('openedChange', ['$event'])\r\n onOpenedChanged($event) {\r\n MagicDirective.opened = $event;\r\n }\r\n\r\n /**\r\n * For mat-select do nothing\r\n */\r\n onComboboxItemsListChanged(): void {\r\n }\r\n}\r\n","\nimport { Injectable } from '@angular/core';\nimport { SelectionModel } from \"@angular/cdk/collections\";\n\nimport { TaskMagicService, ComponentListMagicService, ControlsMetadata } from \"@magic-xpa/angular\";\nimport {IGuiEvent, getGuiEventObj} from \"@magic-xpa/engine\";\nimport { TableMagicService } from \"@magic-xpa/angular\";\nimport {isNullOrUndefined} from \"@magic-xpa/mscorelib\";\nimport { MatTableDataSource } from '@angular/material/table';\nimport { MatPaginator } from '@angular/material/paginator';\n\n\n/**\n * Extends the Magic table service to supply functionality for Material Design tables\n */\n@Injectable()\nexport class MgMatTableService extends TableMagicService {\n /**\n * Table data source\n */\n dataSource: MatTableDataSource<Element>;\n\n /**\n * @ignore\n */\n get DataSource(): MatTableDataSource<Element> {\n return this.dataSource;\n }\n\n /**\n * @ignore\n */\n set DataSource(dataSource: MatTableDataSource<Element>) {\n this.dataSource = dataSource;\n }\n\n /**\n * Provides selection options for the table\n */\n selection: SelectionModel<Element>;\n\n /**\n * @ignore\n */\n get Selection(): SelectionModel<Element> {\n return this.selection;\n }\n\n /**\n * @ignore\n */\n set Selection(selection: SelectionModel<Element>) {\n this.selection = selection;\n }\n\n /**\n * Paginator to enable changing pages in the table\n */\n paginator: MatPaginator;\n\n /**\n * @ignore\n */\n get Paginator(): MatPaginator {\n return this.paginator;\n }\n\n /**\n * @ignore\n */\n set Paginator(paginator: MatPaginator) {\n this.paginator = paginator;\n }\n\n /**\n * @ignore\n */\n constructor(protected componentList: ComponentListMagicService, protected task: TaskMagicService ) {\n super(componentList, task);\n }\n\n /**\n * Connects the service to the elements of the table component\n * @param dataSource Table data source\n * @param paginator Table paginator\n * @param selection table SelectionModel\n */\n connect(dataSource: MatTableDataSource<Element> , paginator: MatPaginator, selection: SelectionModel<Element>) {\n this.dataSource = dataSource;\n this.paginator = paginator;\n this.selection = selection;\n }\n\n /**\n * @ignore\n */\n refreshDataSource() {\n if (!isNullOrUndefined(this.paginator))\n this.dataSource.paginator = this.paginator;\n\n this.dataSource.data = (this.task.mgAccessorService.isDataviewEmpty() ? [] : this.task.Records.list);\n }\n\n /**\n * returns the page size of the table\n * @returns\n */\n getPageSize(): number {\n if (isNullOrUndefined(this.paginator))\n return 10;\n return this.paginator.pageSize;\n }\n\n /**\n * Selects a table row\n * @param guiRowid Id of row to be selected\n */\n selectRow(guiRowid: string): void {\n super.selectRow(guiRowid);\n this.selection.select(this.task.Records.list[guiRowid]);\n this.refreshDataSource();\n }\n\n /**\n * Displays the requested table page\n * @param pageId Id of page to be selected\n */\n selectPage(pageId: number): void {\n if (!isNullOrUndefined(this.paginator))\n this.paginator.pageIndex = pageId;\n\n this.refreshDataSource();\n }\n\n /**\n * Returns the currently seleted row\n * @returns\n */\n selectedRow(): any {\n return this.selection.selected[0];\n }\n\n /**\n * Handle the paginator's \"page\" event\n * @param e The event received from the UI\n */\n mgOnPaginateChange(e, changeSelectedRow?: boolean)\n {\n if (this.task.oldPageSize != e.pageSize) {\n this.handleResize(e.pageIndex, e.previousPageIndex, e.pageSize);\n this.task.oldPageSize = e.pageSize;\n }\n else {\n if (changeSelectedRow)\n {\n let evt = (e.pageIndex > e.previousPageIndex) ? \"next-page\" : \"previous-page\";\n let guiEvent: IGuiEvent = getGuiEventObj(\"navigateInTable\", \"magicRow\",0);\n guiEvent.Value = evt;\n this.task.insertEvent(guiEvent);\n }\n else\n this.getRowsIfNeeded(e.pageIndex, e.previousPageIndex, e.pageSize);\n }\n }\n\n /**\n * Handle resize and set table top index.\n * @param pageIndex : New page index.\n * @param prevPageIndex : Prev page index\n * @param pageSize : PageSize\n */\n handleResize(pageIndex: number, prevPageIndex: number, pageSize: number): void {\n let requiredGuiRowId = pageIndex * pageSize;\n this.task.resize(pageSize, requiredGuiRowId);\n }\n\n /**\n * Execute getRows to fetch required chunk of records.\n * @param pageIndex : New page index.\n * @param prevPageIndex : Prev page index\n * @param pageSize : PageSize\n */\n getRowsIfNeeded(pageIndex: number, prevPageIndex: number, pageSize: number): void {\n let guiEvent: IGuiEvent = getGuiEventObj(\"getRows\", \"\",0);\n guiEvent.Line = pageIndex * pageSize;\n this.task.insertEvent(guiEvent);\n this.setTableTopIndex(this.task.getDvRowId(pageSize * pageIndex));\n }\n\n /**\n * Handles the \"matSortChange\" event\n * @param e The event received from the UI\n */\n sortData(e) {\n let direction: number = 0;\n if (e.direction === 'asc')\n direction = 0;\n else if (e.direction === 'desc')\n direction = 1;\n\n let guiEvent: IGuiEvent = getGuiEventObj(\"columnSort\", e.active, direction);\n this.task.insertEvent(guiEvent);\n }\n\n /**\n * Change the number of lines in a table\n * @param size New number of lines in table\n */\n updateTableSize(size: number) {\n if (size === 0) // never remove row 0 for now\n {\n size = 1;\n this.task.Records.clearFirstTableRecord(this.task.template);\n }\n\n else if (isNullOrUndefined(this.paginator))\n size = this.getPageSize();\n\n this.task.formGroups.length = size;\n this.task.Records.updateSize(size);\n this.task.setIncludesFirst(false);\n }\n\n /**\n * Handle the selection of row and if needed move to respective page.\n * @param guiRowId New number of lines in table\n */\n protected selectPageForGuiRowId(guiRowId: number): void {\n let pageToBeSelected: number = 0;\n let prevSelectedRow: ControlsMetadata = <ControlsMetadata>this.selectedRow();\n\n pageToBeSelected = Math.floor(guiRowId / this.getPageSize());\n\n // Explicitly handle selection of page when it's not raised by using pagination\n if ((isNullOrUndefined(prevSelectedRow) || (!isNullOrUndefined(this.paginator) && pageToBeSelected != this.paginator.pageIndex)))\n this.selectPage(pageToBeSelected);\n }\n\n /**\n * @ignore\n */\n setTableTopIndex(value: number) {\n this.task.Records.setGuiTopIndex(value);\n\n if (value >= 0)\n this.selectPageForGuiRowId(this.task.getGuiRowId(value, true));\n }\n\n /**\n * @ignore\n */\n getTableTopIndex():number\n {\n return this.task.Records.getGuiTopIndex();\n }\n}\n\n","\r\nimport { basicMagicProviders, TableMagicService} from \"@magic-xpa/angular\";\r\n\r\nimport { MgMatTableService } from \"./mattable.magic.service\";\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const matMagicProviders = [\r\n ...basicMagicProviders, // - created error Exported variable 'matMagicProviders' has or is using name 'MagicServices' from external module \"D:/magicxpaproject/_Trunk/Sources/Webclient/dist/angular/src/services/magic.services\" but cannot be named.\r\n { provide: TableMagicService, useClass: MgMatTableService }\r\n];\r\n\r\n","import { MagicServices, TaskBaseMagicComponent } from '@magic-xpa/angular';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\r\nimport { MgMatTableService } from '../services/mattable.magic.service';\r\nimport { matMagicProviders } from '../services/mat.magic.providers';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { isNullOrUndefined } from '@magic-xpa/mscorelib';\r\n\r\n/**\r\n * This component is the base component for forms which has a material-design table (grid)\r\n */\r\n@Component({\r\n providers: matMagicProviders,\r\n template: ''\r\n\r\n})\r\n export class BaseMatTableMagicComponent extends TaskBaseMagicComponent {\r\n\r\n /**\r\n * Paginator to enable changing pages in the table\r\n */\r\n @ViewChild(MatPaginator, {static:true}) paginator: MatPaginator;\r\n\r\n /**\r\n * Provides the table sort capabilities\r\n */\r\n @ViewChild(MatSort, {static:true}) sort: MatSort;\r\n\r\n /**\r\n * List of table columns to be displayed\r\n */\r\n displayedColumns;\r\n\r\n /**\r\n * Table data source\r\n */\r\n dataSource;\r\n\r\n /**\r\n * Provides selection options for the table\r\n */\r\n selection;\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n protected ref: ChangeDetectorRef,\r\n public magicService: MagicServices,\r\n ) {\r\n\r\n super(ref, magicService);\r\n\r\n this.displayedColumns = [];\r\n this.dataSource = new MatTableDataSource < Element > (this.task.Records.list);\r\n this.selection = new SelectionModel < Element > (false, []);\r\n }\r\n\r\n /**\r\n * Initializer\r\n */\r\n ngOnInit() {\r\n super.ngOnInit();\r\n (this.magicService.tableService as MgMatTableService).connect(this.dataSource, this.paginator, this.selection);\r\n }\r\n\r\n /**\r\n * AfterContentChecked implementation\r\n */\r\n ngAfterContentChecked() {\r\n if (!isNullOrUndefined(this.paginator) && !isNullOrUndefined(this.paginator.pageSize) &&\r\n this.paginator.pageSize != this.task.oldPageSize) {\r\n (this.magicService.tableService as MgMatTableService).handleResize(this.paginator.pageIndex, 0, this.paginator.pageSize);\r\n this.task.oldPageSize = this.paginator.pageSize;\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener } from \"@angular/core\";\r\nimport { MagicDirective } from \"@magic-xpa/angular\";\r\n\r\n\r\n/**\r\n * Directive for material-design listboxes not on material-design table\r\n */\r\n@Directive({\r\n selector:\r\n `mat-selection-list[magic]`,\r\n})\r\nexport class MatListboxDirective{\r\n\r\n constructor(protected magicDirective: MagicDirective) {\r\n }\r\n\r\n /**\r\n * Handles the \"selectionChange\" event - pass it to the \"change\" event handler\r\n * @param $event\r\n */\r\n @HostListener('selectionChange', ['$event'])\r\n onChange($event) {\r\n this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);\r\n }\r\n}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { MagicDirective } from '@magic-xpa/angular';\r\n\r\n/**\r\n * Directive for material-design autocomplete not on material-design table\r\n */\r\n@Directive({\r\n selector:\r\n 'mat-autocomplete[magic]'\r\n})\r\nexport class MatMagicAutocompleteDirective {\r\n\r\n @HostListener('opened', ['$event'])\r\n onOpenedChanged($event) {\r\n MagicDirective.noOfAutoCompleteBoxesOpened++;\r\n }\r\n\r\n @HostListener('closed', ['$event'])\r\n onClosedChanged($event) {\r\n MagicDirective.noOfAutoCompleteBoxesOpened--;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatCheckboxDirective } from './directives/magic/form-controls/mat-magic-checkbox.directive';\r\nimport { MatComboboxDirective } from './directives/magic/form-controls/mat-magic-combobox.directive';\r\nimport { BaseMatTableMagicComponent } from './components/base-mat-table-magic.component';\r\nimport { MatListboxDirective } from './directives/magic/form-controls/mat-magic-listbox.directive';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MagicModule } from '@magic-xpa/angular';\r\nimport { MatMagicAutocompleteDirective } from './directives/magic/form-controls/mat-magic-autocomplete.directive';\r\n\r\n\r\n/**\r\n * @ignore\r\n */\r\nexport const materialModules = [\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatListModule,\r\n MatCheckboxModule,\r\n MatTabsModule,\r\n MatSelectModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n];\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n declarations: [\r\n MatCheckboxDirective,\r\n MatComboboxDirective,\r\n MatListboxDirective,\r\n MatMagicAutocompleteDirective,\r\n BaseMatTableMagicComponent,\r\n ],\r\n exports: [\r\n MatCheckboxDirective,\r\n MatComboboxDirective,\r\n MatListboxDirective,\r\n MatMagicAutocompleteDirective,\r\n BaseMatTableMagicComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ...materialModules,\r\n MagicModule\r\n ]\r\n})\r\nexport class MagicAngularMaterialModule {\r\n\r\n}\r\n"],"names":[],"mappings":"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"}
|