@stssocialst-stp/fe-admin 1.3.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/dist/index.js ADDED
@@ -0,0 +1,3541 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var React = require('react');
7
+ var icons = require('@material-ui/icons');
8
+ var feCore = require('@openimis/fe-core');
9
+ var _extends = require('@babel/runtime/helpers/extends');
10
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
11
+ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
12
+ var _createClass = require('@babel/runtime/helpers/createClass');
13
+ var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
14
+ var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
15
+ var _inherits = require('@babel/runtime/helpers/inherits');
16
+ var reactIntl = require('react-intl');
17
+ var reactRedux = require('react-redux');
18
+ var redux = require('redux');
19
+ var core = require('@material-ui/core');
20
+ var AddIcon = require('@material-ui/icons/Add');
21
+ var styles$a = require('@material-ui/core/styles');
22
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
23
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
24
+ var _debounce = require('lodash/debounce');
25
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
26
+ var ReplayIcon = require('@material-ui/icons/Replay');
27
+ var DeleteIcon = require('@material-ui/icons/Delete');
28
+ var VisibilityIcon = require('@material-ui/icons/Visibility');
29
+ var VisibilityOffIcon = require('@material-ui/icons/VisibilityOff');
30
+ var lab = require('@material-ui/lab');
31
+ var Autocomplete = require('@material-ui/lab/Autocomplete');
32
+ var TextField = require('@material-ui/core/TextField');
33
+
34
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
35
+
36
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
37
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
38
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
39
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
40
+ var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
41
+ var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
42
+ var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
43
+ var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
44
+ var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
45
+ var AddIcon__default = /*#__PURE__*/_interopDefaultLegacy(AddIcon);
46
+ var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
47
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
48
+ var _debounce__default = /*#__PURE__*/_interopDefaultLegacy(_debounce);
49
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
50
+ var ReplayIcon__default = /*#__PURE__*/_interopDefaultLegacy(ReplayIcon);
51
+ var DeleteIcon__default = /*#__PURE__*/_interopDefaultLegacy(DeleteIcon);
52
+ var VisibilityIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityIcon);
53
+ var VisibilityOffIcon__default = /*#__PURE__*/_interopDefaultLegacy(VisibilityOffIcon);
54
+ var Autocomplete__default = /*#__PURE__*/_interopDefaultLegacy(Autocomplete);
55
+ var TextField__default = /*#__PURE__*/_interopDefaultLegacy(TextField);
56
+
57
+ var RIGHT_PRODUCTS = 121001;
58
+ var RIGHT_HEALTHFACILITIES = 121101;
59
+ var RIGHT_PRICELISTMS = 121201;
60
+ var RIGHT_PRICELISTMI = 121301;
61
+ var RIGHT_MEDICALSERVICES = 121401;
62
+ var RIGHT_MEDICALITEMS = 122101;
63
+ var RIGHT_ENROLMENTOFFICER = 121501;
64
+ var RIGHT_CLAIMADMINISTRATOR = 121601;
65
+ var RIGHT_LOCATIONS = 121901;
66
+ var RIGHT_USERS = 121701;
67
+ var RIGHT_USER_ADD = 121702;
68
+ var RIGHT_USER_EDIT = 121703;
69
+ var RIGHT_USER_DELETE = 121704;
70
+ var INTERACTIVE_USER_TYPE = "INTERACTIVE";
71
+ var ENROLMENT_OFFICER_USER_TYPE = "OFFICER";
72
+ var OFFICER_ROLE_IS_SYSTEM = 1;
73
+ var CLAIM_ADMIN_USER_TYPE = "CLAIM_ADMIN";
74
+ var CLAIM_ADMIN_IS_SYSTEM = 256;
75
+ var MODULE_NAME = "user";
76
+ var DEFAULT = {
77
+ RENDER_LAST_NAME_FIRST: true
78
+ };
79
+
80
+ // https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
81
+ var EMAIL_REGEX_PATTERN = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
82
+ var USER_TYPES = function USER_TYPES(rights) {
83
+ var baseTypes = [INTERACTIVE_USER_TYPE];
84
+ if (rights.includes(RIGHT_ENROLMENTOFFICER)) {
85
+ baseTypes.push(ENROLMENT_OFFICER_USER_TYPE);
86
+ if (rights.includes(RIGHT_CLAIMADMINISTRATOR)) {
87
+ baseTypes.push(CLAIM_ADMIN_USER_TYPE);
88
+ }
89
+ }
90
+ return baseTypes;
91
+ };
92
+
93
+ function _callSuper$4(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$4() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
94
+ function _isNativeReflectConstruct$4() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$4 = function _isNativeReflectConstruct() { return !!t; })(); }
95
+ var ADMIN_MAIN_MENU_CONTRIBUTION_KEY = "admin.MainMenu";
96
+ var ADMIN_VOUCHER_MAIN_MENU_CONTRIBUTION_KEY = "admin.voucher.MainMenu";
97
+ var AdminMainMenu = /*#__PURE__*/function (_Component) {
98
+ function AdminMainMenu(props) {
99
+ var _this;
100
+ _classCallCheck__default["default"](this, AdminMainMenu);
101
+ _this = _callSuper$4(this, AdminMainMenu, [props]);
102
+ _this.isWorker = props.modulesManager.getConf("fe-core", "isWorker", false);
103
+ return _this;
104
+ }
105
+ _inherits__default["default"](AdminMainMenu, _Component);
106
+ return _createClass__default["default"](AdminMainMenu, [{
107
+ key: "render",
108
+ value: function render() {
109
+ var rights = this.props.rights;
110
+ var entries = [];
111
+ if (this.isWorker) {
112
+ if (rights.includes(RIGHT_USERS)) {
113
+ entries.push({
114
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.users"),
115
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Person, null),
116
+ route: "/admin/users",
117
+ id: "admin.users"
118
+ });
119
+ }
120
+ entries.push.apply(entries, _toConsumableArray__default["default"](this.props.modulesManager.getContribs(ADMIN_VOUCHER_MAIN_MENU_CONTRIBUTION_KEY).filter(function (c) {
121
+ return !c.filter || c.filter(rights);
122
+ })));
123
+ if (!entries.length) return null;
124
+ return /*#__PURE__*/React__default["default"].createElement(feCore.MainMenuContribution, _extends__default["default"]({}, this.props, {
125
+ header: feCore.formatMessage(this.props.intl, "admin", "mainMenu"),
126
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocationCity, null),
127
+ entries: entries,
128
+ menuId: "AdminMainMenu"
129
+ }));
130
+ }
131
+ if (rights.includes(RIGHT_PRODUCTS)) {
132
+ entries.push({
133
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.products"),
134
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Tune, null),
135
+ route: "/admin/products",
136
+ id: "admin.products"
137
+ });
138
+ }
139
+ if (rights.includes(RIGHT_HEALTHFACILITIES)) {
140
+ entries.push({
141
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.healthFacilities"),
142
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocalHospital, null),
143
+ route: "/location/healthFacilities",
144
+ withDivider: true,
145
+ id: "admin.healthFacilities"
146
+ });
147
+ }
148
+ if (rights.includes(RIGHT_PRICELISTMS)) {
149
+ entries.push({
150
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.medicalServicesPrices"),
151
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.HealingOutlined, null),
152
+ route: "/medical/pricelists/services",
153
+ id: "admin.services"
154
+ });
155
+ }
156
+ if (rights.includes(RIGHT_PRICELISTMI)) {
157
+ entries.push({
158
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.medicalItemsPrices"),
159
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocalPharmacyOutlined, null),
160
+ route: "/medical/pricelists/items",
161
+ id: "admin.items",
162
+ withDivider: true
163
+ });
164
+ }
165
+ if (rights.includes(RIGHT_MEDICALSERVICES)) {
166
+ entries.push({
167
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.medicalServices"),
168
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Healing, null),
169
+ route: "/medical/medicalServices",
170
+ id: "admin.medicalServices"
171
+ });
172
+ }
173
+ if (rights.includes(RIGHT_MEDICALITEMS)) {
174
+ entries.push({
175
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.medicalItems"),
176
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocalPharmacy, null),
177
+ route: "/medical/medicalItems",
178
+ withDivider: true,
179
+ id: "admin.medicalItems"
180
+ });
181
+ }
182
+ if (rights.includes(RIGHT_USERS)) {
183
+ entries.push({
184
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.users"),
185
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Person, null),
186
+ route: "/admin/users",
187
+ id: "admin.users"
188
+ });
189
+ }
190
+ if (rights.includes(RIGHT_LOCATIONS)) {
191
+ entries.push({
192
+ text: feCore.formatMessage(this.props.intl, "admin", "menu.locations"),
193
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.PinDrop, null),
194
+ route: "/location/locations",
195
+ id: "admin.locations"
196
+ });
197
+ }
198
+ entries.push.apply(entries, _toConsumableArray__default["default"](this.props.modulesManager.getContribs(ADMIN_MAIN_MENU_CONTRIBUTION_KEY).filter(function (c) {
199
+ return !c.filter || c.filter(rights);
200
+ })));
201
+ if (!entries.length) return null;
202
+ return /*#__PURE__*/React__default["default"].createElement(feCore.MainMenuContribution, _extends__default["default"]({}, this.props, {
203
+ header: feCore.formatMessage(this.props.intl, "admin", "mainMenu"),
204
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocationCity, null),
205
+ entries: entries,
206
+ menuId: "AdminMainMenu"
207
+ }));
208
+ }
209
+ }]);
210
+ }(React.Component);
211
+ var mapStateToProps$5 = function mapStateToProps(state) {
212
+ return {
213
+ rights: !!state.core && !!state.core.user && !!state.core.user.i_user ? state.core.user.i_user.rights : []
214
+ };
215
+ };
216
+ var AdminMainMenu$1 = feCore.withModulesManager(reactIntl.injectIntl(reactRedux.connect(mapStateToProps$5)(AdminMainMenu)));
217
+
218
+ function ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
219
+ function _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
220
+ var addUserType = function addUserType(user, userType) {
221
+ if (!user.userTypes.includes(userType)) {
222
+ user.userTypes = [].concat(_toConsumableArray__default["default"](user.userTypes), [userType]);
223
+ }
224
+ };
225
+ function checkRolesAndGetUserTypes(user) {
226
+ var _tempUser$roles, _tempUser$roles2;
227
+ if (!user) return console.warn("User not provided in checkRolesAndGetUserTypes function!");
228
+ var tempUser = user;
229
+ var initialUserTypes = [INTERACTIVE_USER_TYPE];
230
+ if (!tempUser.roles) {
231
+ tempUser.userTypes = initialUserTypes;
232
+ }
233
+ if ((_tempUser$roles = tempUser.roles) !== null && _tempUser$roles !== void 0 && _tempUser$roles.some(function (role) {
234
+ return role.isSystem === CLAIM_ADMIN_IS_SYSTEM;
235
+ })) {
236
+ addUserType(tempUser, CLAIM_ADMIN_USER_TYPE);
237
+ }
238
+ if ((_tempUser$roles2 = tempUser.roles) !== null && _tempUser$roles2 !== void 0 && _tempUser$roles2.some(function (role) {
239
+ return role.isSystem === OFFICER_ROLE_IS_SYSTEM;
240
+ })) {
241
+ addUserType(tempUser, ENROLMENT_OFFICER_USER_TYPE);
242
+ }
243
+ return tempUser.userTypes;
244
+ }
245
+ var mapQueriesUserToStore = function mapQueriesUserToStore(u) {
246
+ // TODO: make this more generic
247
+ u.hasLogin = false;
248
+ u.userTypes = checkRolesAndGetUserTypes(u);
249
+ if (u.iUser) {
250
+ u.hasLogin = true;
251
+ u.lastName = u.iUser.lastName;
252
+ u.otherNames = u.iUser.otherNames;
253
+ u.email = u.iUser.email;
254
+ u.phoneNumber = u.iUser.phone;
255
+ u.healthFacility = u.iUser.healthFacility;
256
+ u.language = u.iUser.languageId;
257
+ u.roles = u.iUser.roles;
258
+ u.districts = u.iUser.districts.map(function (d) {
259
+ return d.location;
260
+ });
261
+ }
262
+ if (u.claimAdmin) {
263
+ var _u$email;
264
+ u.hasLogin = u.hasLogin || u.claimAdmin.hasLogin;
265
+ u.lastName = u.claimAdmin.lastName;
266
+ u.otherNames = u.claimAdmin.otherNames;
267
+ u.email = (_u$email = u.email) !== null && _u$email !== void 0 ? _u$email : u.claimAdmin.emailId;
268
+ u.phoneNumber = u.claimAdmin.phone;
269
+ u.birthDate = u.claimAdmin.dob;
270
+ u.healthFacility = u.claimAdmin.healthFacility;
271
+ }
272
+ if (u.officer) {
273
+ var _u$email2;
274
+ u.hasLogin = u.hasLogin || u.officer.hasLogin;
275
+ u.lastName = u.officer.lastName;
276
+ u.otherNames = u.officer.otherNames;
277
+ u.email = (_u$email2 = u.email) !== null && _u$email2 !== void 0 ? _u$email2 : u.officer.email;
278
+ u.phoneNumber = u.officer.phone;
279
+ u.birthDate = u.officer.dob;
280
+ u.address = u.officer.address;
281
+ u.substitutionOfficer = u.officer.substitutionOfficer;
282
+ // substitutionOfficer is user.officer so it cannot be retrieved using the UserPicker
283
+ u.worksTo = u.officer.worksTo;
284
+ u.location = u.officer.location;
285
+ u.officerVillages = u.officer.officerVillages.map(function (x) {
286
+ return x.location;
287
+ });
288
+ }
289
+ return u;
290
+ };
291
+ var mapUserValuesToInput = function mapUserValuesToInput(values) {
292
+ var _values$substitutionO, _values$officerVillag;
293
+ var input = {
294
+ uuid: values.id ? feCore.decodeId(values.id) : null,
295
+ username: values.username,
296
+ userTypes: values.userTypes,
297
+ lastName: values.lastName,
298
+ otherNames: values.otherNames,
299
+ phone: values.phoneNumber,
300
+ email: values.email,
301
+ password: values.password,
302
+ healthFacilityId: values.healthFacility ? feCore.decodeId(values.healthFacility.id) : null,
303
+ districts: values.districts.map(function (d) {
304
+ return feCore.decodeId(d.id);
305
+ }),
306
+ locationId: values.location ? feCore.decodeId(values.location.id) : null,
307
+ language: values.language,
308
+ roles: values.roles.map(function (r) {
309
+ return feCore.decodeId(r.id);
310
+ }),
311
+ birthDate: values.birthDate,
312
+ address: values.address,
313
+ substitutionOfficerId: (_values$substitutionO = values.substitutionOfficer) !== null && _values$substitutionO !== void 0 && _values$substitutionO.id ? feCore.decodeId(values.substitutionOfficer.id) : null,
314
+ worksTo: values.worksTo,
315
+ villageIds: (_values$officerVillag = values.officerVillages) === null || _values$officerVillag === void 0 ? void 0 : _values$officerVillag.map(function (location) {
316
+ return feCore.decodeId(location.id);
317
+ })
318
+ };
319
+ return input;
320
+ };
321
+ var toggleUserType = function toggleUserType(user, type) {
322
+ if (!user.userTypes) {
323
+ user.userTypes = [];
324
+ }
325
+ if (user.userTypes.includes(type)) {
326
+ user.userTypes = user.userTypes.filter(function (x) {
327
+ return x !== type;
328
+ });
329
+ } else {
330
+ user.userTypes.push(type);
331
+ }
332
+ return user;
333
+ };
334
+ var toggleUserRoles = function toggleUserRoles(edited, data, isValid, isEnabled, hasRole, onEditedChanged, roleIsSystem) {
335
+ var _edited$roles, _data$role$edges;
336
+ var roles = (_edited$roles = edited === null || edited === void 0 ? void 0 : edited.roles) !== null && _edited$roles !== void 0 ? _edited$roles : [];
337
+ var role = data === null || data === void 0 || (_data$role$edges = data.role.edges) === null || _data$role$edges === void 0 ? void 0 : _data$role$edges[0].node;
338
+ if (isValid && isEnabled && !hasRole) {
339
+ roles.push(role);
340
+ edited.roles = roles;
341
+ onEditedChanged(_objectSpread$7({}, edited));
342
+ } else if (isValid && !isEnabled) {
343
+ var filteredRoles = roles.filter(function (tempRole) {
344
+ return tempRole.isSystem !== roleIsSystem;
345
+ });
346
+ edited.roles = filteredRoles;
347
+ onEditedChanged(_objectSpread$7({}, edited));
348
+ }
349
+ };
350
+ var toggleSwitchButton = function toggleSwitchButton(edited, hasRole, hasUserType, setIsEnabled, onEditedChanged, userType) {
351
+ if (hasRole) {
352
+ setIsEnabled(function () {
353
+ return true;
354
+ });
355
+ onEditedChanged(toggleUserType(edited, userType));
356
+ } else {
357
+ setIsEnabled(function () {
358
+ return false;
359
+ });
360
+ if (hasUserType) {
361
+ onEditedChanged(toggleUserType(edited, userType));
362
+ }
363
+ }
364
+ };
365
+ var fetchSubstitutionEOs = function fetchSubstitutionEOs(dispatch, mm, officerUuid, searchString, villages) {
366
+ dispatch(fetchSubstitutionEnrolmentOfficers(mm, {
367
+ officerUuid: officerUuid,
368
+ first: searchString ? undefined : 15,
369
+ villagesUuids: villages === null || villages === void 0 ? void 0 : villages.map(function (village) {
370
+ return village.uuid;
371
+ }),
372
+ str: searchString
373
+ }));
374
+ };
375
+
376
+ var USER_SUMMARY_PROJECTION = ["id", "username", "officer{id,dob,phone,lastName,otherNames,email}", "iUser{id,phone,lastName,otherNames,email,roles{id,name}}", "claimAdmin{id,phone,lastName,otherNames,emailId,dob}", "validityTo", "clientMutationId"];
377
+ var DISTRICT_DATA_FETCH_PARAMS = "id, uuid, code, name, parent { id, uuid, name, code }";
378
+ var USER_PICKER_PROJECTION = ["id", "username", "iUser{id otherNames lastName}"];
379
+ function fetchUsers(mm) {
380
+ var filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
381
+ var restrictHealthFacility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
382
+ return function (dispatch, getState) {
383
+ if (restrictHealthFacility) {
384
+ var state = getState();
385
+ var hf = state.loc.userHealthFacilityFullPath;
386
+ if (hf) {
387
+ filters.push("healthFacilityId: ".concat(feCore.decodeId(hf.id)));
388
+ }
389
+ }
390
+ var payload = feCore.formatPageQuery("users", filters, mm.getRef("admin.UserPicker.projection"));
391
+ return dispatch(feCore.graphql(payload, "ADMIN_USERS", filters));
392
+ };
393
+ }
394
+ function fetchUsersSummaries(mm, filters) {
395
+ var payload = feCore.formatPageQueryWithCount("users", filters, USER_SUMMARY_PROJECTION);
396
+ return feCore.graphql(payload, "ADMIN_USERS_SUMMARIES");
397
+ }
398
+ function fetchEnrolmentOfficers(mm, variables) {
399
+ return feCore.graphqlWithVariables("\n query ($searchString: String, $first: Int) {\n enrolmentOfficers(str: $searchString, first: $first) {\n edges {\n node {\n id\n code\n lastName\n otherNames\n\n }\n }\n pageInfo {\n hasNextPage\n }\n }\n }\n ", variables, "ADMIN_ENROLMENT_OFFICERS");
400
+ }
401
+ function fetchSubstitutionEnrolmentOfficers(mm, variables) {
402
+ return feCore.graphqlWithVariables("\n query SubstitutionEnrolmentOfficers ($str: String, $villagesUuids: [String!], $officerUuid: String) {\n substitutionEnrolmentOfficers(str: $str, villagesUuids: $villagesUuids, officerUuid: $officerUuid) {\n edges {\n node {\n id\n uuid\n code\n lastName\n otherNames\n }\n }\n }\n }\n ", variables, "ADMIN_SUBSTITUTION_ENROLMENT_OFFICERS");
403
+ }
404
+ function createUser(mm, user, clientMutationLabel) {
405
+ var mutation = feCore.prepareMutation("\n mutation ($input: CreateUserMutationInput!) {\n createUser(input: $input) {\n clientMutationId\n internalId\n }\n }\n ", mapUserValuesToInput(user), {
406
+ clientMutationLabel: clientMutationLabel
407
+ });
408
+
409
+ // eslint-disable-next-line no-param-reassign
410
+ user.clientMutationId = mutation.clientMutationId;
411
+ return feCore.graphqlWithVariables(mutation.operation, mutation.variables, ["ADMIN_USER_MUTATION_REQ", "ADMIN_USER_CREATE_RESP", "ADMIN_USER_MUTATION_ERR"], {
412
+ clientMutationId: mutation.clientMutationId,
413
+ clientMutationLabel: clientMutationLabel
414
+ });
415
+ }
416
+ function updateUser(mm, user, clientMutationLabel) {
417
+ var mutation = feCore.prepareMutation("\n mutation ($input: UpdateUserMutationInput!) {\n updateUser(input: $input) {\n clientMutationId\n internalId\n }\n }\n ", mapUserValuesToInput(user), {
418
+ clientMutationLabel: clientMutationLabel
419
+ });
420
+
421
+ // eslint-disable-next-line no-param-reassign
422
+ user.clientMutationId = mutation.clientMutationId;
423
+ return feCore.graphqlWithVariables(mutation.operation, mutation.variables, ["ADMIN_USER_MUTATION_REQ", "ADMIN_USER_UPDATE_RESP", "ADMIN_USER_MUTATION_ERR"], {
424
+ clientMutationId: mutation.clientMutationId,
425
+ clientMutationLabel: clientMutationLabel,
426
+ userId: user.id
427
+ });
428
+ }
429
+ function deleteUser(mm, user, clientMutationLabel) {
430
+ var mutation = feCore.formatMutation("deleteUser", "uuids: [\"".concat(feCore.decodeId(user.id), "\"]"), clientMutationLabel);
431
+ // eslint-disable-next-line no-param-reassign
432
+ user.clientMutationId = mutation.clientMutationId;
433
+ return function (dispatch) {
434
+ dispatch(feCore.graphql(mutation.payload, ["ADMIN_USER_MUTATION_REQ", "ADMIN_USER_DELETE_RESP", "ADMIN_USER_MUTATION_ERR"], {
435
+ clientMutationId: mutation.clientMutationId,
436
+ clientMutationLabel: clientMutationLabel,
437
+ userId: user.id
438
+ }));
439
+ dispatch(feCore.fetchMutation(mutation.clientMutationId));
440
+ };
441
+ }
442
+ function fetchUser(mm, userId, clientMutationId) {
443
+ var filters = [];
444
+ if (userId) {
445
+ filters.push("id: \"".concat(feCore.decodeId(userId), "\""));
446
+ filters.push("showDeleted: true");
447
+ } else if (clientMutationId) {
448
+ filters.push("clientMutationId: \"".concat(clientMutationId, "\""));
449
+ }
450
+ return feCore.graphql("\n {\n users(".concat(filters.join(" "), ") {\n pageInfo { hasNextPage, hasPreviousPage, startCursor, endCursor}\n edges {\n node {\n clientMutationId\n id\n username\n validityTo\n officer {\n id\n uuid\n hasLogin\n phone\n dob\n lastName\n otherNames\n address\n substitutionOfficer { id lastName otherNames code }\n worksTo\n officerVillages {\n id\n location {\n id\n name\n code\n uuid\n parent {\n id\n name\n code\n uuid\n }\n }\n }\n location {\n id\n name\n uuid\n code\n parent {\n id\n name\n uuid\n code\n }\n }\n }\n iUser {\n id\n phone\n languageId\n lastName\n otherNames\n roles { id name isSystem}\n healthFacility ").concat(mm.getProjection("location.HealthFacilityPicker.projection"), "\n validityFrom\n validityTo\n email\n districts: userdistrictSet { location { id name code uuid parent { id code uuid name }}}\n }\n claimAdmin{\n id\n hasLogin\n emailId\n phone\n dob\n lastName\n otherNames\n healthFacility ").concat(mm.getProjection("location.HealthFacilityPicker.projection"), "\n\n }\n }\n }\n }\n }\n "), "ADMIN_USER_OVERVIEW");
451
+ }
452
+ function fetchUserMutation(mm, clientMutationId) {
453
+ var payload = feCore.formatPageQuery("mutationLogs", ["clientMutationId:\"".concat(clientMutationId, "\"")], ["id", "status", "users{coreUser{id}}"]);
454
+ return feCore.graphql(payload, "ADMIN_USER");
455
+ }
456
+ function fetchRegionDistricts(parent) {
457
+ var filters = ["type: \"D\""];
458
+ if (parent) {
459
+ filters.push("parent_Uuid: \"".concat(parent.uuid, "\""));
460
+ }
461
+ var payload = feCore.formatPageQuery("locations", filters, ["id", "uuid", "type", "code", "name", "malePopulation", "femalePopulation", "otherPopulation", "families", "clientMutationId"]);
462
+ return feCore.graphql(payload, "LOCATION_REGION_DISTRICTS");
463
+ }
464
+ function fetchDataFromDistrict(districtUuids) {
465
+ var filters = [];
466
+ if (districtUuids) {
467
+ filters.push("parent_Uuid_In: [\"".concat(districtUuids.join('", "'), "\"]"));
468
+ }
469
+ var payload = feCore.formatPageQuery("locations", filters, ["".concat(DISTRICT_DATA_FETCH_PARAMS, ", children { edges {node {").concat(DISTRICT_DATA_FETCH_PARAMS, "}}}")]);
470
+ return feCore.graphql(payload, "LOCATION_DISTRICT_DATA");
471
+ }
472
+ function fetchObligatoryUserFields() {
473
+ var payload = "query userObligatoryFields {userObligatoryFields}";
474
+ return feCore.graphql(payload, "OBLIGTORY_USER_FIELDS");
475
+ }
476
+ function fetchObligatoryEnrolmentOfficerFields() {
477
+ var payload = "query userObligatoryFields {eoObligatoryFields}";
478
+ return feCore.graphql(payload, "OBLIGTORY_EO_FIELDS");
479
+ }
480
+ function clearDistrictData() {
481
+ return function (dispatch) {
482
+ dispatch({
483
+ type: "LOCATION_DISTRICT_DATA_CLEAR"
484
+ });
485
+ };
486
+ }
487
+ function usernameValidationCheck(mm, variables) {
488
+ return feCore.graphqlWithVariables("\n query ($username: String!) {\n isValid: validateUsername(username: $username)\n }\n ", variables, "USERNAME_FIELDS_VALIDATION");
489
+ }
490
+ function fetchUsernameLength() {
491
+ var payload = "query {usernameLength}";
492
+ return feCore.graphql(payload, "USERNAME_LENGTH_FIELDS");
493
+ }
494
+ function fetchPasswordPolicy() {
495
+ var payload = "query {\n passwordPolicy\n }";
496
+ return feCore.graphql(payload, "PASSWORD_POLICY_FIELDS");
497
+ }
498
+ function usernameValidationClear() {
499
+ return function (dispatch) {
500
+ dispatch({
501
+ type: "USERNAME_FIELDS_VALIDATION_CLEAR"
502
+ });
503
+ };
504
+ }
505
+ function setUsernameValid() {
506
+ return function (dispatch) {
507
+ dispatch({
508
+ type: "USERNAME_FIELDS_VALIDATION_SET_VALID"
509
+ });
510
+ };
511
+ }
512
+ function clearUser() {
513
+ return function (dispatch) {
514
+ dispatch({
515
+ type: "ADMIN_USER_OVERVIEW_CLEAR"
516
+ });
517
+ };
518
+ }
519
+ function userEmailValidationCheck(mm, variables) {
520
+ return feCore.graphqlWithVariables("\n query ($userEmail: String!) {\n isValid: validateUserEmail(userEmail: $userEmail)\n }\n ", variables, "USER_EMAIL_FIELDS_VALIDATION");
521
+ }
522
+ function userEmailValidationClear() {
523
+ return function (dispatch) {
524
+ dispatch({
525
+ type: "USER_EMAIL_FIELDS_VALIDATION_CLEAR"
526
+ });
527
+ };
528
+ }
529
+ function setUserEmailValid() {
530
+ return function (dispatch) {
531
+ dispatch({
532
+ type: "USER_EMAIL_FIELDS_VALIDATION_SET_VALID"
533
+ });
534
+ };
535
+ }
536
+ function saveEmailFormatValidity(isFormatInvalid) {
537
+ return function (dispatch) {
538
+ dispatch({
539
+ type: "USER_EMAIL_FORMAT_VALIDATION_CHECK",
540
+ payload: {
541
+ data: {
542
+ isFormatInvalid: isFormatInvalid
543
+ }
544
+ }
545
+ });
546
+ };
547
+ }
548
+
549
+ function ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
550
+ function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
551
+ function _callSuper$3(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$3() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
552
+ function _isNativeReflectConstruct$3() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$3 = function _isNativeReflectConstruct() { return !!t; })(); }
553
+ var styles$9 = function styles(theme) {
554
+ return {
555
+ dialogTitle: theme.dialog.title,
556
+ dialogContent: theme.dialog.content,
557
+ form: {
558
+ padding: "0 0 10px 0",
559
+ width: "100%"
560
+ },
561
+ item: {
562
+ padding: theme.spacing(1)
563
+ },
564
+ paperDivider: theme.paper.divider
565
+ };
566
+ };
567
+ var extractLocations = function extractLocations(locations) {
568
+ var locationsArray = Object.values(locations).map(function (l) {
569
+ return l.value;
570
+ });
571
+ var region = locationsArray.find(function (l) {
572
+ return !l.parent;
573
+ });
574
+ var district = region && locationsArray.find(function (l) {
575
+ return l.parent && l.parent.id === region.id;
576
+ });
577
+ var municipality = district && locationsArray.find(function (l) {
578
+ return l.parent && l.parent.id === district.id;
579
+ });
580
+ var village = municipality && locationsArray.find(function (l) {
581
+ return l.parent && l.parent.id === municipality.id;
582
+ });
583
+ return {
584
+ region: region,
585
+ district: district,
586
+ municipality: municipality,
587
+ village: village
588
+ };
589
+ };
590
+ var getParentLocation = function getParentLocation(locations) {
591
+ var extractedLocations = extractLocations(locations);
592
+ var region = extractedLocations.region,
593
+ district = extractedLocations.district,
594
+ municipality = extractedLocations.municipality,
595
+ village = extractedLocations.village;
596
+ if (!region) {
597
+ return null;
598
+ }
599
+ var newLocation = {
600
+ key: "regionId",
601
+ id: feCore.decodeId(region.id),
602
+ value: region
603
+ };
604
+ if (district) {
605
+ newLocation = {
606
+ key: "districtId",
607
+ id: feCore.decodeId(district.id),
608
+ value: district
609
+ };
610
+ }
611
+ if (municipality) {
612
+ newLocation = {
613
+ key: "municipalityId",
614
+ id: feCore.decodeId(municipality.id),
615
+ value: municipality
616
+ };
617
+ }
618
+ if (village) {
619
+ newLocation = {
620
+ key: "villageId",
621
+ id: feCore.decodeId(village.id),
622
+ value: village
623
+ };
624
+ }
625
+ return newLocation;
626
+ };
627
+ var UserFilter = /*#__PURE__*/function (_Component) {
628
+ function UserFilter(props) {
629
+ var _this;
630
+ _classCallCheck__default["default"](this, UserFilter);
631
+ _this = _callSuper$3(this, UserFilter, [props]);
632
+ _defineProperty__default["default"](_this, "state", {
633
+ locationFilters: {},
634
+ selectedDistrict: {}
635
+ });
636
+ _defineProperty__default["default"](_this, "debouncedOnChangeFilter", _debounce__default["default"](_this.props.onChangeFilters, _this.props.modulesManager.getConf("fe-admin", "debounceTime", 200)));
637
+ _defineProperty__default["default"](_this, "filterValue", function (k) {
638
+ var filters = _this.props.filters;
639
+ return !!filters && !!filters[k] ? filters[k].value : null;
640
+ });
641
+ _defineProperty__default["default"](_this, "filterTextFieldValue", function (k) {
642
+ var filters = _this.props.filters;
643
+ return !!filters && !!filters[k] ? filters[k].value : "";
644
+ });
645
+ _defineProperty__default["default"](_this, "filterDistrict", function (locations) {
646
+ var extractedLocations = extractLocations(locations);
647
+ var district = extractedLocations.district;
648
+ return district;
649
+ });
650
+ _defineProperty__default["default"](_this, "onChangeCheckbox", function (key, value) {
651
+ var filters = [{
652
+ id: key,
653
+ value: value,
654
+ filter: "".concat(key, ": ").concat(value)
655
+ }];
656
+ _this.props.onChangeFilters(filters);
657
+ });
658
+ _defineProperty__default["default"](_this, "onChangeUserTypes", function (currentUserType) {
659
+ var onChangeFilters = _this.props.onChangeFilters;
660
+ onChangeFilters([{
661
+ id: "userTypes",
662
+ value: currentUserType,
663
+ filter: currentUserType ? "userTypes: [".concat(currentUserType, "]") : []
664
+ }]);
665
+ });
666
+ _defineProperty__default["default"](_this, "onChangeUserRoles", function (currentUserRoles) {
667
+ var onChangeFilters = _this.props.onChangeFilters;
668
+ _this.setState({
669
+ currentUserRoles: currentUserRoles
670
+ });
671
+ onChangeFilters([{
672
+ id: "roles",
673
+ value: currentUserRoles,
674
+ filter: currentUserRoles ? "roles: [".concat(currentUserRoles.map(function (ur) {
675
+ return feCore.decodeId(ur.id);
676
+ }).join(","), "]") : []
677
+ }]);
678
+ });
679
+ _defineProperty__default["default"](_this, "onChangeLocation", function (newLocationFilters) {
680
+ var onChangeFilters = _this.props.onChangeFilters;
681
+ var locationFilters = _objectSpread$6({}, _this.state.locationFilters);
682
+ newLocationFilters.forEach(function (filter) {
683
+ if (filter.value === null) {
684
+ delete locationFilters[filter.id];
685
+ } else {
686
+ locationFilters[filter.id] = {
687
+ value: filter.value,
688
+ filter: filter.filter
689
+ };
690
+ }
691
+ });
692
+ var selectedDistrict = _this.filterDistrict(locationFilters);
693
+ _this.setState({
694
+ locationFilters: locationFilters,
695
+ selectedDistrict: selectedDistrict
696
+ });
697
+ var parentLocation = getParentLocation(locationFilters);
698
+ var filters = [{
699
+ id: "parentLocation",
700
+ filter: parentLocation && "".concat(parentLocation.key, ": ").concat(parentLocation.id)
701
+ }];
702
+ onChangeFilters(filters);
703
+ });
704
+ _defineProperty__default["default"](_this, "renderLastNameField", function (classes) {
705
+ return /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
706
+ module: "admin",
707
+ id: "userFilter.LastName",
708
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
709
+ item: true,
710
+ xs: 3,
711
+ className: classes.item
712
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
713
+ module: "user",
714
+ label: "admin.user.lastName",
715
+ name: "lastName",
716
+ value: _this.filterTextFieldValue("lastName"),
717
+ onChange: function onChange(v) {
718
+ return _this.debouncedOnChangeFilter([{
719
+ id: "lastName",
720
+ value: v,
721
+ filter: "lastName: \"".concat(v, "\"")
722
+ }]);
723
+ }
724
+ }))
725
+ });
726
+ });
727
+ _defineProperty__default["default"](_this, "renderGivenNameField", function (classes) {
728
+ return /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
729
+ module: "admin",
730
+ id: "userFilter.OtherNames",
731
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
732
+ item: true,
733
+ xs: 3,
734
+ className: classes.item
735
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
736
+ module: "user",
737
+ label: "admin.user.otherNames",
738
+ name: "otherNames",
739
+ value: _this.filterTextFieldValue("otherNames"),
740
+ onChange: function onChange(v) {
741
+ return _this.debouncedOnChangeFilter([{
742
+ id: "otherNames",
743
+ value: v,
744
+ filter: "otherNames: \"".concat(v, "\"")
745
+ }]);
746
+ }
747
+ }))
748
+ });
749
+ });
750
+ _this.renderLastNameFirst = props.modulesManager.getConf("fe-insuree", "renderLastNameFirst", DEFAULT.RENDER_LAST_NAME_FIRST);
751
+ return _this;
752
+ }
753
+ _inherits__default["default"](UserFilter, _Component);
754
+ return _createClass__default["default"](UserFilter, [{
755
+ key: "render",
756
+ value: function render() {
757
+ var _this2 = this;
758
+ var _this$props = this.props,
759
+ classes = _this$props.classes;
760
+ _this$props.filters;
761
+ var onChangeFilters = _this$props.onChangeFilters,
762
+ intl = _this$props.intl;
763
+ _this$props.rights;
764
+ var _this$state = this.state;
765
+ _this$state.locationFilters;
766
+ _this$state.currentUserType;
767
+ _this$state.currentUserRoles;
768
+ _this$state.selectedDistrict;
769
+ return /*#__PURE__*/React__default["default"].createElement("section", {
770
+ className: classes.form
771
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
772
+ container: true
773
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
774
+ module: "admin",
775
+ id: "userFilter.userRoles",
776
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
777
+ item: true,
778
+ xs: 3,
779
+ className: classes.item
780
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
781
+ pubRef: "admin.UserRolesPicker",
782
+ value: this.filterValue("roles"),
783
+ onChange: function onChange(v) {
784
+ return _this2.onChangeUserRoles(v);
785
+ }
786
+ }))
787
+ }), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
788
+ module: "admin",
789
+ id: "userFilter.username",
790
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
791
+ item: true,
792
+ xs: 3,
793
+ className: classes.item
794
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
795
+ module: "user",
796
+ label: "admin.user.username",
797
+ name: "username",
798
+ value: this.filterTextFieldValue("username"),
799
+ onChange: function onChange(v) {
800
+ return _this2.debouncedOnChangeFilter([{
801
+ id: "username",
802
+ value: v,
803
+ filter: "username_Icontains: \"".concat(v, "\"")
804
+ }]);
805
+ }
806
+ }))
807
+ }), this.renderLastNameFirst ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, this.renderLastNameField(classes), this.renderGivenNameField(classes)) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, this.renderGivenNameField(classes), this.renderLastNameField(classes)), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
808
+ module: "admin",
809
+ id: "userFilter.Email",
810
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
811
+ item: true,
812
+ xs: 3,
813
+ className: classes.item
814
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
815
+ module: "user",
816
+ label: "admin.user.email",
817
+ name: "email",
818
+ value: this.filterTextFieldValue("email"),
819
+ onChange: function onChange(v) {
820
+ return _this2.debouncedOnChangeFilter([{
821
+ id: "email",
822
+ value: v,
823
+ filter: "email: \"".concat(v, "\"")
824
+ }]);
825
+ }
826
+ }))
827
+ }), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
828
+ module: "admin",
829
+ id: "userFilter.Phone",
830
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
831
+ item: true,
832
+ xs: 3,
833
+ className: classes.item
834
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
835
+ module: "user",
836
+ label: "admin.user.phone",
837
+ name: "phone",
838
+ value: this.filterTextFieldValue("phone"),
839
+ onChange: function onChange(v) {
840
+ return _this2.debouncedOnChangeFilter([{
841
+ id: "phone",
842
+ value: v,
843
+ filter: "phone: \"".concat(v, "\"")
844
+ }]);
845
+ }
846
+ }))
847
+ }), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
848
+ module: "admin",
849
+ id: "UserFilter.dob",
850
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
851
+ item: true,
852
+ xs: 6
853
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
854
+ container: true
855
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
856
+ item: true,
857
+ xs: 6,
858
+ className: classes.item
859
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
860
+ pubRef: "core.DatePicker",
861
+ value: this.filterValue("dobFrom"),
862
+ module: "user",
863
+ label: "admin.user.dobFrom",
864
+ onChange: function onChange(d) {
865
+ return onChangeFilters([{
866
+ id: "dobFrom",
867
+ value: d,
868
+ filter: "birthDateFrom: \"".concat(d, "\"")
869
+ }]);
870
+ }
871
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
872
+ item: true,
873
+ xs: 6,
874
+ className: classes.item
875
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
876
+ pubRef: "core.DatePicker",
877
+ value: this.filterValue("dobTo"),
878
+ module: "user",
879
+ label: "admin.user.dobTo",
880
+ onChange: function onChange(d) {
881
+ return onChangeFilters([{
882
+ id: "dobTo",
883
+ value: d,
884
+ filter: "birthDateTo: \"".concat(d, "\"")
885
+ }]);
886
+ }
887
+ }))))
888
+ }), /*#__PURE__*/React__default["default"].createElement(feCore.ControlledField, {
889
+ module: "policy",
890
+ id: "PolicyFilter.showDeleted",
891
+ field: /*#__PURE__*/React__default["default"].createElement(core.Grid, {
892
+ item: true,
893
+ xs: 2,
894
+ className: classes.item
895
+ }, /*#__PURE__*/React__default["default"].createElement(core.FormControlLabel, {
896
+ control: /*#__PURE__*/React__default["default"].createElement(core.Checkbox, {
897
+ color: "primary",
898
+ checked: !!this.filterValue("showDeleted"),
899
+ onChange: function onChange(event) {
900
+ return _this2.onChangeCheckbox("showDeleted", event.target.checked);
901
+ }
902
+ }),
903
+ label: feCore.formatMessage(intl, "admin", "UserFilter.showDeleted")
904
+ }))
905
+ })));
906
+ }
907
+ }]);
908
+ }(React.Component);
909
+ var mapStateToProps$4 = function mapStateToProps(state) {
910
+ var _state$core$user$i_us, _state$core, _state$core2;
911
+ return {
912
+ rights: (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [],
913
+ module: (_state$core2 = state.core) === null || _state$core2 === void 0 || (_state$core2 = _state$core2.savedPagination) === null || _state$core2 === void 0 ? void 0 : _state$core2.module
914
+ };
915
+ };
916
+ var UserFilter$1 = feCore.withModulesManager(reactRedux.connect(mapStateToProps$4)(reactIntl.injectIntl(styles$a.withTheme(styles$a.withStyles(styles$9)(UserFilter)))));
917
+
918
+ function _callSuper$2(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$2() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
919
+ function _isNativeReflectConstruct$2() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$2 = function _isNativeReflectConstruct() { return !!t; })(); }
920
+ var USER_SEARCHER_CONTRIBUTION_KEY = "user.UserSearcher";
921
+ var styles$8 = function styles(theme) {
922
+ return {
923
+ horizontalButtonContainer: theme.buttonContainer.horizontal
924
+ };
925
+ };
926
+ var UserSearcher = /*#__PURE__*/function (_Component) {
927
+ function UserSearcher(props) {
928
+ var _this;
929
+ _classCallCheck__default["default"](this, UserSearcher);
930
+ _this = _callSuper$2(this, UserSearcher, [props]);
931
+ _defineProperty__default["default"](_this, "state", {
932
+ deleteUser: null,
933
+ params: {},
934
+ defaultParams: {}
935
+ });
936
+ _defineProperty__default["default"](_this, "getHeaders", function () {
937
+ return ["admin.user.username", _this.renderLastNameFirst ? "admin.user.lastName" : "admin.user.otherNames", !_this.renderLastNameFirst ? "admin.user.lastName" : "admin.user.otherNames", "admin.user.email", "admin.user.phone", "admin.user.dob", ""];
938
+ });
939
+ _defineProperty__default["default"](_this, "getSorts", function () {
940
+ return [["username", true], _this.renderLastNameFirst ? ["iUser_LastName", true] : ["iUser_OtherNames", true], !_this.renderLastNameFirst ? ["iUser_LastName", true] : ["iUser_OtherNames", true], ["iUser_Email", true], ["iUser_Phone", true], ["officer__dob", false]];
941
+ });
942
+ _defineProperty__default["default"](_this, "getAligns", function () {
943
+ var aligns = _this.getHeaders().map(function () {
944
+ return null;
945
+ });
946
+ aligns.splice(-1, 1, "right");
947
+ return aligns;
948
+ });
949
+ _defineProperty__default["default"](_this, "fetch", function (params) {
950
+ _this.setState({
951
+ params: params
952
+ });
953
+ if (_this.props.fetchedUserLocation) {
954
+ _this.props.fetchUsersSummaries(_this.props.modulesManager, params);
955
+ }
956
+ });
957
+ _defineProperty__default["default"](_this, "setRegionIds", function (paramsArray) {
958
+ var _this$props$userL0s;
959
+ var regionIds = (_this$props$userL0s = _this.props.userL0s) === null || _this$props$userL0s === void 0 ? void 0 : _this$props$userL0s.map(function (region) {
960
+ return feCore.decodeId(region.id);
961
+ });
962
+ paramsArray.push("regionIds: [".concat(regionIds, "]"));
963
+ });
964
+ _defineProperty__default["default"](_this, "componentDidUpdate", function (prevState) {
965
+ if (prevState.userL0s !== _this.props.userL0s) {
966
+ if (_this.props.userL0s && _this.props.fetchedUserLocation) {
967
+ var prms = _toConsumableArray__default["default"](_this.state.params);
968
+ _this.setRegionIds(prms);
969
+ _this.props.fetchUsersSummaries(_this.props.modulesManager, prms);
970
+ }
971
+ }
972
+ });
973
+ _defineProperty__default["default"](_this, "filtersToQueryParams", function (state) {
974
+ var prms = Object.keys(state.filters).filter(function (contrib) {
975
+ return !!state.filters[contrib].filter;
976
+ }).map(function (contrib) {
977
+ return state.filters[contrib].filter;
978
+ });
979
+ if (!state.beforeCursor && !state.afterCursor) {
980
+ prms.push("first: ".concat(state.pageSize));
981
+ }
982
+ if (state.afterCursor) {
983
+ prms.push("after: \"".concat(state.afterCursor, "\""));
984
+ prms.push("first: ".concat(state.pageSize));
985
+ }
986
+ if (state.beforeCursor) {
987
+ prms.push("before: \"".concat(state.beforeCursor, "\""));
988
+ prms.push("last: ".concat(state.pageSize));
989
+ }
990
+ if (state.orderBy) {
991
+ prms.push("orderBy: [\"".concat(state.orderBy, "\"]"));
992
+ }
993
+ if (_this.props.fetchedUserLocation) {
994
+ _this.setRegionIds(prms);
995
+ }
996
+ return prms;
997
+ });
998
+ _defineProperty__default["default"](_this, "deleteUser", function (isConfirmed) {
999
+ if (!isConfirmed) {
1000
+ _this.setState({
1001
+ deleteUser: null
1002
+ });
1003
+ } else {
1004
+ var user = _this.state.deleteUser;
1005
+ _this.setState({
1006
+ deleteUser: null
1007
+ }, /*#__PURE__*/_asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
1008
+ return _regeneratorRuntime__default["default"].wrap(function (_context) {
1009
+ while (1) switch (_context.prev = _context.next) {
1010
+ case 0:
1011
+ _context.next = 1;
1012
+ return _this.props.deleteUser(_this.props.modulesManager, user, feCore.formatMessage(_this.props.intl, "admin.user", "deleteDialog.title"));
1013
+ case 1:
1014
+ _this.fetch(_this.state.params);
1015
+ case 2:
1016
+ case "end":
1017
+ return _context.stop();
1018
+ }
1019
+ }, _callee);
1020
+ })));
1021
+ }
1022
+ });
1023
+ _defineProperty__default["default"](_this, "getUserItem", function (user, item) {
1024
+ return user.iUser && user.iUser[item] || user.officer && user.officer[item] || user.claimAdmin && user.claimAdmin[item];
1025
+ });
1026
+ _defineProperty__default["default"](_this, "itemFormatters", function () {
1027
+ var formatters = [function (u) {
1028
+ return u.username;
1029
+ }, function (u) {
1030
+ return _this.renderLastNameFirst ? _this.getUserItem(u, "lastName") : _this.getUserItem(u, "otherNames");
1031
+ }, function (u) {
1032
+ return !_this.renderLastNameFirst ? _this.getUserItem(u, "lastName") : _this.getUserItem(u, "otherNames");
1033
+ }, function (u) {
1034
+ return _this.getUserItem(u, "email") || _this.getUserItem(u, "emailId");
1035
+ }, function (u) {
1036
+ return _this.getUserItem(u, "phone");
1037
+ }, function (u) {
1038
+ return (u.claimAdmin || u.officer) && feCore.formatDateFromISO(_this.props.modulesManager, _this.props.intl, _this.getUserItem(u, "dob"));
1039
+ }, function (u) {
1040
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1041
+ className: _this.props.classes.horizontalButtonContainer
1042
+ }, /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
1043
+ title: feCore.formatMessage(_this.props.intl, "admin.user", "openNewTab")
1044
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
1045
+ onClick: function onClick() {
1046
+ return _this.props.onDoubleClick(u, true);
1047
+ }
1048
+ }, /*#__PURE__*/React__default["default"].createElement(icons.Tab, null))), _this.props.rights.includes(RIGHT_USER_DELETE) && u.validityTo ? null : /*#__PURE__*/React__default["default"].createElement(core.Tooltip, {
1049
+ title: feCore.formatMessage(_this.props.intl, "admin.user", "deleteUser.tooltip")
1050
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
1051
+ onClick: function onClick() {
1052
+ return _this.setState({
1053
+ deleteUser: u
1054
+ });
1055
+ },
1056
+ disabled: u.validityTo
1057
+ }, /*#__PURE__*/React__default["default"].createElement(icons.Delete, null))));
1058
+ }];
1059
+ return formatters;
1060
+ });
1061
+ _this.renderLastNameFirst = props.modulesManager.getConf("fe-insuree", "renderLastNameFirst", DEFAULT.RENDER_LAST_NAME_FIRST);
1062
+ return _this;
1063
+ }
1064
+ _inherits__default["default"](UserSearcher, _Component);
1065
+ return _createClass__default["default"](UserSearcher, [{
1066
+ key: "render",
1067
+ value: function render() {
1068
+ var _usersPageInfo$totalC;
1069
+ var _this$props = this.props,
1070
+ intl = _this$props.intl,
1071
+ users = _this$props.users,
1072
+ usersPageInfo = _this$props.usersPageInfo,
1073
+ fetchingUsers = _this$props.fetchingUsers,
1074
+ fetchedUsers = _this$props.fetchedUsers,
1075
+ errorUsers = _this$props.errorUsers,
1076
+ cacheFiltersKey = _this$props.cacheFiltersKey,
1077
+ onDoubleClick = _this$props.onDoubleClick;
1078
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, this.state.deleteUser && /*#__PURE__*/React__default["default"].createElement(feCore.ConfirmDialog, {
1079
+ confirm: {
1080
+ title: feCore.formatMessage(intl, "admin.user", "deleteDialog.title"),
1081
+ message: feCore.formatMessage(intl, "admin.user", "deleteDialog.message")
1082
+ },
1083
+ onConfirm: this.deleteUser
1084
+ }), /*#__PURE__*/React__default["default"].createElement(feCore.Searcher, {
1085
+ module: "user",
1086
+ cacheFiltersKey: cacheFiltersKey,
1087
+ FilterPane: UserFilter$1,
1088
+ items: users,
1089
+ itemsPageInfo: usersPageInfo,
1090
+ fetchingItems: fetchingUsers,
1091
+ fetchedItems: fetchedUsers,
1092
+ errorItems: errorUsers,
1093
+ contributionKey: USER_SEARCHER_CONTRIBUTION_KEY,
1094
+ tableTitle: feCore.formatMessageWithValues(intl, "admin.user", "userSummaries", {
1095
+ count: (_usersPageInfo$totalC = usersPageInfo.totalCount) === null || _usersPageInfo$totalC === void 0 ? void 0 : _usersPageInfo$totalC.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,")
1096
+ }),
1097
+ fetch: this.fetch,
1098
+ rowIdentifier: function rowIdentifier(r) {
1099
+ return r.uuid;
1100
+ },
1101
+ filtersToQueryParams: this.filtersToQueryParams,
1102
+ defaultOrderBy: "-username",
1103
+ headers: this.getHeaders,
1104
+ aligns: this.getAligns,
1105
+ itemFormatters: this.itemFormatters,
1106
+ sorts: this.getSorts,
1107
+ rowDisabled: function rowDisabled(_, i) {
1108
+ return i.validityTo || i.clientMutationId;
1109
+ },
1110
+ rowLocked: function rowLocked(_, i) {
1111
+ return i.clientMutationId;
1112
+ },
1113
+ onDoubleClick: onDoubleClick
1114
+ }));
1115
+ }
1116
+ }]);
1117
+ }(React.Component);
1118
+ var mapStateToProps$3 = function mapStateToProps(state) {
1119
+ var _state$core$i_user$ri, _state$core, _state$loc$userL0s;
1120
+ return {
1121
+ rights: (_state$core$i_user$ri = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$i_user$ri !== void 0 ? _state$core$i_user$ri : [],
1122
+ users: state.admin.usersSummaries.items,
1123
+ usersPageInfo: state.admin.usersSummaries.pageInfo,
1124
+ fetchingUsers: state.admin.usersSummaries.isFetching,
1125
+ fetchedUsers: state.admin.usersSummaries.fetched,
1126
+ errorUsers: state.admin.usersSummaries.error,
1127
+ userL0s: (_state$loc$userL0s = state.loc.userL0s) !== null && _state$loc$userL0s !== void 0 ? _state$loc$userL0s : [],
1128
+ fetchedUserLocation: state.loc.fetchedUserLocation
1129
+ };
1130
+ };
1131
+ var mapDispatchToProps$2 = function mapDispatchToProps(dispatch) {
1132
+ return redux.bindActionCreators({
1133
+ fetchUsersSummaries: fetchUsersSummaries,
1134
+ deleteUser: deleteUser
1135
+ }, dispatch);
1136
+ };
1137
+ var UserSearcher$1 = feCore.withModulesManager(reactRedux.connect(mapStateToProps$3, mapDispatchToProps$2)(reactIntl.injectIntl(styles$a.withTheme(styles$a.withStyles(styles$8)(UserSearcher)))));
1138
+
1139
+ function _callSuper$1(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct$1() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
1140
+ function _isNativeReflectConstruct$1() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct$1 = function _isNativeReflectConstruct() { return !!t; })(); }
1141
+ var styles$7 = function styles(theme) {
1142
+ return {
1143
+ page: theme.page,
1144
+ fab: theme.fab
1145
+ };
1146
+ };
1147
+ var UsersPage = /*#__PURE__*/function (_Component) {
1148
+ function UsersPage() {
1149
+ var _this;
1150
+ _classCallCheck__default["default"](this, UsersPage);
1151
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1152
+ args[_key] = arguments[_key];
1153
+ }
1154
+ _this = _callSuper$1(this, UsersPage, [].concat(args));
1155
+ _defineProperty__default["default"](_this, "onDoubleClick", function (u) {
1156
+ var newTab = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1157
+ feCore.historyPush(_this.props.modulesManager, _this.props.history, "admin.userOverview", [u.id], newTab);
1158
+ });
1159
+ _defineProperty__default["default"](_this, "onAdd", function () {
1160
+ feCore.historyPush(_this.props.modulesManager, _this.props.history, "admin.userNew");
1161
+ });
1162
+ _defineProperty__default["default"](_this, "componentDidMount", function () {
1163
+ var module = _this.props.module;
1164
+ if (module !== MODULE_NAME) _this.props.clearCurrentPaginationPage();
1165
+ });
1166
+ return _this;
1167
+ }
1168
+ _inherits__default["default"](UsersPage, _Component);
1169
+ return _createClass__default["default"](UsersPage, [{
1170
+ key: "render",
1171
+ value: function render() {
1172
+ var _this$props = this.props,
1173
+ classes = _this$props.classes,
1174
+ rights = _this$props.rights,
1175
+ intl = _this$props.intl;
1176
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1177
+ className: classes.page
1178
+ }, /*#__PURE__*/React__default["default"].createElement(UserSearcher$1, {
1179
+ cacheFiltersKey: "usersPageFiltersCache",
1180
+ onDoubleClick: this.onDoubleClick
1181
+ }), rights.includes(RIGHT_USER_ADD) && feCore.withTooltip(/*#__PURE__*/React__default["default"].createElement("div", {
1182
+ className: classes.fab
1183
+ }, /*#__PURE__*/React__default["default"].createElement(core.Fab, {
1184
+ color: "primary",
1185
+ onClick: this.onAdd
1186
+ }, /*#__PURE__*/React__default["default"].createElement(AddIcon__default["default"], null))), feCore.formatMessage(intl, "admin.user", "addNewUser.tooltip")));
1187
+ }
1188
+ }]);
1189
+ }(React.Component);
1190
+ var mapStateToProps$2 = function mapStateToProps(state) {
1191
+ var _state$core$user$i_us, _state$core, _state$core2;
1192
+ return {
1193
+ rights: (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [],
1194
+ module: (_state$core2 = state.core) === null || _state$core2 === void 0 || (_state$core2 = _state$core2.savedPagination) === null || _state$core2 === void 0 ? void 0 : _state$core2.module
1195
+ };
1196
+ };
1197
+ var mapDispatchToProps$1 = function mapDispatchToProps(dispatch) {
1198
+ return redux.bindActionCreators({
1199
+ clearCurrentPaginationPage: feCore.clearCurrentPaginationPage
1200
+ }, dispatch);
1201
+ };
1202
+ var UsersPage$1 = reactIntl.injectIntl(feCore.withModulesManager(feCore.withHistory(reactRedux.connect(mapStateToProps$2, mapDispatchToProps$1)(styles$a.withTheme(styles$a.withStyles(styles$7)(UsersPage))))));
1203
+
1204
+ var styles$6 = function styles(theme) {
1205
+ return {
1206
+ footer: {
1207
+ marginInline: 16,
1208
+ marginBlock: 12
1209
+ },
1210
+ headerTitle: theme.table.title,
1211
+ actionCell: {
1212
+ width: 60
1213
+ },
1214
+ header: theme.table.header
1215
+ };
1216
+ };
1217
+ var groupVillagesByMunicipality = function groupVillagesByMunicipality(villages) {
1218
+ var result = [];
1219
+ villages === null || villages === void 0 || villages.forEach(function (village) {
1220
+ if (!result.find(function (x) {
1221
+ var _x$parent, _village$parent;
1222
+ return ((_x$parent = x.parent) === null || _x$parent === void 0 ? void 0 : _x$parent.id) === ((_village$parent = village.parent) === null || _village$parent === void 0 ? void 0 : _village$parent.id);
1223
+ })) {
1224
+ result.push({
1225
+ parent: village.parent,
1226
+ entities: []
1227
+ });
1228
+ }
1229
+ result.find(function (x) {
1230
+ var _x$parent2, _village$parent2;
1231
+ return ((_x$parent2 = x.parent) === null || _x$parent2 === void 0 ? void 0 : _x$parent2.id) === ((_village$parent2 = village.parent) === null || _village$parent2 === void 0 ? void 0 : _village$parent2.id);
1232
+ }).entities.push(village);
1233
+ });
1234
+ result.sort(function (a, b) {
1235
+ var _a$parent, _b$parent;
1236
+ return a.parent ? ((_a$parent = a.parent) === null || _a$parent === void 0 ? void 0 : _a$parent.id) > ((_b$parent = b.parent) === null || _b$parent === void 0 ? void 0 : _b$parent.id) : -1;
1237
+ });
1238
+ return result;
1239
+ };
1240
+ var EnrolmentVillagesPicker = function EnrolmentVillagesPicker(props) {
1241
+ var modulesManager = props.modulesManager,
1242
+ readOnly = props.readOnly,
1243
+ villages = props.villages,
1244
+ onChange = props.onChange,
1245
+ classes = props.classes,
1246
+ districts = props.districts,
1247
+ isOfficerPanelEnabled = props.isOfficerPanelEnabled;
1248
+ var dispatch = reactRedux.useDispatch();
1249
+ var _useState = React.useState([]),
1250
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1251
+ items = _useState2[0],
1252
+ setItems = _useState2[1];
1253
+ var _useTranslations = feCore.useTranslations("admin.EnrolmentZonesPicker", modulesManager),
1254
+ formatMessage = _useTranslations.formatMessage;
1255
+ var pickedDistrictsUuids = districts && districts.map(function (district) {
1256
+ return district.uuid;
1257
+ });
1258
+ var savedEOVillages = reactRedux.useSelector(function (store) {
1259
+ var _store$admin$user;
1260
+ return (_store$admin$user = store.admin.user) === null || _store$admin$user === void 0 ? void 0 : _store$admin$user.officerVillages;
1261
+ });
1262
+ var isUserEdited = reactRedux.useSelector(function (store) {
1263
+ var _store$admin$user2;
1264
+ return (_store$admin$user2 = store.admin.user) === null || _store$admin$user2 === void 0 ? void 0 : _store$admin$user2.id;
1265
+ });
1266
+ var _useState3 = React.useState(false),
1267
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
1268
+ wasEmpty = _useState4[0],
1269
+ setWasEmpty = _useState4[1];
1270
+ var _useSelector = reactRedux.useSelector(function (store) {
1271
+ return store.admin;
1272
+ }),
1273
+ districtMunAndVil = _useSelector.districtMunAndVil,
1274
+ fetchedDistrictMunAndVil = _useSelector.fetchedDistrictMunAndVil,
1275
+ fetchingDistrictMunAndVil = _useSelector.fetchingDistrictMunAndVil,
1276
+ errorDistrictMunAndVil = _useSelector.errorDistrictMunAndVil;
1277
+ var handleChange = function handleChange(newItems) {
1278
+ var villageIds = newItems.reduce(function (acc, item) {
1279
+ return item.entities ? acc.concat(item.entities) : acc;
1280
+ }, []);
1281
+ onChange(villageIds);
1282
+ };
1283
+ var onRemoveRow = function onRemoveRow(row) {
1284
+ handleChange(items.filter(function (i) {
1285
+ var _i$parent, _row$parent;
1286
+ return ((_i$parent = i.parent) === null || _i$parent === void 0 ? void 0 : _i$parent.id) !== ((_row$parent = row.parent) === null || _row$parent === void 0 ? void 0 : _row$parent.id);
1287
+ }));
1288
+ };
1289
+ React.useEffect(function () {
1290
+ setItems(groupVillagesByMunicipality(villages));
1291
+ }, [villages]);
1292
+ var onInsertRow = function onInsertRow() {
1293
+ setItems([].concat(_toConsumableArray__default["default"](items), [{}]));
1294
+ };
1295
+ var onSelectParent = function onSelectParent(item, parent) {
1296
+ var rowItem = item;
1297
+ rowItem.parent = parent;
1298
+ setItems(_toConsumableArray__default["default"](items));
1299
+ };
1300
+ var onVillagesChange = function onVillagesChange(item, entities) {
1301
+ var rowItem = item;
1302
+ rowItem.entities = entities;
1303
+ handleChange(items);
1304
+ };
1305
+ var createRow = function createRow(parent) {
1306
+ var _edges$map;
1307
+ var edges = parent.children.edges;
1308
+ var entities = (_edges$map = edges === null || edges === void 0 ? void 0 : edges.map(function (edge) {
1309
+ return edge.node;
1310
+ })) !== null && _edges$map !== void 0 ? _edges$map : [];
1311
+ var savedEntities = entities.filter(function (entity) {
1312
+ return savedEOVillages === null || savedEOVillages === void 0 ? void 0 : savedEOVillages.some(function (village) {
1313
+ return entity.uuid === (village === null || village === void 0 ? void 0 : village.uuid);
1314
+ });
1315
+ });
1316
+ var createdRow = {};
1317
+ createdRow.parent = parent;
1318
+ if (!isUserEdited) {
1319
+ createdRow.entities = entities;
1320
+ return createdRow;
1321
+ }
1322
+ if (isUserEdited && savedEntities && wasEmpty) {
1323
+ createdRow.entities = entities;
1324
+ return createdRow;
1325
+ }
1326
+ if (entities.find(function (entity) {
1327
+ return savedEntities.some(function (savedEntity) {
1328
+ return savedEntity.uuid !== entity.uuid;
1329
+ });
1330
+ })) {
1331
+ createdRow.entities = savedEntities;
1332
+ } else {
1333
+ createdRow.entities = entities;
1334
+ }
1335
+ return createdRow;
1336
+ };
1337
+ var rescheduleItems = function rescheduleItems(rows) {
1338
+ setItems([].concat(_toConsumableArray__default["default"](items), _toConsumableArray__default["default"](rows)));
1339
+ handleChange([].concat(_toConsumableArray__default["default"](items), _toConsumableArray__default["default"](rows)));
1340
+ };
1341
+ var clearItems = function clearItems() {
1342
+ setItems([]);
1343
+ handleChange([]);
1344
+ dispatch(clearDistrictData());
1345
+ };
1346
+ var executeNewRows = function executeNewRows(newRows, uniqueRows) {
1347
+ if (!items.length) {
1348
+ rescheduleItems(newRows);
1349
+ } else {
1350
+ rescheduleItems(uniqueRows);
1351
+ }
1352
+ };
1353
+ var filterParents = function filterParents(options) {
1354
+ return options.filter(function (p) {
1355
+ return !items.some(function (i) {
1356
+ var _i$parent2;
1357
+ return ((_i$parent2 = i.parent) === null || _i$parent2 === void 0 ? void 0 : _i$parent2.id) === p.id;
1358
+ });
1359
+ });
1360
+ };
1361
+ var filterVillages = function filterVillages(options) {
1362
+ return options.filter(function (option) {
1363
+ return !(villages !== null && villages !== void 0 && villages.some(function (village) {
1364
+ return (village === null || village === void 0 ? void 0 : village.id) === option.id;
1365
+ }));
1366
+ });
1367
+ };
1368
+ React.useEffect(function () {
1369
+ if (districts !== null && districts !== void 0 && districts.length) {
1370
+ dispatch(fetchDataFromDistrict(pickedDistrictsUuids));
1371
+ } else setWasEmpty(true);
1372
+ return clearItems();
1373
+ }, [districts]);
1374
+ React.useEffect(function () {
1375
+ if (fetchedDistrictMunAndVil) {
1376
+ var createdRows = districtMunAndVil.map(function (mun) {
1377
+ return createRow(mun);
1378
+ });
1379
+ var uniqueRows = createdRows.filter(function (row) {
1380
+ return !items.some(function (i) {
1381
+ return i.parent.uuid === row.parent.uuid;
1382
+ });
1383
+ });
1384
+ executeNewRows(createdRows, uniqueRows);
1385
+ }
1386
+ }, [districtMunAndVil]);
1387
+ React.useEffect(function () {
1388
+ if (isOfficerPanelEnabled) {
1389
+ clearItems();
1390
+ }
1391
+ }, [isOfficerPanelEnabled]);
1392
+ return /*#__PURE__*/React__default["default"].createElement(core.TableContainer, {
1393
+ component: core.Paper
1394
+ }, /*#__PURE__*/React__default["default"].createElement(core.Table, {
1395
+ size: "small"
1396
+ }, /*#__PURE__*/React__default["default"].createElement(core.TableHead, {
1397
+ className: classes.header
1398
+ }, /*#__PURE__*/React__default["default"].createElement(core.TableRow, {
1399
+ className: classes.headerTitle
1400
+ }, /*#__PURE__*/React__default["default"].createElement(core.TableCell, null, formatMessage("table.municipality")), /*#__PURE__*/React__default["default"].createElement(core.TableCell, null, formatMessage("table.villages")), /*#__PURE__*/React__default["default"].createElement(core.TableCell, null))), /*#__PURE__*/React__default["default"].createElement(core.TableBody, null, /*#__PURE__*/React__default["default"].createElement(feCore.ProgressOrError, {
1401
+ progress: fetchingDistrictMunAndVil,
1402
+ error: errorDistrictMunAndVil
1403
+ }), items.map(function (item) {
1404
+ var _item$parent, _item$parent2;
1405
+ return /*#__PURE__*/React__default["default"].createElement(core.TableRow, {
1406
+ key: (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.id
1407
+ }, /*#__PURE__*/React__default["default"].createElement(core.TableCell, null, item.parent ? "".concat(item.parent.code, " ").concat(item.parent.name) : /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1408
+ pubRef: "location.LocationPicker",
1409
+ parentLocations: pickedDistrictsUuids,
1410
+ onChange: function onChange(parent) {
1411
+ return onSelectParent(item, parent);
1412
+ },
1413
+ required: true,
1414
+ filterOptions: filterParents,
1415
+ value: item.parent,
1416
+ locationLevel: 2
1417
+ })), /*#__PURE__*/React__default["default"].createElement(core.TableCell, null, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1418
+ fullWidth: true,
1419
+ pubRef: "location.LocationPicker",
1420
+ parentLocation: item.parent,
1421
+ parentLocations: [(_item$parent2 = item.parent) === null || _item$parent2 === void 0 ? void 0 : _item$parent2.uuid],
1422
+ readOnly: readOnly,
1423
+ required: true,
1424
+ multiple: true,
1425
+ value: item.entities,
1426
+ onChange: function onChange(value) {
1427
+ return onVillagesChange(item, value);
1428
+ },
1429
+ filterOptions: filterVillages,
1430
+ locationLevel: 3
1431
+ })), /*#__PURE__*/React__default["default"].createElement(core.TableCell, {
1432
+ className: classes.actionCell
1433
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
1434
+ disabled: readOnly,
1435
+ onClick: function onClick() {
1436
+ return onRemoveRow(item);
1437
+ }
1438
+ }, /*#__PURE__*/React__default["default"].createElement(DeleteIcon__default["default"], null))));
1439
+ })), /*#__PURE__*/React__default["default"].createElement(core.TableFooter, null, /*#__PURE__*/React__default["default"].createElement(core.Button, {
1440
+ disabled: readOnly,
1441
+ variant: "contained",
1442
+ onClick: onInsertRow,
1443
+ startIcon: /*#__PURE__*/React__default["default"].createElement(AddIcon__default["default"], null),
1444
+ className: classes.footer
1445
+ }, formatMessage("table.newRow")))));
1446
+ };
1447
+ var enhance$3 = feCore.combine(feCore.withModulesManager, styles$a.withTheme, styles$a.withStyles(styles$6));
1448
+ var EnrolmentVillagesPicker$1 = enhance$3(EnrolmentVillagesPicker);
1449
+
1450
+ function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1451
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1452
+ var styles$5 = function styles(theme) {
1453
+ return {
1454
+ item: theme.paper.item,
1455
+ paper: theme.paper.paper,
1456
+ title: theme.paper.title
1457
+ };
1458
+ };
1459
+ var EnrolmentOfficerFormPanel = function EnrolmentOfficerFormPanel(props) {
1460
+ var _edited$userTypes, _edited$worksTo, _edited$address;
1461
+ var edited = props.edited,
1462
+ classes = props.classes,
1463
+ modulesManager = props.modulesManager,
1464
+ onEditedChanged = props.onEditedChanged,
1465
+ readOnly = props.readOnly;
1466
+ var _useTranslations = feCore.useTranslations("admin.EnrolmentOfficerFormPanel", modulesManager),
1467
+ formatMessage = _useTranslations.formatMessage;
1468
+ var _useState = React.useState(false),
1469
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1470
+ isEnabled = _useState2[0],
1471
+ setIsEnabled = _useState2[1];
1472
+ var hasOfficerUserType = (_edited$userTypes = edited.userTypes) === null || _edited$userTypes === void 0 ? void 0 : _edited$userTypes.includes(ENROLMENT_OFFICER_USER_TYPE);
1473
+ var hasOfficerRole = edited.roles ? edited.roles.filter(function (x) {
1474
+ return x.isSystem === OFFICER_ROLE_IS_SYSTEM;
1475
+ }).length !== 0 : false;
1476
+ var _useGraphqlQuery = feCore.useGraphqlQuery("\n query UserRolesPicker ($system_id: Int) {\n role(systemRoleId: $system_id) {\n edges {\n node {\n id name isSystem\n }\n }\n }\n }\n ", {
1477
+ system_id: OFFICER_ROLE_IS_SYSTEM
1478
+ }),
1479
+ isLoading = _useGraphqlQuery.isLoading,
1480
+ data = _useGraphqlQuery.data;
1481
+ _useGraphqlQuery.error;
1482
+ var isValid = !isLoading;
1483
+ React.useEffect(function () {
1484
+ toggleUserRoles(edited, data, isValid, isEnabled, hasOfficerRole, onEditedChanged, OFFICER_ROLE_IS_SYSTEM);
1485
+ }, [isEnabled]);
1486
+ React.useEffect(function () {
1487
+ toggleSwitchButton(edited, hasOfficerRole, hasOfficerUserType, setIsEnabled, onEditedChanged, ENROLMENT_OFFICER_USER_TYPE);
1488
+ }, [hasOfficerRole]);
1489
+ return /*#__PURE__*/React__default["default"].createElement(core.Paper, {
1490
+ className: classes.paper
1491
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1492
+ item: true,
1493
+ xs: 12,
1494
+ className: classes.title
1495
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1496
+ container: true,
1497
+ justifyContent: "space-between",
1498
+ alignItems: "center"
1499
+ }, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
1500
+ variant: "h6"
1501
+ }, formatMessage("title")), (edited || !isEnabled) && /*#__PURE__*/React__default["default"].createElement(core.Switch, {
1502
+ color: "secondary",
1503
+ disabled: readOnly,
1504
+ checked: isEnabled,
1505
+ onChange: function onChange() {
1506
+ return setIsEnabled(function () {
1507
+ return !isEnabled;
1508
+ });
1509
+ }
1510
+ }))), isEnabled && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1511
+ item: true,
1512
+ xs: 12
1513
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1514
+ container: true
1515
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1516
+ item: true,
1517
+ xs: 4,
1518
+ className: classes.item
1519
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1520
+ pubRef: "core.DatePicker",
1521
+ value: edited === null || edited === void 0 ? void 0 : edited.birthDate,
1522
+ module: "admin",
1523
+ label: "user.dob",
1524
+ readOnly: readOnly,
1525
+ maxDate: new Date(),
1526
+ onChange: function onChange(birthDate) {
1527
+ return onEditedChanged(_objectSpread$5(_objectSpread$5({}, edited), {}, {
1528
+ birthDate: birthDate
1529
+ }));
1530
+ }
1531
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1532
+ item: true,
1533
+ xs: 4,
1534
+ className: classes.item
1535
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1536
+ pubRef: "admin.SubstitutionEnrolmentOfficerPicker",
1537
+ module: "admin",
1538
+ readOnly: readOnly,
1539
+ withLabel: true,
1540
+ withPlaceholder: true,
1541
+ value: edited.substitutionOfficer,
1542
+ villages: edited.officerVillages,
1543
+ onChange: function onChange(substitutionOfficer) {
1544
+ return onEditedChanged(_objectSpread$5(_objectSpread$5({}, edited), {}, {
1545
+ substitutionOfficer: substitutionOfficer
1546
+ }));
1547
+ }
1548
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1549
+ item: true,
1550
+ xs: 4,
1551
+ className: classes.item
1552
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1553
+ pubRef: "core.DatePicker",
1554
+ value: (_edited$worksTo = edited === null || edited === void 0 ? void 0 : edited.worksTo) !== null && _edited$worksTo !== void 0 ? _edited$worksTo : "",
1555
+ module: "admin",
1556
+ label: "user.worksTo",
1557
+ readOnly: readOnly,
1558
+ onChange: function onChange(worksTo) {
1559
+ return onEditedChanged(_objectSpread$5(_objectSpread$5({}, edited), {}, {
1560
+ worksTo: worksTo
1561
+ }));
1562
+ }
1563
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1564
+ item: true,
1565
+ xs: 12,
1566
+ className: classes.item
1567
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
1568
+ module: "admin",
1569
+ label: "user.address",
1570
+ multiline: true,
1571
+ rows: 2,
1572
+ variant: "outlined",
1573
+ readOnly: readOnly,
1574
+ value: (_edited$address = edited === null || edited === void 0 ? void 0 : edited.address) !== null && _edited$address !== void 0 ? _edited$address : "",
1575
+ onChange: function onChange(address) {
1576
+ return onEditedChanged(_objectSpread$5(_objectSpread$5({}, edited), {}, {
1577
+ address: address
1578
+ }));
1579
+ }
1580
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1581
+ item: true,
1582
+ xs: 12,
1583
+ className: classes.item
1584
+ }, /*#__PURE__*/React__default["default"].createElement(EnrolmentVillagesPicker$1, {
1585
+ isOfficerPanelEnabled: isEnabled,
1586
+ readOnly: readOnly,
1587
+ districts: edited.districts,
1588
+ villages: edited.officerVillages,
1589
+ onChange: function onChange(officerVillages) {
1590
+ return onEditedChanged(_objectSpread$5(_objectSpread$5({}, edited), {}, {
1591
+ officerVillages: officerVillages
1592
+ }));
1593
+ }
1594
+ })))));
1595
+ };
1596
+ var enhance$2 = feCore.combine(feCore.withModulesManager, styles$a.withTheme, styles$a.withStyles(styles$5));
1597
+ var EnrolmentOfficerFormPanel$1 = enhance$2(EnrolmentOfficerFormPanel);
1598
+
1599
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1600
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1601
+ var styles$4 = function styles(theme) {
1602
+ return {
1603
+ item: theme.paper.item,
1604
+ paper: theme.paper.paper,
1605
+ title: theme.paper.title
1606
+ };
1607
+ };
1608
+ var ClaimAdministratorFormPanel = function ClaimAdministratorFormPanel(props) {
1609
+ var _edited$userTypes;
1610
+ var edited = props.edited,
1611
+ classes = props.classes,
1612
+ modulesManager = props.modulesManager,
1613
+ onEditedChanged = props.onEditedChanged,
1614
+ readOnly = props.readOnly;
1615
+ var _useTranslations = feCore.useTranslations("admin.ClaimAdministratorFormPanel", modulesManager),
1616
+ formatMessage = _useTranslations.formatMessage;
1617
+ var hasClaimUserType = (_edited$userTypes = edited.userTypes) === null || _edited$userTypes === void 0 ? void 0 : _edited$userTypes.includes(CLAIM_ADMIN_USER_TYPE);
1618
+ var hasClaimRole = edited.roles ? edited.roles.filter(function (x) {
1619
+ return x.isSystem === CLAIM_ADMIN_IS_SYSTEM;
1620
+ }).length !== 0 : false;
1621
+ var _useState = React.useState(false),
1622
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1623
+ isEnabled = _useState2[0],
1624
+ setIsEnabled = _useState2[1];
1625
+ var _useGraphqlQuery = feCore.useGraphqlQuery("\n query UserRolesPicker ($system_id: Int) {\n role(systemRoleId: $system_id) {\n edges {\n node {\n id name isSystem\n }\n }\n }\n }\n ", {
1626
+ system_id: CLAIM_ADMIN_IS_SYSTEM
1627
+ }),
1628
+ isLoading = _useGraphqlQuery.isLoading,
1629
+ data = _useGraphqlQuery.data;
1630
+ _useGraphqlQuery.error;
1631
+ var isValid = !isLoading;
1632
+ React.useEffect(function () {
1633
+ toggleUserRoles(edited, data, isValid, isEnabled, hasClaimRole, onEditedChanged, CLAIM_ADMIN_IS_SYSTEM);
1634
+ }, [isEnabled]);
1635
+ React.useEffect(function () {
1636
+ toggleSwitchButton(edited, hasClaimRole, hasClaimUserType, setIsEnabled, onEditedChanged, CLAIM_ADMIN_USER_TYPE);
1637
+ }, [hasClaimRole]);
1638
+ return /*#__PURE__*/React__default["default"].createElement(core.Paper, {
1639
+ className: classes.paper
1640
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1641
+ item: true,
1642
+ xs: 12,
1643
+ className: classes.title
1644
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1645
+ container: true,
1646
+ justifyContent: "space-between",
1647
+ alignItems: "center"
1648
+ }, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
1649
+ variant: "h6"
1650
+ }, formatMessage("title")), (edited || !isEnabled) && /*#__PURE__*/React__default["default"].createElement(core.Switch, {
1651
+ color: "secondary",
1652
+ disabled: readOnly,
1653
+ checked: isEnabled,
1654
+ onChange: function onChange() {
1655
+ return setIsEnabled(function () {
1656
+ return !isEnabled;
1657
+ });
1658
+ }
1659
+ }))), isEnabled && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1660
+ item: true,
1661
+ xs: 12
1662
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1663
+ container: true
1664
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1665
+ item: true,
1666
+ xs: 4,
1667
+ className: classes.item
1668
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1669
+ pubRef: "core.DatePicker",
1670
+ value: edited === null || edited === void 0 ? void 0 : edited.birthDate,
1671
+ module: "admin",
1672
+ label: "user.dob",
1673
+ readOnly: readOnly,
1674
+ maxDate: new Date(),
1675
+ onChange: function onChange(birthDate) {
1676
+ return onEditedChanged(_objectSpread$4(_objectSpread$4({}, edited), {}, {
1677
+ birthDate: birthDate
1678
+ }));
1679
+ }
1680
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1681
+ item: true,
1682
+ xs: 4,
1683
+ className: classes.item
1684
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1685
+ pubRef: "location.HealthFacilityPicker",
1686
+ value: edited === null || edited === void 0 ? void 0 : edited.healthFacility,
1687
+ district: edited === null || edited === void 0 ? void 0 : edited.districts,
1688
+ required: true,
1689
+ module: "admin",
1690
+ readOnly: readOnly,
1691
+ onChange: function onChange(healthFacility) {
1692
+ return onEditedChanged(_objectSpread$4(_objectSpread$4({}, edited), {}, {
1693
+ healthFacility: healthFacility
1694
+ }));
1695
+ }
1696
+ })))));
1697
+ };
1698
+ var enhance$1 = feCore.combine(feCore.withModulesManager, styles$a.withTheme, styles$a.withStyles(styles$4));
1699
+ var ClaimAdministratorFormPanel$1 = enhance$1(ClaimAdministratorFormPanel);
1700
+
1701
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1702
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1703
+ var styles$3 = function styles(theme) {
1704
+ return {
1705
+ tableTitle: theme.table.title,
1706
+ item: theme.paper.item,
1707
+ fullHeight: {
1708
+ height: "100%"
1709
+ },
1710
+ sectionHeader: _objectSpread$3(_objectSpread$3({}, theme.paper.item), {}, {
1711
+ paddingBottom: 0
1712
+ }),
1713
+ sectionTitle: theme.typography.title
1714
+ };
1715
+ };
1716
+ var UserMasterPanel = function UserMasterPanel(props) {
1717
+ var _edited$username, _edited$userTypes, _edited$email, _edited$userTypes2, _edited$userTypes3, _edited$phoneNumber, _edited$roles, _edited$districts, _edited$language;
1718
+ var classes = props.classes,
1719
+ edited = props.edited,
1720
+ readOnly = props.readOnly,
1721
+ onEditedChanged = props.onEditedChanged,
1722
+ modulesManager = props.modulesManager,
1723
+ obligatoryUserFields = props.obligatoryUserFields,
1724
+ obligatoryEOFields = props.obligatoryEOFields,
1725
+ isUsernameValid = props.isUsernameValid,
1726
+ isUsernameValidating = props.isUsernameValidating,
1727
+ usernameValidationError = props.usernameValidationError,
1728
+ isUserEmailValid = props.isUserEmailValid,
1729
+ isUserEmailValidating = props.isUserEmailValidating,
1730
+ isUserEmailFormatInvalid = props.isUserEmailFormatInvalid,
1731
+ emailValidationError = props.emailValidationError,
1732
+ savedUsername = props.savedUsername,
1733
+ savedUserEmail = props.savedUserEmail,
1734
+ usernameLength = props.usernameLength,
1735
+ passwordPolicy = props.passwordPolicy,
1736
+ rights = props.rights;
1737
+ var _useTranslations = feCore.useTranslations("admin", modulesManager),
1738
+ formatMessage = _useTranslations.formatMessage,
1739
+ formatMessageWithValues = _useTranslations.formatMessageWithValues;
1740
+ var dispatch = reactRedux.useDispatch();
1741
+ React.useEffect(function () {
1742
+ dispatch(fetchPasswordPolicy());
1743
+ }, [dispatch]);
1744
+ var renderLastNameFirst = modulesManager.getConf("fe-insuree", "renderLastNameFirst", DEFAULT.RENDER_LAST_NAME_FIRST);
1745
+ var shouldValidateUsername = function shouldValidateUsername(inputValue) {
1746
+ var shouldBeValidated = inputValue !== savedUsername;
1747
+ return shouldBeValidated;
1748
+ };
1749
+ var shouldValidateEmail = function shouldValidateEmail(inputValue) {
1750
+ var shouldBeValidated = inputValue !== savedUserEmail;
1751
+ return shouldBeValidated;
1752
+ };
1753
+ var checkEmailFormatValidity = function checkEmailFormatValidity(emailInput) {
1754
+ if (!emailInput) return false;
1755
+ var isEmailInvalid = !EMAIL_REGEX_PATTERN.test(emailInput);
1756
+ return isEmailInvalid;
1757
+ };
1758
+ var handleEmailChange = function handleEmailChange(email) {
1759
+ var isFormatValid = checkEmailFormatValidity(email);
1760
+ dispatch(saveEmailFormatValidity(isFormatValid));
1761
+ onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1762
+ email: email
1763
+ }));
1764
+ };
1765
+ React.useEffect(function () {
1766
+ handleEmailChange(edited === null || edited === void 0 ? void 0 : edited.email);
1767
+ }, []);
1768
+ var _useState = React.useState(""),
1769
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1770
+ passwordFeedback = _useState2[0],
1771
+ setPasswordFeedback = _useState2[1];
1772
+ var _useState3 = React.useState(0),
1773
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
1774
+ passwordScore = _useState4[0],
1775
+ setPasswordScore = _useState4[1];
1776
+ var _useState5 = React.useState(false),
1777
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
1778
+ showPassword = _useState6[0],
1779
+ setShowPassword = _useState6[1];
1780
+ var REQUIRED_SECURITY_LEVEL = 2;
1781
+ var IS_PASSWORD_SECURED = passwordScore >= REQUIRED_SECURITY_LEVEL;
1782
+ var handleClickShowPassword = function handleClickShowPassword() {
1783
+ return setShowPassword(function (show) {
1784
+ return !show;
1785
+ });
1786
+ };
1787
+ var handleMouseDownPassword = function handleMouseDownPassword(event) {
1788
+ event.preventDefault();
1789
+ };
1790
+ var handlePasswordChange = function handlePasswordChange(password) {
1791
+ var _validatePassword = feCore.validatePassword(password, passwordPolicy, formatMessage, formatMessageWithValues),
1792
+ feedback = _validatePassword.feedback,
1793
+ score = _validatePassword.score;
1794
+ setPasswordFeedback(feedback);
1795
+ setPasswordScore(score);
1796
+ IS_PASSWORD_SECURED = score >= REQUIRED_SECURITY_LEVEL;
1797
+ onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1798
+ password: password,
1799
+ isPasswordValid: IS_PASSWORD_SECURED
1800
+ }));
1801
+ };
1802
+ var generatePassword = function generatePassword() {
1803
+ var passwordGeneratorOptions = modulesManager.getConf("fe-admin", "passwordGeneratorOptions", {
1804
+ length: 12,
1805
+ isNumberRequired: true,
1806
+ isLowerCaseRequired: true,
1807
+ isUpperCaseRequired: true,
1808
+ isSpecialSymbolRequired: true
1809
+ });
1810
+ var generatedPassword = feCore.passwordGenerator(passwordGeneratorOptions);
1811
+ IS_PASSWORD_SECURED = true;
1812
+ onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1813
+ password: generatedPassword,
1814
+ confirmPassword: generatedPassword,
1815
+ isPasswordValid: IS_PASSWORD_SECURED
1816
+ }));
1817
+ };
1818
+ var renderLastNameField = function renderLastNameField(edited, classes, readOnly) {
1819
+ var _edited$lastName;
1820
+ return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1821
+ item: true,
1822
+ xs: 4,
1823
+ className: classes.item
1824
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
1825
+ module: "admin",
1826
+ label: "user.lastName",
1827
+ required: true,
1828
+ readOnly: readOnly,
1829
+ value: (_edited$lastName = edited === null || edited === void 0 ? void 0 : edited.lastName) !== null && _edited$lastName !== void 0 ? _edited$lastName : "",
1830
+ onChange: function onChange(lastName) {
1831
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1832
+ lastName: lastName
1833
+ }));
1834
+ }
1835
+ }));
1836
+ };
1837
+ var renderGivenNameField = function renderGivenNameField(edited, classes, readOnly) {
1838
+ var _edited$otherNames;
1839
+ return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1840
+ item: true,
1841
+ xs: 4,
1842
+ className: classes.item
1843
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
1844
+ module: "admin",
1845
+ label: "user.givenNames",
1846
+ required: true,
1847
+ readOnly: readOnly,
1848
+ value: (_edited$otherNames = edited === null || edited === void 0 ? void 0 : edited.otherNames) !== null && _edited$otherNames !== void 0 ? _edited$otherNames : "",
1849
+ onChange: function onChange(otherNames) {
1850
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1851
+ otherNames: otherNames
1852
+ }));
1853
+ }
1854
+ }));
1855
+ };
1856
+ return /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1857
+ container: true,
1858
+ direction: "row"
1859
+ }, /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1860
+ item: true,
1861
+ xs: 4,
1862
+ className: classes.item
1863
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.ValidatedTextInput, {
1864
+ itemQueryIdentifier: "username",
1865
+ shouldValidate: shouldValidateUsername,
1866
+ isValid: isUsernameValid,
1867
+ isValidating: isUsernameValidating,
1868
+ validationError: usernameValidationError,
1869
+ action: usernameValidationCheck,
1870
+ clearAction: usernameValidationClear,
1871
+ setValidAction: setUsernameValid,
1872
+ module: "admin",
1873
+ label: "user.username",
1874
+ codeTakenLabel: "user.usernameAlreadyTaken",
1875
+ required: true,
1876
+ value: (_edited$username = edited === null || edited === void 0 ? void 0 : edited.username) !== null && _edited$username !== void 0 ? _edited$username : "",
1877
+ readOnly: readOnly,
1878
+ onChange: function onChange(username) {
1879
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1880
+ username: username
1881
+ }));
1882
+ },
1883
+ inputProps: {
1884
+ "maxLength": usernameLength
1885
+ }
1886
+ })), renderLastNameFirst ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, renderLastNameField(edited, classes, readOnly), renderGivenNameField(edited, classes, readOnly)) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, renderGivenNameField(edited, classes, readOnly), renderLastNameField(edited, classes, readOnly)), !((obligatoryUserFields === null || obligatoryUserFields === void 0 ? void 0 : obligatoryUserFields.email) == "H" || (_edited$userTypes = edited.userTypes) !== null && _edited$userTypes !== void 0 && _edited$userTypes.includes(ENROLMENT_OFFICER_USER_TYPE) && (obligatoryEOFields === null || obligatoryEOFields === void 0 ? void 0 : obligatoryEOFields.email) == "H") && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1887
+ item: true,
1888
+ xs: 4,
1889
+ className: classes.item
1890
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.ValidatedTextInput, {
1891
+ itemQueryIdentifier: "userEmail",
1892
+ shouldValidate: shouldValidateEmail,
1893
+ isValid: isUserEmailValid,
1894
+ isValidating: isUserEmailValidating,
1895
+ validationError: emailValidationError,
1896
+ invalidValueFormat: isUserEmailFormatInvalid,
1897
+ action: userEmailValidationCheck,
1898
+ clearAction: userEmailValidationClear,
1899
+ setValidAction: setUserEmailValid,
1900
+ readOnly: readOnly,
1901
+ module: "admin",
1902
+ label: "user.email",
1903
+ type: "email",
1904
+ codeTakenLabel: "user.emailAlreadyTaken",
1905
+ required: true,
1906
+ value: (_edited$email = edited === null || edited === void 0 ? void 0 : edited.email) !== null && _edited$email !== void 0 ? _edited$email : "",
1907
+ onChange: function onChange(email) {
1908
+ return handleEmailChange(email);
1909
+ }
1910
+ })), !((obligatoryUserFields === null || obligatoryUserFields === void 0 ? void 0 : obligatoryUserFields.phone) == "H" || (_edited$userTypes2 = edited.userTypes) !== null && _edited$userTypes2 !== void 0 && _edited$userTypes2.includes(ENROLMENT_OFFICER_USER_TYPE) && (obligatoryEOFields === null || obligatoryEOFields === void 0 ? void 0 : obligatoryEOFields.phone) == "H") && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1911
+ item: true,
1912
+ xs: 4,
1913
+ className: classes.item
1914
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
1915
+ module: "admin",
1916
+ type: "phone",
1917
+ label: "user.phone",
1918
+ required: (obligatoryUserFields === null || obligatoryUserFields === void 0 ? void 0 : obligatoryUserFields.phone) == "M" || ((_edited$userTypes3 = edited.userTypes) === null || _edited$userTypes3 === void 0 ? void 0 : _edited$userTypes3.includes(ENROLMENT_OFFICER_USER_TYPE)) && (obligatoryEOFields === null || obligatoryEOFields === void 0 ? void 0 : obligatoryEOFields.phone) == "M",
1919
+ readOnly: readOnly,
1920
+ value: (_edited$phoneNumber = edited === null || edited === void 0 ? void 0 : edited.phoneNumber) !== null && _edited$phoneNumber !== void 0 ? _edited$phoneNumber : "",
1921
+ onChange: function onChange(phoneNumber) {
1922
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1923
+ phoneNumber: phoneNumber
1924
+ }));
1925
+ }
1926
+ })), rights.includes(RIGHT_HEALTHFACILITIES) && /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1927
+ item: true,
1928
+ xs: 4,
1929
+ className: classes.item
1930
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1931
+ pubRef: "location.HealthFacilityPicker",
1932
+ value: edited === null || edited === void 0 ? void 0 : edited.healthFacility,
1933
+ district: edited.districts,
1934
+ module: "admin",
1935
+ readOnly: readOnly,
1936
+ required: edited.userTypes.includes(CLAIM_ADMIN_USER_TYPE),
1937
+ onChange: function onChange(healthFacility) {
1938
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1939
+ healthFacility: healthFacility
1940
+ }));
1941
+ }
1942
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1943
+ item: true,
1944
+ xs: 6,
1945
+ className: classes.item
1946
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1947
+ pubRef: "admin.UserRolesPicker",
1948
+ required: true,
1949
+ value: (_edited$roles = edited === null || edited === void 0 ? void 0 : edited.roles) !== null && _edited$roles !== void 0 ? _edited$roles : [],
1950
+ module: "admin",
1951
+ readOnly: readOnly,
1952
+ onChange: function onChange(roles) {
1953
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1954
+ roles: roles
1955
+ }));
1956
+ }
1957
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1958
+ item: true,
1959
+ xs: 2,
1960
+ className: classes.item
1961
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1962
+ pubRef: "location.LocationPicker",
1963
+ locationLevel: 0,
1964
+ value: edited.region,
1965
+ onChange: function onChange(region) {
1966
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1967
+ region: region
1968
+ }));
1969
+ },
1970
+ readOnly: readOnly,
1971
+ multiple: true,
1972
+ withLabel: true,
1973
+ label: formatMessage("user.regions"),
1974
+ restrictedOptions: true
1975
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1976
+ item: true,
1977
+ xs: 4,
1978
+ className: classes.item
1979
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
1980
+ pubRef: "location.LocationPicker",
1981
+ locationLevel: 1,
1982
+ value: (_edited$districts = edited === null || edited === void 0 ? void 0 : edited.districts) !== null && _edited$districts !== void 0 ? _edited$districts : [],
1983
+ onChange: function onChange(districts) {
1984
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
1985
+ districts: districts
1986
+ }));
1987
+ },
1988
+ readOnly: readOnly,
1989
+ required: true,
1990
+ multiple: true,
1991
+ withLabel: true,
1992
+ label: formatMessage("user.districts"),
1993
+ restrictedOptions: true
1994
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
1995
+ item: true,
1996
+ xs: 12,
1997
+ className: classes.sectionHeader
1998
+ }, /*#__PURE__*/React__default["default"].createElement(core.Typography, {
1999
+ className: classes.sectionTitle
2000
+ }, formatMessage("UserMasterPanel.loginDetailsTitle")), /*#__PURE__*/React__default["default"].createElement(core.Divider, {
2001
+ variant: "fullWidth"
2002
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2003
+ item: true,
2004
+ xs: 4,
2005
+ className: classes.item
2006
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.PublishedComponent, {
2007
+ pubRef: "core.LanguagePicker",
2008
+ module: "admin",
2009
+ label: "user.language",
2010
+ readOnly: readOnly,
2011
+ required: true,
2012
+ withNull: false,
2013
+ nullLabel: formatMessage("UserMasterPanel.language.null"),
2014
+ value: (_edited$language = edited.language) !== null && _edited$language !== void 0 ? _edited$language : "",
2015
+ onChange: function onChange(language) {
2016
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
2017
+ language: language
2018
+ }));
2019
+ }
2020
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2021
+ item: true,
2022
+ xs: 4,
2023
+ className: classes.item
2024
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2025
+ module: "admin",
2026
+ type: showPassword ? "text" : "password",
2027
+ label: "user.newPassword",
2028
+ readOnly: readOnly,
2029
+ value: edited.password,
2030
+ onChange: function onChange(password) {
2031
+ handlePasswordChange(password);
2032
+ },
2033
+ endAdornment: /*#__PURE__*/React__default["default"].createElement(core.InputAdornment, {
2034
+ position: "end"
2035
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
2036
+ "aria-label": "toggle password visibility",
2037
+ onClick: handleClickShowPassword,
2038
+ onMouseDown: handleMouseDownPassword,
2039
+ edge: "end"
2040
+ }, showPassword ? /*#__PURE__*/React__default["default"].createElement(VisibilityOffIcon__default["default"], null) : /*#__PURE__*/React__default["default"].createElement(VisibilityIcon__default["default"], null)))
2041
+ }), /*#__PURE__*/React__default["default"].createElement(core.Typography, {
2042
+ color: IS_PASSWORD_SECURED ? "primary" : "error",
2043
+ className: classes.passwordFeedback
2044
+ }, passwordFeedback)), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2045
+ item: true,
2046
+ xs: 4,
2047
+ className: classes.item
2048
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.TextInput, {
2049
+ module: "admin",
2050
+ type: showPassword ? "text" : "password",
2051
+ label: "user.confirmNewPassword",
2052
+ required: edited.password,
2053
+ readOnly: readOnly,
2054
+ value: edited.confirmPassword,
2055
+ onChange: function onChange(confirmPassword) {
2056
+ return onEditedChanged(_objectSpread$3(_objectSpread$3({}, edited), {}, {
2057
+ confirmPassword: confirmPassword
2058
+ }));
2059
+ },
2060
+ error: (edited === null || edited === void 0 ? void 0 : edited.password) !== (edited === null || edited === void 0 ? void 0 : edited.confirmPassword),
2061
+ endAdornment: /*#__PURE__*/React__default["default"].createElement(core.InputAdornment, {
2062
+ position: "end"
2063
+ }, /*#__PURE__*/React__default["default"].createElement(core.IconButton, {
2064
+ "aria-label": "toggle password visibility",
2065
+ onClick: handleClickShowPassword,
2066
+ onMouseDown: handleMouseDownPassword,
2067
+ edge: "end"
2068
+ }, showPassword ? /*#__PURE__*/React__default["default"].createElement(VisibilityOffIcon__default["default"], null) : /*#__PURE__*/React__default["default"].createElement(VisibilityIcon__default["default"], null)))
2069
+ })), /*#__PURE__*/React__default["default"].createElement(core.Grid, {
2070
+ item: true,
2071
+ xs: 4,
2072
+ className: classes.item
2073
+ }, /*#__PURE__*/React__default["default"].createElement(core.Button, {
2074
+ disabled: readOnly,
2075
+ variant: "contained",
2076
+ onClick: generatePassword
2077
+ }, formatMessage("user.generatePassword"))));
2078
+ };
2079
+ var mapStateToProps$1 = function mapStateToProps(state) {
2080
+ var _state$core$user$i_us, _state$core, _state$admin$validati, _state$admin$validati2, _state$admin$validati3, _state$admin, _state$admin$validati4, _state$admin$validati5, _state$admin$validati6, _state$admin2, _state$admin$validati7;
2081
+ return {
2082
+ rights: (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [],
2083
+ isUsernameValid: (_state$admin$validati = state.admin.validationFields) === null || _state$admin$validati === void 0 || (_state$admin$validati = _state$admin$validati.username) === null || _state$admin$validati === void 0 ? void 0 : _state$admin$validati.isValid,
2084
+ isUsernameValidating: (_state$admin$validati2 = state.admin.validationFields) === null || _state$admin$validati2 === void 0 || (_state$admin$validati2 = _state$admin$validati2.username) === null || _state$admin$validati2 === void 0 ? void 0 : _state$admin$validati2.isValidating,
2085
+ usernameValidationError: (_state$admin$validati3 = state.admin.validationFields) === null || _state$admin$validati3 === void 0 || (_state$admin$validati3 = _state$admin$validati3.username) === null || _state$admin$validati3 === void 0 ? void 0 : _state$admin$validati3.validationError,
2086
+ savedUsername: (_state$admin = state.admin) === null || _state$admin === void 0 || (_state$admin = _state$admin.user) === null || _state$admin === void 0 ? void 0 : _state$admin.username,
2087
+ isUserEmailValid: (_state$admin$validati4 = state.admin.validationFields) === null || _state$admin$validati4 === void 0 || (_state$admin$validati4 = _state$admin$validati4.userEmail) === null || _state$admin$validati4 === void 0 ? void 0 : _state$admin$validati4.isValid,
2088
+ isUserEmailValidating: (_state$admin$validati5 = state.admin.validationFields) === null || _state$admin$validati5 === void 0 || (_state$admin$validati5 = _state$admin$validati5.userEmail) === null || _state$admin$validati5 === void 0 ? void 0 : _state$admin$validati5.isValidating,
2089
+ emailValidationError: (_state$admin$validati6 = state.admin.validationFields) === null || _state$admin$validati6 === void 0 || (_state$admin$validati6 = _state$admin$validati6.userEmail) === null || _state$admin$validati6 === void 0 ? void 0 : _state$admin$validati6.validationError,
2090
+ savedUserEmail: (_state$admin2 = state.admin) === null || _state$admin2 === void 0 || (_state$admin2 = _state$admin2.user) === null || _state$admin2 === void 0 ? void 0 : _state$admin2.email,
2091
+ isUserEmailFormatInvalid: (_state$admin$validati7 = state.admin.validationFields) === null || _state$admin$validati7 === void 0 || (_state$admin$validati7 = _state$admin$validati7.userEmailFormat) === null || _state$admin$validati7 === void 0 ? void 0 : _state$admin$validati7.isInvalid
2092
+ };
2093
+ };
2094
+ var UserMasterPanel$1 = feCore.withModulesManager(reactRedux.connect(mapStateToProps$1)(styles$a.withTheme(styles$a.withStyles(styles$3)(UserMasterPanel))));
2095
+
2096
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2097
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2098
+ function _callSuper(t, o, e) { return o = _getPrototypeOf__default["default"](o), _possibleConstructorReturn__default["default"](t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf__default["default"](t).constructor) : o.apply(t, e)); }
2099
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
2100
+ var styles$2 = function styles(theme) {
2101
+ return {
2102
+ lockedPage: theme.page.locked
2103
+ };
2104
+ };
2105
+ var USER_OVERVIEW_MUTATIONS_KEY = "user.UserOverview.mutations";
2106
+ var setupState = function setupState(props) {
2107
+ return {
2108
+ isLocked: false,
2109
+ user: !(props !== null && props !== void 0 && props.userId) ? {
2110
+ userTypes: [INTERACTIVE_USER_TYPE]
2111
+ } : props.user,
2112
+ isSaved: false,
2113
+ reset: 0
2114
+ };
2115
+ };
2116
+ var UserForm = /*#__PURE__*/function (_Component) {
2117
+ function UserForm(props) {
2118
+ var _this;
2119
+ _classCallCheck__default["default"](this, UserForm);
2120
+ _this = _callSuper(this, UserForm, [props]);
2121
+ _defineProperty__default["default"](_this, "reload", /*#__PURE__*/_asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
2122
+ var isSaved, _this$props, modulesManager, history, mutation, fetchUserMutation, userId, fetchUser, clientMutationId, response, createdUserId, _t, _t2;
2123
+ return _regeneratorRuntime__default["default"].wrap(function (_context) {
2124
+ while (1) switch (_context.prev = _context.next) {
2125
+ case 0:
2126
+ isSaved = _this.state.isSaved; // eslint-disable-next-line no-shadow
2127
+ _this$props = _this.props, modulesManager = _this$props.modulesManager, history = _this$props.history, mutation = _this$props.mutation, fetchUserMutation = _this$props.fetchUserMutation, userId = _this$props.userId, fetchUser = _this$props.fetchUser;
2128
+ if (!userId) {
2129
+ _context.next = 5;
2130
+ break;
2131
+ }
2132
+ _context.prev = 1;
2133
+ _context.next = 2;
2134
+ return fetchUser(modulesManager, userId);
2135
+ case 2:
2136
+ _context.next = 4;
2137
+ break;
2138
+ case 3:
2139
+ _context.prev = 3;
2140
+ _t = _context["catch"](1);
2141
+ // eslint-disable-next-line no-console
2142
+ console.error("[RELOAD_USER]: Fetching user details failed. ".concat(_t));
2143
+ case 4:
2144
+ _this.setState(function (state) {
2145
+ return _objectSpread$2(_objectSpread$2({}, state), {}, {
2146
+ reset: state.reset + 1
2147
+ });
2148
+ });
2149
+ return _context.abrupt("return");
2150
+ case 5:
2151
+ if (!isSaved) {
2152
+ _context.next = 11;
2153
+ break;
2154
+ }
2155
+ _context.prev = 6;
2156
+ clientMutationId = mutation.clientMutationId;
2157
+ _context.next = 7;
2158
+ return fetchUserMutation(modulesManager, clientMutationId);
2159
+ case 7:
2160
+ response = _context.sent;
2161
+ createdUserId = feCore.parseData(response.payload.data.mutationLogs)[0].users[0].coreUser.id;
2162
+ _context.next = 8;
2163
+ return fetchUser(modulesManager, createdUserId);
2164
+ case 8:
2165
+ feCore.historyPush(modulesManager, history, "admin.userOverview", [createdUserId]);
2166
+ _context.next = 10;
2167
+ break;
2168
+ case 9:
2169
+ _context.prev = 9;
2170
+ _t2 = _context["catch"](6);
2171
+ // eslint-disable-next-line no-console
2172
+ console.error("[RELOAD_USER]: Fetching user details failed. ".concat(_t2));
2173
+ case 10:
2174
+ _this.setState(function (state) {
2175
+ return _objectSpread$2(_objectSpread$2({}, state), {}, {
2176
+ reset: state.reset + 1
2177
+ });
2178
+ });
2179
+ return _context.abrupt("return");
2180
+ case 11:
2181
+ _this.setState(setupState(_this.props));
2182
+ case 12:
2183
+ case "end":
2184
+ return _context.stop();
2185
+ }
2186
+ }, _callee, null, [[1, 3], [6, 9]]);
2187
+ })));
2188
+ _defineProperty__default["default"](_this, "canSave", function () {
2189
+ var _user$roles, _user$districts, _user$userTypes, _user$userTypes2, _this$props$obligator, _user$userTypes3, _this$props$obligator2;
2190
+ var user = _this.state.user;
2191
+ if (!user) return false;
2192
+ if (!(user.lastName && user.otherNames && user.username && user.email && _this.props.isUserNameValid === true && _this.props.isUserEmailValid === true && !_this.props.isUserEmailFormatInvalid && (_user$roles = user.roles) !== null && _user$roles !== void 0 && _user$roles.length && ((_user$districts = user.districts) === null || _user$districts === void 0 ? void 0 : _user$districts.length) > 0 && user.language)) return false;
2193
+ if (!user.id && !user.password) return false;
2194
+ if (user.password && user.password !== user.confirmPassword) return false;
2195
+ if (user.password && !user.isPasswordValid) return false;
2196
+ if ((_user$userTypes = user.userTypes) !== null && _user$userTypes !== void 0 && _user$userTypes.includes(CLAIM_ADMIN_USER_TYPE) && !user.healthFacility) return false;
2197
+ if ((_user$userTypes2 = user.userTypes) !== null && _user$userTypes2 !== void 0 && _user$userTypes2.includes(ENROLMENT_OFFICER_USER_TYPE) && !user.officerVillages) return false;
2198
+ if ((((_this$props$obligator = _this.props.obligatory_user_fields) === null || _this$props$obligator === void 0 ? void 0 : _this$props$obligator.phone) === "M" || (_user$userTypes3 = user.userTypes) !== null && _user$userTypes3 !== void 0 && _user$userTypes3.includes(ENROLMENT_OFFICER_USER_TYPE) && ((_this$props$obligator2 = _this.props.obligatory_eo_fields) === null || _this$props$obligator2 === void 0 ? void 0 : _this$props$obligator2.phone) === "M") && !user.phoneNumber) return false;
2199
+ return true;
2200
+ });
2201
+ _defineProperty__default["default"](_this, "save", function (user) {
2202
+ _this.setState({
2203
+ isLocked: !(user !== null && user !== void 0 && user.id),
2204
+ isSaved: true
2205
+ }, _this.props.save(user));
2206
+ });
2207
+ _defineProperty__default["default"](_this, "onEditedChanged", function (user) {
2208
+ if (user.region) {
2209
+ user.region.forEach(function (region) {
2210
+ _this.props.fetchRegionDistricts(region);
2211
+ });
2212
+ }
2213
+ _this.setState({
2214
+ user: user
2215
+ });
2216
+ });
2217
+ _defineProperty__default["default"](_this, "onActionToConfirm", function (title, message, confirmedAction) {
2218
+ _this.setState({
2219
+ confirmedAction: confirmedAction
2220
+ }, _this.props.coreConfirm(title, message));
2221
+ });
2222
+ _this.state = setupState(props);
2223
+ return _this;
2224
+ }
2225
+ _inherits__default["default"](UserForm, _Component);
2226
+ return _createClass__default["default"](UserForm, [{
2227
+ key: "componentDidMount",
2228
+ value: function componentDidMount() {
2229
+ if (this.props.userId) {
2230
+ this.props.fetchUser(this.props.modulesManager, this.props.userId);
2231
+ }
2232
+ if (!this.state.obligatory_user_fields) {
2233
+ this.props.fetchObligatoryUserFields();
2234
+ }
2235
+ if (!this.state.obligatory_eo_fields) {
2236
+ this.props.fetchObligatoryEnrolmentOfficerFields();
2237
+ }
2238
+ if (!this.state.usernameLength) {
2239
+ this.props.fetchUsernameLength();
2240
+ }
2241
+ if (!this.state.passwordPolicy) {
2242
+ this.props.fetchPasswordPolicy();
2243
+ }
2244
+ }
2245
+ }, {
2246
+ key: "componentWillUnmount",
2247
+ value: function componentWillUnmount() {
2248
+ this.props.clearUser();
2249
+ }
2250
+ }, {
2251
+ key: "componentDidUpdate",
2252
+ value: function componentDidUpdate(prevProps) {
2253
+ if (prevProps.region_districts !== this.props.region_districts) {
2254
+ if (this.props.region_districts) {
2255
+ var combined = [].concat(_toConsumableArray__default["default"](this.state.user.districts ? this.state.user.districts : []), _toConsumableArray__default["default"](this.props.region_districts));
2256
+ var noDuplicates = _toConsumableArray__default["default"](new Map(combined.map(function (x) {
2257
+ return [x.uuid, x];
2258
+ })).values());
2259
+ this.setState(function (prevState) {
2260
+ return {
2261
+ user: _objectSpread$2(_objectSpread$2({}, prevState.user), {}, {
2262
+ districts: noDuplicates,
2263
+ region: []
2264
+ })
2265
+ };
2266
+ });
2267
+ }
2268
+ }
2269
+ if (!prevProps.fetchedUser && this.props.fetchedUser) {
2270
+ this.setState(setupState(this.props));
2271
+ } else if (prevProps.userId && !this.props.userId) {
2272
+ this.setState(setupState(this.props));
2273
+ } else if (prevProps.submittingMutation && !this.props.submittingMutation) {
2274
+ this.props.journalize(this.props.mutation);
2275
+ this.setState(function (state, props) {
2276
+ return {
2277
+ user: _objectSpread$2(_objectSpread$2({}, state.user), {}, {
2278
+ clientMutationId: props.mutation.clientMutationId
2279
+ })
2280
+ };
2281
+ });
2282
+ } else if (prevProps.confirmed !== this.props.confirmed && !!this.props.confirmed && !!this.state.confirmedAction) {
2283
+ this.state.confirmedAction();
2284
+ }
2285
+ }
2286
+ }, {
2287
+ key: "render",
2288
+ value: function render() {
2289
+ var _this$props2 = this.props,
2290
+ modulesManager = _this$props2.modulesManager,
2291
+ classes = _this$props2.classes,
2292
+ state = _this$props2.state,
2293
+ rights = _this$props2.rights,
2294
+ userId = _this$props2.userId,
2295
+ fetchingUser = _this$props2.fetchingUser,
2296
+ errorUser = _this$props2.errorUser,
2297
+ _this$props2$readOnly = _this$props2.readOnly,
2298
+ readOnly = _this$props2$readOnly === void 0 ? false : _this$props2$readOnly,
2299
+ add = _this$props2.add,
2300
+ save = _this$props2.save,
2301
+ back = _this$props2.back,
2302
+ obligatoryUserFields = _this$props2.obligatoryUserFields,
2303
+ obligatoryEoFields = _this$props2.obligatoryEoFields,
2304
+ usernameLength = _this$props2.usernameLength,
2305
+ passwordPolicy = _this$props2.passwordPolicy;
2306
+ var _this$state = this.state,
2307
+ user = _this$state.user,
2308
+ isSaved = _this$state.isSaved,
2309
+ reset = _this$state.reset;
2310
+ if (!rights.includes(RIGHT_USERS)) return null;
2311
+ var isInMutation = (user === null || user === void 0 ? void 0 : user.clientMutationId) || modulesManager.getContribs(USER_OVERVIEW_MUTATIONS_KEY).some(function (mutation) {
2312
+ return mutation(state);
2313
+ });
2314
+ var actions = [{
2315
+ doIt: this.reload,
2316
+ icon: /*#__PURE__*/React__default["default"].createElement(ReplayIcon__default["default"], null),
2317
+ onlyIfDirty: !readOnly && !isInMutation && !isSaved
2318
+ }];
2319
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2320
+ className: isInMutation || !!(user !== null && user !== void 0 && user.validityTo) ? classes.lockedPage : null
2321
+ }, /*#__PURE__*/React__default["default"].createElement(feCore.Helmet, {
2322
+ title: feCore.formatMessageWithValues(this.props.intl, "admin.user", "UserOverview.title", {
2323
+ label: ""
2324
+ })
2325
+ }), /*#__PURE__*/React__default["default"].createElement(feCore.ProgressOrError, {
2326
+ progress: fetchingUser,
2327
+ error: errorUser
2328
+ }), (!userId || (user === null || user === void 0 ? void 0 : user.id) === userId) && /*#__PURE__*/React__default["default"].createElement(feCore.Form, {
2329
+ module: "user",
2330
+ title: userId ? "admin.user.UserOverview.title" : "admin.user.UserOverview.newTitle",
2331
+ edited_id: userId,
2332
+ edited: user,
2333
+ reset: reset,
2334
+ back: back,
2335
+ add: add,
2336
+ openDirty: save,
2337
+ readOnly: readOnly || isInMutation || (user === null || user === void 0 ? void 0 : user.validityTo),
2338
+ actions: actions,
2339
+ HeadPanel: UserMasterPanel$1,
2340
+ Panels: [].concat(_toConsumableArray__default["default"](rights.includes(RIGHT_ENROLMENTOFFICER) ? [EnrolmentOfficerFormPanel$1] : []), _toConsumableArray__default["default"](rights.includes(RIGHT_CLAIMADMINISTRATOR) ? [ClaimAdministratorFormPanel$1] : [])),
2341
+ user: user,
2342
+ onEditedChanged: this.onEditedChanged,
2343
+ canSave: !user.validityTo && this.canSave,
2344
+ save: save && !user.validityTo ? this.save : null,
2345
+ onActionToConfirm: this.onActionToConfirm,
2346
+ obligatory_user_fields: obligatoryUserFields,
2347
+ obligatory_eo_fields: obligatoryEoFields,
2348
+ usernameLength: usernameLength,
2349
+ passwordPolicy: passwordPolicy
2350
+ }));
2351
+ }
2352
+ }]);
2353
+ }(React.Component);
2354
+ var mapStateToProps = function mapStateToProps(state) {
2355
+ var _state$core$user$i_us, _state$core, _state$admin$validati, _state$admin$validati2, _state$admin, _state$admin2, _state$admin$validati3;
2356
+ return {
2357
+ rights: (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [],
2358
+ fetchingUser: state.admin.fetchingUser,
2359
+ errorUser: state.admin.errorUser,
2360
+ fetchedUser: state.admin.fetchedUser,
2361
+ submittingMutation: state.admin.submittingMutation,
2362
+ mutation: state.admin.mutation,
2363
+ user: state.admin.user,
2364
+ region_districts: state.admin.reg_dst,
2365
+ confirmed: state.core.confirmed,
2366
+ obligatoryUserFields: state.admin.obligatory_user_fields,
2367
+ obligatoryEoFields: state.admin.obligatory_eo_fields,
2368
+ isUserNameValid: (_state$admin$validati = state.admin.validationFields) === null || _state$admin$validati === void 0 || (_state$admin$validati = _state$admin$validati.username) === null || _state$admin$validati === void 0 ? void 0 : _state$admin$validati.isValid,
2369
+ isUserEmailValid: (_state$admin$validati2 = state.admin.validationFields) === null || _state$admin$validati2 === void 0 || (_state$admin$validati2 = _state$admin$validati2.userEmail) === null || _state$admin$validati2 === void 0 ? void 0 : _state$admin$validati2.isValid,
2370
+ usernameLength: (_state$admin = state.admin) === null || _state$admin === void 0 ? void 0 : _state$admin.usernameLength,
2371
+ passwordPolicy: (_state$admin2 = state.admin) === null || _state$admin2 === void 0 ? void 0 : _state$admin2.passwordPolicy,
2372
+ isUserEmailFormatInvalid: (_state$admin$validati3 = state.admin.validationFields) === null || _state$admin$validati3 === void 0 || (_state$admin$validati3 = _state$admin$validati3.userEmailFormat) === null || _state$admin$validati3 === void 0 ? void 0 : _state$admin$validati3.isInvalid
2373
+ };
2374
+ };
2375
+ var mapDispatchToProps = function mapDispatchToProps(dispatch) {
2376
+ return redux.bindActionCreators({
2377
+ fetchUser: fetchUser,
2378
+ createUser: createUser,
2379
+ clearUser: clearUser,
2380
+ fetchUserMutation: fetchUserMutation,
2381
+ fetchRegionDistricts: fetchRegionDistricts,
2382
+ fetchObligatoryUserFields: fetchObligatoryUserFields,
2383
+ fetchObligatoryEnrolmentOfficerFields: fetchObligatoryEnrolmentOfficerFields,
2384
+ fetchUsernameLength: fetchUsernameLength,
2385
+ fetchPasswordPolicy: fetchPasswordPolicy,
2386
+ journalize: feCore.journalize,
2387
+ coreConfirm: feCore.coreConfirm
2388
+ }, dispatch);
2389
+ };
2390
+ var UserForm$1 = feCore.withHistory(feCore.withModulesManager(reactRedux.connect(mapStateToProps, mapDispatchToProps)(reactIntl.injectIntl(styles$a.withTheme(styles$a.withStyles(styles$2)(UserForm))))));
2391
+
2392
+ var styles$1 = function styles(theme) {
2393
+ return {
2394
+ page: theme.page
2395
+ };
2396
+ };
2397
+ var UserPage = function UserPage(props) {
2398
+ var modulesManager = props.modulesManager,
2399
+ history = props.history,
2400
+ match = props.match,
2401
+ classes = props.classes;
2402
+ var rights = reactRedux.useSelector(function (state) {
2403
+ var _state$core$user$i_us, _state$core;
2404
+ return (_state$core$user$i_us = (_state$core = state.core) === null || _state$core === void 0 || (_state$core = _state$core.user) === null || _state$core === void 0 || (_state$core = _state$core.i_user) === null || _state$core === void 0 ? void 0 : _state$core.rights) !== null && _state$core$user$i_us !== void 0 ? _state$core$user$i_us : [];
2405
+ });
2406
+ var _useState = React.useState(Date.now()),
2407
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2408
+ resetKey = _useState2[0],
2409
+ setResetKey = _useState2[1];
2410
+ var _useTranslations = feCore.useTranslations("admin", modulesManager),
2411
+ formatMessageWithValues = _useTranslations.formatMessageWithValues;
2412
+ var dispatch = reactRedux.useDispatch();
2413
+ var add = function add() {
2414
+ setResetKey(Date.now());
2415
+ feCore.historyPush(modulesManager, history, "admin.userNew");
2416
+ };
2417
+ var save = function save(user) {
2418
+ if (!user.id) {
2419
+ dispatch(createUser(modulesManager, user, formatMessageWithValues("user.createUser.mutationLabel")));
2420
+ } else {
2421
+ dispatch(updateUser(modulesManager, user, formatMessageWithValues("user.updateUser.mutationLabel")));
2422
+ }
2423
+ };
2424
+ return /*#__PURE__*/React__default["default"].createElement("div", {
2425
+ className: classes.page
2426
+ }, /*#__PURE__*/React__default["default"].createElement(UserForm$1, {
2427
+ key: resetKey,
2428
+ readOnly: match.params.user_id ? !rights.includes(RIGHT_USER_EDIT) : !rights.includes(RIGHT_USER_ADD),
2429
+ userId: match.params.user_id,
2430
+ back: function back() {
2431
+ return feCore.historyPush(modulesManager, history, "admin.users");
2432
+ },
2433
+ add: rights.includes(RIGHT_USER_ADD) ? add : null,
2434
+ save: rights.includes(RIGHT_USER_EDIT) ? save : null
2435
+ }));
2436
+ };
2437
+ var enhance = feCore.combine(feCore.withHistory, feCore.withModulesManager, styles$a.withTheme, styles$a.withStyles(styles$1));
2438
+ var UserPage$1 = enhance(UserPage);
2439
+
2440
+ var messagesEn = {
2441
+ "admin.UserPicker.label": "User",
2442
+ "admin.UserPicker.null": "Any",
2443
+ "admin.mainMenu": "Administration",
2444
+ "admin.menu.claimAdministrators": "Claim Administrators",
2445
+ "admin.menu.enrollmentOfficers": "Enrollment Officers",
2446
+ "admin.menu.healthFacilities": "Health Facilities",
2447
+ "admin.menu.locations": "Locations",
2448
+ "admin.menu.medicalItems": "Medical Items",
2449
+ "admin.menu.medicalItemsPrices": "Medical Items Price Lists",
2450
+ "admin.menu.medicalServices": "Medical Services",
2451
+ "admin.menu.medicalServicesPrices": "Medical Services Price Lists",
2452
+ "admin.menu.payers": "Payers",
2453
+ "admin.menu.products": "Products",
2454
+ "admin.menu.users": "Users",
2455
+ "admin.menu.usersProfiles": "Users Profiles",
2456
+ "admin.showHistory": "Show historical values",
2457
+ "admin.user.CreateUser.mutationLabel": "Create user",
2458
+ "admin.user.UserOverview.newTitle": "New User",
2459
+ "admin.user.UserOverview.title": "User Details",
2460
+ "admin.user.address": "Address",
2461
+ "admin.user.addNewUser.tooltip": "Add new user",
2462
+ "admin.user.addNewUserTooltip": "Add new user",
2463
+ "admin.user.usernameAlreadyTaken": "Username already in use",
2464
+ "admin.user.emailAlreadyTaken": "User email already in use",
2465
+ "admin.user.emailFormatInvalid": "Invalid email format",
2466
+ "admin.user.createUser.mutationLabel": "Create user",
2467
+ "admin.user.deleteDialog.message": "Are you sure you want to delete this user?",
2468
+ "admin.user.deleteDialog.title": "Delete user",
2469
+ "admin.user.deleteDialog.yes.button": "Yes",
2470
+ "admin.user.deleteUser.tooltip": "Delete user",
2471
+ "admin.user.deleteUserDialog.message": "Are you sure you want to delete this user?",
2472
+ "admin.user.dob": "Birth date",
2473
+ "admin.user.dobFrom": "Birth date from",
2474
+ "admin.user.dobTo": "Birth date to",
2475
+ "admin.user.email": "Email",
2476
+ "admin.user.districts": "Districts",
2477
+ "admin.user.regions": "Regions",
2478
+ "admin.user.lastName": "Last name",
2479
+ "admin.user.language": "Interface Language",
2480
+ "admin.user.openNewTab": "Open in new tab",
2481
+ "admin.user.otherNames": "Other names",
2482
+ "admin.user.givenNames": "Given names",
2483
+ "admin.user.password": "Password",
2484
+ "admin.user.newPassword": "New Password",
2485
+ "admin.user.confirmNewPassword": "Confirm Password",
2486
+ "admin.user.generatePassword": "Generate Password",
2487
+ "admin.user.phone": "Phone",
2488
+ "admin.user.updateUser.mutationLabel": "Update user",
2489
+ "admin.user.userRoles.placeholder": "Select User Role(s)",
2490
+ "admin.user.userRoles": "User role(s)",
2491
+ "admin.user.userSummaries": "{count} user(s) found",
2492
+ "admin.user.userTypes": "User type(s)",
2493
+ "admin.user.userTypes.CLAIM_ADMIN": "Claim admin",
2494
+ "admin.user.userTypes.INTERACTIVE": "Interactive",
2495
+ "admin.user.userTypes.OFFICER": "Enrolment Officer",
2496
+ "admin.user.userTypes.noOptions": "No user type found",
2497
+ "admin.user.userTypes.none": " ",
2498
+ "admin.user.userTypes.null": "Any",
2499
+ "admin.user.username": "User name",
2500
+ "admin.PaymentPointManagerPicker.placeholder": "Search for an PPM...",
2501
+ "admin.PaymentPointManagerPicker.label": "Payment Point Manager",
2502
+ "admin.user.worksTo": "Works to",
2503
+ "admin.EnrolmentOfficerFormPanel.title": "Enrolment Officer",
2504
+ "admin.ClaimAdministratorFormPanel.title": "Claim Administrator",
2505
+ "admin.InteractiveUserFormPanel.title": "Interactive User",
2506
+ "admin.EnrolmentZonesPicker.table.municipality": "Municipality",
2507
+ "admin.EnrolmentZonesPicker.table.newRow": "Add a municipality",
2508
+ "admin.EnrolmentZonesPicker.table.villages": "Villages",
2509
+ "admin.EnrolmentZonesPicker.table.addButton": "Add a municipality",
2510
+ "admin.EnrolmentOfficerFormPanel.substitutionOfficer": "Substitution Officer",
2511
+ "admin.EnrolmentOfficerFormPanel.substitutionOfficer.placeholder": "Search for an Officer...",
2512
+ "admin.UserPicker.loadingText": "Loading...",
2513
+ "admin.UserPicker.clearText": "Clear",
2514
+ "admin.UserPicker.openText": "Open",
2515
+ "admin.UserPicker.closeText": "Close",
2516
+ "admin.UserMasterPanel.loginDetailsTitle": "Login Details",
2517
+ "admin.UserMasterPanel.language.null": "Select a language",
2518
+ "admin.EnrolmentOfficerPicker.label": "Select an Officer",
2519
+ "admin.EnrolmentOfficerPicker.loadingText": "Loading...",
2520
+ "admin.EnrolmentOfficerPicker.clearText": "Clear",
2521
+ "admin.EnrolmentOfficerPicker.openText": "Open",
2522
+ "admin.EnrolmentOfficerPicker.closeText": "Close",
2523
+ "admin.UserFilter.showHistory": "Show History",
2524
+ "admin.UserFilter.showDeleted": "Show Deleted",
2525
+ "admin.password.minLength": "at least {count} characters",
2526
+ "admin.password.lowerCase": "{count, plural, one {# lowercase letter} other {# lowercase letters}}",
2527
+ "admin.password.upperCase": "{count, plural, one {# uppercase letter} other {# uppercase letters}}",
2528
+ "admin.password.numbers": "{count, plural, one {# number} other {# numbers}}",
2529
+ "admin.password.specialCharacters": "{count, plural, one {# special character} other {# special characters}}",
2530
+ "admin.password.requirements": "Password must include: {requirements}.",
2531
+ "admin.password.weak": "Weak",
2532
+ "admin.password.medium": "Medium",
2533
+ "admin.password.strong": "Password is strong.",
2534
+ "admin.password.veryStrong": "Password is very strong.",
2535
+ "admin.password.unknownScore": "Unknown score."
2536
+ };
2537
+
2538
+ var styles = function styles(theme) {
2539
+ return {
2540
+ label: {
2541
+ color: theme.palette.primary.main
2542
+ }
2543
+ };
2544
+ };
2545
+ var UserPicker = function UserPicker(props) {
2546
+ var onChange = props.onChange,
2547
+ modulesManager = props.modulesManager,
2548
+ _props$readOnly = props.readOnly,
2549
+ readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
2550
+ _props$required = props.required,
2551
+ required = _props$required === void 0 ? false : _props$required,
2552
+ _props$withLabel = props.withLabel,
2553
+ withLabel = _props$withLabel === void 0 ? true : _props$withLabel,
2554
+ healthFacility = props.healthFacility,
2555
+ _props$filters = props.filters,
2556
+ filters = _props$filters === void 0 ? [] : _props$filters,
2557
+ value = props.value,
2558
+ label = props.label,
2559
+ filterOptions = props.filterOptions,
2560
+ filterSelectedOptions = props.filterSelectedOptions,
2561
+ placeholder = props.placeholder,
2562
+ _props$multiple = props.multiple,
2563
+ multiple = _props$multiple === void 0 ? false : _props$multiple;
2564
+ var minCharLookup = modulesManager.getConf("fe-admin", "usersMinCharLookup", 2);
2565
+ var dispatch = reactRedux.useDispatch();
2566
+ var _useState = React.useState(null),
2567
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2568
+ searchString = _useState2[0],
2569
+ setSearchString = _useState2[1];
2570
+ var _useTranslations = feCore.useTranslations("admin.UserPicker", modulesManager),
2571
+ formatMessage = _useTranslations.formatMessage;
2572
+ var _useState3 = React.useState(false),
2573
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
2574
+ open = _useState4[0],
2575
+ setOpen = _useState4[1];
2576
+ var users = reactRedux.useSelector(function (state) {
2577
+ return state.admin.users.items;
2578
+ });
2579
+ var isLoading = reactRedux.useSelector(function (state) {
2580
+ return state.admin.users.isLoading;
2581
+ });
2582
+ var _onInputChange = feCore.useDebounceCb(setSearchString, modulesManager.getConf("fe-admin", "debounceTime", 400));
2583
+ // eslint-disable-next-line no-shadow
2584
+ var handleChange = function handleChange(__, value) {
2585
+ onChange(value);
2586
+ if (!multiple) setOpen(false);
2587
+ };
2588
+ var formatSuggestion = function formatSuggestion(p) {
2589
+ var _p$iUser, _p$iUser2, _p$iUser3, _p$iUser4;
2590
+ var renderLastNameFirst = modulesManager.getConf("fe-insuree", "renderLastNameFirst", DEFAULT.RENDER_LAST_NAME_FIRST);
2591
+ if (!p) return "?";
2592
+ return [p.username, renderLastNameFirst ? (_p$iUser = p.iUser) === null || _p$iUser === void 0 ? void 0 : _p$iUser.lastName : (_p$iUser2 = p.iUser) === null || _p$iUser2 === void 0 ? void 0 : _p$iUser2.otherNames, !renderLastNameFirst ? (_p$iUser3 = p.iUser) === null || _p$iUser3 === void 0 ? void 0 : _p$iUser3.lastName : (_p$iUser4 = p.iUser) === null || _p$iUser4 === void 0 ? void 0 : _p$iUser4.otherNames].filter(Boolean).join(" ");
2593
+ };
2594
+ React.useEffect(function () {
2595
+ if ((searchString === null || searchString === void 0 ? void 0 : searchString.length) > minCharLookup) {
2596
+ dispatch(fetchUsers(modulesManager, [searchString && "str: \"".concat(searchString, "\"")].concat(_toConsumableArray__default["default"](filters !== null && filters !== void 0 ? filters : [])).filter(Boolean), !healthFacility));
2597
+ }
2598
+ }, [searchString]);
2599
+ React.useEffect(function () {
2600
+ if (open) {
2601
+ dispatch(fetchUsers(modulesManager, ["first: 10"].concat(_toConsumableArray__default["default"](filters !== null && filters !== void 0 ? filters : [])), !healthFacility));
2602
+ }
2603
+ }, [open]);
2604
+ return /*#__PURE__*/React__default["default"].createElement(lab.Autocomplete, {
2605
+ loadingText: formatMessage("loadingText"),
2606
+ openText: formatMessage("openText"),
2607
+ closeText: formatMessage("closeText"),
2608
+ clearText: formatMessage("clearText"),
2609
+ openOnFocus: true,
2610
+ multiple: multiple,
2611
+ disabled: readOnly,
2612
+ options: users,
2613
+ loading: isLoading,
2614
+ open: open,
2615
+ onOpen: function onOpen() {
2616
+ return setOpen(true);
2617
+ },
2618
+ onClose: function onClose() {
2619
+ return setOpen(false);
2620
+ },
2621
+ autoComplete: true,
2622
+ value: value,
2623
+ getOptionLabel: function getOptionLabel(option) {
2624
+ return formatSuggestion(option);
2625
+ },
2626
+ getOptionSelected: function getOptionSelected(option, v) {
2627
+ return option.id === v.id;
2628
+ },
2629
+ onChange: handleChange,
2630
+ filterOptions: filterOptions,
2631
+ filterSelectedOptions: filterSelectedOptions,
2632
+ onInputChange: function onInputChange(__, query) {
2633
+ return _onInputChange(query);
2634
+ },
2635
+ renderInput: function renderInput(inputProps) {
2636
+ return /*#__PURE__*/React__default["default"].createElement(core.TextField, _extends__default["default"]({}, inputProps, {
2637
+ variant: "standard",
2638
+ required: required,
2639
+ label: withLabel && (label || formatMessage("label")),
2640
+ placeholder: placeholder
2641
+ }));
2642
+ }
2643
+ });
2644
+ };
2645
+ var UserPicker$1 = feCore.withModulesManager(styles$a.withTheme(styles$a.withStyles(styles)(UserPicker)));
2646
+
2647
+ var EnrolmentOfficerPicker = function EnrolmentOfficerPicker(props) {
2648
+ var onChange = props.onChange,
2649
+ modulesManager = props.modulesManager,
2650
+ _props$readOnly = props.readOnly,
2651
+ readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
2652
+ _props$required = props.required,
2653
+ required = _props$required === void 0 ? false : _props$required,
2654
+ _props$withLabel = props.withLabel,
2655
+ withLabel = _props$withLabel === void 0 ? true : _props$withLabel,
2656
+ value = props.value,
2657
+ label = props.label,
2658
+ filterOptions = props.filterOptions,
2659
+ filterSelectedOptions = props.filterSelectedOptions,
2660
+ placeholder = props.placeholder,
2661
+ _props$multiple = props.multiple,
2662
+ multiple = _props$multiple === void 0 ? false : _props$multiple;
2663
+ var dispatch = reactRedux.useDispatch();
2664
+ var _useState = React.useState(null),
2665
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2666
+ searchString = _useState2[0],
2667
+ setSearchString = _useState2[1];
2668
+ var isLoading = reactRedux.useSelector(function (state) {
2669
+ return state.admin.enrolmentOfficers.isFetching;
2670
+ });
2671
+ var options = reactRedux.useSelector(function (state) {
2672
+ return state.admin.enrolmentOfficers.items;
2673
+ });
2674
+ React.useEffect(function () {
2675
+ dispatch(fetchEnrolmentOfficers(modulesManager, {
2676
+ first: searchString ? undefined : 10,
2677
+ searchString: searchString
2678
+ }));
2679
+ }, [searchString]);
2680
+ var formatSuggestion = function formatSuggestion(p) {
2681
+ var renderLastNameFirst = modulesManager.getConf("fe-insuree", "renderLastNameFirst", DEFAULT.RENDER_LAST_NAME_FIRST);
2682
+ if (!p) return "?";
2683
+ return [p.username, renderLastNameFirst ? p.lastName : p.otherNames, !renderLastNameFirst ? p.lastName : p.otherNames].filter(Boolean).join(" ");
2684
+ };
2685
+ return /*#__PURE__*/React__default["default"].createElement(feCore.Autocomplete, {
2686
+ multiple: multiple,
2687
+ required: required,
2688
+ placeholder: placeholder,
2689
+ label: label,
2690
+ withLabel: withLabel,
2691
+ readOnly: readOnly,
2692
+ options: options,
2693
+ isLoading: isLoading,
2694
+ value: value,
2695
+ getOptionLabel: formatSuggestion,
2696
+ onChange: onChange,
2697
+ filterOptions: filterOptions,
2698
+ filterSelectedOptions: filterSelectedOptions,
2699
+ onInputChange: setSearchString
2700
+ });
2701
+ };
2702
+ var EnrolmentOfficerPicker$1 = feCore.withModulesManager(EnrolmentOfficerPicker);
2703
+
2704
+ var SubstitutionEnrolmentOfficerPicker = function SubstitutionEnrolmentOfficerPicker(props) {
2705
+ var _useSelector2;
2706
+ var onChange = props.onChange,
2707
+ modulesManager = props.modulesManager,
2708
+ _props$readOnly = props.readOnly,
2709
+ readOnly = _props$readOnly === void 0 ? false : _props$readOnly,
2710
+ _props$required = props.required,
2711
+ required = _props$required === void 0 ? false : _props$required,
2712
+ value = props.value,
2713
+ villages = props.villages,
2714
+ filterOptions = props.filterOptions,
2715
+ filterSelectedOptions = props.filterSelectedOptions,
2716
+ _props$multiple = props.multiple,
2717
+ multiple = _props$multiple === void 0 ? false : _props$multiple,
2718
+ _props$withLabel = props.withLabel,
2719
+ withLabel = _props$withLabel === void 0 ? true : _props$withLabel,
2720
+ label = props.label,
2721
+ _props$withPlaceholde = props.withPlaceholder,
2722
+ withPlaceholder = _props$withPlaceholde === void 0 ? false : _props$withPlaceholde,
2723
+ placeholder = props.placeholder;
2724
+ var dispatch = reactRedux.useDispatch();
2725
+ var _useTranslations = feCore.useTranslations("admin", modulesManager),
2726
+ formatMessage = _useTranslations.formatMessage;
2727
+ var _useState = React.useState(""),
2728
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2729
+ searchString = _useState2[0],
2730
+ setSearchString = _useState2[1];
2731
+ var _useSelector = reactRedux.useSelector(function (state) {
2732
+ return state.admin.substitutionEnrolmentOfficers;
2733
+ }),
2734
+ isFetching = _useSelector.isFetching,
2735
+ items = _useSelector.items;
2736
+ var officerUuid = (_useSelector2 = reactRedux.useSelector(function (state) {
2737
+ var _state$admin;
2738
+ return (_state$admin = state.admin) === null || _state$admin === void 0 || (_state$admin = _state$admin.user) === null || _state$admin === void 0 || (_state$admin = _state$admin.officer) === null || _state$admin === void 0 ? void 0 : _state$admin.uuid;
2739
+ })) !== null && _useSelector2 !== void 0 ? _useSelector2 : null;
2740
+ var handleInputChange = function handleInputChange(str) {
2741
+ setSearchString(str);
2742
+ fetchSubstitutionEOs(dispatch, modulesManager, officerUuid, searchString, villages);
2743
+ };
2744
+ var formatSuggestion = function formatSuggestion(p) {
2745
+ var renderLastNameFirst = modulesManager.getConf("fe-insuree", "renderLastNameFirst", DEFAULT.RENDER_LAST_NAME_FIRST);
2746
+ if (!p) return "?";
2747
+ return [p.username, renderLastNameFirst ? p.lastName : p.otherNames, !renderLastNameFirst ? p.lastName : p.otherNames].filter(Boolean).join(" ");
2748
+ };
2749
+ return /*#__PURE__*/React__default["default"].createElement(feCore.Autocomplete, {
2750
+ multiple: multiple,
2751
+ required: required,
2752
+ placeholder: placeholder,
2753
+ label: label,
2754
+ withLabel: withLabel,
2755
+ readOnly: readOnly,
2756
+ options: items,
2757
+ isLoading: isFetching,
2758
+ value: value,
2759
+ getOptionLabel: formatSuggestion,
2760
+ onChange: onChange,
2761
+ filterOptions: filterOptions,
2762
+ filterSelectedOptions: filterSelectedOptions,
2763
+ onInputChange: handleInputChange,
2764
+ renderInput: function renderInput(inputProps) {
2765
+ return /*#__PURE__*/React__default["default"].createElement(core.TextField, _extends__default["default"]({}, inputProps, {
2766
+ label: withLabel && (label || formatMessage("EnrolmentOfficerFormPanel.substitutionOfficer")),
2767
+ placeholder: withPlaceholder && (placeholder || formatMessage("EnrolmentOfficerFormPanel.substitutionOfficer.placeholder"))
2768
+ }));
2769
+ }
2770
+ });
2771
+ };
2772
+ var SubstitutionEnrolmentOfficerPicker$1 = feCore.withModulesManager(SubstitutionEnrolmentOfficerPicker);
2773
+
2774
+ var UserRolesPicker = function UserRolesPicker(_ref) {
2775
+ var _data$role$edges$map, _data$role;
2776
+ var readOnly = _ref.readOnly,
2777
+ value = _ref.value,
2778
+ _onChange = _ref.onChange,
2779
+ required = _ref.required,
2780
+ _ref$multiple = _ref.multiple,
2781
+ multiple = _ref$multiple === void 0 ? true : _ref$multiple,
2782
+ placeholder = _ref.placeholder,
2783
+ withLabel = _ref.withLabel,
2784
+ withPlaceholder = _ref.withPlaceholder,
2785
+ label = _ref.label,
2786
+ filterOptions = _ref.filterOptions,
2787
+ filterSelectedOptions = _ref.filterSelectedOptions;
2788
+ var _useState = React.useState(),
2789
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2790
+ searchString = _useState2[0],
2791
+ setSearchString = _useState2[1];
2792
+ var _useTranslations = feCore.useTranslations("admin"),
2793
+ formatMessage = _useTranslations.formatMessage;
2794
+ var _useGraphqlQuery = feCore.useGraphqlQuery("\n query UserRolesPicker ($str: String) {\n role(str: $str) {\n edges {\n node {\n id name isSystem\n }\n }\n }\n }\n ", {
2795
+ str: searchString
2796
+ }),
2797
+ isLoading = _useGraphqlQuery.isLoading,
2798
+ data = _useGraphqlQuery.data,
2799
+ error = _useGraphqlQuery.error;
2800
+ var roles = (_data$role$edges$map = data === null || data === void 0 || (_data$role = data.role) === null || _data$role === void 0 ? void 0 : _data$role.edges.map(function (edge) {
2801
+ return edge.node;
2802
+ })) !== null && _data$role$edges$map !== void 0 ? _data$role$edges$map : [];
2803
+ var uniqueValues = _toConsumableArray__default["default"](new Map(value === null || value === void 0 ? void 0 : value.map(function (role) {
2804
+ return [role.id, role];
2805
+ })).values());
2806
+ return /*#__PURE__*/React__default["default"].createElement(feCore.Autocomplete, {
2807
+ multiple: multiple,
2808
+ required: required,
2809
+ placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : formatMessage("user.userRoles.placeholder"),
2810
+ label: label !== null && label !== void 0 ? label : formatMessage("user.userRoles"),
2811
+ error: error,
2812
+ withLabel: withLabel,
2813
+ withPlaceholder: withPlaceholder,
2814
+ readOnly: readOnly,
2815
+ options: roles,
2816
+ isLoading: isLoading,
2817
+ value: uniqueValues,
2818
+ getOptionLabel: function getOptionLabel(o) {
2819
+ return o === null || o === void 0 ? void 0 : o.name;
2820
+ },
2821
+ onChange: function onChange(option) {
2822
+ return _onChange(option, option === null || option === void 0 ? void 0 : option.name);
2823
+ },
2824
+ filterOptions: filterOptions,
2825
+ filterSelectedOptions: filterSelectedOptions,
2826
+ onInputChange: function onInputChange() {
2827
+ return setSearchString(searchString);
2828
+ }
2829
+ });
2830
+ };
2831
+
2832
+ var UserTypesPicker = function UserTypesPicker(props) {
2833
+ var intl = reactIntl.useIntl();
2834
+ var rights = reactRedux.useSelector(function (state) {
2835
+ return !!state.core && !!state.core.user && !!state.core.user.i_user ? state.core.user.i_user.rights : [];
2836
+ });
2837
+ var options = USER_TYPES(rights).map(function (ut) {
2838
+ return {
2839
+ id: ut,
2840
+ label: feCore.formatMessage(intl, "admin.user", "userTypes.".concat(ut))
2841
+ };
2842
+ });
2843
+ var value = [];
2844
+ if (props.value) {
2845
+ props.value.forEach(function (v) {
2846
+ var fullValue = options.find(function (o) {
2847
+ return o.id === v;
2848
+ });
2849
+ if (fullValue) {
2850
+ value.push(fullValue);
2851
+ }
2852
+ });
2853
+ }
2854
+ return /*#__PURE__*/React__default["default"].createElement(Autocomplete__default["default"], {
2855
+ multiple: true,
2856
+ noOptionsText: feCore.formatMessage(intl, "admin.user", "userTypes.noOptions"),
2857
+ disabled: props.readOnly,
2858
+ id: "user-types-select",
2859
+ options: options,
2860
+ getOptionLabel: function getOptionLabel(option) {
2861
+ return option.label;
2862
+ },
2863
+ onChange: function onChange(e, userTypes) {
2864
+ return props.onChange(userTypes.map(function (ut) {
2865
+ return ut.id;
2866
+ }));
2867
+ },
2868
+ renderInput: function renderInput(params) {
2869
+ return /*#__PURE__*/React__default["default"].createElement(TextField__default["default"], _extends__default["default"]({}, params, {
2870
+ variant: "standard",
2871
+ label: "".concat(feCore.formatMessage(intl, "admin.user", "userTypes")).concat(props.required ? "*" : ""),
2872
+ placeholder: ""
2873
+ }));
2874
+ },
2875
+ value: value
2876
+ });
2877
+ };
2878
+
2879
+ function PaymentPointManagerPicker(_ref) {
2880
+ var _data$users$edges$map, _data$users;
2881
+ var readOnly = _ref.readOnly,
2882
+ value = _ref.value,
2883
+ _onChange = _ref.onChange,
2884
+ required = _ref.required,
2885
+ withLabel = _ref.withLabel,
2886
+ withPlaceholder = _ref.withPlaceholder,
2887
+ filterOptions = _ref.filterOptions,
2888
+ filterSelectedOptions = _ref.filterSelectedOptions;
2889
+ var _useState = React.useState(),
2890
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
2891
+ searchString = _useState2[0],
2892
+ setSearchString = _useState2[1];
2893
+ var _useTranslations = feCore.useTranslations("admin"),
2894
+ formatMessage = _useTranslations.formatMessage;
2895
+
2896
+ // Note: IMIS Administrator covers all Payment Point Manager permissions
2897
+ var paymentPointManagerRoleId = 7;
2898
+ var formatSuggestion = function formatSuggestion(ppm) {
2899
+ var _ppm$iUser, _ppm$iUser2;
2900
+ return [ppm === null || ppm === void 0 ? void 0 : ppm.username, ppm === null || ppm === void 0 || (_ppm$iUser = ppm.iUser) === null || _ppm$iUser === void 0 ? void 0 : _ppm$iUser.lastName, ppm === null || ppm === void 0 || (_ppm$iUser2 = ppm.iUser) === null || _ppm$iUser2 === void 0 ? void 0 : _ppm$iUser2.otherNames].filter(Boolean).join(" ");
2901
+ };
2902
+ var _useGraphqlQuery = feCore.useGraphqlQuery("\n query paymentPointManager($searchString: String, $roleId: Int) {\n users(str: $searchString, roleId: $roleId) {\n edges {\n node {\n ".concat(USER_PICKER_PROJECTION.join(" "), "\n }\n }\n }\n }\n "), {
2903
+ str: searchString,
2904
+ roleId: paymentPointManagerRoleId
2905
+ }),
2906
+ isLoading = _useGraphqlQuery.isLoading,
2907
+ data = _useGraphqlQuery.data,
2908
+ error = _useGraphqlQuery.error;
2909
+ var paymentPointManagers = (_data$users$edges$map = data === null || data === void 0 || (_data$users = data.users) === null || _data$users === void 0 ? void 0 : _data$users.edges.map(function (edge) {
2910
+ return edge.node;
2911
+ })) !== null && _data$users$edges$map !== void 0 ? _data$users$edges$map : [];
2912
+ return /*#__PURE__*/React__default["default"].createElement(feCore.Autocomplete, {
2913
+ withLabel: withLabel,
2914
+ withPlaceholder: withPlaceholder,
2915
+ readOnly: readOnly,
2916
+ value: value,
2917
+ placeholder: formatMessage("PaymentPointManagerPicker.placeholder"),
2918
+ label: formatMessage("PaymentPointManagerPicker.label"),
2919
+ isLoading: isLoading,
2920
+ options: paymentPointManagers,
2921
+ error: error,
2922
+ getOptionLabel: function getOptionLabel(option) {
2923
+ return formatSuggestion(option);
2924
+ },
2925
+ onChange: function onChange(user) {
2926
+ return _onChange(user);
2927
+ },
2928
+ filterOptions: filterOptions,
2929
+ filterSelectedOptions: filterSelectedOptions,
2930
+ onInputChange: function onInputChange() {
2931
+ return setSearchString(searchString);
2932
+ },
2933
+ renderInput: function renderInput(inputProps) {
2934
+ return /*#__PURE__*/React__default["default"].createElement(core.TextField, _extends__default["default"]({}, inputProps, {
2935
+ variant: "standard",
2936
+ required: required,
2937
+ label: withLabel && formatMessage("PaymentPointManagerPicker.label"),
2938
+ placeholder: withPlaceholder && formatMessage("PaymentPointManagerPicker.placeholder")
2939
+ }));
2940
+ }
2941
+ });
2942
+ }
2943
+
2944
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2945
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2946
+ function reducer() {
2947
+ var _action$payload, _action$payload2, _action$payload3;
2948
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
2949
+ enrolmentOfficers: {
2950
+ items: [],
2951
+ isFetching: false,
2952
+ pageInfo: {
2953
+ totalCount: 0
2954
+ },
2955
+ error: null
2956
+ },
2957
+ substitutionEnrolmentOfficers: {
2958
+ items: [],
2959
+ isFetching: false,
2960
+ pageInfo: {
2961
+ totalCount: 0
2962
+ },
2963
+ error: null
2964
+ },
2965
+ usersSummaries: {
2966
+ items: [],
2967
+ isFetching: false,
2968
+ isFetched: false,
2969
+ fetched: null,
2970
+ pageInfo: {
2971
+ totalCount: 0
2972
+ },
2973
+ error: null
2974
+ },
2975
+ users: {
2976
+ items: [],
2977
+ isFetching: false,
2978
+ isFetched: false,
2979
+ error: null
2980
+ },
2981
+ fetchingUser: false,
2982
+ fetchedUser: false,
2983
+ errorUser: null,
2984
+ user: null,
2985
+ submittingMutation: false,
2986
+ mutation: {},
2987
+ reg_dst: [],
2988
+ dst_mun_vil: [],
2989
+ obligatory_user_fields: {},
2990
+ obligatory_eo_fields: {}
2991
+ };
2992
+ var action = arguments.length > 1 ? arguments[1] : undefined;
2993
+ switch (action.type) {
2994
+ case "ADMIN_ENROLMENT_OFFICERS_REQ":
2995
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
2996
+ enrolmentOfficers: _objectSpread$1(_objectSpread$1({}, state.enrolmentOfficers), {}, {
2997
+ isFetching: true
2998
+ })
2999
+ });
3000
+ case "ADMIN_ENROLMENT_OFFICERS_RESP":
3001
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3002
+ enrolmentOfficers: _objectSpread$1(_objectSpread$1({}, state.enrolmentOfficers), {}, {
3003
+ isFetching: false,
3004
+ pageInfo: feCore.pageInfo(action.payload.data.enrolmentOfficers),
3005
+ items: feCore.parseData(action.payload.data.enrolmentOfficers)
3006
+ })
3007
+ });
3008
+ case "ADMIN_ENROLMENT_OFFICERS_ERR":
3009
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3010
+ enrolmentOfficers: _objectSpread$1(_objectSpread$1({}, state.enrolmentOfficers), {}, {
3011
+ isFetching: false,
3012
+ error: feCore.formatGraphQLError(action.payload)
3013
+ })
3014
+ });
3015
+ case "ADMIN_SUBSTITUTION_ENROLMENT_OFFICERS_REQ":
3016
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3017
+ substitutionEnrolmentOfficers: _objectSpread$1(_objectSpread$1({}, state.substitutionEnrolmentOfficers), {}, {
3018
+ isFetching: true
3019
+ })
3020
+ });
3021
+ case "ADMIN_SUBSTITUTION_ENROLMENT_OFFICERS_RESP":
3022
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3023
+ substitutionEnrolmentOfficers: _objectSpread$1(_objectSpread$1({}, state.substitutionEnrolmentOfficers), {}, {
3024
+ isFetching: false,
3025
+ pageInfo: feCore.pageInfo(action.payload.data.substitutionEnrolmentOfficers),
3026
+ items: feCore.parseData(action.payload.data.substitutionEnrolmentOfficers)
3027
+ })
3028
+ });
3029
+ case "ADMIN_SUBSTITUTION_ENROLMENT_OFFICERS_ERR":
3030
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3031
+ substitutionEnrolmentOfficers: _objectSpread$1(_objectSpread$1({}, state.substitutionEnrolmentOfficers), {}, {
3032
+ isFetching: false,
3033
+ error: feCore.formatGraphQLError(action.payload)
3034
+ })
3035
+ });
3036
+ case "ADMIN_USERS_REQ":
3037
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3038
+ users: _objectSpread$1(_objectSpread$1({}, state.users), {}, {
3039
+ isFetching: true,
3040
+ fetched: null,
3041
+ error: null
3042
+ })
3043
+ });
3044
+ case "ADMIN_USERS_RESP":
3045
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3046
+ users: _objectSpread$1(_objectSpread$1({}, state.users), {}, {
3047
+ isFetching: false,
3048
+ fetched: action.meta,
3049
+ items: feCore.parseData(action.payload.data.users).map(function (user) {
3050
+ return _objectSpread$1(_objectSpread$1({}, user), {}, {
3051
+ userTypes: checkRolesAndGetUserTypes(user)
3052
+ });
3053
+ }),
3054
+ error: feCore.formatGraphQLError(action.payload)
3055
+ })
3056
+ });
3057
+ case "ADMIN_USERS_ERR":
3058
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3059
+ users: _objectSpread$1(_objectSpread$1({}, state.users), {}, {
3060
+ error: feCore.formatServerError(action.payload),
3061
+ isFetching: false,
3062
+ items: []
3063
+ })
3064
+ });
3065
+ case "ADMIN_USERS_SUMMARIES_REQ":
3066
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3067
+ usersSummaries: _objectSpread$1(_objectSpread$1({}, state.usersSummaries), {}, {
3068
+ isFetching: true,
3069
+ isFetched: false,
3070
+ error: null
3071
+ })
3072
+ });
3073
+ case "ADMIN_USERS_SUMMARIES_RESP":
3074
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3075
+ usersSummaries: _objectSpread$1(_objectSpread$1({}, state.usersSummaries), {}, {
3076
+ isFetching: false,
3077
+ isFetched: true,
3078
+ fetched: action.meta,
3079
+ pageInfo: feCore.pageInfo(action.payload.data.users),
3080
+ items: feCore.parseData(action.payload.data.users),
3081
+ error: feCore.formatGraphQLError(action.payload)
3082
+ })
3083
+ });
3084
+ case "ADMIN_USERS_SUMMARIES_ERR":
3085
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3086
+ usersSummaries: _objectSpread$1(_objectSpread$1({}, state.usersSummaries), {}, {
3087
+ isFetching: false,
3088
+ isFetched: true,
3089
+ fetched: null,
3090
+ items: [],
3091
+ error: feCore.formatGraphQLError(action.payload)
3092
+ })
3093
+ });
3094
+ case "ADMIN_USER_OVERVIEW_REQ":
3095
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3096
+ fetchingUser: true,
3097
+ fetchedUser: false,
3098
+ errorUser: null
3099
+ });
3100
+ case "ADMIN_USER_OVERVIEW_RESP":
3101
+ var users = feCore.parseData(action.payload.data.users);
3102
+ var user = null;
3103
+ if ((users === null || users === void 0 ? void 0 : users.length) > 0) {
3104
+ var _users = _slicedToArray__default["default"](users, 1);
3105
+ user = _users[0];
3106
+ user = mapQueriesUserToStore(user);
3107
+ }
3108
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3109
+ fetchingUser: false,
3110
+ fetchedUser: true,
3111
+ user: user,
3112
+ errorUser: feCore.formatGraphQLError(action.payload)
3113
+ });
3114
+ case "ADMIN_USER_OVERVIEW_ERR":
3115
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3116
+ fetchedUser: false,
3117
+ errorUser: feCore.formatServerError(action.payload)
3118
+ });
3119
+ case "ADMIN_USER_OVERVIEW_CLEAR":
3120
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3121
+ isValidating: false,
3122
+ isValid: false,
3123
+ user: null,
3124
+ validationError: null
3125
+ });
3126
+ case "ADMIN_USER_NEW":
3127
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3128
+ usersPageInfo: {
3129
+ totalCount: 0
3130
+ },
3131
+ user: null
3132
+ });
3133
+ case "LOCATION_REGION_DISTRICTS_REQ":
3134
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3135
+ fetching_reg_dst: true,
3136
+ fetched_reg_dst: false,
3137
+ reg_dst: [],
3138
+ errorL1s: null
3139
+ });
3140
+ case "LOCATION_REGION_DISTRICTS_RESP":
3141
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3142
+ fetching_reg_dst: false,
3143
+ fetfetched_reg_dstchedL1s: true,
3144
+ reg_dst: feCore.parseData(action.payload.data.locations || action.payload.data.locationsStr),
3145
+ errorL1s: feCore.formatGraphQLError(action.payload)
3146
+ });
3147
+ case "LOCATION_REGION_DISTRICTS_ERR":
3148
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3149
+ fetching_reg_dst: false,
3150
+ errorL1s: feCore.formatServerError(action.payload)
3151
+ });
3152
+ case "LOCATION_REGION_DISTRICTS_CLEAR":
3153
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3154
+ reg_dst: []
3155
+ });
3156
+ case "LOCATION_DISTRICT_DATA_REQ":
3157
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3158
+ fetchingDistrictMunAndVil: true,
3159
+ fetchedDistrictMunAndVil: false,
3160
+ errorDistrictMunAndVil: null
3161
+ });
3162
+ case "LOCATION_DISTRICT_DATA_RESP":
3163
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3164
+ fetchingDistrictMunAndVil: false,
3165
+ fetchedDistrictMunAndVil: true,
3166
+ districtMunAndVil: feCore.parseData(action.payload.data.locations || action.payload.data.locationsStr),
3167
+ errorDistrictMunAndVil: feCore.formatGraphQLError(action.payload)
3168
+ });
3169
+ case "LOCATION_DISTRICT_DATA_ERR":
3170
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3171
+ fetchingDistrictMunAndVil: false,
3172
+ errorDistrictMunAndVil: feCore.formatServerError(action.payload)
3173
+ });
3174
+ case "LOCATION_DISTRICT_DATA_CLEAR":
3175
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3176
+ districtMunAndVil: []
3177
+ });
3178
+ case "OBLIGTORY_USER_FIELDS_REQ":
3179
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3180
+ fetching_obligatory_user_fields: true,
3181
+ fetched_obligatory_user_fields: false,
3182
+ obligatory_user_fields: null,
3183
+ errorL1s: null
3184
+ });
3185
+ case "OBLIGTORY_USER_FIELDS_RESP":
3186
+ console.log("USER FILED RESPONSE ", action.payload.data.userObligatoryFields);
3187
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3188
+ fetching_obligatory_user_fields: false,
3189
+ fetched_obligatory_user_fields: true,
3190
+ obligatory_user_fields: action.payload.data.userObligatoryFields,
3191
+ errorL1s: feCore.formatGraphQLError(action.payload)
3192
+ });
3193
+ case "OBLIGTORY_USER_FIELDS_ERR":
3194
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3195
+ fetching_obligatory_user_fields: false,
3196
+ errorL1s: feCore.formatServerError(action.payload)
3197
+ });
3198
+ case "OBLIGTORY_EO_FIELDS_REQ":
3199
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3200
+ fetching_obligatory_eo_fields: true,
3201
+ fetched_obligatory_eo_fields: false,
3202
+ obligatory_eo_fields: null,
3203
+ errorL1s: null
3204
+ });
3205
+ case "OBLIGTORY_EO_FIELDS_RESP":
3206
+ console.log("EO FILED RESPONSE ", action.payload.data.eoObligatoryFields);
3207
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3208
+ fetching_obligatory_eo_fields: false,
3209
+ fetched_obligatory_eo_fields: true,
3210
+ obligatory_eo_fields: action.payload.data.eoObligatoryFields,
3211
+ errorL1s: feCore.formatGraphQLError(action.payload)
3212
+ });
3213
+ case "OBLIGTORY_EO_FIELDS_ERR":
3214
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3215
+ fetching_obligatory_eo_fields: false,
3216
+ errorL1s: feCore.formatServerError(action.payload)
3217
+ });
3218
+ case "USERNAME_FIELDS_VALIDATION_REQ":
3219
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3220
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3221
+ username: {
3222
+ isValidating: true,
3223
+ isValid: false,
3224
+ validationError: null
3225
+ }
3226
+ })
3227
+ });
3228
+ case "USERNAME_FIELDS_VALIDATION_RESP":
3229
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3230
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3231
+ username: {
3232
+ isValidating: false,
3233
+ isValid: (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.data.isValid,
3234
+ validationError: feCore.formatGraphQLError(action.payload)
3235
+ }
3236
+ })
3237
+ });
3238
+ case "USERNAME_FIELDS_VALIDATION_ERR":
3239
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3240
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3241
+ username: {
3242
+ isValidating: false,
3243
+ isValid: false,
3244
+ validationError: feCore.formatServerError(action.payload)
3245
+ }
3246
+ })
3247
+ });
3248
+ case "USERNAME_FIELDS_VALIDATION_CLEAR":
3249
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3250
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3251
+ username: {
3252
+ isValidating: true,
3253
+ isValid: false,
3254
+ validationError: null
3255
+ }
3256
+ })
3257
+ });
3258
+ case "USERNAME_FIELDS_VALIDATION_SET_VALID":
3259
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3260
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3261
+ username: {
3262
+ isValidating: false,
3263
+ isValid: true,
3264
+ validationError: null
3265
+ }
3266
+ })
3267
+ });
3268
+ case "USER_EMAIL_FIELDS_VALIDATION_REQ":
3269
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3270
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3271
+ userEmail: {
3272
+ isValidating: true,
3273
+ isValid: false,
3274
+ validationError: null
3275
+ }
3276
+ })
3277
+ });
3278
+ case "USER_EMAIL_FIELDS_VALIDATION_RESP":
3279
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3280
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3281
+ userEmail: {
3282
+ isValidating: false,
3283
+ isValid: (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : _action$payload2.data.isValid,
3284
+ validationError: feCore.formatGraphQLError(action.payload)
3285
+ }
3286
+ })
3287
+ });
3288
+ case "USER_EMAIL_FIELDS_VALIDATION_ERR":
3289
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3290
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3291
+ userEmail: {
3292
+ isValidating: false,
3293
+ isValid: false,
3294
+ validationError: feCore.formatServerError(action.payload)
3295
+ }
3296
+ })
3297
+ });
3298
+ case "USER_EMAIL_FIELDS_VALIDATION_CLEAR":
3299
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3300
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3301
+ userEmail: {
3302
+ isValidating: true,
3303
+ isValid: false,
3304
+ validationError: null
3305
+ }
3306
+ })
3307
+ });
3308
+ case "USER_EMAIL_FIELDS_VALIDATION_SET_VALID":
3309
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3310
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3311
+ userEmail: {
3312
+ isValidating: false,
3313
+ isValid: true,
3314
+ validationError: null
3315
+ }
3316
+ })
3317
+ });
3318
+ case "USER_EMAIL_FORMAT_VALIDATION_CHECK":
3319
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3320
+ validationFields: _objectSpread$1(_objectSpread$1({}, state.validationFields), {}, {
3321
+ userEmailFormat: {
3322
+ isInvalid: (_action$payload3 = action.payload) === null || _action$payload3 === void 0 || (_action$payload3 = _action$payload3.data) === null || _action$payload3 === void 0 ? void 0 : _action$payload3.isFormatInvalid
3323
+ }
3324
+ })
3325
+ });
3326
+ case "USERNAME_LENGTH_FIELDS_REQ":
3327
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3328
+ fetchingUsernameLength: true,
3329
+ fetchedUsernameLength: false,
3330
+ usernameLength: null,
3331
+ errorUsernameLength: null
3332
+ });
3333
+ case "USERNAME_LENGTH_FIELDS_RESP":
3334
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3335
+ fetchingUsernameLength: false,
3336
+ fetchedUsernameLength: true,
3337
+ usernameLength: action.payload.data.usernameLength,
3338
+ errorUsernameLength: feCore.formatGraphQLError(action.payload)
3339
+ });
3340
+ case "USERNAME_LENGTH_FIELDS_ERR":
3341
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3342
+ fetchingUsernameLength: false,
3343
+ errorUsernameLength: feCore.formatServerError(action.payload)
3344
+ });
3345
+ case "PASSWORD_POLICY_FIELDS_REQ":
3346
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3347
+ fetchingPasswordPolicy: true,
3348
+ fetchedPasswordPolicy: false,
3349
+ passwordPolicy: null,
3350
+ errorPasswordPolicy: null
3351
+ });
3352
+ case "PASSWORD_POLICY_FIELDS_RESP":
3353
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3354
+ fetchingPasswordPolicy: false,
3355
+ fetchedPasswordPolicy: true,
3356
+ passwordPolicy: action.payload.data.passwordPolicy,
3357
+ errorPasswordPolicy: feCore.formatGraphQLError(action.payload)
3358
+ });
3359
+ case "PASSWORD_POLICY_FIELDS_ERR":
3360
+ return _objectSpread$1(_objectSpread$1({}, state), {}, {
3361
+ fetchingPasswordPolicy: false,
3362
+ errorPasswordPolicy: feCore.formatServerError(action.payload)
3363
+ });
3364
+ case "ADMIN_USER_MUTATION_REQ":
3365
+ return feCore.dispatchMutationReq(state, action);
3366
+ case "ADMIN_USER_MUTATION_ERR":
3367
+ return feCore.dispatchMutationErr(state, action);
3368
+ case "ADMIN_USER_UPDATE_RESP":
3369
+ return feCore.dispatchMutationResp(state, "updateUser", action);
3370
+ case "ADMIN_USER_DELETE_RESP":
3371
+ return feCore.dispatchMutationResp(state, "deleteUser", action);
3372
+ case "ADMIN_USER_CREATE_RESP":
3373
+ return feCore.dispatchMutationResp(state, "createUser", action);
3374
+ default:
3375
+ return state;
3376
+ }
3377
+ }
3378
+
3379
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3380
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3381
+ var ROUTE_ADMIN_USERS = "admin/users";
3382
+ var ROUTE_ADMIN_USER_OVERVIEW = "admin/users/overview";
3383
+ var ROUTE_ADMIN_USER_NEW = "admin/users/new";
3384
+ var DEFAULT_CONFIG = {
3385
+ translations: [{
3386
+ key: "en",
3387
+ messages: messagesEn
3388
+ }],
3389
+ reducers: [{
3390
+ key: "admin",
3391
+ reducer: reducer
3392
+ }],
3393
+ "core.Router": [{
3394
+ path: ROUTE_ADMIN_USERS,
3395
+ component: UsersPage$1
3396
+ }, {
3397
+ path: ROUTE_ADMIN_USER_NEW,
3398
+ component: UserPage$1
3399
+ }, {
3400
+ path: "".concat(ROUTE_ADMIN_USER_OVERVIEW, "/:user_id"),
3401
+ component: UserPage$1
3402
+ }],
3403
+ "core.MainMenu": [{
3404
+ name: "AdminMainMenu",
3405
+ component: AdminMainMenu$1
3406
+ }],
3407
+ refs: [{
3408
+ key: "admin.UserPicker",
3409
+ ref: UserPicker$1
3410
+ }, {
3411
+ key: "admin.EnrolmentOfficerPicker",
3412
+ ref: EnrolmentOfficerPicker$1
3413
+ }, {
3414
+ key: "admin.SubstitutionEnrolmentOfficerPicker",
3415
+ ref: SubstitutionEnrolmentOfficerPicker$1
3416
+ }, {
3417
+ key: "admin.UserRolesPicker",
3418
+ ref: UserRolesPicker
3419
+ }, {
3420
+ key: "admin.UserTypesPicker",
3421
+ ref: UserTypesPicker
3422
+ }, {
3423
+ key: "admin.UserPicker.projection",
3424
+ ref: USER_PICKER_PROJECTION
3425
+ }, {
3426
+ key: "admin.users",
3427
+ ref: ROUTE_ADMIN_USERS
3428
+ }, {
3429
+ key: "admin.userOverview",
3430
+ ref: ROUTE_ADMIN_USER_OVERVIEW
3431
+ }, {
3432
+ key: "admin.userNew",
3433
+ ref: ROUTE_ADMIN_USER_NEW
3434
+ }, {
3435
+ key: "admin.PaymentPointManagerPicker",
3436
+ ref: PaymentPointManagerPicker
3437
+ }],
3438
+ "invoice.SubjectAndThirdpartyPicker": [{
3439
+ type: "user",
3440
+ picker: UserPicker$1,
3441
+ pickerProjection: USER_PICKER_PROJECTION
3442
+ }],
3443
+ "admin.MainMenu": [{
3444
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3445
+ module: "admin",
3446
+ id: "menu.products"
3447
+ }),
3448
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Tune, null),
3449
+ route: "/admin/products",
3450
+ id: "admin.products",
3451
+ filter: function filter(rights) {
3452
+ return rights.includes(RIGHT_PRODUCTS);
3453
+ }
3454
+ }, {
3455
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3456
+ module: "admin",
3457
+ id: "menu.healthFacilities"
3458
+ }),
3459
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocalHospital, null),
3460
+ route: "/location/healthFacilities",
3461
+ withDivider: true,
3462
+ id: "admin.healthFacilities",
3463
+ filter: function filter(rights) {
3464
+ return rights.includes(RIGHT_HEALTHFACILITIES);
3465
+ }
3466
+ }, {
3467
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3468
+ module: "admin",
3469
+ id: "menu.medicalServicesPrices"
3470
+ }),
3471
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.HealingOutlined, null),
3472
+ route: "/medical/pricelists/services",
3473
+ id: "admin.services",
3474
+ filter: function filter(rights) {
3475
+ return rights.includes(RIGHT_PRICELISTMS);
3476
+ }
3477
+ }, {
3478
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3479
+ module: "admin",
3480
+ id: "menu.medicalItemsPrices"
3481
+ }),
3482
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocalPharmacyOutlined, null),
3483
+ route: "/medical/pricelists/items",
3484
+ withDivider: true,
3485
+ id: "admin.items",
3486
+ filter: function filter(rights) {
3487
+ return rights.includes(RIGHT_PRICELISTMI);
3488
+ }
3489
+ }, {
3490
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3491
+ module: "admin",
3492
+ id: "menu.medicalServices"
3493
+ }),
3494
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Healing, null),
3495
+ route: "/medical/medicalServices",
3496
+ id: "admin.medicalServices",
3497
+ filter: function filter(rights) {
3498
+ return rights.includes(RIGHT_MEDICALSERVICES);
3499
+ }
3500
+ }, {
3501
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3502
+ module: "admin",
3503
+ id: "menu.medicalItems"
3504
+ }),
3505
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.LocalPharmacy, null),
3506
+ route: "/medical/medicalItems",
3507
+ withDivider: true,
3508
+ id: "admin.medicalItems",
3509
+ filter: function filter(rights) {
3510
+ return rights.includes(RIGHT_MEDICALITEMS);
3511
+ }
3512
+ }, {
3513
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3514
+ module: "admin",
3515
+ id: "menu.users"
3516
+ }),
3517
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.Person, null),
3518
+ route: "/admin/users",
3519
+ id: "admin.users",
3520
+ filter: function filter(rights) {
3521
+ return rights.includes(RIGHT_USERS);
3522
+ }
3523
+ }, {
3524
+ text: /*#__PURE__*/React__default["default"].createElement(feCore.FormattedMessage, {
3525
+ module: "admin",
3526
+ id: "menu.locations"
3527
+ }),
3528
+ icon: /*#__PURE__*/React__default["default"].createElement(icons.PinDrop, null),
3529
+ route: "/location/locations",
3530
+ id: "admin.locations",
3531
+ filter: function filter(rights) {
3532
+ return rights.includes(RIGHT_LOCATIONS);
3533
+ }
3534
+ }]
3535
+ };
3536
+ var AdminModule = function AdminModule(cfg) {
3537
+ return _objectSpread(_objectSpread({}, DEFAULT_CONFIG), cfg);
3538
+ };
3539
+
3540
+ exports.AdminModule = AdminModule;
3541
+ //# sourceMappingURL=index.js.map