@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.
- package/README.md +7 -7
- package/command-ref.directive.d.ts +3 -0
- package/command.directive.d.ts +3 -0
- package/esm2020/command-ref.directive.mjs +54 -0
- package/esm2020/command.directive.mjs +166 -0
- package/esm2020/command.mjs +127 -0
- package/esm2020/command.model.mjs +2 -0
- package/esm2020/command.util.mjs +29 -0
- package/esm2020/config.mjs +8 -0
- package/esm2020/index.mjs +8 -0
- package/esm2020/module.mjs +49 -0
- package/esm2020/ssv-ngx.command.mjs +5 -0
- package/esm2020/version.mjs +2 -0
- package/fesm2015/{ssv-ngx.command.js → ssv-ngx.command.mjs} +66 -45
- package/fesm2015/ssv-ngx.command.mjs.map +1 -0
- package/fesm2020/ssv-ngx.command.mjs +424 -0
- package/fesm2020/ssv-ngx.command.mjs.map +1 -0
- package/module.d.ts +6 -0
- package/package.json +23 -13
- package/version.d.ts +1 -1
- package/CHANGELOG.md +0 -216
- package/bundles/ssv-ngx.command.umd.js +0 -759
- package/bundles/ssv-ngx.command.umd.js.map +0 -1
- package/bundles/ssv-ngx.command.umd.min.js +0 -16
- package/bundles/ssv-ngx.command.umd.min.js.map +0 -1
- package/esm2015/command-ref.directive.js +0 -50
- package/esm2015/command.directive.js +0 -156
- package/esm2015/command.js +0 -127
- package/esm2015/command.model.js +0 -2
- package/esm2015/command.util.js +0 -28
- package/esm2015/config.js +0 -8
- package/esm2015/index.js +0 -8
- package/esm2015/module.js +0 -36
- package/esm2015/ssv-ngx.command.js +0 -5
- package/esm2015/version.js +0 -2
- package/fesm2015/ssv-ngx.command.js.map +0 -1
- package/ssv-ngx.command.d.ts +0 -4
- 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
|
-
[](https://github.com/sketch7/ngx.command/actions/workflows/ci.yml)
|
|
10
10
|
[](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
|
|
31
|
-
|
|
|
32
|
-
| 10
|
|
33
|
-
| 4 to 9
|
|
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
|
|
189
|
+
- NodeJS v18.16.0+
|
|
190
190
|
- Visual Studio Code or similar code editor
|
|
191
|
-
- TypeScript
|
|
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
|
}
|
package/command.directive.d.ts
CHANGED
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFnQ25COzs7Ozs7T0FNRztJQUNILFlBQ0MsT0FBd0MsRUFDeEMsV0FBaUMsRUFDakMsT0FBaUI7UUF6QmxCLG9FQUFvRTtRQUNwRSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUtYLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNyQyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFjNUIsSUFBSSxXQUFXLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhO2dCQUNsQixXQUFXO2FBQ1gsQ0FBQyxDQUFDLElBQUksQ0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLHVGQUF1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c2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0LCBvZiwgRU1QVFkgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFwLCBtYXAsIGZpbHRlciwgc3dpdGNoTWFwLCBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5cbi8qKlxuICogQ29tbWFuZCBvYmplY3QgdXNlZCB0byBlbmNhcHN1bGF0ZSBpbmZvcm1hdGlvbiB3aGljaCBpcyBuZWVkZWQgdG8gcGVyZm9ybSBhbiBhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tYW5kIGltcGxlbWVudHMgSUNvbW1hbmQge1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0Z2V0IGlzRXhlY3V0aW5nKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9pc0V4ZWN1dGluZztcblx0fVxuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3Igbm90LCBhcyBhIHNuYXBzaG90IHZhbHVlLiAqL1xuXHRnZXQgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fY2FuRXhlY3V0ZTtcblx0fVxuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYW4gb2JzZXJ2YWJsZS4gKi9cblx0Z2V0IGlzRXhlY3V0aW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+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
|