@ssv/ngx.command 2.2.0 → 2.3.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +7 -7
  2. package/command-ref.directive.d.ts +3 -0
  3. package/command.directive.d.ts +3 -0
  4. package/esm2020/command-ref.directive.mjs +54 -0
  5. package/esm2020/command.directive.mjs +166 -0
  6. package/esm2020/command.mjs +127 -0
  7. package/esm2020/command.model.mjs +2 -0
  8. package/esm2020/command.util.mjs +29 -0
  9. package/esm2020/config.mjs +8 -0
  10. package/esm2020/index.mjs +8 -0
  11. package/esm2020/module.mjs +49 -0
  12. package/esm2020/ssv-ngx.command.mjs +5 -0
  13. package/esm2020/version.mjs +2 -0
  14. package/fesm2015/{ssv-ngx.command.js → ssv-ngx.command.mjs} +66 -45
  15. package/fesm2015/ssv-ngx.command.mjs.map +1 -0
  16. package/fesm2020/ssv-ngx.command.mjs +424 -0
  17. package/fesm2020/ssv-ngx.command.mjs.map +1 -0
  18. package/module.d.ts +6 -0
  19. package/package.json +23 -13
  20. package/version.d.ts +1 -1
  21. package/CHANGELOG.md +0 -216
  22. package/bundles/ssv-ngx.command.umd.js +0 -759
  23. package/bundles/ssv-ngx.command.umd.js.map +0 -1
  24. package/bundles/ssv-ngx.command.umd.min.js +0 -16
  25. package/bundles/ssv-ngx.command.umd.min.js.map +0 -1
  26. package/esm2015/command-ref.directive.js +0 -50
  27. package/esm2015/command.directive.js +0 -156
  28. package/esm2015/command.js +0 -127
  29. package/esm2015/command.model.js +0 -2
  30. package/esm2015/command.util.js +0 -28
  31. package/esm2015/config.js +0 -8
  32. package/esm2015/index.js +0 -8
  33. package/esm2015/module.js +0 -36
  34. package/esm2015/ssv-ngx.command.js +0 -5
  35. package/esm2015/version.js +0 -2
  36. package/fesm2015/ssv-ngx.command.js.map +0 -1
  37. package/ssv-ngx.command.d.ts +0 -4
  38. package/ssv-ngx.command.metadata.json +0 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [commandpatternwiki]: https://en.wikipedia.org/wiki/Command_pattern
7
7
 
8
8
  # @ssv/ngx.command
9
- [![CircleCI](https://circleci.com/gh/sketch7/ngx.command.svg?style=shield)](https://circleci.com/gh/sketch7/ngx.command)
9
+ [![CI](https://github.com/sketch7/ngx.command/actions/workflows/ci.yml/badge.svg)](https://github.com/sketch7/ngx.command/actions/workflows/ci.yml)
10
10
  [![npm version](https://badge.fury.io/js/%40ssv%2Fngx.command.svg)](https://badge.fury.io/js/%40ssv%2Fngx.command)
11
11
 
12
12
  [Command pattern][commandpatternwiki] implementation for angular. Command's are used to encapsulate information which is needed to perform an action.
@@ -27,10 +27,10 @@ npm install @ssv/ngx.command
27
27
 
28
28
  Choose the version corresponding to your Angular version:
29
29
 
30
- | Angular | library |
31
- | ---------------- | ------- |
32
- | 10 | 2.x+ |
33
- | 4 to 9 (non ivy) | 1.x+ |
30
+ | Angular | library |
31
+ | ------- | ------- |
32
+ | 10+ | 2.x+ |
33
+ | 4 to 9 | 1.x+ |
34
34
 
35
35
 
36
36
  # Usage
@@ -186,9 +186,9 @@ import { SsvCommandModule } from "@ssv/ngx.command";
186
186
  ### Setup Machine for Development
187
187
  Install/setup the following:
188
188
 
189
- - NodeJS v10+
189
+ - NodeJS v18.16.0+
190
190
  - Visual Studio Code or similar code editor
191
- - TypeScript 3.1+
191
+ - TypeScript 5.0+
192
192
  - Git + SourceTree, SmartGit or similar (optional)
193
193
  - Ensure to install **global NPM modules** using the following:
194
194
 
@@ -1,5 +1,6 @@
1
1
  import { OnInit, OnDestroy } from "@angular/core";
2
2
  import { ICommand, CommandCreator } from "./command.model";
3
+ import * as i0 from "@angular/core";
3
4
  /**
4
5
  * Command creator ref, directive which allows creating Command in the template
5
6
  * and associate it to a command (in order to share executions).
@@ -23,4 +24,6 @@ export declare class CommandRefDirective implements OnInit, OnDestroy {
23
24
  private _command;
24
25
  ngOnInit(): void;
25
26
  ngOnDestroy(): void;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<CommandRefDirective, never>;
28
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CommandRefDirective, "[ssvCommandRef]", ["ssvCommandRef"], { "commandCreator": "ssvCommandRef"; }, {}, never, never, false, never>;
26
29
  }
@@ -1,6 +1,7 @@
1
1
  import { OnInit, OnDestroy, ElementRef, Renderer2, ChangeDetectorRef } from "@angular/core";
2
2
  import { CommandOptions } from "./config";
3
3
  import { CommandCreator, ICommand } from "./command.model";
4
+ import * as i0 from "@angular/core";
4
5
  export declare class CommandDirective implements OnInit, OnDestroy {
5
6
  private config;
6
7
  private renderer;
@@ -19,4 +20,6 @@ export declare class CommandDirective implements OnInit, OnDestroy {
19
20
  onClick(): void;
20
21
  ngOnDestroy(): void;
21
22
  private trySetDisabled;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<CommandDirective, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CommandDirective, "[ssvCommand]", ["ssvCommand"], { "commandOrCreator": "ssvCommand"; "commandOptions": "ssvCommandOptions"; "commandParams": "ssvCommandParams"; }, {}, never, never, false, never>;
22
25
  }
@@ -0,0 +1,54 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import { isCommandCreator } from "./command.util";
3
+ import { Command } from "./command";
4
+ import * as i0 from "@angular/core";
5
+ const NAME_CAMEL = "ssvCommandRef";
6
+ /**
7
+ * Command creator ref, directive which allows creating Command in the template
8
+ * and associate it to a command (in order to share executions).
9
+ * @example
10
+ * ### Most common usage
11
+ * ```html
12
+ * <div #actionCmd="ssvCommandRef" [ssvCommandRef]="{host: this, execute: removeHero$, canExecute: isValid$}">
13
+ * <button [ssvCommand]="actionCmd.command" [ssvCommandParams]="hero">
14
+ * Remove
15
+ * </button>
16
+ * <button [ssvCommand]="actionCmd.command" [ssvCommandParams]="hero">
17
+ * Remove
18
+ * </button>
19
+ * </div>
20
+ * ```
21
+ *
22
+ */
23
+ export class CommandRefDirective {
24
+ get command() { return this._command; }
25
+ ngOnInit() {
26
+ if (isCommandCreator(this.commandCreator)) {
27
+ const isAsync = this.commandCreator.isAsync || this.commandCreator.isAsync === undefined;
28
+ const execFn = this.commandCreator.execute.bind(this.commandCreator.host);
29
+ this._command = new Command(execFn, this.commandCreator.canExecute, isAsync);
30
+ }
31
+ else {
32
+ throw new Error(`${NAME_CAMEL}: [${NAME_CAMEL}] is not defined properly!`);
33
+ }
34
+ }
35
+ ngOnDestroy() {
36
+ // console.log("[commandRef::destroy]");
37
+ if (this._command) {
38
+ this._command.destroy();
39
+ }
40
+ }
41
+ }
42
+ CommandRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CommandRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
43
+ CommandRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CommandRefDirective, selector: "[ssvCommandRef]", inputs: { commandCreator: ["ssvCommandRef", "commandCreator"] }, exportAs: ["ssvCommandRef"], ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CommandRefDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: `[${NAME_CAMEL}]`,
48
+ exportAs: NAME_CAMEL
49
+ }]
50
+ }], propDecorators: { commandCreator: [{
51
+ type: Input,
52
+ args: [NAME_CAMEL]
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1yZWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmQtcmVmLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFcEMsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDO0FBRW5DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBS0gsTUFBTSxPQUFPLG1CQUFtQjtJQUkvQixJQUFJLE9BQU8sS0FBZSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBR2pELFFBQVE7UUFDUCxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7WUFFekYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUE2QyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hIO2FBQU07WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxNQUFNLFVBQVUsNEJBQTRCLENBQUMsQ0FBQztTQUMzRTtJQUNGLENBQUM7SUFFRCxXQUFXO1FBQ1Ysd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO0lBQ0YsQ0FBQzs7Z0hBdkJXLG1CQUFtQjtvR0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLElBQUksVUFBVSxHQUFHO29CQUMzQixRQUFRLEVBQUUsVUFBVTtpQkFDcEI7OEJBR21CLGNBQWM7c0JBQWhDLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJQ29tbWFuZCwgQ29tbWFuZENyZWF0b3IgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5pbXBvcnQgeyBpc0NvbW1hbmRDcmVhdG9yIH0gZnJvbSBcIi4vY29tbWFuZC51dGlsXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZFwiO1xuXG5jb25zdCBOQU1FX0NBTUVMID0gXCJzc3ZDb21tYW5kUmVmXCI7XG5cbi8qKlxuICogQ29tbWFuZCBjcmVhdG9yIHJlZiwgZGlyZWN0aXZlIHdoaWNoIGFsbG93cyBjcmVhdGluZyBDb21tYW5kIGluIHRoZSB0ZW1wbGF0ZVxuICogYW5kIGFzc29jaWF0ZSBpdCB0byBhIGNvbW1hbmQgKGluIG9yZGVyIHRvIHNoYXJlIGV4ZWN1dGlvbnMpLlxuICogQGV4YW1wbGVcbiAqICMjIyBNb3N0IGNvbW1vbiB1c2FnZVxuICogYGBgaHRtbFxuICogPGRpdiAjYWN0aW9uQ21kPVwic3N2Q29tbWFuZFJlZlwiIFtzc3ZDb21tYW5kUmVmXT1cIntob3N0OiB0aGlzLCBleGVjdXRlOiByZW1vdmVIZXJvJCwgY2FuRXhlY3V0ZTogaXNWYWxpZCR9XCI+XG4gKiAgICA8YnV0dG9uIFtzc3ZDb21tYW5kXT1cImFjdGlvbkNtZC5jb21tYW5kXCIgW3NzdkNvbW1hbmRQYXJhbXNdPVwiaGVyb1wiPlxuICogICAgICBSZW1vdmVcbiAqICAgIDwvYnV0dG9uPlxuICogICAgPGJ1dHRvbiBbc3N2Q29tbWFuZF09XCJhY3Rpb25DbWQuY29tbWFuZFwiIFtzc3ZDb21tYW5kUGFyYW1zXT1cImhlcm9cIj5cbiAqICAgICAgIFJlbW92ZVxuICogICAgPC9idXR0b24+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiBgWyR7TkFNRV9DQU1FTH1dYCxcblx0ZXhwb3J0QXM6IE5BTUVfQ0FNRUxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbWFuZFJlZkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuXHRASW5wdXQoTkFNRV9DQU1FTCkgY29tbWFuZENyZWF0b3I6IENvbW1hbmRDcmVhdG9yIHwgdW5kZWZpbmVkO1xuXG5cdGdldCBjb21tYW5kKCk6IElDb21tYW5kIHsgcmV0dXJuIHRoaXMuX2NvbW1hbmQ7IH1cblx0cHJpdmF0ZSBfY29tbWFuZCE6IElDb21tYW5kO1xuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGlmIChpc0NvbW1hbmRDcmVhdG9yKHRoaXMuY29tbWFuZENyZWF0b3IpKSB7XG5cdFx0XHRjb25zdCBpc0FzeW5jID0gdGhpcy5jb21tYW5kQ3JlYXRvci5pc0FzeW5jIHx8IHRoaXMuY29tbWFuZENyZWF0b3IuaXNBc3luYyA9PT0gdW5kZWZpbmVkO1xuXG5cdFx0XHRjb25zdCBleGVjRm4gPSB0aGlzLmNvbW1hbmRDcmVhdG9yLmV4ZWN1dGUuYmluZCh0aGlzLmNvbW1hbmRDcmVhdG9yLmhvc3QpO1xuXHRcdFx0dGhpcy5fY29tbWFuZCA9IG5ldyBDb21tYW5kKGV4ZWNGbiwgdGhpcy5jb21tYW5kQ3JlYXRvci5jYW5FeGVjdXRlIGFzIE9ic2VydmFibGU8Ym9vbGVhbj4gfCB1bmRlZmluZWQsIGlzQXN5bmMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYCR7TkFNRV9DQU1FTH06IFske05BTUVfQ0FNRUx9XSBpcyBub3QgZGVmaW5lZCBwcm9wZXJseSFgKTtcblx0XHR9XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHQvLyBjb25zb2xlLmxvZyhcIltjb21tYW5kUmVmOjpkZXN0cm95XVwiKTtcblx0XHRpZiAodGhpcy5fY29tbWFuZCkge1xuXHRcdFx0dGhpcy5fY29tbWFuZC5kZXN0cm95KCk7XG5cdFx0fVxuXHR9XG5cbn1cbiJdfQ==
@@ -0,0 +1,166 @@
1
+ import { Directive, Input, HostListener, Inject, } from "@angular/core";
2
+ import { Subject } from "rxjs";
3
+ import { tap, delay, takeUntil } from "rxjs/operators";
4
+ import { COMMAND_CONFIG } from "./config";
5
+ import { Command } from "./command";
6
+ import { isCommand, isCommandCreator } from "./command.util";
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Controls the state of a component in sync with `Command`.
10
+ *
11
+ * @example
12
+ * ### Most common usage
13
+ * ```html
14
+ * <button [ssvCommand]="saveCmd">Save</button>
15
+ * ```
16
+ *
17
+ *
18
+ * ### Usage with options
19
+ * ```html
20
+ * <button [ssvCommand]="saveCmd" [ssvCommandOptions]="{executingCssClass: 'in-progress'}">Save</button>
21
+ * ```
22
+ *
23
+ *
24
+ * ### Usage with params
25
+ * This is useful for collections (loops) or using multiple actions with different args.
26
+ * *NOTE: This will share the `isExecuting` when used with multiple controls.*
27
+ *
28
+ * #### With single param
29
+ *
30
+ * ```html
31
+ * <button [ssvCommand]="saveCmd" [ssvCommandParams]="{id: 1}">Save</button>
32
+ * ```
33
+ * *NOTE: if you have only 1 argument as an array, it should be enclosed within an array e.g. `[['apple', 'banana']]`,
34
+ * else it will spread and you will `arg1: "apple", arg2: "banana"`*
35
+ *
36
+ * #### With multi params
37
+ * ```html
38
+ * <button [ssvCommand]="saveCmd" [ssvCommandParams]="[{id: 1}, 'hello', hero]">Save</button>
39
+ * ```
40
+ *
41
+ * ### Usage with Command Creator
42
+ * This is useful for collections (loops) or using multiple actions with different args, whilst not sharing `isExecuting`.
43
+ *
44
+ *
45
+ * ```html
46
+ * <button [ssvCommand]="{host: this, execute: removeHero$, canExecute: isValid$, params: [hero, 1337, 'xx']}">Save</button>
47
+ * ```
48
+ *
49
+ */
50
+ const NAME_CAMEL = "ssvCommand";
51
+ // let nextUniqueId = 0;
52
+ export class CommandDirective {
53
+ constructor(config, renderer, element, cdr) {
54
+ this.config = config;
55
+ this.renderer = renderer;
56
+ this.element = element;
57
+ this.cdr = cdr;
58
+ this._commandOptions = this.config;
59
+ this._destroy$ = new Subject();
60
+ }
61
+ get commandOptions() { return this._commandOptions; }
62
+ set commandOptions(value) {
63
+ if (value === this._commandOptions) {
64
+ return;
65
+ }
66
+ this._commandOptions = {
67
+ ...this.config,
68
+ ...value,
69
+ };
70
+ }
71
+ get command() { return this._command; }
72
+ ngOnInit() {
73
+ // console.log("[ssvCommand::init]", this.config);
74
+ if (!this.commandOrCreator) {
75
+ throw new Error(`${NAME_CAMEL}: [${NAME_CAMEL}] should be defined!`);
76
+ }
77
+ else if (isCommand(this.commandOrCreator)) {
78
+ this._command = this.commandOrCreator;
79
+ }
80
+ else if (isCommandCreator(this.commandOrCreator)) {
81
+ const isAsync = this.commandOrCreator.isAsync || this.commandOrCreator.isAsync === undefined;
82
+ // todo: find something like this for ivy (or angular10+)
83
+ // const hostComponent = (this.viewContainer as any)._view.component;
84
+ const execFn = this.commandOrCreator.execute.bind(this.commandOrCreator.host);
85
+ this.commandParams = this.commandParams || this.commandOrCreator.params;
86
+ const canExec = this.commandOrCreator.canExecute instanceof Function
87
+ ? this.commandOrCreator.canExecute.bind(this.commandOrCreator.host, this.commandParams)()
88
+ : this.commandOrCreator.canExecute;
89
+ // console.log("[ssvCommand::init] command creator", {
90
+ // firstParam: this.commandParams ? this.commandParams[0] : null,
91
+ // params: this.commandParams
92
+ // });
93
+ this._command = new Command(execFn, canExec, isAsync);
94
+ }
95
+ else {
96
+ throw new Error(`${NAME_CAMEL}: [${NAME_CAMEL}] is not defined properly!`);
97
+ }
98
+ this._command.subscribe();
99
+ this._command.canExecute$.pipe(this.commandOptions.hasDisabledDelay
100
+ ? delay(1)
101
+ : tap(() => { }), tap(x => {
102
+ this.trySetDisabled(!x);
103
+ // console.log("[ssvCommand::canExecute$]", { canExecute: x });
104
+ this.cdr.markForCheck();
105
+ }), takeUntil(this._destroy$)).subscribe();
106
+ if (this._command.isExecuting$) {
107
+ this._command.isExecuting$.pipe(tap(x => {
108
+ // console.log("[ssvCommand::isExecuting$]", x, this.commandOptions);
109
+ if (x) {
110
+ this.renderer.addClass(this.element.nativeElement, this.commandOptions.executingCssClass);
111
+ }
112
+ else {
113
+ this.renderer.removeClass(this.element.nativeElement, this.commandOptions.executingCssClass);
114
+ }
115
+ }), takeUntil(this._destroy$)).subscribe();
116
+ }
117
+ }
118
+ onClick() {
119
+ // console.log("[ssvCommand::onClick]", this.commandParams);
120
+ if (Array.isArray(this.commandParams)) {
121
+ this._command.execute(...this.commandParams);
122
+ }
123
+ else {
124
+ this._command.execute(this.commandParams);
125
+ }
126
+ }
127
+ ngOnDestroy() {
128
+ // console.log("[ssvCommand::destroy]");
129
+ this._destroy$.next();
130
+ this._destroy$.complete();
131
+ if (this._command) {
132
+ this._command.unsubscribe();
133
+ }
134
+ }
135
+ trySetDisabled(disabled) {
136
+ if (this.commandOptions.handleDisabled) {
137
+ // console.warn(">>>> disabled", { id: this.id, disabled });
138
+ this.renderer.setProperty(this.element.nativeElement, "disabled", disabled);
139
+ }
140
+ }
141
+ }
142
+ CommandDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CommandDirective, deps: [{ token: COMMAND_CONFIG }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
143
+ CommandDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: CommandDirective, selector: "[ssvCommand]", inputs: { commandOrCreator: ["ssvCommand", "commandOrCreator"], commandOptions: ["ssvCommandOptions", "commandOptions"], commandParams: ["ssvCommandParams", "commandParams"] }, host: { listeners: { "click": "onClick()" } }, exportAs: ["ssvCommand"], ngImport: i0 });
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CommandDirective, decorators: [{
145
+ type: Directive,
146
+ args: [{
147
+ selector: `[${NAME_CAMEL}]`,
148
+ exportAs: NAME_CAMEL
149
+ }]
150
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
151
+ type: Inject,
152
+ args: [COMMAND_CONFIG]
153
+ }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { commandOrCreator: [{
154
+ type: Input,
155
+ args: [NAME_CAMEL]
156
+ }], commandOptions: [{
157
+ type: Input,
158
+ args: [`${NAME_CAMEL}Options`]
159
+ }], commandParams: [{
160
+ type: Input,
161
+ args: [`${NAME_CAMEL}Params`]
162
+ }], onClick: [{
163
+ type: HostListener,
164
+ args: ["click"]
165
+ }] } });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFHVCxLQUFLLEVBQ0wsWUFBWSxFQUVaLE1BQU0sR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBa0IsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUc3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q0c7QUFFSCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFFaEMsd0JBQXdCO0FBTXhCLE1BQU0sT0FBTyxnQkFBZ0I7SUF5QjVCLFlBQ2lDLE1BQXNCLEVBQzlDLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLEdBQXNCO1FBSEUsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBUHZCLG9CQUFlLEdBQW1CLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQztJQXhCTCxJQUNJLGNBQWMsS0FBcUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNyRSxJQUFJLGNBQWMsQ0FBQyxLQUFxQjtRQUN2QyxJQUFJLEtB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R0ExQlgsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLElBQUksVUFBVSxHQUFHO29CQUMzQixRQUFRLEVBQUUsVUFBVTtpQkFDcEI7OzBCQTJCRSxNQUFNOzJCQUFDLGNBQWM7NkhBdEJKLGdCQUFnQjtzQkFBbEMsS0FBSzt1QkFBQyxVQUFVO2dCQUdiLGNBQWM7c0JBRGpCLEtBQUs7dUJBQUMsR0FBRyxVQUFVLFNBQVM7Z0JBWUMsYUFBYTtzQkFBMUMsS0FBSzt1QkFBQyxHQUFHLFVBQVUsUUFBUTtnQkE2RTVCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGlyZWN0aXZlLFxuXHRPbkluaXQsXG5cdE9uRGVzdHJveSxcblx0SW5wdXQsXG5cdEhvc3RMaXN0ZW5lcixcblx0RWxlbWVudFJlZixcblx0SW5qZWN0LFxuXHRSZW5kZXJlcjIsXG5cdENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YXAsIGRlbGF5LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgQ29tbWFuZE9wdGlvbnMsIENPTU1BTkRfQ09ORklHIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZFwiO1xuaW1wb3J0IHsgaXNDb21tYW5kLCBpc0NvbW1hbmRDcmVhdG9yIH0gZnJvbSBcIi4vY29tbWFuZC51dGlsXCI7XG5pbXBvcnQgeyBDb21tYW5kQ3JlYXRvciwgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5cbi8qKlxuICogQ29udHJvbHMgdGhlIHN0YXRlIG9mIGEgY29tcG9uZW50IGluIHN5bmMgd2l0aCBgQ29tbWFuZGAuXG4gKlxuICogQGV4YW1wbGVcbiAqICMjIyBNb3N0IGNvbW1vbiB1c2FnZVxuICogYGBgaHRtbFxuICogPGJ1dHRvbiBbc3N2Q29tbWFuZF09XCJzYXZlQ21kXCI+U2F2ZTwvYnV0dG9uPlxuICogYGBgXG4gKlxuICpcbiAqICMjIyBVc2FnZSB3aXRoIG9wdGlvbnNcbiAqIGBgYGh0bWxcbiAqIDxidXR0b24gW3NzdkNvbW1hbmRdPVwic2F2ZUNtZFwiIFtzc3ZDb21tYW5kT3B0aW9uc109XCJ7ZXhlY3V0aW5nQ3NzQ2xhc3M6ICdpbi1wcm9ncmVzcyd9XCI+U2F2ZTwvYnV0dG9uPlxuICogYGBgXG4gKlxuICpcbiAqICMjIyBVc2FnZSB3aXRoIHBhcmFtc1xuICogVGhpcyBpcyB1c2VmdWwgZm9yIGNvbGxlY3Rpb25zIChsb29wcykgb3IgdXNpbmcgbXVsdGlwbGUgYWN0aW9ucyB3aXRoIGRpZmZlcmVudCBhcmdzLlxuICogKk5PVEU6IFRoaXMgd2lsbCBzaGFyZSB0aGUgYGlzRXhlY3V0aW5nYCB3aGVuIHVzZWQgd2l0aCBtdWx0aXBsZSBjb250cm9scy4qXG4gKlxuICogIyMjIyBXaXRoIHNpbmdsZSBwYXJhbVxuICpcbiAqIGBgYGh0bWxcbiAqIDxidXR0b24gW3NzdkNvbW1hbmRdPVwic2F2ZUNtZFwiIFtzc3ZDb21tYW5kUGFyYW1zXT1cIntpZDogMX1cIj5TYXZlPC9idXR0b24+XG4gKiBgYGBcbiAqICpOT1RFOiBpZiB5b3UgaGF2ZSBvbmx5IDEgYXJndW1lbnQgYXMgYW4gYXJyYXksIGl0IHNob3VsZCBiZSBlbmNsb3NlZCB3aXRoaW4gYW4gYXJyYXkgZS5nLiBgW1snYXBwbGUnLCAnYmFuYW5hJ11dYCxcbiAqIGVsc2UgaXQgd2lsbCBzcHJlYWQgYW5kIHlvdSB3aWxsIGBhcmcxOiBcImFwcGxlXCIsIGFyZzI6IFwiYmFuYW5hXCJgKlxuICpcbiAgKiAjIyMjIFdpdGggbXVsdGkgcGFyYW1zXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIFtzc3ZDb21tYW5kXT1cInNhdmVDbWRcIiBbc3N2Q29tbWFuZFBhcmFtc109XCJbe2lkOiAxfSwgJ2hlbGxvJywgaGVyb11cIj5TYXZlPC9idXR0b24+XG4gKiBgYGBcbiAqXG4gKiAjIyMgVXNhZ2Ugd2l0aCBDb21tYW5kIENyZWF0b3JcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBjb2xsZWN0aW9ucyAobG9vcHMpIG9yIHVzaW5nIG11bHRpcGxlIGFjdGlvbnMgd2l0aCBkaWZmZXJlbnQgYXJncywgd2hpbHN0IG5vdCBzaGFyaW5nIGBpc0V4ZWN1dGluZ2AuXG4gKlxuICpcbiAqIGBgYGh0bWxcbiAqIDxidXR0b24gW3NzdkNvbW1hbmRdPVwie2hvc3Q6IHRoaXMsIGV4ZWN1dGU6IHJlbW92ZUhlcm8kLCBjYW5FeGVjdXRlOiBpc1ZhbGlkJCwgcGFyYW1zOiBbaGVybywgMTMzNywgJ3h4J119XCI+U2F2ZTwvYnV0dG9uPlxuICogYGBgXG4gKlxuICovXG5cbmNvbnN0IE5BTUVfQ0FNRUwgPSBcInNzdkNvbW1hbmRcIjtcblxuLy8gbGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogYFske05BTUVfQ0FNRUx9XWAsXG5cdGV4cG9ydEFzOiBOQU1FX0NBTUVMXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cblx0Ly8gcmVhZG9ubHkgaWQgPSBgJHtOQU1FX0NBTUVMfS0ke25leHRVbmlxdWVJZCsrfWA7XG5cblx0QElucHV0KE5BTUVfQ0FNRUwpIGNvbW1hbmRPckNyZWF0b3I6IElDb21tYW5kIHwgQ29tbWFuZENyZWF0b3IgfCB1bmRlZmluZWQ7XG5cblx0QElucHV0KGAke05BTUVfQ0FNRUx9T3B0aW9uc2ApXG5cdGdldCBjb21tYW5kT3B0aW9ucygpOiBDb21tYW5kT3B0aW9ucyB7IHJldHVybiB0aGlzLl9jb21tYW5kT3B0aW9uczsgfVxuXHRzZXQgY29tbWFuZE9wdGlvbnModmFsdWU6IENvbW1hbmRPcHRpb25zKSB7XG5cdFx0aWYgKHZhbHVlID09PSB0aGlzLl9jb21tYW5kT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9jb21tYW5kT3B0aW9ucyA9IHtcblx0XHRcdC4uLnRoaXMuY29uZmlnLFxuXHRcdFx0Li4udmFsdWUsXG5cdFx0fTtcblx0fVxuXG5cdEBJbnB1dChgJHtOQU1FX0NBTUVMfVBhcmFtc2ApIGNvbW1hbmRQYXJhbXM6IHVua25vd24gfCB1bmtub3duW107XG5cblx0Z2V0IGNvbW1hbmQoKTogSUNvbW1hbmQgeyByZXR1cm4gdGhpcy5fY29tbWFuZDsgfVxuXHRwcml2YXRlIF9jb21tYW5kITogSUNvbW1hbmQ7XG5cdHByaXZhdGUgX2NvbW1hbmRPcHRpb25zOiBDb21tYW5kT3B0aW9ucyA9IHRoaXMuY29uZmlnO1xuXHRwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QEluamVjdChDT01NQU5EX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IENvbW1hbmRPcHRpb25zLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHQpIHsgfVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdC8vIGNvbnNvbGUubG9nKFwiW3NzdkNvbW1hbmQ6OmluaXRdXCIsIHRoaXMuY29uZmlnKTtcblx0XHRpZiAoIXRoaXMuY29tbWFuZE9yQ3JlYXRvcikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGAke05BTUVfQ0FNRUx9OiBbJHtOQU1FX0NBTUVMfV0gc2hvdWxkIGJlIGRlZmluZWQhYCk7XG5cdFx0fSBlbHNlIGlmIChpc0NvbW1hbmQodGhpcy5jb21tYW5kT3JDcmVhdG9yKSkge1xuXHRcdFx0dGhpcy5fY29tbWFuZCA9IHRoaXMuY29tbWFuZE9yQ3JlYXRvcjtcblx0XHR9IGVsc2UgaWYgKGlzQ29tbWFuZENyZWF0b3IodGhpcy5jb21tYW5kT3JDcmVhdG9yKSkge1xuXHRcdFx0Y29uc3QgaXNBc3luYyA9IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5pc0FzeW5jIHx8IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5pc0FzeW5jID09PSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIHRvZG86IGZpbmQgc29tZXRoaW5nIGxpa2UgdGhpcyBmb3IgaXZ5IChvciBhbmd1bGFyMTArKVxuXHRcdFx0Ly8gY29uc3QgaG9zdENvbXBvbmVudCA9ICh0aGlzLnZpZXdDb250YWluZXIgYXMgYW55KS5fdmlldy5jb21wb25lbnQ7XG5cblx0XHRcdGNvbnN0IGV4ZWNGbiA9IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5leGVjdXRlLmJpbmQodGhpcy5jb21tYW5kT3JDcmVhdG9yLmhvc3QpO1xuXHRcdFx0dGhpcy5jb21tYW5kUGFyYW1zID0gdGhpcy5jb21tYW5kUGFyYW1zIHx8IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5wYXJhbXM7XG5cblx0XHRcdGNvbnN0IGNhbkV4ZWMgPSB0aGlzLmNvbW1hbmRPckNyZWF0b3IuY2FuRXhlY3V0ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uXG5cdFx0XHRcdD8gdGhpcy5jb21tYW5kT3JDcmVhdG9yLmNhbkV4ZWN1dGUuYmluZCh0aGlzLmNvbW1hbmRPckNyZWF0b3IuaG9zdCwgdGhpcy5jb21tYW5kUGFyYW1zKSgpXG5cdFx0XHRcdDogdGhpcy5jb21tYW5kT3JDcmVhdG9yLmNhbkV4ZWN1dGU7XG5cblx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW3NzdkNvbW1hbmQ6OmluaXRdIGNvbW1hbmQgY3JlYXRvclwiLCB7XG5cdFx0XHQvLyBcdGZpcnN0UGFyYW06IHRoaXMuY29tbWFuZFBhcmFtcyA/IHRoaXMuY29tbWFuZFBhcmFtc1swXSA6IG51bGwsXG5cdFx0XHQvLyBcdHBhcmFtczogdGhpcy5jb21tYW5kUGFyYW1zXG5cdFx0XHQvLyB9KTtcblx0XHRcdHRoaXMuX2NvbW1hbmQgPSBuZXcgQ29tbWFuZChleGVjRm4sIGNhbkV4ZWMsIGlzQXN5bmMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYCR7TkFNRV9DQU1FTH06IFske05BTUVfQ0FNRUx9XSBpcyBub3QgZGVmaW5lZCBwcm9wZXJseSFgKTtcblx0XHR9XG5cblx0XHR0aGlzLl9jb21tYW5kLnN1YnNjcmliZSgpO1xuXHRcdHRoaXMuX2NvbW1hbmQuY2FuRXhlY3V0ZSQucGlwZShcblx0XHRcdHRoaXMuY29tbWFuZE9wdGlvbnMuaGFzRGlzYWJsZWREZWxheVxuXHRcdFx0XHQ/IGRlbGF5KDEpXG5cdFx0XHRcdDogdGFwKCgpID0+IHsgLyogc3R1YiAqLyB9KSxcblx0XHRcdHRhcCh4ID0+IHtcblx0XHRcdFx0dGhpcy50cnlTZXREaXNhYmxlZCgheCk7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW3NzdkNvbW1hbmQ6OmNhbkV4ZWN1dGUkXVwiLCB7IGNhbkV4ZWN1dGU6IHggfSk7XG5cdFx0XHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0fSksXG5cdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuXHRcdCkuc3Vic2NyaWJlKCk7XG5cblx0XHRpZiAodGhpcy5fY29tbWFuZC5pc0V4ZWN1dGluZyQpIHtcblx0XHRcdHRoaXMuX2NvbW1hbmQuaXNFeGVjdXRpbmckLnBpcGUoXG5cdFx0XHRcdHRhcCh4ID0+IHtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIltzc3ZDb21tYW5kOjppc0V4ZWN1dGluZyRdXCIsIHgsIHRoaXMuY29tbWFuZE9wdGlvbnMpO1xuXHRcdFx0XHRcdGlmICh4KSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuXHRcdFx0XHRcdFx0XHR0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0XHRcdFx0dGhpcy5jb21tYW5kT3B0aW9ucy5leGVjdXRpbmdDc3NDbGFzc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcblx0XHRcdFx0XHRcdFx0dGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdFx0XHRcdHRoaXMuY29tbWFuZE9wdGlvbnMuZXhlY3V0aW5nQ3NzQ2xhc3Ncblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcblx0XHRcdCkuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG5cdG9uQ2xpY2soKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS5sb2coXCJbc3N2Q29tbWFuZDo6b25DbGlja11cIiwgdGhpcy5jb21tYW5kUGFyYW1zKTtcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmNvbW1hbmRQYXJhbXMpKSB7XG5cdFx0XHR0aGlzLl9jb21tYW5kLmV4ZWN1dGUoLi4udGhpcy5jb21tYW5kUGFyYW1zKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fY29tbWFuZC5leGVjdXRlKHRoaXMuY29tbWFuZFBhcmFtcyk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS5sb2coXCJbc3N2Q29tbWFuZDo6ZGVzdHJveV1cIik7XG5cdFx0dGhpcy5fZGVzdHJveSQubmV4dCgpO1xuXHRcdHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cdFx0aWYgKHRoaXMuX2NvbW1hbmQpIHtcblx0XHRcdHRoaXMuX2NvbW1hbmQudW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHRyeVNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuY29tbWFuZE9wdGlvbnMuaGFuZGxlRGlzYWJsZWQpIHtcblx0XHRcdC8vIGNvbnNvbGUud2FybihcIj4+Pj4gZGlzYWJsZWRcIiwgeyBpZDogdGhpcy5pZCwgZGlzYWJsZWQgfSk7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBcImRpc2FibGVkXCIsIGRpc2FibGVkKTtcblx0XHR9XG5cdH1cblxufVxuXG4iXX0=
@@ -0,0 +1,127 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { combineLatest, Subscription, Subject, BehaviorSubject, of, EMPTY } from "rxjs";
3
+ import { tap, map, filter, switchMap, catchError, finalize, take } from "rxjs/operators";
4
+ /**
5
+ * Command object used to encapsulate information which is needed to perform an action.
6
+ */
7
+ export class Command {
8
+ /**
9
+ * Creates an instance of Command.
10
+ *
11
+ * @param execute Execute function to invoke - use `isAsync: true` when `Observable<any>`.
12
+ * @param canExecute Observable which determines whether it can execute or not.
13
+ * @param isAsync Indicates that the execute function is async e.g. Observable.
14
+ */
15
+ constructor(execute, canExecute$, isAsync) {
16
+ /** Determines whether to auto destroy when having 0 subscribers. */
17
+ this.autoDestroy = true;
18
+ this._isExecuting$ = new BehaviorSubject(false);
19
+ this._isExecuting = false;
20
+ this._canExecute = true;
21
+ this.executionPipe$ = new Subject();
22
+ this.isExecuting$$ = Subscription.EMPTY;
23
+ this.canExecute$$ = Subscription.EMPTY;
24
+ this.executionPipe$$ = Subscription.EMPTY;
25
+ this.subscribersCount = 0;
26
+ if (canExecute$) {
27
+ this.canExecute$ = combineLatest([
28
+ this._isExecuting$,
29
+ canExecute$
30
+ ]).pipe(map(([isExecuting, canExecuteResult]) => {
31
+ // console.log("[command::combineLatest$] update!", { isExecuting, canExecuteResult });
32
+ this._isExecuting = isExecuting;
33
+ this._canExecute = !isExecuting && !!canExecuteResult;
34
+ return this._canExecute;
35
+ }));
36
+ this.canExecute$$ = this.canExecute$.subscribe();
37
+ }
38
+ else {
39
+ this.canExecute$ = this._isExecuting$.pipe(map(x => {
40
+ const canExecute = !x;
41
+ this._canExecute = canExecute;
42
+ return canExecute;
43
+ }));
44
+ this.isExecuting$$ = this._isExecuting$
45
+ .pipe(tap(x => this._isExecuting = x))
46
+ .subscribe();
47
+ }
48
+ this.executionPipe$$ = this.buildExecutionPipe(execute, isAsync).subscribe();
49
+ }
50
+ /** Determines whether the command is currently executing, as a snapshot value. */
51
+ get isExecuting() {
52
+ return this._isExecuting;
53
+ }
54
+ /** Determines whether the command can execute or not, as a snapshot value. */
55
+ get canExecute() {
56
+ return this._canExecute;
57
+ }
58
+ /** Determines whether the command is currently executing, as an observable. */
59
+ get isExecuting$() {
60
+ return this._isExecuting$.asObservable();
61
+ }
62
+ /** Execute function to invoke. */
63
+ execute(...args) {
64
+ // console.warn("[command::execute]", args);
65
+ this.executionPipe$.next(args);
66
+ }
67
+ /** Disposes all resources held by subscriptions. */
68
+ destroy() {
69
+ // console.warn("[command::destroy]");
70
+ this.executionPipe$$.unsubscribe();
71
+ this.canExecute$$.unsubscribe();
72
+ this.isExecuting$$.unsubscribe();
73
+ }
74
+ subscribe() {
75
+ this.subscribersCount++;
76
+ }
77
+ unsubscribe() {
78
+ this.subscribersCount--;
79
+ // console.log("[command::unsubscribe]", { autoDestroy: this.autoDestroy, subscribersCount: this.subscribersCount });
80
+ if (this.autoDestroy && this.subscribersCount <= 0) {
81
+ this.destroy();
82
+ }
83
+ }
84
+ buildExecutionPipe(execute, isAsync) {
85
+ let pipe$ = this.executionPipe$.pipe(
86
+ // tap(x => console.warn(">>>> executionPipe", this._canExecute)),
87
+ filter(() => this._canExecute), tap(() => {
88
+ // console.log("[command::executionPipe$] do#1 - set execute", { args: x });
89
+ this._isExecuting$.next(true);
90
+ }));
91
+ const execFn = isAsync
92
+ ? switchMap(args => {
93
+ if (args) {
94
+ return execute(...args);
95
+ }
96
+ return execute();
97
+ })
98
+ : tap((args) => {
99
+ if (args) {
100
+ execute(...args);
101
+ return;
102
+ }
103
+ execute();
104
+ });
105
+ pipe$ = pipe$.pipe(switchMap(args => of(args).pipe(execFn, finalize(() => {
106
+ // console.log("[command::executionPipe$] finalize inner#1 - set idle");
107
+ this._isExecuting$.next(false);
108
+ }), take(1), catchError(error => {
109
+ console.error("Unhandled execute error", error);
110
+ return EMPTY;
111
+ }))), tap(() => {
112
+ // console.log("[command::executionPipe$] tap#2 - set idle");
113
+ this._isExecuting$.next(false);
114
+ }));
115
+ return pipe$;
116
+ }
117
+ }
118
+ /**
119
+ * Async Command object used to encapsulate information which is needed to perform an action,
120
+ * which takes an execute function as Observable/Promise.
121
+ */
122
+ export class CommandAsync extends Command {
123
+ constructor(execute, canExecute$) {
124
+ super(execute, canExecute$, true);
125
+ }
126
+ }
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFnQ25COzs7Ozs7T0FNRztJQUNILFlBQ0MsT0FBd0MsRUFDeEMsV0FBaUMsRUFDakMsT0FBaUI7UUF6QmxCLG9FQUFvRTtRQUNwRSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUtYLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNyQyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFjNUIsSUFBSSxXQUFXLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhO2dCQUNsQixXQUFXO2FBQ1gsQ0FBQyxDQUFDLElBQUksQ0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLHVGQUF1RjtnQkFDdkYsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDO2dCQUN0RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNqRDthQUFNO1lBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDekMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNQLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztnQkFDOUIsT0FBTyxVQUFVLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQ0YsQ0FBQztZQUNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWE7aUJBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNyQyxTQUFTLEVBQUUsQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlFLENBQUM7SUFwRUQsa0ZBQWtGO0lBQ2xGLElBQUksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxQixDQUFDO0lBRUQsOEVBQThFO0lBQzlFLElBQUksVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN6QixDQUFDO0lBRUQsK0VBQStFO0lBQy9FLElBQUksWUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBeURELGtDQUFrQztJQUNsQyxPQUFPLENBQUMsR0FBRyxJQUFlO1FBQ3pCLDRDQUE0QztRQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELE9BQU87UUFDTixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDUixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLHFIQUFxSDtRQUNySCxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDZjtJQUNGLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFvQyxFQUFFLE9BQWlCO1FBQ2pGLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSTtRQUNuQyxrRUFBa0U7UUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDOUIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNSLDRFQUE0RTtZQUM1RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FDRixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsT0FBTztZQUNyQixDQUFDLENBQUMsU0FBUyxDQUErQixJQUFJLENBQUMsRUFBRTtnQkFDaEQsSUFBSSxJQUFJLEVBQUU7b0JBQ1QsT0FBTyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztpQkFDeEI7Z0JBQ0QsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUNsQixDQUFDLENBQUM7WUFDRixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBMkIsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLElBQUksRUFBRTtvQkFDVCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDakIsT0FBTztpQkFDUDtnQkFDRCxPQUFPLEVBQUUsQ0FBQztZQUNYLENBQUMsQ0FBQyxDQUFDO1FBRUosS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzlCLE1BQU0sRUFDTixRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2IseUVBQXlFO1lBQ3pFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNGLENBQUMsRUFDRixHQUFHLENBQ0YsR0FBRyxFQUFFO1lBQ0osNkRBQTZEO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FDRCxDQUNELENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7Q0FFRDtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsT0FBTztJQUV4QyxZQUNDLE9BQXVFLEVBQ3ZFLFdBQWlDO1FBRWpDLEtBQUssQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FFRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0LCBvZiwgRU1QVFkgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFwLCBtYXAsIGZpbHRlciwgc3dpdGNoTWFwLCBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5cbi8qKlxuICogQ29tbWFuZCBvYmplY3QgdXNlZCB0byBlbmNhcHN1bGF0ZSBpbmZvcm1hdGlvbiB3aGljaCBpcyBuZWVkZWQgdG8gcGVyZm9ybSBhbiBhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tYW5kIGltcGxlbWVudHMgSUNvbW1hbmQge1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0Z2V0IGlzRXhlY3V0aW5nKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9pc0V4ZWN1dGluZztcblx0fVxuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3Igbm90LCBhcyBhIHNuYXBzaG90IHZhbHVlLiAqL1xuXHRnZXQgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fY2FuRXhlY3V0ZTtcblx0fVxuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYW4gb2JzZXJ2YWJsZS4gKi9cblx0Z2V0IGlzRXhlY3V0aW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gdGhpcy5faXNFeGVjdXRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXHR9XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0byBhdXRvIGRlc3Ryb3kgd2hlbiBoYXZpbmcgMCBzdWJzY3JpYmVycy4gKi9cblx0YXV0b0Rlc3Ryb3kgPSB0cnVlO1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3Igbm90LCBhcyBhbiBvYnNlcnZhYmxlLiAqL1xuXHRyZWFkb25seSBjYW5FeGVjdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXHRwcml2YXRlIF9pc0V4ZWN1dGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHJpdmF0ZSBfaXNFeGVjdXRpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBfY2FuRXhlY3V0ZSA9IHRydWU7XG5cdHByaXZhdGUgZXhlY3V0aW9uUGlwZSQgPSBuZXcgU3ViamVjdDx1bmtub3duW10gfCB1bmRlZmluZWQ+KCk7XG5cdHByaXZhdGUgaXNFeGVjdXRpbmckJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblx0cHJpdmF0ZSBjYW5FeGVjdXRlJCQgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cdHByaXZhdGUgZXhlY3V0aW9uUGlwZSQkID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXHRwcml2YXRlIHN1YnNjcmliZXJzQ291bnQgPSAwO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIENvbW1hbmQuXG5cdCAqXG5cdCAqIEBwYXJhbSBleGVjdXRlIEV4ZWN1dGUgZnVuY3Rpb24gdG8gaW52b2tlIC0gdXNlIGBpc0FzeW5jOiB0cnVlYCB3aGVuIGBPYnNlcnZhYmxlPGFueT5gLlxuXHQgKiBAcGFyYW0gY2FuRXhlY3V0ZSBPYnNlcnZhYmxlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciBpdCBjYW4gZXhlY3V0ZSBvciBub3QuXG5cdCAqIEBwYXJhbSBpc0FzeW5jIEluZGljYXRlcyB0aGF0IHRoZSBleGVjdXRlIGZ1bmN0aW9uIGlzIGFzeW5jIGUuZy4gT2JzZXJ2YWJsZS5cblx0ICovXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGV4ZWN1dGU6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24sXG5cdFx0Y2FuRXhlY3V0ZSQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuXHRcdGlzQXN5bmM/OiBib29sZWFuLFxuXHQpIHtcblx0XHRpZiAoY2FuRXhlY3V0ZSQpIHtcblx0XHRcdHRoaXMuY2FuRXhlY3V0ZSQgPSBjb21iaW5lTGF0ZXN0KFtcblx0XHRcdFx0dGhpcy5faXNFeGVjdXRpbmckLFxuXHRcdFx0XHRjYW5FeGVjdXRlJFxuXHRcdFx0XSkucGlwZShcblx0XHRcdFx0bWFwKChbaXNFeGVjdXRpbmcsIGNhbkV4ZWN1dGVSZXN1bHRdKSA9PiB7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJbY29tbWFuZDo6Y29tYmluZUxhdGVzdCRdIHVwZGF0ZSFcIiwgeyBpc0V4ZWN1dGluZywgY2FuRXhlY3V0ZVJlc3VsdCB9KTtcblx0XHRcdFx0XHR0aGlzLl9pc0V4ZWN1dGluZyA9IGlzRXhlY3V0aW5nO1xuXHRcdFx0XHRcdHRoaXMuX2NhbkV4ZWN1dGUgPSAhaXNFeGVjdXRpbmcgJiYgISFjYW5FeGVjdXRlUmVzdWx0O1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9jYW5FeGVjdXRlO1xuXHRcdFx0XHR9KSxcblx0XHRcdCk7XG5cdFx0XHR0aGlzLmNhbkV4ZWN1dGUkJCA9IHRoaXMuY2FuRXhlY3V0ZSQuc3Vic2NyaWJlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2FuRXhlY3V0ZSQgPSB0aGlzLl9pc0V4ZWN1dGluZyQucGlwZShcblx0XHRcdFx0bWFwKHggPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGNhbkV4ZWN1dGUgPSAheDtcblx0XHRcdFx0XHR0aGlzLl9jYW5FeGVjdXRlID0gY2FuRXhlY3V0ZTtcblx0XHRcdFx0XHRyZXR1cm4gY2FuRXhlY3V0ZTtcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0XHR0aGlzLmlzRXhlY3V0aW5nJCQgPSB0aGlzLl9pc0V4ZWN1dGluZyRcblx0XHRcdFx0LnBpcGUodGFwKHggPT4gdGhpcy5faXNFeGVjdXRpbmcgPSB4KSlcblx0XHRcdFx0LnN1YnNjcmliZSgpO1xuXHRcdH1cblx0XHR0aGlzLmV4ZWN1dGlvblBpcGUkJCA9IHRoaXMuYnVpbGRFeGVjdXRpb25QaXBlKGV4ZWN1dGUsIGlzQXN5bmMpLnN1YnNjcmliZSgpO1xuXHR9XG5cblx0LyoqIEV4ZWN1dGUgZnVuY3Rpb24gdG8gaW52b2tlLiAqL1xuXHRleGVjdXRlKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdC8vIGNvbnNvbGUud2FybihcIltjb21tYW5kOjpleGVjdXRlXVwiLCBhcmdzKTtcblx0XHR0aGlzLmV4ZWN1dGlvblBpcGUkLm5leHQoYXJncyk7XG5cdH1cblxuXHQvKiogRGlzcG9zZXMgYWxsIHJlc291cmNlcyBoZWxkIGJ5IHN1YnNjcmlwdGlvbnMuICovXG5cdGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS53YXJuKFwiW2NvbW1hbmQ6OmRlc3Ryb3ldXCIpO1xuXHRcdHRoaXMuZXhlY3V0aW9uUGlwZSQkLnVuc3Vic2NyaWJlKCk7XG5cdFx0dGhpcy5jYW5FeGVjdXRlJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLmlzRXhlY3V0aW5nJCQudW5zdWJzY3JpYmUoKTtcblx0fVxuXG5cdHN1YnNjcmliZSgpOiB2b2lkIHtcblx0XHR0aGlzLnN1YnNjcmliZXJzQ291bnQrKztcblx0fVxuXG5cdHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXHRcdHRoaXMuc3Vic2NyaWJlcnNDb3VudC0tO1xuXHRcdC8vIGNvbnNvbGUubG9nKFwiW2NvbW1hbmQ6OnVuc3Vic2NyaWJlXVwiLCB7IGF1dG9EZXN0cm95OiB0aGlzLmF1dG9EZXN0cm95LCBzdWJzY3JpYmVyc0NvdW50OiB0aGlzLnN1YnNjcmliZXJzQ291bnQgfSk7XG5cdFx0aWYgKHRoaXMuYXV0b0Rlc3Ryb3kgJiYgdGhpcy5zdWJzY3JpYmVyc0NvdW50IDw9IDApIHtcblx0XHRcdHRoaXMuZGVzdHJveSgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYnVpbGRFeGVjdXRpb25QaXBlKGV4ZWN1dGU6ICguLi5hcmdzOiB1bmtub3duW10pID0+IGFueSwgaXNBc3luYz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcblx0XHRsZXQgcGlwZSQgPSB0aGlzLmV4ZWN1dGlvblBpcGUkLnBpcGUoXG5cdFx0XHQvLyB0YXAoeCA9PiBjb25zb2xlLndhcm4oXCI+Pj4+IGV4ZWN1dGlvblBpcGVcIiwgdGhpcy5fY2FuRXhlY3V0ZSkpLFxuXHRcdFx0ZmlsdGVyKCgpID0+IHRoaXMuX2NhbkV4ZWN1dGUpLFxuXHRcdFx0dGFwKCgpID0+IHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJbY29tbWFuZDo6ZXhlY3V0aW9uUGlwZSRdIGRvIzEgLSBzZXQgZXhlY3V0ZVwiLCB7IGFyZ3M6IHggfSk7XG5cdFx0XHRcdHRoaXMuX2lzRXhlY3V0aW5nJC5uZXh0KHRydWUpO1xuXHRcdFx0fSlcblx0XHQpO1xuXG5cdFx0Y29uc3QgZXhlY0ZuID0gaXNBc3luY1xuXHRcdFx0PyBzd2l0Y2hNYXA8dW5rbm93bltdIHwgdW5kZWZpbmVkLCBhbnlbXT4oYXJncyA9PiB7XG5cdFx0XHRcdGlmIChhcmdzKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGV4ZWN1dGUoLi4uYXJncyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGV4ZWN1dGUoKTtcblx0XHRcdH0pXG5cdFx0XHQ6IHRhcCgoYXJnczogdW5rbm93bltdIHwgdW5kZWZpbmVkKSA9PiB7XG5cdFx0XHRcdGlmIChhcmdzKSB7XG5cdFx0XHRcdFx0ZXhlY3V0ZSguLi5hcmdzKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0ZXhlY3V0ZSgpO1xuXHRcdFx0fSk7XG5cblx0XHRwaXBlJCA9IHBpcGUkLnBpcGUoXG5cdFx0XHRzd2l0Y2hNYXAoYXJncyA9PiBvZihhcmdzKS5waXBlKFxuXHRcdFx0XHRleGVjRm4sXG5cdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIltjb21tYW5kOjpleGVjdXRpb25QaXBlJF0gIGZpbmFsaXplIGlubmVyIzEgLSBzZXQgaWRsZVwiKTtcblx0XHRcdFx0XHR0aGlzLl9pc0V4ZWN1dGluZyQubmV4dChmYWxzZSk7XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHR0YWtlKDEpLFxuXHRcdFx0XHRjYXRjaEVycm9yKGVycm9yID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwiVW5oYW5kbGVkIGV4ZWN1dGUgZXJyb3JcIiwgZXJyb3IpO1xuXHRcdFx0XHRcdHJldHVybiBFTVBUWTtcblx0XHRcdFx0fSksXG5cdFx0XHQpKSxcblx0XHRcdHRhcChcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW2NvbW1hbmQ6OmV4ZWN1dGlvblBpcGUkXSB0YXAjMiAtIHNldCBpZGxlXCIpO1xuXHRcdFx0XHRcdHRoaXMuX2lzRXhlY3V0aW5nJC5uZXh0KGZhbHNlKTtcblx0XHRcdFx0fSxcblx0XHRcdClcblx0XHQpO1xuXHRcdHJldHVybiBwaXBlJDtcblx0fVxuXG59XG5cbi8qKlxuICogQXN5bmMgQ29tbWFuZCBvYmplY3QgdXNlZCB0byBlbmNhcHN1bGF0ZSBpbmZvcm1hdGlvbiB3aGljaCBpcyBuZWVkZWQgdG8gcGVyZm9ybSBhbiBhY3Rpb24sXG4gKiB3aGljaCB0YWtlcyBhbiBleGVjdXRlIGZ1bmN0aW9uIGFzIE9ic2VydmFibGUvUHJvbWlzZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbW1hbmRBc3luYyBleHRlbmRzIENvbW1hbmQge1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGV4ZWN1dGU6ICguLi5hcmdzOiB1bmtub3duW10pID0+IE9ic2VydmFibGU8dW5rbm93bj4gfCBQcm9taXNlPHVua25vd24+LFxuXHRcdGNhbkV4ZWN1dGUkPzogT2JzZXJ2YWJsZTxib29sZWFuPixcblx0KSB7XG5cdFx0c3VwZXIoZXhlY3V0ZSwgY2FuRXhlY3V0ZSQsIHRydWUpO1xuXHR9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbWFuZCB7XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0cmVhZG9ubHkgaXNFeGVjdXRpbmc6IGJvb2xlYW47XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYW4gb2JzZXJ2YWJsZS4gKi9cblx0cmVhZG9ubHkgaXNFeGVjdXRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlIG9yIG5vdCwgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0cmVhZG9ubHkgY2FuRXhlY3V0ZTogYm9vbGVhbjtcblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBvciBub3QsIGFzIGFuIG9ic2VydmFibGUuICovXG5cdHJlYWRvbmx5IGNhbkV4ZWN1dGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXV0byBkZXN0cm95IHdoZW4gaGF2aW5nIDAgc3Vic2NyaWJlcnMgKGRlZmF1bHRzIHRvIGB0cnVlYCkuICovXG5cdGF1dG9EZXN0cm95OiBib29sZWFuO1xuXG5cdC8qKiBFeGVjdXRlIGZ1bmN0aW9uIHRvIGludm9rZS4gKi9cblx0ZXhlY3V0ZSguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkO1xuXG5cdC8qKiBEaXNwb3NlcyBhbGwgcmVzb3VyY2VzIGhlbGQgYnkgc3Vic2NyaXB0aW9ucy4gKi9cblx0ZGVzdHJveSgpOiB2b2lkO1xuXG5cdC8qKiBTdWJzY3JpYmUgbGlzdGVuZXIsIGluIG9yZGVyIHRvIGhhbmRsZSBhdXRvIGRpc3Bvc2luZy4gKi9cblx0c3Vic2NyaWJlKCk6IHZvaWQ7XG5cblx0LyoqIFVuc3Vic2NyaWJlIGxpc3RlbmVyLCBpbiBvcmRlciB0byBoYW5kbGUgYXV0byBkaXNwb3NpbmcuICovXG5cdHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZENyZWF0b3Ige1xuXHRleGVjdXRlOiAoLi4uYXJnczogdW5rbm93bltdKSA9PiBPYnNlcnZhYmxlPHVua25vd24+IHwgUHJvbWlzZTx1bmtub3duPiB8IHZvaWQ7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG5cdGNhbkV4ZWN1dGU/OiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgRnVuY3Rpb247XG5cdHBhcmFtczogdW5rbm93biB8IHVua25vd25bXTtcblx0aXNBc3luYz86IGJvb2xlYW47XG5cdGhvc3Q6IHVua25vd247XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { of } from "rxjs";
2
+ import { map, distinctUntilChanged, startWith, delay } from "rxjs/operators";
3
+ import { Command } from "./command";
4
+ /** Determines whether the arg object is of type `Command`. */
5
+ export function isCommand(arg) {
6
+ return arg instanceof Command;
7
+ }
8
+ /** Determines whether the arg object is of type `CommandCreator`. */
9
+ export function isCommandCreator(arg) {
10
+ if (arg instanceof Command) {
11
+ return false;
12
+ }
13
+ else if (isAssumedType(arg) && arg.execute && arg.host) {
14
+ return true;
15
+ }
16
+ return false;
17
+ }
18
+ /** Get form is valid as an observable. */
19
+ export function canExecuteFromNgForm(form, options) {
20
+ const opts = { validity: true, dirty: true, ...options };
21
+ return form.statusChanges
22
+ ? form.statusChanges.pipe(// todo: remove cast when working correctly
23
+ delay(0), startWith(form.valid), map(() => !!(!opts.validity || form.valid) && !!(!opts.dirty || form.dirty)), distinctUntilChanged())
24
+ : of(true);
25
+ }
26
+ function isAssumedType(x) {
27
+ return x !== null && typeof x === "object";
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmQudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsOERBQThEO0FBQzlELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBWTtJQUNyQyxPQUFPLEdBQUcsWUFBWSxPQUFPLENBQUM7QUFDL0IsQ0FBQztBQUVELHFFQUFxRTtBQUNyRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBWTtJQUM1QyxJQUFJLEdBQUcsWUFBWSxPQUFPLEVBQUU7UUFDM0IsT0FBTyxLQUFLLENBQUM7S0FDYjtTQUFNLElBQUksYUFBYSxDQUFpQixHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7UUFDekUsT0FBTyxJQUFJLENBQUM7S0FDWjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQVVELDBDQUEwQztBQUMxQyxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLElBQWdELEVBQ2hELE9BQStCO0lBRS9CLE1BQU0sSUFBSSxHQUEwQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDO0lBRWhGLE9BQU8sSUFBSSxDQUFDLGFBQWE7UUFDeEIsQ0FBQyxDQUFFLElBQUksQ0FBQyxhQUErQyxDQUFDLElBQUksQ0FBRSwyQ0FBMkM7UUFDeEcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUNSLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQ3JCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDNUUsb0JBQW9CLEVBQUUsQ0FDdEI7UUFDRCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUE4QixDQUFVO0lBQzdELE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlLCBGb3JtQ29udHJvbFN0YXR1cyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoLCBkZWxheSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBDb21tYW5kQ3JlYXRvciwgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZFwiO1xuXG4vKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBhcmcgb2JqZWN0IGlzIG9mIHR5cGUgYENvbW1hbmRgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tbWFuZChhcmc6IHVua25vd24pOiBhcmcgaXMgSUNvbW1hbmQge1xuXHRyZXR1cm4gYXJnIGluc3RhbmNlb2YgQ29tbWFuZDtcbn1cblxuLyoqIERldGVybWluZXMgd2hldGhlciB0aGUgYXJnIG9iamVjdCBpcyBvZiB0eXBlIGBDb21tYW5kQ3JlYXRvcmAuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21tYW5kQ3JlYXRvcihhcmc6IHVua25vd24pOiBhcmcgaXMgQ29tbWFuZENyZWF0b3Ige1xuXHRpZiAoYXJnIGluc3RhbmNlb2YgQ29tbWFuZCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBlbHNlIGlmIChpc0Fzc3VtZWRUeXBlPENvbW1hbmRDcmVhdG9yPihhcmcpICYmIGFyZy5leGVjdXRlICYmIGFyZy5ob3N0KSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkV4ZWN1dGVGb3JtT3B0aW9ucyB7XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gY2hlY2sgZm9yIHZhbGlkaXR5LiAoZGVmYXVsdHM6IHRydWUpICovXG5cdHZhbGlkaXR5PzogYm9vbGVhbjtcblxuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGNoZWNrIHdoZXRoZXIgVUkgaGFzIGJlZW4gdG91Y2hlZC4gKGRlZmF1bHRzOiB0cnVlKSAqL1xuXHRkaXJ0eT86IGJvb2xlYW47XG59XG5cbi8qKiBHZXQgZm9ybSBpcyB2YWxpZCBhcyBhbiBvYnNlcnZhYmxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbkV4ZWN1dGVGcm9tTmdGb3JtKFxuXHRmb3JtOiBBYnN0cmFjdENvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsXG5cdG9wdGlvbnM/OiBDYW5FeGVjdXRlRm9ybU9wdGlvbnNcbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXHRjb25zdCBvcHRzOiBDYW5FeGVjdXRlRm9ybU9wdGlvbnMgPSB7IHZhbGlkaXR5OiB0cnVlLCBkaXJ0eTogdHJ1ZSwgLi4ub3B0aW9ucyB9O1xuXG5cdHJldHVybiBmb3JtLnN0YXR1c0NoYW5nZXNcblx0XHQ/IChmb3JtLnN0YXR1c0NoYW5nZXMgYXMgT2JzZXJ2YWJsZTxGb3JtQ29udHJvbFN0YXR1cz4pLnBpcGUoIC8vIHRvZG86IHJlbW92ZSBjYXN0IHdoZW4gd29ya2luZyBjb3JyZWN0bHlcblx0XHRcdGRlbGF5KDApLFxuXHRcdFx0c3RhcnRXaXRoKGZvcm0udmFsaWQpLFxuXHRcdFx0bWFwKCgpID0+ICEhKCFvcHRzLnZhbGlkaXR5IHx8IGZvcm0udmFsaWQpICYmICEhKCFvcHRzLmRpcnR5IHx8IGZvcm0uZGlydHkpKSxcblx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG5cdFx0KVxuXHRcdDogb2YodHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGlzQXNzdW1lZFR5cGU8VCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+Pih4OiB1bmtub3duKTogeCBpcyBQYXJ0aWFsPFQ+IHtcblx0cmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09IFwib2JqZWN0XCI7XG59XG4iXX0=
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const COMMAND_DEFAULT_CONFIG = Object.freeze({
3
+ executingCssClass: "executing",
4
+ handleDisabled: true,
5
+ hasDisabledDelay: false,
6
+ });
7
+ export const COMMAND_CONFIG = new InjectionToken("command-config");
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0IvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25ELGlCQUFpQixFQUFFLFdBQVc7SUFDOUIsY0FBYyxFQUFFLElBQUk7SUFDcEIsZ0JBQWdCLEVBQUUsS0FBSztDQUNMLENBQUMsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZE9wdGlvbnMge1xuXHQvKipcblx0ICogQ3NzIENsYXNzIHdoaWNoIGdldHMgYWRkZWQvcmVtb3ZlZCBvbiB0aGUgQ29tbWFuZCBlbGVtZW50J3MgaG9zdCB3aGlsZSBDb21tYW5kIGBpc0V4ZWN1dGluZyRgLlxuXHQgKi9cblx0ZXhlY3V0aW5nQ3NzQ2xhc3M6IHN0cmluZztcblxuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBkaXNhYmxlZCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIGRpcmVjdGl2ZSBvciBub3QuXG5cdCAqIERpc2FibGUgaGFuZGxlZCBieSBkaXJlY3RpdmUncyBkb2Vzbid0IGFsd2F5cyBwbGF5IG5pY2Ugd2hlbiB1c2VkIHdpdGggb3RoZXIgY29tcG9uZW50L3BpcGUvZGlyZWN0aXZlIGFuZCB0aGV5IGFsc28gaGFuZGxlIGRpc2FibGVkLlxuXHQgKiBUaGlzIGRpc2FibGVzIHRoZSBoYW5kbGluZyBtYW51YWxseSBhbmQgbmVlZCB0byBwYXNzIGV4cGxpY2l0bHkgYFtkaXNhYmxlZF09XCIhc2F2ZUNtZC5jYW5FeGVjdXRlXCJgLlxuXHQgKi9cblx0aGFuZGxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cblx0LyoqIERldGVybWluZSB3aGV0aGVyIHRvIHNldCBhIGBkZWxheSgxKWAgd2hlbiBzZXR0aW5nIHRoZSBkaXNhYmxlZC4gV2hpY2ggbWlnaHQgYmUgbmVlZGVkIHdoZW4gd29ya2luZyB3aXRoIGV4dGVybmFsXG5cdCAqIGNvbXBvbmVudHMvZGlyZWN0aXZlcyAoc3VjaCBhcyBtYXRlcmlhbCBidXR0b24pXG5cdCAqL1xuXHRoYXNEaXNhYmxlZERlbGF5OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQ09NTUFORF9ERUZBVUxUX0NPTkZJRyA9IE9iamVjdC5mcmVlemUoe1xuXHRleGVjdXRpbmdDc3NDbGFzczogXCJleGVjdXRpbmdcIixcblx0aGFuZGxlRGlzYWJsZWQ6IHRydWUsXG5cdGhhc0Rpc2FibGVkRGVsYXk6IGZhbHNlLFxufSBhcyBDb21tYW5kT3B0aW9ucyk7XG5cbmV4cG9ydCBjb25zdCBDT01NQU5EX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21tYW5kT3B0aW9ucz4oXCJjb21tYW5kLWNvbmZpZ1wiKTtcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export * from "./command";
2
+ export * from "./command.directive";
3
+ export * from "./command-ref.directive";
4
+ export * from "./command.util";
5
+ export * from "./config";
6
+ export * from "./module";
7
+ export * from "./version";
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZC1yZWYuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kLnV0aWxcIjtcbmV4cG9ydCB7IENvbW1hbmRDcmVhdG9yLCBJQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92ZXJzaW9uXCI7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { NgModule, InjectionToken, Optional } from "@angular/core";
2
+ import { CommandDirective } from "./command.directive";
3
+ import { CommandRefDirective } from "./command-ref.directive";
4
+ import { COMMAND_DEFAULT_CONFIG, COMMAND_CONFIG } from "./config";
5
+ import * as i0 from "@angular/core";
6
+ /** @internal */
7
+ export const MODULE_CONFIG_DATA = new InjectionToken("@ssv/ngx.command/configData");
8
+ const components = [
9
+ CommandDirective,
10
+ CommandRefDirective
11
+ ];
12
+ export class SsvCommandModule {
13
+ static forRoot(config) {
14
+ return {
15
+ ngModule: SsvCommandModule,
16
+ providers: [
17
+ { provide: MODULE_CONFIG_DATA, useValue: config },
18
+ ],
19
+ };
20
+ }
21
+ }
22
+ SsvCommandModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SsvCommandModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ SsvCommandModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SsvCommandModule, declarations: [CommandDirective,
24
+ CommandRefDirective], exports: [CommandDirective,
25
+ CommandRefDirective] });
26
+ SsvCommandModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SsvCommandModule, providers: [
27
+ { provide: COMMAND_CONFIG, useFactory: _moduleConfigFactory, deps: [[MODULE_CONFIG_DATA, new Optional()]] },
28
+ ] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SsvCommandModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ declarations: components,
33
+ providers: [
34
+ { provide: COMMAND_CONFIG, useFactory: _moduleConfigFactory, deps: [[MODULE_CONFIG_DATA, new Optional()]] },
35
+ ],
36
+ exports: [...components],
37
+ }]
38
+ }] });
39
+ /** @internal */
40
+ export function _moduleConfigFactory(config) {
41
+ const cfg = typeof config === "function" ? config() : config;
42
+ return cfg
43
+ ? {
44
+ ...COMMAND_DEFAULT_CONFIG,
45
+ ...cfg,
46
+ }
47
+ : COMMAND_DEFAULT_CONFIG;
48
+ }
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBa0Isc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUVsRixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQWlCLDZCQUE2QixDQUFDLENBQUM7QUFFcEcsTUFBTSxVQUFVLEdBQUc7SUFDbEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtDQUNuQixDQUFDO0FBU0YsTUFBTSxPQUFPLGdCQUFnQjtJQUU1QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQWtFO1FBQ2hGLE9BQU87WUFDTixRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLFNBQVMsRUFBRTtnQkFDVixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2FBQ2pEO1NBQ0QsQ0FBQztJQUNILENBQUM7OzZHQVRXLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQVg1QixnQkFBZ0I7UUFDaEIsbUJBQW1CLGFBRG5CLGdCQUFnQjtRQUNoQixtQkFBbUI7OEdBVVAsZ0JBQWdCLGFBTGpCO1FBQ1YsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO0tBQzNHOzJGQUdXLGdCQUFnQjtrQkFQNUIsUUFBUTttQkFBQztvQkFDVCxZQUFZLEVBQUUsVUFBVTtvQkFDeEIsU0FBUyxFQUFFO3dCQUNWLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRTtxQkFDM0c7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7aUJBQ3hCOztBQWNELGdCQUFnQjtBQUNoQixNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBK0M7SUFDbkYsTUFBTSxHQUFHLEdBQUcsT0FBTyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdELE9BQU8sR0FBRztRQUNULENBQUMsQ0FBQztZQUNELEdBQUcsc0JBQXNCO1lBQ3pCLEdBQUcsR0FBRztTQUNOO1FBQ0QsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgQ29tbWFuZERpcmVjdGl2ZSB9IGZyb20gXCIuL2NvbW1hbmQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBDb21tYW5kUmVmRGlyZWN0aXZlIH0gZnJvbSBcIi4vY29tbWFuZC1yZWYuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBDb21tYW5kT3B0aW9ucywgQ09NTUFORF9ERUZBVUxUX0NPTkZJRywgQ09NTUFORF9DT05GSUcgfSBmcm9tIFwiLi9jb25maWdcIjtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IE1PRFVMRV9DT05GSUdfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21tYW5kT3B0aW9ucz4oXCJAc3N2L25neC5jb21tYW5kL2NvbmZpZ0RhdGFcIik7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG5cdENvbW1hbmREaXJlY3RpdmUsXG5cdENvbW1hbmRSZWZEaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG5cdGRlY2xhcmF0aW9uczogY29tcG9uZW50cyxcblx0cHJvdmlkZXJzOiBbXG5cdFx0eyBwcm92aWRlOiBDT01NQU5EX0NPTkZJRywgdXNlRmFjdG9yeTogX21vZHVsZUNvbmZpZ0ZhY3RvcnksIGRlcHM6IFtbTU9EVUxFX0NPTkZJR19EQVRBLCBuZXcgT3B0aW9uYWwoKV1dIH0sXG5cdF0sXG5cdGV4cG9ydHM6IFsuLi5jb21wb25lbnRzXSxcbn0pXG5leHBvcnQgY2xhc3MgU3N2Q29tbWFuZE1vZHVsZSB7XG5cblx0c3RhdGljIGZvclJvb3QoY29uZmlnPzogUGFydGlhbDxDb21tYW5kT3B0aW9ucz4gfCAoKCkgPT4gUGFydGlhbDxDb21tYW5kT3B0aW9ucz4pKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTc3ZDb21tYW5kTW9kdWxlPiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5nTW9kdWxlOiBTc3ZDb21tYW5kTW9kdWxlLFxuXHRcdFx0cHJvdmlkZXJzOiBbXG5cdFx0XHRcdHsgcHJvdmlkZTogTU9EVUxFX0NPTkZJR19EQVRBLCB1c2VWYWx1ZTogY29uZmlnIH0sXG5cdFx0XHRdLFxuXHRcdH07XG5cdH1cblxufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gX21vZHVsZUNvbmZpZ0ZhY3RvcnkoY29uZmlnOiBDb21tYW5kT3B0aW9ucyB8ICgoKSA9PiBDb21tYW5kT3B0aW9ucykpOiBDb21tYW5kT3B0aW9ucyB7XG5cdGNvbnN0IGNmZyA9IHR5cGVvZiBjb25maWcgPT09IFwiZnVuY3Rpb25cIiA/IGNvbmZpZygpIDogY29uZmlnO1xuXHRyZXR1cm4gY2ZnXG5cdFx0PyB7XG5cdFx0XHQuLi5DT01NQU5EX0RFRkFVTFRfQ09ORklHLFxuXHRcdFx0Li4uY2ZnLFxuXHRcdH1cblx0XHQ6IENPTU1BTkRfREVGQVVMVF9DT05GSUc7XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3N2LW5neC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nzdi1uZ3guY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export const VERSION = "0.0.0-PLACEHOLDER";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIwLjAuMC1QTEFDRUhPTERFUlwiO1xuIl19