@coolon/angular-ui-powerups 16.1.0-alpha.298 → 16.1.0-alpha.299
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,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any -- command directive accepts arbitrary command shapes */
|
|
2
|
-
import { Directive, ElementRef, Host, HostListener, Inject, Input, Optional } from '@angular/core';
|
|
2
|
+
import { ChangeDetectorRef, Directive, ElementRef, Host, HostListener, Inject, Input, Optional } from '@angular/core';
|
|
3
3
|
import { MatButton } from '@angular/material/button';
|
|
4
4
|
import { MatMenu, MatMenuItem } from '@angular/material/menu';
|
|
5
5
|
import { assert, DelegatingValueModel, Dsl, GarbageCollector, lang, UnaryCommand } from '@coolon/pectin';
|
|
@@ -8,6 +8,7 @@ import * as i1 from "@angular/material/button";
|
|
|
8
8
|
import * as i2 from "@angular/material/menu";
|
|
9
9
|
export class CommandDirective extends GarbageCollector {
|
|
10
10
|
elementRef;
|
|
11
|
+
changeDetector;
|
|
11
12
|
_command;
|
|
12
13
|
_commandEnabled = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
13
14
|
matControl;
|
|
@@ -29,9 +30,10 @@ export class CommandDirective extends GarbageCollector {
|
|
|
29
30
|
return this._commandParameter;
|
|
30
31
|
}
|
|
31
32
|
preventDefault = true;
|
|
32
|
-
constructor(elementRef, matButton, matMenuItem, matMenu) {
|
|
33
|
+
constructor(elementRef, changeDetector, matButton, matMenuItem, matMenu) {
|
|
33
34
|
super();
|
|
34
35
|
this.elementRef = elementRef;
|
|
36
|
+
this.changeDetector = changeDetector;
|
|
35
37
|
// Material buttons and menu items don't respond to the disabled binding so we
|
|
36
38
|
// need to inject them from our host element and handle them manually.
|
|
37
39
|
this.matControl = matButton || matMenuItem;
|
|
@@ -60,9 +62,18 @@ export class CommandDirective extends GarbageCollector {
|
|
|
60
62
|
// for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now
|
|
61
63
|
// we need to do this. The set timeout is required to prevent the button getting a expression changed
|
|
62
64
|
// when it's clicked.
|
|
65
|
+
//
|
|
66
|
+
// The Material control reads `disabled` in its own host bindings, which an OnPush view only reads
|
|
67
|
+
// again when it's checked, so the view is marked for check here. Without that, a check of the view
|
|
68
|
+
// between an earlier timeout and this one (the enabled state changing while a new input is applied)
|
|
69
|
+
// applied the earlier, stale state, and nothing checked it again: the button stayed disabled.
|
|
63
70
|
if (this.matControl) {
|
|
64
71
|
setTimeout(() => {
|
|
72
|
+
if (this.isDisposed()) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
65
75
|
this.matControl.disabled = !enabled;
|
|
76
|
+
this.changeDetector.markForCheck();
|
|
66
77
|
}, 0);
|
|
67
78
|
}
|
|
68
79
|
if (!enabled) {
|
|
@@ -103,7 +114,7 @@ export class CommandDirective extends GarbageCollector {
|
|
|
103
114
|
console.warn('disabled command clicked, ignoring.');
|
|
104
115
|
}
|
|
105
116
|
}
|
|
106
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandDirective, deps: [{ token: ElementRef }, { token: i1.MatButton, host: true, optional: true }, { token: i2.MatMenuItem, host: true, optional: true }, { token: i2.MatMenu, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
117
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandDirective, deps: [{ token: ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.MatButton, host: true, optional: true }, { token: i2.MatMenuItem, host: true, optional: true }, { token: i2.MatMenu, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
107
118
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: CommandDirective, selector: "[pectinCommand]", inputs: { pectinCommand: "pectinCommand", commandParameter: "commandParameter", preventDefault: "preventDefault" }, host: { listeners: { "click": "notifyClick($event)" } }, usesInheritance: true, ngImport: i0 });
|
|
108
119
|
}
|
|
109
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandDirective, decorators: [{
|
|
@@ -115,7 +126,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
115
126
|
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
|
116
127
|
type: Inject,
|
|
117
128
|
args: [ElementRef]
|
|
118
|
-
}] }, { type: i1.MatButton, decorators: [{
|
|
129
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i1.MatButton, decorators: [{
|
|
119
130
|
type: Host
|
|
120
131
|
}, {
|
|
121
132
|
type: Optional
|
|
@@ -135,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
135
146
|
type: HostListener,
|
|
136
147
|
args: ['click', ['$event']]
|
|
137
148
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9kaXJlY3RpdmVzL2NvbW1hbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZHQUE2RztBQUM3RyxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixJQUFJLEVBQ0osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBQyxNQUFNLEVBQVcsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBUyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU12SCxNQUFNLE9BQU8sZ0JBQTBCLFNBQVEsZ0JBQWdCO0lBaUMvQjtJQS9CdEIsUUFBUSxDQUFpQztJQUN6QyxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksb0JBQW9CLEVBQVcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRyxVQUFVLENBQTBCO0lBQ3BDLGFBQWEsQ0FBVTtJQUUvQixJQUNJLGFBQWEsQ0FBQyxPQUF1QztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FB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QUU7WUFDdkIsNEVBQTRFO1lBQzVFLHVCQUF1QjtZQUN2QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDckMsSUFBSSxJQUFJLENBQUMsYUFBYSxZQUFZLFlBQVksRUFBRTtnQkFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDaEY7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMzRDtTQUNGO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDO3VHQWhIVSxnQkFBZ0Isa0JBaUNqQixVQUFVOzJGQWpDVCxnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7MEJBa0NJLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLElBQUk7OzBCQUFJLFFBQVE7OzBCQUNoQixJQUFJOzswQkFBSSxRQUFROzswQkFDaEIsUUFBUTs0Q0E1QlAsYUFBYTtzQkFEaEIsS0FBSztnQkFjRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBVUcsY0FBYztzQkFBdEIsS0FBSztnQkFrRU4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gY29tbWFuZCBkaXJlY3RpdmUgYWNjZXB0cyBhcmJpdHJhcnkgY29tbWFuZCBzaGFwZXMgKi9cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEJ1dHRvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW19IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHthc3NlcnQsIENvbW1hbmQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBEc2wsIEdhcmJhZ2VDb2xsZWN0b3IsIGxhbmcsIFRyYWNlLCBVbmFyeUNvbW1hbmR9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3BlY3RpbkNvbW1hbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kRGlyZWN0aXZlPFAgPSBhbnk+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBwcml2YXRlIF9jb21tYW5kOiBDb21tYW5kPGFueT4gfCBVbmFyeUNvbW1hbmQ8UD47XG4gIHByaXZhdGUgX2NvbW1hbmRFbmFibGVkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcbiAgcHJpdmF0ZSBtYXRDb250cm9sOiBNYXRCdXR0b24gfCBNYXRNZW51SXRlbTtcbiAgcHJpdmF0ZSBpc0luUG9wdXBNZW51OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBwZWN0aW5Db21tYW5kKGNvbW1hbmQ6IENvbW1hbmQ8YW55PiB8IFVuYXJ5Q29tbWFuZDxQPikge1xuICAgIHRoaXMuX2NvbW1hbmQgPSBjb21tYW5kO1xuICAgIHRoaXMuX2NvbW1hbmRFbmFibGVkLnNldERlbGVnYXRlKGNvbW1hbmQgPyBjb21tYW5kLmVuYWJsZWQkIDogbnVsbCk7XG4gIH1cblxuICBnZXQgcGVjdGluQ29tbWFuZCgpOiBDb21tYW5kPGFueT4gfCBVbmFyeUNvbW1hbmQ8UD4ge1xuICAgIHJldHVybiB0aGlzLl9jb21tYW5kO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tbWFuZFBhcmFtZXRlcjogUDtcbiAgcHJpdmF0ZSBfY29tbWFuZFBhcmFtZXRlclByb3ZpZGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbW1hbmRQYXJhbWV0ZXIodmFsdWU6IFApIHtcbiAgICB0aGlzLl9jb21tYW5kUGFyYW1ldGVyUHJvdmlkZWQgPSB0cnVlO1xuICAgIHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXIgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBjb21tYW5kUGFyYW1ldGVyKCk6IFAge1xuICAgIHJldHVybiB0aGlzLl9jb21tYW5kUGFyYW1ldGVyO1xuICB9XG5cbiAgQElucHV0KCkgcHJldmVudERlZmF1bHQgPSB0cnVlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBtYXRCdXR0b246IE1hdEJ1dHRvbixcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIG1hdE1lbnVJdGVtOiBNYXRNZW51SXRlbSxcbiAgICBAT3B0aW9uYWwoKSBtYXRNZW51PzogTWF0TWVudVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIE1hdGVyaWFsIGJ1dHRvbnMgYW5kIG1lbnUgaXRlbXMgZG9uJ3QgcmVzcG9uZCB0byB0aGUgZGlzYWJsZWQgYmluZGluZyBzbyB3ZVxuICAgIC8vIG5lZWQgdG8gaW5qZWN0IHRoZW0gZnJvbSBvdXIgaG9zdCBlbGVtZW50IGFuZCBoYW5kbGUgdGhlbSBtYW51YWxseS5cbiAgICB0aGlzLm1hdENvbnRyb2wgPSBtYXRCdXR0b24gfHwgbWF0TWVudUl0ZW07XG4gICAgdGhpcy5pc0luUG9wdXBNZW51ID0gISFtYXRNZW51O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgYXNzZXJ0Lm5vdE5pbCh0aGlzLnBlY3RpbkNvbW1hbmQpO1xuICAgIGlmICh0aGlzLnBlY3RpbkNvbW1hbmQgaW5zdGFuY2VvZiBVbmFyeUNvbW1hbmQpIHtcbiAgICAgIGlmICghdGhpcy5fY29tbWFuZFBhcmFtZXRlclByb3ZpZGVkKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKCdVbmFyeUNvbW1hbmRzIHJlcXVpcmUgdGhlIGNvbW1hbmQgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZC4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXJQcm92aWRlZCkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnY29tbWFuZCBwYXJhbWV0ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCBieSBVbmFyeUNvbW1hbmRzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMuX2NvbW1hbmRFbmFibGVkKS5jaGFuZ2VzKGVuYWJsZWQgPT4gdGhpcy51cGRhdGVFbmFibGVkU3RhdGUoZW5hYmxlZCksIHtcbiAgICAgIGluaXRpYWxWYWx1ZTogJ3RyaWdnZXJDaGFuZ2UnXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVFbmFibGVkU3RhdGUoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIC8vIGZvciBzb21lIHJlYXNvbiBtYXQtYnV0dG9ucyBraWxscyB0aGUgZGlzYWJsZWQgaG9zdCBiaW5kaW5nLiAgSXQgd29ya3Mgb24gYSByZWd1bGFyIGJ1dHRvbiBidXQgZm9yIG5vd1xuICAgIC8vIHdlIG5lZWQgdG8gZG8gdGhpcy4gVGhlIHNldCB0aW1lb3V0IGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgdGhlIGJ1dHRvbiBnZXR0aW5nIGEgZXhwcmVzc2lvbiBjaGFuZ2VkXG4gICAgLy8gd2hlbiBpdCdzIGNsaWNrZWQuXG4gICAgaWYgKHRoaXMubWF0Q29udHJvbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMubWF0Q29udHJvbC5kaXNhYmxlZCA9ICFlbmFibGVkO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgLy8gTm90ZTpcbiAgICAgIC8vIFdlIGNhbid0IHVzZSBhIGhvc3QgYmluZGluZyBoZXJlIGZvciBkaXNhYmxlZCBhcyB0aGUgZGlyZWN0aXZlIGNhbiBiZSB1c2VkIG9uIGFyYml0cmFyeVxuICAgICAgLy8gY29tcG9uZW50cyAoZS5nLiBkaXZzKSBhbmQgdGhlIGNvbXBpbGVyIHdpbGwgYmFyZiBpZiB3ZSB1c2UgdGhlIGhvc3QgYmluZGluZy5cbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTtcbiAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdocmVmJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgIGlmICh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50YWdOYW1lID09PSAnQScpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2phdmFzY3JpcHQ6dm9pZCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG5vdGlmeUNsaWNrKCRldmVudDogRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuaXNJblBvcHVwTWVudSkge1xuICAgICAgLy8gbWF0ZXJpYWwgcG9wdXAgbWVudXMgdXNlIGJ1YmJsaW5nIHRvIGNsb3NlIHNvIHdlIG5lZWQgdG8gbGV0IGl0IGJ1YmJsZSBvclxuICAgICAgLy8gdGhlIG1lbnUgd29uJ3QgY2xvc2VcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5wZWN0aW5Db21tYW5kLmVuYWJsZWQkLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5wZWN0aW5Db21tYW5kIGluc3RhbmNlb2YgVW5hcnlDb21tYW5kKSB7XG4gICAgICAgIHRoaXMucGVjdGluQ29tbWFuZC53aXRoQ29udGV4dCh7ZXZlbnQ6ICRldmVudH0pLmV4ZWN1dGUodGhpcy5jb21tYW5kUGFyYW1ldGVyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucGVjdGluQ29tbWFuZC53aXRoQ29udGV4dCh7ZXZlbnQ6ICRldmVudH0pLmV4ZWN1dGUoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdkaXNhYmxlZCBjb21tYW5kIGNsaWNrZWQsIGlnbm9yaW5nLicpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9kaXJlY3RpdmVzL2NvbW1hbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZHQUE2RztBQUM3RyxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsTUFBTSxFQUFXLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQVMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNdkgsTUFBTSxPQUFPLGdCQUEwQixTQUFRLGdCQUFnQjtJQWlDL0I7SUFDWDtJQWhDWCxRQUFRLENBQWlDO0lBQ3pDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLFVBQVUsQ0FBMEI7SUFDcEMsYUFBYSxDQUFVO0lBRS9CLElBQ0ksYUFBYSxDQUFDLE9BQXVDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFB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O3NCQURoQixLQUFLO2dCQWNGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRyxjQUFjO3NCQUF0QixLQUFLO2dCQTRFTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBjb21tYW5kIGRpcmVjdGl2ZSBhY2NlcHRzIGFyYml0cmFyeSBjb21tYW5kIHNoYXBlcyAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSG9zdCxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdEJ1dHRvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW19IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHthc3NlcnQsIENvbW1hbmQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBEc2wsIEdhcmJhZ2VDb2xsZWN0b3IsIGxhbmcsIFRyYWNlLCBVbmFyeUNvbW1hbmR9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3BlY3RpbkNvbW1hbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kRGlyZWN0aXZlPFAgPSBhbnk+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcblxuICBwcml2YXRlIF9jb21tYW5kOiBDb21tYW5kPGFueT4gfCBVbmFyeUNvbW1hbmQ8UD47XG4gIHByaXZhdGUgX2NvbW1hbmRFbmFibGVkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUobmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpKTtcbiAgcHJpdmF0ZSBtYXRDb250cm9sOiBNYXRCdXR0b24gfCBNYXRNZW51SXRlbTtcbiAgcHJpdmF0ZSBpc0luUG9wdXBNZW51OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBwZWN0aW5Db21tYW5kKGNvbW1hbmQ6IENvbW1hbmQ8YW55PiB8IFVuYXJ5Q29tbWFuZDxQPikge1xuICAgIHRoaXMuX2NvbW1hbmQgPSBjb21tYW5kO1xuICAgIHRoaXMuX2NvbW1hbmRFbmFibGVkLnNldERlbGVnYXRlKGNvbW1hbmQgPyBjb21tYW5kLmVuYWJsZWQkIDogbnVsbCk7XG4gIH1cblxuICBnZXQgcGVjdGluQ29tbWFuZCgpOiBDb21tYW5kPGFueT4gfCBVbmFyeUNvbW1hbmQ8UD4ge1xuICAgIHJldHVybiB0aGlzLl9jb21tYW5kO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29tbWFuZFBhcmFtZXRlcjogUDtcbiAgcHJpdmF0ZSBfY29tbWFuZFBhcmFtZXRlclByb3ZpZGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2V0IGNvbW1hbmRQYXJhbWV0ZXIodmFsdWU6IFApIHtcbiAgICB0aGlzLl9jb21tYW5kUGFyYW1ldGVyUHJvdmlkZWQgPSB0cnVlO1xuICAgIHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXIgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBjb21tYW5kUGFyYW1ldGVyKCk6IFAge1xuICAgIHJldHVybiB0aGlzLl9jb21tYW5kUGFyYW1ldGVyO1xuICB9XG5cbiAgQElucHV0KCkgcHJldmVudERlZmF1bHQgPSB0cnVlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBtYXRCdXR0b246IE1hdEJ1dHRvbixcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIG1hdE1lbnVJdGVtOiBNYXRNZW51SXRlbSxcbiAgICBAT3B0aW9uYWwoKSBtYXRNZW51PzogTWF0TWVudVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIE1hdGVyaWFsIGJ1dHRvbnMgYW5kIG1lbnUgaXRlbXMgZG9uJ3QgcmVzcG9uZCB0byB0aGUgZGlzYWJsZWQgYmluZGluZyBzbyB3ZVxuICAgIC8vIG5lZWQgdG8gaW5qZWN0IHRoZW0gZnJvbSBvdXIgaG9zdCBlbGVtZW50IGFuZCBoYW5kbGUgdGhlbSBtYW51YWxseS5cbiAgICB0aGlzLm1hdENvbnRyb2wgPSBtYXRCdXR0b24gfHwgbWF0TWVudUl0ZW07XG4gICAgdGhpcy5pc0luUG9wdXBNZW51ID0gISFtYXRNZW51O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgYXNzZXJ0Lm5vdE5pbCh0aGlzLnBlY3RpbkNvbW1hbmQpO1xuICAgIGlmICh0aGlzLnBlY3RpbkNvbW1hbmQgaW5zdGFuY2VvZiBVbmFyeUNvbW1hbmQpIHtcbiAgICAgIGlmICghdGhpcy5fY29tbWFuZFBhcmFtZXRlclByb3ZpZGVkKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKCdVbmFyeUNvbW1hbmRzIHJlcXVpcmUgdGhlIGNvbW1hbmQgcGFyYW1ldGVyIHRvIGJlIHNwZWNpZmllZC4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2NvbW1hbmRQYXJhbWV0ZXJQcm92aWRlZCkge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnY29tbWFuZCBwYXJhbWV0ZXJzIGFyZSBvbmx5IHN1cHBvcnRlZCBieSBVbmFyeUNvbW1hbmRzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMuX2NvbW1hbmRFbmFibGVkKS5jaGFuZ2VzKGVuYWJsZWQgPT4gdGhpcy51cGRhdGVFbmFibGVkU3RhdGUoZW5hYmxlZCksIHtcbiAgICAgIGluaXRpYWxWYWx1ZTogJ3RyaWdnZXJDaGFuZ2UnXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVFbmFibGVkU3RhdGUoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIC8vIGZvciBzb21lIHJlYXNvbiBtYXQtYnV0dG9ucyBraWxscyB0aGUgZGlzYWJsZWQgaG9zdCBiaW5kaW5nLiAgSXQgd29ya3Mgb24gYSByZWd1bGFyIGJ1dHRvbiBidXQgZm9yIG5vd1xuICAgIC8vIHdlIG5lZWQgdG8gZG8gdGhpcy4gVGhlIHNldCB0aW1lb3V0IGlzIHJlcXVpcmVkIHRvIHByZXZlbnQgdGhlIGJ1dHRvbiBnZXR0aW5nIGEgZXhwcmVzc2lvbiBjaGFuZ2VkXG4gICAgLy8gd2hlbiBpdCdzIGNsaWNrZWQuXG4gICAgLy9cbiAgICAvLyBUaGUgTWF0ZXJpYWwgY29udHJvbCByZWFkcyBgZGlzYWJsZWRgIGluIGl0cyBvd24gaG9zdCBiaW5kaW5ncywgd2hpY2ggYW4gT25QdXNoIHZpZXcgb25seSByZWFkc1xuICAgIC8vIGFnYWluIHdoZW4gaXQncyBjaGVja2VkLCBzbyB0aGUgdmlldyBpcyBtYXJrZWQgZm9yIGNoZWNrIGhlcmUuIFdpdGhvdXQgdGhhdCwgYSBjaGVjayBvZiB0aGUgdmlld1xuICAgIC8vIGJldHdlZW4gYW4gZWFybGllciB0aW1lb3V0IGFuZCB0aGlzIG9uZSAodGhlIGVuYWJsZWQgc3RhdGUgY2hhbmdpbmcgd2hpbGUgYSBuZXcgaW5wdXQgaXMgYXBwbGllZClcbiAgICAvLyBhcHBsaWVkIHRoZSBlYXJsaWVyLCBzdGFsZSBzdGF0ZSwgYW5kIG5vdGhpbmcgY2hlY2tlZCBpdCBhZ2FpbjogdGhlIGJ1dHRvbiBzdGF5ZWQgZGlzYWJsZWQuXG4gICAgaWYgKHRoaXMubWF0Q29udHJvbCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzcG9zZWQoKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hdENvbnRyb2wuZGlzYWJsZWQgPSAhZW5hYmxlZDtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgICBpZiAoIWVuYWJsZWQpIHtcbiAgICAgIC8vIE5vdGU6XG4gICAgICAvLyBXZSBjYW4ndCB1c2UgYSBob3N0IGJpbmRpbmcgaGVyZSBmb3IgZGlzYWJsZWQgYXMgdGhlIGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCBvbiBhcmJpdHJhcnlcbiAgICAgIC8vIGNvbXBvbmVudHMgKGUuZy4gZGl2cykgYW5kIHRoZSBjb21waWxlciB3aWxsIGJhcmYgaWYgd2UgdXNlIHRoZSBob3N0IGJpbmRpbmcuXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7XG4gICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0EnKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0EnKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdqYXZhc2NyaXB0OnZvaWQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuXG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBub3RpZnlDbGljaygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzSW5Qb3B1cE1lbnUpIHtcbiAgICAgIC8vIG1hdGVyaWFsIHBvcHVwIG1lbnVzIHVzZSBidWJibGluZyB0byBjbG9zZSBzbyB3ZSBuZWVkIHRvIGxldCBpdCBidWJibGUgb3JcbiAgICAgIC8vIHRoZSBtZW51IHdvbid0IGNsb3NlXG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGVjdGluQ29tbWFuZC5lbmFibGVkJC52YWx1ZSkge1xuICAgICAgaWYgKHRoaXMucGVjdGluQ29tbWFuZCBpbnN0YW5jZW9mIFVuYXJ5Q29tbWFuZCkge1xuICAgICAgICB0aGlzLnBlY3RpbkNvbW1hbmQud2l0aENvbnRleHQoe2V2ZW50OiAkZXZlbnR9KS5leGVjdXRlKHRoaXMuY29tbWFuZFBhcmFtZXRlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBlY3RpbkNvbW1hbmQud2l0aENvbnRleHQoe2V2ZW50OiAkZXZlbnR9KS5leGVjdXRlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybignZGlzYWJsZWQgY29tbWFuZCBjbGlja2VkLCBpZ25vcmluZy4nKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -163,6 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
163
163
|
/* eslint-disable @typescript-eslint/no-explicit-any -- command directive accepts arbitrary command shapes */
|
|
164
164
|
class CommandDirective extends GarbageCollector {
|
|
165
165
|
elementRef;
|
|
166
|
+
changeDetector;
|
|
166
167
|
_command;
|
|
167
168
|
_commandEnabled = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
168
169
|
matControl;
|
|
@@ -184,9 +185,10 @@ class CommandDirective extends GarbageCollector {
|
|
|
184
185
|
return this._commandParameter;
|
|
185
186
|
}
|
|
186
187
|
preventDefault = true;
|
|
187
|
-
constructor(elementRef, matButton, matMenuItem, matMenu) {
|
|
188
|
+
constructor(elementRef, changeDetector, matButton, matMenuItem, matMenu) {
|
|
188
189
|
super();
|
|
189
190
|
this.elementRef = elementRef;
|
|
191
|
+
this.changeDetector = changeDetector;
|
|
190
192
|
// Material buttons and menu items don't respond to the disabled binding so we
|
|
191
193
|
// need to inject them from our host element and handle them manually.
|
|
192
194
|
this.matControl = matButton || matMenuItem;
|
|
@@ -215,9 +217,18 @@ class CommandDirective extends GarbageCollector {
|
|
|
215
217
|
// for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now
|
|
216
218
|
// we need to do this. The set timeout is required to prevent the button getting a expression changed
|
|
217
219
|
// when it's clicked.
|
|
220
|
+
//
|
|
221
|
+
// The Material control reads `disabled` in its own host bindings, which an OnPush view only reads
|
|
222
|
+
// again when it's checked, so the view is marked for check here. Without that, a check of the view
|
|
223
|
+
// between an earlier timeout and this one (the enabled state changing while a new input is applied)
|
|
224
|
+
// applied the earlier, stale state, and nothing checked it again: the button stayed disabled.
|
|
218
225
|
if (this.matControl) {
|
|
219
226
|
setTimeout(() => {
|
|
227
|
+
if (this.isDisposed()) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
220
230
|
this.matControl.disabled = !enabled;
|
|
231
|
+
this.changeDetector.markForCheck();
|
|
221
232
|
}, 0);
|
|
222
233
|
}
|
|
223
234
|
if (!enabled) {
|
|
@@ -258,7 +269,7 @@ class CommandDirective extends GarbageCollector {
|
|
|
258
269
|
console.warn('disabled command clicked, ignoring.');
|
|
259
270
|
}
|
|
260
271
|
}
|
|
261
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandDirective, deps: [{ token: ElementRef }, { token: i2.MatButton, host: true, optional: true }, { token: i2$1.MatMenuItem, host: true, optional: true }, { token: i2$1.MatMenu, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
272
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandDirective, deps: [{ token: ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.MatButton, host: true, optional: true }, { token: i2$1.MatMenuItem, host: true, optional: true }, { token: i2$1.MatMenu, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
262
273
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: CommandDirective, selector: "[pectinCommand]", inputs: { pectinCommand: "pectinCommand", commandParameter: "commandParameter", preventDefault: "preventDefault" }, host: { listeners: { "click": "notifyClick($event)" } }, usesInheritance: true, ngImport: i0 });
|
|
263
274
|
}
|
|
264
275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandDirective, decorators: [{
|
|
@@ -270,7 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
270
281
|
}], ctorParameters: function () { return [{ type: i0.ElementRef, decorators: [{
|
|
271
282
|
type: Inject,
|
|
272
283
|
args: [ElementRef]
|
|
273
|
-
}] }, { type: i2.MatButton, decorators: [{
|
|
284
|
+
}] }, { type: i0.ChangeDetectorRef }, { type: i2.MatButton, decorators: [{
|
|
274
285
|
type: Host
|
|
275
286
|
}, {
|
|
276
287
|
type: Optional
|