@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.
Files changed (31) hide show
  1. package/esm2022/index.mjs +9 -0
  2. package/{esm2020 → esm2022}/magic-xpa-angular-material-core.mjs +1 -1
  3. package/{esm2020 → esm2022}/src/angular-material.module.mjs +83 -83
  4. package/esm2022/src/components/base-mat-table-magic.component.mjs +62 -0
  5. package/esm2022/src/directives/magic/form-controls/mat-magic-autocomplete.directive.mjs +28 -0
  6. package/{esm2020 → esm2022}/src/directives/magic/form-controls/mat-magic-checkbox.directive.mjs +14 -14
  7. package/esm2022/src/directives/magic/form-controls/mat-magic-combobox.directive.mjs +30 -0
  8. package/esm2022/src/directives/magic/form-controls/mat-magic-listbox.directive.mjs +27 -0
  9. package/{esm2020 → esm2022}/src/services/mat.magic.providers.mjs +6 -6
  10. package/esm2022/src/services/mattable.magic.service.mjs +138 -0
  11. package/{fesm2020 → fesm2022}/magic-xpa-angular-material-core.mjs +322 -302
  12. package/fesm2022/magic-xpa-angular-material-core.mjs.map +1 -0
  13. package/index.d.ts +8 -8
  14. package/package.json +10 -16
  15. package/src/angular-material.module.d.ts +26 -26
  16. package/src/components/base-mat-table-magic.component.d.ts +19 -19
  17. package/src/directives/magic/form-controls/mat-magic-autocomplete.directive.d.ts +7 -7
  18. package/src/directives/magic/form-controls/mat-magic-checkbox.directive.d.ts +6 -6
  19. package/src/directives/magic/form-controls/mat-magic-combobox.directive.d.ts +9 -9
  20. package/src/directives/magic/form-controls/mat-magic-listbox.directive.d.ts +9 -9
  21. package/src/services/mat.magic.providers.d.ts +38 -38
  22. package/src/services/mattable.magic.service.d.ts +36 -36
  23. package/esm2020/index.mjs +0 -9
  24. package/esm2020/src/components/base-mat-table-magic.component.mjs +0 -54
  25. package/esm2020/src/directives/magic/form-controls/mat-magic-autocomplete.directive.mjs +0 -28
  26. package/esm2020/src/directives/magic/form-controls/mat-magic-combobox.directive.mjs +0 -30
  27. package/esm2020/src/directives/magic/form-controls/mat-magic-listbox.directive.mjs +0 -26
  28. package/esm2020/src/services/mattable.magic.service.mjs +0 -127
  29. package/fesm2015/magic-xpa-angular-material-core.mjs +0 -367
  30. package/fesm2015/magic-xpa-angular-material-core.mjs.map +0 -1
  31. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0dGFibGUubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtY29yZS9zcmMvc2VydmljZXMvbWF0dGFibGUubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBQVksY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQVN2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO0lBU3RELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBS0QsSUFBSSxVQUFVLENBQUMsVUFBdUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQVVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFBSSxTQUFTLENBQUMsU0FBa0M7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQVVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFBSSxTQUFTLENBQUMsU0FBdUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUtELFlBQXNCLGFBQXdDLEVBQVksSUFBc0I7UUFDOUYsS0FBSyxDQUFDLGFBQWEsRUFBRSxJ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QUFDO0lBQzVDLENBQUM7O2tGQTlPVSxpQkFBaUI7eURBQWpCLGlCQUFpQixXQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcblxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSwgQ29tcG9uZW50TGlzdE1hZ2ljU2VydmljZSwgQ29udHJvbHNNZXRhZGF0YSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUd1aUV2ZW50LCBnZXRHdWlFdmVudE9ian0gZnJvbSBcIkBtYWdpYy14cGEvZW5naW5lXCI7XG5pbXBvcnQgeyBUYWJsZU1hZ2ljU2VydmljZSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcblxuXG4vKipcbiAqIEV4dGVuZHMgdGhlIE1hZ2ljIHRhYmxlIHNlcnZpY2UgdG8gc3VwcGx5IGZ1bmN0aW9uYWxpdHkgZm9yIE1hdGVyaWFsIERlc2lnbiB0YWJsZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1nTWF0VGFibGVTZXJ2aWNlIGV4dGVuZHMgVGFibGVNYWdpY1NlcnZpY2Uge1xuICAvKipcbiAgICogVGFibGUgZGF0YSBzb3VyY2VcbiAgICovXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxFbGVtZW50PjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IERhdGFTb3VyY2UoKTogTWF0VGFibGVEYXRhU291cmNlPEVsZW1lbnQ+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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"}