imng-kendo-data-entry 4.89.7 → 4.102.18

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 (86) hide show
  1. package/README.md +1 -1
  2. package/{esm2015/imng-kendo-data-entry.js → esm2020/imng-kendo-data-entry.mjs} +0 -0
  3. package/{esm2015/index.js → esm2020/index.mjs} +2 -2
  4. package/esm2020/lib/base-data-entry.component.mjs +75 -0
  5. package/{esm2015/lib/data-delete-facade.js → esm2020/lib/data-delete-facade.mjs} +0 -0
  6. package/esm2020/lib/data-entry-dialog.component.mjs +112 -0
  7. package/{esm2015/lib/data-entry-facade.js → esm2020/lib/data-entry-facade.mjs} +0 -0
  8. package/{esm2015/lib/dialog-buttons.directive.js → esm2020/lib/dialog-buttons.directive.mjs} +4 -4
  9. package/{esm2015/lib/form-group-patcher.js → esm2020/lib/form-group-patcher.mjs} +0 -0
  10. package/esm2020/lib/imng-kendo-data-entry.module.mjs +20 -0
  11. package/esm2020/lib/reducer-collection-logic.mjs +18 -0
  12. package/esm2020/testing/data-delete-facade-http-tests.mjs +13 -0
  13. package/{esm2015/testing/data-delete-mock.facade.js → esm2020/testing/data-delete-mock.facade.mjs} +0 -0
  14. package/esm2020/testing/data-entry-facade-http-tests.mjs +24 -0
  15. package/esm2020/testing/data-entry-facade-tests.mjs +43 -0
  16. package/esm2020/testing/data-entry-mock.facade.mjs +36 -0
  17. package/{esm2015/testing/imng-kendo-data-entry-testing.js → esm2020/testing/imng-kendo-data-entry-testing.mjs} +2 -2
  18. package/{esm2015/testing/index.js → esm2020/testing/index.mjs} +0 -0
  19. package/{esm2015/testing/mock-data-entry-dialog.component.js → esm2020/testing/mock-data-entry-dialog.component.mjs} +0 -0
  20. package/{esm2015/testing/test-trigger-event-helpers.js → esm2020/testing/test-trigger-event-helpers.mjs} +0 -0
  21. package/fesm2015/{imng-kendo-data-entry-testing.js → imng-kendo-data-entry-testing.mjs} +10 -6
  22. package/fesm2015/imng-kendo-data-entry-testing.mjs.map +1 -0
  23. package/fesm2015/imng-kendo-data-entry.mjs +247 -0
  24. package/fesm2015/imng-kendo-data-entry.mjs.map +1 -0
  25. package/fesm2020/imng-kendo-data-entry-testing.mjs +159 -0
  26. package/fesm2020/imng-kendo-data-entry-testing.mjs.map +1 -0
  27. package/{fesm2015/imng-kendo-data-entry.js → fesm2020/imng-kendo-data-entry.mjs} +66 -31
  28. package/fesm2020/imng-kendo-data-entry.mjs.map +1 -0
  29. package/imng-kendo-data-entry.d.ts +0 -1
  30. package/index.d.ts +1 -2
  31. package/lib/base-data-entry.component.d.ts +5 -6
  32. package/lib/data-delete-facade.d.ts +0 -1
  33. package/lib/data-entry-dialog.component.d.ts +8 -9
  34. package/lib/data-entry-facade.d.ts +0 -1
  35. package/lib/dialog-buttons.directive.d.ts +0 -1
  36. package/lib/form-group-patcher.d.ts +0 -1
  37. package/lib/{data-entry.module.d.ts → imng-kendo-data-entry.module.d.ts} +0 -1
  38. package/lib/reducer-collection-logic.d.ts +0 -1
  39. package/package.json +44 -17
  40. package/testing/README.md +3 -0
  41. package/testing/data-delete-facade-http-tests.d.ts +0 -1
  42. package/testing/data-delete-mock.facade.d.ts +1 -2
  43. package/testing/data-entry-facade-http-tests.d.ts +0 -1
  44. package/testing/data-entry-facade-tests.d.ts +2 -3
  45. package/testing/data-entry-mock.facade.d.ts +4 -5
  46. package/testing/imng-kendo-data-entry-testing.d.ts +1 -2
  47. package/testing/index.d.ts +0 -1
  48. package/testing/mock-data-entry-dialog.component.d.ts +1 -2
  49. package/testing/package.json +5 -5
  50. package/testing/test-trigger-event-helpers.d.ts +0 -1
  51. package/bundles/imng-kendo-data-entry-testing.umd.js +0 -561
  52. package/bundles/imng-kendo-data-entry-testing.umd.js.map +0 -1
  53. package/bundles/imng-kendo-data-entry.umd.js +0 -544
  54. package/bundles/imng-kendo-data-entry.umd.js.map +0 -1
  55. package/esm2015/lib/base-data-entry.component.js +0 -73
  56. package/esm2015/lib/data-entry-dialog.component.js +0 -79
  57. package/esm2015/lib/data-entry.module.js +0 -20
  58. package/esm2015/lib/reducer-collection-logic.js +0 -18
  59. package/esm2015/testing/data-delete-facade-http-tests.js +0 -16
  60. package/esm2015/testing/data-entry-facade-http-tests.js +0 -29
  61. package/esm2015/testing/data-entry-facade-tests.js +0 -52
  62. package/esm2015/testing/data-entry-mock.facade.js +0 -32
  63. package/esm2015/testing/public_api.js +0 -2
  64. package/fesm2015/imng-kendo-data-entry-testing.js.map +0 -1
  65. package/fesm2015/imng-kendo-data-entry.js.map +0 -1
  66. package/imng-kendo-data-entry.d.ts.map +0 -1
  67. package/index.d.ts.map +0 -1
  68. package/lib/base-data-entry.component.d.ts.map +0 -1
  69. package/lib/data-delete-facade.d.ts.map +0 -1
  70. package/lib/data-entry-dialog.component.d.ts.map +0 -1
  71. package/lib/data-entry-facade.d.ts.map +0 -1
  72. package/lib/data-entry.module.d.ts.map +0 -1
  73. package/lib/dialog-buttons.directive.d.ts.map +0 -1
  74. package/lib/form-group-patcher.d.ts.map +0 -1
  75. package/lib/reducer-collection-logic.d.ts.map +0 -1
  76. package/testing/data-delete-facade-http-tests.d.ts.map +0 -1
  77. package/testing/data-delete-mock.facade.d.ts.map +0 -1
  78. package/testing/data-entry-facade-http-tests.d.ts.map +0 -1
  79. package/testing/data-entry-facade-tests.d.ts.map +0 -1
  80. package/testing/data-entry-mock.facade.d.ts.map +0 -1
  81. package/testing/imng-kendo-data-entry-testing.d.ts.map +0 -1
  82. package/testing/index.d.ts.map +0 -1
  83. package/testing/mock-data-entry-dialog.component.d.ts.map +0 -1
  84. package/testing/public_api.d.ts +0 -2
  85. package/testing/public_api.d.ts.map +0 -1
  86. package/testing/test-trigger-event-helpers.d.ts.map +0 -1
package/README.md CHANGED
@@ -4,4 +4,4 @@ This library was generated with [Nx](https://nx.dev).
4
4
 
5
5
  ## Running unit tests
6
6
 
7
- Run `ng test imng-kendo-data-entry` to execute the unit tests.
7
+ Run `nx test imng-kendo-data-entry` to execute the unit tests.
@@ -1,4 +1,4 @@
1
- export * from './lib/data-entry.module';
1
+ export * from './lib/imng-kendo-data-entry.module';
2
2
  export * from './lib/data-entry-dialog.component';
3
3
  export * from './lib/base-data-entry.component';
4
4
  export * from './lib/data-entry-facade';
@@ -6,4 +6,4 @@ export * from './lib/data-delete-facade';
6
6
  export * from './lib/reducer-collection-logic';
7
7
  export * from './lib/form-group-patcher';
8
8
  export * from './lib/dialog-buttons.directive';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZGF0YS1lbnRyeS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1lbnRyeS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1lbnRyeS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Jhc2UtZGF0YS1lbnRyeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1lbnRyeS1mYWNhZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1kZWxldGUtZmFjYWRlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZHVjZXItY29sbGVjdGlvbi1sb2dpYyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWdyb3VwLXBhdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlhbG9nLWJ1dHRvbnMuZGlyZWN0aXZlJztcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZGF0YS1lbnRyeS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW1uZy1rZW5kby1kYXRhLWVudHJ5Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWVudHJ5LWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFzZS1kYXRhLWVudHJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWVudHJ5LWZhY2FkZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWRlbGV0ZS1mYWNhZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdWNlci1jb2xsZWN0aW9uLWxvZ2ljJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tZ3JvdXAtcGF0Y2hlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaWFsb2ctYnV0dG9ucy5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,75 @@
1
+ import { Directive, Inject, InjectionToken, Input, } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { Subscriptions } from 'imng-ngrx-utils';
4
+ import * as i0 from "@angular/core";
5
+ const FACADE = new InjectionToken('imng-data-entry-facade');
6
+ /**
7
+ * The extending class has to implement the following properties on ngInit
8
+ * dialogTitle: string - This will be the text displayed at the top of the modal title bar
9
+ * props: enum - This is a helper property to make the html markup type safe
10
+ *
11
+ * Along with the requirements above, the extending class has to set values to the
12
+ * following properties on ngInit
13
+ * active$: Observable<boolean> - This typically would be assigned to the isNewActive$ or isEditActive on the facade
14
+ * addEditForm: FormGroup - This will be created by your component
15
+ *
16
+ * @class BaseDataEntryComponent>
17
+ */
18
+ export class BaseDataEntryComponent {
19
+ constructor(facade) {
20
+ this.facade = facade;
21
+ this.width = 800; //NOSONAR
22
+ this.height = 600; //NOSONAR
23
+ this.allSubscriptions = new Subscriptions();
24
+ this._submitted$ = new BehaviorSubject(false);
25
+ this.loading$ = this.facade.loading$;
26
+ this.initForm();
27
+ }
28
+ get submitted$() {
29
+ return this._submitted$.asObservable();
30
+ }
31
+ // convenience getter for easy access to form fields
32
+ formControl(controlName) {
33
+ return this.addEditForm?.controls[controlName];
34
+ }
35
+ formControlErrors(controlName) {
36
+ return this.addEditForm?.controls[controlName].errors || undefined;
37
+ }
38
+ ngOnDestroy() {
39
+ this.allSubscriptions.unsubscribeAll();
40
+ }
41
+ closeForm() {
42
+ this.initForm();
43
+ this.facade.clearCurrentEntity();
44
+ this._submitted$.next(false);
45
+ }
46
+ onCancel() {
47
+ this.closeForm();
48
+ }
49
+ onSubmit() {
50
+ this._submitted$.next(true);
51
+ // stop here if form is invalid
52
+ if (this.isDataInvalid()) {
53
+ console.error('form validation errors.'); //NOSONAR
54
+ return;
55
+ }
56
+ this.save();
57
+ this.closeForm();
58
+ }
59
+ isDataInvalid() {
60
+ return this.addEditForm?.invalid;
61
+ }
62
+ }
63
+ BaseDataEntryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: BaseDataEntryComponent, deps: [{ token: FACADE }], target: i0.ɵɵFactoryTarget.Directive });
64
+ BaseDataEntryComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: BaseDataEntryComponent, inputs: { width: "width", height: "height" }, ngImport: i0 });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: BaseDataEntryComponent, decorators: [{
66
+ type: Directive
67
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
68
+ type: Inject,
69
+ args: [FACADE]
70
+ }] }]; }, propDecorators: { width: [{
71
+ type: Input
72
+ }], height: [{
73
+ type: Input
74
+ }] } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kYXRhLWVudHJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1rZW5kby1kYXRhLWVudHJ5L3NyYy9saWIvYmFzZS1kYXRhLWVudHJ5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbkQsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFOUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQy9CLHdCQUF3QixDQUN6QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxNQUFNLE9BQWdCLHNCQUFzQjtJQXlCMUMsWUFBNEMsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUF0QjFDLFVBQUssR0FBb0IsR0FBRyxDQUFDLENBQUMsU0FBUztRQUN2QyxXQUFNLEdBQW9CLEdBQUcsQ0FBQyxDQUFDLFNBQVM7UUFFakQscUJBQWdCLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUs3QixnQkFBVyxHQUE2QixJQUFJLGVBQWUsQ0FDMUUsS0FBZ0IsQ0FDakIsQ0FBQztRQWFBLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFiRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFDRCxvREFBb0Q7SUFDN0MsV0FBVyxDQUFDLFdBQW1CO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNNLGlCQUFpQixDQUFDLFdBQW1CO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQztJQUNyRSxDQUFDO0lBTU0sV0FBVztRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUIsK0JBQStCO1FBQy9CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDbkQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUM7SUFDbkMsQ0FBQzs7bUhBMURtQixzQkFBc0Isa0JBeUJ0QixNQUFNO3VHQXpCTixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEM0MsU0FBUzs7MEJBMEJLLE1BQU07MkJBQUMsTUFBTTs0Q0F0QlYsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJQmFzZURhdGFFbnRyeUZhY2FkZSB9IGZyb20gJy4vZGF0YS1lbnRyeS1mYWNhZGUnO1xuaW1wb3J0IHsgU3Vic2NyaWJhYmxlLCBTdWJzY3JpcHRpb25zIH0gZnJvbSAnaW1uZy1uZ3J4LXV0aWxzJztcblxuY29uc3QgRkFDQURFID0gbmV3IEluamVjdGlvblRva2VuPElCYXNlRGF0YUVudHJ5RmFjYWRlPihcbiAgJ2ltbmctZGF0YS1lbnRyeS1mYWNhZGUnXG4pO1xuXG4vKipcbiAqIFRoZSBleHRlbmRpbmcgY2xhc3MgaGFzIHRvIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgb24gbmdJbml0XG4gKiBkaWFsb2dUaXRsZTogc3RyaW5nIC0gVGhpcyB3aWxsIGJlIHRoZSB0ZXh0IGRpc3BsYXllZCBhdCB0aGUgdG9wIG9mIHRoZSBtb2RhbCB0aXRsZSBiYXJcbiAqIHByb3BzOiBlbnVtIC0gVGhpcyBpcyBhIGhlbHBlciBwcm9wZXJ0eSB0byBtYWtlIHRoZSBodG1sIG1hcmt1cCB0eXBlIHNhZmVcbiAqXG4gKiBBbG9uZyB3aXRoIHRoZSByZXF1aXJlbWVudHMgYWJvdmUsIHRoZSBleHRlbmRpbmcgY2xhc3MgaGFzIHRvIHNldCB2YWx1ZXMgdG8gdGhlXG4gKiBmb2xsb3dpbmcgcHJvcGVydGllcyBvbiBuZ0luaXRcbiAqIGFjdGl2ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gLSBUaGlzIHR5cGljYWxseSB3b3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgaXNOZXdBY3RpdmUkIG9yIGlzRWRpdEFjdGl2ZSBvbiB0aGUgZmFjYWRlXG4gKiBhZGRFZGl0Rm9ybTogRm9ybUdyb3VwIC0gVGhpcyB3aWxsIGJlIGNyZWF0ZWQgYnkgeW91ciBjb21wb25lbnRcbiAqXG4gKiBAY2xhc3MgQmFzZURhdGFFbnRyeUNvbXBvbmVudD5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZURhdGFFbnRyeUNvbXBvbmVudDxcbiAgRkFDQURFIGV4dGVuZHMgSUJhc2VEYXRhRW50cnlGYWNhZGVcbiAgPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgU3Vic2NyaWJhYmxlIHtcbiAgQElucHV0KCkgcHVibGljIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSA4MDA7IC8vTk9TT05BUlxuICBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgPSA2MDA7IC8vTk9TT05BUlxuXG4gIHB1YmxpYyBhbGxTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbnMoKTtcbiAgcHVibGljIGFic3RyYWN0IGRpYWxvZ1RpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCBwcm9wczogdW5rbm93bjtcbiAgcHVibGljIGFkZEVkaXRGb3JtPzogRm9ybUdyb3VwO1xuICBwdWJsaWMgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N1Ym1pdHRlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgZmFsc2UgYXMgYm9vbGVhblxuICApO1xuXG4gIHB1YmxpYyBnZXQgc3VibWl0dGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VibWl0dGVkJC5hc09ic2VydmFibGUoKTtcbiAgfVxuICAvLyBjb252ZW5pZW5jZSBnZXR0ZXIgZm9yIGVhc3kgYWNjZXNzIHRvIGZvcm0gZmllbGRzXG4gIHB1YmxpYyBmb3JtQ29udHJvbChjb250cm9sTmFtZTogc3RyaW5nKTogQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5hZGRFZGl0Rm9ybT8uY29udHJvbHNbY29udHJvbE5hbWVdO1xuICB9XG4gIHB1YmxpYyBmb3JtQ29udHJvbEVycm9ycyhjb250cm9sTmFtZTogc3RyaW5nKTogVmFsaWRhdGlvbkVycm9ycyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRWRpdEZvcm0/LmNvbnRyb2xzW2NvbnRyb2xOYW1lXS5lcnJvcnMgfHwgdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRkFDQURFKSBwdWJsaWMgcmVhZG9ubHkgZmFjYWRlOiBGQUNBREUpIHtcbiAgICB0aGlzLmxvYWRpbmckID0gdGhpcy5mYWNhZGUubG9hZGluZyQ7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWxsU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZUFsbCgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5mYWNhZGUuY2xlYXJDdXJyZW50RW50aXR5KCk7XG4gICAgdGhpcy5fc3VibWl0dGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRm9ybSgpO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1Ym1pdHRlZCQubmV4dCh0cnVlKTtcblxuICAgIC8vIHN0b3AgaGVyZSBpZiBmb3JtIGlzIGludmFsaWRcbiAgICBpZiAodGhpcy5pc0RhdGFJbnZhbGlkKCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2Zvcm0gdmFsaWRhdGlvbiBlcnJvcnMuJyk7IC8vTk9TT05BUlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNhdmUoKTtcbiAgICB0aGlzLmNsb3NlRm9ybSgpO1xuICB9XG5cbiAgcHVibGljIGlzRGF0YUludmFsaWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRWRpdEZvcm0/LmludmFsaWQ7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgaW5pdEZvcm0oKTogdm9pZDtcbiAgcHVibGljIGFic3RyYWN0IHNhdmUoKTogdm9pZDtcbn1cbiJdfQ==
@@ -0,0 +1,112 @@
1
+ import { Component, Input, ChangeDetectionStrategy, TemplateRef, ContentChild, } from '@angular/core';
2
+ import { BaseDataEntryComponent } from './base-data-entry.component';
3
+ import { DialogButtonsDirective } from './dialog-buttons.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@progress/kendo-angular-dialog";
6
+ import * as i2 from "@angular/common";
7
+ export class DataEntryDialogComponent {
8
+ constructor() {
9
+ this.width = 800; //NOSONAR
10
+ this.height = 600; //NOSONAR
11
+ this.saveButtonText = 'Save';
12
+ this.submitted = false;
13
+ }
14
+ ngOnInit() {
15
+ if (!this.parentComponent) {
16
+ throw new TypeError(`The input 'parentComponent' is required`);
17
+ }
18
+ this.dialogTitle = this.parentComponent.dialogTitle;
19
+ this.loading$ = this.parentComponent.loading$;
20
+ this.addEditForm = this.parentComponent.addEditForm;
21
+ }
22
+ close() {
23
+ this.parentComponent?.closeForm();
24
+ }
25
+ cancel() {
26
+ this.parentComponent?.onCancel();
27
+ }
28
+ submit() {
29
+ this.parentComponent?.onSubmit();
30
+ }
31
+ get dialogActionBtnsCtx() {
32
+ return {
33
+ $implicit: { cancel: () => this.cancel(), submit: () => this.submit() },
34
+ };
35
+ }
36
+ }
37
+ DataEntryDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DataEntryDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ DataEntryDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: DataEntryDialogComponent, selector: "imng-data-entry-dialog[parentComponent]", inputs: { width: "width", height: "height", autoFocusedElement: "autoFocusedElement", parentComponent: "parentComponent", saveButtonText: "saveButtonText" }, queries: [{ propertyName: "dialogBtnsTemplate", first: true, predicate: DialogButtonsDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `<kendo-dialog
39
+ [width]="width"
40
+ [height]="height"
41
+ (close)="close()"
42
+ [autoFocusedElement]="autoFocusedElement || ''"
43
+ >
44
+ <kendo-dialog-titlebar class="bg-primary">{{
45
+ dialogTitle
46
+ }}</kendo-dialog-titlebar>
47
+ <ng-content></ng-content>
48
+ <kendo-dialog-actions>
49
+ <ng-container
50
+ *ngTemplateOutlet="
51
+ dialogBtnsTemplate || defaultDialogActionsTpl;
52
+ context: dialogActionBtnsCtx
53
+ "
54
+ >
55
+ </ng-container>
56
+ </kendo-dialog-actions>
57
+ </kendo-dialog>
58
+
59
+ <ng-template #defaultDialogActionsTpl>
60
+ <button id="btnCancel" class="k-button" (click)="cancel()">Cancel</button>
61
+ <button id="btnSave" class="k-button k-primary" (click)="submit()">
62
+ {{ saveButtonText }}
63
+ </button>
64
+ </ng-template>`, isInline: true, components: [{ type: i1.DialogComponent, selector: "kendo-dialog", inputs: ["actionsLayout", "actions", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { type: i1.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { type: i1.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["layout", "actions"], outputs: ["action"] }], directives: [{ type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DataEntryDialogComponent, decorators: [{
66
+ type: Component,
67
+ args: [{
68
+ selector: 'imng-data-entry-dialog[parentComponent]',
69
+ template: `<kendo-dialog
70
+ [width]="width"
71
+ [height]="height"
72
+ (close)="close()"
73
+ [autoFocusedElement]="autoFocusedElement || ''"
74
+ >
75
+ <kendo-dialog-titlebar class="bg-primary">{{
76
+ dialogTitle
77
+ }}</kendo-dialog-titlebar>
78
+ <ng-content></ng-content>
79
+ <kendo-dialog-actions>
80
+ <ng-container
81
+ *ngTemplateOutlet="
82
+ dialogBtnsTemplate || defaultDialogActionsTpl;
83
+ context: dialogActionBtnsCtx
84
+ "
85
+ >
86
+ </ng-container>
87
+ </kendo-dialog-actions>
88
+ </kendo-dialog>
89
+
90
+ <ng-template #defaultDialogActionsTpl>
91
+ <button id="btnCancel" class="k-button" (click)="cancel()">Cancel</button>
92
+ <button id="btnSave" class="k-button k-primary" (click)="submit()">
93
+ {{ saveButtonText }}
94
+ </button>
95
+ </ng-template>`,
96
+ changeDetection: ChangeDetectionStrategy.OnPush,
97
+ }]
98
+ }], propDecorators: { width: [{
99
+ type: Input
100
+ }], height: [{
101
+ type: Input
102
+ }], autoFocusedElement: [{
103
+ type: Input
104
+ }], parentComponent: [{
105
+ type: Input
106
+ }], saveButtonText: [{
107
+ type: Input
108
+ }], dialogBtnsTemplate: [{
109
+ type: ContentChild,
110
+ args: [DialogButtonsDirective, { static: true, read: TemplateRef }]
111
+ }] } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1lbnRyeS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLWtlbmRvLWRhdGEtZW50cnkvc3JjL2xpYi9kYXRhLWVudHJ5LWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFpQ3BFLE1BQU0sT0FBTyx3QkFBd0I7SUEvQnJDO1FBZ0NrQixVQUFLLEdBQW9CLEdBQUcsQ0FBQyxDQUFDLFNBQVM7UUFDdkMsV0FBTSxHQUFvQixHQUFHLENBQUMsQ0FBQyxTQUFTO1FBT3hDLG1CQUFjLEdBQUcsTUFBTSxDQUFDO1FBY2pDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0E0QjFCO0lBdkJRLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixNQUFNLElBQUksU0FBUyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQ3BELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUM7UUFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztJQUN0RCxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNNLE1BQU07UUFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFDTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxtQkFBbUI7UUFDckIsT0FBTztZQUNMLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRTtTQUN4RSxDQUFDO0lBQ0osQ0FBQzs7cUhBbERVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDZSQVVyQixzQkFBc0IsMkJBQXdCLFdBQVcsMkNBdkM3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7bUJBMEJPOzJGQUdOLHdCQUF3QjtrQkEvQnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlDQUF5QztvQkFDbkQsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQkEwQk87b0JBQ2pCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFFaUIsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUlVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBV0Msa0JBQWtCO3NCQVZ4QixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbnRlbnRDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlRGF0YUVudHJ5Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWRhdGEtZW50cnkuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0J1dHRvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2RpYWxvZy1idXR0b25zLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltbmctZGF0YS1lbnRyeS1kaWFsb2dbcGFyZW50Q29tcG9uZW50XScsXG4gIHRlbXBsYXRlOiBgPGtlbmRvLWRpYWxvZ1xuICAgICAgW3dpZHRoXT1cIndpZHRoXCJcbiAgICAgIFtoZWlnaHRdPVwiaGVpZ2h0XCJcbiAgICAgIChjbG9zZSk9XCJjbG9zZSgpXCJcbiAgICAgIFthdXRvRm9jdXNlZEVsZW1lbnRdPVwiYXV0b0ZvY3VzZWRFbGVtZW50IHx8ICcnXCJcbiAgICA+XG4gICAgICA8a2VuZG8tZGlhbG9nLXRpdGxlYmFyIGNsYXNzPVwiYmctcHJpbWFyeVwiPnt7XG4gICAgICAgIGRpYWxvZ1RpdGxlXG4gICAgICB9fTwva2VuZG8tZGlhbG9nLXRpdGxlYmFyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPGtlbmRvLWRpYWxvZy1hY3Rpb25zPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgIGRpYWxvZ0J0bnNUZW1wbGF0ZSB8fCBkZWZhdWx0RGlhbG9nQWN0aW9uc1RwbDtcbiAgICAgICAgICAgIGNvbnRleHQ6IGRpYWxvZ0FjdGlvbkJ0bnNDdHhcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9rZW5kby1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L2tlbmRvLWRpYWxvZz5cblxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERpYWxvZ0FjdGlvbnNUcGw+XG4gICAgICA8YnV0dG9uIGlkPVwiYnRuQ2FuY2VsXCIgY2xhc3M9XCJrLWJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBpZD1cImJ0blNhdmVcIiBjbGFzcz1cImstYnV0dG9uIGstcHJpbWFyeVwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxuICAgICAgICB7eyBzYXZlQnV0dG9uVGV4dCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5gLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUVudHJ5RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIHdpZHRoOiBzdHJpbmcgfCBudW1iZXIgPSA4MDA7IC8vTk9TT05BUlxuICBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgPSA2MDA7IC8vTk9TT05BUlxuICAvKipcbiAgICogaHR0cHM6Ly93d3cudGVsZXJpay5jb20va2VuZG8tYW5ndWxhci11aS9jb21wb25lbnRzL2RpYWxvZ3MvZGlhbG9nL2luaXRpYWwtZm9jdXMvXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgYXV0b0ZvY3VzZWRFbGVtZW50Pzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBASW5wdXQoKSBwdWJsaWMgcGFyZW50Q29tcG9uZW50PzogQmFzZURhdGFFbnRyeUNvbXBvbmVudDxhbnk+OyAvL05PU09OQVJcbiAgQElucHV0KCkgcHVibGljIHNhdmVCdXR0b25UZXh0ID0gJ1NhdmUnO1xuICBAQ29udGVudENoaWxkKERpYWxvZ0J1dHRvbnNEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAvKipcbiAgICogRXhhbXBsZSBVc2FnZTpcbiAgICogPGltbmctZGF0YS1lbnRyeS1kaWFsb2c+XG4gICAqIC4uLi4uLlxuICAgKiAgPG5nLXRlbXBsYXRlIFtpbW5nRGlhbG9nQnRuc10gbGV0LWNvcmVCdXR0b25zPlxuICAgKiAgICA8YnV0dG9uIGlkPVwiYnRuQ3VzdG9tMVwiIGNsYXNzPVwiay1idXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DbG9zZTwvYnV0dG9uPlxuICAgKiAgPC9uZy10ZW1wbGF0ZT5cbiAgICogPC9pbW5nLWRhdGEtZW50cnktZGlhbG9nPlxuICAgKi9cbiAgcHVibGljIGRpYWxvZ0J0bnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBwdWJsaWMgbG9hZGluZyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBwdWJsaWMgYWRkRWRpdEZvcm0/OiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgcHVibGljIGRpYWxvZ1RpdGxlPzogc3RyaW5nO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBwdWJsaWMgY29tcG9uZW50Pzoge307XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYXJlbnRDb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFRoZSBpbnB1dCAncGFyZW50Q29tcG9uZW50JyBpcyByZXF1aXJlZGApO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ1RpdGxlID0gdGhpcy5wYXJlbnRDb21wb25lbnQuZGlhbG9nVGl0bGU7XG4gICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMucGFyZW50Q29tcG9uZW50LmxvYWRpbmckO1xuICAgIHRoaXMuYWRkRWRpdEZvcm0gPSB0aGlzLnBhcmVudENvbXBvbmVudC5hZGRFZGl0Rm9ybTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudENvbXBvbmVudD8uY2xvc2VGb3JtKCk7XG4gIH1cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudENvbXBvbmVudD8ub25DYW5jZWwoKTtcbiAgfVxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMucGFyZW50Q29tcG9uZW50Py5vblN1Ym1pdCgpO1xuICB9XG4gIGdldCBkaWFsb2dBY3Rpb25CdG5zQ3R4KCk6IG9iamVjdCB8IG51bGwgeyAvL05PU09OQVJcbiAgICByZXR1cm4ge1xuICAgICAgJGltcGxpY2l0OiB7IGNhbmNlbDogKCkgPT4gdGhpcy5jYW5jZWwoKSwgc3VibWl0OiAoKSA9PiB0aGlzLnN1Ym1pdCgpIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -5,10 +5,10 @@ export class DialogButtonsDirective {
5
5
  this.tpl = tpl;
6
6
  }
7
7
  }
8
- DialogButtonsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: DialogButtonsDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- DialogButtonsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.11", type: DialogButtonsDirective, selector: "[imngDialogBtns]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.11", ngImport: i0, type: DialogButtonsDirective, decorators: [{
8
+ DialogButtonsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DialogButtonsDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ DialogButtonsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: DialogButtonsDirective, selector: "[imngDialogBtns]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: DialogButtonsDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{ selector: '[imngDialogBtns]' }]
13
13
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJ1dHRvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLWtlbmRvLWRhdGEtZW50cnkvc3JjL2xpYi9kaWFsb2ctYnV0dG9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3ZELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBbUIsR0FBeUI7UUFBekIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7SUFBSSxDQUFDOztvSEFEdEMsc0JBQXNCO3dHQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2ltbmdEaWFsb2dCdG5zXScgfSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dCdXR0b25zRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRwbDogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxufVxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWJ1dHRvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLWtlbmRvLWRhdGEtZW50cnkvc3JjL2xpYi9kaWFsb2ctYnV0dG9ucy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3ZELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBbUIsR0FBeUI7UUFBekIsUUFBRyxHQUFILEdBQUcsQ0FBc0I7SUFBSSxDQUFDOzttSEFEdEMsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFEbEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2ltbmdEaWFsb2dCdG5zXScgfSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dCdXR0b25zRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IocHVibGljIHRwbDogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DataEntryDialogComponent } from './data-entry-dialog.component';
4
+ import { DialogButtonsDirective } from './dialog-buttons.directive';
5
+ import { DialogModule } from '@progress/kendo-angular-dialog';
6
+ import * as i0 from "@angular/core";
7
+ export class ImngDataEntryDialogModule {
8
+ }
9
+ ImngDataEntryDialogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngDataEntryDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ ImngDataEntryDialogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngDataEntryDialogModule, declarations: [DataEntryDialogComponent, DialogButtonsDirective], imports: [CommonModule, DialogModule], exports: [DataEntryDialogComponent, DialogButtonsDirective] });
11
+ ImngDataEntryDialogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngDataEntryDialogModule, imports: [[CommonModule, DialogModule]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: ImngDataEntryDialogModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule, DialogModule],
16
+ declarations: [DataEntryDialogComponent, DialogButtonsDirective],
17
+ exports: [DataEntryDialogComponent, DialogButtonsDirective],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1rZW5kby1kYXRhLWVudHJ5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1rZW5kby1kYXRhLWVudHJ5L3NyYy9saWIvaW1uZy1rZW5kby1kYXRhLWVudHJ5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBTzlELE1BQU0sT0FBTyx5QkFBeUI7O3NIQUF6Qix5QkFBeUI7dUhBQXpCLHlCQUF5QixpQkFIckIsd0JBQXdCLEVBQUUsc0JBQXNCLGFBRHJELFlBQVksRUFBRSxZQUFZLGFBRTFCLHdCQUF3QixFQUFFLHNCQUFzQjt1SEFFL0MseUJBQXlCLFlBSjNCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQzsyRkFJMUIseUJBQXlCO2tCQUxyQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7b0JBQ3JDLFlBQVksRUFBRSxDQUFDLHdCQUF3QixFQUFFLHNCQUFzQixDQUFDO29CQUNoRSxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERhdGFFbnRyeURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1lbnRyeS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ0J1dHRvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2RpYWxvZy1idXR0b25zLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1kaWFsb2cnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEaWFsb2dNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtEYXRhRW50cnlEaWFsb2dDb21wb25lbnQsIERpYWxvZ0J1dHRvbnNEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbRGF0YUVudHJ5RGlhbG9nQ29tcG9uZW50LCBEaWFsb2dCdXR0b25zRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW1uZ0RhdGFFbnRyeURpYWxvZ01vZHVsZSB7fVxuIl19
@@ -0,0 +1,18 @@
1
+ export function updateStateCollectionItem(collection, item) {
2
+ const items = [...collection];
3
+ const index = collection.findIndex((val) => val.id === item.id);
4
+ items.splice(index, 1, item);
5
+ return items;
6
+ }
7
+ export function removeStateCollectionItem(collection, item) {
8
+ const items = [...collection];
9
+ const index = collection.findIndex((val) => val.id === item.id);
10
+ items.splice(index, 1);
11
+ return items;
12
+ }
13
+ export function addStateCollectionItem(collection, item) {
14
+ const items = [...collection];
15
+ items.unshift(item);
16
+ return items;
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci1jb2xsZWN0aW9uLWxvZ2ljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLWtlbmRvLWRhdGEtZW50cnkvc3JjL2xpYi9yZWR1Y2VyLWNvbGxlY3Rpb24tbG9naWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxVQUFvQixFQUNwQixJQUFZO0lBRVosTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLFVBQW9CLEVBQ3BCLElBQVk7SUFFWixNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDOUIsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxVQUFvQixFQUNwQixJQUFZO0lBRVosTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO0lBQzlCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsdWVUeXBlIH0gZnJvbSAnaW1uZy1ucnNyeC1jbGllbnQtdXRpbHMnO1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0YXRlQ29sbGVjdGlvbkl0ZW08RW50aXR5IGV4dGVuZHMgeyBpZD86IFZhbHVlVHlwZSB9PihcbiAgY29sbGVjdGlvbjogRW50aXR5W10sXG4gIGl0ZW06IEVudGl0eVxuKTogRW50aXR5W10ge1xuICBjb25zdCBpdGVtcyA9IFsuLi5jb2xsZWN0aW9uXTtcbiAgY29uc3QgaW5kZXggPSBjb2xsZWN0aW9uLmZpbmRJbmRleCgodmFsKSA9PiB2YWwuaWQgPT09IGl0ZW0uaWQpO1xuICBpdGVtcy5zcGxpY2UoaW5kZXgsIDEsIGl0ZW0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVTdGF0ZUNvbGxlY3Rpb25JdGVtPEVudGl0eSBleHRlbmRzIHsgaWQ/OiBWYWx1ZVR5cGUgfT4oXG4gIGNvbGxlY3Rpb246IEVudGl0eVtdLFxuICBpdGVtOiBFbnRpdHlcbik6IEVudGl0eVtdIHtcbiAgY29uc3QgaXRlbXMgPSBbLi4uY29sbGVjdGlvbl07XG4gIGNvbnN0IGluZGV4ID0gY29sbGVjdGlvbi5maW5kSW5kZXgoKHZhbCkgPT4gdmFsLmlkID09PSBpdGVtLmlkKTtcbiAgaXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgcmV0dXJuIGl0ZW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkU3RhdGVDb2xsZWN0aW9uSXRlbTxFbnRpdHkgZXh0ZW5kcyB7IGlkPzogVmFsdWVUeXBlIH0+KFxuICBjb2xsZWN0aW9uOiBFbnRpdHlbXSxcbiAgaXRlbTogRW50aXR5XG4pOiBFbnRpdHlbXSB7XG4gIGNvbnN0IGl0ZW1zID0gWy4uLmNvbGxlY3Rpb25dO1xuICBpdGVtcy51bnNoaWZ0KGl0ZW0pO1xuICByZXR1cm4gaXRlbXM7XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { of } from 'rxjs';
2
+ export async function testDeleteCurrentEntity(facade, httpClient) {
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ const entity = { id: '💃', name: '🧓👴👵' };
5
+ httpClient.post = jest.fn();
6
+ httpClient.put = jest.fn();
7
+ httpClient.delete = jest.fn(() => of(entity));
8
+ facade.deleteExistingEntity(entity);
9
+ expect(httpClient.put).toBeCalledTimes(0);
10
+ expect(httpClient.post).toBeCalledTimes(0);
11
+ expect(httpClient.delete).toBeCalledTimes(1);
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1kZWxldGUtZmFjYWRlLWh0dHAtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZGF0YS1lbnRyeS90ZXN0aW5nL3NyYy9kYXRhLWRlbGV0ZS1mYWNhZGUtaHR0cC10ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLE1BQWUsRUFDZixVQUFzQjtJQUV0Qiw4REFBOEQ7SUFDOUQsTUFBTSxNQUFNLEdBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUVqRCxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM1QixVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzQixVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFOUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRS9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3REZWxldGVDdXJyZW50RW50aXR5PFRGYWNhZGUgZXh0ZW5kcyB7IGRlbGV0ZUV4aXN0aW5nRW50aXR5KGVudGl0eTogdW5rbm93bik6IHZvaWQ7IH0+KFxuICBmYWNhZGU6IFRGYWNhZGUsXG4gIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uc3QgZW50aXR5OiBhbnkgPSB7IGlkOiAn8J+SgycsIG5hbWU6ICfwn6eT8J+RtPCfkbUnIH07XG5cbiAgaHR0cENsaWVudC5wb3N0ID0gamVzdC5mbigpO1xuICBodHRwQ2xpZW50LnB1dCA9IGplc3QuZm4oKTtcbiAgaHR0cENsaWVudC5kZWxldGUgPSBqZXN0LmZuKCgpID0+IG9mKGVudGl0eSkpO1xuXG4gIGZhY2FkZS5kZWxldGVFeGlzdGluZ0VudGl0eShlbnRpdHkpO1xuICBleHBlY3QoaHR0cENsaWVudC5wdXQpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgZXhwZWN0KGh0dHBDbGllbnQucG9zdCkudG9CZUNhbGxlZFRpbWVzKDApO1xuICBleHBlY3QoaHR0cENsaWVudC5kZWxldGUpLnRvQmVDYWxsZWRUaW1lcygxKTtcblxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { of } from 'rxjs';
2
+ export async function testSaveCurrentEntity(facade, httpClient) {
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ const entity = { name: '🆕' };
5
+ httpClient.post = jest.fn(() => of(entity));
6
+ httpClient.put = jest.fn(() => of(entity));
7
+ httpClient.delete = jest.fn(() => of(entity));
8
+ facade.saveNewEntity(entity);
9
+ expect(httpClient.post).toBeCalledTimes(1);
10
+ expect(httpClient.put).toBeCalledTimes(0);
11
+ expect(httpClient.delete).toBeCalledTimes(0);
12
+ }
13
+ export async function testUpdateCurrentEntity(facade, httpClient) {
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ const entity = { id: '💃', name: '🧓👴👵' };
16
+ httpClient.post = jest.fn(() => of(entity));
17
+ httpClient.put = jest.fn(() => of(entity));
18
+ httpClient.delete = jest.fn(() => of(entity));
19
+ facade.updateExistingEntity(entity);
20
+ expect(httpClient.put).toBeCalledTimes(1);
21
+ expect(httpClient.post).toBeCalledTimes(0);
22
+ expect(httpClient.delete).toBeCalledTimes(0);
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1lbnRyeS1mYWNhZGUtaHR0cC10ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1rZW5kby1kYXRhLWVudHJ5L3Rlc3Rpbmcvc3JjL2RhdGEtZW50cnktZmFjYWRlLWh0dHAtdGVzdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQixNQUFNLENBQUMsS0FBSyxVQUFVLHFCQUFxQixDQUN6QyxNQUFlLEVBQ2YsVUFBc0I7SUFFdEIsOERBQThEO0lBQzlELE1BQU0sTUFBTSxHQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ25DLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1QyxVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDM0MsVUFBVSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLE1BQWUsRUFDZixVQUFzQjtJQUV0Qiw4REFBOEQ7SUFDOUQsTUFBTSxNQUFNLEdBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUVqRCxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDNUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzNDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUU5QyxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFNhdmVDdXJyZW50RW50aXR5PFRGYWNhZGUgZXh0ZW5kcyB7IHNhdmVOZXdFbnRpdHkoZW50aXR5OiB1bmtub3duKTogdm9pZDsgfT4oXG4gIGZhY2FkZTogVEZhY2FkZSxcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25zdCBlbnRpdHk6IGFueSA9IHsgbmFtZTogJ/CfhpUnIH07XG4gIGh0dHBDbGllbnQucG9zdCA9IGplc3QuZm4oKCkgPT4gb2YoZW50aXR5KSk7XG4gIGh0dHBDbGllbnQucHV0ID0gamVzdC5mbigoKSA9PiBvZihlbnRpdHkpKTtcbiAgaHR0cENsaWVudC5kZWxldGUgPSBqZXN0LmZuKCgpID0+IG9mKGVudGl0eSkpO1xuXG4gIGZhY2FkZS5zYXZlTmV3RW50aXR5KGVudGl0eSk7XG4gIGV4cGVjdChodHRwQ2xpZW50LnBvc3QpLnRvQmVDYWxsZWRUaW1lcygxKTtcbiAgZXhwZWN0KGh0dHBDbGllbnQucHV0KS50b0JlQ2FsbGVkVGltZXMoMCk7XG4gIGV4cGVjdChodHRwQ2xpZW50LmRlbGV0ZSkudG9CZUNhbGxlZFRpbWVzKDApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdFVwZGF0ZUN1cnJlbnRFbnRpdHk8VEZhY2FkZSBleHRlbmRzIHsgdXBkYXRlRXhpc3RpbmdFbnRpdHkoZW50aXR5OiB1bmtub3duKTogdm9pZDsgfT4oXG4gIGZhY2FkZTogVEZhY2FkZSxcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbik6IFByb21pc2U8dm9pZD4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBjb25zdCBlbnRpdHk6IGFueSA9IHsgaWQ6ICfwn5KDJywgbmFtZTogJ/Cfp5Pwn5G08J+RtScgfTtcblxuICBodHRwQ2xpZW50LnBvc3QgPSBqZXN0LmZuKCgpID0+IG9mKGVudGl0eSkpO1xuICBodHRwQ2xpZW50LnB1dCA9IGplc3QuZm4oKCkgPT4gb2YoZW50aXR5KSk7XG4gIGh0dHBDbGllbnQuZGVsZXRlID0gamVzdC5mbigoKSA9PiBvZihlbnRpdHkpKTtcblxuICBmYWNhZGUudXBkYXRlRXhpc3RpbmdFbnRpdHkoZW50aXR5KTtcbiAgZXhwZWN0KGh0dHBDbGllbnQucHV0KS50b0JlQ2FsbGVkVGltZXMoMSk7XG4gIGV4cGVjdChodHRwQ2xpZW50LnBvc3QpLnRvQmVDYWxsZWRUaW1lcygwKTtcbiAgZXhwZWN0KGh0dHBDbGllbnQuZGVsZXRlKS50b0JlQ2FsbGVkVGltZXMoMCk7XG5cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { readFirst } from 'imng-ngrx-utils/testing';
2
+ export async function testAddSetAndClearCurrentEntity(facade) {
3
+ const entity = { name: '🆕' };
4
+ await validateInitialState(facade);
5
+ facade.setCurrentEntity(entity, { name: 'parentEntity' });
6
+ let status = await getEntityStatus(facade);
7
+ expect(status.currentEntity).toStrictEqual(entity);
8
+ expect(status.isEditActive).toBeFalsy();
9
+ expect(status.isNewActive).toBeTruthy();
10
+ facade.clearCurrentEntity();
11
+ status = await getEntityStatus(facade);
12
+ expect(status.currentEntity).toBeFalsy();
13
+ expect(status.isEditActive).toBeFalsy();
14
+ expect(status.isNewActive).toBeFalsy();
15
+ }
16
+ export async function testEditSetAndClearCurrentEntity(facade) {
17
+ const entity = { id: '💃', name: '🧓👴👵' };
18
+ await validateInitialState(facade);
19
+ facade.setCurrentEntity(entity, { name: 'parentEntity' });
20
+ let status = await getEntityStatus(facade);
21
+ expect(status.currentEntity).toStrictEqual(entity);
22
+ expect(status.isEditActive).toBeTruthy();
23
+ expect(status.isNewActive).toBeFalsy();
24
+ facade.clearCurrentEntity();
25
+ status = await getEntityStatus(facade);
26
+ expect(status.currentEntity).toBeFalsy();
27
+ expect(status.isEditActive).toBeFalsy();
28
+ expect(status.isNewActive).toBeFalsy();
29
+ }
30
+ async function validateInitialState(facade) {
31
+ const status = await getEntityStatus(facade);
32
+ expect(status.currentEntity).toBeFalsy();
33
+ expect(status.isEditActive).toBeFalsy();
34
+ expect(status.isNewActive).toBeFalsy();
35
+ }
36
+ async function getEntityStatus(facade) {
37
+ return {
38
+ currentEntity: await readFirst(facade.currentEntity$),
39
+ isEditActive: await readFirst(facade.isEditActive$),
40
+ isNewActive: await readFirst(facade.isNewActive$),
41
+ };
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1lbnRyeS1mYWNhZGUtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZGF0YS1lbnRyeS90ZXN0aW5nL3NyYy9kYXRhLWVudHJ5LWZhY2FkZS10ZXN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHcEQsTUFBTSxDQUFDLEtBQUssVUFBVSwrQkFBK0IsQ0FFbkQsTUFBZTtJQUNmLE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzlCLE1BQU0sb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzFELElBQUksTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUV4QyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0NBQWdDLENBRXBELE1BQWU7SUFDZixNQUFNLE1BQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzVDLE1BQU0sb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzFELElBQUksTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDekMsQ0FBQztBQUNELEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxNQUFzQjtJQUN4RCxNQUFNLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUN6QyxDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FDNUIsTUFBZTtJQU1mLE9BQU87UUFDTCxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNyRCxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNuRCxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlYWRGaXJzdCB9IGZyb20gJ2ltbmctbmdyeC11dGlscy90ZXN0aW5nJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRlc3RBZGRTZXRBbmRDbGVhckN1cnJlbnRFbnRpdHk8XG4gIFRGYWNhZGUgZXh0ZW5kcyBUZXN0YWJsZUZhY2FkZVxuPihmYWNhZGU6IFRGYWNhZGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZW50aXR5ID0geyBuYW1lOiAn8J+GlScgfTtcbiAgYXdhaXQgdmFsaWRhdGVJbml0aWFsU3RhdGUoZmFjYWRlKTtcblxuICBmYWNhZGUuc2V0Q3VycmVudEVudGl0eShlbnRpdHksIHsgbmFtZTogJ3BhcmVudEVudGl0eScgfSk7XG4gIGxldCBzdGF0dXMgPSBhd2FpdCBnZXRFbnRpdHlTdGF0dXMoZmFjYWRlKTtcbiAgZXhwZWN0KHN0YXR1cy5jdXJyZW50RW50aXR5KS50b1N0cmljdEVxdWFsKGVudGl0eSk7XG4gIGV4cGVjdChzdGF0dXMuaXNFZGl0QWN0aXZlKS50b0JlRmFsc3koKTtcbiAgZXhwZWN0KHN0YXR1cy5pc05ld0FjdGl2ZSkudG9CZVRydXRoeSgpO1xuXG4gIGZhY2FkZS5jbGVhckN1cnJlbnRFbnRpdHkoKTtcbiAgc3RhdHVzID0gYXdhaXQgZ2V0RW50aXR5U3RhdHVzKGZhY2FkZSk7XG4gIGV4cGVjdChzdGF0dXMuY3VycmVudEVudGl0eSkudG9CZUZhbHN5KCk7XG4gIGV4cGVjdChzdGF0dXMuaXNFZGl0QWN0aXZlKS50b0JlRmFsc3koKTtcbiAgZXhwZWN0KHN0YXR1cy5pc05ld0FjdGl2ZSkudG9CZUZhbHN5KCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXN0RWRpdFNldEFuZENsZWFyQ3VycmVudEVudGl0eTxcbiAgVEZhY2FkZSBleHRlbmRzIFRlc3RhYmxlRmFjYWRlXG4+KGZhY2FkZTogVEZhY2FkZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBlbnRpdHkgPSB7IGlkOiAn8J+SgycsIG5hbWU6ICfwn6eT8J+RtPCfkbUnIH07XG4gIGF3YWl0IHZhbGlkYXRlSW5pdGlhbFN0YXRlKGZhY2FkZSk7XG5cbiAgZmFjYWRlLnNldEN1cnJlbnRFbnRpdHkoZW50aXR5LCB7IG5hbWU6ICdwYXJlbnRFbnRpdHknIH0pO1xuICBsZXQgc3RhdHVzID0gYXdhaXQgZ2V0RW50aXR5U3RhdHVzKGZhY2FkZSk7XG4gIGV4cGVjdChzdGF0dXMuY3VycmVudEVudGl0eSkudG9TdHJpY3RFcXVhbChlbnRpdHkpO1xuICBleHBlY3Qoc3RhdHVzLmlzRWRpdEFjdGl2ZSkudG9CZVRydXRoeSgpO1xuICBleHBlY3Qoc3RhdHVzLmlzTmV3QWN0aXZlKS50b0JlRmFsc3koKTtcblxuICBmYWNhZGUuY2xlYXJDdXJyZW50RW50aXR5KCk7XG4gIHN0YXR1cyA9IGF3YWl0IGdldEVudGl0eVN0YXR1cyhmYWNhZGUpO1xuICBleHBlY3Qoc3RhdHVzLmN1cnJlbnRFbnRpdHkpLnRvQmVGYWxzeSgpO1xuICBleHBlY3Qoc3RhdHVzLmlzRWRpdEFjdGl2ZSkudG9CZUZhbHN5KCk7XG4gIGV4cGVjdChzdGF0dXMuaXNOZXdBY3RpdmUpLnRvQmVGYWxzeSgpO1xufVxuYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVJbml0aWFsU3RhdGUoZmFjYWRlOiBUZXN0YWJsZUZhY2FkZSk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBzdGF0dXMgPSBhd2FpdCBnZXRFbnRpdHlTdGF0dXMoZmFjYWRlKTtcbiAgZXhwZWN0KHN0YXR1cy5jdXJyZW50RW50aXR5KS50b0JlRmFsc3koKTtcbiAgZXhwZWN0KHN0YXR1cy5pc0VkaXRBY3RpdmUpLnRvQmVGYWxzeSgpO1xuICBleHBlY3Qoc3RhdHVzLmlzTmV3QWN0aXZlKS50b0JlRmFsc3koKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0RW50aXR5U3RhdHVzPFRGYWNhZGUgZXh0ZW5kcyBUZXN0YWJsZUZhY2FkZT4oXG4gIGZhY2FkZTogVEZhY2FkZVxuKTogUHJvbWlzZTx7XG4gIGN1cnJlbnRFbnRpdHk6IHVua25vd247XG4gIGlzRWRpdEFjdGl2ZTogdW5rbm93bjtcbiAgaXNOZXdBY3RpdmU6IHVua25vd247XG59PiB7XG4gIHJldHVybiB7XG4gICAgY3VycmVudEVudGl0eTogYXdhaXQgcmVhZEZpcnN0KGZhY2FkZS5jdXJyZW50RW50aXR5JCksXG4gICAgaXNFZGl0QWN0aXZlOiBhd2FpdCByZWFkRmlyc3QoZmFjYWRlLmlzRWRpdEFjdGl2ZSQpLFxuICAgIGlzTmV3QWN0aXZlOiBhd2FpdCByZWFkRmlyc3QoZmFjYWRlLmlzTmV3QWN0aXZlJCksXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdGFibGVGYWNhZGUge1xuICBjdXJyZW50RW50aXR5JDogT2JzZXJ2YWJsZTx1bmtub3duPjtcbiAgaXNFZGl0QWN0aXZlJDogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD47XG4gIGlzTmV3QWN0aXZlJDogT2JzZXJ2YWJsZTxib29sZWFuIHwgbnVsbD47XG4gIHNldEN1cnJlbnRFbnRpdHkoZW50aXR5OiB1bmtub3duLCBwYXJlbnRFbnRpdHk/OiB1bmtub3duKTogdm9pZDtcbiAgY2xlYXJDdXJyZW50RW50aXR5KCk6IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { of } from 'rxjs';
2
+ // eslint-disable-next-line @typescript-eslint/ban-types
3
+ export class DataEntryMockFacade {
4
+ constructor() {
5
+ this.loading$ = of(false);
6
+ // eslint-disable-next-line @typescript-eslint/ban-types
7
+ this.currentEntity$ = of(null);
8
+ this.isEditActive$ = of(false);
9
+ this.isNewActive$ = of(false);
10
+ this.setCurrentEntity = jest.fn();
11
+ this.clearCurrentEntity = jest.fn();
12
+ this.saveNewEntity = jest.fn();
13
+ this.updateExistingEntity = jest.fn();
14
+ }
15
+ }
16
+ export function createDataEntryMockFacade(
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ mockFacade) {
19
+ const localFacade = new DataEntryMockFacade();
20
+ if (!mockFacade) {
21
+ return localFacade;
22
+ }
23
+ mockFacade.loading$ = mockFacade.loading$ || localFacade.loading$;
24
+ mockFacade.currentEntity$ =
25
+ mockFacade.currentEntity$ || localFacade.currentEntity$;
26
+ mockFacade.isEditActive$ =
27
+ mockFacade.isEditActive$ || localFacade.isEditActive$;
28
+ mockFacade.isNewActive$ = mockFacade.isNewActive$ || localFacade.isNewActive$;
29
+ mockFacade.setCurrentEntity = mockFacade.setCurrentEntity || jest.fn();
30
+ mockFacade.clearCurrentEntity = mockFacade.clearCurrentEntity || jest.fn();
31
+ mockFacade.saveNewEntity = mockFacade.saveNewEntity || jest.fn();
32
+ mockFacade.updateExistingEntity =
33
+ mockFacade.updateExistingEntity || jest.fn();
34
+ return mockFacade;
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1lbnRyeS1tb2NrLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvaW1uZy1rZW5kby1kYXRhLWVudHJ5L3Rlc3Rpbmcvc3JjL2RhdGEtZW50cnktbW9jay5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl0Qyx3REFBd0Q7QUFDeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNTLGFBQVEsR0FBd0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELHdEQUF3RDtRQUNqRCxtQkFBYyxHQUF3QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0Msa0JBQWEsR0FBd0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLGlCQUFZLEdBQXdCLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0IsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFCLHlCQUFvQixHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0NBQUE7QUFFRCxNQUFNLFVBQVUseUJBQXlCO0FBQ3ZDLDhEQUE4RDtBQUM5RCxVQUE0QztJQUU1QyxNQUFNLFdBQVcsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7SUFDOUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNmLE9BQU8sV0FBVyxDQUFDO0tBQ3BCO0lBQ0QsVUFBVSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFDbEUsVUFBVSxDQUFDLGNBQWM7UUFDdkIsVUFBVSxDQUFDLGNBQWMsSUFBSSxXQUFXLENBQUMsY0FBYyxDQUFDO0lBQzFELFVBQVUsQ0FBQyxhQUFhO1FBQ3RCLFVBQVUsQ0FBQyxhQUFhLElBQUksV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4RCxVQUFVLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLFlBQVksQ0FBQztJQUM5RSxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN2RSxVQUFVLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzRSxVQUFVLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2pFLFVBQVUsQ0FBQyxvQkFBb0I7UUFDN0IsVUFBVSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMvQyxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAbnJ3bC9ueC9lbmZvcmNlLW1vZHVsZS1ib3VuZGFyaWVzXG5pbXBvcnQgeyBJRGF0YUVudHJ5RmFjYWRlIH0gZnJvbSAnaW1uZy1rZW5kby1kYXRhLWVudHJ5JztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbmV4cG9ydCBjbGFzcyBEYXRhRW50cnlNb2NrRmFjYWRlIGltcGxlbWVudHMgSURhdGFFbnRyeUZhY2FkZTx1bmtub3duPiB7XG4gIHB1YmxpYyBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IG9mKGZhbHNlKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgcHVibGljIGN1cnJlbnRFbnRpdHkkOiBPYnNlcnZhYmxlPHVua25vd24+ID0gb2YobnVsbCk7XG4gIHB1YmxpYyBpc0VkaXRBY3RpdmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gb2YoZmFsc2UpO1xuICBwdWJsaWMgaXNOZXdBY3RpdmUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gb2YoZmFsc2UpO1xuICBwdWJsaWMgc2V0Q3VycmVudEVudGl0eSA9IGplc3QuZm4oKTtcbiAgcHVibGljIGNsZWFyQ3VycmVudEVudGl0eSA9IGplc3QuZm4oKTtcbiAgcHVibGljIHNhdmVOZXdFbnRpdHkgPSBqZXN0LmZuKCk7XG4gIHB1YmxpYyB1cGRhdGVFeGlzdGluZ0VudGl0eSA9IGplc3QuZm4oKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFFbnRyeU1vY2tGYWNhZGUoXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIG1vY2tGYWNhZGU/OiBJRGF0YUVudHJ5RmFjYWRlPHVua25vd24+IHwgYW55XG4pOiBJRGF0YUVudHJ5RmFjYWRlPHVua25vd24+IHtcbiAgY29uc3QgbG9jYWxGYWNhZGUgPSBuZXcgRGF0YUVudHJ5TW9ja0ZhY2FkZSgpO1xuICBpZiAoIW1vY2tGYWNhZGUpIHtcbiAgICByZXR1cm4gbG9jYWxGYWNhZGU7XG4gIH1cbiAgbW9ja0ZhY2FkZS5sb2FkaW5nJCA9IG1vY2tGYWNhZGUubG9hZGluZyQgfHwgbG9jYWxGYWNhZGUubG9hZGluZyQ7XG4gIG1vY2tGYWNhZGUuY3VycmVudEVudGl0eSQgPVxuICAgIG1vY2tGYWNhZGUuY3VycmVudEVudGl0eSQgfHwgbG9jYWxGYWNhZGUuY3VycmVudEVudGl0eSQ7XG4gIG1vY2tGYWNhZGUuaXNFZGl0QWN0aXZlJCA9XG4gICAgbW9ja0ZhY2FkZS5pc0VkaXRBY3RpdmUkIHx8IGxvY2FsRmFjYWRlLmlzRWRpdEFjdGl2ZSQ7XG4gIG1vY2tGYWNhZGUuaXNOZXdBY3RpdmUkID0gbW9ja0ZhY2FkZS5pc05ld0FjdGl2ZSQgfHwgbG9jYWxGYWNhZGUuaXNOZXdBY3RpdmUkO1xuICBtb2NrRmFjYWRlLnNldEN1cnJlbnRFbnRpdHkgPSBtb2NrRmFjYWRlLnNldEN1cnJlbnRFbnRpdHkgfHwgamVzdC5mbigpO1xuICBtb2NrRmFjYWRlLmNsZWFyQ3VycmVudEVudGl0eSA9IG1vY2tGYWNhZGUuY2xlYXJDdXJyZW50RW50aXR5IHx8IGplc3QuZm4oKTtcbiAgbW9ja0ZhY2FkZS5zYXZlTmV3RW50aXR5ID0gbW9ja0ZhY2FkZS5zYXZlTmV3RW50aXR5IHx8IGplc3QuZm4oKTtcbiAgbW9ja0ZhY2FkZS51cGRhdGVFeGlzdGluZ0VudGl0eSA9XG4gICAgbW9ja0ZhY2FkZS51cGRhdGVFeGlzdGluZ0VudGl0eSB8fCBqZXN0LmZuKCk7XG4gIHJldHVybiBtb2NrRmFjYWRlO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './public_api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1rZW5kby1kYXRhLWVudHJ5LXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZGF0YS1lbnRyeS90ZXN0aW5nL3NyYy9pbW5nLWtlbmRvLWRhdGEtZW50cnktdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1uZy1rZW5kby1kYXRhLWVudHJ5LXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2ltbmcta2VuZG8tZGF0YS1lbnRyeS90ZXN0aW5nL3NyYy9pbW5nLWtlbmRvLWRhdGEtZW50cnktdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -18,20 +18,24 @@ class DataEntryMockFacade {
18
18
  this.updateExistingEntity = jest.fn();
19
19
  }
20
20
  }
21
- // eslint-disable-next-line @typescript-eslint/ban-types,@typescript-eslint/no-explicit-any
22
- function createDataEntryMockFacade(mockFacade) {
21
+ function createDataEntryMockFacade(
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ mockFacade) {
23
24
  const localFacade = new DataEntryMockFacade();
24
25
  if (!mockFacade) {
25
26
  return localFacade;
26
27
  }
27
28
  mockFacade.loading$ = mockFacade.loading$ || localFacade.loading$;
28
- mockFacade.currentEntity$ = mockFacade.currentEntity$ || localFacade.currentEntity$;
29
- mockFacade.isEditActive$ = mockFacade.isEditActive$ || localFacade.isEditActive$;
29
+ mockFacade.currentEntity$ =
30
+ mockFacade.currentEntity$ || localFacade.currentEntity$;
31
+ mockFacade.isEditActive$ =
32
+ mockFacade.isEditActive$ || localFacade.isEditActive$;
30
33
  mockFacade.isNewActive$ = mockFacade.isNewActive$ || localFacade.isNewActive$;
31
34
  mockFacade.setCurrentEntity = mockFacade.setCurrentEntity || jest.fn();
32
35
  mockFacade.clearCurrentEntity = mockFacade.clearCurrentEntity || jest.fn();
33
36
  mockFacade.saveNewEntity = mockFacade.saveNewEntity || jest.fn();
34
- mockFacade.updateExistingEntity = mockFacade.updateExistingEntity || jest.fn();
37
+ mockFacade.updateExistingEntity =
38
+ mockFacade.updateExistingEntity || jest.fn();
35
39
  return mockFacade;
36
40
  }
37
41
 
@@ -167,4 +171,4 @@ class MockDataEntryComponent extends BaseDataEntryComponent {
167
171
  */
168
172
 
169
173
  export { DataDeleteMockFacade, DataEntryMockFacade, MockDataEntryComponent, createDataDeleteMockFacade, createDataEntryMockFacade, testAddSetAndClearCurrentEntity, testDeleteCurrentEntity, testEditSetAndClearCurrentEntity, testSaveCurrentEntity, testUpdateCurrentEntity, triggerCancelClickEvent, triggerSaveClickEvent };
170
- //# sourceMappingURL=imng-kendo-data-entry-testing.js.map
174
+ //# sourceMappingURL=imng-kendo-data-entry-testing.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imng-kendo-data-entry-testing.mjs","sources":["../../../../libs/imng-kendo-data-entry/testing/src/data-entry-mock.facade.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-facade-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-facade-http-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-delete-facade-http-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-delete-mock.facade.ts","../../../../libs/imng-kendo-data-entry/testing/src/test-trigger-event-helpers.ts","../../../../libs/imng-kendo-data-entry/testing/src/mock-data-entry-dialog.component.ts","../../../../libs/imng-kendo-data-entry/testing/src/imng-kendo-data-entry-testing.ts"],"sourcesContent":["import { Observable, of } from 'rxjs';\n// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { IDataEntryFacade } from 'imng-kendo-data-entry';\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class DataEntryMockFacade implements IDataEntryFacade<unknown> {\n public loading$: Observable<boolean> = of(false);\n // eslint-disable-next-line @typescript-eslint/ban-types\n public currentEntity$: Observable<unknown> = of(null);\n public isEditActive$: Observable<boolean> = of(false);\n public isNewActive$: Observable<boolean> = of(false);\n public setCurrentEntity = jest.fn();\n public clearCurrentEntity = jest.fn();\n public saveNewEntity = jest.fn();\n public updateExistingEntity = jest.fn();\n}\n\nexport function createDataEntryMockFacade(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mockFacade?: IDataEntryFacade<unknown> | any\n): IDataEntryFacade<unknown> {\n const localFacade = new DataEntryMockFacade();\n if (!mockFacade) {\n return localFacade;\n }\n mockFacade.loading$ = mockFacade.loading$ || localFacade.loading$;\n mockFacade.currentEntity$ =\n mockFacade.currentEntity$ || localFacade.currentEntity$;\n mockFacade.isEditActive$ =\n mockFacade.isEditActive$ || localFacade.isEditActive$;\n mockFacade.isNewActive$ = mockFacade.isNewActive$ || localFacade.isNewActive$;\n mockFacade.setCurrentEntity = mockFacade.setCurrentEntity || jest.fn();\n mockFacade.clearCurrentEntity = mockFacade.clearCurrentEntity || jest.fn();\n mockFacade.saveNewEntity = mockFacade.saveNewEntity || jest.fn();\n mockFacade.updateExistingEntity =\n mockFacade.updateExistingEntity || jest.fn();\n return mockFacade;\n}\n","import { readFirst } from 'imng-ngrx-utils/testing';\nimport { Observable } from 'rxjs';\n\nexport async function testAddSetAndClearCurrentEntity<\n TFacade extends TestableFacade\n>(facade: TFacade): Promise<void> {\n const entity = { name: '🆕' };\n await validateInitialState(facade);\n\n facade.setCurrentEntity(entity, { name: 'parentEntity' });\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeTruthy();\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\n\nexport async function testEditSetAndClearCurrentEntity<\n TFacade extends TestableFacade\n>(facade: TFacade): Promise<void> {\n const entity = { id: '💃', name: '🧓👴👵' };\n await validateInitialState(facade);\n\n facade.setCurrentEntity(entity, { name: 'parentEntity' });\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.isEditActive).toBeTruthy();\n expect(status.isNewActive).toBeFalsy();\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\nasync function validateInitialState(facade: TestableFacade): Promise<void> {\n const status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\n\nasync function getEntityStatus<TFacade extends TestableFacade>(\n facade: TFacade\n): Promise<{\n currentEntity: unknown;\n isEditActive: unknown;\n isNewActive: unknown;\n}> {\n return {\n currentEntity: await readFirst(facade.currentEntity$),\n isEditActive: await readFirst(facade.isEditActive$),\n isNewActive: await readFirst(facade.isNewActive$),\n };\n}\n\nexport interface TestableFacade {\n currentEntity$: Observable<unknown>;\n isEditActive$: Observable<boolean | null>;\n isNewActive$: Observable<boolean | null>;\n setCurrentEntity(entity: unknown, parentEntity?: unknown): void;\n clearCurrentEntity(): void;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\n\nexport async function testSaveCurrentEntity<TFacade extends { saveNewEntity(entity: unknown): void; }>(\n facade: TFacade,\n httpClient: HttpClient,\n): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { name: '🆕' };\n httpClient.post = jest.fn(() => of(entity));\n httpClient.put = jest.fn(() => of(entity));\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.saveNewEntity(entity);\n expect(httpClient.post).toBeCalledTimes(1);\n expect(httpClient.put).toBeCalledTimes(0);\n expect(httpClient.delete).toBeCalledTimes(0);\n}\n\nexport async function testUpdateCurrentEntity<TFacade extends { updateExistingEntity(entity: unknown): void; }>(\n facade: TFacade,\n httpClient: HttpClient,\n): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { id: '💃', name: '🧓👴👵' };\n\n httpClient.post = jest.fn(() => of(entity));\n httpClient.put = jest.fn(() => of(entity));\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.updateExistingEntity(entity);\n expect(httpClient.put).toBeCalledTimes(1);\n expect(httpClient.post).toBeCalledTimes(0);\n expect(httpClient.delete).toBeCalledTimes(0);\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\n\nexport async function testDeleteCurrentEntity<TFacade extends { deleteExistingEntity(entity: unknown): void; }>(\n facade: TFacade,\n httpClient: HttpClient,\n): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { id: '💃', name: '🧓👴👵' };\n\n httpClient.post = jest.fn();\n httpClient.put = jest.fn();\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.deleteExistingEntity(entity);\n expect(httpClient.put).toBeCalledTimes(0);\n expect(httpClient.post).toBeCalledTimes(0);\n expect(httpClient.delete).toBeCalledTimes(1);\n\n}\n","// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { IDataDeleteFacade } from 'imng-kendo-data-entry';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class DataDeleteMockFacade implements IDataDeleteFacade<any> {\n deleteExistingEntity = jest.fn();\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types,@typescript-eslint/no-explicit-any\nexport function createDataDeleteMockFacade(mockFacade?: IDataDeleteFacade<object> | any): IDataDeleteFacade<object> {\n const localFacade = new DataDeleteMockFacade();\n if (!mockFacade) {\n return localFacade;\n }\n mockFacade.deleteExistingEntity = mockFacade.deleteExistingEntity || jest.fn();\n return mockFacade;\n}\n","import { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\n\nexport function triggerSaveClickEvent<TComponent>(fixture: ComponentFixture<TComponent>): void {\n const typeAhead = fixture.debugElement.query(By.css('#btnSave'));\n typeAhead.triggerEventHandler('click', {});\n}\nexport function triggerCancelClickEvent<TComponent>(fixture: ComponentFixture<TComponent>): void {\n const typeAhead = fixture.debugElement.query(By.css('#btnCancel'));\n typeAhead.triggerEventHandler('click', {});\n}\n","// eslint-disable-next-line @nrwl/nx/enforce-module-boundaries\nimport { BaseDataEntryComponent } from 'imng-kendo-data-entry';\nimport { DataEntryMockFacade } from './data-entry-mock.facade';\n\nexport class MockDataEntryComponent extends BaseDataEntryComponent<DataEntryMockFacade> {\n public dialogTitle = 'MockDataEntryComponent';\n public props = {};\n public initForm = jest.fn();\n public save = () => jest.fn();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}