@ssv/ngx.command 2.2.0-dev268 → 2.3.0-dev.2

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
@@ -1,127 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9jaXJjbGVjaS9yZXBvL3NyYy8iLCJzb3VyY2VzIjpbImNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBYyxhQUFhLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQWdDbkI7Ozs7OztPQU1HO0lBQ0gsWUFDQyxPQUF3QyxFQUN4QyxXQUFpQyxFQUNqQyxPQUFpQjtRQXpCbEIsb0VBQW9FO1FBQ3BFLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBS1gsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNwRCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBQ3RELGtCQUFhLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNuQyxpQkFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbEMsb0JBQWUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3JDLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQWM1QixJQUFJLFdBQVcsRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGFBQWE7Z0JBQ2xCLFdBQVc7YUFDWCxDQUFDLENBQUMsSUFBSSxDQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFB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LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uLCBTdWJqZWN0LCBCZWhhdmlvclN1YmplY3QsIG9mLCBFTVBUWSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YXAsIG1hcCwgZmlsdGVyLCBzd2l0Y2hNYXAsIGNhdGNoRXJyb3IsIGZpbmFsaXplLCB0YWtlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBJQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmQubW9kZWxcIjtcblxuLyoqXG4gKiBDb21tYW5kIG9iamVjdCB1c2VkIHRvIGVuY2Fwc3VsYXRlIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5lZWRlZCB0byBwZXJmb3JtIGFuIGFjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbW1hbmQgaW1wbGVtZW50cyBJQ29tbWFuZCB7XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nLCBhcyBhIHNuYXBzaG90IHZhbHVlLiAqL1xuXHRnZXQgaXNFeGVjdXRpbmcoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzRXhlY3V0aW5nO1xuXHR9XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBvciBub3QsIGFzIGEgc25hcHNob3QgdmFsdWUuICovXG5cdGdldCBjYW5FeGVjdXRlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9jYW5FeGVjdXRlO1xuXHR9XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nLCBhcyBhbiBvYnNlcnZhYmxlLiAqL1xuXHRnZXQgaXNFeGVjdXRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXHRcdHJldHVybiB0aGlzLl9pc0V4ZWN1dGluZyQuYXNPYnNlcnZhYmxlKCk7XG5cdH1cblxuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGF1dG8gZGVzdHJveSB3aGVuIGhhdmluZyAwIHN1YnNjcmliZXJzLiAqL1xuXHRhdXRvRGVzdHJveSA9IHRydWU7XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBvciBub3QsIGFzIGFuIG9ic2VydmFibGUuICovXG5cdHJlYWRvbmx5IGNhbkV4ZWN1dGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG5cdHByaXZhdGUgX2lzRXhlY3V0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXHRwcml2YXRlIF9pc0V4ZWN1dGluZyA9IGZhbHNlO1xuXHRwcml2YXRlIF9jYW5FeGVjdXRlID0gdHJ1ZTtcblx0cHJpdmF0ZSBleGVjdXRpb25QaXBlJCA9IG5ldyBTdWJqZWN0PHVua25vd25bXSB8IHVuZGVmaW5lZD4oKTtcblx0cHJpdmF0ZSBpc0V4ZWN1dGluZyQkID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXHRwcml2YXRlIGNhbkV4ZWN1dGUkJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblx0cHJpdmF0ZSBleGVjdXRpb25QaXBlJCQgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cdHByaXZhdGUgc3Vic2NyaWJlcnNDb3VudCA9IDA7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ29tbWFuZC5cblx0ICpcblx0ICogQHBhcmFtIGV4ZWN1dGUgRXhlY3V0ZSBmdW5jdGlvbiB0byBpbnZva2UgLSB1c2UgYGlzQXN5bmM6IHRydWVgIHdoZW4gYE9ic2VydmFibGU8YW55PmAuXG5cdCAqIEBwYXJhbSBjYW5FeGVjdXRlIE9ic2VydmFibGUgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIGl0IGNhbiBleGVjdXRlIG9yIG5vdC5cblx0ICogQHBhcmFtIGlzQXN5bmMgSW5kaWNhdGVzIHRoYXQgdGhlIGV4ZWN1dGUgZnVuY3Rpb24gaXMgYXN5bmMgZS5nLiBPYnNlcnZhYmxlLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0ZXhlY3V0ZTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gdW5rbm93bixcblx0XHRjYW5FeGVjdXRlJD86IE9ic2VydmFibGU8Ym9vbGVhbj4sXG5cdFx0aXNBc3luYz86IGJvb2xlYW4sXG5cdCkge1xuXHRcdGlmIChjYW5FeGVjdXRlJCkge1xuXHRcdFx0dGhpcy5jYW5FeGVjdXRlJCA9IGNvbWJpbmVMYXRlc3QoW1xuXHRcdFx0XHR0aGlzLl9pc0V4ZWN1dGluZyQsXG5cdFx0XHRcdGNhbkV4ZWN1dGUkXG5cdFx0XHRdKS5waXBlKFxuXHRcdFx0XHRtYXAoKFtpc0V4ZWN1dGluZywgY2FuRXhlY3V0ZVJlc3VsdF0pID0+IHtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIltjb21tYW5kOjpjb21iaW5lTGF0ZXN0JF0gdXBkYXRlIVwiLCB7IGlzRXhlY3V0aW5nLCBjYW5FeGVjdXRlUmVzdWx0IH0pO1xuXHRcdFx0XHRcdHRoaXMuX2lzRXhlY3V0aW5nID0gaXNFeGVjdXRpbmc7XG5cdFx0XHRcdFx0dGhpcy5fY2FuRXhlY3V0ZSA9ICFpc0V4ZWN1dGluZyAmJiAhIWNhbkV4ZWN1dGVSZXN1bHQ7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX2NhbkV4ZWN1dGU7XG5cdFx0XHRcdH0pLFxuXHRcdFx0KTtcblx0XHRcdHRoaXMuY2FuRXhlY3V0ZSQkID0gdGhpcy5jYW5FeGVjdXRlJC5zdWJzY3JpYmUoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jYW5FeGVjdXRlJCA9IHRoaXMuX2lzRXhlY3V0aW5nJC5waXBlKFxuXHRcdFx0XHRtYXAoeCA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY2FuRXhlY3V0ZSA9ICF4O1xuXHRcdFx0XHRcdHRoaXMuX2NhbkV4ZWN1dGUgPSBjYW5FeGVjdXRlO1xuXHRcdFx0XHRcdHJldHVybiBjYW5FeGVjdXRlO1xuXHRcdFx0XHR9KVxuXHRcdFx0KTtcblx0XHRcdHRoaXMuaXNFeGVjdXRpbmckJCA9IHRoaXMuX2lzRXhlY3V0aW5nJFxuXHRcdFx0XHQucGlwZSh0YXAoeCA9PiB0aGlzLl9pc0V4ZWN1dGluZyA9IHgpKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHRcdHRoaXMuZXhlY3V0aW9uUGlwZSQkID0gdGhpcy5idWlsZEV4ZWN1dGlvblBpcGUoZXhlY3V0ZSwgaXNBc3luYykuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHQvKiogRXhlY3V0ZSBmdW5jdGlvbiB0byBpbnZva2UuICovXG5cdGV4ZWN1dGUoLi4uYXJnczogdW5rbm93bltdKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS53YXJuKFwiW2NvbW1hbmQ6OmV4ZWN1dGVdXCIsIGFyZ3MpO1xuXHRcdHRoaXMuZXhlY3V0aW9uUGlwZSQubmV4dChhcmdzKTtcblx0fVxuXG5cdC8qKiBEaXNwb3NlcyBhbGwgcmVzb3VyY2VzIGhlbGQgYnkgc3Vic2NyaXB0aW9ucy4gKi9cblx0ZGVzdHJveSgpOiB2b2lkIHtcblx0XHQvLyBjb25zb2xlLndhcm4oXCJbY29tbWFuZDo6ZGVzdHJveV1cIik7XG5cdFx0dGhpcy5leGVjdXRpb25QaXBlJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLmNhbkV4ZWN1dGUkJC51bnN1YnNjcmliZSgpO1xuXHRcdHRoaXMuaXNFeGVjdXRpbmckJC51bnN1YnNjcmliZSgpO1xuXHR9XG5cblx0c3Vic2NyaWJlKCk6IHZvaWQge1xuXHRcdHRoaXMuc3Vic2NyaWJlcnNDb3VudCsrO1xuXHR9XG5cblx0dW5zdWJzY3JpYmUoKTogdm9pZCB7XG5cdFx0dGhpcy5zdWJzY3JpYmVyc0NvdW50LS07XG5cdFx0Ly8gY29uc29sZS5sb2coXCJbY29tbWFuZDo6dW5zdWJzY3JpYmVdXCIsIHsgYXV0b0Rlc3Ryb3k6IHRoaXMuYXV0b0Rlc3Ryb3ksIHN1YnNjcmliZXJzQ291bnQ6IHRoaXMuc3Vic2NyaWJlcnNDb3VudCB9KTtcblx0XHRpZiAodGhpcy5hdXRvRGVzdHJveSAmJiB0aGlzLnN1YnNjcmliZXJzQ291bnQgPD0gMCkge1xuXHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBidWlsZEV4ZWN1dGlvblBpcGUoZXhlY3V0ZTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gYW55LCBpc0FzeW5jPzogYm9vbGVhbik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuXHRcdGxldCBwaXBlJCA9IHRoaXMuZXhlY3V0aW9uUGlwZSQucGlwZShcblx0XHRcdC8vIHRhcCh4ID0+IGNvbnNvbGUud2FybihcIj4+Pj4gZXhlY3V0aW9uUGlwZVwiLCB0aGlzLl9jYW5FeGVjdXRlKSksXG5cdFx0XHRmaWx0ZXIoKCkgPT4gdGhpcy5fY2FuRXhlY3V0ZSksXG5cdFx0XHR0YXAoKCkgPT4ge1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIltjb21tYW5kOjpleGVjdXRpb25QaXBlJF0gZG8jMSAtIHNldCBleGVjdXRlXCIsIHsgYXJnczogeCB9KTtcblx0XHRcdFx0dGhpcy5faXNFeGVjdXRpbmckLm5leHQodHJ1ZSk7XG5cdFx0XHR9KVxuXHRcdCk7XG5cblx0XHRjb25zdCBleGVjRm4gPSBpc0FzeW5jXG5cdFx0XHQ/IHN3aXRjaE1hcDx1bmtub3duW10gfCB1bmRlZmluZWQsIGFueVtdPihhcmdzID0+IHtcblx0XHRcdFx0aWYgKGFyZ3MpIHtcblx0XHRcdFx0XHRyZXR1cm4gZXhlY3V0ZSguLi5hcmdzKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZXhlY3V0ZSgpO1xuXHRcdFx0fSlcblx0XHRcdDogdGFwKChhcmdzOiB1bmtub3duW10gfCB1bmRlZmluZWQpID0+IHtcblx0XHRcdFx0aWYgKGFyZ3MpIHtcblx0XHRcdFx0XHRleGVjdXRlKC4uLmFyZ3MpO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRleGVjdXRlKCk7XG5cdFx0XHR9KTtcblxuXHRcdHBpcGUkID0gcGlwZSQucGlwZShcblx0XHRcdHN3aXRjaE1hcChhcmdzID0+IG9mKGFyZ3MpLnBpcGUoXG5cdFx0XHRcdGV4ZWNGbixcblx0XHRcdFx0ZmluYWxpemUoKCkgPT4ge1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW2NvbW1hbmQ6OmV4ZWN1dGlvblBpcGUkXSAgZmluYWxpemUgaW5uZXIjMSAtIHNldCBpZGxlXCIpO1xuXHRcdFx0XHRcdHRoaXMuX2lzRXhlY3V0aW5nJC5uZXh0KGZhbHNlKTtcblx0XHRcdFx0fSksXG5cdFx0XHRcdHRha2UoMSksXG5cdFx0XHRcdGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuXHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoXCJVbmhhbmRsZWQgZXhlY3V0ZSBlcnJvclwiLCBlcnJvcik7XG5cdFx0XHRcdFx0cmV0dXJuIEVNUFRZO1xuXHRcdFx0XHR9KSxcblx0XHRcdCkpLFxuXHRcdFx0dGFwKFxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJbY29tbWFuZDo6ZXhlY3V0aW9uUGlwZSRdIHRhcCMyIC0gc2V0IGlkbGVcIik7XG5cdFx0XHRcdFx0dGhpcy5faXNFeGVjdXRpbmckLm5leHQoZmFsc2UpO1xuXHRcdFx0XHR9LFxuXHRcdFx0KVxuXHRcdCk7XG5cdFx0cmV0dXJuIHBpcGUkO1xuXHR9XG5cbn1cblxuLyoqXG4gKiBBc3luYyBDb21tYW5kIG9iamVjdCB1c2VkIHRvIGVuY2Fwc3VsYXRlIGluZm9ybWF0aW9uIHdoaWNoIGlzIG5lZWRlZCB0byBwZXJmb3JtIGFuIGFjdGlvbixcbiAqIHdoaWNoIHRha2VzIGFuIGV4ZWN1dGUgZnVuY3Rpb24gYXMgT2JzZXJ2YWJsZS9Qcm9taXNlLlxuICovXG5leHBvcnQgY2xhc3MgQ29tbWFuZEFzeW5jIGV4dGVuZHMgQ29tbWFuZCB7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0ZXhlY3V0ZTogKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gT2JzZXJ2YWJsZTx1bmtub3duPiB8IFByb21pc2U8dW5rbm93bj4sXG5cdFx0Y2FuRXhlY3V0ZSQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuXHQpIHtcblx0XHRzdXBlcihleGVjdXRlLCBjYW5FeGVjdXRlJCwgdHJ1ZSk7XG5cdH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9jaXJjbGVjaS9yZXBvL3NyYy8iLCJzb3VyY2VzIjpbImNvbW1hbmQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb21tYW5kIHtcblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nLCBhcyBhIHNuYXBzaG90IHZhbHVlLiAqL1xuXHRyZWFkb25seSBpc0V4ZWN1dGluZzogYm9vbGVhbjtcblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nLCBhcyBhbiBvYnNlcnZhYmxlLiAqL1xuXHRyZWFkb25seSBpc0V4ZWN1dGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3Igbm90LCBhcyBhIHNuYXBzaG90IHZhbHVlLiAqL1xuXHRyZWFkb25seSBjYW5FeGVjdXRlOiBib29sZWFuO1xuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlIG9yIG5vdCwgYXMgYW4gb2JzZXJ2YWJsZS4gKi9cblx0cmVhZG9ubHkgY2FuRXhlY3V0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0byBhdXRvIGRlc3Ryb3kgd2hlbiBoYXZpbmcgMCBzdWJzY3JpYmVycyAoZGVmYXVsdHMgdG8gYHRydWVgKS4gKi9cblx0YXV0b0Rlc3Ryb3k6IGJvb2xlYW47XG5cblx0LyoqIEV4ZWN1dGUgZnVuY3Rpb24gdG8gaW52b2tlLiAqL1xuXHRleGVjdXRlKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQ7XG5cblx0LyoqIERpc3Bvc2VzIGFsbCByZXNvdXJjZXMgaGVsZCBieSBzdWJzY3JpcHRpb25zLiAqL1xuXHRkZXN0cm95KCk6IHZvaWQ7XG5cblx0LyoqIFN1YnNjcmliZSBsaXN0ZW5lciwgaW4gb3JkZXIgdG8gaGFuZGxlIGF1dG8gZGlzcG9zaW5nLiAqL1xuXHRzdWJzY3JpYmUoKTogdm9pZDtcblxuXHQvKiogVW5zdWJzY3JpYmUgbGlzdGVuZXIsIGluIG9yZGVyIHRvIGhhbmRsZSBhdXRvIGRpc3Bvc2luZy4gKi9cblx0dW5zdWJzY3JpYmUoKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kQ3JlYXRvciB7XG5cdGV4ZWN1dGU6ICguLi5hcmdzOiB1bmtub3duW10pID0+IE9ic2VydmFibGU8dW5rbm93bj4gfCBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcblx0Y2FuRXhlY3V0ZT86IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBGdW5jdGlvbjtcblx0cGFyYW1zOiB1bmtub3duIHwgdW5rbm93bltdO1xuXHRpc0FzeW5jPzogYm9vbGVhbjtcblx0aG9zdDogdW5rbm93bjtcbn1cbiJdfQ==
@@ -1,28 +0,0 @@
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 = Object.assign({ validity: true, dirty: true }, options);
21
- return form.statusChanges
22
- ? form.statusChanges.pipe(delay(0), startWith(form.valid), map(() => !!(!opts.validity || form.valid) && !!(!opts.dirty || form.dirty)), distinctUntilChanged())
23
- : of(true);
24
- }
25
- function isAssumedType(x) {
26
- return x !== null && typeof x === "object";
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC51dGlsLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsiY29tbWFuZC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFZO0lBQ3JDLE9BQU8sR0FBRyxZQUFZLE9BQU8sQ0FBQztBQUMvQixDQUFDO0FBRUQscUVBQXFFO0FBQ3JFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFZO0lBQzVDLElBQUksR0FBRyxZQUFZLE9BQU8sRUFBRTtRQUMzQixPQUFPLEtBQUssQ0FBQztLQUNiO1NBQU0sSUFBSSxhQUFhLENBQWlCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtRQUN6RSxPQUFPLElBQUksQ0FBQztLQUNaO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDO0FBVUQsMENBQTBDO0FBQzFDLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbkMsSUFBZ0QsRUFDaEQsT0FBK0I7SUFFL0IsTUFBTSxJQUFJLG1CQUE0QixRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUssT0FBTyxDQUFFLENBQUM7SUFFaEYsT0FBTyxJQUFJLENBQUMsYUFBYTtRQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3hCLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUNyQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQzVFLG9CQUFvQixFQUFFLENBQ3RCO1FBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBOEIsQ0FBVTtJQUM3RCxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoLCBkZWxheSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBDb21tYW5kQ3JlYXRvciwgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZFwiO1xuXG4vKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBhcmcgb2JqZWN0IGlzIG9mIHR5cGUgYENvbW1hbmRgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tbWFuZChhcmc6IHVua25vd24pOiBhcmcgaXMgSUNvbW1hbmQge1xuXHRyZXR1cm4gYXJnIGluc3RhbmNlb2YgQ29tbWFuZDtcbn1cblxuLyoqIERldGVybWluZXMgd2hldGhlciB0aGUgYXJnIG9iamVjdCBpcyBvZiB0eXBlIGBDb21tYW5kQ3JlYXRvcmAuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb21tYW5kQ3JlYXRvcihhcmc6IHVua25vd24pOiBhcmcgaXMgQ29tbWFuZENyZWF0b3Ige1xuXHRpZiAoYXJnIGluc3RhbmNlb2YgQ29tbWFuZCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBlbHNlIGlmIChpc0Fzc3VtZWRUeXBlPENvbW1hbmRDcmVhdG9yPihhcmcpICYmIGFyZy5leGVjdXRlICYmIGFyZy5ob3N0KSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblx0cmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkV4ZWN1dGVGb3JtT3B0aW9ucyB7XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gY2hlY2sgZm9yIHZhbGlkaXR5LiAoZGVmYXVsdHM6IHRydWUpICovXG5cdHZhbGlkaXR5PzogYm9vbGVhbjtcblxuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGNoZWNrIHdoZXRoZXIgVUkgaGFzIGJlZW4gdG91Y2hlZC4gKGRlZmF1bHRzOiB0cnVlKSAqL1xuXHRkaXJ0eT86IGJvb2xlYW47XG59XG5cbi8qKiBHZXQgZm9ybSBpcyB2YWxpZCBhcyBhbiBvYnNlcnZhYmxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbkV4ZWN1dGVGcm9tTmdGb3JtKFxuXHRmb3JtOiBBYnN0cmFjdENvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUsXG5cdG9wdGlvbnM/OiBDYW5FeGVjdXRlRm9ybU9wdGlvbnNcbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuXHRjb25zdCBvcHRzOiBDYW5FeGVjdXRlRm9ybU9wdGlvbnMgPSB7IHZhbGlkaXR5OiB0cnVlLCBkaXJ0eTogdHJ1ZSwgLi4ub3B0aW9ucyB9O1xuXG5cdHJldHVybiBmb3JtLnN0YXR1c0NoYW5nZXNcblx0XHQ/IGZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKFxuXHRcdFx0ZGVsYXkoMCksXG5cdFx0XHRzdGFydFdpdGgoZm9ybS52YWxpZCksXG5cdFx0XHRtYXAoKCkgPT4gISEoIW9wdHMudmFsaWRpdHkgfHwgZm9ybS52YWxpZCkgJiYgISEoIW9wdHMuZGlydHkgfHwgZm9ybS5kaXJ0eSkpLFxuXHRcdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcblx0XHQpXG5cdFx0OiBvZih0cnVlKTtcbn1cblxuZnVuY3Rpb24gaXNBc3N1bWVkVHlwZTxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHg6IHVua25vd24pOiB4IGlzIFBhcnRpYWw8VD4ge1xuXHRyZXR1cm4geCAhPT0gbnVsbCAmJiB0eXBlb2YgeCA9PT0gXCJvYmplY3RcIjtcbn1cbiJdfQ==
package/esm2015/config.js DELETED
@@ -1,8 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsiY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFvQi9DLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDbkQsaUJBQWlCLEVBQUUsV0FBVztJQUM5QixjQUFjLEVBQUUsSUFBSTtJQUNwQixnQkFBZ0IsRUFBRSxLQUFLO0NBQ0wsQ0FBQyxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsZ0JBQWdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kT3B0aW9ucyB7XG5cdC8qKlxuXHQgKiBDc3MgQ2xhc3Mgd2hpY2ggZ2V0cyBhZGRlZC9yZW1vdmVkIG9uIHRoZSBDb21tYW5kIGVsZW1lbnQncyBob3N0IHdoaWxlIENvbW1hbmQgYGlzRXhlY3V0aW5nJGAuXG5cdCAqL1xuXHRleGVjdXRpbmdDc3NDbGFzczogc3RyaW5nO1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGRpc2FibGVkIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgZGlyZWN0aXZlIG9yIG5vdC5cblx0ICogRGlzYWJsZSBoYW5kbGVkIGJ5IGRpcmVjdGl2ZSdzIGRvZXNuJ3QgYWx3YXlzIHBsYXkgbmljZSB3aGVuIHVzZWQgd2l0aCBvdGhlciBjb21wb25lbnQvcGlwZS9kaXJlY3RpdmUgYW5kIHRoZXkgYWxzbyBoYW5kbGUgZGlzYWJsZWQuXG5cdCAqIFRoaXMgZGlzYWJsZXMgdGhlIGhhbmRsaW5nIG1hbnVhbGx5IGFuZCBuZWVkIHRvIHBhc3MgZXhwbGljaXRseSBgW2Rpc2FibGVkXT1cIiFzYXZlQ21kLmNhbkV4ZWN1dGVcImAuXG5cdCAqL1xuXHRoYW5kbGVEaXNhYmxlZDogYm9vbGVhbjtcblxuXHQvKiogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gc2V0IGEgYGRlbGF5KDEpYCB3aGVuIHNldHRpbmcgdGhlIGRpc2FibGVkLiBXaGljaCBtaWdodCBiZSBuZWVkZWQgd2hlbiB3b3JraW5nIHdpdGggZXh0ZXJuYWxcblx0ICogY29tcG9uZW50cy9kaXJlY3RpdmVzIChzdWNoIGFzIG1hdGVyaWFsIGJ1dHRvbilcblx0ICovXG5cdGhhc0Rpc2FibGVkRGVsYXk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBDT01NQU5EX0RFRkFVTFRfQ09ORklHID0gT2JqZWN0LmZyZWV6ZSh7XG5cdGV4ZWN1dGluZ0Nzc0NsYXNzOiBcImV4ZWN1dGluZ1wiLFxuXHRoYW5kbGVEaXNhYmxlZDogdHJ1ZSxcblx0aGFzRGlzYWJsZWREZWxheTogZmFsc2UsXG59IGFzIENvbW1hbmRPcHRpb25zKTtcblxuZXhwb3J0IGNvbnN0IENPTU1BTkRfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPENvbW1hbmRPcHRpb25zPihcImNvbW1hbmQtY29uZmlnXCIpO1xuIl19
package/esm2015/index.js DELETED
@@ -1,8 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2hvbWUvY2lyY2xlY2kvcmVwby9zcmMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmQuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kLXJlZi5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmQudXRpbFwiO1xuZXhwb3J0IHsgQ29tbWFuZENyZWF0b3IsIElDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29uZmlnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnNpb25cIjtcbiJdfQ==
package/esm2015/module.js DELETED
@@ -1,36 +0,0 @@
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
- /** @internal */
6
- export const MODULE_CONFIG_DATA = new InjectionToken("@ssv/ngx.command/configData");
7
- const components = [
8
- CommandDirective,
9
- CommandRefDirective
10
- ];
11
- export class SsvCommandModule {
12
- static forRoot(config) {
13
- return {
14
- ngModule: SsvCommandModule,
15
- providers: [
16
- { provide: MODULE_CONFIG_DATA, useValue: config },
17
- ],
18
- };
19
- }
20
- }
21
- SsvCommandModule.decorators = [
22
- { type: NgModule, args: [{
23
- declarations: components,
24
- providers: [
25
- { provide: COMMAND_CONFIG, useFactory: _moduleConfigFactory, deps: [[MODULE_CONFIG_DATA, new Optional()]] },
26
- ],
27
- exports: [...components],
28
- },] }
29
- ];
30
- /** @internal */
31
- export function _moduleConfigFactory(config) {
32
- const cfg = typeof config === "function" ? config() : config;
33
- return cfg
34
- ? Object.assign(Object.assign({}, COMMAND_DEFAULT_CONFIG), cfg) : COMMAND_DEFAULT_CONFIG;
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsibW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFrQixzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFbEYsZ0JBQWdCO0FBQ2hCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFpQiw2QkFBNkIsQ0FBQyxDQUFDO0FBRXBHLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLGdCQUFnQjtJQUNoQixtQkFBbUI7Q0FDbkIsQ0FBQztBQVNGLE1BQU0sT0FBTyxnQkFBZ0I7SUFFNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFrRTtRQUNoRixPQUFPO1lBQ04sUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixTQUFTLEVBQUU7Z0JBQ1YsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTthQUNqRDtTQUNELENBQUM7SUFDSCxDQUFDOzs7WUFoQkQsUUFBUSxTQUFDO2dCQUNULFlBQVksRUFBRSxVQUFVO2dCQUN4QixTQUFTLEVBQUU7b0JBQ1YsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFO2lCQUMzRztnQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUN4Qjs7QUFjRCxnQkFBZ0I7QUFDaEIsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQStDO0lBQ25GLE1BQU0sR0FBRyxHQUFHLE9BQU8sTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM3RCxPQUFPLEdBQUc7UUFDVCxDQUFDLGlDQUNHLHNCQUFzQixHQUN0QixHQUFHLEVBRVAsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgQ29tbWFuZERpcmVjdGl2ZSB9IGZyb20gXCIuL2NvbW1hbmQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBDb21tYW5kUmVmRGlyZWN0aXZlIH0gZnJvbSBcIi4vY29tbWFuZC1yZWYuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBDb21tYW5kT3B0aW9ucywgQ09NTUFORF9ERUZBVUxUX0NPTkZJRywgQ09NTUFORF9DT05GSUcgfSBmcm9tIFwiLi9jb25maWdcIjtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IE1PRFVMRV9DT05GSUdfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21tYW5kT3B0aW9ucz4oXCJAc3N2L25neC5jb21tYW5kL2NvbmZpZ0RhdGFcIik7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG5cdENvbW1hbmREaXJlY3RpdmUsXG5cdENvbW1hbmRSZWZEaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG5cdGRlY2xhcmF0aW9uczogY29tcG9uZW50cyxcblx0cHJvdmlkZXJzOiBbXG5cdFx0eyBwcm92aWRlOiBDT01NQU5EX0NPTkZJRywgdXNlRmFjdG9yeTogX21vZHVsZUNvbmZpZ0ZhY3RvcnksIGRlcHM6IFtbTU9EVUxFX0NPTkZJR19EQVRBLCBuZXcgT3B0aW9uYWwoKV1dIH0sXG5cdF0sXG5cdGV4cG9ydHM6IFsuLi5jb21wb25lbnRzXSxcbn0pXG5leHBvcnQgY2xhc3MgU3N2Q29tbWFuZE1vZHVsZSB7XG5cblx0c3RhdGljIGZvclJvb3QoY29uZmlnPzogUGFydGlhbDxDb21tYW5kT3B0aW9ucz4gfCAoKCkgPT4gUGFydGlhbDxDb21tYW5kT3B0aW9ucz4pKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTc3ZDb21tYW5kTW9kdWxlPiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5nTW9kdWxlOiBTc3ZDb21tYW5kTW9kdWxlLFxuXHRcdFx0cHJvdmlkZXJzOiBbXG5cdFx0XHRcdHsgcHJvdmlkZTogTU9EVUxFX0NPTkZJR19EQVRBLCB1c2VWYWx1ZTogY29uZmlnIH0sXG5cdFx0XHRdLFxuXHRcdH07XG5cdH1cblxufVxuXG4vKiogQGludGVybmFsICovXG5leHBvcnQgZnVuY3Rpb24gX21vZHVsZUNvbmZpZ0ZhY3RvcnkoY29uZmlnOiBDb21tYW5kT3B0aW9ucyB8ICgoKSA9PiBDb21tYW5kT3B0aW9ucykpOiBDb21tYW5kT3B0aW9ucyB7XG5cdGNvbnN0IGNmZyA9IHR5cGVvZiBjb25maWcgPT09IFwiZnVuY3Rpb25cIiA/IGNvbmZpZygpIDogY29uZmlnO1xuXHRyZXR1cm4gY2ZnXG5cdFx0PyB7XG5cdFx0XHQuLi5DT01NQU5EX0RFRkFVTFRfQ09ORklHLFxuXHRcdFx0Li4uY2ZnLFxuXHRcdH1cblx0XHQ6IENPTU1BTkRfREVGQVVMVF9DT05GSUc7XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3N2LW5neC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL2NpcmNsZWNpL3JlcG8vc3JjLyIsInNvdXJjZXMiOlsic3N2LW5neC5jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,2 +0,0 @@
1
- export const VERSION = "2.2.0-dev268";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9jaXJjbGVjaS9yZXBvL3NyYy8iLCJzb3VyY2VzIjpbInZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIyLjIuMC1kZXYyNjhcIjtcbiJdfQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssv-ngx.command.js","sources":["../../src/command.ts","../../src/config.ts","../../src/command.util.ts","../../src/command.directive.ts","../../src/command-ref.directive.ts","../../src/module.ts","../../src/version.ts","../../src/ssv-ngx.command.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Observable, combineLatest, Subscription, Subject, BehaviorSubject, of, EMPTY } from \"rxjs\";\nimport { tap, map, filter, switchMap, catchError, finalize, take } from \"rxjs/operators\";\nimport { ICommand } from \"./command.model\";\n\n/**\n * Command object used to encapsulate information which is needed to perform an action.\n */\nexport class Command implements ICommand {\n\n\t/** Determines whether the command is currently executing, as a snapshot value. */\n\tget isExecuting(): boolean {\n\t\treturn this._isExecuting;\n\t}\n\n\t/** Determines whether the command can execute or not, as a snapshot value. */\n\tget canExecute(): boolean {\n\t\treturn this._canExecute;\n\t}\n\n\t/** Determines whether the command is currently executing, as an observable. */\n\tget isExecuting$(): Observable<boolean> {\n\t\treturn this._isExecuting$.asObservable();\n\t}\n\n\t/** Determines whether to auto destroy when having 0 subscribers. */\n\tautoDestroy = true;\n\n\t/** Determines whether the command can execute or not, as an observable. */\n\treadonly canExecute$: Observable<boolean>;\n\n\tprivate _isExecuting$ = new BehaviorSubject<boolean>(false);\n\tprivate _isExecuting = false;\n\tprivate _canExecute = true;\n\tprivate executionPipe$ = new Subject<unknown[] | undefined>();\n\tprivate isExecuting$$ = Subscription.EMPTY;\n\tprivate canExecute$$ = Subscription.EMPTY;\n\tprivate executionPipe$$ = Subscription.EMPTY;\n\tprivate subscribersCount = 0;\n\n\t/**\n\t * Creates an instance of Command.\n\t *\n\t * @param execute Execute function to invoke - use `isAsync: true` when `Observable<any>`.\n\t * @param canExecute Observable which determines whether it can execute or not.\n\t * @param isAsync Indicates that the execute function is async e.g. Observable.\n\t */\n\tconstructor(\n\t\texecute: (...args: unknown[]) => unknown,\n\t\tcanExecute$?: Observable<boolean>,\n\t\tisAsync?: boolean,\n\t) {\n\t\tif (canExecute$) {\n\t\t\tthis.canExecute$ = combineLatest([\n\t\t\t\tthis._isExecuting$,\n\t\t\t\tcanExecute$\n\t\t\t]).pipe(\n\t\t\t\tmap(([isExecuting, canExecuteResult]) => {\n\t\t\t\t\t// console.log(\"[command::combineLatest$] update!\", { isExecuting, canExecuteResult });\n\t\t\t\t\tthis._isExecuting = isExecuting;\n\t\t\t\t\tthis._canExecute = !isExecuting && !!canExecuteResult;\n\t\t\t\t\treturn this._canExecute;\n\t\t\t\t}),\n\t\t\t);\n\t\t\tthis.canExecute$$ = this.canExecute$.subscribe();\n\t\t} else {\n\t\t\tthis.canExecute$ = this._isExecuting$.pipe(\n\t\t\t\tmap(x => {\n\t\t\t\t\tconst canExecute = !x;\n\t\t\t\t\tthis._canExecute = canExecute;\n\t\t\t\t\treturn canExecute;\n\t\t\t\t})\n\t\t\t);\n\t\t\tthis.isExecuting$$ = this._isExecuting$\n\t\t\t\t.pipe(tap(x => this._isExecuting = x))\n\t\t\t\t.subscribe();\n\t\t}\n\t\tthis.executionPipe$$ = this.buildExecutionPipe(execute, isAsync).subscribe();\n\t}\n\n\t/** Execute function to invoke. */\n\texecute(...args: unknown[]): void {\n\t\t// console.warn(\"[command::execute]\", args);\n\t\tthis.executionPipe$.next(args);\n\t}\n\n\t/** Disposes all resources held by subscriptions. */\n\tdestroy(): void {\n\t\t// console.warn(\"[command::destroy]\");\n\t\tthis.executionPipe$$.unsubscribe();\n\t\tthis.canExecute$$.unsubscribe();\n\t\tthis.isExecuting$$.unsubscribe();\n\t}\n\n\tsubscribe(): void {\n\t\tthis.subscribersCount++;\n\t}\n\n\tunsubscribe(): void {\n\t\tthis.subscribersCount--;\n\t\t// console.log(\"[command::unsubscribe]\", { autoDestroy: this.autoDestroy, subscribersCount: this.subscribersCount });\n\t\tif (this.autoDestroy && this.subscribersCount <= 0) {\n\t\t\tthis.destroy();\n\t\t}\n\t}\n\n\tprivate buildExecutionPipe(execute: (...args: unknown[]) => any, isAsync?: boolean): Observable<unknown> {\n\t\tlet pipe$ = this.executionPipe$.pipe(\n\t\t\t// tap(x => console.warn(\">>>> executionPipe\", this._canExecute)),\n\t\t\tfilter(() => this._canExecute),\n\t\t\ttap(() => {\n\t\t\t\t// console.log(\"[command::executionPipe$] do#1 - set execute\", { args: x });\n\t\t\t\tthis._isExecuting$.next(true);\n\t\t\t})\n\t\t);\n\n\t\tconst execFn = isAsync\n\t\t\t? switchMap<unknown[] | undefined, any[]>(args => {\n\t\t\t\tif (args) {\n\t\t\t\t\treturn execute(...args);\n\t\t\t\t}\n\t\t\t\treturn execute();\n\t\t\t})\n\t\t\t: tap((args: unknown[] | undefined) => {\n\t\t\t\tif (args) {\n\t\t\t\t\texecute(...args);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\texecute();\n\t\t\t});\n\n\t\tpipe$ = pipe$.pipe(\n\t\t\tswitchMap(args => of(args).pipe(\n\t\t\t\texecFn,\n\t\t\t\tfinalize(() => {\n\t\t\t\t\t// console.log(\"[command::executionPipe$] finalize inner#1 - set idle\");\n\t\t\t\t\tthis._isExecuting$.next(false);\n\t\t\t\t}),\n\t\t\t\ttake(1),\n\t\t\t\tcatchError(error => {\n\t\t\t\t\tconsole.error(\"Unhandled execute error\", error);\n\t\t\t\t\treturn EMPTY;\n\t\t\t\t}),\n\t\t\t)),\n\t\t\ttap(\n\t\t\t\t() => {\n\t\t\t\t\t// console.log(\"[command::executionPipe$] tap#2 - set idle\");\n\t\t\t\t\tthis._isExecuting$.next(false);\n\t\t\t\t},\n\t\t\t)\n\t\t);\n\t\treturn pipe$;\n\t}\n\n}\n\n/**\n * Async Command object used to encapsulate information which is needed to perform an action,\n * which takes an execute function as Observable/Promise.\n */\nexport class CommandAsync extends Command {\n\n\tconstructor(\n\t\texecute: (...args: unknown[]) => Observable<unknown> | Promise<unknown>,\n\t\tcanExecute$?: Observable<boolean>,\n\t) {\n\t\tsuper(execute, canExecute$, true);\n\t}\n\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface CommandOptions {\n\t/**\n\t * Css Class which gets added/removed on the Command element's host while Command `isExecuting$`.\n\t */\n\texecutingCssClass: string;\n\n\t/** Determines whether the disabled will be handled by the directive or not.\n\t * Disable handled by directive's doesn't always play nice when used with other component/pipe/directive and they also handle disabled.\n\t * This disables the handling manually and need to pass explicitly `[disabled]=\"!saveCmd.canExecute\"`.\n\t */\n\thandleDisabled: boolean;\n\n\t/** Determine whether to set a `delay(1)` when setting the disabled. Which might be needed when working with external\n\t * components/directives (such as material button)\n\t */\n\thasDisabledDelay: boolean;\n}\n\nexport const COMMAND_DEFAULT_CONFIG = Object.freeze({\n\texecutingCssClass: \"executing\",\n\thandleDisabled: true,\n\thasDisabledDelay: false,\n} as CommandOptions);\n\nexport const COMMAND_CONFIG = new InjectionToken<CommandOptions>(\"command-config\");\n","import { AbstractControl, AbstractControlDirective } from \"@angular/forms\";\nimport { Observable, of } from \"rxjs\";\nimport { map, distinctUntilChanged, startWith, delay } from \"rxjs/operators\";\n\nimport { CommandCreator, ICommand } from \"./command.model\";\nimport { Command } from \"./command\";\n\n/** Determines whether the arg object is of type `Command`. */\nexport function isCommand(arg: unknown): arg is ICommand {\n\treturn arg instanceof Command;\n}\n\n/** Determines whether the arg object is of type `CommandCreator`. */\nexport function isCommandCreator(arg: unknown): arg is CommandCreator {\n\tif (arg instanceof Command) {\n\t\treturn false;\n\t} else if (isAssumedType<CommandCreator>(arg) && arg.execute && arg.host) {\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport interface CanExecuteFormOptions {\n\t/** Determines whether to check for validity. (defaults: true) */\n\tvalidity?: boolean;\n\n\t/** Determines whether to check whether UI has been touched. (defaults: true) */\n\tdirty?: boolean;\n}\n\n/** Get form is valid as an observable. */\nexport function canExecuteFromNgForm(\n\tform: AbstractControl | AbstractControlDirective,\n\toptions?: CanExecuteFormOptions\n): Observable<boolean> {\n\tconst opts: CanExecuteFormOptions = { validity: true, dirty: true, ...options };\n\n\treturn form.statusChanges\n\t\t? form.statusChanges.pipe(\n\t\t\tdelay(0),\n\t\t\tstartWith(form.valid),\n\t\t\tmap(() => !!(!opts.validity || form.valid) && !!(!opts.dirty || form.dirty)),\n\t\t\tdistinctUntilChanged(),\n\t\t)\n\t\t: of(true);\n}\n\nfunction isAssumedType<T = Record<string, unknown>>(x: unknown): x is Partial<T> {\n\treturn x !== null && typeof x === \"object\";\n}\n","import {\n\tDirective,\n\tOnInit,\n\tOnDestroy,\n\tInput,\n\tHostListener,\n\tElementRef,\n\tInject,\n\tRenderer2,\n\tChangeDetectorRef,\n} from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { tap, delay, takeUntil } from \"rxjs/operators\";\n\nimport { CommandOptions, COMMAND_CONFIG } from \"./config\";\nimport { Command } from \"./command\";\nimport { isCommand, isCommandCreator } from \"./command.util\";\nimport { CommandCreator, ICommand } from \"./command.model\";\n\n/**\n * Controls the state of a component in sync with `Command`.\n *\n * @example\n * ### Most common usage\n * ```html\n * <button [ssvCommand]=\"saveCmd\">Save</button>\n * ```\n *\n *\n * ### Usage with options\n * ```html\n * <button [ssvCommand]=\"saveCmd\" [ssvCommandOptions]=\"{executingCssClass: 'in-progress'}\">Save</button>\n * ```\n *\n *\n * ### Usage with params\n * This is useful for collections (loops) or using multiple actions with different args.\n * *NOTE: This will share the `isExecuting` when used with multiple controls.*\n *\n * #### With single param\n *\n * ```html\n * <button [ssvCommand]=\"saveCmd\" [ssvCommandParams]=\"{id: 1}\">Save</button>\n * ```\n * *NOTE: if you have only 1 argument as an array, it should be enclosed within an array e.g. `[['apple', 'banana']]`,\n * else it will spread and you will `arg1: \"apple\", arg2: \"banana\"`*\n *\n * #### With multi params\n * ```html\n * <button [ssvCommand]=\"saveCmd\" [ssvCommandParams]=\"[{id: 1}, 'hello', hero]\">Save</button>\n * ```\n *\n * ### Usage with Command Creator\n * This is useful for collections (loops) or using multiple actions with different args, whilst not sharing `isExecuting`.\n *\n *\n * ```html\n * <button [ssvCommand]=\"{host: this, execute: removeHero$, canExecute: isValid$, params: [hero, 1337, 'xx']}\">Save</button>\n * ```\n *\n */\n\nconst NAME_CAMEL = \"ssvCommand\";\n\n// let nextUniqueId = 0;\n\n@Directive({\n\tselector: `[${NAME_CAMEL}]`,\n\texportAs: NAME_CAMEL\n})\nexport class CommandDirective implements OnInit, OnDestroy {\n\n\t// readonly id = `${NAME_CAMEL}-${nextUniqueId++}`;\n\n\t@Input(NAME_CAMEL) commandOrCreator: ICommand | CommandCreator | undefined;\n\n\t@Input(`${NAME_CAMEL}Options`)\n\tget commandOptions(): CommandOptions { return this._commandOptions; }\n\tset commandOptions(value: CommandOptions) {\n\t\tif (value === this._commandOptions) {\n\t\t\treturn;\n\t\t}\n\t\tthis._commandOptions = {\n\t\t\t...this.config,\n\t\t\t...value,\n\t\t};\n\t}\n\n\t@Input(`${NAME_CAMEL}Params`) commandParams: unknown | unknown[];\n\n\tget command(): ICommand { return this._command; }\n\tprivate _command!: ICommand;\n\tprivate _commandOptions: CommandOptions = this.config;\n\tprivate _destroy$ = new Subject<void>();\n\n\tconstructor(\n\t\t@Inject(COMMAND_CONFIG) private config: CommandOptions,\n\t\tprivate renderer: Renderer2,\n\t\tprivate element: ElementRef,\n\t\tprivate cdr: ChangeDetectorRef,\n\t) { }\n\n\tngOnInit(): void {\n\t\t// console.log(\"[ssvCommand::init]\", this.config);\n\t\tif (!this.commandOrCreator) {\n\t\t\tthrow new Error(`${NAME_CAMEL}: [${NAME_CAMEL}] should be defined!`);\n\t\t} else if (isCommand(this.commandOrCreator)) {\n\t\t\tthis._command = this.commandOrCreator;\n\t\t} else if (isCommandCreator(this.commandOrCreator)) {\n\t\t\tconst isAsync = this.commandOrCreator.isAsync || this.commandOrCreator.isAsync === undefined;\n\n\t\t\t// todo: find something like this for ivy (or angular10+)\n\t\t\t// const hostComponent = (this.viewContainer as any)._view.component;\n\n\t\t\tconst execFn = this.commandOrCreator.execute.bind(this.commandOrCreator.host);\n\t\t\tthis.commandParams = this.commandParams || this.commandOrCreator.params;\n\n\t\t\tconst canExec = this.commandOrCreator.canExecute instanceof Function\n\t\t\t\t? this.commandOrCreator.canExecute.bind(this.commandOrCreator.host, this.commandParams)()\n\t\t\t\t: this.commandOrCreator.canExecute;\n\n\t\t\t// console.log(\"[ssvCommand::init] command creator\", {\n\t\t\t// \tfirstParam: this.commandParams ? this.commandParams[0] : null,\n\t\t\t// \tparams: this.commandParams\n\t\t\t// });\n\t\t\tthis._command = new Command(execFn, canExec, isAsync);\n\t\t} else {\n\t\t\tthrow new Error(`${NAME_CAMEL}: [${NAME_CAMEL}] is not defined properly!`);\n\t\t}\n\n\t\tthis._command.subscribe();\n\t\tthis._command.canExecute$.pipe(\n\t\t\tthis.commandOptions.hasDisabledDelay\n\t\t\t\t? delay(1)\n\t\t\t\t: tap(() => { /* stub */ }),\n\t\t\ttap(x => {\n\t\t\t\tthis.trySetDisabled(!x);\n\t\t\t\t// console.log(\"[ssvCommand::canExecute$]\", { canExecute: x });\n\t\t\t\tthis.cdr.markForCheck();\n\t\t\t}),\n\t\t\ttakeUntil(this._destroy$),\n\t\t).subscribe();\n\n\t\tif (this._command.isExecuting$) {\n\t\t\tthis._command.isExecuting$.pipe(\n\t\t\t\ttap(x => {\n\t\t\t\t\t// console.log(\"[ssvCommand::isExecuting$]\", x, this.commandOptions);\n\t\t\t\t\tif (x) {\n\t\t\t\t\t\tthis.renderer.addClass(\n\t\t\t\t\t\t\tthis.element.nativeElement,\n\t\t\t\t\t\t\tthis.commandOptions.executingCssClass\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.renderer.removeClass(\n\t\t\t\t\t\t\tthis.element.nativeElement,\n\t\t\t\t\t\t\tthis.commandOptions.executingCssClass\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this._destroy$),\n\t\t\t).subscribe();\n\t\t}\n\t}\n\n\t@HostListener(\"click\")\n\tonClick(): void {\n\t\t// console.log(\"[ssvCommand::onClick]\", this.commandParams);\n\t\tif (Array.isArray(this.commandParams)) {\n\t\t\tthis._command.execute(...this.commandParams);\n\t\t} else {\n\t\t\tthis._command.execute(this.commandParams);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\t// console.log(\"[ssvCommand::destroy]\");\n\t\tthis._destroy$.next();\n\t\tthis._destroy$.complete();\n\t\tif (this._command) {\n\t\t\tthis._command.unsubscribe();\n\t\t}\n\t}\n\n\tprivate trySetDisabled(disabled: boolean) {\n\t\tif (this.commandOptions.handleDisabled) {\n\t\t\t// console.warn(\">>>> disabled\", { id: this.id, disabled });\n\t\t\tthis.renderer.setProperty(this.element.nativeElement, \"disabled\", disabled);\n\t\t}\n\t}\n\n}\n\n","import { Observable } from \"rxjs\";\nimport { Directive, OnInit, OnDestroy, Input } from \"@angular/core\";\n\nimport { ICommand, CommandCreator } from \"./command.model\";\nimport { isCommandCreator } from \"./command.util\";\nimport { Command } from \"./command\";\n\nconst NAME_CAMEL = \"ssvCommandRef\";\n\n/**\n * Command creator ref, directive which allows creating Command in the template\n * and associate it to a command (in order to share executions).\n * @example\n * ### Most common usage\n * ```html\n * <div #actionCmd=\"ssvCommandRef\" [ssvCommandRef]=\"{host: this, execute: removeHero$, canExecute: isValid$}\">\n * <button [ssvCommand]=\"actionCmd.command\" [ssvCommandParams]=\"hero\">\n * Remove\n * </button>\n * <button [ssvCommand]=\"actionCmd.command\" [ssvCommandParams]=\"hero\">\n * Remove\n * </button>\n * </div>\n * ```\n *\n */\n@Directive({\n\tselector: `[${NAME_CAMEL}]`,\n\texportAs: NAME_CAMEL\n})\nexport class CommandRefDirective implements OnInit, OnDestroy {\n\n\t@Input(NAME_CAMEL) commandCreator: CommandCreator | undefined;\n\n\tget command(): ICommand { return this._command; }\n\tprivate _command!: ICommand;\n\n\tngOnInit(): void {\n\t\tif (isCommandCreator(this.commandCreator)) {\n\t\t\tconst isAsync = this.commandCreator.isAsync || this.commandCreator.isAsync === undefined;\n\n\t\t\tconst execFn = this.commandCreator.execute.bind(this.commandCreator.host);\n\t\t\tthis._command = new Command(execFn, this.commandCreator.canExecute as Observable<boolean> | undefined, isAsync);\n\t\t} else {\n\t\t\tthrow new Error(`${NAME_CAMEL}: [${NAME_CAMEL}] is not defined properly!`);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\t// console.log(\"[commandRef::destroy]\");\n\t\tif (this._command) {\n\t\t\tthis._command.destroy();\n\t\t}\n\t}\n\n}\n","import { NgModule, ModuleWithProviders, InjectionToken, Optional } from \"@angular/core\";\n\nimport { CommandDirective } from \"./command.directive\";\nimport { CommandRefDirective } from \"./command-ref.directive\";\nimport { CommandOptions, COMMAND_DEFAULT_CONFIG, COMMAND_CONFIG } from \"./config\";\n\n/** @internal */\nexport const MODULE_CONFIG_DATA = new InjectionToken<CommandOptions>(\"@ssv/ngx.command/configData\");\n\nconst components = [\n\tCommandDirective,\n\tCommandRefDirective\n];\n\n@NgModule({\n\tdeclarations: components,\n\tproviders: [\n\t\t{ provide: COMMAND_CONFIG, useFactory: _moduleConfigFactory, deps: [[MODULE_CONFIG_DATA, new Optional()]] },\n\t],\n\texports: [...components],\n})\nexport class SsvCommandModule {\n\n\tstatic forRoot(config?: Partial<CommandOptions> | (() => Partial<CommandOptions>)): ModuleWithProviders<SsvCommandModule> {\n\t\treturn {\n\t\t\tngModule: SsvCommandModule,\n\t\t\tproviders: [\n\t\t\t\t{ provide: MODULE_CONFIG_DATA, useValue: config },\n\t\t\t],\n\t\t};\n\t}\n\n}\n\n/** @internal */\nexport function _moduleConfigFactory(config: CommandOptions | (() => CommandOptions)): CommandOptions {\n\tconst cfg = typeof config === \"function\" ? config() : config;\n\treturn cfg\n\t\t? {\n\t\t\t...COMMAND_DEFAULT_CONFIG,\n\t\t\t...cfg,\n\t\t}\n\t\t: COMMAND_DEFAULT_CONFIG;\n}\n","export const VERSION = \"2.2.0-dev268\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NAME_CAMEL"],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"Command":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":48,"character":11,"module":"./command"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"boolean"}]},{"__symbolic":"reference","name":"boolean"}]}],"execute":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"unsubscribe":[{"__symbolic":"method"}],"buildExecutionPipe":[{"__symbolic":"method"}]}},"CommandAsync":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"Command"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":163,"character":11,"module":"./command"},{"__symbolic":"reference","name":"Observable","module":"rxjs","arguments":[{"__symbolic":"reference","name":"boolean"}]}]}]}},"CommandDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":66,"character":1},"arguments":[{"selector":"[ssvCommand]","exportAs":"ssvCommand"}]}],"members":{"commandOrCreator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":2},"arguments":["ssvCommand"]}]}],"commandOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":76,"character":2},"arguments":["ssvCommandOptions"]}]}],"commandParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":88,"character":2},"arguments":["ssvCommandParams"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":96,"character":3},"arguments":[{"__symbolic":"reference","name":"COMMAND_CONFIG"}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"CommandOptions"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":97,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":98,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":99,"character":15}]}],"ngOnInit":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":164,"character":2},"arguments":["click"]}]}],"ngOnDestroy":[{"__symbolic":"method"}],"trySetDisabled":[{"__symbolic":"method"}]}},"CommandRefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[ssvCommandRef]","exportAs":"ssvCommandRef"}]}],"members":{"commandCreator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":2},"arguments":["ssvCommandRef"]}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"isCommand":{"__symbolic":"function","parameters":["arg"],"value":{"__symbolic":"binop","operator":"instanceof","left":{"__symbolic":"reference","name":"arg"},"right":{"__symbolic":"reference","name":"Command"}}},"isCommandCreator":{"__symbolic":"function"},"CanExecuteFormOptions":{"__symbolic":"interface"},"canExecuteFromNgForm":{"__symbolic":"function"},"CommandCreator":{"__symbolic":"interface"},"ICommand":{"__symbolic":"interface"},"CommandOptions":{"__symbolic":"interface"},"COMMAND_DEFAULT_CONFIG":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"freeze"},"arguments":[{"executingCssClass":"executing","handleDisabled":true,"hasDisabledDelay":false}]},"COMMAND_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":26,"character":34},"arguments":["command-config"]},"MODULE_CONFIG_DATA":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":7,"character":38},"arguments":["@ssv/ngx.command/configData"]},"SsvCommandModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"CommandDirective"},{"__symbolic":"reference","name":"CommandRefDirective"}],"providers":[{"provide":{"__symbolic":"reference","name":"COMMAND_CONFIG"},"useFactory":{"__symbolic":"reference","name":"_moduleConfigFactory"},"deps":[[{"__symbolic":"reference","name":"MODULE_CONFIG_DATA"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":17,"character":95}}]]}],"exports":[{"__symbolic":"reference","name":"CommandDirective"},{"__symbolic":"reference","name":"CommandRefDirective"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"SsvCommandModule"},"providers":[{"provide":{"__symbolic":"reference","name":"MODULE_CONFIG_DATA"},"useValue":{"__symbolic":"reference","name":"config"}}]}}}},"_moduleConfigFactory":{"__symbolic":"function"},"VERSION":"2.2.0-dev268"},"origins":{"Command":"./command","CommandAsync":"./command","CommandDirective":"./command.directive","CommandRefDirective":"./command-ref.directive","isCommand":"./command.util","isCommandCreator":"./command.util","CanExecuteFormOptions":"./command.util","canExecuteFromNgForm":"./command.util","CommandCreator":"./command.model","ICommand":"./command.model","CommandOptions":"./config","COMMAND_DEFAULT_CONFIG":"./config","COMMAND_CONFIG":"./config","MODULE_CONFIG_DATA":"./module","SsvCommandModule":"./module","_moduleConfigFactory":"./module","VERSION":"./version"},"importAs":"@ssv/ngx.command"}