@smartsoft001/crud-shell-angular 1.2.90 → 2.69.0

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 (214) hide show
  1. package/.storybook/addons.js +1 -0
  2. package/.storybook/config.js +5 -0
  3. package/.storybook/tsconfig.json +8 -0
  4. package/.storybook/webpack.config.js +7 -0
  5. package/jest.config.ts +38 -0
  6. package/ng-package.json +7 -0
  7. package/package.json +12 -23
  8. package/project.json +49 -0
  9. package/src/index.ts +13 -0
  10. package/src/lib/+state/crud.facade.ts +82 -0
  11. package/src/lib/+state/crud.feature.methods.ts +258 -0
  12. package/src/lib/+state/crud.feature.store.ts +77 -0
  13. package/src/lib/components/components.module.ts +58 -0
  14. package/src/lib/components/export/export.component.ts +69 -0
  15. package/src/lib/components/filter/base/base.component.ts +175 -0
  16. package/src/lib/components/filter/check/check.component.scss +25 -0
  17. package/src/lib/components/filter/check/check.component.ts +72 -0
  18. package/src/lib/components/filter/date/date.component.html +30 -0
  19. package/src/lib/components/filter/date/date.component.ts +70 -0
  20. package/src/lib/components/filter/date-time/date-time.component.html +62 -0
  21. package/src/lib/components/filter/date-time/date-time.component.ts +56 -0
  22. package/src/lib/components/filter/date-with-edit/date-with-edit.component.html +109 -0
  23. package/src/lib/components/filter/date-with-edit/date-with-edit.component.ts +70 -0
  24. package/src/lib/components/filter/filter.component.html +52 -0
  25. package/src/lib/components/filter/filter.component.ts +34 -0
  26. package/src/lib/components/filter/flag/flag.component.ts +55 -0
  27. package/src/lib/components/filter/index.ts +9 -0
  28. package/src/lib/components/filter/int/int.component.html +74 -0
  29. package/src/lib/components/filter/int/int.component.ts +57 -0
  30. package/src/lib/components/filter/radio/radio.component.ts +74 -0
  31. package/src/lib/components/filter/text/text.component.ts +46 -0
  32. package/src/lib/components/filters/filters.component.scss +150 -0
  33. package/src/lib/components/filters/filters.component.ts +157 -0
  34. package/src/lib/components/filters-config/filters-config.component.ts +69 -0
  35. package/src/lib/components/group/group.component.ts +93 -0
  36. package/src/lib/components/index.ts +7 -0
  37. package/src/lib/components/multiselect/multiselect.component.html +41 -0
  38. package/src/lib/components/multiselect/multiselect.component.scss +125 -0
  39. package/src/lib/components/multiselect/multiselect.component.ts +104 -0
  40. package/src/lib/crud-full.module.ts +51 -0
  41. package/src/lib/crud.config.ts +79 -0
  42. package/src/lib/crud.module.ts +72 -0
  43. package/src/lib/factories/list-pagination/list-pagination.factory.ts +77 -0
  44. package/src/lib/models/index.ts +1 -0
  45. package/src/lib/models/interfaces.ts +34 -0
  46. package/src/lib/pages/index.ts +6 -0
  47. package/src/lib/pages/item/base/base.component.ts +54 -0
  48. package/src/lib/pages/item/item.component.ts +513 -0
  49. package/src/lib/pages/item/standard/standard.component.scss +0 -0
  50. package/src/lib/pages/item/standard/standard.component.ts +50 -0
  51. package/src/lib/pages/list/base/base.component.ts +29 -0
  52. package/src/lib/pages/list/list.component.stories.ts +77 -0
  53. package/src/lib/pages/list/list.component.ts +438 -0
  54. package/src/lib/pages/list/standard/standard.component.ts +42 -0
  55. package/src/lib/pipes/form-options/form-options.pipe.ts +61 -0
  56. package/src/lib/pipes/index.ts +2 -0
  57. package/src/lib/pipes/pipes.module.ts +9 -0
  58. package/src/lib/providers/model-possibilities/model-possibilities.provider.ts +19 -0
  59. package/src/lib/services/crud/crud.service.spec.ts +303 -0
  60. package/src/lib/services/crud/crud.service.ts +178 -0
  61. package/src/lib/services/list-group/list-group.service.spec.ts +87 -0
  62. package/src/lib/services/list-group/list-group.service.ts +65 -0
  63. package/src/lib/services/page/page.service.spec.ts +143 -0
  64. package/src/lib/services/page/page.service.ts +44 -0
  65. package/src/lib/services/search/search.service.spec.ts +134 -0
  66. package/src/lib/services/search/search.service.ts +42 -0
  67. package/test-setup.ts +0 -0
  68. package/tsconfig.json +13 -0
  69. package/tsconfig.lib.json +31 -0
  70. package/tsconfig.lib.prod.json +11 -0
  71. package/tsconfig.spec.json +10 -0
  72. package/tslint.json +10 -0
  73. package/esm2022/index.mjs +0 -18
  74. package/esm2022/lib/+state/crud.actions.mjs +0 -224
  75. package/esm2022/lib/+state/crud.effects.mjs +0 -182
  76. package/esm2022/lib/+state/crud.facade.mjs +0 -91
  77. package/esm2022/lib/+state/crud.reducer.mjs +0 -214
  78. package/esm2022/lib/+state/crud.selectors.mjs +0 -11
  79. package/esm2022/lib/components/components.module.mjs +0 -110
  80. package/esm2022/lib/components/export/export.component.mjs +0 -47
  81. package/esm2022/lib/components/filter/base/base.component.mjs +0 -152
  82. package/esm2022/lib/components/filter/check/check.component.mjs +0 -36
  83. package/esm2022/lib/components/filter/date/date.component.mjs +0 -47
  84. package/esm2022/lib/components/filter/date-time/date-time.component.mjs +0 -43
  85. package/esm2022/lib/components/filter/date-with-edit/date-with-edit.component.mjs +0 -49
  86. package/esm2022/lib/components/filter/filter.component.mjs +0 -30
  87. package/esm2022/lib/components/filter/flag/flag.component.mjs +0 -16
  88. package/esm2022/lib/components/filter/index.mjs +0 -10
  89. package/esm2022/lib/components/filter/int/int.component.mjs +0 -38
  90. package/esm2022/lib/components/filter/radio/radio.component.mjs +0 -16
  91. package/esm2022/lib/components/filter/text/text.component.mjs +0 -16
  92. package/esm2022/lib/components/filters/filters.component.mjs +0 -111
  93. package/esm2022/lib/components/filters-config/filters-config.component.mjs +0 -37
  94. package/esm2022/lib/components/group/group.component.mjs +0 -54
  95. package/esm2022/lib/components/index.mjs +0 -8
  96. package/esm2022/lib/components/multiselect/multiselect.component.mjs +0 -71
  97. package/esm2022/lib/crud-full.module.mjs +0 -103
  98. package/esm2022/lib/crud.config.mjs +0 -17
  99. package/esm2022/lib/crud.module.mjs +0 -106
  100. package/esm2022/lib/factories/list-pagination/list-pagination.factory.mjs +0 -69
  101. package/esm2022/lib/models/index.mjs +0 -2
  102. package/esm2022/lib/models/interfaces.mjs +0 -2
  103. package/esm2022/lib/pages/index.mjs +0 -7
  104. package/esm2022/lib/pages/item/base/base.component.mjs +0 -44
  105. package/esm2022/lib/pages/item/item.component.mjs +0 -395
  106. package/esm2022/lib/pages/item/standard/standard.component.mjs +0 -15
  107. package/esm2022/lib/pages/list/base/base.component.mjs +0 -23
  108. package/esm2022/lib/pages/list/list.component.mjs +0 -355
  109. package/esm2022/lib/pages/list/standard/standard.component.mjs +0 -34
  110. package/esm2022/lib/pipes/form-options/form-options.pipe.mjs +0 -55
  111. package/esm2022/lib/pipes/index.mjs +0 -3
  112. package/esm2022/lib/pipes/pipes.module.mjs +0 -20
  113. package/esm2022/lib/providers/model-possibilities/model-possibilities.provider.mjs +0 -11
  114. package/esm2022/lib/services/crud/crud.service.mjs +0 -138
  115. package/esm2022/lib/services/list-group/list-group.service.mjs +0 -60
  116. package/esm2022/lib/services/page/page.service.mjs +0 -41
  117. package/esm2022/lib/services/search/search.service.mjs +0 -41
  118. package/esm2022/lib/services/socket/socket.service.mjs +0 -17
  119. package/esm2022/smartsoft001-crud-shell-angular.mjs +0 -5
  120. package/fesm2022/smartsoft001-crud-shell-angular.mjs +0 -2810
  121. package/fesm2022/smartsoft001-crud-shell-angular.mjs.map +0 -1
  122. package/index.d.ts +0 -18
  123. package/index.d.ts.map +0 -1
  124. package/lib/+state/crud.actions.d.ts +0 -152
  125. package/lib/+state/crud.actions.d.ts.map +0 -1
  126. package/lib/+state/crud.effects.d.ts +0 -18
  127. package/lib/+state/crud.effects.d.ts.map +0 -1
  128. package/lib/+state/crud.facade.d.ts +0 -44
  129. package/lib/+state/crud.facade.d.ts.map +0 -1
  130. package/lib/+state/crud.reducer.d.ts +0 -43
  131. package/lib/+state/crud.reducer.d.ts.map +0 -1
  132. package/lib/+state/crud.selectors.d.ts +0 -10
  133. package/lib/+state/crud.selectors.d.ts.map +0 -1
  134. package/lib/components/components.module.d.ts +0 -27
  135. package/lib/components/components.module.d.ts.map +0 -1
  136. package/lib/components/export/export.component.d.ts +0 -21
  137. package/lib/components/export/export.component.d.ts.map +0 -1
  138. package/lib/components/filter/base/base.component.d.ts +0 -39
  139. package/lib/components/filter/base/base.component.d.ts.map +0 -1
  140. package/lib/components/filter/check/check.component.d.ts +0 -19
  141. package/lib/components/filter/check/check.component.d.ts.map +0 -1
  142. package/lib/components/filter/date/date.component.d.ts +0 -16
  143. package/lib/components/filter/date/date.component.d.ts.map +0 -1
  144. package/lib/components/filter/date-time/date-time.component.d.ts +0 -15
  145. package/lib/components/filter/date-time/date-time.component.d.ts.map +0 -1
  146. package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts +0 -17
  147. package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts.map +0 -1
  148. package/lib/components/filter/filter.component.d.ts +0 -14
  149. package/lib/components/filter/filter.component.d.ts.map +0 -1
  150. package/lib/components/filter/flag/flag.component.d.ts +0 -8
  151. package/lib/components/filter/flag/flag.component.d.ts.map +0 -1
  152. package/lib/components/filter/index.d.ts +0 -10
  153. package/lib/components/filter/index.d.ts.map +0 -1
  154. package/lib/components/filter/int/int.component.d.ts +0 -15
  155. package/lib/components/filter/int/int.component.d.ts.map +0 -1
  156. package/lib/components/filter/radio/radio.component.d.ts +0 -8
  157. package/lib/components/filter/radio/radio.component.d.ts.map +0 -1
  158. package/lib/components/filter/text/text.component.d.ts +0 -8
  159. package/lib/components/filter/text/text.component.d.ts.map +0 -1
  160. package/lib/components/filters/filters.component.d.ts +0 -83
  161. package/lib/components/filters/filters.component.d.ts.map +0 -1
  162. package/lib/components/filters-config/filters-config.component.d.ts +0 -19
  163. package/lib/components/filters-config/filters-config.component.d.ts.map +0 -1
  164. package/lib/components/group/group.component.d.ts +0 -23
  165. package/lib/components/group/group.component.d.ts.map +0 -1
  166. package/lib/components/index.d.ts +0 -8
  167. package/lib/components/index.d.ts.map +0 -1
  168. package/lib/components/multiselect/multiselect.component.d.ts +0 -28
  169. package/lib/components/multiselect/multiselect.component.d.ts.map +0 -1
  170. package/lib/crud-full.module.d.ts +0 -28
  171. package/lib/crud-full.module.d.ts.map +0 -1
  172. package/lib/crud.config.d.ts +0 -65
  173. package/lib/crud.config.d.ts.map +0 -1
  174. package/lib/crud.module.d.ts +0 -34
  175. package/lib/crud.module.d.ts.map +0 -1
  176. package/lib/factories/list-pagination/list-pagination.factory.d.ts +0 -20
  177. package/lib/factories/list-pagination/list-pagination.factory.d.ts.map +0 -1
  178. package/lib/models/index.d.ts +0 -2
  179. package/lib/models/index.d.ts.map +0 -1
  180. package/lib/models/interfaces.d.ts +0 -30
  181. package/lib/models/interfaces.d.ts.map +0 -1
  182. package/lib/pages/index.d.ts +0 -7
  183. package/lib/pages/index.d.ts.map +0 -1
  184. package/lib/pages/item/base/base.component.d.ts +0 -25
  185. package/lib/pages/item/base/base.component.d.ts.map +0 -1
  186. package/lib/pages/item/item.component.d.ts +0 -70
  187. package/lib/pages/item/item.component.d.ts.map +0 -1
  188. package/lib/pages/item/standard/standard.component.d.ts +0 -8
  189. package/lib/pages/item/standard/standard.component.d.ts.map +0 -1
  190. package/lib/pages/list/base/base.component.d.ts +0 -15
  191. package/lib/pages/list/base/base.component.d.ts.map +0 -1
  192. package/lib/pages/list/list.component.d.ts +0 -54
  193. package/lib/pages/list/list.component.d.ts.map +0 -1
  194. package/lib/pages/list/standard/standard.component.d.ts +0 -14
  195. package/lib/pages/list/standard/standard.component.d.ts.map +0 -1
  196. package/lib/pipes/form-options/form-options.pipe.d.ts +0 -15
  197. package/lib/pipes/form-options/form-options.pipe.d.ts.map +0 -1
  198. package/lib/pipes/index.d.ts +0 -3
  199. package/lib/pipes/index.d.ts.map +0 -1
  200. package/lib/pipes/pipes.module.d.ts +0 -8
  201. package/lib/pipes/pipes.module.d.ts.map +0 -1
  202. package/lib/providers/model-possibilities/model-possibilities.provider.d.ts +0 -18
  203. package/lib/providers/model-possibilities/model-possibilities.provider.d.ts.map +0 -1
  204. package/lib/services/crud/crud.service.d.ts +0 -38
  205. package/lib/services/crud/crud.service.d.ts.map +0 -1
  206. package/lib/services/list-group/list-group.service.d.ts +0 -15
  207. package/lib/services/list-group/list-group.service.d.ts.map +0 -1
  208. package/lib/services/page/page.service.d.ts +0 -12
  209. package/lib/services/page/page.service.d.ts.map +0 -1
  210. package/lib/services/search/search.service.d.ts +0 -16
  211. package/lib/services/search/search.service.d.ts.map +0 -1
  212. package/lib/services/socket/socket.service.d.ts +0 -10
  213. package/lib/services/socket/socket.service.d.ts.map +0 -1
  214. package/smartsoft001-crud-shell-angular.d.ts.map +0 -1
@@ -1,214 +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 {
9
- ...state,
10
- loaded: false,
11
- error: null
12
- };
13
- case `[${entity}] Create Success`:
14
- return {
15
- ...state,
16
- loaded: true,
17
- error: null
18
- };
19
- case `[${entity}] Create Failure`:
20
- return {
21
- ...state,
22
- loaded: true,
23
- error: action.error
24
- };
25
- case `[${entity}] Create Many`:
26
- return {
27
- ...state,
28
- loaded: false,
29
- error: null
30
- };
31
- case `[${entity}] Create Many Success`:
32
- return {
33
- ...state,
34
- loaded: true,
35
- error: null
36
- };
37
- case `[${entity}] Create Many Failure`:
38
- return {
39
- ...state,
40
- loaded: true,
41
- error: action.error
42
- };
43
- case `[${entity}] Export`:
44
- return {
45
- ...state,
46
- loaded: false
47
- };
48
- case `[${entity}] Export Success`:
49
- return {
50
- ...state,
51
- loaded: true
52
- };
53
- case `[${entity}] Export Failure`:
54
- return {
55
- ...state,
56
- loaded: true
57
- };
58
- case `[${entity}] Read`:
59
- return {
60
- ...state,
61
- loaded: false,
62
- filter: action.filter,
63
- error: null,
64
- totalCount: null,
65
- links: null,
66
- };
67
- case `[${entity}] Read Success`:
68
- let list = [];
69
- if (action.filter
70
- && action.filter.offset
71
- && state.list
72
- && action.filter.paginationMode !== PaginationMode.singlePage) {
73
- state.list.forEach(i => {
74
- list.push(i);
75
- });
76
- list = [
77
- ...list,
78
- ...action.result.data
79
- ];
80
- }
81
- else {
82
- list = action.result.data;
83
- }
84
- return {
85
- ...state,
86
- loaded: true,
87
- list,
88
- totalCount: action.result.totalCount,
89
- links: action.result.links,
90
- error: null
91
- };
92
- case `[${entity}] Clear`:
93
- return { ...initialState };
94
- case `[${entity}] Read Failure`:
95
- return {
96
- ...state,
97
- loaded: true,
98
- error: action.error
99
- };
100
- case `[${entity}] Select`:
101
- return {
102
- ...state,
103
- loaded: false,
104
- selected: null,
105
- error: null
106
- };
107
- case `[${entity}] Select Success`:
108
- return {
109
- ...state,
110
- loaded: true,
111
- selected: action.item,
112
- error: null
113
- };
114
- case `[${entity}] Select Failure`:
115
- return {
116
- ...state,
117
- loaded: true,
118
- error: action.error
119
- };
120
- case `[${entity}] MultiSelect`:
121
- return {
122
- ...state,
123
- multiSelected: [...action.items]
124
- };
125
- case `[${entity}] Unselect`:
126
- return {
127
- ...state,
128
- loaded: true,
129
- selected: null,
130
- error: null
131
- };
132
- case `[${entity}] Update`:
133
- return {
134
- ...state,
135
- loaded: false,
136
- error: null
137
- };
138
- case `[${entity}] Update Success`:
139
- return {
140
- ...state,
141
- loaded: true,
142
- error: null
143
- };
144
- case `[${entity}] Update Failure`:
145
- return {
146
- ...state,
147
- loaded: true,
148
- error: action.error
149
- };
150
- case `[${entity}] Update partial`:
151
- return {
152
- ...state,
153
- loaded: false,
154
- error: null
155
- };
156
- case `[${entity}] Update partial Success`:
157
- return {
158
- ...state,
159
- loaded: true,
160
- error: null
161
- };
162
- case `[${entity}] Update partial Failure`:
163
- return {
164
- ...state,
165
- loaded: true,
166
- error: action.error
167
- };
168
- case `[${entity}] Update partial many`:
169
- return {
170
- ...state,
171
- loaded: false,
172
- error: null
173
- };
174
- case `[${entity}] Update partial many Success`:
175
- return {
176
- ...state,
177
- multiSelected: [],
178
- loaded: true,
179
- error: null
180
- };
181
- case `[${entity}] Update partial many Failure`:
182
- return {
183
- ...state,
184
- loaded: true,
185
- error: action.error
186
- };
187
- case `[${entity}] Delete`:
188
- return {
189
- ...state,
190
- loaded: false,
191
- error: null
192
- };
193
- case `[${entity}] Delete Success`:
194
- return {
195
- ...state,
196
- loaded: true,
197
- error: null
198
- };
199
- case `[${entity}] Delete Failure`:
200
- return {
201
- ...state,
202
- loaded: true,
203
- error: action.error
204
- };
205
- default:
206
- return state;
207
- }
208
- };
209
- export function getReducer(entity) {
210
- return (state, action) => {
211
- return crudReducer(state, action, entity);
212
- };
213
- }
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWVyRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWU7SUFDcEMsTUFBTSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssSUFBSSxNQUFNLFVBQVU7WUFDckIsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBRU4sS0FBSyxJQUFJLE1BQU0sa0JBQWtCO1lBQzdCLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQztRQUVOLEtBQUssSUFBSSxNQUFNLGtCQUFrQjtZQUM3QixPQUFPO2dCQUNILEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDdEIsQ0FBQztRQUVOLEtBQUssSUFBSSxNQUFNLGVBQWU7WUFDMUIsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBRU4sS0FBSyxJQUFJLE1BQU0sdUJBQXVCO1lBQ2xDLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJ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TSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBRU4sS0FBSyxJQUFJLE1BQU0sK0JBQStCO1lBQzFDLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsSUFBSTthQUNkLENBQUM7UUFFTixLQUFLLElBQUksTUFBTSwrQkFBK0I7WUFDMUMsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3RCLENBQUM7UUFFTixLQUFLLElBQUksTUFBTSxVQUFVO1lBQ3JCLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQztRQUVOLEtBQUssSUFBSSxNQUFNLGtCQUFrQjtZQUM3QixPQUFPO2dCQUNILEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsSUFBSTthQUNkLENBQUM7UUFFTixLQUFLLElBQUksTUFBTSxrQkFBa0I7WUFDN0IsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3RCLENBQUM7UUFFTjtZQUNJLE9BQU8sS0FBSyxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDN0IsT0FBTyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtBY3Rpb259IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuaW1wb3J0IHtQYWdpbmF0aW9uTW9kZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gICAgc2VsZWN0ZWQ/OiBUO1xuICAgIG11bHRpU2VsZWN0ZWQ/OiBBcnJheTxUPjtcbiAgICBsaXN0PzogVFtdO1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZmlsdGVyPzogSUNydWRGaWx0ZXI7XG4gICAgbGlua3M/OiBhbnk7XG4gICAgbG9hZGVkOiBib29sZWFuOyAvLyBoYXMgdGhlIEF1dGggbGlzdCBiZWVuIGxvYWRlZFxuICAgIGVycm9yPzogc3RyaW5nIHwgbnVsbDsgLy8gbGFzdCBub25lIGVycm9yIChpZiBhbnkpXG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFN0YXRlPGFueT4gPSB7XG4gICAgbG9hZGVkOiBmYWxzZVxufTtcblxuY29uc3QgY3J1ZFJlZHVjZXIgPSAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbiwgZW50aXR5KSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBDcmVhdGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnlgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBNYW55IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnkgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIEV4cG9ydGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IEZhaWx1cmVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gUmVhZGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBhY3Rpb24uZmlsdGVyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgbGlua3M6IG51bGwsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWQgU3VjY2Vzc2A6XG5cbiAgICAgICAgICAgIGxldCBsaXN0ID0gW107XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBhY3Rpb24uZmlsdGVyXG4gICAgICAgICAgICAgICAgJiYgYWN0aW9uLmZpbHRlci5vZmZzZXRcbiAgICAgICAgICAgICAgICAmJiBzdGF0ZS5saXN0XG4gICAgICAgICAgICAgICAgJiYgYWN0aW9uLmZpbHRlci5wYWdpbmF0aW9uTW9kZSAhPT0gUGFnaW5hdGlvbk1vZGUuc2luZ2xlUGFnZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUubGlzdC5mb3JFYWNoKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGxpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmxpc3QsXG4gICAgICAgICAgICAgICAgICAgIC4uLmFjdGlvbi5yZXN1bHQuZGF0YVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpc3QgPSBhY3Rpb24ucmVzdWx0LmRhdGE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxpc3QsXG4gICAgICAgICAgICAgICAgdG90YWxDb3VudDogYWN0aW9uLnJlc3VsdC50b3RhbENvdW50LFxuICAgICAgICAgICAgICAgIGxpbmtzOiBhY3Rpb24ucmVzdWx0LmxpbmtzLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENsZWFyYDpcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxTdGF0ZSB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWQgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gU2VsZWN0IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdCBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gTXVsdGlTZWxlY3RgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdGVkOiBbLi4uYWN0aW9uLml0ZW1zXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVbnNlbGVjdGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogbnVsbCxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWxgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnkgU3VjY2Vzc2A6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0ZWQ6IFtdLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55IEZhaWx1cmVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGFjdGlvbi5lcnJvclxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBEZWxldGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIERlbGV0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIERlbGV0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkdWNlcihlbnRpdHkpIHtcbiAgICByZXR1cm4gKHN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gY3J1ZFJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgZW50aXR5KTtcbiAgICB9XG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- import { createFeatureSelector, createSelector } from "@ngrx/store";
2
- export const getCrudState = (entity) => createFeatureSelector(entity);
3
- export const getCrudSelected = (entity) => createSelector(getCrudState(entity), (state) => state.selected);
4
- export const getCrudMultiSelected = (entity) => createSelector(getCrudState(entity), (state) => state.multiSelected);
5
- export const getCrudList = (entity) => createSelector(getCrudState(entity), (state) => state.list);
6
- export const getCrudTotalCount = (entity) => createSelector(getCrudState(entity), (state) => state.totalCount);
7
- export const getCrudLinks = (entity) => createSelector(getCrudState(entity), (state) => state.links);
8
- export const getCrudLoaded = (entity) => createSelector(getCrudState(entity), (state) => state.loaded);
9
- export const getCrudFilter = (entity) => createSelector(getCrudState(entity), (state) => state.filter);
10
- export const getCrudError = (entity) => createSelector(getCrudState(entity), (state) => state.error);
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliLytzdGF0ZS9jcnVkLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQU8sTUFBTSxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ3JELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUMxRCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQ3BCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUNqQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ2pELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUN2RCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQ3BCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUM5QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ2xELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDbkQsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUNwQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUNuRCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQ3BCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ2xELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3J9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZFN0YXRlID0gKGVudGl0eSkgPT4gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPCBhbnk+KGVudGl0eSk7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkU2VsZWN0ZWQgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZE11bHRpU2VsZWN0ZWQgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLm11bHRpU2VsZWN0ZWRcbik7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkTGlzdCA9IChlbnRpdHkpID0+IGNyZWF0ZVNlbGVjdG9yKFxuICAgIGdldENydWRTdGF0ZShlbnRpdHkpLFxuICAgIChzdGF0ZSkgPT4gc3RhdGUubGlzdFxuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRUb3RhbENvdW50ID0gKGVudGl0eSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gICAgZ2V0Q3J1ZFN0YXRlKGVudGl0eSksXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS50b3RhbENvdW50XG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZExpbmtzID0gKGVudGl0eSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gICAgZ2V0Q3J1ZFN0YXRlKGVudGl0eSksXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5saW5rc1xuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRMb2FkZWQgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLmxvYWRlZFxuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRGaWx0ZXIgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLmZpbHRlclxuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRFcnJvciA9IChlbnRpdHkpID0+IGNyZWF0ZVNlbGVjdG9yKFxuICAgIGdldENydWRTdGF0ZShlbnRpdHkpLFxuICAgIChzdGF0ZSkgPT4gc3RhdGUuZXJyb3Jcbik7XG4iXX0=
@@ -1,110 +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 { DynamicIoModule } from 'ng-dynamic-component';
6
- import { SharedModule } from '@smartsoft001/angular';
7
- import { ExportComponent } from './export/export.component';
8
- import { FilterComponent, FilterDateComponent, FilterDateWithEditComponent, FilterFlagComponent, FilterRadioComponent, FilterTextComponent, FilterCheckComponent, FilterIntComponent, FilterDateTimeComponent, } from './filter';
9
- import { FiltersConfigComponent } from './filters-config/filters-config.component';
10
- import { FiltersComponent } from './filters/filters.component';
11
- import { MultiselectComponent } from './multiselect/multiselect.component';
12
- import { SocketService } from '../services/socket/socket.service';
13
- import { CrudPipesModule } from '../pipes/pipes.module';
14
- import { CrudService } from '../services/crud/crud.service';
15
- import { CrudEffects } from '../+state/crud.effects';
16
- import { CrudFacade } from '../+state/crud.facade';
17
- import { CrudListPaginationFactory } from '../factories/list-pagination/list-pagination.factory';
18
- import { GroupComponent } from './group/group.component';
19
- import * as i0 from "@angular/core";
20
- const COMPONENTS = [
21
- ExportComponent,
22
- FilterComponent,
23
- FilterTextComponent,
24
- FiltersConfigComponent,
25
- FilterDateComponent,
26
- FilterDateWithEditComponent,
27
- FilterDateTimeComponent,
28
- FilterRadioComponent,
29
- FiltersComponent,
30
- FilterFlagComponent,
31
- FilterCheckComponent,
32
- FilterIntComponent,
33
- MultiselectComponent,
34
- GroupComponent,
35
- ];
36
- export class CrudComponentsModule {
37
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
38
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: CrudComponentsModule, declarations: [ExportComponent,
39
- FilterComponent,
40
- FilterTextComponent,
41
- FiltersConfigComponent,
42
- FilterDateComponent,
43
- FilterDateWithEditComponent,
44
- FilterDateTimeComponent,
45
- FilterRadioComponent,
46
- FiltersComponent,
47
- FilterFlagComponent,
48
- FilterCheckComponent,
49
- FilterIntComponent,
50
- MultiselectComponent,
51
- GroupComponent], imports: [
52
- //AuthSharedModule,
53
- StoreModule,
54
- SharedModule,
55
- CrudPipesModule,
56
- FormsModule,
57
- CommonModule,
58
- DynamicIoModule], exports: [CrudPipesModule, ExportComponent,
59
- FilterComponent,
60
- FilterTextComponent,
61
- FiltersConfigComponent,
62
- FilterDateComponent,
63
- FilterDateWithEditComponent,
64
- FilterDateTimeComponent,
65
- FilterRadioComponent,
66
- FiltersComponent,
67
- FilterFlagComponent,
68
- FilterCheckComponent,
69
- FilterIntComponent,
70
- MultiselectComponent,
71
- GroupComponent] }); }
72
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudComponentsModule, providers: [
73
- CrudService,
74
- CrudEffects,
75
- CrudFacade,
76
- SocketService,
77
- CrudListPaginationFactory,
78
- ], imports: [
79
- //AuthSharedModule,
80
- StoreModule,
81
- SharedModule,
82
- CrudPipesModule,
83
- FormsModule,
84
- CommonModule,
85
- DynamicIoModule, CrudPipesModule] }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CrudComponentsModule, decorators: [{
88
- type: NgModule,
89
- args: [{
90
- declarations: [...COMPONENTS],
91
- imports: [
92
- //AuthSharedModule,
93
- StoreModule,
94
- SharedModule,
95
- CrudPipesModule,
96
- FormsModule,
97
- CommonModule,
98
- DynamicIoModule,
99
- ],
100
- exports: [CrudPipesModule, ...COMPONENTS],
101
- providers: [
102
- CrudService,
103
- CrudEffects,
104
- CrudFacade,
105
- SocketService,
106
- CrudListPaginationFactory,
107
- ],
108
- }]
109
- }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUNMLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsdUJBQXVCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUV6RCxNQUFNLFVBQVUsR0FBRztJQUNqQixlQUFlO0lBQ2YsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLDJCQUEyQjtJQUMzQix1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsY0FBYztDQUNmLENBQUM7QUFzQkYsTUFBTSxPQUFPLG9CQUFvQjtpSUFBcEIsb0JBQW9CO2tJQUFwQixvQkFBb0IsaUJBcEMvQixlQUFlO1lBQ2YsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsY0FBYztZQU1aLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsWUFBWTtZQUNaLGVBQWU7WUFDZixXQUFXO1lBQ1gsWUFBWTtZQUNaLGVBQWUsYUFFUCxlQUFlLEVBM0J6QixlQUFlO1lBQ2YsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsY0FBYztrSUF1Qkgsb0JBQW9CLGFBUnBCO1lBQ1QsV0FBVztZQUNYLFdBQVc7WUFDWCxVQUFVO1lBQ1YsYUFBYTtZQUNiLHlCQUF5QjtTQUMxQjtZQWZDLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsWUFBWTtZQUNaLGVBQWU7WUFDZixXQUFXO1lBQ1gsWUFBWTtZQUNaLGVBQWUsRUFFUCxlQUFlOzsyRkFTZCxvQkFBb0I7a0JBcEJoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUM3QixPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUN6QyxTQUFTLEVBQUU7d0JBQ1QsV0FBVzt3QkFDWCxXQUFXO3dCQUNYLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHluYW1pY0lvTW9kdWxlIH0gZnJvbSAnbmctZHluYW1pYy1jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBFeHBvcnRDb21wb25lbnQgfSBmcm9tICcuL2V4cG9ydC9leHBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEZpbHRlckNvbXBvbmVudCxcbiAgRmlsdGVyRGF0ZUNvbXBvbmVudCxcbiAgRmlsdGVyRGF0ZVdpdGhFZGl0Q29tcG9uZW50LFxuICBGaWx0ZXJGbGFnQ29tcG9uZW50LFxuICBGaWx0ZXJSYWRpb0NvbXBvbmVudCxcbiAgRmlsdGVyVGV4dENvbXBvbmVudCxcbiAgRmlsdGVyQ2hlY2tDb21wb25lbnQsXG4gIEZpbHRlckludENvbXBvbmVudCxcbiAgRmlsdGVyRGF0ZVRpbWVDb21wb25lbnQsXG59IGZyb20gJy4vZmlsdGVyJztcbmltcG9ydCB7IEZpbHRlcnNDb25maWdDb21wb25lbnQgfSBmcm9tICcuL2ZpbHRlcnMtY29uZmlnL2ZpbHRlcnMtY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IE11bHRpc2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU29ja2V0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NvY2tldC9zb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBDcnVkUGlwZXNNb2R1bGUgfSBmcm9tICcuLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jcnVkL2NydWQuc2VydmljZSc7XG5pbXBvcnQgeyBDcnVkRWZmZWN0cyB9IGZyb20gJy4uLytzdGF0ZS9jcnVkLmVmZmVjdHMnO1xuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gJy4uLytzdGF0ZS9jcnVkLmZhY2FkZSc7XG5pbXBvcnQgeyBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5IH0gZnJvbSAnLi4vZmFjdG9yaWVzL2xpc3QtcGFnaW5hdGlvbi9saXN0LXBhZ2luYXRpb24uZmFjdG9yeSc7XG5pbXBvcnQgeyBHcm91cENvbXBvbmVudCB9IGZyb20gJy4vZ3JvdXAvZ3JvdXAuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgRXhwb3J0Q29tcG9uZW50LFxuICBGaWx0ZXJDb21wb25lbnQsXG4gIEZpbHRlclRleHRDb21wb25lbnQsXG4gIEZpbHRlcnNDb25maWdDb21wb25lbnQsXG4gIEZpbHRlckRhdGVDb21wb25lbnQsXG4gIEZpbHRlckRhdGVXaXRoRWRpdENvbXBvbmVudCxcbiAgRmlsdGVyRGF0ZVRpbWVDb21wb25lbnQsXG4gIEZpbHRlclJhZGlvQ29tcG9uZW50LFxuICBGaWx0ZXJzQ29tcG9uZW50LFxuICBGaWx0ZXJGbGFnQ29tcG9uZW50LFxuICBGaWx0ZXJDaGVja0NvbXBvbmVudCxcbiAgRmlsdGVySW50Q29tcG9uZW50LFxuICBNdWx0aXNlbGVjdENvbXBvbmVudCxcbiAgR3JvdXBDb21wb25lbnQsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbiAgaW1wb3J0czogW1xuICAgIC8vQXV0aFNoYXJlZE1vZHVsZSxcbiAgICBTdG9yZU1vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgQ3J1ZFBpcGVzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEeW5hbWljSW9Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtDcnVkUGlwZXNNb2R1bGUsIC4uLkNPTVBPTkVOVFNdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDcnVkU2VydmljZSxcbiAgICBDcnVkRWZmZWN0cyxcbiAgICBDcnVkRmFjYWRlLFxuICAgIFNvY2tldFNlcnZpY2UsXG4gICAgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZENvbXBvbmVudHNNb2R1bGUge31cbiJdfQ==
@@ -1,47 +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
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../+state/crud.facade";
6
- import * as i2 from "@smartsoft001/angular";
7
- export class ExportComponent extends BaseComponent {
8
- constructor(facade, popoverService, styleService, elementRef) {
9
- super();
10
- this.facade = facade;
11
- this.popoverService = popoverService;
12
- this.styleService = styleService;
13
- this.elementRef = elementRef;
14
- this.buttonExportCsvOptions = this.initButtonExportOptions('csv');
15
- this.buttonExportXlsxOptions = this.initButtonExportOptions('xlsx');
16
- this.loading$ = this.facade.loading$;
17
- }
18
- ngOnInit() {
19
- this.styleService.init(this.elementRef);
20
- }
21
- initButtonExportOptions(format) {
22
- return {
23
- click: () => {
24
- this.facade.export({
25
- ...this.facade.filter,
26
- offset: null,
27
- limit: null
28
- }, format);
29
- const subscription = this.facade.loaded$.subscribe(val => {
30
- if (!val)
31
- return;
32
- this.popoverService.close();
33
- subscription.unsubscribe();
34
- });
35
- },
36
- loading$: this.facade.loading$,
37
- expand: 'block'
38
- };
39
- }
40
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ExportComponent, deps: [{ token: i1.CrudFacade }, { token: i2.PopoverService }, { token: i2.StyleService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
41
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: ExportComponent, selector: "smart-crud-export", usesInheritance: true, ngImport: i0, 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>", styles: [".smart-content{padding:1.2rem}.smart-content p{margin:.6rem 0}.smart-content smart-button{width:100%;display:block}\n"], dependencies: [{ kind: "component", type: i2.ButtonComponent, selector: "smart-button", inputs: ["options", "disabled"] }] }); }
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ExportComponent, decorators: [{
44
- type: Component,
45
- args: [{ selector: 'smart-crud-export', 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>", styles: [".smart-content{padding:1.2rem}.smart-content p{margin:.6rem 0}.smart-content smart-button{width:100%;display:block}\n"] }]
46
- }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.PopoverService }, { type: i2.StyleService }, { type: i0.ElementRef }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBQyxhQUFhLEVBQWtCLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPcEQsTUFBTSxPQUFPLGVBQTJDLFNBQVEsYUFBYTtJQU8zRSxZQUNZLE1BQXFCLEVBQ3JCLGNBQThCLEVBQzlCLFlBQTBCLEVBQzFCLFVBQXNCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBTEUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVRsQywyQkFBc0IsR0FBbUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLDRCQUF1QixHQUFtQixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0UsYUFBUSxHQUF3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQVNyRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBYztRQUM1QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDakIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQ3JCLE1BQU0sRUFBRSxJQUFJO29CQUNaLEtBQUssRUFBRSxJQUFJO2lCQUNaLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRVgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsR0FBRzt3QkFBRSxPQUFPO29CQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM1QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsTUFBTSxFQUFFLE9BQU87U0FDaEIsQ0FBQTtJQUNILENBQUM7aUlBdENVLGVBQWU7cUhBQWYsZUFBZSxnRkNiNUIsNk9BT007OzJGRE1PLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudCwgSUJ1dHRvbk9wdGlvbnMsIFBvcG92ZXJTZXJ2aWNlLCBTdHlsZVNlcnZpY2V9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtDcnVkRmFjYWRlfSBmcm9tIFwiLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZXhwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V4cG9ydC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGJ1dHRvbkV4cG9ydENzdk9wdGlvbnM6IElCdXR0b25PcHRpb25zID0gdGhpcy5pbml0QnV0dG9uRXhwb3J0T3B0aW9ucygnY3N2Jyk7XG4gIGJ1dHRvbkV4cG9ydFhsc3hPcHRpb25zOiBJQnV0dG9uT3B0aW9ucyA9IHRoaXMuaW5pdEJ1dHRvbkV4cG9ydE9wdGlvbnMoJ3hsc3gnKTtcblxuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuZmFjYWRlLmxvYWRpbmckO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmYWNhZGU6IENydWRGYWNhZGU8VD4sXG4gICAgICBwcml2YXRlIHBvcG92ZXJTZXJ2aWNlOiBQb3BvdmVyU2VydmljZSxcbiAgICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3R5bGVTZXJ2aWNlLmluaXQodGhpcy5lbGVtZW50UmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEJ1dHRvbkV4cG9ydE9wdGlvbnMoZm9ybWF0OiBzdHJpbmcpOiBJQnV0dG9uT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZmFjYWRlLmV4cG9ydCh7XG4gICAgICAgICAgLi4udGhpcy5mYWNhZGUuZmlsdGVyLFxuICAgICAgICAgIG9mZnNldDogbnVsbCxcbiAgICAgICAgICBsaW1pdDogbnVsbFxuICAgICAgICB9LCBmb3JtYXQpO1xuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuZmFjYWRlLmxvYWRlZCQuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgaWYgKCF2YWwpIHJldHVybjtcbiAgICAgICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLmNsb3NlKCk7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGxvYWRpbmckOiB0aGlzLmZhY2FkZS5sb2FkaW5nJCxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJ1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LWNvbnRlbnRcIj5cbiAgICA8cD5cbiAgICAgICAgPHNtYXJ0LWJ1dHRvbiBbb3B0aW9uc109XCJidXR0b25FeHBvcnRDc3ZPcHRpb25zXCI+Q1NWPC9zbWFydC1idXR0b24+XG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgICA8c21hcnQtYnV0dG9uIFtvcHRpb25zXT1cImJ1dHRvbkV4cG9ydFhsc3hPcHRpb25zXCI+WExTWDwvc21hcnQtYnV0dG9uPlxuICAgIDwvcD5cbjwvZGl2PiJdfQ==
@@ -1,152 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Directive, Inject, Input, Optional } from "@angular/core";
3
- import { Debounce } from "lodash-decorators";
4
- import { FieldType } from "@smartsoft001/models";
5
- import { CrudFacade } from "../../../+state/crud.facade";
6
- import { CRUD_MODEL_POSSIBILITIES_PROVIDER, ICrudModelPossibilitiesProvider, } from "../../../providers/model-possibilities/model-possibilities.provider";
7
- import { CrudConfig } from "../../../crud.config";
8
- import { TranslateService } from "@ngx-translate/core";
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../../+state/crud.facade";
11
- import * as i2 from "../../../crud.config";
12
- import * as i3 from "@ngx-translate/core";
13
- import * as i4 from "../../../providers/model-possibilities/model-possibilities.provider";
14
- export class BaseComponent {
15
- get value() {
16
- if (this.isArrayType()) {
17
- return this.filter.query
18
- .filter((q) => q.key === this.item.key && q.type === this.item.type)
19
- .map(q => q.value);
20
- }
21
- const query = this.filter.query.find((q) => q.key === this.item.key && q.type === this.item.type);
22
- return query?.value;
23
- }
24
- set value(val) {
25
- this.refresh(val);
26
- }
27
- get minValue() {
28
- if (this.isArrayType()) {
29
- return this.filter.query
30
- .filter((q) => q.key === this.item.key && q.type === ">=")
31
- .map(q => q.value);
32
- }
33
- const query = this.filter.query.find((q) => q.key === this.item.key && q.type === ">=");
34
- return query?.value;
35
- }
36
- set minValue(val) {
37
- this.refresh(val, ">=");
38
- }
39
- get maxValue() {
40
- if (this.isArrayType()) {
41
- return this.filter.query
42
- .filter((q) => q.key === this.item.key && q.type === "<=")
43
- .map(q => q.value);
44
- }
45
- const query = this.filter.query.find((q) => q.key === this.item.key && q.type === "<=");
46
- return query?.value;
47
- }
48
- set maxValue(val) {
49
- this.refresh(val, "<=");
50
- }
51
- get lang() {
52
- return this.translateService.currentLang;
53
- }
54
- constructor(facade, config, modelPossibilitiesProvider, translateService) {
55
- this.facade = facade;
56
- this.config = config;
57
- this.modelPossibilitiesProvider = modelPossibilitiesProvider;
58
- this.translateService = translateService;
59
- }
60
- refresh(val, type = null) {
61
- if (!type)
62
- type = this.item.type;
63
- this.filter.offset = 0;
64
- if (this.isArrayType()) {
65
- this.refreshForArray(val, type);
66
- return;
67
- }
68
- let query = this.filter.query.find((q) => q.key === this.item.key && q.type === type);
69
- if (val === null || val === undefined || val === '') {
70
- const index = this.filter.query.indexOf(query);
71
- if (index > -1) {
72
- this.filter.query.splice(index, 1);
73
- }
74
- this.facade.read(this.filter);
75
- return;
76
- }
77
- if (!query) {
78
- query = {
79
- key: this.item.key,
80
- type: type,
81
- value: null,
82
- };
83
- this.filter.query.push(query);
84
- }
85
- query.value = val;
86
- query.label = this.item.label;
87
- this.facade.read(this.filter);
88
- }
89
- clear() {
90
- this.filter.query = this.filter.query.filter((q) => q.key !== this.item.key);
91
- this.filter.offset = 0;
92
- this.facade.read(this.filter);
93
- }
94
- ngOnInit() {
95
- this.initPossibilities();
96
- }
97
- initPossibilities() {
98
- let possibilities = this.item.possibilities$;
99
- if (this.modelPossibilitiesProvider) {
100
- const possibilitiesFromProvider = this.modelPossibilitiesProvider.get(this.config.type);
101
- if (possibilitiesFromProvider && possibilitiesFromProvider[this.item.key])
102
- possibilities = possibilitiesFromProvider[this.item.key];
103
- }
104
- this.possibilities$ = possibilities;
105
- }
106
- isArrayType() {
107
- return (this.item?.fieldType === FieldType.check);
108
- }
109
- refreshForArray(vals, type) {
110
- const queries = this.filter.query.filter((q) => q.key === this.item.key && q.type === type);
111
- queries.forEach(query => {
112
- const index = this.filter.query.indexOf(query);
113
- if (index > -1) {
114
- this.filter.query.splice(index, 1);
115
- }
116
- });
117
- if (vals === null || vals === undefined || !vals.length) {
118
- this.facade.read(this.filter);
119
- return;
120
- }
121
- vals.forEach(val => {
122
- const query = {
123
- key: this.item.key,
124
- type: type,
125
- value: val,
126
- };
127
- this.filter.query.push(query);
128
- });
129
- this.facade.read(this.filter);
130
- }
131
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: BaseComponent, deps: [{ token: i1.CrudFacade }, { token: i2.CrudConfig }, { token: CRUD_MODEL_POSSIBILITIES_PROVIDER, optional: true }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
132
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: BaseComponent, inputs: { item: "item", filter: "filter" }, ngImport: i0 }); }
133
- }
134
- __decorate([
135
- Debounce(500),
136
- __metadata("design:type", Function),
137
- __metadata("design:paramtypes", [Object, Object]),
138
- __metadata("design:returntype", void 0)
139
- ], BaseComponent.prototype, "refresh", null);
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: BaseComponent, decorators: [{
141
- type: Directive
142
- }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.CrudConfig }, { type: i4.ICrudModelPossibilitiesProvider, decorators: [{
143
- type: Optional
144
- }, {
145
- type: Inject,
146
- args: [CRUD_MODEL_POSSIBILITIES_PROVIDER]
147
- }] }, { type: i3.TranslateService }]; }, propDecorators: { item: [{
148
- type: Input
149
- }], filter: [{
150
- type: Input
151
- }], refresh: [] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSTNDLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQywrQkFBK0IsR0FDaEMsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQU14QixJQUFJLEtBQUs7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztpQkFDbkIsTUFBTSxDQUNMLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzVEO2lCQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFN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Q2hDLENBQUM7aUlBN0tVLGFBQWEsc0VBdUVkLGlDQUFpQztxSEF2RWhDLGFBQWE7O0FBNkV4QjtJQURDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7NENBdUNiOzJGQW5IVSxhQUFhO2tCQUR6QixTQUFTOzswQkF1RUwsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxpQ0FBaUM7MkVBcEVsQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQXlFTixPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0RlYm91bmNlfSBmcm9tIFwibG9kYXNoLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtGaWVsZFR5cGUsIElNb2RlbEZpbHRlcn0gZnJvbSBcIkBzbWFydHNvZnQwMDEvbW9kZWxzXCI7XG5cbmltcG9ydCB7SUNydWRGaWx0ZXJ9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtDcnVkRmFjYWRlfSBmcm9tIFwiLi4vLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5pbXBvcnQge1xuICBDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIsXG4gIElDcnVkTW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXIsXG59IGZyb20gXCIuLi8uLi8uLi9wcm92aWRlcnMvbW9kZWwtcG9zc2liaWxpdGllcy9tb2RlbC1wb3NzaWJpbGl0aWVzLnByb3ZpZGVyXCI7XG5pbXBvcnQge0NydWRDb25maWd9IGZyb20gXCIuLi8uLi8uLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcG9zc2liaWxpdGllcyQ6IE9ic2VydmFibGU8eyBpZDogYW55OyB0ZXh0OiBzdHJpbmcgfVtdPjtcblxuICBASW5wdXQoKSBpdGVtOiBJTW9kZWxGaWx0ZXI7XG4gIEBJbnB1dCgpIGZpbHRlcjogSUNydWRGaWx0ZXI7XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNBcnJheVR5cGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnF1ZXJ5XG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IHRoaXMuaXRlbS50eXBlXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAocSA9PiBxLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbmQoXG4gICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSB0aGlzLml0ZW0udHlwZVxuICAgICk7XG4gICAgcmV0dXJuIHF1ZXJ5Py52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMucmVmcmVzaCh2YWwpO1xuICB9XG5cbiAgZ2V0IG1pblZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNBcnJheVR5cGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnF1ZXJ5XG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gXCI+PVwiXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAocSA9PiBxLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbmQoXG4gICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IFwiPj1cIlxuICAgICk7XG4gICAgcmV0dXJuIHF1ZXJ5Py52YWx1ZTtcbiAgfVxuXG4gIHNldCBtaW5WYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMucmVmcmVzaCh2YWwsIFwiPj1cIik7XG4gIH1cblxuICBnZXQgbWF4VmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0FycmF5VHlwZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIucXVlcnlcbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSBcIjw9XCJcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChxID0+IHEudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gXCI8PVwiXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnk/LnZhbHVlO1xuICB9XG5cbiAgc2V0IG1heFZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5yZWZyZXNoKHZhbCwgXCI8PVwiKTtcbiAgfVxuXG4gIGdldCBsYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmYWNhZGU6IENydWRGYWNhZGU8VD4sXG4gICAgcHJpdmF0ZSBjb25maWc6IENydWRDb25maWc8VD4sXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KENSVURfTU9ERUxfUE9TU0lCSUxJVElFU19QUk9WSURFUilcbiAgICBwcml2YXRlIG1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyOiBJQ3J1ZE1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBARGVib3VuY2UoNTAwKVxuICByZWZyZXNoKHZhbDogYW55LCB0eXBlID0gbnVsbCk6IHZvaWQge1xuICAgIGlmICghdHlwZSkgdHlwZSA9IHRoaXMuaXRlbS50eXBlO1xuXG4gICAgdGhpcy5maWx0ZXIub2Zmc2V0ID0gMDtcblxuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHRoaXMucmVmcmVzaEZvckFycmF5KHZhbCBhcyBbXSwgdHlwZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdHlwZVxuICAgICk7XG5cbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJycpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWx0ZXIucXVlcnkuaW5kZXhPZihxdWVyeSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLmZpbHRlci5xdWVyeS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmlsdGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICBxdWVyeSA9IHtcbiAgICAgICAga2V5OiB0aGlzLml0ZW0ua2V5LFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnB1c2gocXVlcnkpO1xuICAgIH1cblxuICAgIHF1ZXJ5LnZhbHVlID0gdmFsO1xuICAgIHF1ZXJ5LmxhYmVsID0gdGhpcy5pdGVtLmxhYmVsO1xuXG4gICAgdGhpcy5mYWNhZGUucmVhZCh0aGlzLmZpbHRlcik7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlci5xdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbHRlcihcbiAgICAgICAgKHEpID0+IHEua2V5ICE9PSB0aGlzLml0ZW0ua2V5XG4gICAgKTtcbiAgICB0aGlzLmZpbHRlci5vZmZzZXQgPSAwO1xuICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0UG9zc2liaWxpdGllcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UG9zc2liaWxpdGllcygpOiB2b2lkIHtcbiAgICBsZXQgcG9zc2liaWxpdGllcyA9IHRoaXMuaXRlbS5wb3NzaWJpbGl0aWVzJDtcblxuICAgIGlmICh0aGlzLm1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyKSB7XG4gICAgICBjb25zdCBwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyID0gdGhpcy5tb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlci5nZXQodGhpcy5jb25maWcudHlwZSk7XG4gICAgICBpZiAocG9zc2liaWxpdGllc0Zyb21Qcm92aWRlciAmJiBwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyW3RoaXMuaXRlbS5rZXldKVxuICAgICAgICBwb3NzaWJpbGl0aWVzID0gcG9zc2liaWxpdGllc0Zyb21Qcm92aWRlclt0aGlzLml0ZW0ua2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc3NpYmlsaXRpZXMkID0gcG9zc2liaWxpdGllcztcbiAgfVxuXG4gIHByaXZhdGUgaXNBcnJheVR5cGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLml0ZW0/LmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLmNoZWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaEZvckFycmF5KHZhbHM6IFtdLCB0eXBlKTogdm9pZCB7XG4gICAgY29uc3QgcXVlcmllcyA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbHRlcihcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdHlwZVxuICAgICk7XG5cbiAgICBxdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlci5xdWVyeS5pbmRleE9mKHF1ZXJ5KTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodmFscyA9PT0gbnVsbCB8fCB2YWxzID09PSB1bmRlZmluZWQgfHwgIXZhbHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmlsdGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YWxzLmZvckVhY2godmFsID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICBrZXk6IHRoaXMuaXRlbS5rZXksXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmZpbHRlci5xdWVyeS5wdXNoKHF1ZXJ5KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICB9XG59XG4iXX0=