@magic-xpa/angular-material-core 4.1200.0-dev4120.7 → 4.1200.0-dev4120.71

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.
@@ -1,62 +0,0 @@
1
- import { MagicServices, TaskBaseMagicComponent } from '@magic-xpa/angular';
2
- import { MatSort } from '@angular/material/sort';
3
- import { MatTableDataSource } from '@angular/material/table';
4
- import { SelectionModel } from '@angular/cdk/collections';
5
- import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
6
- import { matMagicProviders } from '../services/mat.magic.providers';
7
- import { MatPaginator } from '@angular/material/paginator';
8
- import { isNullOrUndefined } from '@magic-xpa/mscorelib';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@magic-xpa/angular";
11
- export class BaseMatTableMagicComponent extends TaskBaseMagicComponent {
12
- ref;
13
- magicService;
14
- paginator;
15
- sort;
16
- displayedColumns;
17
- dataSource;
18
- selection;
19
- constructor(ref, magicService) {
20
- super(ref, magicService);
21
- this.ref = ref;
22
- this.magicService = magicService;
23
- this.displayedColumns = [];
24
- this.dataSource = new MatTableDataSource(this.task.Records.list);
25
- this.selection = new SelectionModel(false, []);
26
- }
27
- ngOnInit() {
28
- super.ngOnInit();
29
- this.magicService.tableService.connect(this.dataSource, this.paginator, this.selection);
30
- }
31
- ngAfterContentChecked() {
32
- if (!isNullOrUndefined(this.paginator) && !isNullOrUndefined(this.paginator.pageSize) &&
33
- this.paginator.pageSize != this.task.oldPageSize) {
34
- this.magicService.tableService.handleResize(this.paginator.pageIndex, 0, this.paginator.pageSize);
35
- this.task.oldPageSize = this.paginator.pageSize;
36
- }
37
- }
38
- static ɵfac = function BaseMatTableMagicComponent_Factory(t) { return new (t || BaseMatTableMagicComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.MagicServices)); };
39
- static ɵcmp = i0.ɵɵdefineComponent({ type: BaseMatTableMagicComponent, selectors: [["ng-component"]], viewQuery: function BaseMatTableMagicComponent_Query(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵviewQuery(MatPaginator, 7);
41
- i0.ɵɵviewQuery(MatSort, 7);
42
- } if (rf & 2) {
43
- let _t;
44
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.paginator = _t.first);
45
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
46
- } }, features: [i0.ɵɵProvidersFeature(matMagicProviders), i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function BaseMatTableMagicComponent_Template(rf, ctx) { }, encapsulation: 2 });
47
- }
48
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseMatTableMagicComponent, [{
49
- type: Component,
50
- args: [{
51
- providers: matMagicProviders,
52
- template: ''
53
- }]
54
- }], () => [{ type: i0.ChangeDetectorRef }, { type: i1.MagicServices }], { paginator: [{
55
- type: ViewChild,
56
- args: [MatPaginator, { static: true }]
57
- }], sort: [{
58
- type: ViewChild,
59
- args: [MatSort, { static: true }]
60
- }] }); })();
61
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BaseMatTableMagicComponent, { className: "BaseMatTableMagicComponent", filePath: "src\\components\\base-mat-table-magic.component.ts", lineNumber: 19 }); })();
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1tYXQtdGFibGUtbWFnaWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1tYXRlcmlhbC1jb3JlL3NyYy9jb21wb25lbnRzL2Jhc2UtbWF0LXRhYmxlLW1hZ2ljLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVV4RCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsc0JBQXNCO0lBZ0N6RDtJQUNIO0lBNUIrQixTQUFTLENBQWU7SUFLN0IsSUFBSSxDQUFVO0lBS2pELGdCQUFnQixDQUFDO0lBS2pCLFVBQVUsQ0FBQztJQUtYLFNBQVMsQ0FBQztJQU1WLFlBQ1ksR0FBc0IsRUFDekIsWUFBMkI7UUFHbEMsS0FBSyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUpmLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBS2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBUyxJQUFJLGtCQUFrQixDQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxTQUFTLEdBQVUsSUFBSSxjQUFjLENBQWMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFLRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBa0MsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBS0QscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUNuRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQWtDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztvRkE1RFcsMEJBQTBCOytDQUExQiwwQkFBMEI7MkJBSzNCLFlBQVk7MkJBS1osT0FBTzs7Ozs7OENBZFAsaUJBQWlCOztpRkFJaEIsMEJBQTBCO2NBTHZDLFNBQVM7ZUFBQztnQkFDVCxTQUFTLEVBQUUsaUJBQWlCO2dCQUM1QixRQUFRLEVBQUUsRUFBRTthQUViOzhFQU15QyxTQUFTO2tCQUFoRCxTQUFTO21CQUFDLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUM7WUFLSCxJQUFJO2tCQUF0QyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUM7O2tGQVZyQiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYWdpY1NlcnZpY2VzLCBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50IH0gZnJvbSAnQG1hZ2ljLXhwYS9hbmd1bGFyJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1nTWF0VGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWF0dGFibGUubWFnaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IG1hdE1hZ2ljUHJvdmlkZXJzIH0gZnJvbSAnLi4vc2VydmljZXMvbWF0Lm1hZ2ljLnByb3ZpZGVycyc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY29tcG9uZW50IGlzIHRoZSBiYXNlIGNvbXBvbmVudCBmb3IgZm9ybXMgd2hpY2ggaGFzIGEgbWF0ZXJpYWwtZGVzaWduIHRhYmxlIChncmlkKVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgcHJvdmlkZXJzOiBtYXRNYWdpY1Byb3ZpZGVycyxcclxuICB0ZW1wbGF0ZTogJydcclxuXHJcbn0pXHJcbiBleHBvcnQgY2xhc3MgQmFzZU1hdFRhYmxlTWFnaWNDb21wb25lbnQgZXh0ZW5kcyBUYXNrQmFzZU1hZ2ljQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5hdG9yIHRvIGVuYWJsZSBjaGFuZ2luZyBwYWdlcyBpbiB0aGUgdGFibGVcclxuICAgKi9cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwge3N0YXRpYzp0cnVlfSkgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGVzIHRoZSB0YWJsZSBzb3J0IGNhcGFiaWxpdGllc1xyXG4gICAqL1xyXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCwge3N0YXRpYzp0cnVlfSkgc29ydDogTWF0U29ydDtcclxuXHJcbiAgLyoqXHJcbiAgICogTGlzdCBvZiB0YWJsZSBjb2x1bW5zIHRvIGJlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIGRpc3BsYXllZENvbHVtbnM7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRhYmxlIGRhdGEgc291cmNlXHJcbiAgICovXHJcbiAgZGF0YVNvdXJjZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvdmlkZXMgc2VsZWN0aW9uIG9wdGlvbnMgZm9yIHRoZSB0YWJsZVxyXG4gICAqL1xyXG4gIHNlbGVjdGlvbjtcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEBpZ25vcmVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIG1hZ2ljU2VydmljZTogTWFnaWNTZXJ2aWNlcyxcclxuICAgICkge1xyXG5cclxuICAgIHN1cGVyKHJlZiwgbWFnaWNTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSAgICAgICA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UgPCBFbGVtZW50ID4gKHRoaXMudGFzay5SZWNvcmRzLmxpc3QpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb24gICAgICAgID0gbmV3IFNlbGVjdGlvbk1vZGVsIDwgRWxlbWVudCA+IChmYWxzZSwgW10pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXJcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAodGhpcy5tYWdpY1NlcnZpY2UudGFibGVTZXJ2aWNlIGFzIE1nTWF0VGFibGVTZXJ2aWNlKS5jb25uZWN0KHRoaXMuZGF0YVNvdXJjZSwgdGhpcy5wYWdpbmF0b3IsIHRoaXMuc2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFmdGVyQ29udGVudENoZWNrZWQgaW1wbGVtZW50YXRpb25cclxuICAgKi9cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucGFnaW5hdG9yKSAmJiAhaXNOdWxsT3JVbmRlZmluZWQodGhpcy5wYWdpbmF0b3IucGFnZVNpemUpICYmXHJcbiAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplICE9IHRoaXMudGFzay5vbGRQYWdlU2l6ZSkge1xyXG4gICAgICAodGhpcy5tYWdpY1NlcnZpY2UudGFibGVTZXJ2aWNlIGFzIE1nTWF0VGFibGVTZXJ2aWNlKS5oYW5kbGVSZXNpemUodGhpcy5wYWdpbmF0b3IucGFnZUluZGV4LCAwLCB0aGlzLnBhZ2luYXRvci5wYWdlU2l6ZSk7XHJcbiAgICAgIHRoaXMudGFzay5vbGRQYWdlU2l6ZSA9IHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,28 +0,0 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import { MagicDirective } from '@magic-xpa/angular';
3
- import * as i0 from "@angular/core";
4
- export class MatMagicAutocompleteDirective {
5
- onOpenedChanged($event) {
6
- MagicDirective.noOfAutoCompleteBoxesOpened++;
7
- }
8
- onClosedChanged($event) {
9
- MagicDirective.noOfAutoCompleteBoxesOpened--;
10
- }
11
- static ɵfac = function MatMagicAutocompleteDirective_Factory(t) { return new (t || MatMagicAutocompleteDirective)(); };
12
- static ɵdir = i0.ɵɵdefineDirective({ type: MatMagicAutocompleteDirective, selectors: [["mat-autocomplete", "magic", ""]], hostBindings: function MatMagicAutocompleteDirective_HostBindings(rf, ctx) { if (rf & 1) {
13
- i0.ɵɵlistener("opened", function MatMagicAutocompleteDirective_opened_HostBindingHandler($event) { return ctx.onOpenedChanged($event); })("closed", function MatMagicAutocompleteDirective_closed_HostBindingHandler($event) { return ctx.onClosedChanged($event); });
14
- } } });
15
- }
16
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatMagicAutocompleteDirective, [{
17
- type: Directive,
18
- args: [{
19
- selector: 'mat-autocomplete[magic]'
20
- }]
21
- }], null, { onOpenedChanged: [{
22
- type: HostListener,
23
- args: ['opened', ['$event']]
24
- }], onClosedChanged: [{
25
- type: HostListener,
26
- args: ['closed', ['$event']]
27
- }] }); })();
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW1hZ2ljLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLW1hdGVyaWFsLWNvcmUvc3JjL2RpcmVjdGl2ZXMvbWFnaWMvZm9ybS1jb250cm9scy9tYXQtbWFnaWMtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBU3BELE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsZUFBZSxDQUFDLE1BQU07UUFDbkIsY0FBYyxDQUFDLDJCQUEyQixFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUdELGVBQWUsQ0FBQyxNQUFNO1FBQ25CLGNBQWMsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ2hELENBQUM7dUZBVlUsNkJBQTZCOytDQUE3Qiw2QkFBNkI7WUFBN0IsMEdBQUEsMkJBQXVCLElBQU0sNkZBQTdCLDJCQUF1QixJQUFNOzs7aUZBQTdCLDZCQUE2QjtjQUp6QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUNOLHlCQUF5QjthQUM1QjtnQkFJQyxlQUFlO2tCQURkLFlBQVk7bUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBTWxDLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYWdpY0RpcmVjdGl2ZSB9IGZyb20gJ0BtYWdpYy14cGEvYW5ndWxhcic7XHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBtYXRlcmlhbC1kZXNpZ24gYXV0b2NvbXBsZXRlIG5vdCBvbiBtYXRlcmlhbC1kZXNpZ24gdGFibGVcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOlxyXG4gICAgJ21hdC1hdXRvY29tcGxldGVbbWFnaWNdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0TWFnaWNBdXRvY29tcGxldGVEaXJlY3RpdmUge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdvcGVuZWQnLCBbJyRldmVudCddKVxyXG4gIG9uT3BlbmVkQ2hhbmdlZCgkZXZlbnQpIHtcclxuICAgICBNYWdpY0RpcmVjdGl2ZS5ub09mQXV0b0NvbXBsZXRlQm94ZXNPcGVuZWQrKztcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2Nsb3NlZCcsIFsnJGV2ZW50J10pXHJcbiAgb25DbG9zZWRDaGFuZ2VkKCRldmVudCkge1xyXG4gICAgIE1hZ2ljRGlyZWN0aXZlLm5vT2ZBdXRvQ29tcGxldGVCb3hlc09wZW5lZC0tO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,101 +0,0 @@
1
- import { Directive, ElementRef, HostListener, Input } from "@angular/core";
2
- import { MagicDirective, TaskMagicService } from "@magic-xpa/angular";
3
- import { filter } from "rxjs/operators";
4
- import { CommandType, HtmlProperties } from "@magic-xpa/gui";
5
- import { MatCheckbox } from "@angular/material/checkbox";
6
- import { getGuiEventObj } from "@magic-xpa/engine";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@magic-xpa/angular";
9
- import * as i2 from "@angular/material/checkbox";
10
- export class MatCheckboxDirective {
11
- magicDirective;
12
- matCheckbox;
13
- task;
14
- element;
15
- threeState = false;
16
- subscribeRefreshDom = null;
17
- indeterminate = false;
18
- constructor(magicDirective, matCheckbox, task, element) {
19
- this.magicDirective = magicDirective;
20
- this.matCheckbox = matCheckbox;
21
- this.task = task;
22
- this.element = element;
23
- }
24
- onChange($event) {
25
- if (this.threeState) {
26
- this.handleThreeState();
27
- }
28
- else {
29
- this.magicDirective.task.onCheckChanged($event, this.magicDirective.id, +this.magicDirective.rowId);
30
- }
31
- }
32
- ngOnInit() {
33
- if (this.threeState) {
34
- let guiEvent = getGuiEventObj("setAsThreeState", this.magicDirective.id, +this.magicDirective.rowId);
35
- this.task.insertEvent(guiEvent);
36
- this.matCheckbox.indeterminate = this.indeterminate = this.task.getProperty(this.magicDirective.id, HtmlProperties.CheckBoxIndeterminate, this.magicDirective.rowId);
37
- this.regUpdatesUI();
38
- }
39
- }
40
- regUpdatesUI() {
41
- this.subscribeRefreshDom = this.task
42
- .refreshDom.pipe(filter(c => this.magicDirective.IsSameElement(c)))
43
- .subscribe(a => {
44
- let command = a;
45
- try {
46
- this.handleCommand(command);
47
- }
48
- catch (ex) {
49
- console.dir(ex);
50
- }
51
- });
52
- }
53
- handleCommand(command) {
54
- if (command.CommandType == CommandType.SET_PROPERTY &&
55
- command.Operation == HtmlProperties.CheckBoxIndeterminate) {
56
- this.indeterminate = this.matCheckbox.indeterminate = command.obj1;
57
- }
58
- }
59
- handleThreeState() {
60
- let value = '';
61
- let prevCheckedValue = this.task.getValue(this.magicDirective.id, this.magicDirective.rowId);
62
- if (this.indeterminate) {
63
- this.indeterminate = this.matCheckbox.indeterminate = false;
64
- this.matCheckbox.checked = false;
65
- value = 'unchecked';
66
- }
67
- else if (prevCheckedValue) {
68
- this.indeterminate = this.matCheckbox.indeterminate = true;
69
- this.matCheckbox.checked = false;
70
- value = 'indeterminate';
71
- }
72
- else if (!prevCheckedValue) {
73
- this.indeterminate = this.matCheckbox.indeterminate = false;
74
- this.matCheckbox.checked = true;
75
- value = 'checked';
76
- }
77
- this.magicDirective.task.onCheckChanged(value, this.magicDirective.id, +this.magicDirective.rowId);
78
- }
79
- ngOnDestroy() {
80
- if (this.subscribeRefreshDom !== null)
81
- this.subscribeRefreshDom.unsubscribe();
82
- }
83
- static ɵfac = function MatCheckboxDirective_Factory(t) { return new (t || MatCheckboxDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective), i0.ɵɵdirectiveInject(i2.MatCheckbox), i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
84
- static ɵdir = i0.ɵɵdefineDirective({ type: MatCheckboxDirective, selectors: [["mat-checkbox", "magic", "", 3, "noFormControl", ""]], hostBindings: function MatCheckboxDirective_HostBindings(rf, ctx) { if (rf & 1) {
85
- i0.ɵɵlistener("change", function MatCheckboxDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
86
- } }, inputs: { threeState: "threeState" } });
87
- }
88
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatCheckboxDirective, [{
89
- type: Directive,
90
- args: [{
91
- selector: `
92
- mat-checkbox[magic]:not([noFormControl])
93
- `,
94
- }]
95
- }], () => [{ type: i1.MagicDirective }, { type: i2.MatCheckbox }, { type: i1.TaskMagicService }, { type: i0.ElementRef }], { threeState: [{
96
- type: Input
97
- }], onChange: [{
98
- type: HostListener,
99
- args: ['change', ['$event']]
100
- }] }); })();
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW1hZ2ljLWNoZWNrYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtY29yZS9zcmMvZGlyZWN0aXZlcy9tYWdpYy9mb3JtLWNvbnRyb2xzL21hdC1tYWdpYy1jaGVja2JveC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDcEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxXQUFXLEVBQWMsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxjQUFjLEVBQVksTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVk1RCxNQUFNLE9BQU8sb0JBQW9CO0lBT0w7SUFDRjtJQUNFO0lBQ0E7SUFUakIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM3QixtQkFBbUIsR0FBUSxJQUFJLENBQUM7SUFDaEMsYUFBYSxHQUFhLEtBQUssQ0FBQztJQUl4QyxZQUEwQixjQUE4QixFQUNoQyxXQUF3QixFQUN0QixJQUFzQixFQUN0QixPQUFtQjtRQUhuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDaEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUM3QyxDQUFDO0lBS0QsUUFBUSxDQUFDLE1BQWE7UUFDcEIsSUFBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xCLElBQUksQ0FB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QU8sR0FBRyxJQUFJLENBQUM7WUFDaEMsS0FBSyxHQUFHLFNBQVMsQ0FBQztTQUNuQjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JHLENBQUM7SUFJRCxXQUFXO1FBQ1QsSUFBRyxJQUFJLENBQUMsbUJBQW1CLEtBQUssSUFBSTtZQUNsQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs4RUE5RVUsb0JBQW9COytDQUFwQixvQkFBb0I7WUFBcEIsaUdBQUEsb0JBQWdCLElBQUk7OztpRkFBcEIsb0JBQW9CO2NBTmhDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQ047O0tBRUM7YUFDSjtpSUFFVSxVQUFVO2tCQUFsQixLQUFLO1lBZU4sUUFBUTtrQkFEUCxZQUFZO21CQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge01hZ2ljRGlyZWN0aXZlLCBUYXNrTWFnaWNTZXJ2aWNlfSBmcm9tIFwiQG1hZ2ljLXhwYS9hbmd1bGFyXCI7XHJcbmltcG9ydCB7ZmlsdGVyfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtDb21tYW5kVHlwZSwgR3VpQ29tbWFuZCwgSHRtbFByb3BlcnRpZXN9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge01hdENoZWNrYm94fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHtnZXRHdWlFdmVudE9iaiwgSUd1aUV2ZW50fSBmcm9tIFwiQG1hZ2ljLXhwYS9lbmdpbmVcIjtcclxuXHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBtYXRlcmlhbC1kZXNpZ24gY2hlY2tib3hlcyBub3Qgb24gbWF0ZXJpYWwtZGVzaWduIHRhYmxlXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjpcclxuICAgIGBcclxuICAgIG1hdC1jaGVja2JveFttYWdpY106bm90KFtub0Zvcm1Db250cm9sXSlcclxuICAgIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRDaGVja2JveERpcmVjdGl2ZSB7XHJcbiAgQElucHV0KCkgdGhyZWVTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgc3Vic2NyaWJlUmVmcmVzaERvbTogYW55ID0gbnVsbDtcclxuICBwcml2YXRlIGluZGV0ZXJtaW5hdGUgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKCAgICBwcm90ZWN0ZWQgbWFnaWNEaXJlY3RpdmU6IE1hZ2ljRGlyZWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICBwcml2YXRlIG1hdENoZWNrYm94OiBNYXRDaGVja2JveCxcclxuICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIHRhc2s6IFRhc2tNYWdpY1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIENoZWNrYm94ICdjaGFuZ2UnIGV2ZW50IC0gcGFzcyBpdCB0byB0aGUgTWFnaWMgZW5naW5lXHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignY2hhbmdlJywgWyckZXZlbnQnXSlcclxuICBvbkNoYW5nZSgkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZih0aGlzLnRocmVlU3RhdGUpIHtcclxuICAgICAgdGhpcy5oYW5kbGVUaHJlZVN0YXRlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLm9uQ2hlY2tDaGFuZ2VkKCRldmVudCwgdGhpcy5tYWdpY0RpcmVjdGl2ZS5pZCwgK3RoaXMubWFnaWNEaXJlY3RpdmUucm93SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMudGhyZWVTdGF0ZSl7XHJcbiAgICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZXRBc1RocmVlU3RhdGVcIix0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkLCArdGhpcy5tYWdpY0RpcmVjdGl2ZS5yb3dJZCk7XHJcbiAgICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChndWlFdmVudCk7XHJcbiAgICAgIHRoaXMubWF0Q2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRoaXMuaW5kZXRlcm1pbmF0ZSA9IHRoaXMudGFzay5nZXRQcm9wZXJ0eSh0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkLCBIdG1sUHJvcGVydGllcy5DaGVja0JveEluZGV0ZXJtaW5hdGUsIHRoaXMubWFnaWNEaXJlY3RpdmUucm93SWQpO1xyXG4gICAgICB0aGlzLnJlZ1VwZGF0ZXNVSSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIHJlZ1VwZGF0ZXNVSSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbSA9IHRoaXMudGFza1xyXG4gICAgICAucmVmcmVzaERvbS5waXBlKGZpbHRlcihjID0+IHRoaXMubWFnaWNEaXJlY3RpdmUuSXNTYW1lRWxlbWVudChjKSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoYSA9PiB7XHJcbiAgICAgICAgICBsZXQgY29tbWFuZDogR3VpQ29tbWFuZCA9IGE7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbW1hbmQoY29tbWFuZCk7XHJcbiAgICAgICAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmRpcihleCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuICBoYW5kbGVDb21tYW5kKGNvbW1hbmQ6IEd1aUNvbW1hbmQpe1xyXG4gICAgaWYgKGNvbW1hbmQuQ29tbWFuZFR5cGUgPT0gQ29tbWFuZFR5cGUuU0VUX1BST1BFUlRZICYmXHJcbiAgICAgIGNvbW1hbmQuT3BlcmF0aW9uID09IEh0bWxQcm9wZXJ0aWVzLkNoZWNrQm94SW5kZXRlcm1pbmF0ZSkge1xyXG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSB0aGlzLm1hdENoZWNrYm94LmluZGV0ZXJtaW5hdGUgPSBjb21tYW5kLm9iajE7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgaGFuZGxlVGhyZWVTdGF0ZSgpIHtcclxuICAgIGxldCB2YWx1ZSA6IHN0cmluZyA9ICcnO1xyXG4gICAgbGV0IHByZXZDaGVja2VkVmFsdWUgPSB0aGlzLnRhc2suZ2V0VmFsdWUodGhpcy5tYWdpY0RpcmVjdGl2ZS5pZCwgdGhpcy5tYWdpY0RpcmVjdGl2ZS5yb3dJZCk7XHJcbiAgICBpZih0aGlzLmluZGV0ZXJtaW5hdGUpIHtcclxuICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gdGhpcy5tYXRDaGVja2JveC5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubWF0Q2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB2YWx1ZSA9ICd1bmNoZWNrZWQnO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZihwcmV2Q2hlY2tlZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IHRoaXMubWF0Q2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IHRydWU7XHJcbiAgICAgIHRoaXMubWF0Q2hlY2tib3guY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB2YWx1ZSA9ICdpbmRldGVybWluYXRlJztcclxuICAgIH1cclxuICAgIGVsc2UgaWYoIXByZXZDaGVja2VkVmFsdWUpIHtcclxuICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gdGhpcy5tYXRDaGVja2JveC5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubWF0Q2hlY2tib3guY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgIHZhbHVlID0gJ2NoZWNrZWQnO1xyXG4gICAgfVxyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLm9uQ2hlY2tDaGFuZ2VkKHZhbHVlLCB0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkLCArdGhpcy5tYWdpY0RpcmVjdGl2ZS5yb3dJZCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENsZWFudXBcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuc3Vic2NyaWJlUmVmcmVzaERvbSAhPT0gbnVsbClcclxuICAgICAgdGhpcy5zdWJzY3JpYmVSZWZyZXNoRG9tLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,30 +0,0 @@
1
- import { Directive, HostListener } from "@angular/core";
2
- import { ComboboxMagicDirective, MagicDirective } from "@magic-xpa/angular";
3
- import * as i0 from "@angular/core";
4
- export class MatComboboxDirective extends ComboboxMagicDirective {
5
- onChange($event) {
6
- super.onChange($event);
7
- }
8
- onOpenedChanged($event) {
9
- MagicDirective.opened = $event;
10
- }
11
- onComboboxItemsListChanged() {
12
- }
13
- static ɵfac = (() => { let ɵMatComboboxDirective_BaseFactory; return function MatComboboxDirective_Factory(t) { return (ɵMatComboboxDirective_BaseFactory || (ɵMatComboboxDirective_BaseFactory = i0.ɵɵgetInheritedFactory(MatComboboxDirective)))(t || MatComboboxDirective); }; })();
14
- static ɵdir = i0.ɵɵdefineDirective({ type: MatComboboxDirective, selectors: [["mat-select", "magic", ""]], hostBindings: function MatComboboxDirective_HostBindings(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵlistener("selectionChange", function MatComboboxDirective_selectionChange_HostBindingHandler($event) { return ctx.onChange($event); })("openedChange", function MatComboboxDirective_openedChange_HostBindingHandler($event) { return ctx.onOpenedChanged($event); });
16
- } }, features: [i0.ɵɵInheritDefinitionFeature] });
17
- }
18
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatComboboxDirective, [{
19
- type: Directive,
20
- args: [{
21
- selector: `mat-select[magic]`,
22
- }]
23
- }], null, { onChange: [{
24
- type: HostListener,
25
- args: ['selectionChange', ['$event']]
26
- }], onOpenedChanged: [{
27
- type: HostListener,
28
- args: ['openedChange', ['$event']]
29
- }] }); })();
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW1hZ2ljLWNvbWJvYm94LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtY29yZS9zcmMvZGlyZWN0aXZlcy9tYWdpYy9mb3JtLWNvbnRyb2xzL21hdC1tYWdpYy1jb21ib2JveC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDOztBQVUxRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsc0JBQXNCO0lBTzlELFFBQVEsQ0FBQyxNQUFNO1FBQ2IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBR0QsZUFBZSxDQUFDLE1BQU07UUFDcEIsY0FBYyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUtELDBCQUEwQjtJQUMxQixDQUFDOytOQXBCVSxvQkFBb0IsU0FBcEIsb0JBQW9COytDQUFwQixvQkFBb0I7WUFBcEIsbUhBQUEsb0JBQWdCLElBQUksZ0dBQXBCLDJCQUF1QixJQUFIOzs7aUZBQXBCLG9CQUFvQjtjQUpoQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUNOLG1CQUFtQjthQUN0QjtnQkFRQyxRQUFRO2tCQURQLFlBQVk7bUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFNM0MsZUFBZTtrQkFEZCxZQUFZO21CQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21ib2JveE1hZ2ljRGlyZWN0aXZlLCBNYWdpY0RpcmVjdGl2ZX0gZnJvbSBcIkBtYWdpYy14cGEvYW5ndWxhclwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBEaXJlY3RpdmUgZm9yIG1hdGVyaWFsLWRlc2lnbiBjb21ib2JveGVzIG5vdCBvbiBtYXRlcmlhbC1kZXNpZ24gdGFibGVcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOlxyXG4gICAgYG1hdC1zZWxlY3RbbWFnaWNdYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdENvbWJvYm94RGlyZWN0aXZlIGV4dGVuZHMgQ29tYm9ib3hNYWdpY0RpcmVjdGl2ZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIFwic2VsZWN0aW9uQ2hhbmdlXCIgZXZlbnQgLSBwYXNzIGl0IHRvIHRoZSBcImNoYW5nZVwiIGV2ZW50IGhhbmRsZXJcclxuICAgKiBAcGFyYW0gJGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignc2VsZWN0aW9uQ2hhbmdlJywgWyckZXZlbnQnXSlcclxuICBvbkNoYW5nZSgkZXZlbnQpIHtcclxuICAgIHN1cGVyLm9uQ2hhbmdlKCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdvcGVuZWRDaGFuZ2UnLCBbJyRldmVudCddKVxyXG4gIG9uT3BlbmVkQ2hhbmdlZCgkZXZlbnQpIHtcclxuICAgIE1hZ2ljRGlyZWN0aXZlLm9wZW5lZCA9ICRldmVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvciBtYXQtc2VsZWN0IGRvIG5vdGhpbmdcclxuICAgKi9cclxuICBvbkNvbWJvYm94SXRlbXNMaXN0Q2hhbmdlZCgpOiB2b2lkIHtcclxuICB9XHJcbn1cclxuIl19
@@ -1,27 +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
- magicDirective;
7
- constructor(magicDirective) {
8
- this.magicDirective = magicDirective;
9
- }
10
- onChange($event) {
11
- this.magicDirective.task.onListBoxSelectionChanged($event, this.magicDirective.id);
12
- }
13
- static ɵfac = function MatListboxDirective_Factory(t) { return new (t || MatListboxDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective)); };
14
- static ɵ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
- }
18
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MatListboxDirective, [{
19
- type: Directive,
20
- args: [{
21
- selector: `mat-selection-list[magic]`,
22
- }]
23
- }], () => [{ type: i1.MagicDirective }], { onChange: [{
24
- type: HostListener,
25
- args: ['selectionChange', ['$event']]
26
- }] }); })();
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LW1hZ2ljLWxpc3Rib3guZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1tYXRlcmlhbC1jb3JlL3NyYy9kaXJlY3RpdmVzL21hZ2ljL2Zvcm0tY29udHJvbHMvbWF0LW1hZ2ljLWxpc3Rib3guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVXBELE1BQU0sT0FBTyxtQkFBbUI7SUFFUjtJQUF0QixZQUFzQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFDcEQsQ0FBQztJQU9ELFFBQVEsQ0FBQyxNQUFNO1FBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQzs2RUFaVSxtQkFBbUI7K0NBQW5CLG1CQUFtQjtZQUFuQixrSEFBQSxvQkFBZ0IsSUFBRzs7O2lGQUFuQixtQkFBbUI7Y0FKL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFDTiwyQkFBMkI7YUFDOUI7K0NBV0MsUUFBUTtrQkFEUCxZQUFZO21CQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYWdpY0RpcmVjdGl2ZSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcclxuXHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBtYXRlcmlhbC1kZXNpZ24gbGlzdGJveGVzIG5vdCBvbiBtYXRlcmlhbC1kZXNpZ24gdGFibGVcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOlxyXG4gICAgYG1hdC1zZWxlY3Rpb24tbGlzdFttYWdpY11gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0TGlzdGJveERpcmVjdGl2ZXtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG1hZ2ljRGlyZWN0aXZlOiBNYWdpY0RpcmVjdGl2ZSkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgXCJzZWxlY3Rpb25DaGFuZ2VcIiBldmVudCAtIHBhc3MgaXQgdG8gdGhlIFwiY2hhbmdlXCIgZXZlbnQgaGFuZGxlclxyXG4gICAqIEBwYXJhbSAkZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdzZWxlY3Rpb25DaGFuZ2UnLCBbJyRldmVudCddKVxyXG4gIG9uQ2hhbmdlKCRldmVudCkge1xyXG4gICAgdGhpcy5tYWdpY0RpcmVjdGl2ZS50YXNrLm9uTGlzdEJveFNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCB0aGlzLm1hZ2ljRGlyZWN0aXZlLmlkKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,7 +0,0 @@
1
- import { basicMagicProviders, TableMagicService } from "@magic-xpa/angular";
2
- import { MgMatTableService } from "./mattable.magic.service";
3
- export const matMagicProviders = [
4
- ...basicMagicProviders,
5
- { provide: TableMagicService, useClass: MgMatTableService }
6
- ];
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Lm1hZ2ljLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtY29yZS9zcmMvc2VydmljZXMvbWF0Lm1hZ2ljLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUcsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU03RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRztJQUMvQixHQUFHLG1CQUFtQjtJQUN0QixFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7Q0FDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBiYXNpY01hZ2ljUHJvdmlkZXJzLCAgVGFibGVNYWdpY1NlcnZpY2V9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcclxuXHJcbmltcG9ydCB7IE1nTWF0VGFibGVTZXJ2aWNlIH0gZnJvbSBcIi4vbWF0dGFibGUubWFnaWMuc2VydmljZVwiO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbWF0TWFnaWNQcm92aWRlcnMgPSBbXHJcbiAgLi4uYmFzaWNNYWdpY1Byb3ZpZGVycywgLy8gLSBjcmVhdGVkIGVycm9yIEV4cG9ydGVkIHZhcmlhYmxlICdtYXRNYWdpY1Byb3ZpZGVycycgaGFzIG9yIGlzIHVzaW5nIG5hbWUgJ01hZ2ljU2VydmljZXMnIGZyb20gZXh0ZXJuYWwgbW9kdWxlIFwiRDovbWFnaWN4cGFwcm9qZWN0L19UcnVuay9Tb3VyY2VzL1dlYmNsaWVudC9kaXN0L2FuZ3VsYXIvc3JjL3NlcnZpY2VzL21hZ2ljLnNlcnZpY2VzXCIgYnV0IGNhbm5vdCBiZSBuYW1lZC5cclxuICB7IHByb3ZpZGU6IFRhYmxlTWFnaWNTZXJ2aWNlLCB1c2VDbGFzczogTWdNYXRUYWJsZVNlcnZpY2UgfVxyXG5dO1xyXG5cclxuIl19
@@ -1,138 +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
- componentList;
10
- task;
11
- dataSource;
12
- get DataSource() {
13
- return this.dataSource;
14
- }
15
- set DataSource(dataSource) {
16
- this.dataSource = dataSource;
17
- }
18
- selection;
19
- get Selection() {
20
- return this.selection;
21
- }
22
- set Selection(selection) {
23
- this.selection = selection;
24
- }
25
- paginator;
26
- get Paginator() {
27
- return this.paginator;
28
- }
29
- set Paginator(paginator) {
30
- this.paginator = paginator;
31
- }
32
- constructor(componentList, task) {
33
- super(componentList, task);
34
- this.componentList = componentList;
35
- this.task = task;
36
- }
37
- connect(dataSource, paginator, selection) {
38
- this.dataSource = dataSource;
39
- this.paginator = paginator;
40
- this.selection = selection;
41
- }
42
- refreshDataSource() {
43
- if (!isNullOrUndefined(this.paginator))
44
- this.dataSource.paginator = this.paginator;
45
- this.dataSource.data = (this.task.mgAccessorService.isDataviewEmpty() ? [] : this.task.Records.list);
46
- }
47
- getPageSize() {
48
- if (isNullOrUndefined(this.paginator))
49
- return 10;
50
- return this.paginator.pageSize;
51
- }
52
- selectRow(guiRowid) {
53
- super.selectRow(guiRowid);
54
- this.selection.select(this.task.Records.list[guiRowid]);
55
- this.refreshDataSource();
56
- }
57
- selectPage(pageId) {
58
- if (!isNullOrUndefined(this.paginator))
59
- this.paginator.pageIndex = pageId;
60
- this.refreshDataSource();
61
- }
62
- selectedRow() {
63
- return this.selection.selected[0];
64
- }
65
- mgOnPaginateChange(e, changeSelectedRow) {
66
- if (this.task.oldPageSize != e.pageSize) {
67
- this.handleResize(e.pageIndex, e.previousPageIndex, e.pageSize);
68
- this.task.oldPageSize = e.pageSize;
69
- }
70
- else {
71
- if (changeSelectedRow) {
72
- let evt;
73
- if (e.pageIndex > e.previousPageIndex) {
74
- evt = (e.pageIndex - e.previousPageIndex === 1) ? "next-page" : "end-table";
75
- }
76
- else {
77
- evt = (e.previousPageIndex - e.pageIndex === 1) ? "previous-page" : "begin-table";
78
- }
79
- let guiEvent = getGuiEventObj("navigateInTable", "magicRow", 0);
80
- guiEvent.Value = evt;
81
- this.task.insertEvent(guiEvent);
82
- }
83
- else
84
- this.getRowsIfNeeded(e.pageIndex, e.previousPageIndex, e.pageSize);
85
- }
86
- }
87
- handleResize(pageIndex, prevPageIndex, pageSize) {
88
- let requiredGuiRowId = pageIndex * pageSize;
89
- this.task.resize(pageSize, requiredGuiRowId);
90
- }
91
- getRowsIfNeeded(pageIndex, prevPageIndex, pageSize) {
92
- let guiEvent = getGuiEventObj("getRows", "", 0);
93
- guiEvent.Line = pageIndex * pageSize;
94
- this.task.insertEvent(guiEvent);
95
- this.setTableTopIndex(this.task.getDvRowId(pageSize * pageIndex));
96
- }
97
- sortData(e) {
98
- let direction = 0;
99
- if (e.direction === 'asc')
100
- direction = 0;
101
- else if (e.direction === 'desc')
102
- direction = 1;
103
- let guiEvent = getGuiEventObj("columnSort", e.active, direction);
104
- this.task.insertEvent(guiEvent);
105
- }
106
- updateTableSize(size) {
107
- if (size === 0) {
108
- size = 1;
109
- this.task.Records.clearFirstTableRecord(this.task.template);
110
- }
111
- else if (isNullOrUndefined(this.paginator))
112
- size = this.getPageSize();
113
- this.task.formGroups.length = size;
114
- this.task.Records.updateSize(size);
115
- this.task.setIncludesFirst(false);
116
- }
117
- selectPageForGuiRowId(guiRowId) {
118
- let pageToBeSelected = 0;
119
- let prevSelectedRow = this.selectedRow();
120
- pageToBeSelected = Math.floor(guiRowId / this.getPageSize());
121
- if ((isNullOrUndefined(prevSelectedRow) || (!isNullOrUndefined(this.paginator) && pageToBeSelected != this.paginator.pageIndex)))
122
- this.selectPage(pageToBeSelected);
123
- }
124
- setTableTopIndex(value) {
125
- this.task.Records.setGuiTopIndex(value);
126
- if (value >= 0)
127
- this.selectPageForGuiRowId(this.task.getGuiRowId(value, true));
128
- }
129
- getTableTopIndex() {
130
- return this.task.Records.getGuiTopIndex();
131
- }
132
- static ɵfac = function MgMatTableService_Factory(t) { return new (t || MgMatTableService)(i0.ɵɵinject(i1.ComponentListMagicService), i0.ɵɵinject(i1.TaskMagicService)); };
133
- static ɵprov = i0.ɵɵdefineInjectable({ token: MgMatTableService, factory: MgMatTableService.ɵfac });
134
- }
135
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MgMatTableService, [{
136
- type: Injectable
137
- }], () => [{ type: i1.ComponentListMagicService }, { type: i1.TaskMagicService }], null); })();
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0dGFibGUubWFnaWMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtY29yZS9zcmMvc2VydmljZXMvbWF0dGFibGUubWFnaWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBQVksY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQVN2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsaUJBQWlCO0lBNkRoQztJQUFvRDtJQXpEMUUsVUFBVSxDQUE4QjtJQUt4QyxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUtELElBQUksVUFBVSxDQUFDLFVBQXVDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFLRCxTQUFTLENBQTBCO0lBS25DLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBS0QsSUFBSSxTQUFTLENBQUMsU0FBa0M7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUtELFNBQVMsQ0FBZTtJQUt4QixJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUtELElBQUksU0FBUyxDQUFDLFNBQXVCO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lB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O0lBQ3RDLENBQUM7SUFLRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQ1osSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFLRCxnQkFBZ0I7UUFFZCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzVDLENBQUM7MkVBclBVLGlCQUFpQjtrREFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQjs7aUZBQWpCLGlCQUFpQjtjQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcblxuaW1wb3J0IHsgVGFza01hZ2ljU2VydmljZSwgQ29tcG9uZW50TGlzdE1hZ2ljU2VydmljZSwgQ29udHJvbHNNZXRhZGF0YSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUd1aUV2ZW50LCBnZXRHdWlFdmVudE9ian0gZnJvbSBcIkBtYWdpYy14cGEvZW5naW5lXCI7XG5pbXBvcnQgeyBUYWJsZU1hZ2ljU2VydmljZSB9IGZyb20gXCJAbWFnaWMteHBhL2FuZ3VsYXJcIjtcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcblxuXG4vKipcbiAqIEV4dGVuZHMgdGhlIE1hZ2ljIHRhYmxlIHNlcnZpY2UgdG8gc3VwcGx5IGZ1bmN0aW9uYWxpdHkgZm9yIE1hdGVyaWFsIERlc2lnbiB0YWJsZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1nTWF0VGFibGVTZXJ2aWNlIGV4dGVuZHMgVGFibGVNYWdpY1NlcnZpY2Uge1xuICAvKipcbiAgICogVGFibGUgZGF0YSBzb3VyY2VcbiAgICovXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxFbGVtZW50PjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IERhdGFTb3VyY2UoKTogTWF0VGFibGVEYXRhU291cmNlPEVsZW1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldCBEYXRhU291cmNlKGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxFbGVtZW50Pikge1xuICAgIHRoaXMuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgc2VsZWN0aW9uIG9wdGlvbnMgZm9yIHRoZSB0YWJsZVxuICAgKi9cbiAgc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxFbGVtZW50PjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IFNlbGVjdGlvbigpOiBTZWxlY3Rpb25Nb2RlbDxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNldCBTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb25Nb2RlbDxFbGVtZW50Pikge1xuICAgIHRoaXMuc2VsZWN0aW9uID0gc2VsZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhZ2luYXRvciB0byBlbmFibGUgY2hhbmdpbmcgcGFnZXMgaW4gdGhlIHRhYmxlXG4gICAqL1xuICBwYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgZ2V0IFBhZ2luYXRvcigpOiBNYXRQYWdpbmF0b3Ige1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBzZXQgUGFnaW5hdG9yKHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yKSB7XG4gICAgdGhpcy5wYWdpbmF0b3IgPSBwYWdpbmF0b3I7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbXBvbmVudExpc3Q6IENvbXBvbmVudExpc3RNYWdpY1NlcnZpY2UsIHByb3RlY3RlZCB0YXNrOiBUYXNrTWFnaWNTZXJ2aWNlICkge1xuICAgIHN1cGVyKGNvbXBvbmVudExpc3QsIHRhc2spO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbm5lY3RzIHRoZSBzZXJ2aWNlIHRvIHRoZSBlbGVtZW50cyBvZiB0aGUgdGFibGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBkYXRhU291cmNlIFRhYmxlIGRhdGEgc291cmNlXG4gICAqIEBwYXJhbSBwYWdpbmF0b3IgVGFibGUgcGFnaW5hdG9yXG4gICAqIEBwYXJhbSBzZWxlY3Rpb24gdGFibGUgU2VsZWN0aW9uTW9kZWxcbiAgICovXG4gIGNvbm5lY3QoZGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPEVsZW1lbnQ+ICwgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3IsIHNlbGVjdGlvbjogU2VsZWN0aW9uTW9kZWw8RWxlbWVudD4pIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xuICAgIHRoaXMucGFnaW5hdG9yID0gcGFnaW5hdG9yO1xuICAgIHRoaXMuc2VsZWN0aW9uID0gc2VsZWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHJlZnJlc2hEYXRhU291cmNlKCkge1xuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5wYWdpbmF0b3IpKVxuICAgICAgdGhpcy5kYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSAodGhpcy50YXNrLm1nQWNjZXNzb3JTZXJ2aWNlLmlzRGF0YXZpZXdFbXB0eSgpID8gW10gOiB0aGlzLnRhc2suUmVjb3Jkcy5saXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm5zIHRoZSBwYWdlIHNpemUgb2YgdGhlIHRhYmxlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRQYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLnBhZ2luYXRvcikpXG4gICAgICByZXR1cm4gMTA7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYSB0YWJsZSByb3dcbiAgICogQHBhcmFtIGd1aVJvd2lkIElkIG9mIHJvdyB0byBiZSBzZWxlY3RlZFxuICAgKi9cbiAgc2VsZWN0Um93KGd1aVJvd2lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBzdXBlci5zZWxlY3RSb3coZ3VpUm93aWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdCh0aGlzLnRhc2suUmVjb3Jkcy5saXN0W2d1aVJvd2lkXSk7XG4gICAgdGhpcy5yZWZyZXNoRGF0YVNvdXJjZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIHRoZSByZXF1ZXN0ZWQgdGFibGUgcGFnZVxuICAgKiBAcGFyYW0gcGFnZUlkIElkIG9mIHBhZ2UgdG8gYmUgc2VsZWN0ZWRcbiAgICovXG4gIHNlbGVjdFBhZ2UocGFnZUlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMucGFnaW5hdG9yKSlcbiAgICAgIHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IHBhZ2VJZDtcblxuICAgIHRoaXMucmVmcmVzaERhdGFTb3VyY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50bHkgc2VsZXRlZCByb3dcbiAgICogQHJldHVybnNcbiAgICovXG4gIHNlbGVjdGVkUm93KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB0aGUgcGFnaW5hdG9yJ3MgXCJwYWdlXCIgZXZlbnRcbiAgICogQHBhcmFtIGUgVGhlIGV2ZW50IHJlY2VpdmVkIGZyb20gdGhlIFVJXG4gICAqIEBwYXJhbSBjaGFuZ2VTZWxlY3RlZFJvdyBUaGUgZmxhZyB0cnVlIG9yIGZhbHNlIHRvIGluZGljYXRlIGNoYW5nZSB0aGUgcm93XG4gICAqL1xuICBtZ09uUGFnaW5hdGVDaGFuZ2UoZSwgY2hhbmdlU2VsZWN0ZWRSb3c/OiBib29sZWFuKVxuICB7XG4gICAgaWYgKHRoaXMudGFzay5vbGRQYWdlU2l6ZSAhPSBlLnBhZ2VTaXplKSB7XG4gICAgICB0aGlzLmhhbmRsZVJlc2l6ZShlLnBhZ2VJbmRleCwgZS5wcmV2aW91c1BhZ2VJbmRleCwgZS5wYWdlU2l6ZSk7XG4gICAgICB0aGlzLnRhc2sub2xkUGFnZVNpemUgPSBlLnBhZ2VTaXplO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChjaGFuZ2VTZWxlY3RlZFJvdylcbiAgICAgIHtcbiAgICAgICAgbGV0IGV2dDogc3RyaW5nO1xuICAgICAgICBpZiAoZS5wYWdlSW5kZXggPiBlLnByZXZpb3VzUGFnZUluZGV4KSB7XG4gICAgICAgICAgZXZ0ID0gKGUucGFnZUluZGV4IC0gZS5wcmV2aW91c1BhZ2VJbmRleCA9PT0gMSkgPyBcIm5leHQtcGFnZVwiIDogXCJlbmQtdGFibGVcIjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBldnQgPSAoZS5wcmV2aW91c1BhZ2VJbmRleCAtIGUucGFnZUluZGV4ID09PSAxKSA/IFwicHJldmlvdXMtcGFnZVwiIDogXCJiZWdpbi10YWJsZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGd1aUV2ZW50OiBJR3VpRXZlbnQgPSBnZXRHdWlFdmVudE9iaihcIm5hdmlnYXRlSW5UYWJsZVwiLCBcIm1hZ2ljUm93XCIsMCk7XG4gICAgICAgIGd1aUV2ZW50LlZhbHVlID0gZXZ0O1xuICAgICAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xuICAgICAgfVxuICAgICAgZWxzZVxuICAgICAgICB0aGlzLmdldFJvd3NJZk5lZWRlZChlLnBhZ2VJbmRleCwgZS5wcmV2aW91c1BhZ2VJbmRleCwgZS5wYWdlU2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSByZXNpemUgYW5kIHNldCB0YWJsZSB0b3AgaW5kZXguXG4gICAqIEBwYXJhbSBwYWdlSW5kZXggOiBOZXcgcGFnZSBpbmRleC5cbiAgICogQHBhcmFtIHByZXZQYWdlSW5kZXggOiBQcmV2IHBhZ2UgaW5kZXhcbiAgICogQHBhcmFtIHBhZ2VTaXplIDogUGFnZVNpemVcbiAgICovXG4gIGhhbmRsZVJlc2l6ZShwYWdlSW5kZXg6IG51bWJlciwgcHJldlBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IHJlcXVpcmVkR3VpUm93SWQgPSBwYWdlSW5kZXggKiBwYWdlU2l6ZTtcbiAgICB0aGlzLnRhc2sucmVzaXplKHBhZ2VTaXplLCByZXF1aXJlZEd1aVJvd0lkKTtcbiAgICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgZ2V0Um93cyB0byBmZXRjaCByZXF1aXJlZCBjaHVuayBvZiByZWNvcmRzLlxuICAgKiBAcGFyYW0gcGFnZUluZGV4IDogTmV3IHBhZ2UgaW5kZXguXG4gICAqIEBwYXJhbSBwcmV2UGFnZUluZGV4IDogUHJldiBwYWdlIGluZGV4XG4gICAqIEBwYXJhbSBwYWdlU2l6ZSA6IFBhZ2VTaXplXG4gICAqL1xuICBnZXRSb3dzSWZOZWVkZWQocGFnZUluZGV4OiBudW1iZXIsIHByZXZQYWdlSW5kZXg6IG51bWJlciwgcGFnZVNpemU6IG51bWJlcik6IHZvaWQge1xuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJnZXRSb3dzXCIsIFwiXCIsMCk7XG4gICAgZ3VpRXZlbnQuTGluZSA9IHBhZ2VJbmRleCAqIHBhZ2VTaXplO1xuICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChndWlFdmVudCk7XG4gICAgdGhpcy5zZXRUYWJsZVRvcEluZGV4KHRoaXMudGFzay5nZXREdlJvd0lkKHBhZ2VTaXplICogcGFnZUluZGV4KSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0aGUgXCJtYXRTb3J0Q2hhbmdlXCIgZXZlbnRcbiAgICogQHBhcmFtIGUgVGhlIGV2ZW50IHJlY2VpdmVkIGZyb20gdGhlIFVJXG4gICAqL1xuICBzb3J0RGF0YShlKSB7XG4gICAgbGV0IGRpcmVjdGlvbjogbnVtYmVyID0gMDtcbiAgICBpZiAoZS5kaXJlY3Rpb24gPT09ICdhc2MnKVxuICAgICAgZGlyZWN0aW9uID0gMDtcbiAgICBlbHNlIGlmIChlLmRpcmVjdGlvbiA9PT0gJ2Rlc2MnKVxuICAgICAgZGlyZWN0aW9uID0gMTtcblxuICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJjb2x1bW5Tb3J0XCIsIGUuYWN0aXZlLCBkaXJlY3Rpb24pO1xuICAgIHRoaXMudGFzay5pbnNlcnRFdmVudChndWlFdmVudCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSBudW1iZXIgb2YgbGluZXMgaW4gYSB0YWJsZVxuICAgKiBAcGFyYW0gIHNpemUgTmV3IG51bWJlciBvZiBsaW5lcyBpbiB0YWJsZVxuICAgKi9cbiAgdXBkYXRlVGFibGVTaXplKHNpemU6IG51bWJlcikge1xuICAgIGlmIChzaXplID09PSAwKSAvLyBuZXZlciByZW1vdmUgcm93IDAgZm9yIG5vd1xuICAgIHtcbiAgICAgICBzaXplID0gMTtcbiAgICAgICB0aGlzLnRhc2suUmVjb3Jkcy5jbGVhckZpcnN0VGFibGVSZWNvcmQodGhpcy50YXNrLnRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBlbHNlIGlmIChpc051bGxPclVuZGVmaW5lZCh0aGlzLnBhZ2luYXRvcikpXG4gICAgICAgc2l6ZSA9IHRoaXMuZ2V0UGFnZVNpemUoKTtcblxuICAgIHRoaXMudGFzay5mb3JtR3JvdXBzLmxlbmd0aCA9IHNpemU7XG4gICAgdGhpcy50YXNrLlJlY29yZHMudXBkYXRlU2l6ZShzaXplKTtcbiAgICB0aGlzLnRhc2suc2V0SW5jbHVkZXNGaXJzdChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHRoZSBzZWxlY3Rpb24gb2Ygcm93IGFuZCBpZiBuZWVkZWQgbW92ZSB0byByZXNwZWN0aXZlIHBhZ2UuXG4gICAqIEBwYXJhbSAgZ3VpUm93SWQgTmV3IG51bWJlciBvZiBsaW5lcyBpbiB0YWJsZVxuICAgKi9cbiAgcHJvdGVjdGVkIHNlbGVjdFBhZ2VGb3JHdWlSb3dJZChndWlSb3dJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgbGV0IHBhZ2VUb0JlU2VsZWN0ZWQ6IG51bWJlciA9IDA7XG4gICAgbGV0IHByZXZTZWxlY3RlZFJvdzogQ29udHJvbHNNZXRhZGF0YSA9IDxDb250cm9sc01ldGFkYXRhPnRoaXMuc2VsZWN0ZWRSb3coKTtcblxuICAgIHBhZ2VUb0JlU2VsZWN0ZWQgPSBNYXRoLmZsb29yKGd1aVJvd0lkIC8gdGhpcy5nZXRQYWdlU2l6ZSgpKTtcblxuICAgIC8vIEV4cGxpY2l0bHkgaGFuZGxlIHNlbGVjdGlvbiBvZiBwYWdlIHdoZW4gaXQncyBub3QgcmFpc2VkIGJ5IHVzaW5nIHBhZ2luYXRpb25cbiAgICBpZiAoKGlzTnVsbE9yVW5kZWZpbmVkKHByZXZTZWxlY3RlZFJvdykgfHwgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLnBhZ2luYXRvcikgJiYgcGFnZVRvQmVTZWxlY3RlZCAhPSB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXgpKSlcbiAgICAgIHRoaXMuc2VsZWN0UGFnZShwYWdlVG9CZVNlbGVjdGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBzZXRUYWJsZVRvcEluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhc2suUmVjb3Jkcy5zZXRHdWlUb3BJbmRleCh2YWx1ZSk7XG5cbiAgICBpZiAodmFsdWUgPj0gMClcbiAgICAgIHRoaXMuc2VsZWN0UGFnZUZvckd1aVJvd0lkKHRoaXMudGFzay5nZXRHdWlSb3dJZCh2YWx1ZSwgdHJ1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdldFRhYmxlVG9wSW5kZXgoKTpudW1iZXJcbiAge1xuICAgIHJldHVybiB0aGlzLnRhc2suUmVjb3Jkcy5nZXRHdWlUb3BJbmRleCgpO1xuICB9XG59XG5cbiJdfQ==