@coolon/angular-ui-powerups 16.1.0-alpha.298 → 16.1.0-alpha.300
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/commands.scss +18 -0
- package/assets/styles.scss +1 -0
- package/esm2022/lib/directives/command.directive.mjs +16 -5
- package/fesm2022/coolon-angular-ui-powerups.mjs +14 -3
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/directives/command.directive.d.ts +4 -3
- package/package.json +1 -1
package/assets/commands.scss
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use '@angular/material' as mat;
|
|
3
|
+
|
|
1
4
|
:root {
|
|
2
5
|
--aup-command-face-icon-gap: 8px;
|
|
3
6
|
}
|
|
7
|
+
|
|
8
|
+
// A face's colour applies in a menu as it does on a button, so a Delete face with `color: warn`
|
|
9
|
+
// reads as warn wherever it is shown. Keyed on the colour attribute aup-command-face sets on itself,
|
|
10
|
+
// which covers aup's own menus and hand-built mat-menus alike. A disabled item keeps Material's
|
|
11
|
+
// faded look.
|
|
12
|
+
@mixin apply-theme($color-config, $typography-config) {
|
|
13
|
+
@each $palette in (primary, accent, warn) {
|
|
14
|
+
$color: mat.get-color-from-palette(map.get($color-config, $palette));
|
|
15
|
+
|
|
16
|
+
.mat-mdc-menu-item:not([disabled]) aup-command-face[color=#{$palette}] {
|
|
17
|
+
color: $color;
|
|
18
|
+
--mat-menu-item-icon-color: #{$color};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
package/assets/styles.scss
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
@include activities.apply-theme($color-config, $typography);
|
|
27
27
|
@include pills.apply-theme($color-config, $typography);
|
|
28
28
|
@include place.apply-theme($color-config, $typography);
|
|
29
|
+
@include commands.apply-theme($color-config, $typography);
|
|
29
30
|
|
|
30
31
|
:root {
|
|
31
32
|
--aup-default-padding: var(--default-padding, 16px);
|
|
@@ -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
|