@smartsoft001/crud-shell-angular 1.2.91 → 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.
- package/.storybook/addons.js +1 -0
- package/.storybook/config.js +5 -0
- package/.storybook/tsconfig.json +8 -0
- package/.storybook/webpack.config.js +7 -0
- package/jest.config.ts +38 -0
- package/ng-package.json +7 -0
- package/package.json +12 -23
- package/project.json +49 -0
- package/src/index.ts +13 -0
- package/src/lib/+state/crud.facade.ts +82 -0
- package/src/lib/+state/crud.feature.methods.ts +258 -0
- package/src/lib/+state/crud.feature.store.ts +77 -0
- package/src/lib/components/components.module.ts +58 -0
- package/src/lib/components/export/export.component.ts +69 -0
- package/src/lib/components/filter/base/base.component.ts +175 -0
- package/src/lib/components/filter/check/check.component.scss +25 -0
- package/src/lib/components/filter/check/check.component.ts +72 -0
- package/src/lib/components/filter/date/date.component.html +30 -0
- package/src/lib/components/filter/date/date.component.ts +70 -0
- package/src/lib/components/filter/date-time/date-time.component.html +62 -0
- package/src/lib/components/filter/date-time/date-time.component.ts +56 -0
- package/src/lib/components/filter/date-with-edit/date-with-edit.component.html +109 -0
- package/src/lib/components/filter/date-with-edit/date-with-edit.component.ts +70 -0
- package/src/lib/components/filter/filter.component.html +52 -0
- package/src/lib/components/filter/filter.component.ts +34 -0
- package/src/lib/components/filter/flag/flag.component.ts +55 -0
- package/src/lib/components/filter/index.ts +9 -0
- package/src/lib/components/filter/int/int.component.html +74 -0
- package/src/lib/components/filter/int/int.component.ts +57 -0
- package/src/lib/components/filter/radio/radio.component.ts +74 -0
- package/src/lib/components/filter/text/text.component.ts +46 -0
- package/src/lib/components/filters/filters.component.scss +150 -0
- package/src/lib/components/filters/filters.component.ts +157 -0
- package/src/lib/components/filters-config/filters-config.component.ts +69 -0
- package/src/lib/components/group/group.component.ts +93 -0
- package/src/lib/components/index.ts +7 -0
- package/src/lib/components/multiselect/multiselect.component.html +41 -0
- package/src/lib/components/multiselect/multiselect.component.scss +125 -0
- package/src/lib/components/multiselect/multiselect.component.ts +104 -0
- package/src/lib/crud-full.module.ts +51 -0
- package/src/lib/crud.config.ts +79 -0
- package/src/lib/crud.module.ts +72 -0
- package/src/lib/factories/list-pagination/list-pagination.factory.ts +77 -0
- package/src/lib/models/index.ts +1 -0
- package/src/lib/models/interfaces.ts +34 -0
- package/src/lib/pages/index.ts +6 -0
- package/src/lib/pages/item/base/base.component.ts +54 -0
- package/src/lib/pages/item/item.component.ts +513 -0
- package/src/lib/pages/item/standard/standard.component.scss +0 -0
- package/src/lib/pages/item/standard/standard.component.ts +50 -0
- package/src/lib/pages/list/base/base.component.ts +29 -0
- package/src/lib/pages/list/list.component.stories.ts +77 -0
- package/src/lib/pages/list/list.component.ts +438 -0
- package/src/lib/pages/list/standard/standard.component.ts +42 -0
- package/src/lib/pipes/form-options/form-options.pipe.ts +61 -0
- package/src/lib/pipes/index.ts +2 -0
- package/src/lib/pipes/pipes.module.ts +9 -0
- package/src/lib/providers/model-possibilities/model-possibilities.provider.ts +19 -0
- package/src/lib/services/crud/crud.service.spec.ts +303 -0
- package/src/lib/services/crud/crud.service.ts +178 -0
- package/src/lib/services/list-group/list-group.service.spec.ts +87 -0
- package/src/lib/services/list-group/list-group.service.ts +65 -0
- package/src/lib/services/page/page.service.spec.ts +143 -0
- package/src/lib/services/page/page.service.ts +44 -0
- package/src/lib/services/search/search.service.spec.ts +134 -0
- package/src/lib/services/search/search.service.ts +42 -0
- package/test-setup.ts +0 -0
- package/tsconfig.json +13 -0
- package/tsconfig.lib.json +31 -0
- package/tsconfig.lib.prod.json +11 -0
- package/tsconfig.spec.json +10 -0
- package/tslint.json +10 -0
- package/esm2022/index.mjs +0 -18
- package/esm2022/lib/+state/crud.actions.mjs +0 -224
- package/esm2022/lib/+state/crud.effects.mjs +0 -182
- package/esm2022/lib/+state/crud.facade.mjs +0 -91
- package/esm2022/lib/+state/crud.reducer.mjs +0 -214
- package/esm2022/lib/+state/crud.selectors.mjs +0 -11
- package/esm2022/lib/components/components.module.mjs +0 -110
- package/esm2022/lib/components/export/export.component.mjs +0 -47
- package/esm2022/lib/components/filter/base/base.component.mjs +0 -152
- package/esm2022/lib/components/filter/check/check.component.mjs +0 -36
- package/esm2022/lib/components/filter/date/date.component.mjs +0 -47
- package/esm2022/lib/components/filter/date-time/date-time.component.mjs +0 -43
- package/esm2022/lib/components/filter/date-with-edit/date-with-edit.component.mjs +0 -49
- package/esm2022/lib/components/filter/filter.component.mjs +0 -30
- package/esm2022/lib/components/filter/flag/flag.component.mjs +0 -16
- package/esm2022/lib/components/filter/index.mjs +0 -10
- package/esm2022/lib/components/filter/int/int.component.mjs +0 -38
- package/esm2022/lib/components/filter/radio/radio.component.mjs +0 -16
- package/esm2022/lib/components/filter/text/text.component.mjs +0 -16
- package/esm2022/lib/components/filters/filters.component.mjs +0 -111
- package/esm2022/lib/components/filters-config/filters-config.component.mjs +0 -37
- package/esm2022/lib/components/group/group.component.mjs +0 -54
- package/esm2022/lib/components/index.mjs +0 -8
- package/esm2022/lib/components/multiselect/multiselect.component.mjs +0 -71
- package/esm2022/lib/crud-full.module.mjs +0 -103
- package/esm2022/lib/crud.config.mjs +0 -17
- package/esm2022/lib/crud.module.mjs +0 -106
- package/esm2022/lib/factories/list-pagination/list-pagination.factory.mjs +0 -69
- package/esm2022/lib/models/index.mjs +0 -2
- package/esm2022/lib/models/interfaces.mjs +0 -2
- package/esm2022/lib/pages/index.mjs +0 -7
- package/esm2022/lib/pages/item/base/base.component.mjs +0 -44
- package/esm2022/lib/pages/item/item.component.mjs +0 -395
- package/esm2022/lib/pages/item/standard/standard.component.mjs +0 -15
- package/esm2022/lib/pages/list/base/base.component.mjs +0 -23
- package/esm2022/lib/pages/list/list.component.mjs +0 -355
- package/esm2022/lib/pages/list/standard/standard.component.mjs +0 -34
- package/esm2022/lib/pipes/form-options/form-options.pipe.mjs +0 -55
- package/esm2022/lib/pipes/index.mjs +0 -3
- package/esm2022/lib/pipes/pipes.module.mjs +0 -20
- package/esm2022/lib/providers/model-possibilities/model-possibilities.provider.mjs +0 -11
- package/esm2022/lib/services/crud/crud.service.mjs +0 -138
- package/esm2022/lib/services/list-group/list-group.service.mjs +0 -60
- package/esm2022/lib/services/page/page.service.mjs +0 -41
- package/esm2022/lib/services/search/search.service.mjs +0 -41
- package/esm2022/lib/services/socket/socket.service.mjs +0 -17
- package/esm2022/smartsoft001-crud-shell-angular.mjs +0 -5
- package/fesm2022/smartsoft001-crud-shell-angular.mjs +0 -2810
- package/fesm2022/smartsoft001-crud-shell-angular.mjs.map +0 -1
- package/index.d.ts +0 -18
- package/index.d.ts.map +0 -1
- package/lib/+state/crud.actions.d.ts +0 -152
- package/lib/+state/crud.actions.d.ts.map +0 -1
- package/lib/+state/crud.effects.d.ts +0 -18
- package/lib/+state/crud.effects.d.ts.map +0 -1
- package/lib/+state/crud.facade.d.ts +0 -44
- package/lib/+state/crud.facade.d.ts.map +0 -1
- package/lib/+state/crud.reducer.d.ts +0 -43
- package/lib/+state/crud.reducer.d.ts.map +0 -1
- package/lib/+state/crud.selectors.d.ts +0 -10
- package/lib/+state/crud.selectors.d.ts.map +0 -1
- package/lib/components/components.module.d.ts +0 -27
- package/lib/components/components.module.d.ts.map +0 -1
- package/lib/components/export/export.component.d.ts +0 -21
- package/lib/components/export/export.component.d.ts.map +0 -1
- package/lib/components/filter/base/base.component.d.ts +0 -39
- package/lib/components/filter/base/base.component.d.ts.map +0 -1
- package/lib/components/filter/check/check.component.d.ts +0 -19
- package/lib/components/filter/check/check.component.d.ts.map +0 -1
- package/lib/components/filter/date/date.component.d.ts +0 -16
- package/lib/components/filter/date/date.component.d.ts.map +0 -1
- package/lib/components/filter/date-time/date-time.component.d.ts +0 -15
- package/lib/components/filter/date-time/date-time.component.d.ts.map +0 -1
- package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts +0 -17
- package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts.map +0 -1
- package/lib/components/filter/filter.component.d.ts +0 -14
- package/lib/components/filter/filter.component.d.ts.map +0 -1
- package/lib/components/filter/flag/flag.component.d.ts +0 -8
- package/lib/components/filter/flag/flag.component.d.ts.map +0 -1
- package/lib/components/filter/index.d.ts +0 -10
- package/lib/components/filter/index.d.ts.map +0 -1
- package/lib/components/filter/int/int.component.d.ts +0 -15
- package/lib/components/filter/int/int.component.d.ts.map +0 -1
- package/lib/components/filter/radio/radio.component.d.ts +0 -8
- package/lib/components/filter/radio/radio.component.d.ts.map +0 -1
- package/lib/components/filter/text/text.component.d.ts +0 -8
- package/lib/components/filter/text/text.component.d.ts.map +0 -1
- package/lib/components/filters/filters.component.d.ts +0 -83
- package/lib/components/filters/filters.component.d.ts.map +0 -1
- package/lib/components/filters-config/filters-config.component.d.ts +0 -19
- package/lib/components/filters-config/filters-config.component.d.ts.map +0 -1
- package/lib/components/group/group.component.d.ts +0 -23
- package/lib/components/group/group.component.d.ts.map +0 -1
- package/lib/components/index.d.ts +0 -8
- package/lib/components/index.d.ts.map +0 -1
- package/lib/components/multiselect/multiselect.component.d.ts +0 -28
- package/lib/components/multiselect/multiselect.component.d.ts.map +0 -1
- package/lib/crud-full.module.d.ts +0 -28
- package/lib/crud-full.module.d.ts.map +0 -1
- package/lib/crud.config.d.ts +0 -65
- package/lib/crud.config.d.ts.map +0 -1
- package/lib/crud.module.d.ts +0 -34
- package/lib/crud.module.d.ts.map +0 -1
- package/lib/factories/list-pagination/list-pagination.factory.d.ts +0 -20
- package/lib/factories/list-pagination/list-pagination.factory.d.ts.map +0 -1
- package/lib/models/index.d.ts +0 -2
- package/lib/models/index.d.ts.map +0 -1
- package/lib/models/interfaces.d.ts +0 -30
- package/lib/models/interfaces.d.ts.map +0 -1
- package/lib/pages/index.d.ts +0 -7
- package/lib/pages/index.d.ts.map +0 -1
- package/lib/pages/item/base/base.component.d.ts +0 -25
- package/lib/pages/item/base/base.component.d.ts.map +0 -1
- package/lib/pages/item/item.component.d.ts +0 -70
- package/lib/pages/item/item.component.d.ts.map +0 -1
- package/lib/pages/item/standard/standard.component.d.ts +0 -8
- package/lib/pages/item/standard/standard.component.d.ts.map +0 -1
- package/lib/pages/list/base/base.component.d.ts +0 -15
- package/lib/pages/list/base/base.component.d.ts.map +0 -1
- package/lib/pages/list/list.component.d.ts +0 -54
- package/lib/pages/list/list.component.d.ts.map +0 -1
- package/lib/pages/list/standard/standard.component.d.ts +0 -14
- package/lib/pages/list/standard/standard.component.d.ts.map +0 -1
- package/lib/pipes/form-options/form-options.pipe.d.ts +0 -15
- package/lib/pipes/form-options/form-options.pipe.d.ts.map +0 -1
- package/lib/pipes/index.d.ts +0 -3
- package/lib/pipes/index.d.ts.map +0 -1
- package/lib/pipes/pipes.module.d.ts +0 -8
- package/lib/pipes/pipes.module.d.ts.map +0 -1
- package/lib/providers/model-possibilities/model-possibilities.provider.d.ts +0 -18
- package/lib/providers/model-possibilities/model-possibilities.provider.d.ts.map +0 -1
- package/lib/services/crud/crud.service.d.ts +0 -38
- package/lib/services/crud/crud.service.d.ts.map +0 -1
- package/lib/services/list-group/list-group.service.d.ts +0 -15
- package/lib/services/list-group/list-group.service.d.ts.map +0 -1
- package/lib/services/page/page.service.d.ts +0 -12
- package/lib/services/page/page.service.d.ts.map +0 -1
- package/lib/services/search/search.service.d.ts +0 -16
- package/lib/services/search/search.service.d.ts.map +0 -1
- package/lib/services/socket/socket.service.d.ts +0 -10
- package/lib/services/socket/socket.service.d.ts.map +0 -1
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSTNDLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQywrQkFBK0IsR0FDaEMsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQU14QixJQUFJLEtBQUs7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztpQkFDbkIsTUFBTSxDQUNMLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzVEO2lCQUNBLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDbEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDNUQsQ0FBQztRQUNGLE9BQU8sS0FBSyxFQUFFLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsR0FBUTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztpQkFDbkIsTUFBTSxDQUNILENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUNwRDtpQkFDQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2hDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUNwRCxDQUFDO1FBQ0YsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztpQkFDbkIsTUFBTSxDQUNILENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUNwRDtpQkFDQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2hDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUNwRCxDQUFDO1FBQ0YsT0FBTyxLQUFLLEVBQUUsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFRO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7SUFDM0MsQ0FBQztJQUVELFlBQ1ksTUFBcUIsRUFDdkIsTUFBcUIsRUFHckIsMEJBQTJELEVBQ3pELGdCQUFrQztRQUxsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFHckIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFpQztRQUN6RCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBQzNDLENBQUM7SUFHSixPQUFPLENBQUMsR0FBUSxFQUFFLElBQUksR0FBRyxJQUFJO1FBQzNCLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUV2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxPQUFPO1NBQ1I7UUFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzlCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUNwRCxDQUFDO1FBRUYsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTtZQUNuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNwQztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHO2dCQUNOLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ2xCLElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQztZQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtRQUVELEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUN4QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ25DLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hGLElBQUkseUJBQXlCLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ3ZFLGFBQWEsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVEO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVEsRUFBRSxJQUFJO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDcEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQ3BELENBQUM7UUFFRixPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3BDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakIsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRztnQkFDbEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLEdBQUc7YUFDWCxDQUFDO1lBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7aUlBN0tVLGFBQWEsc0VBdUVkLGlDQUFpQztxSEF2RWhDLGFBQWE7O0FBNkV4QjtJQURDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7NENBdUNiOzJGQW5IVSxhQUFhO2tCQUR6QixTQUFTOzswQkF1RUwsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxpQ0FBaUM7MkVBcEVsQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQXlFTixPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0RlYm91bmNlfSBmcm9tIFwibG9kYXNoLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtGaWVsZFR5cGUsIElNb2RlbEZpbHRlcn0gZnJvbSBcIkBzbWFydHNvZnQwMDEvbW9kZWxzXCI7XG5cbmltcG9ydCB7SUNydWRGaWx0ZXJ9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtDcnVkRmFjYWRlfSBmcm9tIFwiLi4vLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5pbXBvcnQge1xuICBDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIsXG4gIElDcnVkTW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXIsXG59IGZyb20gXCIuLi8uLi8uLi9wcm92aWRlcnMvbW9kZWwtcG9zc2liaWxpdGllcy9tb2RlbC1wb3NzaWJpbGl0aWVzLnByb3ZpZGVyXCI7XG5pbXBvcnQge0NydWRDb25maWd9IGZyb20gXCIuLi8uLi8uLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcG9zc2liaWxpdGllcyQ6IE9ic2VydmFibGU8eyBpZDogYW55OyB0ZXh0OiBzdHJpbmcgfVtdPjtcblxuICBASW5wdXQoKSBpdGVtOiBJTW9kZWxGaWx0ZXI7XG4gIEBJbnB1dCgpIGZpbHRlcjogSUNydWRGaWx0ZXI7XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNBcnJheVR5cGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnF1ZXJ5XG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IHRoaXMuaXRlbS50eXBlXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAocSA9PiBxLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbmQoXG4gICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSB0aGlzLml0ZW0udHlwZVxuICAgICk7XG4gICAgcmV0dXJuIHF1ZXJ5Py52YWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMucmVmcmVzaCh2YWwpO1xuICB9XG5cbiAgZ2V0IG1pblZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNBcnJheVR5cGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnF1ZXJ5XG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gXCI+PVwiXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAocSA9PiBxLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbmQoXG4gICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IFwiPj1cIlxuICAgICk7XG4gICAgcmV0dXJuIHF1ZXJ5Py52YWx1ZTtcbiAgfVxuXG4gIHNldCBtaW5WYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMucmVmcmVzaCh2YWwsIFwiPj1cIik7XG4gIH1cblxuICBnZXQgbWF4VmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0FycmF5VHlwZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIucXVlcnlcbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSBcIjw9XCJcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChxID0+IHEudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gXCI8PVwiXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnk/LnZhbHVlO1xuICB9XG5cbiAgc2V0IG1heFZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5yZWZyZXNoKHZhbCwgXCI8PVwiKTtcbiAgfVxuXG4gIGdldCBsYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmYWNhZGU6IENydWRGYWNhZGU8VD4sXG4gICAgcHJpdmF0ZSBjb25maWc6IENydWRDb25maWc8VD4sXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KENSVURfTU9ERUxfUE9TU0lCSUxJVElFU19QUk9WSURFUilcbiAgICBwcml2YXRlIG1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyOiBJQ3J1ZE1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBARGVib3VuY2UoNTAwKVxuICByZWZyZXNoKHZhbDogYW55LCB0eXBlID0gbnVsbCk6IHZvaWQge1xuICAgIGlmICghdHlwZSkgdHlwZSA9IHRoaXMuaXRlbS50eXBlO1xuXG4gICAgdGhpcy5maWx0ZXIub2Zmc2V0ID0gMDtcblxuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHRoaXMucmVmcmVzaEZvckFycmF5KHZhbCBhcyBbXSwgdHlwZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdHlwZVxuICAgICk7XG5cbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJycpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWx0ZXIucXVlcnkuaW5kZXhPZihxdWVyeSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLmZpbHRlci5xdWVyeS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmlsdGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICBxdWVyeSA9IHtcbiAgICAgICAga2V5OiB0aGlzLml0ZW0ua2V5LFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnB1c2gocXVlcnkpO1xuICAgIH1cblxuICAgIHF1ZXJ5LnZhbHVlID0gdmFsO1xuICAgIHF1ZXJ5LmxhYmVsID0gdGhpcy5pdGVtLmxhYmVsO1xuXG4gICAgdGhpcy5mYWNhZGUucmVhZCh0aGlzLmZpbHRlcik7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlci5xdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbHRlcihcbiAgICAgICAgKHEpID0+IHEua2V5ICE9PSB0aGlzLml0ZW0ua2V5XG4gICAgKTtcbiAgICB0aGlzLmZpbHRlci5vZmZzZXQgPSAwO1xuICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0UG9zc2liaWxpdGllcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UG9zc2liaWxpdGllcygpOiB2b2lkIHtcbiAgICBsZXQgcG9zc2liaWxpdGllcyA9IHRoaXMuaXRlbS5wb3NzaWJpbGl0aWVzJDtcblxuICAgIGlmICh0aGlzLm1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyKSB7XG4gICAgICBjb25zdCBwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyID0gdGhpcy5tb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlci5nZXQodGhpcy5jb25maWcudHlwZSk7XG4gICAgICBpZiAocG9zc2liaWxpdGllc0Zyb21Qcm92aWRlciAmJiBwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyW3RoaXMuaXRlbS5rZXldKVxuICAgICAgICBwb3NzaWJpbGl0aWVzID0gcG9zc2liaWxpdGllc0Zyb21Qcm92aWRlclt0aGlzLml0ZW0ua2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLnBvc3NpYmlsaXRpZXMkID0gcG9zc2liaWxpdGllcztcbiAgfVxuXG4gIHByaXZhdGUgaXNBcnJheVR5cGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLml0ZW0/LmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLmNoZWNrKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaEZvckFycmF5KHZhbHM6IFtdLCB0eXBlKTogdm9pZCB7XG4gICAgY29uc3QgcXVlcmllcyA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbHRlcihcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdHlwZVxuICAgICk7XG5cbiAgICBxdWVyaWVzLmZvckVhY2gocXVlcnkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlci5xdWVyeS5pbmRleE9mKHF1ZXJ5KTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodmFscyA9PT0gbnVsbCB8fCB2YWxzID09PSB1bmRlZmluZWQgfHwgIXZhbHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmlsdGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB2YWxzLmZvckVhY2godmFsID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICBrZXk6IHRoaXMuaXRlbS5rZXksXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIHZhbHVlOiB2YWwsXG4gICAgICB9O1xuXG4gICAgICB0aGlzLmZpbHRlci5xdWVyeS5wdXNoKHF1ZXJ5KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICB9XG59XG4iXX0=
|