phx-react 1.3.1288 → 1.3.1290

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dist/cjs/components/MainWrapV4/MainWrapV4.d.ts +30 -0
  2. package/dist/cjs/components/MainWrapV4/MainWrapV4.js +879 -0
  3. package/dist/cjs/components/MainWrapV4/MainWrapV4.js.map +1 -0
  4. package/dist/cjs/components/MainWrapV4/appearance/appearance-styled.d.ts +8 -0
  5. package/dist/cjs/components/MainWrapV4/appearance/appearance-styled.js +42 -0
  6. package/dist/cjs/components/MainWrapV4/appearance/appearance-styled.js.map +1 -0
  7. package/dist/cjs/components/MainWrapV4/assets/Icon.d.ts +97 -0
  8. package/dist/cjs/components/MainWrapV4/assets/Icon.js +197 -0
  9. package/dist/cjs/components/MainWrapV4/assets/Icon.js.map +1 -0
  10. package/dist/cjs/components/MainWrapV4/assets/Icon.ts +201 -0
  11. package/dist/cjs/components/MainWrapV4/assets/icon/activity-history.svg +4 -0
  12. package/dist/cjs/components/MainWrapV4/assets/icon/arrow-right-submenu.svg +4 -0
  13. package/dist/cjs/components/MainWrapV4/assets/icon/arrow-submenu-hover.svg +3 -0
  14. package/dist/cjs/components/MainWrapV4/assets/icon/asset/Icon_asset.svg +3 -0
  15. package/dist/cjs/components/MainWrapV4/assets/icon/asset/outline-pined.svg +3 -0
  16. package/dist/cjs/components/MainWrapV4/assets/icon/asset/outline-sidebar.svg +3 -0
  17. package/dist/cjs/components/MainWrapV4/assets/icon/asset/outline.svg +3 -0
  18. package/dist/cjs/components/MainWrapV4/assets/icon/asset/solid.svg +3 -0
  19. package/dist/cjs/components/MainWrapV4/assets/icon/cham-tiet/outline-pined.svg +17 -0
  20. package/dist/cjs/components/MainWrapV4/assets/icon/cham-tiet/outline-sidebar.svg +17 -0
  21. package/dist/cjs/components/MainWrapV4/assets/icon/cham-tiet/outline.svg +17 -0
  22. package/dist/cjs/components/MainWrapV4/assets/icon/cham-tiet/solid.svg +15 -0
  23. package/dist/cjs/components/MainWrapV4/assets/icon/chat/outline-pined.svg +18 -0
  24. package/dist/cjs/components/MainWrapV4/assets/icon/chat/outline-sidebar.svg +18 -0
  25. package/dist/cjs/components/MainWrapV4/assets/icon/chat/outline.svg +18 -0
  26. package/dist/cjs/components/MainWrapV4/assets/icon/chat/solid.svg +16 -0
  27. package/dist/cjs/components/MainWrapV4/assets/icon/close-sidebar.svg +3 -0
  28. package/dist/cjs/components/MainWrapV4/assets/icon/dashboard/outline-sidebar.svg +3 -0
  29. package/dist/cjs/components/MainWrapV4/assets/icon/dashboard/outline.svg +3 -0
  30. package/dist/cjs/components/MainWrapV4/assets/icon/dashboard/solid.svg +3 -0
  31. package/dist/cjs/components/MainWrapV4/assets/icon/department/outline-pined.svg +3 -0
  32. package/dist/cjs/components/MainWrapV4/assets/icon/department/outline-sidebar.svg +3 -0
  33. package/dist/cjs/components/MainWrapV4/assets/icon/department/outline.svg +3 -0
  34. package/dist/cjs/components/MainWrapV4/assets/icon/department/solid.svg +3 -0
  35. package/dist/cjs/components/MainWrapV4/assets/icon/diem-van-minh/outline-pined.svg +15 -0
  36. package/dist/cjs/components/MainWrapV4/assets/icon/diem-van-minh/outline-sidebar.svg +15 -0
  37. package/dist/cjs/components/MainWrapV4/assets/icon/diem-van-minh/outline.svg +15 -0
  38. package/dist/cjs/components/MainWrapV4/assets/icon/diem-van-minh/solid.svg +15 -0
  39. package/dist/cjs/components/MainWrapV4/assets/icon/email-dashboard/outline-pined.svg +3 -0
  40. package/dist/cjs/components/MainWrapV4/assets/icon/email-dashboard/outline-sidebar.svg +3 -0
  41. package/dist/cjs/components/MainWrapV4/assets/icon/email-dashboard/outline.svg +3 -0
  42. package/dist/cjs/components/MainWrapV4/assets/icon/email-dashboard/solid.svg +3 -0
  43. package/dist/cjs/components/MainWrapV4/assets/icon/feedback/outline-pined.svg +3 -0
  44. package/dist/cjs/components/MainWrapV4/assets/icon/feedback/outline-sidebar.svg +3 -0
  45. package/dist/cjs/components/MainWrapV4/assets/icon/feedback/outline.svg +3 -0
  46. package/dist/cjs/components/MainWrapV4/assets/icon/feedback/solid.svg +3 -0
  47. package/dist/cjs/components/MainWrapV4/assets/icon/food/outline-pined.svg +3 -0
  48. package/dist/cjs/components/MainWrapV4/assets/icon/food/outline-sidebar.svg +3 -0
  49. package/dist/cjs/components/MainWrapV4/assets/icon/food/outline.svg +3 -0
  50. package/dist/cjs/components/MainWrapV4/assets/icon/food/solid.svg +3 -0
  51. package/dist/cjs/components/MainWrapV4/assets/icon/giao-vu/outline-pined.svg +17 -0
  52. package/dist/cjs/components/MainWrapV4/assets/icon/giao-vu/outline-sidebar.svg +17 -0
  53. package/dist/cjs/components/MainWrapV4/assets/icon/giao-vu/outline.svg +17 -0
  54. package/dist/cjs/components/MainWrapV4/assets/icon/giao-vu/solid.svg +16 -0
  55. package/dist/cjs/components/MainWrapV4/assets/icon/hrm/outline-pined.svg +20 -0
  56. package/dist/cjs/components/MainWrapV4/assets/icon/hrm/outline-sidebar.svg +20 -0
  57. package/dist/cjs/components/MainWrapV4/assets/icon/hrm/outline.svg +20 -0
  58. package/dist/cjs/components/MainWrapV4/assets/icon/hrm/solid.svg +15 -0
  59. package/dist/cjs/components/MainWrapV4/assets/icon/hrm-checkin/outline-pined.svg +3 -0
  60. package/dist/cjs/components/MainWrapV4/assets/icon/hrm-checkin/outline-sidebar.svg +3 -0
  61. package/dist/cjs/components/MainWrapV4/assets/icon/hrm-checkin/outline.svg +3 -0
  62. package/dist/cjs/components/MainWrapV4/assets/icon/hrm-checkin/solid.svg +3 -0
  63. package/dist/cjs/components/MainWrapV4/assets/icon/lms/outline-sidebar.svg +3 -0
  64. package/dist/cjs/components/MainWrapV4/assets/icon/lms/outline.svg +3 -0
  65. package/dist/cjs/components/MainWrapV4/assets/icon/lms/solid.svg +3 -0
  66. package/dist/cjs/components/MainWrapV4/assets/icon/medical/outline-pined.svg +3 -0
  67. package/dist/cjs/components/MainWrapV4/assets/icon/medical/outline-sidebar.svg +3 -0
  68. package/dist/cjs/components/MainWrapV4/assets/icon/medical/outline.svg +3 -0
  69. package/dist/cjs/components/MainWrapV4/assets/icon/medical/solid.svg +3 -0
  70. package/dist/cjs/components/MainWrapV4/assets/icon/noi-tru/outline-pined.svg +3 -0
  71. package/dist/cjs/components/MainWrapV4/assets/icon/noi-tru/outline-sidebar.svg +3 -0
  72. package/dist/cjs/components/MainWrapV4/assets/icon/noi-tru/outline.svg +3 -0
  73. package/dist/cjs/components/MainWrapV4/assets/icon/noi-tru/solid.svg +3 -0
  74. package/dist/cjs/components/MainWrapV4/assets/icon/other-menu.svg +3 -0
  75. package/dist/cjs/components/MainWrapV4/assets/icon/pin.svg +18 -0
  76. package/dist/cjs/components/MainWrapV4/assets/icon/robot-motion/outline-sidebar.svg +3 -0
  77. package/dist/cjs/components/MainWrapV4/assets/icon/robot-motion/outline.svg +3 -0
  78. package/dist/cjs/components/MainWrapV4/assets/icon/robot-motion/solid.svg +3 -0
  79. package/dist/cjs/components/MainWrapV4/assets/icon/search.svg +3 -0
  80. package/dist/cjs/components/MainWrapV4/assets/icon/setting-other-menu.svg +4 -0
  81. package/dist/cjs/components/MainWrapV4/assets/icon/setting.svg +16 -0
  82. package/dist/cjs/components/MainWrapV4/assets/icon/show-sidebar.svg +3 -0
  83. package/dist/cjs/components/MainWrapV4/assets/icon/store/outline-pined.svg +18 -0
  84. package/dist/cjs/components/MainWrapV4/assets/icon/store/outline-sidebar.svg +18 -0
  85. package/dist/cjs/components/MainWrapV4/assets/icon/store/outline.svg +18 -0
  86. package/dist/cjs/components/MainWrapV4/assets/icon/store/solid.svg +18 -0
  87. package/dist/cjs/components/MainWrapV4/assets/icon/student-affairs/outline-pined.svg +17 -0
  88. package/dist/cjs/components/MainWrapV4/assets/icon/student-affairs/outline-sidebar.svg +17 -0
  89. package/dist/cjs/components/MainWrapV4/assets/icon/student-affairs/outline.svg +17 -0
  90. package/dist/cjs/components/MainWrapV4/assets/icon/student-affairs/solid.svg +16 -0
  91. package/dist/cjs/components/MainWrapV4/assets/icon/team-building/outline-sidebar.svg +6 -0
  92. package/dist/cjs/components/MainWrapV4/assets/icon/team-building/outline.svg +6 -0
  93. package/dist/cjs/components/MainWrapV4/assets/icon/team-building/solid.svg +3 -0
  94. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/outline-pined.svg +18 -0
  95. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/outline-sidebar.svg +18 -0
  96. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/outline.svg +18 -0
  97. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/solid.svg +16 -0
  98. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/outline-pined.svg +18 -0
  99. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/outline-sidebar.svg +18 -0
  100. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/outline.svg +18 -0
  101. package/dist/cjs/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/solid.svg +16 -0
  102. package/dist/cjs/components/MainWrapV4/assets/icon/truyen-thong/outline-pined.svg +3 -0
  103. package/dist/cjs/components/MainWrapV4/assets/icon/truyen-thong/outline-sidebar.svg +3 -0
  104. package/dist/cjs/components/MainWrapV4/assets/icon/truyen-thong/outline.svg +3 -0
  105. package/dist/cjs/components/MainWrapV4/assets/icon/truyen-thong/solid.svg +3 -0
  106. package/dist/cjs/components/MainWrapV4/assets/icon/tuition/outline-pined.svg +3 -0
  107. package/dist/cjs/components/MainWrapV4/assets/icon/tuition/outline-sidebar.svg +3 -0
  108. package/dist/cjs/components/MainWrapV4/assets/icon/tuition/outline.svg +3 -0
  109. package/dist/cjs/components/MainWrapV4/assets/icon/tuition/solid.svg +3 -0
  110. package/dist/cjs/components/MainWrapV4/assets/icon/tuyen-sinh/outline-sidebar.svg +3 -0
  111. package/dist/cjs/components/MainWrapV4/assets/icon/tuyen-sinh/outline.svg +3 -0
  112. package/dist/cjs/components/MainWrapV4/assets/icon/tuyen-sinh/solid.svg +3 -0
  113. package/dist/cjs/components/MainWrapV4/assets/icon/un-pin.svg +18 -0
  114. package/dist/cjs/components/MainWrapV4/assets/icon/user/outline-pined.svg +18 -0
  115. package/dist/cjs/components/MainWrapV4/assets/icon/user/outline-sidebar.svg +18 -0
  116. package/dist/cjs/components/MainWrapV4/assets/icon/user/outline.svg +18 -0
  117. package/dist/cjs/components/MainWrapV4/assets/icon/user/solid.svg +18 -0
  118. package/dist/cjs/components/MainWrapV4/assets/icon/user-segment/outline-pined.svg +3 -0
  119. package/dist/cjs/components/MainWrapV4/assets/icon/user-segment/outline-sidebar.svg +3 -0
  120. package/dist/cjs/components/MainWrapV4/assets/icon/user-segment/outline.svg +3 -0
  121. package/dist/cjs/components/MainWrapV4/assets/icon/user-segment/solid.svg +3 -0
  122. package/dist/cjs/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/outline-pined.svg +3 -0
  123. package/dist/cjs/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/outline-sidebar.svg +3 -0
  124. package/dist/cjs/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/outline.svg +3 -0
  125. package/dist/cjs/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/solid.svg +3 -0
  126. package/dist/cjs/components/MainWrapV4/assets/icon/xe-tuyen/outline-pined.svg +3 -0
  127. package/dist/cjs/components/MainWrapV4/assets/icon/xe-tuyen/outline-sidebar.svg +3 -0
  128. package/dist/cjs/components/MainWrapV4/assets/icon/xe-tuyen/outline.svg +3 -0
  129. package/dist/cjs/components/MainWrapV4/assets/icon/xe-tuyen/solid.svg +3 -0
  130. package/dist/cjs/components/MainWrapV4/components/nav-item.d.ts +11 -0
  131. package/dist/cjs/components/MainWrapV4/components/nav-item.js +30 -0
  132. package/dist/cjs/components/MainWrapV4/components/nav-item.js.map +1 -0
  133. package/dist/cjs/components/MainWrapV4/components/other-menu.d.ts +8 -0
  134. package/dist/cjs/components/MainWrapV4/components/other-menu.js +145 -0
  135. package/dist/cjs/components/MainWrapV4/components/other-menu.js.map +1 -0
  136. package/dist/cjs/components/MainWrapV4/components/side-bar.d.ts +13 -0
  137. package/dist/cjs/components/MainWrapV4/components/side-bar.js +123 -0
  138. package/dist/cjs/components/MainWrapV4/components/side-bar.js.map +1 -0
  139. package/dist/cjs/components/MainWrapV4/constant.d.ts +5 -0
  140. package/dist/cjs/components/MainWrapV4/constant.js +10 -0
  141. package/dist/cjs/components/MainWrapV4/constant.js.map +1 -0
  142. package/dist/cjs/components/MainWrapV4/index.d.ts +1 -0
  143. package/dist/cjs/components/MainWrapV4/index.js +5 -0
  144. package/dist/cjs/components/MainWrapV4/index.js.map +1 -0
  145. package/dist/cjs/components/MainWrapV4/navigator/nav-mobile-content.d.ts +2 -0
  146. package/dist/cjs/components/MainWrapV4/navigator/nav-mobile-content.js +118 -0
  147. package/dist/cjs/components/MainWrapV4/navigator/nav-mobile-content.js.map +1 -0
  148. package/dist/cjs/components/MainWrapV4/navigator/nav-mobile.d.ts +2 -0
  149. package/dist/cjs/components/MainWrapV4/navigator/nav-mobile.js +28 -0
  150. package/dist/cjs/components/MainWrapV4/navigator/nav-mobile.js.map +1 -0
  151. package/dist/cjs/components/MainWrapV4/svg.d.ts +5 -0
  152. package/dist/cjs/components/MainWrapV4/svg.js +2 -0
  153. package/dist/cjs/components/MainWrapV4/svg.js.map +1 -0
  154. package/dist/cjs/components/MainWrapV4/types/appearance.d.ts +19 -0
  155. package/dist/cjs/components/MainWrapV4/types/appearance.js +3 -0
  156. package/dist/cjs/components/MainWrapV4/types/appearance.js.map +1 -0
  157. package/dist/cjs/components/MainWrapV4/types/index.d.ts +9 -0
  158. package/dist/cjs/components/MainWrapV4/types/index.js +3 -0
  159. package/dist/cjs/components/MainWrapV4/types/index.js.map +1 -0
  160. package/dist/cjs/index.d.ts +2 -1
  161. package/dist/cjs/index.js +4 -2
  162. package/dist/cjs/index.js.map +1 -1
  163. package/dist/esm/components/MainWrapV4/MainWrapV4.d.ts +30 -0
  164. package/dist/esm/components/MainWrapV4/MainWrapV4.js +875 -0
  165. package/dist/esm/components/MainWrapV4/MainWrapV4.js.map +1 -0
  166. package/dist/esm/components/MainWrapV4/appearance/appearance-styled.d.ts +8 -0
  167. package/dist/esm/components/MainWrapV4/appearance/appearance-styled.js +39 -0
  168. package/dist/esm/components/MainWrapV4/appearance/appearance-styled.js.map +1 -0
  169. package/dist/esm/components/MainWrapV4/assets/Icon.d.ts +97 -0
  170. package/dist/esm/components/MainWrapV4/assets/Icon.js +193 -0
  171. package/dist/esm/components/MainWrapV4/assets/Icon.js.map +1 -0
  172. package/dist/esm/components/MainWrapV4/assets/Icon.ts +201 -0
  173. package/dist/esm/components/MainWrapV4/assets/icon/activity-history.svg +4 -0
  174. package/dist/esm/components/MainWrapV4/assets/icon/arrow-right-submenu.svg +4 -0
  175. package/dist/esm/components/MainWrapV4/assets/icon/arrow-submenu-hover.svg +3 -0
  176. package/dist/esm/components/MainWrapV4/assets/icon/asset/Icon_asset.svg +3 -0
  177. package/dist/esm/components/MainWrapV4/assets/icon/asset/outline-pined.svg +3 -0
  178. package/dist/esm/components/MainWrapV4/assets/icon/asset/outline-sidebar.svg +3 -0
  179. package/dist/esm/components/MainWrapV4/assets/icon/asset/outline.svg +3 -0
  180. package/dist/esm/components/MainWrapV4/assets/icon/asset/solid.svg +3 -0
  181. package/dist/esm/components/MainWrapV4/assets/icon/cham-tiet/outline-pined.svg +17 -0
  182. package/dist/esm/components/MainWrapV4/assets/icon/cham-tiet/outline-sidebar.svg +17 -0
  183. package/dist/esm/components/MainWrapV4/assets/icon/cham-tiet/outline.svg +17 -0
  184. package/dist/esm/components/MainWrapV4/assets/icon/cham-tiet/solid.svg +15 -0
  185. package/dist/esm/components/MainWrapV4/assets/icon/chat/outline-pined.svg +18 -0
  186. package/dist/esm/components/MainWrapV4/assets/icon/chat/outline-sidebar.svg +18 -0
  187. package/dist/esm/components/MainWrapV4/assets/icon/chat/outline.svg +18 -0
  188. package/dist/esm/components/MainWrapV4/assets/icon/chat/solid.svg +16 -0
  189. package/dist/esm/components/MainWrapV4/assets/icon/close-sidebar.svg +3 -0
  190. package/dist/esm/components/MainWrapV4/assets/icon/dashboard/outline-sidebar.svg +3 -0
  191. package/dist/esm/components/MainWrapV4/assets/icon/dashboard/outline.svg +3 -0
  192. package/dist/esm/components/MainWrapV4/assets/icon/dashboard/solid.svg +3 -0
  193. package/dist/esm/components/MainWrapV4/assets/icon/department/outline-pined.svg +3 -0
  194. package/dist/esm/components/MainWrapV4/assets/icon/department/outline-sidebar.svg +3 -0
  195. package/dist/esm/components/MainWrapV4/assets/icon/department/outline.svg +3 -0
  196. package/dist/esm/components/MainWrapV4/assets/icon/department/solid.svg +3 -0
  197. package/dist/esm/components/MainWrapV4/assets/icon/diem-van-minh/outline-pined.svg +15 -0
  198. package/dist/esm/components/MainWrapV4/assets/icon/diem-van-minh/outline-sidebar.svg +15 -0
  199. package/dist/esm/components/MainWrapV4/assets/icon/diem-van-minh/outline.svg +15 -0
  200. package/dist/esm/components/MainWrapV4/assets/icon/diem-van-minh/solid.svg +15 -0
  201. package/dist/esm/components/MainWrapV4/assets/icon/email-dashboard/outline-pined.svg +3 -0
  202. package/dist/esm/components/MainWrapV4/assets/icon/email-dashboard/outline-sidebar.svg +3 -0
  203. package/dist/esm/components/MainWrapV4/assets/icon/email-dashboard/outline.svg +3 -0
  204. package/dist/esm/components/MainWrapV4/assets/icon/email-dashboard/solid.svg +3 -0
  205. package/dist/esm/components/MainWrapV4/assets/icon/feedback/outline-pined.svg +3 -0
  206. package/dist/esm/components/MainWrapV4/assets/icon/feedback/outline-sidebar.svg +3 -0
  207. package/dist/esm/components/MainWrapV4/assets/icon/feedback/outline.svg +3 -0
  208. package/dist/esm/components/MainWrapV4/assets/icon/feedback/solid.svg +3 -0
  209. package/dist/esm/components/MainWrapV4/assets/icon/food/outline-pined.svg +3 -0
  210. package/dist/esm/components/MainWrapV4/assets/icon/food/outline-sidebar.svg +3 -0
  211. package/dist/esm/components/MainWrapV4/assets/icon/food/outline.svg +3 -0
  212. package/dist/esm/components/MainWrapV4/assets/icon/food/solid.svg +3 -0
  213. package/dist/esm/components/MainWrapV4/assets/icon/giao-vu/outline-pined.svg +17 -0
  214. package/dist/esm/components/MainWrapV4/assets/icon/giao-vu/outline-sidebar.svg +17 -0
  215. package/dist/esm/components/MainWrapV4/assets/icon/giao-vu/outline.svg +17 -0
  216. package/dist/esm/components/MainWrapV4/assets/icon/giao-vu/solid.svg +16 -0
  217. package/dist/esm/components/MainWrapV4/assets/icon/hrm/outline-pined.svg +20 -0
  218. package/dist/esm/components/MainWrapV4/assets/icon/hrm/outline-sidebar.svg +20 -0
  219. package/dist/esm/components/MainWrapV4/assets/icon/hrm/outline.svg +20 -0
  220. package/dist/esm/components/MainWrapV4/assets/icon/hrm/solid.svg +15 -0
  221. package/dist/esm/components/MainWrapV4/assets/icon/hrm-checkin/outline-pined.svg +3 -0
  222. package/dist/esm/components/MainWrapV4/assets/icon/hrm-checkin/outline-sidebar.svg +3 -0
  223. package/dist/esm/components/MainWrapV4/assets/icon/hrm-checkin/outline.svg +3 -0
  224. package/dist/esm/components/MainWrapV4/assets/icon/hrm-checkin/solid.svg +3 -0
  225. package/dist/esm/components/MainWrapV4/assets/icon/lms/outline-sidebar.svg +3 -0
  226. package/dist/esm/components/MainWrapV4/assets/icon/lms/outline.svg +3 -0
  227. package/dist/esm/components/MainWrapV4/assets/icon/lms/solid.svg +3 -0
  228. package/dist/esm/components/MainWrapV4/assets/icon/medical/outline-pined.svg +3 -0
  229. package/dist/esm/components/MainWrapV4/assets/icon/medical/outline-sidebar.svg +3 -0
  230. package/dist/esm/components/MainWrapV4/assets/icon/medical/outline.svg +3 -0
  231. package/dist/esm/components/MainWrapV4/assets/icon/medical/solid.svg +3 -0
  232. package/dist/esm/components/MainWrapV4/assets/icon/noi-tru/outline-pined.svg +3 -0
  233. package/dist/esm/components/MainWrapV4/assets/icon/noi-tru/outline-sidebar.svg +3 -0
  234. package/dist/esm/components/MainWrapV4/assets/icon/noi-tru/outline.svg +3 -0
  235. package/dist/esm/components/MainWrapV4/assets/icon/noi-tru/solid.svg +3 -0
  236. package/dist/esm/components/MainWrapV4/assets/icon/other-menu.svg +3 -0
  237. package/dist/esm/components/MainWrapV4/assets/icon/pin.svg +18 -0
  238. package/dist/esm/components/MainWrapV4/assets/icon/robot-motion/outline-sidebar.svg +3 -0
  239. package/dist/esm/components/MainWrapV4/assets/icon/robot-motion/outline.svg +3 -0
  240. package/dist/esm/components/MainWrapV4/assets/icon/robot-motion/solid.svg +3 -0
  241. package/dist/esm/components/MainWrapV4/assets/icon/search.svg +3 -0
  242. package/dist/esm/components/MainWrapV4/assets/icon/setting-other-menu.svg +4 -0
  243. package/dist/esm/components/MainWrapV4/assets/icon/setting.svg +16 -0
  244. package/dist/esm/components/MainWrapV4/assets/icon/show-sidebar.svg +3 -0
  245. package/dist/esm/components/MainWrapV4/assets/icon/store/outline-pined.svg +18 -0
  246. package/dist/esm/components/MainWrapV4/assets/icon/store/outline-sidebar.svg +18 -0
  247. package/dist/esm/components/MainWrapV4/assets/icon/store/outline.svg +18 -0
  248. package/dist/esm/components/MainWrapV4/assets/icon/store/solid.svg +18 -0
  249. package/dist/esm/components/MainWrapV4/assets/icon/student-affairs/outline-pined.svg +17 -0
  250. package/dist/esm/components/MainWrapV4/assets/icon/student-affairs/outline-sidebar.svg +17 -0
  251. package/dist/esm/components/MainWrapV4/assets/icon/student-affairs/outline.svg +17 -0
  252. package/dist/esm/components/MainWrapV4/assets/icon/student-affairs/solid.svg +16 -0
  253. package/dist/esm/components/MainWrapV4/assets/icon/team-building/outline-sidebar.svg +6 -0
  254. package/dist/esm/components/MainWrapV4/assets/icon/team-building/outline.svg +6 -0
  255. package/dist/esm/components/MainWrapV4/assets/icon/team-building/solid.svg +3 -0
  256. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/outline-pined.svg +18 -0
  257. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/outline-sidebar.svg +18 -0
  258. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/outline.svg +18 -0
  259. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-tieu-hoc/solid.svg +16 -0
  260. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/outline-pined.svg +18 -0
  261. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/outline-sidebar.svg +18 -0
  262. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/outline.svg +18 -0
  263. package/dist/esm/components/MainWrapV4/assets/icon/thu-vien-trung-hoc/solid.svg +16 -0
  264. package/dist/esm/components/MainWrapV4/assets/icon/truyen-thong/outline-pined.svg +3 -0
  265. package/dist/esm/components/MainWrapV4/assets/icon/truyen-thong/outline-sidebar.svg +3 -0
  266. package/dist/esm/components/MainWrapV4/assets/icon/truyen-thong/outline.svg +3 -0
  267. package/dist/esm/components/MainWrapV4/assets/icon/truyen-thong/solid.svg +3 -0
  268. package/dist/esm/components/MainWrapV4/assets/icon/tuition/outline-pined.svg +3 -0
  269. package/dist/esm/components/MainWrapV4/assets/icon/tuition/outline-sidebar.svg +3 -0
  270. package/dist/esm/components/MainWrapV4/assets/icon/tuition/outline.svg +3 -0
  271. package/dist/esm/components/MainWrapV4/assets/icon/tuition/solid.svg +3 -0
  272. package/dist/esm/components/MainWrapV4/assets/icon/tuyen-sinh/outline-sidebar.svg +3 -0
  273. package/dist/esm/components/MainWrapV4/assets/icon/tuyen-sinh/outline.svg +3 -0
  274. package/dist/esm/components/MainWrapV4/assets/icon/tuyen-sinh/solid.svg +3 -0
  275. package/dist/esm/components/MainWrapV4/assets/icon/un-pin.svg +18 -0
  276. package/dist/esm/components/MainWrapV4/assets/icon/user/outline-pined.svg +18 -0
  277. package/dist/esm/components/MainWrapV4/assets/icon/user/outline-sidebar.svg +18 -0
  278. package/dist/esm/components/MainWrapV4/assets/icon/user/outline.svg +18 -0
  279. package/dist/esm/components/MainWrapV4/assets/icon/user/solid.svg +18 -0
  280. package/dist/esm/components/MainWrapV4/assets/icon/user-segment/outline-pined.svg +3 -0
  281. package/dist/esm/components/MainWrapV4/assets/icon/user-segment/outline-sidebar.svg +3 -0
  282. package/dist/esm/components/MainWrapV4/assets/icon/user-segment/outline.svg +3 -0
  283. package/dist/esm/components/MainWrapV4/assets/icon/user-segment/solid.svg +3 -0
  284. package/dist/esm/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/outline-pined.svg +3 -0
  285. package/dist/esm/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/outline-sidebar.svg +3 -0
  286. package/dist/esm/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/outline.svg +3 -0
  287. package/dist/esm/components/MainWrapV4/assets/icon/van-hanh-xe-tuyen/solid.svg +3 -0
  288. package/dist/esm/components/MainWrapV4/assets/icon/xe-tuyen/outline-pined.svg +3 -0
  289. package/dist/esm/components/MainWrapV4/assets/icon/xe-tuyen/outline-sidebar.svg +3 -0
  290. package/dist/esm/components/MainWrapV4/assets/icon/xe-tuyen/outline.svg +3 -0
  291. package/dist/esm/components/MainWrapV4/assets/icon/xe-tuyen/solid.svg +3 -0
  292. package/dist/esm/components/MainWrapV4/components/nav-item.d.ts +11 -0
  293. package/dist/esm/components/MainWrapV4/components/nav-item.js +26 -0
  294. package/dist/esm/components/MainWrapV4/components/nav-item.js.map +1 -0
  295. package/dist/esm/components/MainWrapV4/components/other-menu.d.ts +8 -0
  296. package/dist/esm/components/MainWrapV4/components/other-menu.js +141 -0
  297. package/dist/esm/components/MainWrapV4/components/other-menu.js.map +1 -0
  298. package/dist/esm/components/MainWrapV4/components/side-bar.d.ts +13 -0
  299. package/dist/esm/components/MainWrapV4/components/side-bar.js +120 -0
  300. package/dist/esm/components/MainWrapV4/components/side-bar.js.map +1 -0
  301. package/dist/esm/components/MainWrapV4/constant.d.ts +5 -0
  302. package/dist/esm/components/MainWrapV4/constant.js +7 -0
  303. package/dist/esm/components/MainWrapV4/constant.js.map +1 -0
  304. package/dist/esm/components/MainWrapV4/index.d.ts +1 -0
  305. package/dist/esm/components/MainWrapV4/index.js +2 -0
  306. package/dist/esm/components/MainWrapV4/index.js.map +1 -0
  307. package/dist/esm/components/MainWrapV4/navigator/nav-mobile-content.d.ts +2 -0
  308. package/dist/esm/components/MainWrapV4/navigator/nav-mobile-content.js +115 -0
  309. package/dist/esm/components/MainWrapV4/navigator/nav-mobile-content.js.map +1 -0
  310. package/dist/esm/components/MainWrapV4/navigator/nav-mobile.d.ts +2 -0
  311. package/dist/esm/components/MainWrapV4/navigator/nav-mobile.js +24 -0
  312. package/dist/esm/components/MainWrapV4/navigator/nav-mobile.js.map +1 -0
  313. package/dist/esm/components/MainWrapV4/svg.d.ts +5 -0
  314. package/dist/esm/components/MainWrapV4/svg.js +2 -0
  315. package/dist/esm/components/MainWrapV4/svg.js.map +1 -0
  316. package/dist/esm/components/MainWrapV4/types/appearance.d.ts +19 -0
  317. package/dist/esm/components/MainWrapV4/types/appearance.js +2 -0
  318. package/dist/esm/components/MainWrapV4/types/appearance.js.map +1 -0
  319. package/dist/esm/components/MainWrapV4/types/index.d.ts +9 -0
  320. package/dist/esm/components/MainWrapV4/types/index.js +2 -0
  321. package/dist/esm/components/MainWrapV4/types/index.js.map +1 -0
  322. package/dist/esm/index.d.ts +2 -1
  323. package/dist/esm/index.js +2 -1
  324. package/dist/esm/index.js.map +1 -1
  325. package/package.json +2 -2
@@ -0,0 +1,875 @@
1
+ import { __assign, __awaiter, __generator, __spreadArray } from "tslib";
2
+ import { library } from '@fortawesome/fontawesome-svg-core';
3
+ import { fas } from '@fortawesome/free-solid-svg-icons';
4
+ import { Menu, Transition } from '@headlessui/react';
5
+ import { ArrowLeftIcon } from '@heroicons/react/20/solid';
6
+ import { Bars3Icon, LockClosedIcon } from '@heroicons/react/24/outline';
7
+ import { CheckIcon } from '@heroicons/react/24/solid';
8
+ import axios from 'axios';
9
+ import Cookies from 'js-cookie';
10
+ import Image from 'next/image';
11
+ import React, { Fragment, useEffect, useRef, useState } from 'react';
12
+ import PHXClientQueryV3 from '../Func/clientQueryV3';
13
+ import PHXFuncGetCookieSession from '../Func/getCookieSession';
14
+ import PHXGetEnvPublicV3 from '../Func/getEnvPublic';
15
+ import { clearSession } from '../Func/sessionStore';
16
+ import { DEFAULT_AVATAR, MENU_ACTIVITY_HISTORY_CHILD, PATH_ACTIVITY_HISTORY, switchSchool } from '../../utils/constants';
17
+ import StyledCustomLayoutProps from './appearance/appearance-styled';
18
+ import { IconV2 } from './assets/Icon';
19
+ import SideBarDesktop from './components/side-bar';
20
+ import NavMobile from './navigator/nav-mobile';
21
+ import { useLoading } from '../LoadingProvider';
22
+ import { GET_PERMISSION_DETAIL_USER_V3, GET_SCHOOL_V3, getCampaignNameV3, QUERY_GET_PROFILE_USER } from '../../query';
23
+ import saveCookiesClient from '../Func/saveCookiesClient';
24
+ import { PageTracker } from '../../stores/page-tracker/page-tracker';
25
+ import { decryptCookie } from '../../helpers/helpers';
26
+ import { PHXSkeleton } from '../Skeleton';
27
+ import { PHXModal } from '../Modal';
28
+ import PHXTooltip from '../ToolTip/ToolTip';
29
+ import { PHXBanner } from '../Banner';
30
+ import { classNames } from '../types';
31
+ import { PHXCard } from '../Card';
32
+ library.add(fas);
33
+ export var PHXMainWrapV4 = function (_a) {
34
+ var _b, _c, _d;
35
+ var children = _a.children, getDataCookies = _a.getDataCookies, _e = _a.logoHeight, logoHeight = _e === void 0 ? '28px' : _e, _f = _a.multipleMenu, multipleMenu = _f === void 0 ? false : _f, params = _a.params, pathName = _a.pathName, router = _a.router;
36
+ var pid = (params ? params : {}).pid;
37
+ var _g = useState(false), modal = _g[0], setModal = _g[1];
38
+ var _h = useState(true), setOpenSubMenu = _h[1];
39
+ var _j = useState(''), campaignName = _j[0], setCampaignName = _j[1];
40
+ var _k = useState(false), sidebarOpen = _k[0], setSidebarOpen = _k[1];
41
+ var _l = useState([]), subNavigation = _l[0], setSubNavigation = _l[1];
42
+ var _m = useState([]), navigation = _m[0], setNavigation = _m[1];
43
+ var _o = useState(false), modalSignOut = _o[0], setModalSignOut = _o[1];
44
+ var _p = useState(true), showBanner = _p[0], setShowBanner = _p[1];
45
+ var _q = useState(true), isLoading = _q[0], setIsLoading = _q[1];
46
+ var sessionCookie = useRef(PHXFuncGetCookieSession());
47
+ var userSessionInfo = (_b = sessionCookie.current) === null || _b === void 0 ? void 0 : _b.user_info;
48
+ var schoolInfoId = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.school_id;
49
+ var userId = userSessionInfo === null || userSessionInfo === void 0 ? void 0 : userSessionInfo.id;
50
+ var setGlobalLoading = useLoading().setLoading;
51
+ var _r = useState(true), showSubMenu = _r[0], setShowSubMenu = _r[1];
52
+ var _s = useState({
53
+ menuDefault: [],
54
+ loadingMenu: true,
55
+ loadingSchool: true,
56
+ listSchool: [],
57
+ logo: {
58
+ path: '',
59
+ height: logoHeight,
60
+ },
61
+ menu: [],
62
+ schoolId: null,
63
+ configLayout: undefined,
64
+ perCode: [],
65
+ roleCode: [],
66
+ isLoadingPermission: true,
67
+ 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) || DEFAULT_AVATAR,
68
+ }), dataInitMain = _s[0], setDataInitMain = _s[1];
69
+ var locationPathname = typeof window !== 'undefined' ? window.location.pathname : '';
70
+ var locationArr = locationPathname.split('/').filter(Boolean);
71
+ var basePath = locationArr.slice(0, locationArr.length - pathName.split('/').filter(Boolean).length).join('/');
72
+ var pathNameWithBasePath = "".concat(basePath ? "".concat('/' + basePath) : '').concat(pathName);
73
+ function enablePer(code, arr) {
74
+ if (!code)
75
+ return true;
76
+ return arr === null || arr === void 0 ? void 0 : arr.some(function (item) { return item === code; });
77
+ }
78
+ // Lấy code phân quyền trong menu từ path hiện tại
79
+ function getCodesByPath(dataMenu, currentPath) {
80
+ var lastMatchingCode = null;
81
+ var normalizedPath = currentPath.replace(/\/$/, '');
82
+ function traverse(items, prefix) {
83
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
84
+ var item = items_1[_i];
85
+ var fullPath = item.path.startsWith('/') ? prefix + item.path : item.path;
86
+ var normalizedFullPath = fullPath.replace(/\/$/, '');
87
+ if (normalizedPath === normalizedFullPath || normalizedPath.startsWith(normalizedFullPath + '/')) {
88
+ lastMatchingCode = item.code;
89
+ }
90
+ if (item.child) {
91
+ traverse(item.child, prefix);
92
+ }
93
+ }
94
+ }
95
+ for (var _i = 0, dataMenu_1 = dataMenu; _i < dataMenu_1.length; _i++) {
96
+ var rootItem = dataMenu_1[_i];
97
+ var rootPath = rootItem.path;
98
+ var prefix = rootPath.split('/').slice(0, 2).join('/');
99
+ traverse([rootItem], prefix);
100
+ }
101
+ return lastMatchingCode ? lastMatchingCode : null;
102
+ }
103
+ // code phân quyền path hiện tại
104
+ var currentCode = getCodesByPath(dataInitMain.menuDefault, locationPathname);
105
+ var currentMenuByPath = navigation === null || navigation === void 0 ? void 0 : navigation.find(function (nav) { var _a; return (_a = nav === null || nav === void 0 ? void 0 : nav.child) === null || _a === void 0 ? void 0 : _a.some(function (c) { var _a; return (c === null || c === void 0 ? void 0 : c.code) === currentCode || ((_a = c === null || c === void 0 ? void 0 : c.child) === null || _a === void 0 ? void 0 : _a.some(function (x) { return (x === null || x === void 0 ? void 0 : x.code) === currentCode; })); }); });
106
+ var requireLoginValidation = function () {
107
+ clearSession();
108
+ var currentURL = window.location.href;
109
+ var url = currentURL.split('/');
110
+ var loginPush = "".concat(url[0], "//").concat(url[2], "/login-sso");
111
+ window.location.replace(loginPush);
112
+ };
113
+ var checkIsQuitJob = function (_a) {
114
+ var profileStaff = _a.profileStaff, profileTeacher = _a.profileTeacher;
115
+ try {
116
+ // xóa cookies với những tài khoản giáo viên, nhân viên đã nghỉ việc
117
+ var staffIsQuitJob = profileStaff === null || profileStaff === void 0 ? void 0 : profileStaff.is_quit_job;
118
+ var teacherIsQuitJob = profileTeacher === null || profileTeacher === void 0 ? void 0 : profileTeacher.is_quit_job;
119
+ if (staffIsQuitJob || teacherIsQuitJob) {
120
+ console.log('Phiên đăng nhập đã hết hạn');
121
+ Object.keys(Cookies.get()).forEach(function (cookieName) {
122
+ Cookies.remove(cookieName);
123
+ });
124
+ requireLoginValidation();
125
+ }
126
+ }
127
+ catch (error) {
128
+ console.log(error);
129
+ }
130
+ };
131
+ var fetchDataPer = function () { return __awaiter(void 0, void 0, void 0, function () {
132
+ var res, userPermissions, rolePermissions, allPermissions, permissionCodes, routePermissions, actionPermissions, actionPermissionMap, uniqueRoutePermissions, error_1;
133
+ var _a, _b, _c, _d;
134
+ return __generator(this, function (_e) {
135
+ switch (_e.label) {
136
+ case 0:
137
+ _e.trys.push([0, 2, , 3]);
138
+ return [4 /*yield*/, PHXClientQueryV3({
139
+ query: GET_PERMISSION_DETAIL_USER_V3,
140
+ variables: { id: userId, school_id: schoolInfoId },
141
+ })];
142
+ case 1:
143
+ res = _e.sent();
144
+ userPermissions = (_b = (_a = res.data) === null || _a === void 0 ? void 0 : _a.permission_user) !== null && _b !== void 0 ? _b : [];
145
+ rolePermissions = (_d = (_c = res.data) === null || _c === void 0 ? void 0 : _c.permission_role) !== null && _d !== void 0 ? _d : [];
146
+ allPermissions = __spreadArray(__spreadArray([], userPermissions, true), rolePermissions, true);
147
+ permissionCodes = allPermissions.map(function (p) { return p.permission; });
148
+ routePermissions = permissionCodes.filter(function (p) { return !p.is_action; }).map(function (p) { return p.code; });
149
+ actionPermissions = permissionCodes.filter(function (p) { return p.is_action; }).map(function (p) { return p.code; });
150
+ actionPermissionMap = Object.fromEntries(actionPermissions.map(function (code) { return [code, true]; }));
151
+ uniqueRoutePermissions = Array.from(new Set(routePermissions));
152
+ return [2 /*return*/, { uniqueRoutePermissions: uniqueRoutePermissions, actionPermissionMap: actionPermissionMap }];
153
+ case 2:
154
+ error_1 = _e.sent();
155
+ console.error('Error fetching school data:', error_1);
156
+ return [2 /*return*/, { uniqueRoutePermissions: null, actionPermissionMap: null }];
157
+ case 3: return [2 /*return*/];
158
+ }
159
+ });
160
+ }); };
161
+ var getProfileByUser = function () { return __awaiter(void 0, void 0, void 0, function () {
162
+ var response, profileUser, avatar, email, full_name, profile_staff, profile_teacher, user_avatar, user_roles, error_2;
163
+ return __generator(this, function (_a) {
164
+ switch (_a.label) {
165
+ case 0:
166
+ _a.trys.push([0, 2, , 3]);
167
+ return [4 /*yield*/, PHXClientQueryV3({
168
+ query: QUERY_GET_PROFILE_USER,
169
+ variables: {
170
+ user_id: userId,
171
+ },
172
+ })];
173
+ case 1:
174
+ response = _a.sent();
175
+ profileUser = response.data.users_by_pk;
176
+ 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;
177
+ // check user is quit job
178
+ checkIsQuitJob({
179
+ profileStaff: profile_staff,
180
+ profileTeacher: profile_teacher,
181
+ });
182
+ // renew list role in cookie
183
+ return [2 /*return*/, {
184
+ avatar: avatar,
185
+ user_avatar: user_avatar,
186
+ full_name: full_name,
187
+ email: email,
188
+ user_code: (profile_staff === null || profile_staff === void 0 ? void 0 : profile_staff.user_code) || (profile_teacher === null || profile_teacher === void 0 ? void 0 : profile_teacher.user_code) || '',
189
+ user_roles: user_roles,
190
+ }];
191
+ case 2:
192
+ error_2 = _a.sent();
193
+ console.log(error_2);
194
+ return [2 /*return*/];
195
+ case 3: return [2 /*return*/];
196
+ }
197
+ });
198
+ }); };
199
+ var fetchDataSchool = function () { return __awaiter(void 0, void 0, void 0, function () {
200
+ var id, _a, group_id, school_name_id, school_id, settingSiteDb, res, dataSchool, settingFetchData, cleanedJsonString, error_3;
201
+ var _b, _c, _d, _e;
202
+ return __generator(this, function (_f) {
203
+ switch (_f.label) {
204
+ case 0:
205
+ if (!userSessionInfo)
206
+ return [2 /*return*/];
207
+ 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;
208
+ setIsLoading(true);
209
+ settingSiteDb = undefined;
210
+ _f.label = 1;
211
+ case 1:
212
+ _f.trys.push([1, 3, , 4]);
213
+ return [4 /*yield*/, PHXClientQueryV3({
214
+ query: GET_SCHOOL_V3,
215
+ variables: { group_id: group_id, school_name_id: school_name_id, user_id: id },
216
+ isDelay: false,
217
+ })];
218
+ case 2:
219
+ res = _f.sent();
220
+ 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;
221
+ 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;
222
+ if (settingFetchData) {
223
+ cleanedJsonString = settingFetchData.replace(/^"(.*)"$/, '$1');
224
+ settingSiteDb = JSON.parse(cleanedJsonString);
225
+ }
226
+ setIsLoading(false);
227
+ return [2 /*return*/, {
228
+ settingSiteDb: settingSiteDb,
229
+ loadingSchool: dataSchool.length === 0,
230
+ listSchool: dataSchool,
231
+ schoolId: school_id,
232
+ }];
233
+ case 3:
234
+ error_3 = _f.sent();
235
+ setIsLoading(false);
236
+ console.error('Error fetching school data:', error_3);
237
+ return [2 /*return*/];
238
+ case 4: return [2 /*return*/];
239
+ }
240
+ });
241
+ }); };
242
+ var fetchDataMenu = function () { return __awaiter(void 0, void 0, void 0, function () {
243
+ var envPublic, menuUrl, logoMenuTop, data, menuJson;
244
+ return __generator(this, function (_a) {
245
+ switch (_a.label) {
246
+ case 0: return [4 /*yield*/, PHXGetEnvPublicV3()];
247
+ case 1:
248
+ envPublic = _a.sent();
249
+ menuUrl = envPublic === null || envPublic === void 0 ? void 0 : envPublic.SCHOOL_MENU_V2;
250
+ logoMenuTop = envPublic === null || envPublic === void 0 ? void 0 : envPublic.SCHOOL_TOP_MENU_LOGO;
251
+ if (!menuUrl || !logoMenuTop) {
252
+ console.error('menu or logo not found');
253
+ }
254
+ return [4 /*yield*/, fetch(menuUrl)];
255
+ case 2:
256
+ data = _a.sent();
257
+ return [4 /*yield*/, data.json()];
258
+ case 3:
259
+ menuJson = _a.sent();
260
+ return [2 /*return*/, {
261
+ loadingMenu: false,
262
+ logo: { path: logoMenuTop, height: logoHeight },
263
+ menu: menuJson,
264
+ }];
265
+ }
266
+ });
267
+ }); };
268
+ var detectEnvByDomain = function (domain, configEnv) {
269
+ for (var _i = 0, _a = Object.entries(configEnv); _i < _a.length; _i++) {
270
+ var _b = _a[_i], env = _b[0], pattern = _b[1];
271
+ if (env.startsWith('_comment'))
272
+ continue; // bỏ qua comment
273
+ var regex = new RegExp(pattern.replace(/\\\\/g, '\\'));
274
+ if (regex.test(domain))
275
+ return env;
276
+ }
277
+ return 'stg';
278
+ };
279
+ var getEnvByConfig = function (configEnv) {
280
+ var domain = window.location.hostname;
281
+ var env = detectEnvByDomain(domain, configEnv);
282
+ return "config_menu_".concat(env, ":disable");
283
+ };
284
+ var isConfigEnvValid = function (code, configDisable) {
285
+ return configDisable.length === 0 || !(configDisable === null || configDisable === void 0 ? void 0 : configDisable.includes(code));
286
+ };
287
+ var funcMenuByConfigEnv = function (menuJson, configDisable) {
288
+ var menuWithConfigEnv = [];
289
+ for (var _i = 0, menuJson_1 = menuJson; _i < menuJson_1.length; _i++) {
290
+ var item = menuJson_1[_i];
291
+ if (!isConfigEnvValid(item === null || item === void 0 ? void 0 : item.code, configDisable))
292
+ continue;
293
+ var menuItem = __assign(__assign({}, item), { child: [] });
294
+ var menuSecondLevel = (item === null || item === void 0 ? void 0 : item.child) || [];
295
+ for (var _a = 0, _b = menuSecondLevel || []; _a < _b.length; _a++) {
296
+ var childItem = _b[_a];
297
+ if (!isConfigEnvValid(childItem === null || childItem === void 0 ? void 0 : childItem.code, configDisable))
298
+ continue;
299
+ var childMenuItem = __assign(__assign({}, childItem), { child: [] });
300
+ var menuThirdLevel = (childItem === null || childItem === void 0 ? void 0 : childItem.child) || [];
301
+ for (var _c = 0, menuThirdLevel_1 = menuThirdLevel; _c < menuThirdLevel_1.length; _c++) {
302
+ var subChildItem = menuThirdLevel_1[_c];
303
+ if (!isConfigEnvValid(subChildItem === null || subChildItem === void 0 ? void 0 : subChildItem.code, configDisable))
304
+ continue;
305
+ childMenuItem.child.push(subChildItem);
306
+ }
307
+ menuItem.child.push(childMenuItem);
308
+ }
309
+ menuWithConfigEnv.push(menuItem);
310
+ }
311
+ return menuWithConfigEnv;
312
+ };
313
+ var fetchInitData = function () { return __awaiter(void 0, void 0, void 0, function () {
314
+ var _a, loadingMenu, logo, menu, profileNew, dataPer, dataSchool, actionPermissionMap, uniqueRoutePermissions, config_env, enviromentByDomainConfig, menuJson, configDisable, currentSession;
315
+ var _b;
316
+ return __generator(this, function (_c) {
317
+ switch (_c.label) {
318
+ case 0: return [4 /*yield*/, fetchDataMenu()];
319
+ case 1:
320
+ _a = _c.sent(), loadingMenu = _a.loadingMenu, logo = _a.logo, menu = _a.menu;
321
+ return [4 /*yield*/, getProfileByUser()];
322
+ case 2:
323
+ profileNew = _c.sent();
324
+ return [4 /*yield*/, fetchDataPer()];
325
+ case 3:
326
+ dataPer = _c.sent();
327
+ return [4 /*yield*/, fetchDataSchool()];
328
+ case 4:
329
+ dataSchool = _c.sent();
330
+ actionPermissionMap = dataPer.actionPermissionMap, uniqueRoutePermissions = dataPer.uniqueRoutePermissions;
331
+ config_env = menu.config_env;
332
+ enviromentByDomainConfig = getEnvByConfig(config_env);
333
+ menuJson = menu.menu;
334
+ configDisable = menu[enviromentByDomainConfig];
335
+ setDataInitMain({
336
+ menuDefault: menuJson,
337
+ logo: logo,
338
+ menu: funcMenuByConfigEnv(menuJson, configDisable),
339
+ loadingMenu: loadingMenu,
340
+ schoolId: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.schoolId) || null,
341
+ loadingSchool: !!(dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.loadingSchool),
342
+ listSchool: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.listSchool) || [],
343
+ isLoadingPermission: false,
344
+ perCode: uniqueRoutePermissions,
345
+ 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; })) || [],
346
+ configLayout: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.settingSiteDb) || undefined,
347
+ 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) || DEFAULT_AVATAR,
348
+ });
349
+ currentSession = PHXFuncGetCookieSession();
350
+ saveCookiesClient({
351
+ value: __assign(__assign(__assign(__assign({}, currentSession), (actionPermissionMap && {
352
+ action_permission: actionPermissionMap || [],
353
+ })), { setting_site: (dataSchool === null || dataSchool === void 0 ? void 0 : dataSchool.settingSiteDb) || {} }), (profileNew && {
354
+ user_info: __assign(__assign({}, userSessionInfo), profileNew),
355
+ })),
356
+ });
357
+ return [2 /*return*/];
358
+ }
359
+ });
360
+ }); };
361
+ useEffect(function () {
362
+ if (!userSessionInfo) {
363
+ // Require login if production mode
364
+ requireLoginValidation();
365
+ return;
366
+ }
367
+ fetchInitData();
368
+ }, []);
369
+ var isEqualUrl = function (parentHref, pathNameCompare) {
370
+ if (!parentHref || !pathNameCompare) {
371
+ return false;
372
+ }
373
+ var pathNameSplit = pathNameCompare.split('/');
374
+ var hrefSplit = parentHref.split('/');
375
+ if (!pathNameSplit || !hrefSplit) {
376
+ return false;
377
+ }
378
+ var urlRouter;
379
+ var currentMenu;
380
+ if (multipleMenu) {
381
+ urlRouter = pathNameSplit[1] + pathNameSplit[2];
382
+ currentMenu = hrefSplit[1] + hrefSplit[2];
383
+ }
384
+ else {
385
+ urlRouter = pathNameSplit[1];
386
+ currentMenu = hrefSplit[1];
387
+ }
388
+ return urlRouter === currentMenu;
389
+ };
390
+ var isBelongParentWithMicroservice = function (parentSplit, pathNameSplit) {
391
+ if (parentSplit.length > 2) {
392
+ var compareLength = parentSplit.length;
393
+ for (var i = 1; i < compareLength; i++) {
394
+ if (parentSplit[i] !== pathNameSplit[i])
395
+ return false;
396
+ }
397
+ return true;
398
+ }
399
+ else {
400
+ return parentSplit[1] === pathNameSplit[3];
401
+ }
402
+ };
403
+ var isBelongParent = function (parentUrl, pathNameCompare, isMicroservice) {
404
+ var parentSplit = parentUrl.split('/');
405
+ var pathNameSplit = pathNameCompare.split('/');
406
+ if (isMicroservice) {
407
+ return isBelongParentWithMicroservice(parentSplit, pathNameSplit);
408
+ }
409
+ if (parentSplit.length > 2 && !parentSplit.includes('list')) {
410
+ return parentSplit[1] === pathNameSplit[2] && parentSplit[2] === pathNameSplit[3];
411
+ }
412
+ else {
413
+ return parentSplit[1] === pathNameSplit[2];
414
+ }
415
+ };
416
+ var checkAdmissions = function (path) {
417
+ var pathNameSplit = path.split('/');
418
+ return pathNameSplit[1] === 'admissions';
419
+ };
420
+ var loadParentNavigation = function (path) {
421
+ var mainNavigation = dataInitMain.menu;
422
+ var naviSize = mainNavigation.length;
423
+ for (var i = 0; i < naviSize; i++) {
424
+ var item = mainNavigation[i];
425
+ item.current = false;
426
+ if (item.path === path || isEqualUrl(item.path, path)) {
427
+ item.current = true;
428
+ // Find sub modules
429
+ var itemLength = item.child.length;
430
+ var listChildren = [];
431
+ for (var j = 0; j < itemLength; j++) {
432
+ var childItem = item.child[j];
433
+ // Active child item
434
+ childItem.current = isBelongParent(childItem.path, path, !!(childItem === null || childItem === void 0 ? void 0 : childItem.isMicroservice));
435
+ if (childItem.child) {
436
+ var childItemLength = childItem.child.length;
437
+ var count = 0;
438
+ for (var k = 0; k < childItemLength; k++) {
439
+ var subChild = childItem.child[k];
440
+ subChild.current = isBelongParent(subChild.path, path, !!(childItem === null || childItem === void 0 ? void 0 : childItem.isMicroservice));
441
+ if (isBelongParent(subChild.path, path, !!(childItem === null || childItem === void 0 ? void 0 : childItem.isMicroservice)) ||
442
+ isBelongParent(childItem.path, path, !!(childItem === null || childItem === void 0 ? void 0 : childItem.isMicroservice))) {
443
+ count++;
444
+ }
445
+ var isSameSubChildPath = (subChild === null || subChild === void 0 ? void 0 : subChild.isMicroservice)
446
+ ? subChild.path === (childItem === null || childItem === void 0 ? void 0 : childItem.path)
447
+ : subChild.path === (childItem === null || childItem === void 0 ? void 0 : childItem.pathInternal);
448
+ var isPathInternal = (childItem === null || childItem === void 0 ? void 0 : childItem.isMicroservice) ? isSameSubChildPath : subChild.path === childItem.path;
449
+ childItem.showChild = count > 0;
450
+ if (isPathInternal)
451
+ childItem.current = false;
452
+ }
453
+ }
454
+ listChildren.push(childItem);
455
+ }
456
+ setSubNavigation(listChildren);
457
+ }
458
+ }
459
+ setNavigation(mainNavigation);
460
+ };
461
+ var loadChildrenCampaign = function (path) {
462
+ var mainNavigation = dataInitMain.menu;
463
+ var naviSize = mainNavigation.length;
464
+ for (var i = 0; i < naviSize; i++) {
465
+ var item = mainNavigation[i];
466
+ item.current = false;
467
+ if (item.path === path || isEqualUrl(item.path, path)) {
468
+ item.current = true;
469
+ // Find sub modules
470
+ // const itemLength = item.child.length;
471
+ var campaign = item.child.filter(function (child) { return child.path === '/campaign/list'; });
472
+ var listCampaign = campaign[0];
473
+ var itemLength = listCampaign === null || listCampaign === void 0 ? void 0 : listCampaign.childrenByParentDetail.length;
474
+ var listChildren = [];
475
+ for (var j = 0; j < itemLength; j++) {
476
+ var childItem = listCampaign === null || listCampaign === void 0 ? void 0 : listCampaign.childrenByParentDetail[j];
477
+ // Active child item
478
+ childItem.current = isBelongParent(childItem.path, path, false);
479
+ if (childItem.child) {
480
+ var childItemLength = childItem.child.length;
481
+ for (var k = 0; k < childItemLength; k++) {
482
+ var subChild = childItem.child[k];
483
+ subChild.current = isBelongParent(subChild.path, path, false);
484
+ if (isBelongParent(subChild.path, path, false) || isBelongParent(childItem.path, path, false)) {
485
+ childItem.showChild = true;
486
+ }
487
+ childItem.current = subChild.path !== childItem.path;
488
+ }
489
+ }
490
+ listChildren.push(childItem);
491
+ }
492
+ setSubNavigation(listChildren);
493
+ }
494
+ }
495
+ setNavigation(mainNavigation);
496
+ };
497
+ var checkChildrenCampaign = function (path) {
498
+ var _a;
499
+ var campaignMenu = (_a = dataInitMain.menu) === null || _a === void 0 ? void 0 : _a.find(function (item) { return item.path === '/admissions/campaign/list'; });
500
+ var campaignChild = campaignMenu === null || campaignMenu === void 0 ? void 0 : campaignMenu.child;
501
+ var listChild = campaignChild === null || campaignChild === void 0 ? void 0 : campaignChild.find(function (item) { return item.path === '/campaign/list'; });
502
+ var isChild = listChild === null || listChild === void 0 ? void 0 : listChild.childrenByParentDetail.find(function (item) { return isBelongParent(item.path, path, false); });
503
+ return isChild !== undefined;
504
+ };
505
+ useEffect(function () {
506
+ var isAdmissions = checkAdmissions(pathNameWithBasePath);
507
+ if (isAdmissions && checkChildrenCampaign(pathNameWithBasePath)) {
508
+ if (pathNameWithBasePath.includes('/admissions/overview/list/') && pid) {
509
+ PHXClientQueryV3({
510
+ query: getCampaignNameV3,
511
+ variables: { id: pid },
512
+ isDelay: false,
513
+ }).then(function (res) {
514
+ var data = res.data.admissions_campaigns_by_pk;
515
+ setCampaignName(data.campaign_name);
516
+ Cookies.set('campaign_name', JSON.stringify(data.campaign_name));
517
+ });
518
+ loadChildrenCampaign(pathNameWithBasePath);
519
+ }
520
+ else if (pathNameWithBasePath === '/admissions/campaign/list') {
521
+ loadParentNavigation(pathNameWithBasePath);
522
+ }
523
+ else {
524
+ loadChildrenCampaign(pathNameWithBasePath);
525
+ }
526
+ }
527
+ else {
528
+ loadParentNavigation(pathNameWithBasePath);
529
+ }
530
+ // eslint-disable-next-line react-hooks/exhaustive-deps
531
+ }, [dataInitMain, pid, pathNameWithBasePath]);
532
+ useEffect(function () {
533
+ var isAdmissions = checkAdmissions(pathNameWithBasePath);
534
+ if (isAdmissions) {
535
+ if (pathNameWithBasePath === '/admissions/campaign/list' || !checkChildrenCampaign(pathNameWithBasePath)) {
536
+ setOpenSubMenu(true);
537
+ }
538
+ else {
539
+ setOpenSubMenu(true);
540
+ var campaign_name = Cookies.get('campaign_name');
541
+ setCampaignName(campaign_name ? JSON.parse(campaign_name) : campaignName);
542
+ loadChildrenCampaign(pathNameWithBasePath);
543
+ }
544
+ }
545
+ else {
546
+ setOpenSubMenu(true);
547
+ }
548
+ }, [pathNameWithBasePath, dataInitMain]);
549
+ var loadSubNavigation = function (path, isChild, childPath) {
550
+ var subLength = subNavigation.length;
551
+ var newSub = [];
552
+ for (var i = 0; i < subLength; i++) {
553
+ var item = subNavigation[i];
554
+ item.current = item.path === path && !isChild;
555
+ if (item.child) {
556
+ item.showChild = item.path === path;
557
+ for (var j = 0; j < item.child.length; j++) {
558
+ var child = item.child[j];
559
+ child.current = child.path === childPath;
560
+ if (child.path === item.path) {
561
+ item.current = false;
562
+ child.current = childPath ? child.path === childPath : child.path === path;
563
+ }
564
+ }
565
+ }
566
+ newSub.push(item);
567
+ }
568
+ setSubNavigation(newSub);
569
+ };
570
+ var subNavigationTriggerClicked = function (item, parent) {
571
+ if (parent) {
572
+ loadSubNavigation(parent.path, true, item.path);
573
+ }
574
+ else {
575
+ loadSubNavigation(item.path, false);
576
+ }
577
+ var queryString = window.location.search;
578
+ var urlParams = new URLSearchParams(queryString);
579
+ var campaign = Number(urlParams.get('campaignId'));
580
+ setGlobalLoading(true);
581
+ // handle for admissions
582
+ if (campaign) {
583
+ router.push("".concat(item.path, "?campaignId=").concat(campaign));
584
+ }
585
+ else {
586
+ router.push(item.path);
587
+ }
588
+ };
589
+ var topMenuLogoFromEnv = dataInitMain.logo.path;
590
+ var handleModalSignOut = function () { return setModalSignOut(true); };
591
+ var handleRedirectRouter = function (path) {
592
+ var currentURL = window.location.href;
593
+ var url = currentURL.split('/');
594
+ var pushPath = "".concat(url[0], "//").concat(url[2], "/").concat(path);
595
+ window.location.replace(pushPath);
596
+ };
597
+ var callApiLogoutToken = function () { return __awaiter(void 0, void 0, void 0, function () {
598
+ var error_4;
599
+ return __generator(this, function (_a) {
600
+ switch (_a.label) {
601
+ case 0:
602
+ _a.trys.push([0, 2, , 3]);
603
+ return [4 /*yield*/, axios.post("/api/authenticate/logout", {}, {
604
+ withCredentials: true,
605
+ })];
606
+ case 1: return [2 /*return*/, _a.sent()];
607
+ case 2:
608
+ error_4 = _a.sent();
609
+ console.error(error_4);
610
+ return [2 /*return*/];
611
+ case 3: return [2 /*return*/];
612
+ }
613
+ });
614
+ }); };
615
+ var handleSignOut = function () { return __awaiter(void 0, void 0, void 0, function () {
616
+ return __generator(this, function (_a) {
617
+ switch (_a.label) {
618
+ case 0:
619
+ setModalSignOut(false);
620
+ Object.keys(Cookies.get()).forEach(function (cookieName) {
621
+ Cookies.remove(cookieName);
622
+ });
623
+ return [4 /*yield*/, callApiLogoutToken()];
624
+ case 1:
625
+ _a.sent();
626
+ console.log('Đăng xuất tài khoản');
627
+ handleRedirectRouter('login-sso');
628
+ return [2 /*return*/];
629
+ }
630
+ });
631
+ }); };
632
+ var handleProfilePage = function () {
633
+ handleRedirectRouter('profile');
634
+ };
635
+ var handleBackMenu = function () {
636
+ router.push('/campaign/list');
637
+ loadParentNavigation('/admissions/campaign/list');
638
+ };
639
+ var checkChildBefore = function (item, currentItem) {
640
+ var currentIndexActive = item.find(function (s) { return s.current; });
641
+ return currentIndexActive ? currentIndexActive.id > currentItem.id : false;
642
+ };
643
+ var _t = useState(null), selected = _t[0], setSelected = _t[1];
644
+ var handleOpenModal = function (id) {
645
+ setModal(id !== dataInitMain.schoolId);
646
+ setSelected(id);
647
+ };
648
+ var handlePrimaryModal = function () {
649
+ var currentSession = PHXFuncGetCookieSession();
650
+ var userInfo = currentSession === null || currentSession === void 0 ? void 0 : currentSession.user_info;
651
+ if (userInfo) {
652
+ try {
653
+ var newSchoolId = selected;
654
+ var schoolIdCurrent = userInfo.school_id;
655
+ if (newSchoolId && newSchoolId !== schoolIdCurrent) {
656
+ var userInfoNew = __assign(__assign({}, userInfo), { school_id: newSchoolId });
657
+ saveCookiesClient({
658
+ value: __assign(__assign({}, currentSession), { user_info: userInfoNew }),
659
+ });
660
+ window.location.reload();
661
+ }
662
+ }
663
+ catch (error) {
664
+ console.error(error);
665
+ }
666
+ }
667
+ setModal(false);
668
+ };
669
+ // settings page
670
+ var isSettings = function () {
671
+ var pathNameSplit = pathNameWithBasePath.split('/');
672
+ return pathNameSplit[1] === 'setting';
673
+ };
674
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
675
+ // const checkLogoHeader = dataInitMain.configLayout?.logo_dashboard || topMenuLogoFromEnv || DEFAULT_LOGO_DASHBOARD
676
+ var isActivityHistory = function () {
677
+ var pathNameSplit = pathNameWithBasePath.split('/');
678
+ return pathNameSplit[1] === PATH_ACTIVITY_HISTORY;
679
+ };
680
+ var _u = useState(MENU_ACTIVITY_HISTORY_CHILD), activityHistoryChild = _u[0], setActivityHistoryChild = _u[1];
681
+ var handleClickActivityHistoryChild = function (clickedItem) {
682
+ var updated = activityHistoryChild.map(function (item) { return (__assign(__assign({}, item), { current: item.code === clickedItem.code })); });
683
+ setActivityHistoryChild(updated);
684
+ };
685
+ useEffect(function () {
686
+ if (basePath === PATH_ACTIVITY_HISTORY) {
687
+ setActivityHistoryChild(function (prev) {
688
+ return prev.map(function (item) { return (__assign(__assign({}, item), { current: pathNameWithBasePath.endsWith(item.path) })); });
689
+ });
690
+ }
691
+ else {
692
+ setActivityHistoryChild([]);
693
+ }
694
+ }, [pathNameWithBasePath, basePath]);
695
+ return (React.createElement(React.Fragment, null,
696
+ React.createElement(PageTracker, null),
697
+ React.createElement("div", { className: 'flex min-h-full flex-col' },
698
+ React.createElement(StyledCustomLayoutProps, { configLayout: dataInitMain === null || dataInitMain === void 0 ? void 0 : dataInitMain.configLayout, settingSiteCookie: getDataCookies ? (_d = decryptCookie(getDataCookies)) === null || _d === void 0 ? void 0 : _d.setting_site : null }),
699
+ React.createElement("header", { className: 'fixed top-0 z-50 flex h-10 min-w-full items-center justify-between bg-gray-100 pl-1.5 pr-2 ' },
700
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
701
+ React.createElement("a", { className: 'flex w-full items-center', href: '/' }, topMenuLogoFromEnv ? (React.createElement(React.Fragment, null, isLoading ? (React.createElement("div", { className: 'header-loading-logo ml-3 h-8 w-full animate-pulse' })) : (React.createElement("img", { alt: 'Logo', className: ' h-5 w-auto',
702
+ // src={checkLogoHeader}
703
+ src: 'https://sisv2-cdn.phx-smartschool.com/library/book-copy/11-17-2025/22cef182-c958-4e1c-b4a0-66eede72166a-logo.png', style: { maxWidth: '12rem' } })))) : (React.createElement(React.Fragment, null))),
704
+ React.createElement("div", { className: 'flex items-center lg:hidden' },
705
+ React.createElement("button", { className: 'bg-grey-100 mr-3 inline-flex items-center justify-center rounded-md p-1 text-gray-200 hover:bg-white hover:text-gray-600', onClick: function () { return setSidebarOpen(true); }, type: 'button' },
706
+ React.createElement("span", { className: 'sr-only' }, "Open sidebar"),
707
+ React.createElement(Bars3Icon, { "aria-hidden": 'true', className: 'h-6 w-6' })))),
708
+ React.createElement("div", { className: 'flex items-center gap-x-8' },
709
+ React.createElement("div", { className: '-m-1.5 p-1.5' },
710
+ React.createElement(Menu, { as: 'div', className: 'relative ml-3' },
711
+ React.createElement("div", null,
712
+ React.createElement(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' },
713
+ React.createElement("span", { className: 'sr-only' }, "Open user menu"),
714
+ isLoading ? (React.createElement("div", { className: 'flex animate-pulse' },
715
+ React.createElement("div", { className: 'header-loading-avatar h-6 w-6 rounded-full' }))) : (React.createElement("img", { alt: '', className: 'h-6 w-6 rounded-full', src: dataInitMain.sourceAvatar })))),
716
+ React.createElement(Transition, { as: 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' },
717
+ React.createElement(Menu.Items, { className: ' shadow-lg absolute right-0 z-10 mt-2 w-[340px] origin-top-right rounded-md bg-white px-2 ring-1 ring-black ring-opacity-5 focus:outline-none' },
718
+ React.createElement(Menu.Item, null,
719
+ React.createElement("div", { "aria-hidden": true, className: 'px-2 pb-2 pt-4 text-sm font-semibold text-gray-900 ' }, "Ch\u1ECDn tr\u01B0\u1EDDng")),
720
+ !dataInitMain.loadingSchool ? (React.createElement(React.Fragment, null, dataInitMain.listSchool
721
+ .filter(function (val) {
722
+ if (!enablePer(switchSchool, dataInitMain.perCode)) {
723
+ return val.id === dataInitMain.schoolId;
724
+ }
725
+ else {
726
+ return true;
727
+ }
728
+ })
729
+ .map(function (item) { return (React.createElement(Menu.Item, { key: item.id },
730
+ React.createElement("div", { "aria-hidden": true, className: "".concat(item.id === dataInitMain.schoolId &&
731
+ dataInitMain.listSchool.length > 1 &&
732
+ !enablePer(switchSchool, dataInitMain.perCode) === false
733
+ ? 'rounded-lg bg-zinc-200 font-semibold text-gray-900 '
734
+ : 'font-normal ', " \n ").concat(item.id !== dataInitMain.schoolId &&
735
+ (dataInitMain.listSchool.length === 1 ||
736
+ !enablePer(switchSchool, dataInitMain.perCode)) === false
737
+ ? 'cursor-pointer hover:rounded-lg hover:bg-gray-100'
738
+ : '', "\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); } },
739
+ React.createElement("p", { className: 'max-w-[95%] truncate' }, item.name),
740
+ item.id === dataInitMain.schoolId &&
741
+ dataInitMain.listSchool.length > 1 &&
742
+ !enablePer(switchSchool, dataInitMain.perCode) === false && (React.createElement(CheckIcon, { "aria-hidden": 'true', className: 'h-4 w-4' }))))); }))) : (React.createElement(PHXSkeleton, { className: 'flex-1 px-2 py-2', type: 'single' })),
743
+ React.createElement("div", { className: 'border-b pt-1.5' }),
744
+ React.createElement(Menu.Item, null,
745
+ React.createElement("div", { "aria-hidden": true, className: 'px-2 pb-2 pt-4 text-sm font-semibold text-gray-900' }, "T\u00F9y ch\u1ECDn")),
746
+ React.createElement(Menu.Item, null,
747
+ React.createElement("div", { "aria-hidden": true, className: 'cursor-pointer px-2 py-1.5 text-sm text-gray-900 hover:rounded-lg hover:bg-gray-100', onClick: handleProfilePage }, "Th\u00F4ng tin c\u00E1 nh\u00E2n")),
748
+ React.createElement(Menu.Item, null,
749
+ React.createElement("div", { "aria-hidden": true, className: 'mb-2.5 cursor-pointer px-2 py-1.5 text-sm text-[#8e1f0c] hover:rounded-lg hover:bg-gray-100', onClick: handleModalSignOut }, "\u0110\u0103ng xu\u1EA5t"))))))))),
750
+ React.createElement("div", null,
751
+ React.createElement(PHXModal, { dangerActionText: '\u0110\u0103ng xu\u1EA5t', onDangerClick: handleSignOut, onHide: function () { return setModalSignOut(false); }, primaryActionText: '', show: modalSignOut, title: '\u0110\u0103ng xu\u1EA5t' },
752
+ React.createElement("div", { className: 'text-sm text-gray-700' }, "Khi th\u1EF1c hi\u1EC7n thao t\u00E1c n\u00E0y b\u1EA1n s\u1EBD tho\u00E1t kh\u1ECFi trang qu\u1EA3n tr\u1ECB v\u00E0 tr\u1EDF v\u1EC1 trang \u0111\u0103ng nh\u1EADp"))),
753
+ React.createElement(PHXModal, { onHide: function () { return setModal(false); }, onPrimaryClick: handlePrimaryModal, primaryActionText: 'X\u00E1c nh\u1EADn', show: modal, title: 'X\u00E1c nh\u1EADn thay \u0111\u1ED5i tr\u01B0\u1EDDng' },
754
+ React.createElement(PHXBanner, { description: 'Khi thay \u0111\u1ED5i tr\u01B0\u1EDDng t\u1EA5t c\u1EA3 d\u1EEF li\u1EC7u s\u1EBD hi\u1EC3n th\u1ECB theo tr\u01B0\u1EDDng v\u1EEBa \u0111\u01B0\u1EE3c ch\u1ECDn', onClose: function () { return setShowBanner(false); }, show: showBanner, title: 'L\u01B0u \u00FD', type: 'warning' })),
755
+ React.createElement("div", { className: 'relative flex min-h-screen bg-gray-100' },
756
+ React.createElement(NavMobile, { hiddenSideBar: function () { return setSidebarOpen(false); }, menu: dataInitMain.menu, path: pathNameWithBasePath, pathNameWithBasePath: pathNameWithBasePath, permission: dataInitMain.perCode, router: router, setSidebarOpen: setSidebarOpen, sidebarOpen: sidebarOpen }),
757
+ React.createElement(SideBarDesktop, { currentMenuCode: (currentMenuByPath === null || currentMenuByPath === void 0 ? void 0 : currentMenuByPath.code) || '', dataInitMain: dataInitMain, enablePer: enablePer, isActivityHistory: isActivityHistory(), isSettings: isSettings(), navigation: navigation, setShowSubMenu: setShowSubMenu, showSubMenu: showSubMenu }),
758
+ React.createElement(Transition, { as: Fragment, enter: 'transition ease-in-out duration-[350ms] transform', enterFrom: '-translate-x-[10rem] opacity-0', enterTo: 'translate-x-0', leave: 'transition ease-in-out duration-[350ms] transform', leaveFrom: 'translate-x-0', leaveTo: '-translate-x-[10rem] opacity-0', show: showSubMenu },
759
+ React.createElement("aside", { className: "fixed left-[4.35rem] top-10 z-10 hidden h-[calc(100vh-3.1rem)] border-gray-300 lg:block lg:flex-shrink-0 ".concat(showSubMenu && 'border-r') },
760
+ React.createElement("div", { className: 'relative flex h-full w-64 flex-col overflow-y-auto bg-gray-200/20' },
761
+ React.createElement("div", { className: 'mt-3 flex w-full items-center justify-between pl-5 pr-3' },
762
+ React.createElement("h1", { className: 'text-base font-semibold text-gray-900' }, currentMenuByPath === null || currentMenuByPath === void 0 ? void 0 : currentMenuByPath.name),
763
+ showSubMenu && (React.createElement("button", { className: 'inline-blockk flex h-7 w-7 items-center justify-center rounded-md hover:bg-white ', onClick: function () { return setShowSubMenu(false); }, type: 'button' },
764
+ React.createElement(PHXTooltip, { content: '\u0110\u00F3ng thanh b\u00EAn' },
765
+ React.createElement(Image, { alt: 'icon', height: 18, quality: 100, src: IconV2.CLOSE_SIDEBAR, width: 18 }))))),
766
+ checkAdmissions(pathNameWithBasePath) &&
767
+ checkChildrenCampaign(pathNameWithBasePath) &&
768
+ pathNameWithBasePath !== '/admissions/campaign/list' && (React.createElement("div", { className: 'mx-1 flex items-center p-2 pb-0' },
769
+ React.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' },
770
+ React.createElement(ArrowLeftIcon, { className: 'h-5 w-5' })),
771
+ React.createElement("p", { className: 'text-sm font-medium text-slate-600' }, campaignName))),
772
+ React.createElement("div", { className: ' mt-2 overflow-y-auto' },
773
+ subNavigation.map(function (item, subNavIndex) {
774
+ var _a;
775
+ var activeChildIndex = item.child.findIndex(function (c) { return c.current; });
776
+ var isChildActive = activeChildIndex !== -1;
777
+ return (React.createElement("div", { key: subNavIndex }, ((_a = dataInitMain.roleCode) === null || _a === void 0 ? void 0 : _a.length) > 0 ? (React.createElement(React.Fragment, null, enablePer(item.code, dataInitMain.perCode) ? (React.createElement(React.Fragment, null,
778
+ (item === null || item === void 0 ? void 0 : item.isMicroservice) ? (React.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)
779
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
780
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
781
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), href: item.path }, !dataInitMain.loadingMenu ? (React.createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
782
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
783
+ React.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)),
784
+ React.createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (React.createElement(PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))) : (React.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)
785
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
786
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
787
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () { return subNavigationTriggerClicked(item); } }, !dataInitMain.loadingMenu ? (React.createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
788
+ React.createElement("div", { className: 'flex items-center gap-x-2' },
789
+ React.createElement(Image, { alt: 'icon', height: 16, quality: 100, src:
790
+ // @ts-ignore
791
+ IconV2["".concat(currentMenuByPath === null || currentMenuByPath === void 0 ? void 0 : currentMenuByPath.code, "_OUTLINE")], width: 16 }),
792
+ React.createElement("p", { className: classNames('font-[450] leading-5', isChildActive || item.current ? 'text-gray-900' : ' text-gray-500') }, item === null || item === void 0 ? void 0 : item.name)),
793
+ React.createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (React.createElement(PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))),
794
+ item.showChild && item.child && (React.createElement(React.Fragment, null, item.child.map(function (
795
+ // eslint-disable-next-line @typescript-eslint/no-shadow
796
+ children, childIndex) { return (React.createElement("div", { key: childIndex, className: classNames('relative') },
797
+ childIndex <= activeChildIndex && (React.createElement("div", { className: "absolute left-8 z-10 w-[1px] bg-gray-400 ".concat((children === null || children === void 0 ? void 0 : children.current) ? 'h-3' : 'bottom-0', " ").concat(childIndex === 0 ? '-top-1' : ' top-0') })),
798
+ React.createElement("div", { className: "".concat(childIndex === activeChildIndex ? 'block' : 'hidden') },
799
+ React.createElement(Image, { alt: 'icon', className: 'absolute left-8 top-0 h-6 w-3', height: 1,
800
+ // @ts-ignore
801
+ src: IconV2.ARROW_RIGHT_SUB_MENU, width: 1 }),
802
+ React.createElement("div", { className: 'absolute left-[33px] top-0 z-10 h-4 w-[1px] bg-white' })),
803
+ (children === null || children === void 0 ? void 0 : children.isMicroservice) ? (React.createElement("a", { "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)
804
+ ? 'rounded-lg bg-white text-[#353A44]' // màu chữ menu con khi active
805
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-[#353A44]'), href: children.path, onClick: enablePer(children.code, dataInitMain.perCode)
806
+ ? undefined
807
+ : function (e) { return e.preventDefault(); } },
808
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
809
+ React.createElement("div", { className: 'w-3' }),
810
+ React.createElement("p", { className: classNames('my-[0.05rem] ml-3 leading-5', !enablePer(children.code, dataInitMain.perCode)
811
+ ? 'font-normal text-gray-300'
812
+ : (children === null || children === void 0 ? void 0 : children.current)
813
+ ? ''
814
+ : 'font-normal text-[#353A44]') }, children.name)))) : (React.createElement("button", { "aria-hidden": true, className: classNames('ml-4 w-[90%]', (children === null || children === void 0 ? void 0 : children.current)
815
+ ? 'rounded-lg bg-white text-[#353A44]'
816
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-[#353A44]'), onClick: enablePer(children.code, dataInitMain.perCode)
817
+ ? function () { return subNavigationTriggerClicked(children, item); }
818
+ : undefined, type: 'button' },
819
+ React.createElement("p", { className: classNames('px-6 py-2 pl-[2.2rem] text-left text-xs', !enablePer(children.code, dataInitMain.perCode)
820
+ ? 'font-normal text-gray-300'
821
+ : (children === null || children === void 0 ? void 0 : children.current)
822
+ ? 'font-semibold text-gray-900'
823
+ : 'font-normal text-gray-500') }, children.name))))); }))))) : (React.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)
824
+ ? 'rounded-lg bg-white '
825
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // hover:bg-white
826
+ 'mx-3 flex cursor-pointer border-slate-200 p-2') }, !dataInitMain.loadingMenu ? (React.createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
827
+ React.createElement("div", { className: 'flex items-center gap-x-3 text-gray-700' },
828
+ React.createElement("p", { className: classNames('font-normal leading-5 text-gray-300') }, item === null || item === void 0 ? void 0 : item.name)),
829
+ React.createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (React.createElement(PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))))) : (React.createElement(React.Fragment, null,
830
+ (item === null || item === void 0 ? void 0 : item.isMicroservice) ? (React.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)
831
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
832
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
833
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), href: item.path }, !dataInitMain.loadingMenu ? (React.createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
834
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
835
+ React.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)),
836
+ React.createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (React.createElement(PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))) : (React.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)
837
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
838
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
839
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () { return subNavigationTriggerClicked(item); } }, !dataInitMain.loadingMenu ? (React.createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
840
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
841
+ React.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)),
842
+ React.createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : (React.createElement(PHXSkeleton, { className: 'mr-3 flex-1', type: 'single' })))),
843
+ item.showChild && item.child && (React.createElement(React.Fragment, null, item.child.map(
844
+ // eslint-disable-next-line @typescript-eslint/no-shadow
845
+ function (children, index) { return (React.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') }, (children === null || children === void 0 ? void 0 : children.isMicroservice) ? (React.createElement("a", { "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)
846
+ ? 'rounded-lg bg-white text-gray-900 '
847
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-gray-900'), href: item.path },
848
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
849
+ React.createElement("div", { className: 'w-3' }),
850
+ React.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)))) : (React.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)
851
+ ? 'rounded-lg bg-white text-gray-900 '
852
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50 hover:text-gray-900'), onClick: function () { return subNavigationTriggerClicked(children, item); } },
853
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
854
+ React.createElement("div", { className: 'w-3' }),
855
+ React.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)))))); })))))));
856
+ }),
857
+ activityHistoryChild.map(function (item, subNavIndex) { return (React.createElement("div", { key: subNavIndex },
858
+ React.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) && !dataInitMain.loadingMenu
859
+ ? 'rounded-lg bg-white' // màu background menu cha khi active
860
+ : 'hover:rounded-lg hover:bg-white hover:bg-opacity-50', // màu background khi hover vào menu cha
861
+ 'mx-3 flex cursor-pointer border-slate-200 p-2'), onClick: function () {
862
+ handleClickActivityHistoryChild(item);
863
+ subNavigationTriggerClicked(item);
864
+ } }, !dataInitMain.loadingMenu ? (React.createElement("div", { className: 'ml-1 flex items-center text-[0.84rem]' },
865
+ React.createElement("div", { className: 'flex items-center gap-x-3' },
866
+ React.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)),
867
+ React.createElement("p", { className: 'mt-1 text-slate-500' }, item === null || item === void 0 ? void 0 : item.description))) : ('')))); }))))),
868
+ React.createElement("main", { className: 'w-full pb-2.5 pt-10 lg:pl-[4.5rem] lg:pr-[0.5rem]' },
869
+ React.createElement("div", { className: 'h-full w-full border-gray-300 lg:overflow-y-auto lg:rounded-2xl lg:border-[0.75px]' }, dataInitMain.isLoadingPermission ? ('') : enablePer(currentCode, dataInitMain.perCode) ? (React.createElement("div", { className: "h-full bg-gray-50 ".concat(showSubMenu ? 'pl-4 lg:pl-[16.9rem]' : 'pl-4', " py-4 pr-4 transition-all duration-300") }, children)) : (React.createElement(PHXCard, null,
870
+ React.createElement("div", { className: 'mb-10 mt-10 sm:mb-20 sm:mt-20 lg:mb-32 lg:mt-32' },
871
+ React.createElement("div", { className: 'flex items-center justify-center' },
872
+ React.createElement(LockClosedIcon, { className: 'text-gray-400', height: 70, width: 70 })),
873
+ React.createElement("div", { className: 'mt-5 flex select-none items-center justify-center text-base font-bold text-gray-800' }, "B\u1EA1n kh\u00F4ng c\u00F3 quy\u1EC1n truy c\u1EADp")))))))));
874
+ };
875
+ //# sourceMappingURL=MainWrapV4.js.map