@ssv/ngx.command 2.3.2-dev.11 → 3.0.0-dev.1

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 (45) hide show
  1. package/README.md +242 -242
  2. package/eslint.config.js +43 -0
  3. package/jest.config.ts +21 -0
  4. package/ng-package.json +7 -0
  5. package/package.json +2 -26
  6. package/project.json +36 -0
  7. package/src/command-ref.directive.ts +57 -0
  8. package/src/command.directive.ts +192 -0
  9. package/src/command.directive.xspec.ts +105 -0
  10. package/src/command.model.ts +36 -0
  11. package/src/command.options.ts +45 -0
  12. package/src/command.spec.ts +215 -0
  13. package/src/command.ts +170 -0
  14. package/src/command.util.ts +50 -0
  15. package/{index.d.ts → src/index.ts} +8 -8
  16. package/src/module.ts +17 -0
  17. package/src/test-setup.ts +8 -0
  18. package/src/version.ts +1 -0
  19. package/tsconfig.json +28 -0
  20. package/tsconfig.lib.json +17 -0
  21. package/tsconfig.lib.prod.json +9 -0
  22. package/tsconfig.spec.json +16 -0
  23. package/LICENSE +0 -21
  24. package/command-ref.directive.d.ts +0 -29
  25. package/command.d.ts +0 -47
  26. package/command.directive.d.ts +0 -25
  27. package/command.model.d.ts +0 -28
  28. package/command.util.d.ts +0 -15
  29. package/config.d.ts +0 -18
  30. package/esm2020/command-ref.directive.mjs +0 -54
  31. package/esm2020/command.directive.mjs +0 -166
  32. package/esm2020/command.mjs +0 -127
  33. package/esm2020/command.model.mjs +0 -2
  34. package/esm2020/command.util.mjs +0 -29
  35. package/esm2020/config.mjs +0 -8
  36. package/esm2020/index.mjs +0 -8
  37. package/esm2020/module.mjs +0 -49
  38. package/esm2020/ssv-ngx.command.mjs +0 -5
  39. package/esm2020/version.mjs +0 -2
  40. package/fesm2015/ssv-ngx.command.mjs +0 -419
  41. package/fesm2015/ssv-ngx.command.mjs.map +0 -1
  42. package/fesm2020/ssv-ngx.command.mjs +0 -424
  43. package/fesm2020/ssv-ngx.command.mjs.map +0 -1
  44. package/module.d.ts +0 -15
  45. package/version.d.ts +0 -1
@@ -1,166 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFNBQVMsRUFHVCxLQUFLLEVBQ0wsWUFBWSxFQUVaLE1BQU0sR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBa0IsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUc3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q0c7QUFFSCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFFaEMsd0JBQXdCO0FBTXhCLE1BQU0sT0FBTyxnQkFBZ0I7SUF5QjVCLFlBQ2lDLE1BQXNCLEVBQzlDLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLEdBQXNCO1FBSEUsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDOUMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBUHZCLG9CQUFlLEdBQW1CLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDOUMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPcEMsQ0FBQztJQXhCTCxJQUNJLGNBQWMsS0FBcUIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNyRSxJQUFJLGNBQWMsQ0FBQyxLQUE4QjtRQUNoRCxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ25DLE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDdEIsR0FBRyxJQUFJLENBQUMsTUFBTTtZQUNkLEdBQUcsS0FBSztTQUNSLENBQUM7SUFDSCxDQUFDO0lBSUQsSUFBSSxPQUFPLEtBQWUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQVlqRCxRQUFRO1FBQ1Asa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFVBQVUsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQUM7U0FDckU7YUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN0QzthQUFNLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztZQUU3Rix5REFBeUQ7WUFDekQscUVBQXFFO1lBRXJFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUV4RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxZQUFZLFFBQVE7Z0JBQ25FLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDekYsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7WUFFcEMsc0RBQXNEO1lBQ3RELGtFQUFrRTtZQUNsRSw4QkFBOEI7WUFDOUIsTUFBTTtZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN0RDthQUFNO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLFVBQVUsTUFBTSxVQUFVLDRCQUE0QixDQUFDLENBQUM7U0FDM0U7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0I7WUFDbkMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDVixDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFjLENBQUMsQ0FBQyxFQUM1QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsK0RBQStEO1lBQy9ELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDekIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1AscUVBQXFFO2dCQUNyRSxJQUFJLENBQUMsRUFBRTtvQkFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQ3JDLENBQUM7aUJBQ0Y7cUJBQU07b0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUNyQyxDQUFDO2lCQUNGO1lBQ0YsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDekIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNkO0lBQ0YsQ0FBQztJQUdELE9BQU87UUFDTiw0REFBNEQ7UUFDNUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM3QzthQUFNO1lBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzFDO0lBQ0YsQ0FBQztJQUVELFdBQVc7UUFDVix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVCO0lBQ0YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxRQUFpQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFO1lBQ3ZDLDREQUE0RDtZQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDNUU7SUFDRixDQUFDOzs2R0F0SFcsZ0JBQWdCLGtCQTBCbkIsY0FBYztpR0ExQlgsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLElBQUksVUFBVSxHQUFHO29CQUMzQixRQUFRLEVBQUUsVUFBVTtpQkFDcEI7OzBCQTJCRSxNQUFNOzJCQUFDLGNBQWM7NkhBdEJKLGdCQUFnQjtzQkFBbEMsS0FBSzt1QkFBQyxVQUFVO2dCQUdiLGNBQWM7c0JBRGpCLEtBQUs7dUJBQUMsR0FBRyxVQUFVLFNBQVM7Z0JBWUMsYUFBYTtzQkFBMUMsS0FBSzt1QkFBQyxHQUFHLFVBQVUsUUFBUTtnQkE2RTVCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGlyZWN0aXZlLFxuXHRPbkluaXQsXG5cdE9uRGVzdHJveSxcblx0SW5wdXQsXG5cdEhvc3RMaXN0ZW5lcixcblx0RWxlbWVudFJlZixcblx0SW5qZWN0LFxuXHRSZW5kZXJlcjIsXG5cdENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YXAsIGRlbGF5LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgQ29tbWFuZE9wdGlvbnMsIENPTU1BTkRfQ09ORklHIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSBcIi4vY29tbWFuZFwiO1xuaW1wb3J0IHsgaXNDb21tYW5kLCBpc0NvbW1hbmRDcmVhdG9yIH0gZnJvbSBcIi4vY29tbWFuZC51dGlsXCI7XG5pbXBvcnQgeyBDb21tYW5kQ3JlYXRvciwgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5cbi8qKlxuICogQ29udHJvbHMgdGhlIHN0YXRlIG9mIGEgY29tcG9uZW50IGluIHN5bmMgd2l0aCBgQ29tbWFuZGAuXG4gKlxuICogQGV4YW1wbGVcbiAqICMjIyBNb3N0IGNvbW1vbiB1c2FnZVxuICogYGBgaHRtbFxuICogPGJ1dHRvbiBbc3N2Q29tbWFuZF09XCJzYXZlQ21kXCI+U2F2ZTwvYnV0dG9uPlxuICogYGBgXG4gKlxuICpcbiAqICMjIyBVc2FnZSB3aXRoIG9wdGlvbnNcbiAqIGBgYGh0bWxcbiAqIDxidXR0b24gW3NzdkNvbW1hbmRdPVwic2F2ZUNtZFwiIFtzc3ZDb21tYW5kT3B0aW9uc109XCJ7ZXhlY3V0aW5nQ3NzQ2xhc3M6ICdpbi1wcm9ncmVzcyd9XCI+U2F2ZTwvYnV0dG9uPlxuICogYGBgXG4gKlxuICpcbiAqICMjIyBVc2FnZSB3aXRoIHBhcmFtc1xuICogVGhpcyBpcyB1c2VmdWwgZm9yIGNvbGxlY3Rpb25zIChsb29wcykgb3IgdXNpbmcgbXVsdGlwbGUgYWN0aW9ucyB3aXRoIGRpZmZlcmVudCBhcmdzLlxuICogKk5PVEU6IFRoaXMgd2lsbCBzaGFyZSB0aGUgYGlzRXhlY3V0aW5nYCB3aGVuIHVzZWQgd2l0aCBtdWx0aXBsZSBjb250cm9scy4qXG4gKlxuICogIyMjIyBXaXRoIHNpbmdsZSBwYXJhbVxuICpcbiAqIGBgYGh0bWxcbiAqIDxidXR0b24gW3NzdkNvbW1hbmRdPVwic2F2ZUNtZFwiIFtzc3ZDb21tYW5kUGFyYW1zXT1cIntpZDogMX1cIj5TYXZlPC9idXR0b24+XG4gKiBgYGBcbiAqICpOT1RFOiBpZiB5b3UgaGF2ZSBvbmx5IDEgYXJndW1lbnQgYXMgYW4gYXJyYXksIGl0IHNob3VsZCBiZSBlbmNsb3NlZCB3aXRoaW4gYW4gYXJyYXkgZS5nLiBgW1snYXBwbGUnLCAnYmFuYW5hJ11dYCxcbiAqIGVsc2UgaXQgd2lsbCBzcHJlYWQgYW5kIHlvdSB3aWxsIGBhcmcxOiBcImFwcGxlXCIsIGFyZzI6IFwiYmFuYW5hXCJgKlxuICpcbiAgKiAjIyMjIFdpdGggbXVsdGkgcGFyYW1zXG4gKiBgYGBodG1sXG4gKiA8YnV0dG9uIFtzc3ZDb21tYW5kXT1cInNhdmVDbWRcIiBbc3N2Q29tbWFuZFBhcmFtc109XCJbe2lkOiAxfSwgJ2hlbGxvJywgaGVyb11cIj5TYXZlPC9idXR0b24+XG4gKiBgYGBcbiAqXG4gKiAjIyMgVXNhZ2Ugd2l0aCBDb21tYW5kIENyZWF0b3JcbiAqIFRoaXMgaXMgdXNlZnVsIGZvciBjb2xsZWN0aW9ucyAobG9vcHMpIG9yIHVzaW5nIG11bHRpcGxlIGFjdGlvbnMgd2l0aCBkaWZmZXJlbnQgYXJncywgd2hpbHN0IG5vdCBzaGFyaW5nIGBpc0V4ZWN1dGluZ2AuXG4gKlxuICpcbiAqIGBgYGh0bWxcbiAqIDxidXR0b24gW3NzdkNvbW1hbmRdPVwie2hvc3Q6IHRoaXMsIGV4ZWN1dGU6IHJlbW92ZUhlcm8kLCBjYW5FeGVjdXRlOiBpc1ZhbGlkJCwgcGFyYW1zOiBbaGVybywgMTMzNywgJ3h4J119XCI+U2F2ZTwvYnV0dG9uPlxuICogYGBgXG4gKlxuICovXG5cbmNvbnN0IE5BTUVfQ0FNRUwgPSBcInNzdkNvbW1hbmRcIjtcblxuLy8gbGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogYFske05BTUVfQ0FNRUx9XWAsXG5cdGV4cG9ydEFzOiBOQU1FX0NBTUVMXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cblx0Ly8gcmVhZG9ubHkgaWQgPSBgJHtOQU1FX0NBTUVMfS0ke25leHRVbmlxdWVJZCsrfWA7XG5cblx0QElucHV0KE5BTUVfQ0FNRUwpIGNvbW1hbmRPckNyZWF0b3I6IElDb21tYW5kIHwgQ29tbWFuZENyZWF0b3IgfCB1bmRlZmluZWQ7XG5cblx0QElucHV0KGAke05BTUVfQ0FNRUx9T3B0aW9uc2ApXG5cdGdldCBjb21tYW5kT3B0aW9ucygpOiBDb21tYW5kT3B0aW9ucyB7IHJldHVybiB0aGlzLl9jb21tYW5kT3B0aW9uczsgfVxuXHRzZXQgY29tbWFuZE9wdGlvbnModmFsdWU6IFBhcnRpYWw8Q29tbWFuZE9wdGlvbnM+KSB7XG5cdFx0aWYgKHZhbHVlID09PSB0aGlzLl9jb21tYW5kT3B0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9jb21tYW5kT3B0aW9ucyA9IHtcblx0XHRcdC4uLnRoaXMuY29uZmlnLFxuXHRcdFx0Li4udmFsdWUsXG5cdFx0fTtcblx0fVxuXG5cdEBJbnB1dChgJHtOQU1FX0NBTUVMfVBhcmFtc2ApIGNvbW1hbmRQYXJhbXM6IHVua25vd24gfCB1bmtub3duW107XG5cblx0Z2V0IGNvbW1hbmQoKTogSUNvbW1hbmQgeyByZXR1cm4gdGhpcy5fY29tbWFuZDsgfVxuXHRwcml2YXRlIF9jb21tYW5kITogSUNvbW1hbmQ7XG5cdHByaXZhdGUgX2NvbW1hbmRPcHRpb25zOiBDb21tYW5kT3B0aW9ucyA9IHRoaXMuY29uZmlnO1xuXHRwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QEluamVjdChDT01NQU5EX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IENvbW1hbmRPcHRpb25zLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG5cdFx0cHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuXHQpIHsgfVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdC8vIGNvbnNvbGUubG9nKFwiW3NzdkNvbW1hbmQ6OmluaXRdXCIsIHRoaXMuY29uZmlnKTtcblx0XHRpZiAoIXRoaXMuY29tbWFuZE9yQ3JlYXRvcikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGAke05BTUVfQ0FNRUx9OiBbJHtOQU1FX0NBTUVMfV0gc2hvdWxkIGJlIGRlZmluZWQhYCk7XG5cdFx0fSBlbHNlIGlmIChpc0NvbW1hbmQodGhpcy5jb21tYW5kT3JDcmVhdG9yKSkge1xuXHRcdFx0dGhpcy5fY29tbWFuZCA9IHRoaXMuY29tbWFuZE9yQ3JlYXRvcjtcblx0XHR9IGVsc2UgaWYgKGlzQ29tbWFuZENyZWF0b3IodGhpcy5jb21tYW5kT3JDcmVhdG9yKSkge1xuXHRcdFx0Y29uc3QgaXNBc3luYyA9IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5pc0FzeW5jIHx8IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5pc0FzeW5jID09PSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIHRvZG86IGZpbmQgc29tZXRoaW5nIGxpa2UgdGhpcyBmb3IgaXZ5IChvciBhbmd1bGFyMTArKVxuXHRcdFx0Ly8gY29uc3QgaG9zdENvbXBvbmVudCA9ICh0aGlzLnZpZXdDb250YWluZXIgYXMgYW55KS5fdmlldy5jb21wb25lbnQ7XG5cblx0XHRcdGNvbnN0IGV4ZWNGbiA9IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5leGVjdXRlLmJpbmQodGhpcy5jb21tYW5kT3JDcmVhdG9yLmhvc3QpO1xuXHRcdFx0dGhpcy5jb21tYW5kUGFyYW1zID0gdGhpcy5jb21tYW5kUGFyYW1zIHx8IHRoaXMuY29tbWFuZE9yQ3JlYXRvci5wYXJhbXM7XG5cblx0XHRcdGNvbnN0IGNhbkV4ZWMgPSB0aGlzLmNvbW1hbmRPckNyZWF0b3IuY2FuRXhlY3V0ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uXG5cdFx0XHRcdD8gdGhpcy5jb21tYW5kT3JDcmVhdG9yLmNhbkV4ZWN1dGUuYmluZCh0aGlzLmNvbW1hbmRPckNyZWF0b3IuaG9zdCwgdGhpcy5jb21tYW5kUGFyYW1zKSgpXG5cdFx0XHRcdDogdGhpcy5jb21tYW5kT3JDcmVhdG9yLmNhbkV4ZWN1dGU7XG5cblx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW3NzdkNvbW1hbmQ6OmluaXRdIGNvbW1hbmQgY3JlYXRvclwiLCB7XG5cdFx0XHQvLyBcdGZpcnN0UGFyYW06IHRoaXMuY29tbWFuZFBhcmFtcyA/IHRoaXMuY29tbWFuZFBhcmFtc1swXSA6IG51bGwsXG5cdFx0XHQvLyBcdHBhcmFtczogdGhpcy5jb21tYW5kUGFyYW1zXG5cdFx0XHQvLyB9KTtcblx0XHRcdHRoaXMuX2NvbW1hbmQgPSBuZXcgQ29tbWFuZChleGVjRm4sIGNhbkV4ZWMsIGlzQXN5bmMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYCR7TkFNRV9DQU1FTH06IFske05BTUVfQ0FNRUx9XSBpcyBub3QgZGVmaW5lZCBwcm9wZXJseSFgKTtcblx0XHR9XG5cblx0XHR0aGlzLl9jb21tYW5kLnN1YnNjcmliZSgpO1xuXHRcdHRoaXMuX2NvbW1hbmQuY2FuRXhlY3V0ZSQucGlwZShcblx0XHRcdHRoaXMuY29tbWFuZE9wdGlvbnMuaGFzRGlzYWJsZWREZWxheVxuXHRcdFx0XHQ/IGRlbGF5KDEpXG5cdFx0XHRcdDogdGFwKCgpID0+IHsgLyogc3R1YiAqLyB9KSxcblx0XHRcdHRhcCh4ID0+IHtcblx0XHRcdFx0dGhpcy50cnlTZXREaXNhYmxlZCgheCk7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW3NzdkNvbW1hbmQ6OmNhbkV4ZWN1dGUkXVwiLCB7IGNhbkV4ZWN1dGU6IHggfSk7XG5cdFx0XHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0fSksXG5cdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuXHRcdCkuc3Vic2NyaWJlKCk7XG5cblx0XHRpZiAodGhpcy5fY29tbWFuZC5pc0V4ZWN1dGluZyQpIHtcblx0XHRcdHRoaXMuX2NvbW1hbmQuaXNFeGVjdXRpbmckLnBpcGUoXG5cdFx0XHRcdHRhcCh4ID0+IHtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIltzc3ZDb21tYW5kOjppc0V4ZWN1dGluZyRdXCIsIHgsIHRoaXMuY29tbWFuZE9wdGlvbnMpO1xuXHRcdFx0XHRcdGlmICh4KSB7XG5cdFx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuXHRcdFx0XHRcdFx0XHR0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0XHRcdFx0dGhpcy5jb21tYW5kT3B0aW9ucy5leGVjdXRpbmdDc3NDbGFzc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcblx0XHRcdFx0XHRcdFx0dGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdFx0XHRcdHRoaXMuY29tbWFuZE9wdGlvbnMuZXhlY3V0aW5nQ3NzQ2xhc3Ncblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KSxcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcblx0XHRcdCkuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG5cdG9uQ2xpY2soKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS5sb2coXCJbc3N2Q29tbWFuZDo6b25DbGlja11cIiwgdGhpcy5jb21tYW5kUGFyYW1zKTtcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmNvbW1hbmRQYXJhbXMpKSB7XG5cdFx0XHR0aGlzLl9jb21tYW5kLmV4ZWN1dGUoLi4udGhpcy5jb21tYW5kUGFyYW1zKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fY29tbWFuZC5leGVjdXRlKHRoaXMuY29tbWFuZFBhcmFtcyk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS5sb2coXCJbc3N2Q29tbWFuZDo6ZGVzdHJveV1cIik7XG5cdFx0dGhpcy5fZGVzdHJveSQubmV4dCgpO1xuXHRcdHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG5cdFx0aWYgKHRoaXMuX2NvbW1hbmQpIHtcblx0XHRcdHRoaXMuX2NvbW1hbmQudW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHRyeVNldERpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuY29tbWFuZE9wdGlvbnMuaGFuZGxlRGlzYWJsZWQpIHtcblx0XHRcdC8vIGNvbnNvbGUud2FybihcIj4+Pj4gZGlzYWJsZWRcIiwgeyBpZDogdGhpcy5pZCwgZGlzYWJsZWQgfSk7XG5cdFx0XHR0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBcImRpc2FibGVkXCIsIGRpc2FibGVkKTtcblx0XHR9XG5cdH1cblxufVxuXG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQWMsYUFBYSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pGOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFnQ25COzs7Ozs7T0FNRztJQUNILFlBQ0MsT0FBd0MsRUFDeEMsV0FBaUMsRUFDakMsT0FBaUI7UUF6QmxCLG9FQUFvRTtRQUNwRSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUtYLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUN0RCxrQkFBYSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbkMsaUJBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNyQyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFjNUIsSUFBSSxXQUFXLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhO2dCQUNsQixXQUFXO2FBQ1gsQ0FBQyxDQUFDLElBQUksQ0FDTixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLHVGQUF1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c2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0LCBvZiwgRU1QVFkgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFwLCBtYXAsIGZpbHRlciwgc3dpdGNoTWFwLCBjYXRjaEVycm9yLCBmaW5hbGl6ZSwgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgSUNvbW1hbmQgfSBmcm9tIFwiLi9jb21tYW5kLm1vZGVsXCI7XG5cbi8qKlxuICogQ29tbWFuZCBvYmplY3QgdXNlZCB0byBlbmNhcHN1bGF0ZSBpbmZvcm1hdGlvbiB3aGljaCBpcyBuZWVkZWQgdG8gcGVyZm9ybSBhbiBhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tYW5kIGltcGxlbWVudHMgSUNvbW1hbmQge1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0Z2V0IGlzRXhlY3V0aW5nKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9pc0V4ZWN1dGluZztcblx0fVxuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3Igbm90LCBhcyBhIHNuYXBzaG90IHZhbHVlLiAqL1xuXHRnZXQgY2FuRXhlY3V0ZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5fY2FuRXhlY3V0ZTtcblx0fVxuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYW4gb2JzZXJ2YWJsZS4gKi9cblx0Z2V0IGlzRXhlY3V0aW5nJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcblx0XHRyZXR1cm4gdGhpcy5faXNFeGVjdXRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuXHR9XG5cblx0LyoqIERldGVybWluZXMgd2hldGhlciB0byBhdXRvIGRlc3Ryb3kgd2hlbiBoYXZpbmcgMCBzdWJzY3JpYmVycy4gKi9cblx0YXV0b0Rlc3Ryb3kgPSB0cnVlO1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgY2FuIGV4ZWN1dGUgb3Igbm90LCBhcyBhbiBvYnNlcnZhYmxlLiAqL1xuXHRyZWFkb25seSBjYW5FeGVjdXRlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXHRwcml2YXRlIF9pc0V4ZWN1dGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblx0cHJpdmF0ZSBfaXNFeGVjdXRpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBfY2FuRXhlY3V0ZSA9IHRydWU7XG5cdHByaXZhdGUgZXhlY3V0aW9uUGlwZSQgPSBuZXcgU3ViamVjdDx1bmtub3duW10gfCB1bmRlZmluZWQ+KCk7XG5cdHByaXZhdGUgaXNFeGVjdXRpbmckJCA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblx0cHJpdmF0ZSBjYW5FeGVjdXRlJCQgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cdHByaXZhdGUgZXhlY3V0aW9uUGlwZSQkID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuXHRwcml2YXRlIHN1YnNjcmliZXJzQ291bnQgPSAwO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIENvbW1hbmQuXG5cdCAqXG5cdCAqIEBwYXJhbSBleGVjdXRlIEV4ZWN1dGUgZnVuY3Rpb24gdG8gaW52b2tlIC0gdXNlIGBpc0FzeW5jOiB0cnVlYCB3aGVuIGBPYnNlcnZhYmxlPGFueT5gLlxuXHQgKiBAcGFyYW0gY2FuRXhlY3V0ZSBPYnNlcnZhYmxlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciBpdCBjYW4gZXhlY3V0ZSBvciBub3QuXG5cdCAqIEBwYXJhbSBpc0FzeW5jIEluZGljYXRlcyB0aGF0IHRoZSBleGVjdXRlIGZ1bmN0aW9uIGlzIGFzeW5jIGUuZy4gT2JzZXJ2YWJsZS5cblx0ICovXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGV4ZWN1dGU6ICguLi5hcmdzOiB1bmtub3duW10pID0+IHVua25vd24sXG5cdFx0Y2FuRXhlY3V0ZSQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuXHRcdGlzQXN5bmM/OiBib29sZWFuLFxuXHQpIHtcblx0XHRpZiAoY2FuRXhlY3V0ZSQpIHtcblx0XHRcdHRoaXMuY2FuRXhlY3V0ZSQgPSBjb21iaW5lTGF0ZXN0KFtcblx0XHRcdFx0dGhpcy5faXNFeGVjdXRpbmckLFxuXHRcdFx0XHRjYW5FeGVjdXRlJFxuXHRcdFx0XSkucGlwZShcblx0XHRcdFx0bWFwKChbaXNFeGVjdXRpbmcsIGNhbkV4ZWN1dGVSZXN1bHRdKSA9PiB7XG5cdFx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJbY29tbWFuZDo6Y29tYmluZUxhdGVzdCRdIHVwZGF0ZSFcIiwgeyBpc0V4ZWN1dGluZywgY2FuRXhlY3V0ZVJlc3VsdCB9KTtcblx0XHRcdFx0XHR0aGlzLl9pc0V4ZWN1dGluZyA9IGlzRXhlY3V0aW5nO1xuXHRcdFx0XHRcdHRoaXMuX2NhbkV4ZWN1dGUgPSAhaXNFeGVjdXRpbmcgJiYgISFjYW5FeGVjdXRlUmVzdWx0O1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9jYW5FeGVjdXRlO1xuXHRcdFx0XHR9KSxcblx0XHRcdCk7XG5cdFx0XHR0aGlzLmNhbkV4ZWN1dGUkJCA9IHRoaXMuY2FuRXhlY3V0ZSQuc3Vic2NyaWJlKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2FuRXhlY3V0ZSQgPSB0aGlzLl9pc0V4ZWN1dGluZyQucGlwZShcblx0XHRcdFx0bWFwKHggPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGNhbkV4ZWN1dGUgPSAheDtcblx0XHRcdFx0XHR0aGlzLl9jYW5FeGVjdXRlID0gY2FuRXhlY3V0ZTtcblx0XHRcdFx0XHRyZXR1cm4gY2FuRXhlY3V0ZTtcblx0XHRcdFx0fSlcblx0XHRcdCk7XG5cdFx0XHR0aGlzLmlzRXhlY3V0aW5nJCQgPSB0aGlzLl9pc0V4ZWN1dGluZyRcblx0XHRcdFx0LnBpcGUodGFwKHggPT4gdGhpcy5faXNFeGVjdXRpbmcgPSB4KSlcblx0XHRcdFx0LnN1YnNjcmliZSgpO1xuXHRcdH1cblx0XHR0aGlzLmV4ZWN1dGlvblBpcGUkJCA9IHRoaXMuYnVpbGRFeGVjdXRpb25QaXBlKGV4ZWN1dGUsIGlzQXN5bmMpLnN1YnNjcmliZSgpO1xuXHR9XG5cblx0LyoqIEV4ZWN1dGUgZnVuY3Rpb24gdG8gaW52b2tlLiAqL1xuXHRleGVjdXRlKC4uLmFyZ3M6IHVua25vd25bXSk6IHZvaWQge1xuXHRcdC8vIGNvbnNvbGUud2FybihcIltjb21tYW5kOjpleGVjdXRlXVwiLCBhcmdzKTtcblx0XHR0aGlzLmV4ZWN1dGlvblBpcGUkLm5leHQoYXJncyk7XG5cdH1cblxuXHQvKiogRGlzcG9zZXMgYWxsIHJlc291cmNlcyBoZWxkIGJ5IHN1YnNjcmlwdGlvbnMuICovXG5cdGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0Ly8gY29uc29sZS53YXJuKFwiW2NvbW1hbmQ6OmRlc3Ryb3ldXCIpO1xuXHRcdHRoaXMuZXhlY3V0aW9uUGlwZSQkLnVuc3Vic2NyaWJlKCk7XG5cdFx0dGhpcy5jYW5FeGVjdXRlJCQudW5zdWJzY3JpYmUoKTtcblx0XHR0aGlzLmlzRXhlY3V0aW5nJCQudW5zdWJzY3JpYmUoKTtcblx0fVxuXG5cdHN1YnNjcmliZSgpOiB2b2lkIHtcblx0XHR0aGlzLnN1YnNjcmliZXJzQ291bnQrKztcblx0fVxuXG5cdHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXHRcdHRoaXMuc3Vic2NyaWJlcnNDb3VudC0tO1xuXHRcdC8vIGNvbnNvbGUubG9nKFwiW2NvbW1hbmQ6OnVuc3Vic2NyaWJlXVwiLCB7IGF1dG9EZXN0cm95OiB0aGlzLmF1dG9EZXN0cm95LCBzdWJzY3JpYmVyc0NvdW50OiB0aGlzLnN1YnNjcmliZXJzQ291bnQgfSk7XG5cdFx0aWYgKHRoaXMuYXV0b0Rlc3Ryb3kgJiYgdGhpcy5zdWJzY3JpYmVyc0NvdW50IDw9IDApIHtcblx0XHRcdHRoaXMuZGVzdHJveSgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYnVpbGRFeGVjdXRpb25QaXBlKGV4ZWN1dGU6ICguLi5hcmdzOiB1bmtub3duW10pID0+IGFueSwgaXNBc3luYz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcblx0XHRsZXQgcGlwZSQgPSB0aGlzLmV4ZWN1dGlvblBpcGUkLnBpcGUoXG5cdFx0XHQvLyB0YXAoeCA9PiBjb25zb2xlLndhcm4oXCI+Pj4+IGV4ZWN1dGlvblBpcGVcIiwgdGhpcy5fY2FuRXhlY3V0ZSkpLFxuXHRcdFx0ZmlsdGVyKCgpID0+IHRoaXMuX2NhbkV4ZWN1dGUpLFxuXHRcdFx0dGFwKCgpID0+IHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJbY29tbWFuZDo6ZXhlY3V0aW9uUGlwZSRdIGRvIzEgLSBzZXQgZXhlY3V0ZVwiLCB7IGFyZ3M6IHggfSk7XG5cdFx0XHRcdHRoaXMuX2lzRXhlY3V0aW5nJC5uZXh0KHRydWUpO1xuXHRcdFx0fSlcblx0XHQpO1xuXG5cdFx0Y29uc3QgZXhlY0ZuID0gaXNBc3luY1xuXHRcdFx0PyBzd2l0Y2hNYXA8dW5rbm93bltdIHwgdW5kZWZpbmVkLCBhbnlbXT4oYXJncyA9PiB7XG5cdFx0XHRcdGlmIChhcmdzKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGV4ZWN1dGUoLi4uYXJncyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGV4ZWN1dGUoKTtcblx0XHRcdH0pXG5cdFx0XHQ6IHRhcCgoYXJnczogdW5rbm93bltdIHwgdW5kZWZpbmVkKSA9PiB7XG5cdFx0XHRcdGlmIChhcmdzKSB7XG5cdFx0XHRcdFx0ZXhlY3V0ZSguLi5hcmdzKTtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0ZXhlY3V0ZSgpO1xuXHRcdFx0fSk7XG5cblx0XHRwaXBlJCA9IHBpcGUkLnBpcGUoXG5cdFx0XHRzd2l0Y2hNYXAoYXJncyA9PiBvZihhcmdzKS5waXBlKFxuXHRcdFx0XHRleGVjRm4sXG5cdFx0XHRcdGZpbmFsaXplKCgpID0+IHtcblx0XHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIltjb21tYW5kOjpleGVjdXRpb25QaXBlJF0gIGZpbmFsaXplIGlubmVyIzEgLSBzZXQgaWRsZVwiKTtcblx0XHRcdFx0XHR0aGlzLl9pc0V4ZWN1dGluZyQubmV4dChmYWxzZSk7XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHR0YWtlKDEpLFxuXHRcdFx0XHRjYXRjaEVycm9yKGVycm9yID0+IHtcblx0XHRcdFx0XHRjb25zb2xlLmVycm9yKFwiVW5oYW5kbGVkIGV4ZWN1dGUgZXJyb3JcIiwgZXJyb3IpO1xuXHRcdFx0XHRcdHJldHVybiBFTVBUWTtcblx0XHRcdFx0fSksXG5cdFx0XHQpKSxcblx0XHRcdHRhcChcblx0XHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiW2NvbW1hbmQ6OmV4ZWN1dGlvblBpcGUkXSB0YXAjMiAtIHNldCBpZGxlXCIpO1xuXHRcdFx0XHRcdHRoaXMuX2lzRXhlY3V0aW5nJC5uZXh0KGZhbHNlKTtcblx0XHRcdFx0fSxcblx0XHRcdClcblx0XHQpO1xuXHRcdHJldHVybiBwaXBlJDtcblx0fVxuXG59XG5cbi8qKlxuICogQXN5bmMgQ29tbWFuZCBvYmplY3QgdXNlZCB0byBlbmNhcHN1bGF0ZSBpbmZvcm1hdGlvbiB3aGljaCBpcyBuZWVkZWQgdG8gcGVyZm9ybSBhbiBhY3Rpb24sXG4gKiB3aGljaCB0YWtlcyBhbiBleGVjdXRlIGZ1bmN0aW9uIGFzIE9ic2VydmFibGUvUHJvbWlzZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbW1hbmRBc3luYyBleHRlbmRzIENvbW1hbmQge1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdGV4ZWN1dGU6ICguLi5hcmdzOiBhbnlbXSkgPT4gT2JzZXJ2YWJsZTx1bmtub3duPiB8IFByb21pc2U8dW5rbm93bj4sXG5cdFx0Y2FuRXhlY3V0ZSQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+LFxuXHQpIHtcblx0XHRzdXBlcihleGVjdXRlLCBjYW5FeGVjdXRlJCwgdHJ1ZSk7XG5cdH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29tbWFuZCB7XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0cmVhZG9ubHkgaXNFeGVjdXRpbmc6IGJvb2xlYW47XG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGNvbW1hbmQgaXMgY3VycmVudGx5IGV4ZWN1dGluZywgYXMgYW4gb2JzZXJ2YWJsZS4gKi9cblx0cmVhZG9ubHkgaXNFeGVjdXRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb21tYW5kIGNhbiBleGVjdXRlIG9yIG5vdCwgYXMgYSBzbmFwc2hvdCB2YWx1ZS4gKi9cblx0cmVhZG9ubHkgY2FuRXhlY3V0ZTogYm9vbGVhbjtcblx0LyoqIERldGVybWluZXMgd2hldGhlciB0aGUgY29tbWFuZCBjYW4gZXhlY3V0ZSBvciBub3QsIGFzIGFuIG9ic2VydmFibGUuICovXG5cdHJlYWRvbmx5IGNhbkV4ZWN1dGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG5cdC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gYXV0byBkZXN0cm95IHdoZW4gaGF2aW5nIDAgc3Vic2NyaWJlcnMgKGRlZmF1bHRzIHRvIGB0cnVlYCkuICovXG5cdGF1dG9EZXN0cm95OiBib29sZWFuO1xuXG5cdC8qKiBFeGVjdXRlIGZ1bmN0aW9uIHRvIGludm9rZS4gKi9cblx0ZXhlY3V0ZSguLi5hcmdzOiB1bmtub3duW10pOiB2b2lkO1xuXG5cdC8qKiBEaXNwb3NlcyBhbGwgcmVzb3VyY2VzIGhlbGQgYnkgc3Vic2NyaXB0aW9ucy4gKi9cblx0ZGVzdHJveSgpOiB2b2lkO1xuXG5cdC8qKiBTdWJzY3JpYmUgbGlzdGVuZXIsIGluIG9yZGVyIHRvIGhhbmRsZSBhdXRvIGRpc3Bvc2luZy4gKi9cblx0c3Vic2NyaWJlKCk6IHZvaWQ7XG5cblx0LyoqIFVuc3Vic2NyaWJlIGxpc3RlbmVyLCBpbiBvcmRlciB0byBoYW5kbGUgYXV0byBkaXNwb3NpbmcuICovXG5cdHVuc3Vic2NyaWJlKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZENyZWF0b3Ige1xuXHRleGVjdXRlOiAoLi4uYXJnczogYW55W10pID0+IE9ic2VydmFibGU8dW5rbm93bj4gfCBQcm9taXNlPHVua25vd24+IHwgdm9pZDtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcblx0Y2FuRXhlY3V0ZT86IE9ic2VydmFibGU8Ym9vbGVhbj4gfCBGdW5jdGlvbjtcblx0cGFyYW1zPzogdW5rbm93biB8IHVua25vd25bXTtcblx0aXNBc3luYz86IGJvb2xlYW47XG5cdGhvc3Q6IHVua25vd247XG59XG4iXX0=
@@ -1,29 +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 = { 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=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0IvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25ELGlCQUFpQixFQUFFLFdBQVc7SUFDOUIsY0FBYyxFQUFFLElBQUk7SUFDcEIsZ0JBQWdCLEVBQUUsS0FBSztDQUNMLENBQUMsQ0FBQztBQUVyQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWlCLGdCQUFnQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZE9wdGlvbnMge1xuXHQvKipcblx0ICogQ3NzIENsYXNzIHdoaWNoIGdldHMgYWRkZWQvcmVtb3ZlZCBvbiB0aGUgQ29tbWFuZCBlbGVtZW50J3MgaG9zdCB3aGlsZSBDb21tYW5kIGBpc0V4ZWN1dGluZyRgLlxuXHQgKi9cblx0ZXhlY3V0aW5nQ3NzQ2xhc3M6IHN0cmluZztcblxuXHQvKiogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBkaXNhYmxlZCB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIGRpcmVjdGl2ZSBvciBub3QuXG5cdCAqIERpc2FibGUgaGFuZGxlZCBieSBkaXJlY3RpdmUncyBkb2Vzbid0IGFsd2F5cyBwbGF5IG5pY2Ugd2hlbiB1c2VkIHdpdGggb3RoZXIgY29tcG9uZW50L3BpcGUvZGlyZWN0aXZlIGFuZCB0aGV5IGFsc28gaGFuZGxlIGRpc2FibGVkLlxuXHQgKiBUaGlzIGRpc2FibGVzIHRoZSBoYW5kbGluZyBtYW51YWxseSBhbmQgbmVlZCB0byBwYXNzIGV4cGxpY2l0bHkgYFtkaXNhYmxlZF09XCIhc2F2ZUNtZC5jYW5FeGVjdXRlXCJgLlxuXHQgKi9cblx0aGFuZGxlRGlzYWJsZWQ6IGJvb2xlYW47XG5cblx0LyoqIERldGVybWluZSB3aGV0aGVyIHRvIHNldCBhIGBkZWxheSgxKWAgd2hlbiBzZXR0aW5nIHRoZSBkaXNhYmxlZC4gV2hpY2ggbWlnaHQgYmUgbmVlZGVkIHdoZW4gd29ya2luZyB3aXRoIGV4dGVybmFsXG5cdCAqIGNvbXBvbmVudHMvZGlyZWN0aXZlcyAoc3VjaCBhcyBtYXRlcmlhbCBidXR0b24pXG5cdCAqL1xuXHRoYXNEaXNhYmxlZERlbGF5OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgQ09NTUFORF9ERUZBVUxUX0NPTkZJRyA9IE9iamVjdC5mcmVlemUoe1xuXHRleGVjdXRpbmdDc3NDbGFzczogXCJleGVjdXRpbmdcIixcblx0aGFuZGxlRGlzYWJsZWQ6IHRydWUsXG5cdGhhc0Rpc2FibGVkRGVsYXk6IGZhbHNlLFxufSBhcyBDb21tYW5kT3B0aW9ucyk7XG5cbmV4cG9ydCBjb25zdCBDT01NQU5EX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21tYW5kT3B0aW9ucz4oXCJjb21tYW5kLWNvbmZpZ1wiKTtcbiJdfQ==
package/esm2020/index.mjs 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZC1yZWYuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kLnV0aWxcIjtcbmV4cG9ydCB7IENvbW1hbmRDcmVhdG9yLCBJQ29tbWFuZCB9IGZyb20gXCIuL2NvbW1hbmQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi92ZXJzaW9uXCI7XG4iXX0=
@@ -1,49 +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
- 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=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3N2LW5neC5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nzdi1uZ3guY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export const VERSION = "2.3.2-dev.11";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiMi4zLjItZGV2LjExXCI7XG4iXX0=