@smartsoft001/crud-shell-angular 1.1.733 → 1.1.737

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 (210) hide show
  1. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  2. package/{esm2015/lib/+state/crud.actions.js → esm2020/lib/+state/crud.actions.mjs} +0 -0
  3. package/esm2020/lib/+state/crud.effects.mjs +182 -0
  4. package/esm2020/lib/+state/crud.facade.mjs +88 -0
  5. package/esm2020/lib/+state/crud.reducer.mjs +212 -0
  6. package/{esm2015/lib/+state/crud.selectors.js → esm2020/lib/+state/crud.selectors.mjs} +0 -0
  7. package/esm2020/lib/components/components.module.mjs +109 -0
  8. package/esm2020/lib/components/export/export.component.mjs +47 -0
  9. package/esm2020/lib/components/filter/base/base.component.mjs +140 -0
  10. package/esm2020/lib/components/filter/check/check.component.mjs +36 -0
  11. package/esm2020/lib/components/filter/date/date.component.mjs +41 -0
  12. package/esm2020/lib/components/filter/date-with-edit/date-with-edit.component.mjs +44 -0
  13. package/esm2020/lib/components/filter/filter.component.mjs +29 -0
  14. package/esm2020/lib/components/filter/flag/flag.component.mjs +16 -0
  15. package/{esm2015/lib/components/filter/index.js → esm2020/lib/components/filter/index.mjs} +0 -0
  16. package/esm2020/lib/components/filter/int/int.component.mjs +33 -0
  17. package/esm2020/lib/components/filter/radio/radio.component.mjs +16 -0
  18. package/esm2020/lib/components/filter/text/text.component.mjs +16 -0
  19. package/esm2020/lib/components/filters/filters.component.mjs +111 -0
  20. package/esm2020/lib/components/filters-config/filters-config.component.mjs +37 -0
  21. package/esm2020/lib/components/group/group.component.mjs +54 -0
  22. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  23. package/esm2020/lib/components/multiselect/multiselect.component.mjs +68 -0
  24. package/esm2020/lib/crud-full.module.mjs +105 -0
  25. package/esm2020/lib/crud.config.mjs +17 -0
  26. package/esm2020/lib/crud.module.mjs +107 -0
  27. package/esm2020/lib/factories/list-pagination/list-pagination.factory.mjs +69 -0
  28. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  29. package/{esm2015/lib/models/interfaces.js → esm2020/lib/models/interfaces.mjs} +0 -0
  30. package/esm2020/lib/pages/index.mjs +7 -0
  31. package/esm2020/lib/pages/item/base/base.component.mjs +44 -0
  32. package/esm2020/lib/pages/item/item.component.mjs +393 -0
  33. package/esm2020/lib/pages/item/standard/standard.component.mjs +15 -0
  34. package/esm2020/lib/pages/list/base/base.component.mjs +23 -0
  35. package/esm2020/lib/pages/list/list.component.mjs +343 -0
  36. package/esm2020/lib/pages/list/standard/standard.component.mjs +34 -0
  37. package/esm2020/lib/pipes/form-options/form-options.pipe.mjs +55 -0
  38. package/{esm2015/lib/pipes/index.js → esm2020/lib/pipes/index.mjs} +0 -0
  39. package/esm2020/lib/pipes/pipes.module.mjs +20 -0
  40. package/{esm2015/lib/providers/model-possibilities/model-possibilities.provider.js → esm2020/lib/providers/model-possibilities/model-possibilities.provider.mjs} +0 -0
  41. package/esm2020/lib/services/crud/crud.service.mjs +138 -0
  42. package/esm2020/lib/services/list-group/list-group.service.mjs +60 -0
  43. package/esm2020/lib/services/page/page.service.mjs +41 -0
  44. package/{esm2015/lib/services/search/search.service.js → esm2020/lib/services/search/search.service.mjs} +9 -8
  45. package/esm2020/lib/services/socket/socket.service.mjs +17 -0
  46. package/esm2020/smartsoft001-crud-shell-angular.mjs +5 -0
  47. package/fesm2015/smartsoft001-crud-shell-angular.mjs +2568 -0
  48. package/fesm2015/smartsoft001-crud-shell-angular.mjs.map +1 -0
  49. package/fesm2020/smartsoft001-crud-shell-angular.mjs +2728 -0
  50. package/fesm2020/smartsoft001-crud-shell-angular.mjs.map +1 -0
  51. package/lib/+state/crud.effects.d.ts +3 -0
  52. package/lib/+state/crud.effects.d.ts.map +1 -1
  53. package/lib/+state/crud.facade.d.ts +3 -0
  54. package/lib/+state/crud.facade.d.ts.map +1 -1
  55. package/lib/components/components.module.d.ts +22 -0
  56. package/lib/components/components.module.d.ts.map +1 -1
  57. package/lib/components/export/export.component.d.ts +3 -0
  58. package/lib/components/export/export.component.d.ts.map +1 -1
  59. package/lib/components/filter/base/base.component.d.ts +3 -0
  60. package/lib/components/filter/base/base.component.d.ts.map +1 -1
  61. package/lib/components/filter/check/check.component.d.ts +3 -0
  62. package/lib/components/filter/check/check.component.d.ts.map +1 -1
  63. package/lib/components/filter/date/date.component.d.ts +3 -0
  64. package/lib/components/filter/date/date.component.d.ts.map +1 -1
  65. package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts +4 -1
  66. package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts.map +1 -1
  67. package/lib/components/filter/filter.component.d.ts +3 -0
  68. package/lib/components/filter/filter.component.d.ts.map +1 -1
  69. package/lib/components/filter/flag/flag.component.d.ts +3 -0
  70. package/lib/components/filter/flag/flag.component.d.ts.map +1 -1
  71. package/lib/components/filter/int/int.component.d.ts +3 -0
  72. package/lib/components/filter/int/int.component.d.ts.map +1 -1
  73. package/lib/components/filter/radio/radio.component.d.ts +3 -0
  74. package/lib/components/filter/radio/radio.component.d.ts.map +1 -1
  75. package/lib/components/filter/text/text.component.d.ts +3 -0
  76. package/lib/components/filter/text/text.component.d.ts.map +1 -1
  77. package/lib/components/filters/filters.component.d.ts +3 -0
  78. package/lib/components/filters/filters.component.d.ts.map +1 -1
  79. package/lib/components/filters-config/filters-config.component.d.ts +3 -0
  80. package/lib/components/filters-config/filters-config.component.d.ts.map +1 -1
  81. package/lib/components/group/group.component.d.ts +3 -0
  82. package/lib/components/group/group.component.d.ts.map +1 -1
  83. package/lib/components/multiselect/multiselect.component.d.ts +3 -0
  84. package/lib/components/multiselect/multiselect.component.d.ts.map +1 -1
  85. package/lib/crud-full.module.d.ts +20 -0
  86. package/lib/crud-full.module.d.ts.map +1 -1
  87. package/lib/crud.config.d.ts +5 -0
  88. package/lib/crud.config.d.ts.map +1 -1
  89. package/lib/crud.module.d.ts +13 -0
  90. package/lib/crud.module.d.ts.map +1 -1
  91. package/lib/factories/list-pagination/list-pagination.factory.d.ts +3 -0
  92. package/lib/factories/list-pagination/list-pagination.factory.d.ts.map +1 -1
  93. package/lib/pages/index.d.ts +5 -1
  94. package/lib/pages/index.d.ts.map +1 -1
  95. package/lib/pages/item/base/base.component.d.ts +3 -0
  96. package/lib/pages/item/base/base.component.d.ts.map +1 -1
  97. package/lib/pages/item/item.component.d.ts +3 -0
  98. package/lib/pages/item/item.component.d.ts.map +1 -1
  99. package/lib/pages/item/standard/standard.component.d.ts +3 -0
  100. package/lib/pages/item/standard/standard.component.d.ts.map +1 -1
  101. package/lib/pages/list/base/base.component.d.ts +3 -0
  102. package/lib/pages/list/base/base.component.d.ts.map +1 -1
  103. package/lib/pages/list/list.component.d.ts +3 -0
  104. package/lib/pages/list/list.component.d.ts.map +1 -1
  105. package/lib/pages/list/standard/standard.component.d.ts +3 -0
  106. package/lib/pages/list/standard/standard.component.d.ts.map +1 -1
  107. package/lib/pipes/form-options/form-options.pipe.d.ts +3 -0
  108. package/lib/pipes/form-options/form-options.pipe.d.ts.map +1 -1
  109. package/lib/pipes/pipes.module.d.ts +5 -0
  110. package/lib/pipes/pipes.module.d.ts.map +1 -1
  111. package/lib/services/crud/crud.service.d.ts +3 -0
  112. package/lib/services/crud/crud.service.d.ts.map +1 -1
  113. package/lib/services/list-group/list-group.service.d.ts +3 -0
  114. package/lib/services/list-group/list-group.service.d.ts.map +1 -1
  115. package/lib/services/page/page.service.d.ts +3 -0
  116. package/lib/services/page/page.service.d.ts.map +1 -1
  117. package/lib/services/search/search.service.d.ts +3 -0
  118. package/lib/services/search/search.service.d.ts.map +1 -1
  119. package/lib/services/socket/socket.service.d.ts +5 -0
  120. package/lib/services/socket/socket.service.d.ts.map +1 -1
  121. package/package.json +39 -26
  122. package/smartsoft001-crud-shell-angular.d.ts +1 -17
  123. package/smartsoft001-crud-shell-angular.d.ts.map +1 -1
  124. package/bundles/smartsoft001-crud-shell-angular.umd.js +0 -3332
  125. package/bundles/smartsoft001-crud-shell-angular.umd.js.map +0 -1
  126. package/esm2015/lib/+state/crud.effects.js +0 -178
  127. package/esm2015/lib/+state/crud.facade.js +0 -92
  128. package/esm2015/lib/+state/crud.reducer.js +0 -92
  129. package/esm2015/lib/components/components.module.js +0 -65
  130. package/esm2015/lib/components/export/export.component.js +0 -55
  131. package/esm2015/lib/components/filter/base/base.component.js +0 -144
  132. package/esm2015/lib/components/filter/check/check.component.js +0 -34
  133. package/esm2015/lib/components/filter/date/date.component.js +0 -42
  134. package/esm2015/lib/components/filter/date-with-edit/date-with-edit.component.js +0 -43
  135. package/esm2015/lib/components/filter/filter.component.js +0 -30
  136. package/esm2015/lib/components/filter/flag/flag.component.js +0 -13
  137. package/esm2015/lib/components/filter/int/int.component.js +0 -31
  138. package/esm2015/lib/components/filter/radio/radio.component.js +0 -13
  139. package/esm2015/lib/components/filter/text/text.component.js +0 -13
  140. package/esm2015/lib/components/filters/filters.component.js +0 -124
  141. package/esm2015/lib/components/filters-config/filters-config.component.js +0 -46
  142. package/esm2015/lib/components/group/group.component.js +0 -65
  143. package/esm2015/lib/components/multiselect/multiselect.component.js +0 -74
  144. package/esm2015/lib/crud-full.module.js +0 -83
  145. package/esm2015/lib/crud.config.js +0 -14
  146. package/esm2015/lib/crud.module.js +0 -84
  147. package/esm2015/lib/factories/list-pagination/list-pagination.factory.js +0 -73
  148. package/esm2015/lib/pages/index.js +0 -3
  149. package/esm2015/lib/pages/item/base/base.component.js +0 -44
  150. package/esm2015/lib/pages/item/item.component.js +0 -383
  151. package/esm2015/lib/pages/item/standard/standard.component.js +0 -13
  152. package/esm2015/lib/pages/list/base/base.component.js +0 -30
  153. package/esm2015/lib/pages/list/list.component.js +0 -319
  154. package/esm2015/lib/pages/list/standard/standard.component.js +0 -39
  155. package/esm2015/lib/pipes/form-options/form-options.pipe.js +0 -56
  156. package/esm2015/lib/pipes/pipes.module.js +0 -16
  157. package/esm2015/lib/services/crud/crud.service.js +0 -143
  158. package/esm2015/lib/services/list-group/list-group.service.js +0 -61
  159. package/esm2015/lib/services/page/page.service.js +0 -48
  160. package/esm2015/lib/services/socket/socket.service.js +0 -14
  161. package/esm2015/smartsoft001-crud-shell-angular.js +0 -22
  162. package/fesm2015/smartsoft001-crud-shell-angular.js +0 -2676
  163. package/fesm2015/smartsoft001-crud-shell-angular.js.map +0 -1
  164. package/lib/+state/crud.effects.ngfactory.d.ts.map +0 -1
  165. package/lib/+state/crud.facade.ngfactory.d.ts.map +0 -1
  166. package/lib/components/components.module.ngfactory.d.ts.map +0 -1
  167. package/lib/components/export/export.component.ngfactory.d.ts.map +0 -1
  168. package/lib/components/export/export.component.scss.shim.ngstyle.d.ts.map +0 -1
  169. package/lib/components/filter/check/check.component.ngfactory.d.ts.map +0 -1
  170. package/lib/components/filter/check/check.component.scss.shim.ngstyle.d.ts.map +0 -1
  171. package/lib/components/filter/date/date.component.ngfactory.d.ts.map +0 -1
  172. package/lib/components/filter/date/date.component.scss.shim.ngstyle.d.ts.map +0 -1
  173. package/lib/components/filter/date-with-edit/date-with-edit.component.ngfactory.d.ts.map +0 -1
  174. package/lib/components/filter/date-with-edit/date-with-edit.component.scss.shim.ngstyle.d.ts.map +0 -1
  175. package/lib/components/filter/filter.component.ngfactory.d.ts.map +0 -1
  176. package/lib/components/filter/filter.component.scss.shim.ngstyle.d.ts.map +0 -1
  177. package/lib/components/filter/flag/flag.component.ngfactory.d.ts.map +0 -1
  178. package/lib/components/filter/flag/flag.component.scss.shim.ngstyle.d.ts.map +0 -1
  179. package/lib/components/filter/int/int.component.ngfactory.d.ts.map +0 -1
  180. package/lib/components/filter/int/int.component.scss.shim.ngstyle.d.ts.map +0 -1
  181. package/lib/components/filter/radio/radio.component.ngfactory.d.ts.map +0 -1
  182. package/lib/components/filter/radio/radio.component.scss.shim.ngstyle.d.ts.map +0 -1
  183. package/lib/components/filter/text/text.component.ngfactory.d.ts.map +0 -1
  184. package/lib/components/filter/text/text.component.scss.shim.ngstyle.d.ts.map +0 -1
  185. package/lib/components/filters/filters.component.ngfactory.d.ts.map +0 -1
  186. package/lib/components/filters/filters.component.scss.shim.ngstyle.d.ts.map +0 -1
  187. package/lib/components/filters-config/filters-config.component.ngfactory.d.ts.map +0 -1
  188. package/lib/components/filters-config/filters-config.component.scss.shim.ngstyle.d.ts.map +0 -1
  189. package/lib/components/group/group.component.ngfactory.d.ts.map +0 -1
  190. package/lib/components/group/group.component.scss.shim.ngstyle.d.ts.map +0 -1
  191. package/lib/components/multiselect/multiselect.component.ngfactory.d.ts.map +0 -1
  192. package/lib/components/multiselect/multiselect.component.scss.shim.ngstyle.d.ts.map +0 -1
  193. package/lib/crud-full.module.ngfactory.d.ts.map +0 -1
  194. package/lib/crud.config.ngfactory.d.ts.map +0 -1
  195. package/lib/crud.module.ngfactory.d.ts.map +0 -1
  196. package/lib/factories/list-pagination/list-pagination.factory.ngfactory.d.ts.map +0 -1
  197. package/lib/pages/item/item.component.ngfactory.d.ts.map +0 -1
  198. package/lib/pages/item/standard/standard.component.ngfactory.d.ts.map +0 -1
  199. package/lib/pages/item/standard/standard.component.scss.shim.ngstyle.d.ts.map +0 -1
  200. package/lib/pages/list/list.component.ngfactory.d.ts.map +0 -1
  201. package/lib/pages/list/standard/standard.component.ngfactory.d.ts.map +0 -1
  202. package/lib/pages/list/standard/standard.component.scss.shim.ngstyle.d.ts.map +0 -1
  203. package/lib/pipes/form-options/form-options.pipe.ngfactory.d.ts.map +0 -1
  204. package/lib/pipes/pipes.module.ngfactory.d.ts.map +0 -1
  205. package/lib/services/crud/crud.service.ngfactory.d.ts.map +0 -1
  206. package/lib/services/list-group/list-group.service.ngfactory.d.ts.map +0 -1
  207. package/lib/services/page/page.service.ngfactory.d.ts.map +0 -1
  208. package/lib/services/search/search.service.ngfactory.d.ts.map +0 -1
  209. package/lib/services/socket/socket.service.ngfactory.d.ts.map +0 -1
  210. package/smartsoft001-crud-shell-angular.metadata.json +0 -1
@@ -1,178 +0,0 @@
1
- import "reflect-metadata";
2
- import { Injectable } from "@angular/core";
3
- import { catchError, first, tap } from "rxjs/operators";
4
- import { of } from "rxjs";
5
- import { ActionsSubject, select, State, Store } from "@ngrx/store";
6
- import { CrudService } from "../services/crud/crud.service";
7
- import * as CrudActions from "./crud.actions";
8
- import { CrudConfig } from "../crud.config";
9
- import { getCrudFilter } from "./crud.selectors";
10
- export class CrudEffects {
11
- constructor(actions$, service, config, store, state) {
12
- this.actions$ = actions$;
13
- this.service = service;
14
- this.config = config;
15
- this.store = store;
16
- this.state = state;
17
- }
18
- init() {
19
- const metadata = Reflect.getMetadata(this.config.entity, CrudEffects);
20
- if (metadata)
21
- return;
22
- Reflect.defineMetadata(this.config.entity, true, CrudEffects);
23
- this.actions$.subscribe((action) => {
24
- switch (action.type) {
25
- case `[${this.config.entity}] Create`:
26
- this.service
27
- .create(action.item)
28
- .pipe(tap(() => this.store.dispatch(CrudActions.createSuccess(this.config.entity, action.item))), catchError((error) => {
29
- this.store.dispatch(CrudActions.createFailure(this.config.entity, action.item, error));
30
- return of();
31
- }))
32
- .subscribe();
33
- break;
34
- case `[${this.config.entity}] Create Success`:
35
- const createState = this.state.getValue()[this.config.entity];
36
- this.store.dispatch(CrudActions.read(this.config.entity, createState.filter ? Object.assign(Object.assign({}, createState.filter), { offset: 0 }) : null));
37
- break;
38
- case `[${this.config.entity}] Create Many`:
39
- this.service
40
- .createMany(action.data.items, action.data.options)
41
- .pipe(tap(() => this.store.dispatch(CrudActions.createManySuccess(this.config.entity, {
42
- items: action.data.items,
43
- options: action.data.options,
44
- }))), catchError((error) => {
45
- this.store.dispatch(CrudActions.createManyFailure(this.config.entity, {
46
- items: action.data.items,
47
- options: action.data.options,
48
- }, error));
49
- return of();
50
- }))
51
- .subscribe();
52
- break;
53
- case `[${this.config.entity}] Create Many Success`:
54
- const createManyState = this.state.getValue()[this.config.entity];
55
- this.store.dispatch(CrudActions.read(this.config.entity, createManyState.filter
56
- ? Object.assign(Object.assign({}, createManyState.filter), { offset: 0 }) : null));
57
- break;
58
- case `[${this.config.entity}] Read`:
59
- this.service
60
- .getList(action.filter)
61
- .pipe(tap((result) => this.store.dispatch(CrudActions.readSuccess(this.config.entity, action.filter, result))), catchError((error) => {
62
- this.store.dispatch(CrudActions.readFailure(this.config.entity, action.filter, error));
63
- return of();
64
- }))
65
- .subscribe();
66
- break;
67
- case `[${this.config.entity}] Export`:
68
- this.service
69
- .exportList(action.filter, action.format)
70
- .pipe(tap((result) => this.store.dispatch(CrudActions.exportListSuccess(this.config.entity, action.filter))), catchError((error) => {
71
- this.store.dispatch(CrudActions.exportListFailure(this.config.entity, action.filter, error));
72
- return of();
73
- }))
74
- .subscribe();
75
- break;
76
- case `[${this.config.entity}] Select`:
77
- this.service
78
- .getById(action.id)
79
- .pipe(tap((result) => this.store.dispatch(CrudActions.selectSuccess(this.config.entity, action.id, result))), catchError((error) => {
80
- this.store.dispatch(CrudActions.selectFailure(this.config.entity, action.id, error));
81
- return of();
82
- }))
83
- .subscribe();
84
- break;
85
- case `[${this.config.entity}] Update`:
86
- this.service
87
- .updatePartial(action.item)
88
- .pipe(tap(() => this.store.dispatch(CrudActions.updateSuccess(this.config.entity, action.item))), catchError((error) => {
89
- this.store.dispatch(CrudActions.updateFailure(this.config.entity, action.item, error));
90
- this.store.dispatch(CrudActions.read(this.config.entity));
91
- return of();
92
- }))
93
- .subscribe();
94
- break;
95
- case `[${this.config.entity}] Update Success`:
96
- this.store
97
- .pipe(select(getCrudFilter(this.config.entity)), first())
98
- .subscribe((filter) => {
99
- this.store.dispatch(CrudActions.read(this.config.entity, Object.assign(Object.assign({}, filter), { offset: 0 })));
100
- this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));
101
- });
102
- break;
103
- case `[${this.config.entity}] Update partial`:
104
- this.service
105
- .updatePartial(action.item)
106
- .pipe(tap(() => this.store.dispatch(CrudActions.updatePartialSuccess(this.config.entity, action.item))), catchError((error) => {
107
- this.store.dispatch(CrudActions.updatePartialFailure(this.config.entity, action.item, error));
108
- this.store.dispatch(CrudActions.read(this.config.entity));
109
- return of();
110
- }))
111
- .subscribe();
112
- break;
113
- case `[${this.config.entity}] Update partial Success`:
114
- this.store
115
- .pipe(select(getCrudFilter(this.config.entity)), first())
116
- .subscribe((filter) => {
117
- this.store.dispatch(CrudActions.read(this.config.entity, Object.assign(Object.assign({}, filter), { offset: 0 })));
118
- this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));
119
- });
120
- break;
121
- case `[${this.config.entity}] Update partial many`:
122
- this.service
123
- .updatePartialMany(action.items)
124
- .pipe(tap(() => this.store.dispatch(CrudActions.updatePartialManySuccess(this.config.entity, action.items))), catchError((error) => {
125
- this.store.dispatch(CrudActions.updatePartialManyFailure(this.config.entity, action.items, error));
126
- this.store.dispatch(CrudActions.read(this.config.entity));
127
- return of();
128
- }))
129
- .subscribe();
130
- break;
131
- case `[${this.config.entity}] Update partial many Success`:
132
- this.store
133
- .pipe(select(getCrudFilter(this.config.entity)), first())
134
- .subscribe((filter) => {
135
- this.store.dispatch(CrudActions.read(this.config.entity, Object.assign(Object.assign({}, filter), { offset: 0 })));
136
- });
137
- break;
138
- case `[${this.config.entity}] Delete`:
139
- this.service
140
- .delete(action.id)
141
- .pipe(tap(() => this.store.dispatch(CrudActions.deleteSuccess(this.config.entity, action.id))), catchError((error) => {
142
- this.store.dispatch(CrudActions.deleteFailure(this.config.entity, action.id, error));
143
- return of();
144
- }))
145
- .subscribe();
146
- break;
147
- case `[${this.config.entity}] Delete Success`:
148
- this.store
149
- .pipe(select(getCrudFilter(this.config.entity)), first())
150
- .subscribe((filter) => {
151
- this.store.dispatch(CrudActions.read(this.config.entity, Object.assign(Object.assign({}, filter), { offset: 0 })));
152
- });
153
- break;
154
- default:
155
- break;
156
- }
157
- });
158
- }
159
- }
160
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
161
- CrudEffects.decorators = [
162
- { type: Injectable }
163
- ];
164
- /**
165
- * @type {function(): !Array<(null|{
166
- * type: ?,
167
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
168
- * })>}
169
- * @nocollapse
170
- */
171
- CrudEffects.ctorParameters = () => [
172
- { type: ActionsSubject },
173
- { type: CrudService },
174
- { type: CrudConfig },
175
- { type: Store },
176
- { type: State }
177
- ];
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELE9BQU8sS0FBSyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNVLFFBQXdCLEVBQ3hCLE9BQXVCLEVBQ3ZCLE1BQXFCLEVBQ3JCLEtBQWlCLEVBQ2pCLEtBQWlCO1FBSmpCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBQ3hCLENBQUM7SUFFSixJQUFJO1FBQ0YsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztR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QyxFQUFFLEVBQ1QsS0FBSyxDQUNOLENBQ0YsQ0FBQzt3QkFDRixPQUFPLEVBQUUsRUFBRSxDQUFDO29CQUNkLENBQUMsQ0FBQyxDQUNIO3lCQUNBLFNBQVMsRUFBRSxDQUFDO29CQUNmLE1BQU07Z0JBRVIsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxrQkFBa0I7b0JBQ3pDLElBQUksQ0FBQyxLQUFLO3lCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt5QkFDeEQsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNmLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGtDQUM1QixNQUFNLEtBQ1QsTUFBTSxFQUFFLENBQUMsSUFDWCxDQUNMLENBQUM7b0JBQ04sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsTUFBTTtnQkFFUjtvQkFDRSxNQUFNO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7WUE5VUYsVUFBVTs7Ozs7Ozs7OztZQVJNLGNBQWM7WUFFdEIsV0FBVztZQUdYLFVBQVU7WUFMNkIsS0FBSztZQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlyc3QsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25zU3ViamVjdCwgc2VsZWN0LCBTdGF0ZSwgU3RvcmUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcblxuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvY3J1ZC9jcnVkLnNlcnZpY2VcIjtcbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0ICogYXMgQ3J1ZEFjdGlvbnMgZnJvbSBcIi4vY3J1ZC5hY3Rpb25zXCI7XG5pbXBvcnQgeyBDcnVkQ29uZmlnIH0gZnJvbSBcIi4uL2NydWQuY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRDcnVkRmlsdGVyIH0gZnJvbSBcIi4vY3J1ZC5zZWxlY3RvcnNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENydWRFZmZlY3RzPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9uc1N1YmplY3QsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBDcnVkU2VydmljZTxUPixcbiAgICBwcml2YXRlIGNvbmZpZzogQ3J1ZENvbmZpZzxUPixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgc3RhdGU6IFN0YXRlPGFueT5cbiAgKSB7fVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBSZWZsZWN0LmdldE1ldGFkYXRhKHRoaXMuY29uZmlnLmVudGl0eSwgQ3J1ZEVmZmVjdHMpO1xuXG4gICAgaWYgKG1ldGFkYXRhKSByZXR1cm47XG5cbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKHRoaXMuY29uZmlnLmVudGl0eSwgdHJ1ZSwgQ3J1ZEVmZmVjdHMpO1xuXG4gICAgdGhpcy5hY3Rpb25zJC5zdWJzY3JpYmUoKGFjdGlvbjogQWN0aW9uICYgYW55KSA9PiB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIENyZWF0ZWA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuY3JlYXRlKGFjdGlvbi5pdGVtKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5jcmVhdGVTdWNjZXNzKHRoaXMuY29uZmlnLmVudGl0eSwgYWN0aW9uLml0ZW0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5jcmVhdGVGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gQ3JlYXRlIFN1Y2Nlc3NgOlxuICAgICAgICAgIGNvbnN0IGNyZWF0ZVN0YXRlID0gdGhpcy5zdGF0ZS5nZXRWYWx1ZSgpW3RoaXMuY29uZmlnLmVudGl0eV07XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQoXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgY3JlYXRlU3RhdGUuZmlsdGVyID8geyAuLi5jcmVhdGVTdGF0ZS5maWx0ZXIsIG9mZnNldDogMCB9IDogbnVsbFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gQ3JlYXRlIE1hbnlgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZU1hbnkoYWN0aW9uLmRhdGEuaXRlbXMsIGFjdGlvbi5kYXRhLm9wdGlvbnMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmNyZWF0ZU1hbnlTdWNjZXNzKHRoaXMuY29uZmlnLmVudGl0eSwge1xuICAgICAgICAgICAgICAgICAgICBpdGVtczogYWN0aW9uLmRhdGEuaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGFjdGlvbi5kYXRhLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuY3JlYXRlTWFueUZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBhY3Rpb24uZGF0YS5pdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBhY3Rpb24uZGF0YS5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gQ3JlYXRlIE1hbnkgU3VjY2Vzc2A6XG4gICAgICAgICAgY29uc3QgY3JlYXRlTWFueVN0YXRlID0gdGhpcy5zdGF0ZS5nZXRWYWx1ZSgpW3RoaXMuY29uZmlnLmVudGl0eV07XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQoXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgY3JlYXRlTWFueVN0YXRlLmZpbHRlclxuICAgICAgICAgICAgICAgID8geyAuLi5jcmVhdGVNYW55U3RhdGUuZmlsdGVyLCBvZmZzZXQ6IDAgfVxuICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gUmVhZGA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0TGlzdChhY3Rpb24uZmlsdGVyKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgocmVzdWx0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5yZWFkU3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHRcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWRGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBFeHBvcnRgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmV4cG9ydExpc3QoYWN0aW9uLmZpbHRlciwgYWN0aW9uLmZvcm1hdClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKHJlc3VsdCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuZXhwb3J0TGlzdFN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmZpbHRlclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuZXhwb3J0TGlzdEZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFNlbGVjdGA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QnlJZChhY3Rpb24uaWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFwKChyZXN1bHQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnNlbGVjdFN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHRcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnNlbGVjdEZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gVXBkYXRlYDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVQYXJ0aWFsKGFjdGlvbi5pdGVtKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy51cGRhdGVTdWNjZXNzKHRoaXMuY29uZmlnLmVudGl0eSwgYWN0aW9uLml0ZW0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy51cGRhdGVGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5yZWFkKHRoaXMuY29uZmlnLmVudGl0eSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAucGlwZShzZWxlY3QoZ2V0Q3J1ZEZpbHRlcih0aGlzLmNvbmZpZy5lbnRpdHkpKSwgZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCB7XG4gICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnNlbGVjdCh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtLmlkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBVcGRhdGUgcGFydGlhbGA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlUGFydGlhbChhY3Rpb24uaXRlbSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbFN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLml0ZW1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWxGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5yZWFkKHRoaXMuY29uZmlnLmVudGl0eSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgOlxuICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgIC5waXBlKHNlbGVjdChnZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpLCBmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuc2VsZWN0KHRoaXMuY29uZmlnLmVudGl0eSwgYWN0aW9uLml0ZW0uaWQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVBhcnRpYWxNYW55KGFjdGlvbi5pdGVtcylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbE1hbnlTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtc1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbE1hbnlGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHkpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55IFN1Y2Nlc3NgOlxuICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgIC5waXBlKHNlbGVjdChnZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpLCBmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gRGVsZXRlYDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5kZWxldGUoYWN0aW9uLmlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5kZWxldGVTdWNjZXNzKHRoaXMuY29uZmlnLmVudGl0eSwgYWN0aW9uLmlkKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuZGVsZXRlRmFpbHVyZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBEZWxldGUgU3VjY2Vzc2A6XG4gICAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAgICAgLnBpcGUoc2VsZWN0KGdldENydWRGaWx0ZXIodGhpcy5jb25maWcuZW50aXR5KSksIGZpcnN0KCkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5yZWFkKHRoaXMuY29uZmlnLmVudGl0eSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,92 +0,0 @@
1
- import { select, Store } from "@ngrx/store";
2
- import { Injectable } from "@angular/core";
3
- import { map, tap } from "rxjs/operators";
4
- import { CrudConfig } from "../crud.config";
5
- import * as CrudActions from "./crud.actions";
6
- import * as CrudSelectors from "./crud.selectors";
7
- import { NgrxStoreService } from "@smartsoft001/angular";
8
- export class CrudFacade {
9
- constructor(store, config) {
10
- this.store = store;
11
- this.config = config;
12
- this.loaded$ = this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity)));
13
- this.loading$ = this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity)), map(l => !l));
14
- this.selected$ = this.store.pipe(select(CrudSelectors.getCrudSelected(this.config.entity)), tap(s => {
15
- this.selected = s;
16
- }));
17
- this.multiSelected$ = this.store.pipe(select(CrudSelectors.getCrudMultiSelected(this.config.entity)), tap(s => {
18
- this.multiSelected = s;
19
- }));
20
- this.list$ = this.store.pipe(select(CrudSelectors.getCrudList(this.config.entity)), tap(l => {
21
- this.list = l;
22
- }));
23
- this.filter$ = this.store.pipe(select(CrudSelectors.getCrudFilter(this.config.entity)), tap(f => {
24
- this.filter = f;
25
- }));
26
- this.totalCount$ = this.store.pipe(select(CrudSelectors.getCrudTotalCount(this.config.entity)));
27
- this.links$ = this.store.pipe(select(CrudSelectors.getCrudLinks(this.config.entity)));
28
- this.error$ = this.store.pipe(select(CrudSelectors.getCrudError(this.config.entity)));
29
- if (NgrxStoreService.store) {
30
- this.store = NgrxStoreService.store;
31
- }
32
- }
33
- create(item) {
34
- this.store.dispatch(CrudActions.create(this.config.entity, item));
35
- }
36
- createMany(items, options) {
37
- this.store.dispatch(CrudActions.createMany(this.config.entity, { items, options }));
38
- }
39
- read(filter = null) {
40
- let baseQuery = [];
41
- if (this.config.baseQuery) {
42
- baseQuery = this.config.baseQuery;
43
- }
44
- const fullFilter = Object.assign(Object.assign({}, (filter ? filter : {})), { query: filter && filter.query ? filter.query : baseQuery });
45
- this.store.dispatch(CrudActions.read(this.config.entity, fullFilter));
46
- }
47
- select(id) {
48
- this.store.dispatch(CrudActions.select(this.config.entity, id));
49
- }
50
- unselect() {
51
- this.store.dispatch(CrudActions.unselect(this.config.entity));
52
- }
53
- multiSelect(items) {
54
- this.store.dispatch(CrudActions.multiSelect(this.config.entity, items));
55
- }
56
- update(item) {
57
- this.getStore().dispatch(CrudActions.update(this.config.entity, item));
58
- }
59
- export(filter = null, format = null) {
60
- this.getStore().dispatch(CrudActions.exportList(this.config.entity, filter, format));
61
- }
62
- updatePartial(item) {
63
- this.getStore().dispatch(CrudActions.updatePartial(this.config.entity, item));
64
- }
65
- updatePartialMany(items) {
66
- this.getStore().dispatch(CrudActions.updatePartialMany(this.config.entity, items));
67
- }
68
- delete(id) {
69
- this.getStore().dispatch(CrudActions.deleteItem(this.config.entity, id));
70
- }
71
- getStore() {
72
- if (NgrxStoreService.store)
73
- return NgrxStoreService.store;
74
- return this.store;
75
- }
76
- }
77
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
78
- CrudFacade.decorators = [
79
- { type: Injectable }
80
- ];
81
- /**
82
- * @type {function(): !Array<(null|{
83
- * type: ?,
84
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
85
- * })>}
86
- * @nocollapse
87
- */
88
- CrudFacade.ctorParameters = () => [
89
- { type: Store },
90
- { type: CrudConfig }
91
- ];
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliLytzdGF0ZS9jcnVkLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RCxNQUFNLE9BQU8sVUFBVTtJQWdEckIsWUFBb0IsS0FBaUIsRUFBVSxNQUFxQjtRQUFoRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQTFDcEUsWUFBTyxHQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDNUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN4RCxDQUFDO1FBQ0YsYUFBUSxHQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNiLENBQUM7UUFDRixjQUFTLEdBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN4QyxNQUFNLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3pELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixtQkFBYyxHQUFvQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzlELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixVQUFLLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN0QyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixZQUFPLEdBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNoRCxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixnQkFBVyxHQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDL0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQzVELENBQUM7UUFDRixXQUFNLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFFRixXQUFNLEdBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNyQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3pELENBQUM7UUFHQSxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsSUFBTztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWUsRUFBRSxPQUErQjtRQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQXNCLElBQUk7UUFDN0IsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDekIsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ25DO1FBRUQsTUFBTSxVQUFVLG1DQUNYLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUN6QixLQUFLLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FDekQsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWU7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBTztRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBc0IsSUFBSSxFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQzlDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWlDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQUUsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFFMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7Ozs7WUFqSEYsVUFBVTs7Ozs7Ozs7OztZQWZNLEtBQUs7WUFRYixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7IENydWRDb25maWcgfSBmcm9tIFwiLi4vY3J1ZC5jb25maWdcIjtcbmltcG9ydCAqIGFzIENydWRBY3Rpb25zIGZyb20gXCIuL2NydWQuYWN0aW9uc1wiO1xuaW1wb3J0ICogYXMgQ3J1ZFNlbGVjdG9ycyBmcm9tIFwiLi9jcnVkLnNlbGVjdG9yc1wiO1xuaW1wb3J0IHtJQ3J1ZENyZWF0ZU1hbnlPcHRpb25zLCBJQ3J1ZEZpbHRlcn0gZnJvbSBcIi4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge05ncnhTdG9yZVNlcnZpY2V9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZEZhY2FkZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHNlbGVjdGVkOiBUO1xuICBtdWx0aVNlbGVjdGVkOiBUO1xuICBsaXN0OiBBcnJheTxUPjtcbiAgZmlsdGVyOiBJQ3J1ZEZpbHRlcjtcblxuICBsb2FkZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRMb2FkZWQodGhpcy5jb25maWcuZW50aXR5KSlcbiAgKTtcbiAgbG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZExvYWRlZCh0aGlzLmNvbmZpZy5lbnRpdHkpKSxcbiAgICBtYXAobCA9PiAhbClcbiAgKTtcbiAgc2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFQ+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRTZWxlY3RlZCh0aGlzLmNvbmZpZy5lbnRpdHkpKSxcbiAgICB0YXAocyA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gcztcbiAgICB9KVxuICApO1xuICBtdWx0aVNlbGVjdGVkJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZE11bHRpU2VsZWN0ZWQodGhpcy5jb25maWcuZW50aXR5KSksXG4gICAgICB0YXAocyA9PiB7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RlZCA9IHM7XG4gICAgICB9KVxuICApO1xuICBsaXN0JDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRMaXN0KHRoaXMuY29uZmlnLmVudGl0eSkpLFxuICAgIHRhcChsID0+IHtcbiAgICAgIHRoaXMubGlzdCA9IGw7XG4gICAgfSlcbiAgKTtcbiAgZmlsdGVyJDogT2JzZXJ2YWJsZTxJQ3J1ZEZpbHRlcj4gPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZEZpbHRlcih0aGlzLmNvbmZpZy5lbnRpdHkpKSxcbiAgICB0YXAoZiA9PiB7XG4gICAgICB0aGlzLmZpbHRlciA9IGY7XG4gICAgfSlcbiAgKTtcbiAgdG90YWxDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMuc3RvcmUucGlwZShcbiAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkVG90YWxDb3VudCh0aGlzLmNvbmZpZy5lbnRpdHkpKVxuICApO1xuICBsaW5rcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuc3RvcmUucGlwZShcbiAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkTGlua3ModGhpcy5jb25maWcuZW50aXR5KSlcbiAgKTtcblxuICBlcnJvciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuc3RvcmUucGlwZShcbiAgICAgIHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRFcnJvcih0aGlzLmNvbmZpZy5lbnRpdHkpKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc3RvcmU6IFN0b3JlPGFueT4sIHByaXZhdGUgY29uZmlnOiBDcnVkQ29uZmlnPFQ+KSB7XG4gICAgaWYgKE5ncnhTdG9yZVNlcnZpY2Uuc3RvcmUpIHtcbiAgICAgIHRoaXMuc3RvcmUgPSBOZ3J4U3RvcmVTZXJ2aWNlLnN0b3JlO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZShpdGVtOiBUKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5jcmVhdGUodGhpcy5jb25maWcuZW50aXR5LCBpdGVtKSk7XG4gIH1cblxuICBjcmVhdGVNYW55KGl0ZW1zOiBBcnJheTxUPiwgb3B0aW9uczogSUNydWRDcmVhdGVNYW55T3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuY3JlYXRlTWFueSh0aGlzLmNvbmZpZy5lbnRpdHksIHsgaXRlbXMsIG9wdGlvbnMgfSkpO1xuICB9XG5cbiAgcmVhZChmaWx0ZXI6IElDcnVkRmlsdGVyID0gbnVsbCk6IHZvaWQge1xuICAgIGxldCBiYXNlUXVlcnkgPSBbXTtcbiAgICBpZiAodGhpcy5jb25maWcuYmFzZVF1ZXJ5KSB7XG4gICAgICBiYXNlUXVlcnkgPSB0aGlzLmNvbmZpZy5iYXNlUXVlcnk7XG4gICAgfVxuXG4gICAgY29uc3QgZnVsbEZpbHRlciA9IHtcbiAgICAgIC4uLihmaWx0ZXIgPyBmaWx0ZXIgOiB7fSksXG4gICAgICBxdWVyeTogZmlsdGVyICYmIGZpbHRlci5xdWVyeSA/IGZpbHRlci5xdWVyeSA6IGJhc2VRdWVyeVxuICAgIH07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCBmdWxsRmlsdGVyKSk7XG4gIH1cblxuICBzZWxlY3QoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuc2VsZWN0KHRoaXMuY29uZmlnLmVudGl0eSwgaWQpKTtcbiAgfVxuXG4gIHVuc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMudW5zZWxlY3QodGhpcy5jb25maWcuZW50aXR5KSk7XG4gIH1cblxuICBtdWx0aVNlbGVjdChpdGVtczogQXJyYXk8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLm11bHRpU2VsZWN0KHRoaXMuY29uZmlnLmVudGl0eSwgaXRlbXMpKTtcbiAgfVxuXG4gIHVwZGF0ZShpdGVtOiBUKTogdm9pZCB7XG4gICAgdGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoKENydWRBY3Rpb25zLnVwZGF0ZSh0aGlzLmNvbmZpZy5lbnRpdHksIGl0ZW0pKTtcbiAgfVxuXG4gIGV4cG9ydChmaWx0ZXI6IElDcnVkRmlsdGVyID0gbnVsbCwgZm9ybWF0ID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaChDcnVkQWN0aW9ucy5leHBvcnRMaXN0KHRoaXMuY29uZmlnLmVudGl0eSwgZmlsdGVyLCBmb3JtYXQpKTtcbiAgfVxuXG4gIHVwZGF0ZVBhcnRpYWwoaXRlbTogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoKENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWwodGhpcy5jb25maWcuZW50aXR5LCBpdGVtKSk7XG4gIH1cblxuICB1cGRhdGVQYXJ0aWFsTWFueShpdGVtczogKFBhcnRpYWw8VD4gJiB7aWQ6IHN0cmluZ30pW10pIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbE1hbnkodGhpcy5jb25maWcuZW50aXR5LCBpdGVtcykpO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuZGVsZXRlSXRlbSh0aGlzLmNvbmZpZy5lbnRpdHksIGlkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFN0b3JlKCk6IFN0b3JlIHtcbiAgICBpZiAoTmdyeFN0b3JlU2VydmljZS5zdG9yZSkgcmV0dXJuIE5ncnhTdG9yZVNlcnZpY2Uuc3RvcmU7XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcbiAgfVxufVxuIl19
@@ -1,92 +0,0 @@
1
- import { PaginationMode } from "@smartsoft001/angular";
2
- export const initialState = {
3
- loaded: false
4
- };
5
- const crudReducer = (state = initialState, action, entity) => {
6
- switch (action.type) {
7
- case `[${entity}] Create`:
8
- return Object.assign(Object.assign({}, state), { loaded: false, error: null });
9
- case `[${entity}] Create Success`:
10
- return Object.assign(Object.assign({}, state), { loaded: true, error: null });
11
- case `[${entity}] Create Failure`:
12
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
13
- case `[${entity}] Create Many`:
14
- return Object.assign(Object.assign({}, state), { loaded: false, error: null });
15
- case `[${entity}] Create Many Success`:
16
- return Object.assign(Object.assign({}, state), { loaded: true, error: null });
17
- case `[${entity}] Create Many Failure`:
18
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
19
- case `[${entity}] Export`:
20
- return Object.assign(Object.assign({}, state), { loaded: false });
21
- case `[${entity}] Export Success`:
22
- return Object.assign(Object.assign({}, state), { loaded: true });
23
- case `[${entity}] Export Failure`:
24
- return Object.assign(Object.assign({}, state), { loaded: true });
25
- case `[${entity}] Read`:
26
- return Object.assign(Object.assign({}, state), { loaded: false, filter: action.filter, error: null, totalCount: null, links: null });
27
- case `[${entity}] Read Success`:
28
- let list = [];
29
- if (action.filter
30
- && action.filter.offset
31
- && state.list
32
- && action.filter.paginationMode !== PaginationMode.singlePage) {
33
- state.list.forEach(i => {
34
- list.push(i);
35
- });
36
- list = [
37
- ...list,
38
- ...action.result.data
39
- ];
40
- }
41
- else {
42
- list = action.result.data;
43
- }
44
- return Object.assign(Object.assign({}, state), { loaded: true, list, totalCount: action.result.totalCount, links: action.result.links, error: null });
45
- case `[${entity}] Read Failure`:
46
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
47
- case `[${entity}] Select`:
48
- return Object.assign(Object.assign({}, state), { loaded: false, selected: null, error: null });
49
- case `[${entity}] Select Success`:
50
- return Object.assign(Object.assign({}, state), { loaded: true, selected: action.item, error: null });
51
- case `[${entity}] Select Failure`:
52
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
53
- case `[${entity}] MultiSelect`:
54
- return Object.assign(Object.assign({}, state), { multiSelected: [...action.items] });
55
- case `[${entity}] Unselect`:
56
- return Object.assign(Object.assign({}, state), { loaded: true, selected: null, error: null });
57
- case `[${entity}] Update`:
58
- return Object.assign(Object.assign({}, state), { loaded: false, error: null });
59
- case `[${entity}] Update Success`:
60
- return Object.assign(Object.assign({}, state), { loaded: true, error: null });
61
- case `[${entity}] Update Failure`:
62
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
63
- case `[${entity}] Update partial`:
64
- return Object.assign(Object.assign({}, state), { loaded: false, error: null });
65
- case `[${entity}] Update partial Success`:
66
- return Object.assign(Object.assign({}, state), { loaded: true, error: null });
67
- case `[${entity}] Update partial Failure`:
68
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
69
- case `[${entity}] Update partial many`:
70
- return Object.assign(Object.assign({}, state), { loaded: false, error: null });
71
- case `[${entity}] Update partial many Success`:
72
- return Object.assign(Object.assign({}, state), { multiSelected: [], loaded: true, error: null });
73
- case `[${entity}] Update partial many Failure`:
74
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
75
- case `[${entity}] Delete`:
76
- return Object.assign(Object.assign({}, state), { loaded: false, error: null });
77
- case `[${entity}] Delete Success`:
78
- return Object.assign(Object.assign({}, state), { loaded: true, error: null });
79
- case `[${entity}] Delete Failure`:
80
- return Object.assign(Object.assign({}, state), { loaded: true, error: action.error });
81
- default:
82
- return state;
83
- }
84
- };
85
- const ɵ0 = crudReducer;
86
- export function getReducer(entity) {
87
- return (state, action) => {
88
- return crudReducer(state, action, entity);
89
- };
90
- }
91
- export { ɵ0 };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWVyRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWU7SUFDcEMsTUFBTSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssSUFBSSxNQUFNLFVBQVU7WUFDckIsdUNBQ08sS0FBSyxLQUNSLE1BQU0sRUFBRSxLQUFLLEVBQ2IsS0FBSyxFQUFFLElBQUksSUFDYjtRQUVOLEtBQUssSUFBSSxNQUFNLGtCQUFrQjtZQUM3Qix1Q0FDTyxLQUFLLEtBQ1IsTUFBTSxFQUFFLElBQUksRUFDWixLQUFLLEVBQUUsSUFBSSxJQUNiO1FBRU4sS0FBSyxJQUFJLE1BQU0sa0JBQWtCO1lBQzdCLHVDQUNPLEtBQUssS0FDUixNQUFNLEVBQUUsSUFBSSxFQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUNyQjtRQUVOLEtBQUssSUFBSSxNQUFNLGVBQWU7WUFDMUIsdUNBQ08sS0FBSyxLQUNSLE1BQU0sRUFBRSxLQUFLLEVBQ2IsS0FBSyxFQUFFLElBQUksSUFDYjtRQUVOLEtBQUssSUFBSSxNQUFNLHVCQUF1QjtZQUNsQyx1Q0FDTyxLQUFLLEtBQ1IsTUFBTSxFQUFFLElBQUksRUFDWixLQUFLLEVBQUUsSUFBSSxJQUNiO1FBRU4sS0FBSyxJQUFJLE1BQU0sdUJBQXVCO1lBQ2xDLHVDQUNPLEtBQUssS0FDUixNQUFNLEVBQUUsSUFBSSxFQUNaLEtB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UixNQUFNLEVBQUUsSUFBSSxFQUNaLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxJQUNyQjtRQUVOO1lBQ0ksT0FBTyxLQUFLLENBQUM7S0FDcEI7QUFDTCxDQUFDLENBQUM7O0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDN0IsT0FBTyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtBY3Rpb259IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuaW1wb3J0IHtQYWdpbmF0aW9uTW9kZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gICAgc2VsZWN0ZWQ/OiBUO1xuICAgIG11bHRpU2VsZWN0ZWQ/OiBBcnJheTxUPjtcbiAgICBsaXN0PzogVFtdO1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZmlsdGVyPzogSUNydWRGaWx0ZXI7XG4gICAgbGlua3M/OiBhbnk7XG4gICAgbG9hZGVkOiBib29sZWFuOyAvLyBoYXMgdGhlIEF1dGggbGlzdCBiZWVuIGxvYWRlZFxuICAgIGVycm9yPzogc3RyaW5nIHwgbnVsbDsgLy8gbGFzdCBub25lIGVycm9yIChpZiBhbnkpXG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFN0YXRlPGFueT4gPSB7XG4gICAgbG9hZGVkOiBmYWxzZVxufTtcblxuY29uc3QgY3J1ZFJlZHVjZXIgPSAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbiwgZW50aXR5KSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBDcmVhdGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnlgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBNYW55IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnkgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIEV4cG9ydGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IEZhaWx1cmVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gUmVhZGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBhY3Rpb24uZmlsdGVyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgbGlua3M6IG51bGwsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWQgU3VjY2Vzc2A6XG5cbiAgICAgICAgICAgIGxldCBsaXN0ID0gW107XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBhY3Rpb24uZmlsdGVyXG4gICAgICAgICAgICAgICAgJiYgYWN0aW9uLmZpbHRlci5vZmZzZXRcbiAgICAgICAgICAgICAgICAmJiBzdGF0ZS5saXN0XG4gICAgICAgICAgICAgICAgJiYgYWN0aW9uLmZpbHRlci5wYWdpbmF0aW9uTW9kZSAhPT0gUGFnaW5hdGlvbk1vZGUuc2luZ2xlUGFnZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUubGlzdC5mb3JFYWNoKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGxpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmxpc3QsXG4gICAgICAgICAgICAgICAgICAgIC4uLmFjdGlvbi5yZXN1bHQuZGF0YVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpc3QgPSBhY3Rpb24ucmVzdWx0LmRhdGE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxpc3QsXG4gICAgICAgICAgICAgICAgdG90YWxDb3VudDogYWN0aW9uLnJlc3VsdC50b3RhbENvdW50LFxuICAgICAgICAgICAgICAgIGxpbmtzOiBhY3Rpb24ucmVzdWx0LmxpbmtzLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWQgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gU2VsZWN0IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdCBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gTXVsdGlTZWxlY3RgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdGVkOiBbLi4uYWN0aW9uLml0ZW1zXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVbnNlbGVjdGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogbnVsbCxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWxgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnkgU3VjY2Vzc2A6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0ZWQ6IFtdLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55IEZhaWx1cmVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGFjdGlvbi5lcnJvclxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBEZWxldGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIERlbGV0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIERlbGV0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkdWNlcihlbnRpdHkpIHtcbiAgICByZXR1cm4gKHN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gY3J1ZFJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgZW50aXR5KTtcbiAgICB9XG59XG4iXX0=
@@ -1,65 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { StoreModule } from "@ngrx/store";
3
- import { FormsModule } from "@angular/forms";
4
- import { CommonModule } from "@angular/common";
5
- import { SharedModule } from "@smartsoft001/angular";
6
- import { ExportComponent } from "./export/export.component";
7
- import { FilterComponent, FilterDateComponent, FilterDateWithEditComponent, FilterFlagComponent, FilterRadioComponent, FilterTextComponent, FilterCheckComponent, FilterIntComponent } from "./filter";
8
- import { FiltersConfigComponent } from "./filters-config/filters-config.component";
9
- import { FiltersComponent } from "./filters/filters.component";
10
- import { MultiselectComponent } from "./multiselect/multiselect.component";
11
- import { SocketService } from "../services/socket/socket.service";
12
- import { CrudPipesModule } from "../pipes/pipes.module";
13
- import { CrudService } from "../services/crud/crud.service";
14
- import { CrudEffects } from "../+state/crud.effects";
15
- import { CrudFacade } from "../+state/crud.facade";
16
- import { CrudListPaginationFactory } from "../factories/list-pagination/list-pagination.factory";
17
- import { GroupComponent } from "./group/group.component";
18
- const COMPONENTS = [
19
- ExportComponent,
20
- FilterComponent,
21
- FilterTextComponent,
22
- FiltersConfigComponent,
23
- FilterDateComponent,
24
- FilterDateWithEditComponent,
25
- FilterRadioComponent,
26
- FiltersComponent,
27
- FilterFlagComponent,
28
- FilterCheckComponent,
29
- FilterIntComponent,
30
- MultiselectComponent,
31
- GroupComponent
32
- ];
33
- export class CrudComponentsModule {
34
- }
35
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
36
- CrudComponentsModule.decorators = [
37
- { type: NgModule, args: [{
38
- declarations: [
39
- ...COMPONENTS
40
- ],
41
- imports: [
42
- //AuthSharedModule,
43
- StoreModule,
44
- SharedModule,
45
- CrudPipesModule,
46
- FormsModule,
47
- CommonModule
48
- ],
49
- exports: [
50
- CrudPipesModule,
51
- ...COMPONENTS
52
- ],
53
- entryComponents: [
54
- ...COMPONENTS
55
- ],
56
- providers: [
57
- CrudService,
58
- CrudEffects,
59
- CrudFacade,
60
- SocketService,
61
- CrudListPaginationFactory,
62
- ]
63
- },] }
64
- ];
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFBRSxtQkFBbUIsRUFDaEQsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsa0JBQWtCLEVBQ3JCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDL0YsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE1BQU0sVUFBVSxHQUFHO0lBQ2YsZUFBZTtJQUNmLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQiwyQkFBMkI7SUFDM0Isb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsY0FBYztDQUNqQixDQUFDO0FBNkJGLE1BQU0sT0FBTyxvQkFBb0I7Ozs7WUEzQmhDLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsR0FBRyxVQUFVO2lCQUNoQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsbUJBQW1CO29CQUNuQixXQUFXO29CQUNYLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixXQUFXO29CQUNYLFlBQVk7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGVBQWU7b0JBQ2YsR0FBRyxVQUFVO2lCQUNoQjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2IsR0FBRyxVQUFVO2lCQUNoQjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1AsV0FBVztvQkFDWCxXQUFXO29CQUNYLFVBQVU7b0JBQ1YsYUFBYTtvQkFDYix5QkFBeUI7aUJBQzVCO2FBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdG9yZU1vZHVsZX0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmltcG9ydCB7U2hhcmVkTW9kdWxlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5cbmltcG9ydCB7RXhwb3J0Q29tcG9uZW50fSBmcm9tIFwiLi9leHBvcnQvZXhwb3J0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgRmlsdGVyRGF0ZUNvbXBvbmVudCxcbiAgICBGaWx0ZXJEYXRlV2l0aEVkaXRDb21wb25lbnQsIEZpbHRlckZsYWdDb21wb25lbnQsXG4gICAgRmlsdGVyUmFkaW9Db21wb25lbnQsXG4gICAgRmlsdGVyVGV4dENvbXBvbmVudCxcbiAgICBGaWx0ZXJDaGVja0NvbXBvbmVudCxcbiAgICBGaWx0ZXJJbnRDb21wb25lbnRcbn0gZnJvbSBcIi4vZmlsdGVyXCI7XG5pbXBvcnQge0ZpbHRlcnNDb25maWdDb21wb25lbnR9IGZyb20gXCIuL2ZpbHRlcnMtY29uZmlnL2ZpbHRlcnMtY29uZmlnLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtGaWx0ZXJzQ29tcG9uZW50fSBmcm9tIFwiLi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50XCI7XG5pbXBvcnQge011bHRpc2VsZWN0Q29tcG9uZW50fSBmcm9tIFwiLi9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnRcIjtcbmltcG9ydCB7U29ja2V0U2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3NvY2tldC9zb2NrZXQuc2VydmljZVwiO1xuaW1wb3J0IHtDcnVkUGlwZXNNb2R1bGV9IGZyb20gXCIuLi9waXBlcy9waXBlcy5tb2R1bGVcIjtcbmltcG9ydCB7Q3J1ZFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9jcnVkL2NydWQuc2VydmljZVwiO1xuaW1wb3J0IHtDcnVkRWZmZWN0c30gZnJvbSBcIi4uLytzdGF0ZS9jcnVkLmVmZmVjdHNcIjtcbmltcG9ydCB7Q3J1ZEZhY2FkZX0gZnJvbSBcIi4uLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHtDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5fSBmcm9tIFwiLi4vZmFjdG9yaWVzL2xpc3QtcGFnaW5hdGlvbi9saXN0LXBhZ2luYXRpb24uZmFjdG9yeVwiO1xuaW1wb3J0IHtHcm91cENvbXBvbmVudH0gZnJvbSBcIi4vZ3JvdXAvZ3JvdXAuY29tcG9uZW50XCI7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gICAgRXhwb3J0Q29tcG9uZW50LFxuICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICBGaWx0ZXJUZXh0Q29tcG9uZW50LFxuICAgIEZpbHRlcnNDb25maWdDb21wb25lbnQsXG4gICAgRmlsdGVyRGF0ZUNvbXBvbmVudCxcbiAgICBGaWx0ZXJEYXRlV2l0aEVkaXRDb21wb25lbnQsXG4gICAgRmlsdGVyUmFkaW9Db21wb25lbnQsXG4gICAgRmlsdGVyc0NvbXBvbmVudCxcbiAgICBGaWx0ZXJGbGFnQ29tcG9uZW50LFxuICAgIEZpbHRlckNoZWNrQ29tcG9uZW50LFxuICAgIEZpbHRlckludENvbXBvbmVudCxcbiAgICBNdWx0aXNlbGVjdENvbXBvbmVudCxcbiAgICBHcm91cENvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgLi4uQ09NUE9ORU5UU1xuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvL0F1dGhTaGFyZWRNb2R1bGUsXG4gICAgICAgIFN0b3JlTW9kdWxlLFxuICAgICAgICBTaGFyZWRNb2R1bGUsXG4gICAgICAgIENydWRQaXBlc01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIENvbW1vbk1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBDcnVkUGlwZXNNb2R1bGUsXG4gICAgICAgIC4uLkNPTVBPTkVOVFNcbiAgICBdLFxuICAgIGVudHJ5Q29tcG9uZW50czogW1xuICAgICAgICAuLi5DT01QT05FTlRTXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ3J1ZFNlcnZpY2UsXG4gICAgICAgIENydWRFZmZlY3RzLFxuICAgICAgICBDcnVkRmFjYWRlLFxuICAgICAgICBTb2NrZXRTZXJ2aWNlLFxuICAgICAgICBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZENvbXBvbmVudHNNb2R1bGUgeyB9Il19
@@ -1,55 +0,0 @@
1
- import { Component, ElementRef } from '@angular/core';
2
- import { BaseComponent, PopoverService, StyleService } from "@smartsoft001/angular";
3
- import { CrudFacade } from "../../+state/crud.facade";
4
- export class ExportComponent extends BaseComponent {
5
- constructor(facade, popoverService, styleService, elementRef) {
6
- super();
7
- this.facade = facade;
8
- this.popoverService = popoverService;
9
- this.styleService = styleService;
10
- this.elementRef = elementRef;
11
- this.buttonExportCsvOptions = this.initButtonExportOptions('csv');
12
- this.buttonExportXlsxOptions = this.initButtonExportOptions('xlsx');
13
- this.loading$ = this.facade.loading$;
14
- }
15
- ngOnInit() {
16
- this.styleService.init(this.elementRef);
17
- }
18
- initButtonExportOptions(format) {
19
- return {
20
- click: () => {
21
- this.facade.export(Object.assign(Object.assign({}, this.facade.filter), { offset: null, limit: null }), format);
22
- const subscription = this.facade.loaded$.subscribe(val => {
23
- if (!val)
24
- return;
25
- this.popoverService.close();
26
- subscription.unsubscribe();
27
- });
28
- },
29
- loading$: this.facade.loading$,
30
- expand: 'block'
31
- };
32
- }
33
- }
34
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
35
- ExportComponent.decorators = [
36
- { type: Component, args: [{
37
- selector: 'smart-crud-export',
38
- template: "<div class=\"smart-content\">\n <p>\n <smart-button [options]=\"buttonExportCsvOptions\">CSV</smart-button>\n </p>\n <p>\n <smart-button [options]=\"buttonExportXlsxOptions\">XLSX</smart-button>\n </p>\n</div>",
39
- styles: [".smart-content{padding:1.2rem}.smart-content p{margin:.6rem 0}.smart-content smart-button{width:100%;display:block}\n"]
40
- },] }
41
- ];
42
- /**
43
- * @type {function(): !Array<(null|{
44
- * type: ?,
45
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
46
- * })>}
47
- * @nocollapse
48
- */
49
- ExportComponent.ctorParameters = () => [
50
- { type: CrudFacade },
51
- { type: PopoverService },
52
- { type: StyleService },
53
- { type: ElementRef }
54
- ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUc1RCxPQUFPLEVBQUMsYUFBYSxFQUFrQixjQUFjLEVBQUUsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHbEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBT3BELE1BQU0sT0FBTyxlQUEyQyxTQUFRLGFBQWE7SUFPM0UsWUFDWSxNQUFxQixFQUNyQixjQUE4QixFQUM5QixZQUEwQixFQUMxQixVQUFzQjtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUxFLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFUbEMsMkJBQXNCLEdBQW1CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RSw0QkFBdUIsR0FBbUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9FLGFBQVEsR0FBd0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFTckQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLHVCQUF1QixDQUFDLE1BQWM7UUFDNUMsT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlDQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUNyQixNQUFNLEVBQUUsSUFBSSxFQUNaLEtBQUssRUFBRSxJQUFJLEtBQ1YsTUFBTSxDQUFDLENBQUM7Z0JBRVgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsR0FBRzt3QkFBRSxPQUFPO29CQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM1QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsTUFBTSxFQUFFLE9BQU87U0FDaEIsQ0FBQTtJQUNILENBQUM7Ozs7WUEzQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLHVQQUFzQzs7YUFFdkM7Ozs7Ozs7Ozs7WUFOTyxVQUFVO1lBSHFCLGNBQWM7WUFBRSxZQUFZO1lBSGhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHtCYXNlQ29tcG9uZW50LCBJQnV0dG9uT3B0aW9ucywgUG9wb3ZlclNlcnZpY2UsIFN0eWxlU2VydmljZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuXG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1leHBvcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXhwb3J0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0Q29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgYnV0dG9uRXhwb3J0Q3N2T3B0aW9uczogSUJ1dHRvbk9wdGlvbnMgPSB0aGlzLmluaXRCdXR0b25FeHBvcnRPcHRpb25zKCdjc3YnKTtcbiAgYnV0dG9uRXhwb3J0WGxzeE9wdGlvbnM6IElCdXR0b25PcHRpb25zID0gdGhpcy5pbml0QnV0dG9uRXhwb3J0T3B0aW9ucygneGxzeCcpO1xuXG4gIGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5mYWNhZGUubG9hZGluZyQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZhY2FkZTogQ3J1ZEZhY2FkZTxUPixcbiAgICAgIHByaXZhdGUgcG9wb3ZlclNlcnZpY2U6IFBvcG92ZXJTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSxcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdHlsZVNlcnZpY2UuaW5pdCh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0QnV0dG9uRXhwb3J0T3B0aW9ucyhmb3JtYXQ6IHN0cmluZyk6IElCdXR0b25PcHRpb25zIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2xpY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5mYWNhZGUuZXhwb3J0KHtcbiAgICAgICAgICAuLi50aGlzLmZhY2FkZS5maWx0ZXIsXG4gICAgICAgICAgb2Zmc2V0OiBudWxsLFxuICAgICAgICAgIGxpbWl0OiBudWxsXG4gICAgICAgIH0sIGZvcm1hdCk7XG5cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5mYWNhZGUubG9hZGVkJC5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICBpZiAoIXZhbCkgcmV0dXJuO1xuICAgICAgICAgIHRoaXMucG9wb3ZlclNlcnZpY2UuY2xvc2UoKTtcbiAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgbG9hZGluZyQ6IHRoaXMuZmFjYWRlLmxvYWRpbmckLFxuICAgICAgZXhwYW5kOiAnYmxvY2snXG4gICAgfVxuICB9XG59XG4iXX0=