phx-react 1.3.986 → 1.3.987

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.
@@ -20,7 +20,6 @@ var query_1 = require("../../query");
20
20
  var Card_1 = require("../Card");
21
21
  var getEnvPublic_1 = tslib_1.__importDefault(require("../Func/getEnvPublic"));
22
22
  var saveCookiesClient_1 = tslib_1.__importDefault(require("../Func/saveCookiesClient"));
23
- var LoadingProvider_1 = require("../LoadingProvider");
24
23
  var appearance_styled_1 = tslib_1.__importDefault(require("./appearance/appearance-styled"));
25
24
  var nav_mobile_1 = tslib_1.__importDefault(require("./navigator/nav-mobile"));
26
25
  var sub_menu_style_1 = require("./style/sub-menu-style");
@@ -29,6 +28,7 @@ var image_1 = tslib_1.__importDefault(require("next/image"));
29
28
  var axios_1 = tslib_1.__importDefault(require("axios"));
30
29
  var getCookieSession_1 = tslib_1.__importDefault(require("../Func/getCookieSession"));
31
30
  var helpers_1 = require("../../helpers/helpers");
31
+ var LoadingProvider_1 = require("../LoadingProvider");
32
32
  fontawesome_svg_core_1.library.add(free_solid_svg_icons_1.fas);
33
33
  function classNames() {
34
34
  var classes = [];
@@ -38,61 +38,48 @@ function classNames() {
38
38
  return classes.filter(Boolean).join(' ');
39
39
  }
40
40
  var PHXMainWrapV3 = function (_a) {
41
- var _b, _c, _d, _e;
42
- var children = _a.children, getDataCookies = _a.getDataCookies, _f = _a.hiddenLeftMenu, hiddenLeftMenu = _f === void 0 ? false : _f, _g = _a.logoHeight, logoHeight = _g === void 0 ? '28px' : _g, _h = _a.multipleMenu, multipleMenu = _h === void 0 ? false : _h, params = _a.params, pathName = _a.pathName, router = _a.router;
41
+ var _b, _c, _d, _e, _f;
42
+ var children = _a.children, getDataCookies = _a.getDataCookies, _g = _a.hiddenLeftMenu, hiddenLeftMenu = _g === void 0 ? false : _g, _h = _a.logoHeight, logoHeight = _h === void 0 ? '28px' : _h, _j = _a.multipleMenu, multipleMenu = _j === void 0 ? false : _j, params = _a.params, pathName = _a.pathName, router = _a.router;
43
43
  var pid = (params ? params : {}).pid;
44
- var _j = (0, react_2.useState)(false), modal = _j[0], setModal = _j[1];
45
- var _k = (0, react_2.useState)(true), openSubMenu = _k[0], setOpenSubMenu = _k[1];
46
- var _l = (0, react_2.useState)(''), campaignName = _l[0], setCampaignName = _l[1];
47
- var _m = (0, react_2.useState)(false), sidebarOpen = _m[0], setSidebarOpen = _m[1];
48
- var _o = (0, react_2.useState)([]), subNavigation = _o[0], setSubNavigation = _o[1];
49
- var _p = (0, react_2.useState)([]), navigation = _p[0], setNavigation = _p[1];
50
- var _q = (0, react_2.useState)([]), menu = _q[0], setMenu = _q[1];
51
- var _r = (0, react_2.useState)(true), loadingSchool = _r[0], setLoadingSchool = _r[1];
52
- var _s = (0, react_2.useState)(true), loadingMenu = _s[0], setLoadingMenu = _s[1];
53
- var _t = (0, react_2.useState)(false), modalSignOut = _t[0], setModalSignOut = _t[1];
54
- var _u = (0, react_2.useState)([]), listSchool = _u[0], setListSchool = _u[1];
55
- var _v = (0, react_2.useState)([]), roleCode = _v[0], setRoleCode = _v[1];
56
- var _w = (0, react_2.useState)([]), perCode = _w[0], setPerCode = _w[1];
57
- var _x = (0, react_2.useState)(null), schoolId = _x[0], setSchoolId = _x[1];
58
- var _y = (0, react_2.useState)(true), showBanner = _y[0], setShowBanner = _y[1];
59
- var _z = (0, react_2.useState)({}), configLayout = _z[0], setConfigLayout = _z[1];
60
- var _0 = (0, react_2.useState)(true), isLoading = _0[0], setIsLoading = _0[1];
61
- var _1 = (0, react_2.useState)(true), isLoadingPermission = _1[0], setIsLoadingPermission = _1[1];
44
+ var _k = (0, react_2.useState)(false), modal = _k[0], setModal = _k[1];
45
+ var _l = (0, react_2.useState)(true), openSubMenu = _l[0], setOpenSubMenu = _l[1];
46
+ var _m = (0, react_2.useState)(''), campaignName = _m[0], setCampaignName = _m[1];
47
+ var _o = (0, react_2.useState)(false), sidebarOpen = _o[0], setSidebarOpen = _o[1];
48
+ var _p = (0, react_2.useState)([]), subNavigation = _p[0], setSubNavigation = _p[1];
49
+ var _q = (0, react_2.useState)([]), navigation = _q[0], setNavigation = _q[1];
50
+ var _r = (0, react_2.useState)(false), modalSignOut = _r[0], setModalSignOut = _r[1];
51
+ var _s = (0, react_2.useState)(true), showBanner = _s[0], setShowBanner = _s[1];
52
+ var _t = (0, react_2.useState)(true), isLoading = _t[0], setIsLoading = _t[1];
53
+ var sessionCookie = (0, react_2.useRef)((0, getCookieSession_1["default"])());
54
+ var userSessionInfo = (_b = sessionCookie.current) === null || _b === void 0 ? void 0 : _b.user_info;
55
+ var schoolInfoId = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.school_id;
56
+ var userId = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.id;
57
+ var setGlobalLoading = (0, LoadingProvider_1.useLoading)().setLoading;
58
+ var _u = (0, react_2.useState)({
59
+ loadingMenu: true,
60
+ loadingSchool: true,
61
+ listSchool: [],
62
+ logo: {
63
+ path: '',
64
+ height: logoHeight
65
+ },
66
+ menu: [],
67
+ schoolId: null,
68
+ configLayout: undefined,
69
+ perCode: [],
70
+ roleCode: [],
71
+ isLoadingPermission: true,
72
+ sourceAvatar: ((_c = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.user_avatar) === null || _c === void 0 ? void 0 : _c.size_small) || (userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.avatar) || constants_1.DEFAULT_AVATAR
73
+ }), dataInitMain = _u[0], setDataInitMain = _u[1];
62
74
  var locationPathname = typeof window !== 'undefined' ? window.location.pathname : '';
63
75
  var locationArr = locationPathname.split('/').filter(Boolean);
64
76
  var basePath = locationArr.slice(0, locationArr.length - pathName.split('/').filter(Boolean).length).join('/');
65
77
  var pathNameWithBasePath = "".concat(basePath ? "".concat('/' + basePath) : '').concat(pathName);
66
- var setGlobalLoading = (0, LoadingProvider_1.useLoading)().setLoading;
67
78
  function enablePer(code, arr) {
68
79
  if (!code)
69
80
  return true;
70
81
  return arr === null || arr === void 0 ? void 0 : arr.some(function (item) { return item === code; });
71
82
  }
72
- var _2 = (0, react_2.useState)({
73
- path: '',
74
- height: logoHeight
75
- }), logo = _2[0], setLogo = _2[1];
76
- var sessionCookie = (0, react_2.useRef)((0, getCookieSession_1["default"])());
77
- var userSessionInfo = (_b = sessionCookie.current) === null || _b === void 0 ? void 0 : _b.user_info;
78
- var schoolInfoId = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.school_id;
79
- var userId = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.id;
80
- function compareObjects(settingQuery, settingCookies) {
81
- var keysSettingQuery = Object.keys(settingQuery);
82
- if (keysSettingQuery.length !== Object.keys(settingCookies).length) {
83
- return false;
84
- }
85
- for (var _i = 0, keysSettingQuery_1 = keysSettingQuery; _i < keysSettingQuery_1.length; _i++) {
86
- var key = keysSettingQuery_1[_i];
87
- if (!Object.prototype.hasOwnProperty.call(settingCookies, key)) {
88
- return false;
89
- }
90
- if (settingQuery[key] !== settingCookies[key]) {
91
- return false;
92
- }
93
- }
94
- return true;
95
- }
96
83
  // Lấy code phân quyền trong menu từ path hiện tại
97
84
  function getCodesByPath(dataMenu, currentPath) {
98
85
  var lastMatchingCode = null;
@@ -120,6 +107,12 @@ var PHXMainWrapV3 = function (_a) {
120
107
  }
121
108
  // code phân quyền path hiện tại
122
109
  var currentCode = getCodesByPath(navigation, locationPathname);
110
+ var requireLoginValidation = function () {
111
+ var currentURL = window.location.href;
112
+ var url = currentURL.split('/');
113
+ var loginPush = "".concat(url[0], "//").concat(url[2], "/login-sso");
114
+ window.location.replace(loginPush);
115
+ };
123
116
  var checkIsQuitJob = function (_a) {
124
117
  var profileStaff = _a.profileStaff, profileTeacher = _a.profileTeacher;
125
118
  try {
@@ -144,7 +137,7 @@ var PHXMainWrapV3 = function (_a) {
144
137
  return tslib_1.__generator(this, function (_e) {
145
138
  switch (_e.label) {
146
139
  case 0:
147
- _e.trys.push([0, 2, 3, 4]);
140
+ _e.trys.push([0, 2, , 3]);
148
141
  return [4 /*yield*/, (0, clientQueryV3_1["default"])({
149
142
  query: query_1.GET_PERMISSION_DETAIL_USER_V3,
150
143
  variables: { id: userId, school_id: schoolInfoId }
@@ -158,117 +151,98 @@ var PHXMainWrapV3 = function (_a) {
158
151
  routePermissions = permissionCodes.filter(function (p) { return !p.is_action; }).map(function (p) { return p.code; });
159
152
  actionPermissions = permissionCodes.filter(function (p) { return p.is_action; }).map(function (p) { return p.code; });
160
153
  actionPermissionMap = Object.fromEntries(actionPermissions.map(function (code) { return [code, true]; }));
161
- // Mã hoá và lưu vào cookie
162
- (0, saveCookiesClient_1["default"])({ value: tslib_1.__assign(tslib_1.__assign({}, sessionCookie.current), { action_permission: actionPermissionMap }) });
163
154
  uniqueRoutePermissions = Array.from(new Set(routePermissions));
164
- setPerCode(uniqueRoutePermissions);
165
- return [3 /*break*/, 4];
155
+ return [2 /*return*/, { uniqueRoutePermissions: uniqueRoutePermissions, actionPermissionMap: actionPermissionMap }];
166
156
  case 2:
167
157
  error_1 = _e.sent();
168
158
  console.error('Error fetching school data:', error_1);
169
- return [3 /*break*/, 4];
170
- case 3:
171
- setIsLoadingPermission(false);
172
- return [7 /*endfinally*/];
173
- case 4: return [2 /*return*/];
159
+ return [2 /*return*/, { uniqueRoutePermissions: null, actionPermissionMap: null }];
160
+ case 3: return [2 /*return*/];
174
161
  }
175
162
  });
176
163
  }); };
177
164
  var getProfileByUser = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
178
- var response, profileUser, profile_staff, profile_teacher, user_roles, allRoleCodes, userInfoNew, allRoleCodesLength, error_2;
165
+ var response, profileUser, avatar, email, full_name, profile_staff, profile_teacher, user_avatar, user_roles, error_2;
179
166
  return tslib_1.__generator(this, function (_a) {
180
167
  switch (_a.label) {
181
168
  case 0:
182
- if (!userSessionInfo)
183
- return [2 /*return*/];
184
- _a.label = 1;
185
- case 1:
186
- _a.trys.push([1, 3, , 4]);
169
+ _a.trys.push([0, 2, , 3]);
187
170
  return [4 /*yield*/, (0, clientQueryV3_1["default"])({
188
171
  query: query_1.QUERY_GET_PROFILE_USER,
189
172
  variables: {
190
173
  user_id: userId
191
174
  }
192
175
  })];
193
- case 2:
176
+ case 1:
194
177
  response = _a.sent();
195
178
  profileUser = response.data.users_by_pk;
196
- profile_staff = profileUser.profile_staff, profile_teacher = profileUser.profile_teacher, user_roles = profileUser.user_roles;
179
+ avatar = profileUser.avatar, email = profileUser.email, full_name = profileUser.full_name, profile_staff = profileUser.profile_staff, profile_teacher = profileUser.profile_teacher, user_avatar = profileUser.user_avatar, user_roles = profileUser.user_roles;
197
180
  // check user is quit job
198
- checkIsQuitJob({ profileStaff: profile_staff, profileTeacher: profile_teacher });
199
- allRoleCodes = user_roles.map(function (userRole) { var _a; return (_a = userRole === null || userRole === void 0 ? void 0 : userRole.role) === null || _a === void 0 ? void 0 : _a.role_code; }) || [];
200
- userInfoNew = tslib_1.__assign(tslib_1.__assign({}, userSessionInfo), { user_roles: user_roles });
201
- (0, saveCookiesClient_1["default"])({ value: tslib_1.__assign(tslib_1.__assign({}, sessionCookie.current), { user_info: userInfoNew }) });
202
- setRoleCode(allRoleCodes);
203
- allRoleCodesLength = allRoleCodes === null || allRoleCodes === void 0 ? void 0 : allRoleCodes.length;
204
- if (allRoleCodes && allRoleCodesLength > 0) {
205
- fetchDataPer()["catch"](console.error);
206
- }
207
- return [3 /*break*/, 4];
208
- case 3:
181
+ checkIsQuitJob({
182
+ profileStaff: profile_staff,
183
+ profileTeacher: profile_teacher
184
+ });
185
+ // renew list role in cookie
186
+ return [2 /*return*/, {
187
+ avatar: avatar,
188
+ user_avatar: user_avatar,
189
+ full_name: full_name,
190
+ email: email,
191
+ user_roles: user_roles
192
+ }];
193
+ case 2:
209
194
  error_2 = _a.sent();
210
195
  console.log(error_2);
211
- return [3 /*break*/, 4];
212
- case 4: return [2 /*return*/];
196
+ return [2 /*return*/];
197
+ case 3: return [2 /*return*/];
213
198
  }
214
199
  });
215
200
  }); };
216
- var fetchDataSchool = function () {
217
- if (!userSessionInfo)
218
- return;
219
- var id = userSessionInfo.id, _a = userSessionInfo.school, group_id = _a.school_name.group_id, school_name_id = _a.school_name_id, school_id = userSessionInfo.school_id;
220
- setSchoolId(school_id);
221
- var fetchData = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
222
- var res, listSchool_1, settingFetchData, cleanedJsonString, jsonObjectSetting, settingSiteCookie, error_3;
223
- var _a, _b, _c, _d, _e;
224
- return tslib_1.__generator(this, function (_f) {
225
- switch (_f.label) {
226
- case 0:
227
- setIsLoading(true);
228
- _f.label = 1;
229
- case 1:
230
- _f.trys.push([1, 3, , 4]);
231
- return [4 /*yield*/, (0, clientQueryV3_1["default"])({
232
- query: query_1.GET_SCHOOL_V3,
233
- variables: { group_id: group_id, school_name_id: school_name_id, user_id: id },
234
- isDelay: false
235
- })];
236
- case 2:
237
- res = _f.sent();
238
- listSchool_1 = (_b = (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.school_name[0]) === null || _b === void 0 ? void 0 : _b.schools;
239
- if ((listSchool_1 === null || listSchool_1 === void 0 ? void 0 : listSchool_1.length) > 0) {
240
- setLoadingSchool(false);
241
- setListSchool(listSchool_1);
242
- }
243
- setIsLoading(false);
244
- settingFetchData = (_d = (_c = res === null || res === void 0 ? void 0 : res.data) === null || _c === void 0 ? void 0 : _c.setting_site[0]) === null || _d === void 0 ? void 0 : _d.value_setting;
245
- if (settingFetchData) {
246
- cleanedJsonString = settingFetchData.replace(/^"(.*)"$/, '$1');
247
- jsonObjectSetting = JSON.parse(cleanedJsonString);
248
- setConfigLayout(jsonObjectSetting);
249
- settingSiteCookie = (_e = sessionCookie.current) === null || _e === void 0 ? void 0 : _e.setting_site;
250
- // Nếu chưa có trong cookie hoặc data trong cookie và db khác nhau
251
- if (!settingSiteCookie || !compareObjects(jsonObjectSetting, settingSiteCookie)) {
252
- (0, saveCookiesClient_1["default"])({ value: tslib_1.__assign(tslib_1.__assign({}, sessionCookie.current), { setting_site: jsonObjectSetting }) });
253
- }
254
- }
201
+ var fetchDataSchool = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
202
+ var id, _a, group_id, school_name_id, school_id, settingSiteDb, res, dataSchool, settingFetchData, cleanedJsonString, error_3;
203
+ var _b, _c, _d, _e;
204
+ return tslib_1.__generator(this, function (_f) {
205
+ switch (_f.label) {
206
+ case 0:
207
+ if (!userSessionInfo)
255
208
  return [2 /*return*/];
256
- case 3:
257
- error_3 = _f.sent();
258
- setIsLoading(false);
259
- console.error('Error fetching school data:', error_3);
260
- return [3 /*break*/, 4];
261
- case 4: return [2 /*return*/];
262
- }
263
- });
264
- }); };
265
- fetchData()["catch"](function (err) {
266
- console.log(err);
267
- setIsLoading(false);
209
+ id = userSessionInfo.id, _a = userSessionInfo.school, group_id = _a.school_name.group_id, school_name_id = _a.school_name_id, school_id = userSessionInfo.school_id;
210
+ setIsLoading(true);
211
+ settingSiteDb = undefined;
212
+ _f.label = 1;
213
+ case 1:
214
+ _f.trys.push([1, 3, , 4]);
215
+ return [4 /*yield*/, (0, clientQueryV3_1["default"])({
216
+ query: query_1.GET_SCHOOL_V3,
217
+ variables: { group_id: group_id, school_name_id: school_name_id, user_id: id },
218
+ isDelay: false
219
+ })];
220
+ case 2:
221
+ res = _f.sent();
222
+ dataSchool = (_c = (_b = res === null || res === void 0 ? void 0 : res.data) === null || _b === void 0 ? void 0 : _b.school_name[0]) === null || _c === void 0 ? void 0 : _c.schools;
223
+ settingFetchData = (_e = (_d = res === null || res === void 0 ? void 0 : res.data) === null || _d === void 0 ? void 0 : _d.setting_site[0]) === null || _e === void 0 ? void 0 : _e.value_setting;
224
+ if (settingFetchData) {
225
+ cleanedJsonString = settingFetchData.replace(/^"(.*)"$/, '$1');
226
+ settingSiteDb = JSON.parse(cleanedJsonString);
227
+ }
228
+ setIsLoading(false);
229
+ return [2 /*return*/, {
230
+ settingSiteDb: settingSiteDb,
231
+ loadingSchool: dataSchool.length === 0,
232
+ listSchool: dataSchool,
233
+ schoolId: school_id
234
+ }];
235
+ case 3:
236
+ error_3 = _f.sent();
237
+ setIsLoading(false);
238
+ console.error('Error fetching school data:', error_3);
239
+ return [2 /*return*/];
240
+ case 4: return [2 /*return*/];
241
+ }
268
242
  });
269
- };
243
+ }); };
270
244
  var fetchDataMenu = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
271
- var envPublic, menuUrl, logoMenuTop, data, json;
245
+ var envPublic, menuUrl, logoMenuTop, data, menuJson;
272
246
  return tslib_1.__generator(this, function (_a) {
273
247
  switch (_a.label) {
274
248
  case 0: return [4 /*yield*/, (0, getEnvPublic_1["default"])()];
@@ -285,10 +259,53 @@ var PHXMainWrapV3 = function (_a) {
285
259
  data = _a.sent();
286
260
  return [4 /*yield*/, data.json()];
287
261
  case 3:
288
- json = _a.sent();
289
- setMenu(json);
290
- setLogo({ path: logoMenuTop, height: logoHeight });
291
- setLoadingMenu(false);
262
+ menuJson = _a.sent();
263
+ return [2 /*return*/, {
264
+ loadingMenu: false,
265
+ logo: { path: logoMenuTop, height: logoHeight },
266
+ menu: menuJson
267
+ }];
268
+ }
269
+ });
270
+ }); };
271
+ var fetchInitData = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
272
+ var _a, loadingMenu, logo, menu, profileNew, dataPer, dataSchool, actionPermissionMap, uniqueRoutePermissions;
273
+ var _b;
274
+ return tslib_1.__generator(this, function (_c) {
275
+ switch (_c.label) {
276
+ case 0: return [4 /*yield*/, fetchDataMenu()];
277
+ case 1:
278
+ _a = _c.sent(), loadingMenu = _a.loadingMenu, logo = _a.logo, menu = _a.menu;
279
+ return [4 /*yield*/, getProfileByUser()];
280
+ case 2:
281
+ profileNew = _c.sent();
282
+ return [4 /*yield*/, fetchDataPer()];
283
+ case 3:
284
+ dataPer = _c.sent();
285
+ return [4 /*yield*/, fetchDataSchool()];
286
+ case 4:
287
+ dataSchool = _c.sent();
288
+ actionPermissionMap = dataPer.actionPermissionMap, uniqueRoutePermissions = dataPer.uniqueRoutePermissions;
289
+ setDataInitMain({
290
+ logo: logo,
291
+ menu: menu,
292
+ loadingMenu: loadingMenu,
293
+ schoolId: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.schoolId) || null,
294
+ loadingSchool: !!(dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.loadingSchool),
295
+ listSchool: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.listSchool) || [],
296
+ isLoadingPermission: false,
297
+ perCode: uniqueRoutePermissions,
298
+ roleCode: (profileNew === null || profileNew === void 0 ? void 0 : profileNew.user_roles.map(function (userRole) { var _a; return (_a = userRole === null || userRole === void 0 ? void 0 : userRole.role) === null || _a === void 0 ? void 0 : _a.role_code; })) || [],
299
+ configLayout: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.settingSiteDb) || undefined,
300
+ sourceAvatar: ((_b = profileNew === null || profileNew === void 0 ? void 0 : profileNew.user_avatar) === null || _b === void 0 ? void 0 : _b.size_small) || (profileNew === null || profileNew === void 0 ? void 0 : profileNew.avatar) || constants_1.DEFAULT_AVATAR
301
+ });
302
+ (0, saveCookiesClient_1["default"])({
303
+ value: tslib_1.__assign(tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, sessionCookie.current), (actionPermissionMap && {
304
+ action_permission: actionPermissionMap || []
305
+ })), { setting_site: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.settingSiteDb) || {} }), (profileNew && {
306
+ user_info: tslib_1.__assign(tslib_1.__assign({}, userSessionInfo), profileNew)
307
+ }))
308
+ });
292
309
  return [2 /*return*/];
293
310
  }
294
311
  });
@@ -299,21 +316,13 @@ var PHXMainWrapV3 = function (_a) {
299
316
  requireLoginValidation();
300
317
  return;
301
318
  }
302
- fetchDataMenu()["catch"](console.error);
303
- getProfileByUser();
304
- fetchDataSchool();
319
+ fetchInitData();
305
320
  }, []);
306
- var requireLoginValidation = function () {
307
- var currentURL = window.location.href;
308
- var url = currentURL.split('/');
309
- var loginPush = "".concat(url[0], "//").concat(url[2], "/login-sso");
310
- window.location.replace(loginPush);
311
- };
312
- var isEqualUrl = function (parentHref, pathName) {
313
- if (!parentHref || !pathName) {
321
+ var isEqualUrl = function (parentHref, pathNameCompare) {
322
+ if (!parentHref || !pathNameCompare) {
314
323
  return false;
315
324
  }
316
- var pathNameSplit = pathName.split('/');
325
+ var pathNameSplit = pathNameCompare.split('/');
317
326
  var hrefSplit = parentHref.split('/');
318
327
  if (!pathNameSplit || !hrefSplit) {
319
328
  return false;
@@ -343,9 +352,9 @@ var PHXMainWrapV3 = function (_a) {
343
352
  return parentSplit[1] === pathNameSplit[3];
344
353
  }
345
354
  };
346
- var isBelongParent = function (parentUrl, pathName, isMicroservice) {
355
+ var isBelongParent = function (parentUrl, pathNameCompare, isMicroservice) {
347
356
  var parentSplit = parentUrl.split('/');
348
- var pathNameSplit = pathName.split('/');
357
+ var pathNameSplit = pathNameCompare.split('/');
349
358
  if (isMicroservice) {
350
359
  return isBelongParentWithMicroservice(parentSplit, pathNameSplit);
351
360
  }
@@ -361,7 +370,7 @@ var PHXMainWrapV3 = function (_a) {
361
370
  return pathNameSplit[1] === 'admissions';
362
371
  };
363
372
  var loadParentNavigation = function (path) {
364
- var mainNavigation = menu;
373
+ var mainNavigation = dataInitMain.menu;
365
374
  var naviSize = mainNavigation.length;
366
375
  for (var i = 0; i < naviSize; i++) {
367
376
  var item = mainNavigation[i];
@@ -400,7 +409,7 @@ var PHXMainWrapV3 = function (_a) {
400
409
  setNavigation(mainNavigation);
401
410
  };
402
411
  var loadChildrenCampaign = function (path) {
403
- var mainNavigation = menu;
412
+ var mainNavigation = dataInitMain.menu;
404
413
  var naviSize = mainNavigation.length;
405
414
  for (var i = 0; i < naviSize; i++) {
406
415
  var item = mainNavigation[i];
@@ -436,7 +445,8 @@ var PHXMainWrapV3 = function (_a) {
436
445
  setNavigation(mainNavigation);
437
446
  };
438
447
  var checkChildrenCampaign = function (path) {
439
- var campaignMenu = menu === null || menu === void 0 ? void 0 : menu.find(function (item) { return item.path === '/admissions/campaign/list'; });
448
+ var _a;
449
+ var campaignMenu = (_a = dataInitMain.menu) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item.path === '/admissions/campaign/list'; });
440
450
  var campaignChild = campaignMenu === null || campaignMenu === void 0 ? void 0 : campaignMenu.child;
441
451
  var listChild = campaignChild === null || campaignChild === void 0 ? void 0 : campaignChild.find(function (item) { return item.path === '/campaign/list'; });
442
452
  var isChild = listChild === null || listChild === void 0 ? void 0 : listChild.childrenByParentDetail.find(function (item) { return isBelongParent(item.path, path, false); });
@@ -468,7 +478,7 @@ var PHXMainWrapV3 = function (_a) {
468
478
  loadParentNavigation(pathNameWithBasePath);
469
479
  }
470
480
  // eslint-disable-next-line react-hooks/exhaustive-deps
471
- }, [menu, pid, pathNameWithBasePath]);
481
+ }, [dataInitMain, pid, pathNameWithBasePath]);
472
482
  (0, react_2.useEffect)(function () {
473
483
  var isAdmissions = checkAdmissions(pathNameWithBasePath);
474
484
  if (isAdmissions) {
@@ -485,7 +495,7 @@ var PHXMainWrapV3 = function (_a) {
485
495
  else {
486
496
  setOpenSubMenu(true);
487
497
  }
488
- }, [pathNameWithBasePath, menu]);
498
+ }, [pathNameWithBasePath, dataInitMain]);
489
499
  var loadSubNavigation = function (path, isChild, childPath) {
490
500
  var subLength = subNavigation.length;
491
501
  var newSub = [];
@@ -527,7 +537,7 @@ var PHXMainWrapV3 = function (_a) {
527
537
  router.push(item.path);
528
538
  }
529
539
  };
530
- var topMenuLogoFromEnv = logo.path;
540
+ var _v = dataInitMain.logo, height = _v.height, topMenuLogoFromEnv = _v.path;
531
541
  var handleModalSignOut = function () { return setModalSignOut(true); };
532
542
  var handleRedirectRouter = function (path) {
533
543
  var currentURL = window.location.href;
@@ -581,11 +591,11 @@ var PHXMainWrapV3 = function (_a) {
581
591
  var currentIndexActive = item.find(function (s) { return s.current; });
582
592
  return currentIndexActive ? currentIndexActive.id > currentItem.id : false;
583
593
  };
584
- var _3 = (0, react_2.useState)(false), openNavName = _3[0], setOpenNavName = _3[1];
585
- var _4 = (0, react_2.useState)(false), showSearchBar = _4[0], setShowSearchBar = _4[1];
586
- var _5 = (0, react_2.useState)(null), selected = _5[0], setSelected = _5[1];
594
+ var _w = (0, react_2.useState)(false), openNavName = _w[0], setOpenNavName = _w[1];
595
+ var _x = (0, react_2.useState)(false), showSearchBar = _x[0], setShowSearchBar = _x[1];
596
+ var _y = (0, react_2.useState)(null), selected = _y[0], setSelected = _y[1];
587
597
  var handleOpenModal = function (id) {
588
- setModal(id !== schoolId);
598
+ setModal(id !== dataInitMain.schoolId);
589
599
  setSelected(id);
590
600
  };
591
601
  var handlePrimaryModal = function () {
@@ -595,7 +605,9 @@ var PHXMainWrapV3 = function (_a) {
595
605
  var schoolIdCurrent = userSessionInfo.school_id;
596
606
  if (newSchoolId && newSchoolId !== schoolIdCurrent) {
597
607
  var userInfoNew = tslib_1.__assign(tslib_1.__assign({}, userSessionInfo), { school_id: newSchoolId });
598
- (0, saveCookiesClient_1["default"])({ value: tslib_1.__assign(tslib_1.__assign({}, sessionCookie.current), { user_info: userInfoNew }) });
608
+ (0, saveCookiesClient_1["default"])({
609
+ value: tslib_1.__assign(tslib_1.__assign({}, sessionCookie.current), { user_info: userInfoNew })
610
+ });
599
611
  window.location.replace(constants_1.ROUTE_DASHBOARD);
600
612
  }
601
613
  }
@@ -605,20 +617,19 @@ var PHXMainWrapV3 = function (_a) {
605
617
  }
606
618
  setModal(false);
607
619
  };
608
- var sourceAvatar = ((_c = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.user_avatar) === null || _c === void 0 ? void 0 : _c.size_small) || (userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.avatar) || constants_1.DEFAULT_AVATAR;
609
620
  // settings page
610
621
  var isSettings = function () {
611
622
  var pathNameSplit = pathNameWithBasePath.split('/');
612
623
  return pathNameSplit[1] === 'setting';
613
624
  };
614
- var checkLogoHeader = (configLayout === null || configLayout === void 0 ? void 0 : configLayout.logo_dashboard) || topMenuLogoFromEnv || constants_1.DEFAULT_LOGO_DASHBOARD;
625
+ var checkLogoHeader = ((_d = dataInitMain.configLayout) === null || _d === void 0 ? void 0 : _d.logo_dashboard) || topMenuLogoFromEnv || constants_1.DEFAULT_LOGO_DASHBOARD;
615
626
  return (react_2["default"].createElement(react_2["default"].Fragment, null,
616
627
  react_2["default"].createElement("div", { className: 'flex min-h-full flex-col' },
617
- react_2["default"].createElement(appearance_styled_1["default"], { configLayout: configLayout, settingSiteCookie: getDataCookies ? (_d = (0, helpers_1.decryptCookie)(getDataCookies)) === null || _d === void 0 ? void 0 : _d.setting_site : null }),
628
+ react_2["default"].createElement(appearance_styled_1["default"], { configLayout: dataInitMain === null || dataInitMain === void 0 ? void 0 : dataInitMain.configLayout, settingSiteCookie: getDataCookies ? (_e = (0, helpers_1.decryptCookie)(getDataCookies)) === null || _e === void 0 ? void 0 : _e.setting_site : null }),
618
629
  react_2["default"].createElement("header", { className: 'header-color-styled fixed top-0 z-50 min-w-full border-gray-200 bg-white' },
619
630
  react_2["default"].createElement("div", { className: 'header-styled mx-auto flex h-14 items-center justify-between bg-[#1a1a1a] pr-4' },
620
- react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
621
- react_2["default"].createElement("a", { className: 'flex w-full items-center', href: '/' }, topMenuLogoFromEnv ? (react_2["default"].createElement(react_2["default"].Fragment, null, isLoading ? (react_2["default"].createElement("div", { className: 'header-loading-logo ml-3 h-8 w-full animate-pulse' })) : (react_2["default"].createElement("img", { alt: 'Logo', className: 'ml-3 h-auto max-w-48 w-auto max-h-7', src: checkLogoHeader, style: { maxWidth: '12rem' } })))) : (react_2["default"].createElement(react_2["default"].Fragment, null))),
631
+ react_2["default"].createElement("div", { className: 'flex items-center gap-x-3 lg:w-32' },
632
+ react_2["default"].createElement("a", { className: 'flex w-full items-center', href: '/' }, topMenuLogoFromEnv ? (react_2["default"].createElement(react_2["default"].Fragment, null, isLoading ? (react_2["default"].createElement("div", { className: 'header-loading-logo ml-3 h-8 w-full animate-pulse' })) : (react_2["default"].createElement("img", { alt: 'Logo', className: 'ml-3 w-auto', src: checkLogoHeader, style: { height: height } })))) : (react_2["default"].createElement(react_2["default"].Fragment, null))),
622
633
  react_2["default"].createElement("div", { className: 'flex items-center lg:hidden' },
623
634
  react_2["default"].createElement("button", { className: 'bg-grey-100 mr-3 inline-flex items-center justify-center rounded-md p-1 text-gray-600 hover:bg-white focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white', onClick: function () { return setSidebarOpen(true); }, type: 'button' },
624
635
  react_2["default"].createElement("span", { className: 'sr-only' }, "Open sidebar"),
@@ -631,33 +642,34 @@ var PHXMainWrapV3 = function (_a) {
631
642
  react_2["default"].createElement(react_1.Menu.Button, { className: 'flex max-w-xs items-center rounded-full bg-gray-800 text-sm focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2 focus:ring-offset-gray-800' },
632
643
  react_2["default"].createElement("span", { className: 'sr-only' }, "Open user menu"),
633
644
  isLoading ? (react_2["default"].createElement("div", { className: 'flex animate-pulse' },
634
- react_2["default"].createElement("div", { className: 'header-loading-avatar h-8 w-8 rounded-full' }))) : (react_2["default"].createElement("img", { alt: '', className: 'h-8 w-8 rounded-full', src: sourceAvatar })))),
645
+ react_2["default"].createElement("div", { className: 'header-loading-avatar h-8 w-8 rounded-full' }))) : (react_2["default"].createElement("img", { alt: '', className: 'h-8 w-8 rounded-full', src: dataInitMain.sourceAvatar })))),
635
646
  react_2["default"].createElement(react_1.Transition, { as: react_2.Fragment, enter: 'transition ease-out duration-100', enterFrom: 'transform opacity-0 scale-95', enterTo: 'transform opacity-100 scale-100', leave: 'transition ease-in duration-75', leaveFrom: 'transform opacity-100 scale-100', leaveTo: 'transform opacity-0 scale-95' },
636
647
  react_2["default"].createElement(react_1.Menu.Items, { className: ' absolute right-0 z-10 mt-2 w-[340px] origin-top-right rounded-md bg-white px-2 shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none' },
637
648
  react_2["default"].createElement(react_1.Menu.Item, null,
638
649
  react_2["default"].createElement("div", { "aria-hidden": true, className: 'px-2 pb-2 pt-4 text-sm font-semibold text-gray-900 ' }, "Ch\u1ECDn tr\u01B0\u1EDDng")),
639
- !loadingSchool ? (react_2["default"].createElement(react_2["default"].Fragment, null, listSchool
650
+ !dataInitMain.loadingSchool ? (react_2["default"].createElement(react_2["default"].Fragment, null, dataInitMain.listSchool
640
651
  .filter(function (val) {
641
- if (!enablePer(constants_1.switchSchool, perCode)) {
642
- return val.id === schoolId;
652
+ if (!enablePer(constants_1.switchSchool, dataInitMain.perCode)) {
653
+ return val.id === dataInitMain.schoolId;
643
654
  }
644
655
  else {
645
656
  return true;
646
657
  }
647
658
  })
648
659
  .map(function (item) { return (react_2["default"].createElement(react_1.Menu.Item, { key: item.id },
649
- react_2["default"].createElement("div", { "aria-hidden": true, className: "".concat(item.id === schoolId &&
650
- listSchool.length > 1 &&
651
- !enablePer(constants_1.switchSchool, perCode) === false
660
+ react_2["default"].createElement("div", { "aria-hidden": true, className: "".concat(item.id === dataInitMain.schoolId &&
661
+ dataInitMain.listSchool.length > 1 &&
662
+ !enablePer(constants_1.switchSchool, dataInitMain.perCode) === false
652
663
  ? 'rounded-lg bg-zinc-200 font-semibold text-gray-900 '
653
- : 'font-normal ', " \n ").concat(item.id !== schoolId &&
654
- (listSchool.length === 1 || !enablePer(constants_1.switchSchool, perCode)) === false
664
+ : 'font-normal ', " \n ").concat(item.id !== dataInitMain.schoolId &&
665
+ (dataInitMain.listSchool.length === 1 ||
666
+ !enablePer(constants_1.switchSchool, dataInitMain.perCode)) === false
655
667
  ? 'cursor-pointer hover:rounded-lg hover:bg-gray-100'
656
668
  : '', "\n relative mb-1 flex items-center justify-between px-2 py-1.5 text-sm text-gray-900"), onClick: function () { return handleOpenModal(item.id); } },
657
669
  react_2["default"].createElement("p", { className: 'max-w-[95%] truncate' }, item.name),
658
- item.id === schoolId &&
659
- listSchool.length > 1 &&
660
- !enablePer(constants_1.switchSchool, perCode) === false && (react_2["default"].createElement(solid_2.CheckIcon, { "aria-hidden": 'true', className: 'h-4 w-4' }))))); }))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'flex-1 px-2 py-2', type: 'single' })),
670
+ item.id === dataInitMain.schoolId &&
671
+ dataInitMain.listSchool.length > 1 &&
672
+ !enablePer(constants_1.switchSchool, dataInitMain.perCode) === false && (react_2["default"].createElement(solid_2.CheckIcon, { "aria-hidden": 'true', className: 'h-4 w-4' }))))); }))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'flex-1 px-2 py-2', type: 'single' })),
661
673
  react_2["default"].createElement("div", { className: 'border-b pt-1.5' }),
662
674
  react_2["default"].createElement(react_1.Menu.Item, null,
663
675
  react_2["default"].createElement("div", { "aria-hidden": true, className: 'px-2 pb-2 pt-4 text-sm font-semibold text-gray-900' }, "T\u00F9y ch\u1ECDn")),
@@ -684,7 +696,7 @@ var PHXMainWrapV3 = function (_a) {
684
696
  react_2["default"].createElement("span", { className: 'sr-only' }, "Close sidebar"),
685
697
  react_2["default"].createElement(outline_1.XMarkIcon, { "aria-hidden": 'true', className: 'h-6 w-6 text-white' })))),
686
698
  react_2["default"].createElement("div", { className: 'mt-8 h-0 flex-1 overflow-y-auto pb-4 pt-5' },
687
- react_2["default"].createElement(nav_mobile_1["default"], { menu: menu, path: pathNameWithBasePath, permission: perCode, router: router, setSideBarOpen: function () { return setSidebarOpen(false); } })))),
699
+ react_2["default"].createElement(nav_mobile_1["default"], { menu: dataInitMain.menu, path: pathNameWithBasePath, permission: dataInitMain.perCode, router: router, setSideBarOpen: function () { return setSidebarOpen(false); } })))),
688
700
  react_2["default"].createElement("div", { "aria-hidden": 'true', className: 'w-14 flex-shrink-0' })))),
689
701
  react_2["default"].createElement("div", { className: 'hidden lg:flex lg:flex-shrink-0' },
690
702
  react_2["default"].createElement("div", { className: 'flex' },
@@ -692,7 +704,7 @@ var PHXMainWrapV3 = function (_a) {
692
704
  react_2["default"].createElement("div", { "aria-hidden": true, className: "".concat(openNavName ? 'w-64' : 'w-14', " menu-styled z-10 flex h-full flex-col justify-between border-r !bg-gray-200 transition-all duration-300 lg:fixed"), onMouseOut: function () { return setOpenNavName(false); }, onMouseOver: function () { return setOpenNavName(true); } },
693
705
  react_2["default"].createElement("div", { className: classNames('flex flex-1 flex-col', openNavName ? 'overflow-y-auto' : 'overflow-y-hidden') },
694
706
  react_2["default"].createElement("div", { className: 'relative flex-1' },
695
- react_2["default"].createElement("div", { "aria-label": 'Sidebar', className: 'hidden overflow-x-hidden md:block md:flex-shrink-0 md:overflow-y-auto' }, !hiddenLeftMenu && (react_2["default"].createElement("div", { className: "space-y- flex ".concat(openNavName ? 'w-64' : 'w-12', " flex-col overflow-hidden p-3") }, navigation.map(function (item, index) { return (react_2["default"].createElement("div", { key: index, className: 'w-full' }, enablePer(item.code, perCode) && (react_2["default"].createElement("a", { className: "".concat(classNames(item.current && !openNavName
707
+ react_2["default"].createElement("div", { "aria-label": 'Sidebar', className: 'hidden overflow-x-hidden md:block md:flex-shrink-0 md:overflow-y-auto' }, !hiddenLeftMenu && (react_2["default"].createElement("div", { className: "space-y- flex ".concat(openNavName ? 'w-64' : 'w-12', " flex-col overflow-hidden p-3") }, navigation.map(function (item, index) { return (react_2["default"].createElement("div", { key: index, className: 'w-full' }, enablePer(item.code, dataInitMain.perCode) && (react_2["default"].createElement("a", { className: "".concat(classNames(item.current && !openNavName
696
708
  ? 'menu-bg-color-icon-active-styled font-semibold' // màu background của icon đang active của menu
697
709
  : 'menu-icon-color-styled', // màu icon của menu
698
710
  !openNavName
@@ -714,7 +726,7 @@ var PHXMainWrapV3 = function (_a) {
714
726
  react_2["default"].createElement(image_1["default"], { alt: 'icon', className: classNames('h-[1.125rem] w-[1.125rem] text-gray-950', openNavName && 'mt-[0.2rem]'), height: 0, src: item.current ? Icon_1.Icons["".concat(item.code, "_SOLID")] : Icon_1.Icons[item.code], width: 0 })),
715
727
  openNavName && (react_2["default"].createElement("div", { className: 'h-6' },
716
728
  react_2["default"].createElement("p", { className: "mt-0.5 h-full text-[0.86rem] text-[#353A44] transition-all duration-300 ".concat(openNavName ? 'opacity-100' : 'opacity-0') }, item.name)))))))); })))))),
717
- react_2["default"].createElement("div", { className: classNames('border-t', navigation.length > 0 && ((_e = navigation[0]) === null || _e === void 0 ? void 0 : _e.isSchoolink) ? 'border-[#1c222b]' : 'border-indigo-100') },
729
+ react_2["default"].createElement("div", { className: classNames('border-t', navigation.length > 0 && ((_f = navigation[0]) === null || _f === void 0 ? void 0 : _f.isSchoolink) ? 'border-[#1c222b]' : 'border-indigo-100') },
718
730
  react_2["default"].createElement("div", { className: "mb-14 flex ".concat(openNavName ? 'w-64' : 'w-12', " overflow-hidden p-3") },
719
731
  react_2["default"].createElement("a", { className: classNames('z-0', !openNavName
720
732
  ? 'inline-flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg'
@@ -742,75 +754,78 @@ var PHXMainWrapV3 = function (_a) {
742
754
  react_2["default"].createElement("button", { className: 'mr-1 inline-flex items-center rounded-lg border-gray-300 bg-transparent px-2 py-1 text-xs font-medium text-gray-700 hover:bg-gray-200 active:bg-gray-300 active:pb-[0.2rem] active:pt-[0.3rem] active:shadow-[0rem_0.125rem_0.1rem_0rem_#0004_inset]', onClick: function () { return handleBackMenu(); }, type: 'button' },
743
755
  react_2["default"].createElement(solid_1.ArrowLeftIcon, { className: 'h-5 w-5' })),
744
756
  react_2["default"].createElement("p", { className: 'text-sm font-medium text-slate-600' }, campaignName))),
745
- react_2["default"].createElement("div", { className: 'flex-1 overflow-y-auto pt-3' }, subNavigation.map(function (item, subNavIndex) { return (react_2["default"].createElement("div", { key: subNavIndex }, (roleCode === null || roleCode === void 0 ? void 0 : roleCode.length) > 0 ? (react_2["default"].createElement(react_2["default"].Fragment, null, enablePer(item.code, perCode) ? (react_2["default"].createElement(react_2["default"].Fragment, null,
746
- (item === null || item === void 0 ? void 0 : item.isMicroservice) ? (react_2["default"].createElement("a", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
747
- ? 'rounded-lg bg-white' // màu background menu cha khi active
748
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
749
- 'mx-3 flex cursor-pointer border-slate-200 p-2'), href: item.path }, !loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
750
- react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
751
- react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
752
- react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))) : (react_2["default"].createElement("div", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
753
- ? 'rounded-lg bg-white' // màu background menu cha khi active
754
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
755
- 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () { return subNavigationTriggerClicked(item); } }, !loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
756
- react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
757
- react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
758
- react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))),
759
- item.showChild && item.child && (react_2["default"].createElement(react_2["default"].Fragment, null, item.child.map(function (children, childIndex) { return (react_2["default"].createElement("div", { key: childIndex, className: classNames('relative') },
760
- react_2["default"].createElement("div", { style: (children === null || children === void 0 ? void 0 : children.current)
761
- ? sub_menu_style_1.styles.childMenuActiveBefore
762
- : checkChildBefore(item.child, children)
763
- ? sub_menu_style_1.styles.childMenuBefBefore
764
- : {} }),
765
- react_2["default"].createElement("div", { "aria-hidden": true, className: classNames('mx-3 flex cursor-pointer border-slate-200 p-2 text-[0.84rem]', (children === null || children === void 0 ? void 0 : children.current)
766
- ? 'rounded-lg bg-white text-[#353A44]' // màu chữ menu con khi active
767
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-[#353A44]'), onClick: enablePer(children.code, perCode)
768
- ? function () { return subNavigationTriggerClicked(children, item); }
769
- : undefined },
757
+ react_2["default"].createElement("div", { className: 'flex-1 overflow-y-auto pt-3' }, subNavigation.map(function (item, subNavIndex) {
758
+ var _a;
759
+ return (react_2["default"].createElement("div", { key: subNavIndex }, ((_a = dataInitMain.roleCode) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (react_2["default"].createElement(react_2["default"].Fragment, null, enablePer(item.code, dataInitMain.perCode) ? (react_2["default"].createElement(react_2["default"].Fragment, null,
760
+ (item === null || item === void 0 ? void 0 : item.isMicroservice) ? (react_2["default"].createElement("a", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
761
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
762
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
763
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), href: item.path }, !dataInitMain.loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
764
+ react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
765
+ react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
766
+ react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))) : (react_2["default"].createElement("div", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
767
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
768
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
769
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () { return subNavigationTriggerClicked(item); } }, !dataInitMain.loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
770
+ react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
771
+ react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
772
+ react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))),
773
+ item.showChild && item.child && (react_2["default"].createElement(react_2["default"].Fragment, null, item.child.map(function (children, childIndex) { return (react_2["default"].createElement("div", { key: childIndex, className: classNames('relative') },
774
+ react_2["default"].createElement("div", { style: (children === null || children === void 0 ? void 0 : children.current)
775
+ ? sub_menu_style_1.styles.childMenuActiveBefore
776
+ : checkChildBefore(item.child, children)
777
+ ? sub_menu_style_1.styles.childMenuBefBefore
778
+ : {} }),
779
+ react_2["default"].createElement("div", { "aria-hidden": true, className: classNames('mx-3 flex cursor-pointer border-slate-200 p-2 text-[0.84rem]', (children === null || children === void 0 ? void 0 : children.current)
780
+ ? 'rounded-lg bg-white text-[#353A44]' // màu chữ menu con khi active
781
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-[#353A44]'), onClick: enablePer(children.code, dataInitMain.perCode)
782
+ ? function () { return subNavigationTriggerClicked(children, item); }
783
+ : undefined },
784
+ react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
785
+ react_2["default"].createElement("div", { className: 'w-3' }),
786
+ react_2["default"].createElement("p", { className: classNames('my-[0.05rem] ml-3 leading-5', !enablePer(children.code, dataInitMain.perCode)
787
+ ? 'font-normal text-gray-300'
788
+ : (children === null || children === void 0 ? void 0 : children.current)
789
+ ? ''
790
+ : 'font-normal text-[#353A44]') }, children.name))),
791
+ react_2["default"].createElement("div", { style: (children === null || children === void 0 ? void 0 : children.current)
792
+ ? sub_menu_style_1.styles.childMenuActiveAfter
793
+ : checkChildBefore(item.child, children)
794
+ ? sub_menu_style_1.styles.childMenuBefAfter
795
+ : {} }))); }))))) : (react_2["default"].createElement("div", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, className: classNames((item === null || item === void 0 ? void 0 : item.current)
796
+ ? 'rounded-lg bg-white '
797
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // hover:bg-white
798
+ 'mx-3 flex cursor-pointer border-slate-200 p-2') }, !dataInitMain.loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
799
+ react_2["default"].createElement("div", { className: 'flex items-center gap-x-3 text-gray-700' },
800
+ react_2["default"].createElement("p", { className: classNames('font-normal leading-5 text-gray-300') }, item === null || item === void 0 ? void 0 : item.name)),
801
+ react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))))) : (react_2["default"].createElement(react_2["default"].Fragment, null,
802
+ (item === null || item === void 0 ? void 0 : item.isMicroservice) ? (react_2["default"].createElement("a", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
803
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
804
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
805
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), href: item.path }, !dataInitMain.loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
770
806
  react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
771
- react_2["default"].createElement("div", { className: 'w-3' }),
772
- react_2["default"].createElement("p", { className: classNames('my-[0.05rem] ml-3 leading-5', !enablePer(children.code, perCode)
773
- ? 'font-normal text-gray-300'
774
- : (children === null || children === void 0 ? void 0 : children.current)
775
- ? ''
776
- : 'font-normal text-[#353A44]') }, children.name))),
777
- react_2["default"].createElement("div", { style: (children === null || children === void 0 ? void 0 : children.current)
778
- ? sub_menu_style_1.styles.childMenuActiveAfter
779
- : checkChildBefore(item.child, children)
780
- ? sub_menu_style_1.styles.childMenuBefAfter
781
- : {} }))); }))))) : (react_2["default"].createElement("div", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, className: classNames((item === null || item === void 0 ? void 0 : item.current)
782
- ? 'rounded-lg bg-white '
783
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // hover:bg-white
784
- 'mx-3 flex cursor-pointer border-slate-200 p-2') }, !loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
785
- react_2["default"].createElement("div", { className: 'flex items-center gap-x-3 text-gray-700' },
786
- react_2["default"].createElement("p", { className: classNames('font-normal leading-5 text-gray-300') }, item === null || item === void 0 ? void 0 : item.name)),
787
- react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))))) : (react_2["default"].createElement(react_2["default"].Fragment, null,
788
- (item === null || item === void 0 ? void 0 : item.isMicroservice) ? (react_2["default"].createElement("a", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
789
- ? 'rounded-lg bg-white' // màu background menu cha khi active
790
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
791
- 'mx-3 flex cursor-pointer border-slate-200 p-2'), href: item.path }, !loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
792
- react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
793
- react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
794
- react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))) : (react_2["default"].createElement("div", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
795
- ? 'rounded-lg bg-white' // màu background menu cha khi active
796
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
797
- 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () { return subNavigationTriggerClicked(item); } }, !loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
798
- react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
799
- react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
800
- react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))),
801
- item.showChild && item.child && (react_2["default"].createElement(react_2["default"].Fragment, null, item.child.map(function (children, index) { return (react_2["default"].createElement("div", { key: index, className: classNames('relative', (children === null || children === void 0 ? void 0 : children.current) && 'child-menu-active', checkChildBefore(item.child, children) && 'child-menu-bef') },
802
- react_2["default"].createElement("div", { "aria-hidden": true, className: classNames('mx-1 flex cursor-pointer border-slate-200 p-2 text-[0.84rem]', (children === null || children === void 0 ? void 0 : children.current)
803
- ? 'rounded-lg bg-white text-gray-900 '
804
- : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-gray-900'), onClick: function () { return subNavigationTriggerClicked(children, item); } },
807
+ react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
808
+ react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))) : (react_2["default"].createElement("div", { "aria-current": (item === null || item === void 0 ? void 0 : item.current) ? 'page' : undefined, "aria-hidden": true, className: classNames((item === null || item === void 0 ? void 0 : item.current)
809
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
810
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
811
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () { return subNavigationTriggerClicked(item); } }, !dataInitMain.loadingMenu ? (react_2["default"].createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
805
812
  react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
806
- react_2["default"].createElement("div", { className: 'w-3' }),
807
- react_2["default"].createElement("p", { className: classNames('my-[0.05rem] ml-3 leading-5', (children === null || children === void 0 ? void 0 : children.current) ? 'font-semibold' : 'font-normal text-gray-600') }, children.name))))); }))))))); }))))))))),
813
+ react_2["default"].createElement("p", { className: classNames('leading-5', (item === null || item === void 0 ? void 0 : item.current) ? '' : 'font-normal text-[#353A44]') }, item === null || item === void 0 ? void 0 : item.name)),
814
+ react_2["default"].createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (react_2["default"].createElement(Skeleton_1.PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))),
815
+ item.showChild && item.child && (react_2["default"].createElement(react_2["default"].Fragment, null, item.child.map(function (children, index) { return (react_2["default"].createElement("div", { key: index, className: classNames('relative', (children === null || children === void 0 ? void 0 : children.current) && 'child-menu-active', checkChildBefore(item.child, children) && 'child-menu-bef') },
816
+ react_2["default"].createElement("div", { "aria-hidden": true, className: classNames('mx-1 flex cursor-pointer border-slate-200 p-2 text-[0.84rem]', (children === null || children === void 0 ? void 0 : children.current)
817
+ ? 'rounded-lg bg-white text-gray-900 '
818
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-gray-900'), onClick: function () { return subNavigationTriggerClicked(children, item); } },
819
+ react_2["default"].createElement("div", { className: 'flex items-center gap-x-3' },
820
+ react_2["default"].createElement("div", { className: 'w-3' }),
821
+ react_2["default"].createElement("p", { className: classNames('my-[0.05rem] ml-3 leading-5', (children === null || children === void 0 ? void 0 : children.current) ? 'font-semibold' : 'font-normal text-gray-600') }, children.name))))); })))))));
822
+ }))))))))),
808
823
  react_2["default"].createElement("div", { className: 'flex min-w-0 flex-1 flex-col overflow-hidden' },
809
824
  react_2["default"].createElement("main", { className: 'flex flex-1 overflow-hidden' },
810
825
  react_2["default"].createElement("section", { "aria-labelledby": 'primary-heading', className: 'flex h-full min-w-0 flex-1 flex-col lg:order-last' },
811
826
  react_2["default"].createElement("div", { className: 'sticky top-0 z-10 flex h-14 flex-shrink-0 border-b border-l bg-bgcl-50 px-4 sm:px-6 lg:px-4' }),
812
827
  react_2["default"].createElement("div", { className: "".concat(openSubMenu ? 'lg:ml-[20.063rem]' : 'lg:ml-[5.063rem]', " bg-gray-100 px-6") },
813
- react_2["default"].createElement("div", { className: 'py-4' }, isLoadingPermission ? ('') : enablePer(currentCode, perCode) ? (children) : (react_2["default"].createElement(Card_1.PHXCard, null,
828
+ react_2["default"].createElement("div", { className: 'py-4' }, dataInitMain.isLoadingPermission ? ('') : enablePer(currentCode, dataInitMain.perCode) ? (children) : (react_2["default"].createElement(Card_1.PHXCard, null,
814
829
  react_2["default"].createElement("div", { className: 'mb-10 mt-10 sm:mb-20 sm:mt-20 lg:mb-32 lg:mt-32' },
815
830
  react_2["default"].createElement("div", { className: 'flex items-center justify-center' },
816
831
  react_2["default"].createElement(outline_1.LockClosedIcon, { className: 'text-gray-400', height: 70, width: 70 })),