@projectcor/people-microfront 1.0.10 → 1.0.12

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 (193) hide show
  1. package/lib/App.js +28 -0
  2. package/lib/App.stories.js +134 -0
  3. package/lib/Providers.js +30 -0
  4. package/lib/components/Backdrop/Background.interface.js +2 -0
  5. package/lib/components/Backdrop/Background.js +12 -0
  6. package/lib/components/Backdrop/Background.style.js +9 -0
  7. package/lib/components/Backdrop/index.js +2 -0
  8. package/lib/components/DeleteTeamModal/DeleteTeamModal.js +69 -0
  9. package/lib/components/DeleteTeamModal/DeleteTeamModal.styles.js +55 -0
  10. package/lib/components/DeleteTeamModal/DeleteTeamModal.types.js +2 -0
  11. package/lib/components/DeleteTeamModal/index.js +2 -0
  12. package/lib/components/DeletedUserIcon/DeletedUserIcon.js +22 -0
  13. package/lib/components/DeletedUserIcon/DeletedUserIcon.styles.js +7 -0
  14. package/lib/components/DeletedUserIcon/index.js +2 -0
  15. package/lib/components/DisabledUserIcon/DisabledUserIcon.js +25 -0
  16. package/lib/components/DisabledUserIcon/DisabledUserIcon.styles.js +7 -0
  17. package/lib/components/DisabledUserIcon/index.js +2 -0
  18. package/lib/components/EmptyStateTeams/EmptyStateTeams.js +195 -0
  19. package/lib/components/EmptyStateTeams/EmptyStateTeams.styles.js +7 -0
  20. package/lib/components/EmptyStateTeams/index.js +2 -0
  21. package/lib/components/EmptyUser/EmptyUser.js +20 -0
  22. package/lib/components/EmptyUser/EmptyUser.styles.js +18 -0
  23. package/lib/components/EmptyUser/index.js +3 -0
  24. package/lib/components/ErrorComponent/ErrorComponent.js +24 -0
  25. package/lib/components/ErrorComponent/ErrorComponent.spec.js +30 -0
  26. package/lib/components/ErrorComponent/ErrorComponent.styles.js +19 -0
  27. package/lib/components/ErrorComponent/index.js +2 -0
  28. package/lib/components/ErrorTeams/ErrorTeams.js +118 -0
  29. package/lib/components/ErrorTeams/ErrorTeams.styles.js +7 -0
  30. package/lib/components/ErrorTeams/index.js +2 -0
  31. package/lib/components/Filters/FilterChip/FilterChip.js +165 -0
  32. package/lib/components/Filters/FilterChip/FilterChip.styles.js +6 -0
  33. package/lib/components/Filters/FilterChip/index.js +2 -0
  34. package/lib/components/Filters/LabelFilter/LabelFilter.js +89 -0
  35. package/lib/components/Filters/LabelFilter/LabelFilter.styles.js +32 -0
  36. package/lib/components/Filters/SearchComponent/SearchComponent.js +28 -0
  37. package/lib/components/Filters/SearchComponent/SearchComponent.styles.js +22 -0
  38. package/lib/components/Filters/SearchComponent/index.js +2 -0
  39. package/lib/components/Filters/index.js +2 -0
  40. package/lib/components/HeaderTeams/HeaderTeams.js +37 -0
  41. package/lib/components/HeaderTeams/HeaderTeams.style.js +15 -0
  42. package/lib/components/HeaderTeams/index.js +2 -0
  43. package/lib/components/Icons/UserBlockIcon.js +25 -0
  44. package/lib/components/Icons/UserIconLock.js +43 -0
  45. package/lib/components/Icons/UserIconWithCross.js +21 -0
  46. package/lib/components/Icons/index.js +4 -0
  47. package/lib/components/Illustration/EmptyFilter.js +67 -0
  48. package/lib/components/Illustration/EmptyUser.js +141 -0
  49. package/lib/components/Illustration/index.js +2 -0
  50. package/lib/components/Layout/Layout.js +37 -0
  51. package/lib/components/Layout/Layout.styles.js +26 -0
  52. package/lib/components/Layout/index.js +2 -0
  53. package/lib/components/Loader/Loader.js +11 -0
  54. package/lib/components/Loader/Loader.styles.js +6 -0
  55. package/lib/components/Loader/index.js +2 -0
  56. package/lib/components/Loading/LoadingComponent.js +19 -0
  57. package/lib/components/Loading/LoadingComponent.style.js +15 -0
  58. package/lib/components/Loading/index.js +2 -0
  59. package/lib/components/MenuOptions/MenuOptions.js +220 -0
  60. package/lib/components/MenuOptions/MenuOptions.styles.js +18 -0
  61. package/lib/components/MenuOptions/index.js +2 -0
  62. package/lib/components/Modal/ModalLayout.interface.js +2 -0
  63. package/lib/components/Modal/ModalLayout.js +25 -0
  64. package/lib/components/Modal/ModalLayout.style.js +26 -0
  65. package/lib/components/Modal/index.js +2 -0
  66. package/lib/components/ModalBlockedUser/ModalBlockedUser.js +47 -0
  67. package/lib/components/ModalBlockedUser/ModalBlockedUser.styles.js +14 -0
  68. package/lib/components/ModalBlockedUser/index.js +2 -0
  69. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.js +136 -0
  70. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.styles.js +37 -0
  71. package/lib/components/ModalEditUserPosition/UserEditPositionRow.js +216 -0
  72. package/lib/components/ModalEditUserPosition/UserEditPositionRow.styles.js +61 -0
  73. package/lib/components/ModalEditUserPosition/index.js +2 -0
  74. package/lib/components/ModalOptionsWithSearch/ConfirmButton.js +19 -0
  75. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.js +177 -0
  76. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.styles.js +46 -0
  77. package/lib/components/ModalOptionsWithSearch/SearchInput.js +20 -0
  78. package/lib/components/Pagination/Pagination.styles.js +26 -0
  79. package/lib/components/Pagination/PaginationView.js +83 -0
  80. package/lib/components/Pagination/index.js +2 -0
  81. package/lib/components/Search/InputSearch.js +23 -0
  82. package/lib/components/Search/Search.js +41 -0
  83. package/lib/components/Search/Search.styles.js +15 -0
  84. package/lib/components/Search/index.js +2 -0
  85. package/lib/components/Snackbar/Snackbar.interface.js +2 -0
  86. package/lib/components/Snackbar/Snackbar.js +35 -0
  87. package/lib/components/Snackbar/Snackbar.styles.js +18 -0
  88. package/lib/components/Snackbar/index.js +2 -0
  89. package/lib/components/Table/Header/HeaderTable.js +208 -0
  90. package/lib/components/Table/Header/HeaderTable.styles.js +15 -0
  91. package/lib/components/Table/Header/index.js +2 -0
  92. package/lib/components/Table/Row/Row.js +112 -0
  93. package/lib/components/Table/Row/Row.styles.js +91 -0
  94. package/lib/components/Table/Row/index.js +2 -0
  95. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.js +68 -0
  96. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.styles.js +39 -0
  97. package/lib/components/Table/TeamRow/AddMemberModal/index.js +2 -0
  98. package/lib/components/Table/TeamRow/AddUsers/AddUsers.js +246 -0
  99. package/lib/components/Table/TeamRow/AddUsers/AddUsers.styles.js +32 -0
  100. package/lib/components/Table/TeamRow/AddUsers/index.js +2 -0
  101. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.js +68 -0
  102. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.styles.js +39 -0
  103. package/lib/components/Table/TeamRow/RemoveMemberModal/index.js +2 -0
  104. package/lib/components/Table/TeamRow/TeamRow.js +131 -0
  105. package/lib/components/Table/TeamRow/TeamRow.styles.js +7 -0
  106. package/lib/components/Table/TeamRow/UsersRow/UsersRow.js +195 -0
  107. package/lib/components/Table/TeamRow/UsersRow/UsersRow.styles.js +41 -0
  108. package/lib/components/Table/TeamRow/UsersRow/index.js +2 -0
  109. package/lib/components/Table/TeamRow/index.js +2 -0
  110. package/lib/components/TeamDetailsModal/MembersSelect.js +181 -0
  111. package/lib/components/TeamDetailsModal/TeamDetailsModal.js +276 -0
  112. package/lib/components/TeamDetailsModal/TeamDetailsModal.styles.js +130 -0
  113. package/lib/components/TeamDetailsModal/TeamDetailsModal.types.js +2 -0
  114. package/lib/components/TeamDetailsModal/index.js +2 -0
  115. package/lib/components/UserRow/UserRow.js +83 -0
  116. package/lib/components/UserRow/UserRow.stories.js +17 -0
  117. package/lib/components/UserRow/UserRow.styles.js +51 -0
  118. package/lib/constants/gqlClient.js +4 -0
  119. package/lib/constants/peopleFilterEventTypes.js +9 -0
  120. package/lib/container/Body/BodyContainer.js +130 -0
  121. package/lib/container/Body/BodyContainerViewTeams.js +216 -0
  122. package/lib/container/Filters/FiltersContainer.js +494 -0
  123. package/lib/container/Filters/FiltersTeamsContainer.js +159 -0
  124. package/lib/container/MainView/MainTeamsView.js +69 -0
  125. package/lib/container/MainView/MainUsersView.js +159 -0
  126. package/lib/container/MainView/MainUsersView.styles.js +32 -0
  127. package/lib/container/MainView/MainView.js +139 -0
  128. package/lib/container/Pagination/PaginationContainer.js +32 -0
  129. package/lib/container/Pagination/PaginationTeamsContainer.js +32 -0
  130. package/lib/container/RouterComponent/RouterComponent.js +110 -0
  131. package/lib/container/RouterComponent/RouterComponent.stories.js +12 -0
  132. package/lib/container/RouterComponent/RouterComponent.styles.js +26 -0
  133. package/lib/container/RouterComponent/index.js +2 -0
  134. package/lib/container/TableContainer/TableContainer.js +62 -0
  135. package/lib/container/index.js +2 -0
  136. package/lib/context/TeamsContext.js +49 -0
  137. package/lib/context/UsersContext.js +214 -0
  138. package/lib/hooks/useAbortController.js +21 -0
  139. package/lib/hooks/useAssignUserToTeam.js +77 -0
  140. package/lib/hooks/useAssignedWorkspacesFromHost.js +103 -0
  141. package/lib/hooks/useCreateTeams.js +67 -0
  142. package/lib/hooks/useDebounce.js +18 -0
  143. package/lib/hooks/useDebouncedCallback.js +27 -0
  144. package/lib/hooks/useDeleteTeam.js +69 -0
  145. package/lib/hooks/useGetTeams.js +73 -0
  146. package/lib/hooks/useGetTotalPositions.js +24 -0
  147. package/lib/hooks/useGetTotalTeams.js +24 -0
  148. package/lib/hooks/useGetUserPositionFilter.js +32 -0
  149. package/lib/hooks/useGetUsers.js +128 -0
  150. package/lib/hooks/useGetUsersForFilter.js +51 -0
  151. package/lib/hooks/useGraphAdapter.js +71 -0
  152. package/lib/hooks/useLoadMoreGuard.js +16 -0
  153. package/lib/hooks/useResize.js +34 -0
  154. package/lib/hooks/useSearchEvent.js +18 -0
  155. package/lib/hooks/useUnassignUserFromTeam.js +67 -0
  156. package/lib/hooks/useUnblockUser.js +47 -0
  157. package/lib/hooks/useUpdateTeam.js +67 -0
  158. package/lib/hooks/useUpdateUserPositions.js +58 -0
  159. package/lib/hooks/useUserPositionCategories.js +38 -0
  160. package/lib/index.css +28 -0
  161. package/lib/index.js +10 -0
  162. package/lib/lang/i18next.js +19 -0
  163. package/lib/lang/i18nextForWeb.js +25 -0
  164. package/lib/lang/resource.js +11 -0
  165. package/lib/lang/translation/br.json +179 -0
  166. package/lib/lang/translation/en.json +180 -0
  167. package/lib/lang/translation/es.json +180 -0
  168. package/lib/lang/translation/fr.json +180 -0
  169. package/lib/mocks/mockedUser.js +101 -0
  170. package/lib/query/assignUserToTeam.js +5 -0
  171. package/lib/query/createTeam.js +5 -0
  172. package/lib/query/deleteTeam.js +5 -0
  173. package/lib/query/getTeams.js +5 -0
  174. package/lib/query/getTotalPositions.js +5 -0
  175. package/lib/query/getTotalTeams.js +5 -0
  176. package/lib/query/getUserPositionCategory.js +5 -0
  177. package/lib/query/getUserPositionFilter.js +5 -0
  178. package/lib/query/getUsers.js +5 -0
  179. package/lib/query/getWorkspaces.js +5 -0
  180. package/lib/query/unassignUserFromTeam.js +5 -0
  181. package/lib/query/updateTeam.js +5 -0
  182. package/lib/query/updateUserPosition.js +5 -0
  183. package/lib/query/userUnblock.js +5 -0
  184. package/lib/types/global.d.js +2 -0
  185. package/lib/types/userType.d.js +2 -0
  186. package/lib/utils/ApolloMicroServiceClient.js +3 -0
  187. package/lib/utils/formatNumber.js +55 -0
  188. package/lib/utils/isCorWorkspacesFeatureEnabled.js +15 -0
  189. package/lib/utils/peopleFiltersStorage.js +128 -0
  190. package/lib/utils/peopleFiltersUrl.js +147 -0
  191. package/lib/utils/sanitizeHtml.js +11 -0
  192. package/lib/utils/tabUrl.js +16 -0
  193. package/package.json +1 -1
@@ -0,0 +1,17 @@
1
+ import { UserRow } from './UserRow';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export default {
4
+ title: 'Components/UserRow',
5
+ component: UserRow
6
+ };
7
+ export var Default = function Default() {
8
+ return /*#__PURE__*/_jsx(UserRow, {
9
+ firstName: "John",
10
+ lastName: "Doe",
11
+ picture: "https://via.placeholder.com/150",
12
+ isDeleted: false,
13
+ hidden: false,
14
+ isBlocked: false
15
+ });
16
+ };
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVc2VyUm93IiwianN4IiwiX2pzeCIsInRpdGxlIiwiY29tcG9uZW50IiwiRGVmYXVsdCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwicGljdHVyZSIsImlzRGVsZXRlZCIsImhpZGRlbiIsImlzQmxvY2tlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VzZXJSb3cvVXNlclJvdy5zdG9yaWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRNZXRhIH0gZnJvbSAnQHN0b3J5Ym9vay9yZWFjdCdcbmltcG9ydCB7IFVzZXJSb3cgfSBmcm9tICcuL1VzZXJSb3cnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdGl0bGU6ICdDb21wb25lbnRzL1VzZXJSb3cnLFxuICBjb21wb25lbnQ6IFVzZXJSb3csXG59IGFzIENvbXBvbmVudE1ldGE8dHlwZW9mIFVzZXJSb3c+XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0ID0gKCkgPT4gKFxuICA8VXNlclJvd1xuICAgIGZpcnN0TmFtZT1cIkpvaG5cIlxuICAgIGxhc3ROYW1lPVwiRG9lXCJcbiAgICBwaWN0dXJlPVwiaHR0cHM6Ly92aWEucGxhY2Vob2xkZXIuY29tLzE1MFwiXG4gICAgaXNEZWxldGVkPXtmYWxzZX1cbiAgICBoaWRkZW49e2ZhbHNlfVxuICAgIGlzQmxvY2tlZD17ZmFsc2V9XG4gIC8+XG4pXG4iXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLE9BQU8sUUFBUSxXQUFXO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRW5DLGVBQWU7RUFDYkMsS0FBSyxFQUFFLG9CQUFvQjtFQUMzQkMsU0FBUyxFQUFFSjtBQUNiLENBQUM7QUFFRCxPQUFPLElBQU1LLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBO0VBQUEsb0JBQ2xCSCxJQUFBLENBQUNGLE9BQU87SUFDTk0sU0FBUyxFQUFDLE1BQU07SUFDaEJDLFFBQVEsRUFBQyxLQUFLO0lBQ2RDLE9BQU8sRUFBQyxpQ0FBaUM7SUFDekNDLFNBQVMsRUFBRSxLQUFNO0lBQ2pCQyxNQUFNLEVBQUUsS0FBTTtJQUNkQyxTQUFTLEVBQUU7RUFBTSxDQUNsQixDQUFDO0FBQUEsQ0FDSCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,51 @@
1
+ import styled, { css } from 'styled-components';
2
+ import pallete from '@projectcor/theme/lib/base/colors';
3
+ export var SCUIWrapper = styled.a.withConfig({
4
+ displayName: "UserRowstyles__SCUIWrapper",
5
+ componentId: "sc-a3cw-0"
6
+ })(["transition:all 0.3s ease-in-out;cursor:", " !important;text-decoration:none;color:inherit;display:block;", " & [class*='SCAvatarFallback']{cursor:default !important;}max-width:", ";width:100%;", " &:hover{background-color:rgba(242,242,242,1);border:1px solid rgba(191,191,191,1);box-shadow:0px 2px 8px 0px rgba(147,147,147,0.2);}"], function (_ref) {
7
+ var href = _ref.href;
8
+ return href ? 'pointer' : 'default';
9
+ }, function (_ref2) {
10
+ var isBlocked = _ref2.isBlocked;
11
+ return isBlocked && css(["*{color:", " !important;}"], pallete.text.mediumGray);
12
+ }, function (_ref3) {
13
+ var withBorder = _ref3.withBorder;
14
+ return withBorder ? '100%' : 'calc(100% - 40px)';
15
+ }, function (_ref4) {
16
+ var withBorder = _ref4.withBorder;
17
+ return withBorder && css(["padding:8px 24px 8px 8px;border:1px solid ", ";border-radius:34px;"], pallete.colors.gray.light);
18
+ });
19
+ export var SCUIWrapperLabel = styled.div.withConfig({
20
+ displayName: "UserRowstyles__SCUIWrapperLabel",
21
+ componentId: "sc-a3cw-1"
22
+ })(["display:flex;flex-direction:column;gap:4px;max-width:calc(100% - 32px);"]);
23
+ export var SCUIUserInfoWrapper = styled.div.withConfig({
24
+ displayName: "UserRowstyles__SCUIUserInfoWrapper",
25
+ componentId: "sc-a3cw-2"
26
+ })(["display:flex;gap:8px;"]);
27
+ export var SCUIAvatarWrapper = styled.div.withConfig({
28
+ displayName: "UserRowstyles__SCUIAvatarWrapper",
29
+ componentId: "sc-a3cw-3"
30
+ })(["border-radius:50%;background-color:lightblue;height:32px;width:32px;display:flex;justify-content:center;align-items:center;position:relative;"]);
31
+ export var SCUILockBadgeWrapper = styled.div.withConfig({
32
+ displayName: "UserRowstyles__SCUILockBadgeWrapper",
33
+ componentId: "sc-a3cw-4"
34
+ })(["position:absolute;left:-8px;background-color:white;border-radius:50%;padding:2px;display:flex;justify-content:center;align-items:center;"]);
35
+ export var SCUINamePositionRow = styled.div.withConfig({
36
+ displayName: "UserRowstyles__SCUINamePositionRow",
37
+ componentId: "sc-a3cw-5"
38
+ })(["display:flex;gap:8px;font-size:12px;"]);
39
+ export var SCUIUserName = styled.span.withConfig({
40
+ displayName: "UserRowstyles__SCUIUserName",
41
+ componentId: "sc-a3cw-6"
42
+ })(["border-right:1px solid ", ";padding-right:8px;color:", ";white-space:nowrap;text-transform:capitalize;text-overflow:ellipsis;max-width:fit-content;overflow:hidden;font-weight:500;"], pallete.colors.gray.light, pallete.colors.dark);
43
+ export var SCUIPosition = styled.span.withConfig({
44
+ displayName: "UserRowstyles__SCUIPosition",
45
+ componentId: "sc-a3cw-7"
46
+ })(["color:", ";white-space:nowrap;text-transform:capitalize;max-width:fit-content;overflow:hidden;text-overflow:ellipsis;font-weight:400;font-size:12px;"], pallete.secondary.main);
47
+ export var SCUIEmail = styled.span.withConfig({
48
+ displayName: "UserRowstyles__SCUIEmail",
49
+ componentId: "sc-a3cw-8"
50
+ })(["color:", ";font-size:10px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;"], pallete.text.mediumGray);
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJwYWxsZXRlIiwiU0NVSVdyYXBwZXIiLCJhIiwid2l0aENvbmZpZyIsImRpc3BsYXlOYW1lIiwiY29tcG9uZW50SWQiLCJfcmVmIiwiaHJlZiIsIl9yZWYyIiwiaXNCbG9ja2VkIiwidGV4dCIsIm1lZGl1bUdyYXkiLCJfcmVmMyIsIndpdGhCb3JkZXIiLCJfcmVmNCIsImNvbG9ycyIsImdyYXkiLCJsaWdodCIsIlNDVUlXcmFwcGVyTGFiZWwiLCJkaXYiLCJTQ1VJVXNlckluZm9XcmFwcGVyIiwiU0NVSUF2YXRhcldyYXBwZXIiLCJTQ1VJTG9ja0JhZGdlV3JhcHBlciIsIlNDVUlOYW1lUG9zaXRpb25Sb3ciLCJTQ1VJVXNlck5hbWUiLCJzcGFuIiwiZGFyayIsIlNDVUlQb3NpdGlvbiIsInNlY29uZGFyeSIsIm1haW4iLCJTQ1VJRW1haWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Vc2VyUm93L1VzZXJSb3cuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkLCB7IGNzcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHBhbGxldGUgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5leHBvcnQgY29uc3QgU0NVSVdyYXBwZXIgPSBzdHlsZWQuYTx7IHdpdGhCb3JkZXI/OiBib29sZWFuOyBpc0Jsb2NrZWQ/OiBib29sZWFuIH0+YFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgY3Vyc29yOiAkeyh7IGhyZWYgfSkgPT4gKGhyZWYgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcpfSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgJHsoeyBpc0Jsb2NrZWQgfSkgPT5cbiAgICBpc0Jsb2NrZWQgJiZcbiAgICBjc3NgXG4gICAgICAqIHtcbiAgICAgICAgY29sb3I6ICR7cGFsbGV0ZS50ZXh0Lm1lZGl1bUdyYXl9ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgYH1cbiAgJiBbY2xhc3MqPSdTQ0F2YXRhckZhbGxiYWNrJ10ge1xuICAgIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xuICB9XG4gIG1heC13aWR0aDogJHsoeyB3aXRoQm9yZGVyIH0pID0+ICh3aXRoQm9yZGVyID8gJzEwMCUnIDogJ2NhbGMoMTAwJSAtIDQwcHgpJyl9O1xuICB3aWR0aDogMTAwJTtcbiAgJHsoeyB3aXRoQm9yZGVyIH0pID0+XG4gICAgd2l0aEJvcmRlciAmJlxuICAgIGNzc2BcbiAgICAgIHBhZGRpbmc6IDhweCAyNHB4IDhweCA4cHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAke3BhbGxldGUuY29sb3JzLmdyYXkubGlnaHR9O1xuICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICBgfVxuICAmIDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDIsIDI0MiwgMjQyLCAxKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5MSwgMTkxLCAxOTEsIDEpO1xuICAgIGJveC1zaGFkb3c6IDBweCAycHggOHB4IDBweCByZ2JhKDE0NywgMTQ3LCAxNDcsIDAuMik7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDVUlXcmFwcGVyTGFiZWwgPSBzdHlsZWQuZGl2PHsgaXNCbG9ja2VkPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIG1heC13aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1VJVXNlckluZm9XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1VJQXZhdGFyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRibHVlO1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NVSUxvY2tCYWRnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC04cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHBhZGRpbmc6IDJweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1VJTmFtZVBvc2l0aW9uUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVUlVc2VyTmFtZSA9IHN0eWxlZC5zcGFuYFxuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAke3BhbGxldGUuY29sb3JzLmdyYXkubGlnaHR9O1xuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gIGNvbG9yOiAke3BhbGxldGUuY29sb3JzLmRhcmt9O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1VJUG9zaXRpb24gPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7cGFsbGV0ZS5zZWNvbmRhcnkubWFpbn07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxMnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NVSUVtYWlsID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke3BhbGxldGUudGV4dC5tZWRpdW1HcmF5fTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxJQUFJQyxHQUFHLFFBQVEsbUJBQW1CO0FBQy9DLE9BQU9DLE9BQU8sTUFBTSxtQ0FBbUM7QUFFdkQsT0FBTyxJQUFNQyxXQUFXLEdBQUdILE1BQU0sQ0FBQ0ksQ0FBQyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGtWQUV2QixVQUFBQyxJQUFBO0VBQUEsSUFBR0MsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7RUFBQSxPQUFRQSxJQUFJLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFBQSxDQUFDLEVBSXBELFVBQUFDLEtBQUE7RUFBQSxJQUFHQyxTQUFTLEdBQUFELEtBQUEsQ0FBVEMsU0FBUztFQUFBLE9BQ1pBLFNBQVMsSUFDVFYsR0FBRyxnQ0FFVUMsT0FBTyxDQUFDVSxJQUFJLENBQUNDLFVBQVUsQ0FFbkM7QUFBQSxHQUlVLFVBQUFDLEtBQUE7RUFBQSxJQUFHQyxVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtFQUFBLE9BQVFBLFVBQVUsR0FBRyxNQUFNLEdBQUcsbUJBQW1CO0FBQUEsQ0FBQyxFQUUxRSxVQUFBQyxLQUFBO0VBQUEsSUFBR0QsVUFBVSxHQUFBQyxLQUFBLENBQVZELFVBQVU7RUFBQSxPQUNiQSxVQUFVLElBQ1ZkLEdBQUcseUVBRW1CQyxPQUFPLENBQUNlLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLENBRTlDO0FBQUEsRUFNSjtBQUVELE9BQU8sSUFBTUMsZ0JBQWdCLEdBQUdwQixNQUFNLENBQUNxQixHQUFHLENBQUFoQixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLCtFQUt6QztBQUVELE9BQU8sSUFBTWUsbUJBQW1CLEdBQUd0QixNQUFNLENBQUNxQixHQUFHLENBQUFoQixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZCQUc1QztBQUVELE9BQU8sSUFBTWdCLGlCQUFpQixHQUFHdkIsTUFBTSxDQUFDcUIsR0FBRyxDQUFBaEIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxxSkFTMUM7QUFFRCxPQUFPLElBQU1pQixvQkFBb0IsR0FBR3hCLE1BQU0sQ0FBQ3FCLEdBQUcsQ0FBQWhCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ0pBUzdDO0FBRUQsT0FBTyxJQUFNa0IsbUJBQW1CLEdBQUd6QixNQUFNLENBQUNxQixHQUFHLENBQUFoQixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDRDQUk1QztBQUVELE9BQU8sSUFBTW1CLFlBQVksR0FBRzFCLE1BQU0sQ0FBQzJCLElBQUksQ0FBQXRCLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsNExBQ1hMLE9BQU8sQ0FBQ2UsTUFBTSxDQUFDQyxJQUFJLENBQUNDLEtBQUssRUFFMUNqQixPQUFPLENBQUNlLE1BQU0sQ0FBQ1csSUFBSSxDQU83QjtBQUVELE9BQU8sSUFBTUMsWUFBWSxHQUFHN0IsTUFBTSxDQUFDMkIsSUFBSSxDQUFBdEIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw2SkFDNUJMLE9BQU8sQ0FBQzRCLFNBQVMsQ0FBQ0MsSUFBSSxDQVFoQztBQUVELE9BQU8sSUFBTUMsU0FBUyxHQUFHaEMsTUFBTSxDQUFDMkIsSUFBSSxDQUFBdEIsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw2R0FDekJMLE9BQU8sQ0FBQ1UsSUFBSSxDQUFDQyxVQUFVLENBTWpDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,4 @@
1
+ import { getApolloClient } from '@projectcor/cor-apollo-provider';
2
+ var MAIN_GQL = process.env.GRAPHQL_URL;
3
+ export default getApolloClient(MAIN_GQL);
4
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRBcG9sbG9DbGllbnQiLCJNQUlOX0dRTCIsInByb2Nlc3MiLCJlbnYiLCJHUkFQSFFMX1VSTCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvZ3FsQ2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEFwb2xsb0NsaWVudCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1hcG9sbG8tcHJvdmlkZXInXG5cbmNvbnN0IE1BSU5fR1FMID0gcHJvY2Vzcy5lbnYuR1JBUEhRTF9VUkxcblxuZXhwb3J0IGRlZmF1bHQgZ2V0QXBvbGxvQ2xpZW50KE1BSU5fR1FMKVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxlQUFlLFFBQVEsaUNBQWlDO0FBRWpFLElBQU1DLFFBQVEsR0FBR0MsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFdBQVc7QUFFeEMsZUFBZUosZUFBZSxDQUFDQyxRQUFRLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,9 @@
1
+ /** Tipos del `detail.type` en {@link SEARCH_EVENT} y `id` de {@link FilterChip}. */
2
+ export var PEOPLE_FILTER_EVENT_TYPES = {
3
+ SEARCH: 'nameFilter',
4
+ TEAM: 'teamFilter',
5
+ POSITION: 'positionFilter',
6
+ WORKSPACE: 'workspaceFilter'
7
+ };
8
+ export var FILTER_CHIP_IDS_WITH_SELECTION_PAYLOAD = [PEOPLE_FILTER_EVENT_TYPES.TEAM, PEOPLE_FILTER_EVENT_TYPES.POSITION, PEOPLE_FILTER_EVENT_TYPES.WORKSPACE];
9
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQRU9QTEVfRklMVEVSX0VWRU5UX1RZUEVTIiwiU0VBUkNIIiwiVEVBTSIsIlBPU0lUSU9OIiwiV09SS1NQQUNFIiwiRklMVEVSX0NISVBfSURTX1dJVEhfU0VMRUNUSU9OX1BBWUxPQUQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RhbnRzL3Blb3BsZUZpbHRlckV2ZW50VHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRpcG9zIGRlbCBgZGV0YWlsLnR5cGVgIGVuIHtAbGluayBTRUFSQ0hfRVZFTlR9IHkgYGlkYCBkZSB7QGxpbmsgRmlsdGVyQ2hpcH0uICovXG5leHBvcnQgY29uc3QgUEVPUExFX0ZJTFRFUl9FVkVOVF9UWVBFUyA9IHtcbiAgU0VBUkNIOiAnbmFtZUZpbHRlcicsXG4gIFRFQU06ICd0ZWFtRmlsdGVyJyxcbiAgUE9TSVRJT046ICdwb3NpdGlvbkZpbHRlcicsXG4gIFdPUktTUEFDRTogJ3dvcmtzcGFjZUZpbHRlcicsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIFBlb3BsZUZpbHRlckV2ZW50VHlwZSA9ICh0eXBlb2YgUEVPUExFX0ZJTFRFUl9FVkVOVF9UWVBFUylba2V5b2YgdHlwZW9mIFBFT1BMRV9GSUxURVJfRVZFTlRfVFlQRVNdXG5cbmV4cG9ydCBjb25zdCBGSUxURVJfQ0hJUF9JRFNfV0lUSF9TRUxFQ1RJT05fUEFZTE9BRDogcmVhZG9ubHkgUGVvcGxlRmlsdGVyRXZlbnRUeXBlW10gPSBbXG4gIFBFT1BMRV9GSUxURVJfRVZFTlRfVFlQRVMuVEVBTSxcbiAgUEVPUExFX0ZJTFRFUl9FVkVOVF9UWVBFUy5QT1NJVElPTixcbiAgUEVPUExFX0ZJTFRFUl9FVkVOVF9UWVBFUy5XT1JLU1BBQ0UsXG5dXG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsT0FBTyxJQUFNQSx5QkFBeUIsR0FBRztFQUN2Q0MsTUFBTSxFQUFFLFlBQVk7RUFDcEJDLElBQUksRUFBRSxZQUFZO0VBQ2xCQyxRQUFRLEVBQUUsZ0JBQWdCO0VBQzFCQyxTQUFTLEVBQUU7QUFDYixDQUFVO0FBSVYsT0FBTyxJQUFNQyxzQ0FBd0UsR0FBRyxDQUN0RkwseUJBQXlCLENBQUNFLElBQUksRUFDOUJGLHlCQUF5QixDQUFDRyxRQUFRLEVBQ2xDSCx5QkFBeUIsQ0FBQ0ksU0FBUyxDQUNwQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,130 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ /* eslint-disable @typescript-eslint/no-unused-vars */
6
+ /* eslint-disable no-unused-vars */
7
+ /* eslint-disable @typescript-eslint/no-explicit-any */
8
+ import { useCallback, memo, useState, lazy, Suspense } from 'react';
9
+ import { RowComponent } from '../../components/Table/Row';
10
+ import { useUsersEditPositions, useUsersQuery, useUsersView } from '../../context/UsersContext';
11
+ import { useUnblockUser } from '../../hooks/useUnblockUser';
12
+ import { LoaderComponent } from '../../components/Loading/LoadingComponent';
13
+ import { LayoutBodyUser } from '../../components/Layout/Layout';
14
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
+ var LazyEmptyUserComponent = /*#__PURE__*/lazy(function () {
16
+ return import('../../components/EmptyUser/EmptyUser').then(function (module) {
17
+ return {
18
+ "default": module.EmptyUserComponent
19
+ };
20
+ });
21
+ });
22
+ var LazyModalBlockedUser = /*#__PURE__*/lazy(function () {
23
+ return import('../../components/ModalBlockedUser').then(function (module) {
24
+ return {
25
+ "default": module.ModalBlockedUser
26
+ };
27
+ });
28
+ });
29
+ var LazyBodyContainerViewTeams = /*#__PURE__*/lazy(function () {
30
+ return import('./BodyContainerViewTeams').then(function (module) {
31
+ return {
32
+ "default": module.BodyContainerViewTeams
33
+ };
34
+ });
35
+ });
36
+ var BodyContainerViewUsers = function BodyContainerViewUsers() {
37
+ var _useUsersQuery = useUsersQuery(),
38
+ users = _useUsersQuery.users,
39
+ handleGetUsers = _useUsersQuery.handleGetUsers,
40
+ currentPage = _useUsersQuery.currentPage;
41
+ var _useUsersEditPosition = useUsersEditPositions(),
42
+ hasEditPositions = _useUsersEditPosition.hasEditPositions,
43
+ handleSetUsersToEditPositions = _useUsersEditPosition.handleSetUsersToEditPositions;
44
+ var _useUnblockUser = useUnblockUser(),
45
+ handleUnblockUser = _useUnblockUser.handleUnblockUser;
46
+ var _useState = useState(false),
47
+ _useState2 = _slicedToArray(_useState, 2),
48
+ showModalBlockedUser = _useState2[0],
49
+ setShowModalBlockedUser = _useState2[1];
50
+ var _useState3 = useState(null),
51
+ _useState4 = _slicedToArray(_useState3, 2),
52
+ userBlocked = _useState4[0],
53
+ setUserBlocked = _useState4[1];
54
+ var handleSelectOption = useCallback(function (option, user, userIndexPositionToEdit) {
55
+ if (option.id === 1) {
56
+ setUserBlocked(_objectSpread(_objectSpread({}, user), {}, {
57
+ userIndexPositionToEdit: userIndexPositionToEdit
58
+ }));
59
+ setShowModalBlockedUser(true);
60
+ return;
61
+ }
62
+ if (option.id === 2) {
63
+ window.location.href = "/users/".concat(user.id, "/edit");
64
+ return;
65
+ }
66
+ if (option.id === 3) {
67
+ window.location.href = "/users/".concat(user.id, "/delete");
68
+ }
69
+ }, []);
70
+ var handleAction = function handleAction(action, userInfoToSend) {
71
+ if (action === 'cancel') {
72
+ setShowModalBlockedUser(false);
73
+ setUserBlocked(null);
74
+ return;
75
+ }
76
+ if (action === 'unlock') {
77
+ handleUnblockUser(userInfoToSend, function () {
78
+ handleGetUsers({
79
+ page: currentPage
80
+ });
81
+ });
82
+ }
83
+ setShowModalBlockedUser(false);
84
+ };
85
+ return /*#__PURE__*/_jsxs(_Fragment, {
86
+ children: [showModalBlockedUser && /*#__PURE__*/_jsx(Suspense, {
87
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
88
+ children: /*#__PURE__*/_jsx(LazyModalBlockedUser, {
89
+ user: userBlocked,
90
+ handleAction: handleAction
91
+ })
92
+ }), /*#__PURE__*/_jsx(LayoutBodyUser, {
93
+ children: users !== null && users !== void 0 && users.length ? users.map(function (user, index) {
94
+ return /*#__PURE__*/_jsx(RowComponent, {
95
+ id: user.id.toString(),
96
+ handleSelectOption: handleSelectOption,
97
+ user: user,
98
+ hasEditPositions: hasEditPositions,
99
+ handleSetUsersToEditPositions: handleSetUsersToEditPositions,
100
+ userIndexPositionToEdit: index
101
+ }, user.id);
102
+ }) : /*#__PURE__*/_jsx(Suspense, {
103
+ fallback: null,
104
+ children: /*#__PURE__*/_jsx(LazyEmptyUserComponent, {})
105
+ })
106
+ })]
107
+ });
108
+ };
109
+ var BodyContainerViewPositions = function BodyContainerViewPositions() {
110
+ return null;
111
+ };
112
+ var BodyContainerViewLeaves = function BodyContainerViewLeaves() {
113
+ return null;
114
+ };
115
+ var BodyContainerByView = {
116
+ users: BodyContainerViewUsers,
117
+ teams: LazyBodyContainerViewTeams,
118
+ positions: BodyContainerViewPositions,
119
+ leaves: BodyContainerViewLeaves
120
+ };
121
+ export var BodyContainer = /*#__PURE__*/memo(function () {
122
+ var _useUsersView = useUsersView(),
123
+ view = _useUsersView.view;
124
+ var BodyContainerView = BodyContainerByView[view];
125
+ return /*#__PURE__*/_jsx(Suspense, {
126
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
127
+ children: /*#__PURE__*/_jsx(BodyContainerView, {})
128
+ });
129
+ });
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsIm1lbW8iLCJ1c2VTdGF0ZSIsImxhenkiLCJTdXNwZW5zZSIsIlJvd0NvbXBvbmVudCIsInVzZVVzZXJzRWRpdFBvc2l0aW9ucyIsInVzZVVzZXJzUXVlcnkiLCJ1c2VVc2Vyc1ZpZXciLCJ1c2VVbmJsb2NrVXNlciIsIkxvYWRlckNvbXBvbmVudCIsIkxheW91dEJvZHlVc2VyIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiTGF6eUVtcHR5VXNlckNvbXBvbmVudCIsInRoZW4iLCJtb2R1bGUiLCJFbXB0eVVzZXJDb21wb25lbnQiLCJMYXp5TW9kYWxCbG9ja2VkVXNlciIsIk1vZGFsQmxvY2tlZFVzZXIiLCJMYXp5Qm9keUNvbnRhaW5lclZpZXdUZWFtcyIsIkJvZHlDb250YWluZXJWaWV3VGVhbXMiLCJCb2R5Q29udGFpbmVyVmlld1VzZXJzIiwiX3VzZVVzZXJzUXVlcnkiLCJ1c2VycyIsImhhbmRsZUdldFVzZXJzIiwiY3VycmVudFBhZ2UiLCJfdXNlVXNlcnNFZGl0UG9zaXRpb24iLCJoYXNFZGl0UG9zaXRpb25zIiwiaGFuZGxlU2V0VXNlcnNUb0VkaXRQb3NpdGlvbnMiLCJfdXNlVW5ibG9ja1VzZXIiLCJoYW5kbGVVbmJsb2NrVXNlciIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNob3dNb2RhbEJsb2NrZWRVc2VyIiwic2V0U2hvd01vZGFsQmxvY2tlZFVzZXIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInVzZXJCbG9ja2VkIiwic2V0VXNlckJsb2NrZWQiLCJoYW5kbGVTZWxlY3RPcHRpb24iLCJvcHRpb24iLCJ1c2VyIiwidXNlckluZGV4UG9zaXRpb25Ub0VkaXQiLCJpZCIsIl9vYmplY3RTcHJlYWQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJjb25jYXQiLCJoYW5kbGVBY3Rpb24iLCJhY3Rpb24iLCJ1c2VySW5mb1RvU2VuZCIsInBhZ2UiLCJjaGlsZHJlbiIsImZhbGxiYWNrIiwibGVuZ3RoIiwibWFwIiwiaW5kZXgiLCJ0b1N0cmluZyIsIkJvZHlDb250YWluZXJWaWV3UG9zaXRpb25zIiwiQm9keUNvbnRhaW5lclZpZXdMZWF2ZXMiLCJCb2R5Q29udGFpbmVyQnlWaWV3IiwidGVhbXMiLCJwb3NpdGlvbnMiLCJsZWF2ZXMiLCJCb2R5Q29udGFpbmVyIiwiX3VzZVVzZXJzVmlldyIsInZpZXciLCJCb2R5Q29udGFpbmVyVmlldyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250YWluZXIvQm9keS9Cb2R5Q29udGFpbmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgbWVtbywgdXNlU3RhdGUsIGxhenksIFN1c3BlbnNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBSb3dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1RhYmxlL1JvdydcbmltcG9ydCB7IHVzZVVzZXJzLCB1c2VVc2Vyc0VkaXRQb3NpdGlvbnMsIHVzZVVzZXJzUXVlcnksIHVzZVVzZXJzVmlldyB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgdXNlVW5ibG9ja1VzZXIgfSBmcm9tICcuLi8uLi9ob29rcy91c2VVbmJsb2NrVXNlcidcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvTG9hZGluZy9Mb2FkaW5nQ29tcG9uZW50J1xuaW1wb3J0IHsgTGF5b3V0Qm9keVVzZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0xheW91dC9MYXlvdXQnXG5cbmNvbnN0IExhenlFbXB0eVVzZXJDb21wb25lbnQgPSBsYXp5KCgpID0+XG4gIGltcG9ydCgnLi4vLi4vY29tcG9uZW50cy9FbXB0eVVzZXIvRW1wdHlVc2VyJykudGhlbihtb2R1bGUgPT4gKHsgZGVmYXVsdDogbW9kdWxlLkVtcHR5VXNlckNvbXBvbmVudCB9KSlcbilcblxuY29uc3QgTGF6eU1vZGFsQmxvY2tlZFVzZXIgPSBsYXp5KCgpID0+XG4gIGltcG9ydCgnLi4vLi4vY29tcG9uZW50cy9Nb2RhbEJsb2NrZWRVc2VyJykudGhlbihtb2R1bGUgPT4gKHsgZGVmYXVsdDogbW9kdWxlLk1vZGFsQmxvY2tlZFVzZXIgfSkpXG4pXG5cbmNvbnN0IExhenlCb2R5Q29udGFpbmVyVmlld1RlYW1zID0gbGF6eSgoKSA9PlxuICBpbXBvcnQoJy4vQm9keUNvbnRhaW5lclZpZXdUZWFtcycpLnRoZW4obW9kdWxlID0+ICh7IGRlZmF1bHQ6IG1vZHVsZS5Cb2R5Q29udGFpbmVyVmlld1RlYW1zIH0pKVxuKVxuXG5jb25zdCBCb2R5Q29udGFpbmVyVmlld1VzZXJzID0gKCkgPT4ge1xuICBjb25zdCB7IHVzZXJzLCBoYW5kbGVHZXRVc2VycywgY3VycmVudFBhZ2UgfSA9IHVzZVVzZXJzUXVlcnkoKVxuICBjb25zdCB7IGhhc0VkaXRQb3NpdGlvbnMsIGhhbmRsZVNldFVzZXJzVG9FZGl0UG9zaXRpb25zIH0gPSB1c2VVc2Vyc0VkaXRQb3NpdGlvbnMoKVxuICBjb25zdCB7IGhhbmRsZVVuYmxvY2tVc2VyIH0gPSB1c2VVbmJsb2NrVXNlcigpXG4gIGNvbnN0IFtzaG93TW9kYWxCbG9ja2VkVXNlciwgc2V0U2hvd01vZGFsQmxvY2tlZFVzZXJdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt1c2VyQmxvY2tlZCwgc2V0VXNlckJsb2NrZWRdID0gdXNlU3RhdGU8YW55PihudWxsKVxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VDYWxsYmFjayhcbiAgICAob3B0aW9uOiB7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfSwgdXNlcjogYW55LCB1c2VySW5kZXhQb3NpdGlvblRvRWRpdDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAob3B0aW9uLmlkID09PSAxKSB7XG4gICAgICAgIHNldFVzZXJCbG9ja2VkKHsgLi4udXNlciwgdXNlckluZGV4UG9zaXRpb25Ub0VkaXQgfSlcbiAgICAgICAgc2V0U2hvd01vZGFsQmxvY2tlZFVzZXIodHJ1ZSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9uLmlkID09PSAyKSB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYC91c2Vycy8ke3VzZXIuaWR9L2VkaXRgXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKG9wdGlvbi5pZCA9PT0gMykge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAvdXNlcnMvJHt1c2VyLmlkfS9kZWxldGVgXG4gICAgICB9XG4gICAgfSxcbiAgICBbXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQWN0aW9uID0gKGFjdGlvbjogc3RyaW5nLCB1c2VySW5mb1RvU2VuZDogYW55KSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgIHNldFNob3dNb2RhbEJsb2NrZWRVc2VyKGZhbHNlKVxuICAgICAgc2V0VXNlckJsb2NrZWQobnVsbClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAoYWN0aW9uID09PSAndW5sb2NrJykge1xuICAgICAgaGFuZGxlVW5ibG9ja1VzZXIodXNlckluZm9Ub1NlbmQsICgpID0+IHtcbiAgICAgICAgaGFuZGxlR2V0VXNlcnMoeyBwYWdlOiBjdXJyZW50UGFnZSB9KVxuICAgICAgfSlcbiAgICB9XG4gICAgc2V0U2hvd01vZGFsQmxvY2tlZFVzZXIoZmFsc2UpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7c2hvd01vZGFsQmxvY2tlZFVzZXIgJiYgKFxuICAgICAgICA8U3VzcGVuc2UgZmFsbGJhY2s9ezxMb2FkZXJDb21wb25lbnQgLz59PlxuICAgICAgICAgIDxMYXp5TW9kYWxCbG9ja2VkVXNlciB1c2VyPXt1c2VyQmxvY2tlZH0gaGFuZGxlQWN0aW9uPXtoYW5kbGVBY3Rpb259IC8+XG4gICAgICAgIDwvU3VzcGVuc2U+XG4gICAgICApfVxuICAgICAgPExheW91dEJvZHlVc2VyPlxuICAgICAgICB7dXNlcnM/Lmxlbmd0aCA/IChcbiAgICAgICAgICB1c2Vycy5tYXAoKHVzZXIsIGluZGV4OiBudW1iZXIpID0+IChcbiAgICAgICAgICAgIDxSb3dDb21wb25lbnRcbiAgICAgICAgICAgICAga2V5PXt1c2VyLmlkfVxuICAgICAgICAgICAgICBpZD17dXNlci5pZC50b1N0cmluZygpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn1cbiAgICAgICAgICAgICAgdXNlcj17dXNlcn1cbiAgICAgICAgICAgICAgaGFzRWRpdFBvc2l0aW9ucz17aGFzRWRpdFBvc2l0aW9uc31cbiAgICAgICAgICAgICAgaGFuZGxlU2V0VXNlcnNUb0VkaXRQb3NpdGlvbnM9e2hhbmRsZVNldFVzZXJzVG9FZGl0UG9zaXRpb25zfVxuICAgICAgICAgICAgICB1c2VySW5kZXhQb3NpdGlvblRvRWRpdD17aW5kZXh9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpXG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFN1c3BlbnNlIGZhbGxiYWNrPXtudWxsfT5cbiAgICAgICAgICAgIDxMYXp5RW1wdHlVc2VyQ29tcG9uZW50IC8+XG4gICAgICAgICAgPC9TdXNwZW5zZT5cbiAgICAgICAgKX1cbiAgICAgIDwvTGF5b3V0Qm9keVVzZXI+XG4gICAgPC8+XG4gIClcbn1cblxuY29uc3QgQm9keUNvbnRhaW5lclZpZXdQb3NpdGlvbnMgPSAoKSA9PiB7XG4gIHJldHVybiBudWxsXG59XG5cbmNvbnN0IEJvZHlDb250YWluZXJWaWV3TGVhdmVzID0gKCkgPT4ge1xuICByZXR1cm4gbnVsbFxufVxuXG5jb25zdCBCb2R5Q29udGFpbmVyQnlWaWV3ID0ge1xuICB1c2VyczogQm9keUNvbnRhaW5lclZpZXdVc2VycyxcbiAgdGVhbXM6IExhenlCb2R5Q29udGFpbmVyVmlld1RlYW1zLFxuICBwb3NpdGlvbnM6IEJvZHlDb250YWluZXJWaWV3UG9zaXRpb25zLFxuICBsZWF2ZXM6IEJvZHlDb250YWluZXJWaWV3TGVhdmVzLFxufVxuXG5leHBvcnQgY29uc3QgQm9keUNvbnRhaW5lciA9IG1lbW8oKCkgPT4ge1xuICBjb25zdCB7IHZpZXcgfSA9IHVzZVVzZXJzVmlldygpXG4gIGNvbnN0IEJvZHlDb250YWluZXJWaWV3ID0gQm9keUNvbnRhaW5lckJ5Vmlld1t2aWV3XVxuICByZXR1cm4gKFxuICAgIDxTdXNwZW5zZSBmYWxsYmFjaz17PExvYWRlckNvbXBvbmVudCAvPn0+XG4gICAgICA8Qm9keUNvbnRhaW5lclZpZXcgLz5cbiAgICA8L1N1c3BlbnNlPlxuICApXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsV0FBVyxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUNuRSxTQUFTQyxZQUFZLFFBQVEsNEJBQTRCO0FBQ3pELFNBQW1CQyxxQkFBcUIsRUFBRUMsYUFBYSxFQUFFQyxZQUFZLFFBQVEsNEJBQTRCO0FBQ3pHLFNBQVNDLGNBQWMsUUFBUSw0QkFBNEI7QUFDM0QsU0FBU0MsZUFBZSxRQUFRLDJDQUEyQztBQUMzRSxTQUFTQyxjQUFjLFFBQVEsZ0NBQWdDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLFFBQUEsSUFBQUMsU0FBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFFL0QsSUFBTUMsc0JBQXNCLGdCQUFHZixJQUFJLENBQUM7RUFBQSxPQUNsQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQ2dCLElBQUksQ0FBQyxV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
@@ -0,0 +1,216 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import { useState, useEffect, useCallback, lazy, Suspense } from 'react';
3
+ import { useAssignedWorkspacesFromHost } from '../../hooks/useAssignedWorkspacesFromHost';
4
+ import { TeamRow } from '../../components/Table/TeamRow/TeamRow';
5
+ import { useTeams } from '../../context/TeamsContext';
6
+ import { LoaderComponent } from '../../components/Loading/LoadingComponent';
7
+ import { useCreateTeam } from '../../hooks/useCreateTeams';
8
+ import { useUpdateTeam } from '../../hooks/useUpdateTeam';
9
+ import { useAssignUserToTeam } from '../../hooks/useAssignUserToTeam';
10
+ import { useUnassignUserFromTeam } from '../../hooks/useUnassignUserFromTeam';
11
+ import { useDeleteTeam } from '../../hooks/useDeleteTeam';
12
+ import { isCorWorkspacesFeatureEnabled } from '../../utils/isCorWorkspacesFeatureEnabled';
13
+ import { EmptyStateTeams } from '../../components/EmptyStateTeams';
14
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
15
+ var LazyTeamDetailsModal = /*#__PURE__*/lazy(function () {
16
+ return import('../../components/TeamDetailsModal').then(function (module) {
17
+ return {
18
+ "default": module.TeamDetailsModal
19
+ };
20
+ });
21
+ });
22
+ var LazyDeleteTeamModal = /*#__PURE__*/lazy(function () {
23
+ return import('../../components/DeleteTeamModal').then(function (module) {
24
+ return {
25
+ "default": module.DeleteTeamModal
26
+ };
27
+ });
28
+ });
29
+ var mockMembersList = [{
30
+ id: 1,
31
+ firstName: 'User 1',
32
+ lastName: 'Apellido 1'
33
+ }, {
34
+ id: 2,
35
+ firstName: 'User 2',
36
+ lastName: 'Apellido 2'
37
+ }, {
38
+ id: 3,
39
+ firstName: 'User 3',
40
+ lastName: 'Apellido 3'
41
+ }];
42
+ export var BodyContainerViewTeams = function BodyContainerViewTeams() {
43
+ var _useTeams = useTeams(),
44
+ teams = _useTeams.teams;
45
+ var _useCreateTeam = useCreateTeam(),
46
+ fetchCreateTeam = _useCreateTeam.fetchCreateTeam;
47
+ var _useUpdateTeam = useUpdateTeam(),
48
+ updateTeam = _useUpdateTeam.updateTeam;
49
+ var _useAssignUserToTeam = useAssignUserToTeam(),
50
+ assignUserToTeam = _useAssignUserToTeam.assignUserToTeam;
51
+ var _useUnassignUserFromT = useUnassignUserFromTeam(),
52
+ unassignUserFromTeam = _useUnassignUserFromT.unassignUserFromTeam;
53
+ var _useDeleteTeam = useDeleteTeam(),
54
+ deleteTeam = _useDeleteTeam.deleteTeam;
55
+ var _useState = useState(null),
56
+ _useState2 = _slicedToArray(_useState, 2),
57
+ selectedTeam = _useState2[0],
58
+ setSelectedTeam = _useState2[1];
59
+ var _useState3 = useState(false),
60
+ _useState4 = _slicedToArray(_useState3, 2),
61
+ isModalOpen = _useState4[0],
62
+ setIsModalOpen = _useState4[1];
63
+ var _useState5 = useState('view'),
64
+ _useState6 = _slicedToArray(_useState5, 2),
65
+ modalMode = _useState6[0],
66
+ setModalMode = _useState6[1];
67
+ var _useState7 = useState(null),
68
+ _useState8 = _slicedToArray(_useState7, 2),
69
+ teamToDelete = _useState8[0],
70
+ setTeamToDelete = _useState8[1];
71
+ var _useState9 = useState(false),
72
+ _useState0 = _slicedToArray(_useState9, 2),
73
+ isDeleteModalOpen = _useState0[0],
74
+ setIsDeleteModalOpen = _useState0[1];
75
+ var workspacesFeatureEnabled = isCorWorkspacesFeatureEnabled();
76
+ var _useAssignedWorkspace = useAssignedWorkspacesFromHost(workspacesFeatureEnabled),
77
+ workspacesList = _useAssignedWorkspace.workspacesList,
78
+ handleGetWorkspaces = _useAssignedWorkspace.handleGetWorkspaces;
79
+ useEffect(function () {
80
+ if (isModalOpen && workspacesFeatureEnabled) {
81
+ handleGetWorkspaces({
82
+ page: 1
83
+ });
84
+ }
85
+ }, [isModalOpen, workspacesFeatureEnabled, handleGetWorkspaces]);
86
+ var handleShowTeamDetails = function handleShowTeamDetails(teamId) {
87
+ var team = teams.find(function (t) {
88
+ return t.id === teamId;
89
+ });
90
+ if (team) {
91
+ setSelectedTeam(team);
92
+ setModalMode('view');
93
+ setIsModalOpen(true);
94
+ }
95
+ };
96
+ var handleCreateTeam = useCallback(function () {
97
+ setSelectedTeam(null);
98
+ setModalMode('create');
99
+ setIsModalOpen(true);
100
+ }, []);
101
+ useEffect(function () {
102
+ var handleCreateTeamEvent = function handleCreateTeamEvent() {
103
+ handleCreateTeam();
104
+ };
105
+ window.addEventListener('createTeam', handleCreateTeamEvent);
106
+ return function () {
107
+ window.removeEventListener('createTeam', handleCreateTeamEvent);
108
+ };
109
+ }, [handleCreateTeam]);
110
+ var handleCloseModal = function handleCloseModal() {
111
+ setIsModalOpen(false);
112
+ setSelectedTeam(null);
113
+ setModalMode('view');
114
+ };
115
+ var handleEditTeam = function handleEditTeam(formData) {
116
+ if (!selectedTeam) return;
117
+ var fields = {
118
+ id: +selectedTeam.id,
119
+ name: formData.name,
120
+ description: formData.description
121
+ };
122
+ if (window.hasWorkspacesFeature && formData.workspace) {
123
+ fields.workspaceId = formData.workspace.id;
124
+ }
125
+ updateTeam(fields);
126
+ handleCloseModal();
127
+ };
128
+ var handleCreateTeamSubmit = function handleCreateTeamSubmit(formData) {
129
+ var fields = {
130
+ name: formData.name,
131
+ // users: formData.members.map(member => member.id), TODO: Va en la segunda version
132
+ description: formData.description
133
+ };
134
+ if (window.hasWorkspacesFeature && formData.workspace) {
135
+ fields.workspaceId = formData.workspace.id;
136
+ }
137
+ fetchCreateTeam(fields);
138
+ handleCloseModal();
139
+ };
140
+ var handleEditTeamFromMenu = function handleEditTeamFromMenu(teamId) {
141
+ var team = teams.find(function (t) {
142
+ return t.id === teamId;
143
+ });
144
+ if (team) {
145
+ setSelectedTeam(team);
146
+ setModalMode('edit');
147
+ setIsModalOpen(true);
148
+ }
149
+ };
150
+ var handleDeleteTeam = function handleDeleteTeam(teamId) {
151
+ var team = teams.find(function (t) {
152
+ return t.id === teamId;
153
+ });
154
+ if (team) {
155
+ setTeamToDelete(team);
156
+ setIsDeleteModalOpen(true);
157
+ }
158
+ };
159
+ var handleCloseDeleteModal = function handleCloseDeleteModal() {
160
+ setIsDeleteModalOpen(false);
161
+ setTeamToDelete(null);
162
+ };
163
+ var handleConfirmDelete = function handleConfirmDelete(deleteFromProjects) {
164
+ if (teamToDelete) {
165
+ deleteTeam(teamToDelete.id, deleteFromProjects);
166
+ }
167
+ handleCloseDeleteModal();
168
+ };
169
+ var handleAddUser = function handleAddUser(teamId, userId, giveAccessToAllProjects) {
170
+ assignUserToTeam({
171
+ setUserTeamProject: giveAccessToAllProjects,
172
+ userId: userId,
173
+ teamId: teamId
174
+ });
175
+ };
176
+ var handleRemoveUser = function handleRemoveUser(teamId, userId, deleteFromProjects) {
177
+ unassignUserFromTeam({
178
+ deleteFromProjects: deleteFromProjects,
179
+ userId: userId,
180
+ teamId: teamId
181
+ });
182
+ };
183
+ return /*#__PURE__*/_jsxs(_Fragment, {
184
+ children: [teams.length > 0 ? /*#__PURE__*/_jsx(TeamRow, {
185
+ teams: teams,
186
+ handleShowTeamDetails: handleShowTeamDetails,
187
+ handleDeleteTeam: handleDeleteTeam,
188
+ handleEditTeam: handleEditTeamFromMenu,
189
+ handleRemoveUser: handleRemoveUser,
190
+ handleAddUser: handleAddUser
191
+ }) : /*#__PURE__*/_jsx(EmptyStateTeams, {
192
+ clickCreateTeam: handleCreateTeam
193
+ }), isModalOpen && /*#__PURE__*/_jsx(Suspense, {
194
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
195
+ children: /*#__PURE__*/_jsx(LazyTeamDetailsModal, {
196
+ team: selectedTeam,
197
+ isOpen: isModalOpen,
198
+ onClose: handleCloseModal,
199
+ onEdit: handleEditTeam,
200
+ onCreate: handleCreateTeamSubmit,
201
+ mode: modalMode,
202
+ workspacesList: workspacesList,
203
+ membersList: mockMembersList
204
+ })
205
+ }), isDeleteModalOpen && /*#__PURE__*/_jsx(Suspense, {
206
+ fallback: /*#__PURE__*/_jsx(LoaderComponent, {}),
207
+ children: /*#__PURE__*/_jsx(LazyDeleteTeamModal, {
208
+ team: teamToDelete,
209
+ isOpen: isDeleteModalOpen,
210
+ onClose: handleCloseDeleteModal,
211
+ onConfirm: handleConfirmDelete
212
+ })
213
+ })]
214
+ });
215
+ };
216
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUNhbGxiYWNrIiwibGF6eSIsIlN1c3BlbnNlIiwidXNlQXNzaWduZWRXb3Jrc3BhY2VzRnJvbUhvc3QiLCJUZWFtUm93IiwidXNlVGVhbXMiLCJMb2FkZXJDb21wb25lbnQiLCJ1c2VDcmVhdGVUZWFtIiwidXNlVXBkYXRlVGVhbSIsInVzZUFzc2lnblVzZXJUb1RlYW0iLCJ1c2VVbmFzc2lnblVzZXJGcm9tVGVhbSIsInVzZURlbGV0ZVRlYW0iLCJpc0NvcldvcmtzcGFjZXNGZWF0dXJlRW5hYmxlZCIsIkVtcHR5U3RhdGVUZWFtcyIsImpzeCIsIl9qc3giLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsImpzeHMiLCJfanN4cyIsIkxhenlUZWFtRGV0YWlsc01vZGFsIiwidGhlbiIsIm1vZHVsZSIsIlRlYW1EZXRhaWxzTW9kYWwiLCJMYXp5RGVsZXRlVGVhbU1vZGFsIiwiRGVsZXRlVGVhbU1vZGFsIiwibW9ja01lbWJlcnNMaXN0IiwiaWQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsIkJvZHlDb250YWluZXJWaWV3VGVhbXMiLCJfdXNlVGVhbXMiLCJ0ZWFtcyIsIl91c2VDcmVhdGVUZWFtIiwiZmV0Y2hDcmVhdGVUZWFtIiwiX3VzZVVwZGF0ZVRlYW0iLCJ1cGRhdGVUZWFtIiwiX3VzZUFzc2lnblVzZXJUb1RlYW0iLCJhc3NpZ25Vc2VyVG9UZWFtIiwiX3VzZVVuYXNzaWduVXNlckZyb21UIiwidW5hc3NpZ25Vc2VyRnJvbVRlYW0iLCJfdXNlRGVsZXRlVGVhbSIsImRlbGV0ZVRlYW0iLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWxlY3RlZFRlYW0iLCJzZXRTZWxlY3RlZFRlYW0iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzTW9kYWxPcGVuIiwic2V0SXNNb2RhbE9wZW4iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsIm1vZGFsTW9kZSIsInNldE1vZGFsTW9kZSIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidGVhbVRvRGVsZXRlIiwic2V0VGVhbVRvRGVsZXRlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJpc0RlbGV0ZU1vZGFsT3BlbiIsInNldElzRGVsZXRlTW9kYWxPcGVuIiwid29ya3NwYWNlc0ZlYXR1cmVFbmFibGVkIiwiX3VzZUFzc2lnbmVkV29ya3NwYWNlIiwid29ya3NwYWNlc0xpc3QiLCJoYW5kbGVHZXRXb3Jrc3BhY2VzIiwicGFnZSIsImhhbmRsZVNob3dUZWFtRGV0YWlscyIsInRlYW1JZCIsInRlYW0iLCJmaW5kIiwidCIsImhhbmRsZUNyZWF0ZVRlYW0iLCJoYW5kbGVDcmVhdGVUZWFtRXZlbnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUNsb3NlTW9kYWwiLCJoYW5kbGVFZGl0VGVhbSIsImZvcm1EYXRhIiwiZmllbGRzIiwibmFtZSIsImRlc2NyaXB0aW9uIiwiaGFzV29ya3NwYWNlc0ZlYXR1cmUiLCJ3b3Jrc3BhY2UiLCJ3b3Jrc3BhY2VJZCIsImhhbmRsZUNyZWF0ZVRlYW1TdWJtaXQiLCJoYW5kbGVFZGl0VGVhbUZyb21NZW51IiwiaGFuZGxlRGVsZXRlVGVhbSIsImhhbmRsZUNsb3NlRGVsZXRlTW9kYWwiLCJoYW5kbGVDb25maXJtRGVsZXRlIiwiZGVsZXRlRnJvbVByb2plY3RzIiwiaGFuZGxlQWRkVXNlciIsInVzZXJJZCIsImdpdmVBY2Nlc3NUb0FsbFByb2plY3RzIiwic2V0VXNlclRlYW1Qcm9qZWN0IiwiaGFuZGxlUmVtb3ZlVXNlciIsImNoaWxkcmVuIiwibGVuZ3RoIiwiY2xpY2tDcmVhdGVUZWFtIiwiZmFsbGJhY2siLCJpc09wZW4iLCJvbkNsb3NlIiwib25FZGl0Iiwib25DcmVhdGUiLCJtb2RlIiwibWVtYmVyc0xpc3QiLCJvbkNvbmZpcm0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL0JvZHkvQm9keUNvbnRhaW5lclZpZXdUZWFtcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2ssIGxhenksIFN1c3BlbnNlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VBc3NpZ25lZFdvcmtzcGFjZXNGcm9tSG9zdCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUFzc2lnbmVkV29ya3NwYWNlc0Zyb21Ib3N0J1xuaW1wb3J0IHsgVGVhbVJvdyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVGFibGUvVGVhbVJvdy9UZWFtUm93J1xuaW1wb3J0IHR5cGUgeyBUZWFtLCBGb3JtRGF0YSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvVGVhbURldGFpbHNNb2RhbCdcbmltcG9ydCB7IHVzZVRlYW1zIH0gZnJvbSAnLi4vLi4vY29udGV4dC9UZWFtc0NvbnRleHQnXG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0xvYWRpbmcvTG9hZGluZ0NvbXBvbmVudCdcbmltcG9ydCB7IHVzZUNyZWF0ZVRlYW0gfSBmcm9tICcuLi8uLi9ob29rcy91c2VDcmVhdGVUZWFtcydcbmltcG9ydCB7IHVzZVVwZGF0ZVRlYW0gfSBmcm9tICcuLi8uLi9ob29rcy91c2VVcGRhdGVUZWFtJ1xuaW1wb3J0IHsgdXNlQXNzaWduVXNlclRvVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUFzc2lnblVzZXJUb1RlYW0nXG5pbXBvcnQgeyB1c2VVbmFzc2lnblVzZXJGcm9tVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVVuYXNzaWduVXNlckZyb21UZWFtJ1xuaW1wb3J0IHsgdXNlRGVsZXRlVGVhbSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURlbGV0ZVRlYW0nXG5pbXBvcnQgeyBpc0NvcldvcmtzcGFjZXNGZWF0dXJlRW5hYmxlZCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzQ29yV29ya3NwYWNlc0ZlYXR1cmVFbmFibGVkJ1xuaW1wb3J0IHsgRW1wdHlTdGF0ZVRlYW1zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9FbXB0eVN0YXRlVGVhbXMnXG5cbmNvbnN0IExhenlUZWFtRGV0YWlsc01vZGFsID0gbGF6eSgoKSA9PlxuICBpbXBvcnQoJy4uLy4uL2NvbXBvbmVudHMvVGVhbURldGFpbHNNb2RhbCcpLnRoZW4obW9kdWxlID0+ICh7IGRlZmF1bHQ6IG1vZHVsZS5UZWFtRGV0YWlsc01vZGFsIH0pKVxuKVxuXG5jb25zdCBMYXp5RGVsZXRlVGVhbU1vZGFsID0gbGF6eSgoKSA9PlxuICBpbXBvcnQoJy4uLy4uL2NvbXBvbmVudHMvRGVsZXRlVGVhbU1vZGFsJykudGhlbihtb2R1bGUgPT4gKHsgZGVmYXVsdDogbW9kdWxlLkRlbGV0ZVRlYW1Nb2RhbCB9KSlcbilcblxuY29uc3QgbW9ja01lbWJlcnNMaXN0ID0gW1xuICB7IGlkOiAxLCBmaXJzdE5hbWU6ICdVc2VyIDEnLCBsYXN0TmFtZTogJ0FwZWxsaWRvIDEnIH0sXG4gIHsgaWQ6IDIsIGZpcnN0TmFtZTogJ1VzZXIgMicsIGxhc3ROYW1lOiAnQXBlbGxpZG8gMicgfSxcbiAgeyBpZDogMywgZmlyc3ROYW1lOiAnVXNlciAzJywgbGFzdE5hbWU6ICdBcGVsbGlkbyAzJyB9LFxuXVxuXG5leHBvcnQgY29uc3QgQm9keUNvbnRhaW5lclZpZXdUZWFtcyA9ICgpID0+IHtcbiAgY29uc3QgeyB0ZWFtcyB9ID0gdXNlVGVhbXMoKVxuICBjb25zdCB7IGZldGNoQ3JlYXRlVGVhbSB9ID0gdXNlQ3JlYXRlVGVhbSgpXG4gIGNvbnN0IHsgdXBkYXRlVGVhbSB9ID0gdXNlVXBkYXRlVGVhbSgpXG4gIGNvbnN0IHsgYXNzaWduVXNlclRvVGVhbSB9ID0gdXNlQXNzaWduVXNlclRvVGVhbSgpXG4gIGNvbnN0IHsgdW5hc3NpZ25Vc2VyRnJvbVRlYW0gfSA9IHVzZVVuYXNzaWduVXNlckZyb21UZWFtKClcbiAgY29uc3QgeyBkZWxldGVUZWFtIH0gPSB1c2VEZWxldGVUZWFtKClcbiAgY29uc3QgW3NlbGVjdGVkVGVhbSwgc2V0U2VsZWN0ZWRUZWFtXSA9IHVzZVN0YXRlPFRlYW0gfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNNb2RhbE9wZW4sIHNldElzTW9kYWxPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxNb2RlLCBzZXRNb2RhbE1vZGVdID0gdXNlU3RhdGU8J3ZpZXcnIHwgJ2VkaXQnIHwgJ2NyZWF0ZSc+KCd2aWV3JylcbiAgY29uc3QgW3RlYW1Ub0RlbGV0ZSwgc2V0VGVhbVRvRGVsZXRlXSA9IHVzZVN0YXRlPFRlYW0gfCBudWxsPihudWxsKVxuICBjb25zdCBbaXNEZWxldGVNb2RhbE9wZW4sIHNldElzRGVsZXRlTW9kYWxPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHdvcmtzcGFjZXNGZWF0dXJlRW5hYmxlZCA9IGlzQ29yV29ya3NwYWNlc0ZlYXR1cmVFbmFibGVkKClcbiAgY29uc3QgeyB3b3Jrc3BhY2VzTGlzdCwgaGFuZGxlR2V0V29ya3NwYWNlcyB9ID0gdXNlQXNzaWduZWRXb3Jrc3BhY2VzRnJvbUhvc3Qod29ya3NwYWNlc0ZlYXR1cmVFbmFibGVkKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzTW9kYWxPcGVuICYmIHdvcmtzcGFjZXNGZWF0dXJlRW5hYmxlZCkge1xuICAgICAgaGFuZGxlR2V0V29ya3NwYWNlcyh7IHBhZ2U6IDEgfSlcbiAgICB9XG4gIH0sIFtpc01vZGFsT3Blbiwgd29ya3NwYWNlc0ZlYXR1cmVFbmFibGVkLCBoYW5kbGVHZXRXb3Jrc3BhY2VzXSlcblxuICBjb25zdCBoYW5kbGVTaG93VGVhbURldGFpbHMgPSAodGVhbUlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0ZWFtID0gdGVhbXMuZmluZCh0ID0+IHQuaWQgPT09IHRlYW1JZClcbiAgICBpZiAodGVhbSkge1xuICAgICAgc2V0U2VsZWN0ZWRUZWFtKHRlYW0pXG4gICAgICBzZXRNb2RhbE1vZGUoJ3ZpZXcnKVxuICAgICAgc2V0SXNNb2RhbE9wZW4odHJ1ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVDcmVhdGVUZWFtID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNlbGVjdGVkVGVhbShudWxsKVxuICAgIHNldE1vZGFsTW9kZSgnY3JlYXRlJylcbiAgICBzZXRJc01vZGFsT3Blbih0cnVlKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNyZWF0ZVRlYW1FdmVudCA9ICgpID0+IHtcbiAgICAgIGhhbmRsZUNyZWF0ZVRlYW0oKVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdjcmVhdGVUZWFtJywgaGFuZGxlQ3JlYXRlVGVhbUV2ZW50KVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdjcmVhdGVUZWFtJywgaGFuZGxlQ3JlYXRlVGVhbUV2ZW50KVxuICAgIH1cbiAgfSwgW2hhbmRsZUNyZWF0ZVRlYW1dKVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNNb2RhbE9wZW4oZmFsc2UpXG4gICAgc2V0U2VsZWN0ZWRUZWFtKG51bGwpXG4gICAgc2V0TW9kYWxNb2RlKCd2aWV3JylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRUZWFtID0gKGZvcm1EYXRhOiBGb3JtRGF0YSkgPT4ge1xuICAgIGlmICghc2VsZWN0ZWRUZWFtKSByZXR1cm5cblxuICAgIGNvbnN0IGZpZWxkczoge1xuICAgICAgaWQ6IG51bWJlclxuICAgICAgbmFtZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gICAgICB3b3Jrc3BhY2VJZD86IG51bWJlclxuICAgIH0gPSB7XG4gICAgICBpZDogK3NlbGVjdGVkVGVhbS5pZCxcbiAgICAgIG5hbWU6IGZvcm1EYXRhLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogZm9ybURhdGEuZGVzY3JpcHRpb24sXG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiBmb3JtRGF0YS53b3Jrc3BhY2UpIHtcbiAgICAgIGZpZWxkcy53b3Jrc3BhY2VJZCA9IGZvcm1EYXRhLndvcmtzcGFjZS5pZFxuICAgIH1cblxuICAgIHVwZGF0ZVRlYW0oZmllbGRzKVxuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRlVGVhbVN1Ym1pdCA9IChmb3JtRGF0YTogRm9ybURhdGEpID0+IHtcbiAgICBjb25zdCBmaWVsZHM6IHtcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgICAgd29ya3NwYWNlSWQ/OiBudW1iZXJcbiAgICB9ID0ge1xuICAgICAgbmFtZTogZm9ybURhdGEubmFtZSxcbiAgICAgIC8vIHVzZXJzOiBmb3JtRGF0YS5tZW1iZXJzLm1hcChtZW1iZXIgPT4gbWVtYmVyLmlkKSwgVE9ETzogVmEgZW4gbGEgc2VndW5kYSB2ZXJzaW9uXG4gICAgICBkZXNjcmlwdGlvbjogZm9ybURhdGEuZGVzY3JpcHRpb24sXG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiBmb3JtRGF0YS53b3Jrc3BhY2UpIHtcbiAgICAgIGZpZWxkcy53b3Jrc3BhY2VJZCA9IGZvcm1EYXRhLndvcmtzcGFjZS5pZFxuICAgIH1cbiAgICBmZXRjaENyZWF0ZVRlYW0oZmllbGRzKVxuICAgIGhhbmRsZUNsb3NlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRWRpdFRlYW1Gcm9tTWVudSA9ICh0ZWFtSWQ6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHRlYW0gPSB0ZWFtcy5maW5kKHQgPT4gdC5pZCA9PT0gdGVhbUlkKVxuICAgIGlmICh0ZWFtKSB7XG4gICAgICBzZXRTZWxlY3RlZFRlYW0odGVhbSlcbiAgICAgIHNldE1vZGFsTW9kZSgnZWRpdCcpXG4gICAgICBzZXRJc01vZGFsT3Blbih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZVRlYW0gPSAodGVhbUlkOiBudW1iZXIpID0+IHtcbiAgICBjb25zdCB0ZWFtID0gdGVhbXMuZmluZCh0ID0+IHQuaWQgPT09IHRlYW1JZClcbiAgICBpZiAodGVhbSkge1xuICAgICAgc2V0VGVhbVRvRGVsZXRlKHRlYW0pXG4gICAgICBzZXRJc0RlbGV0ZU1vZGFsT3Blbih0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlRGVsZXRlTW9kYWwgPSAoKSA9PiB7XG4gICAgc2V0SXNEZWxldGVNb2RhbE9wZW4oZmFsc2UpXG4gICAgc2V0VGVhbVRvRGVsZXRlKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtRGVsZXRlID0gKGRlbGV0ZUZyb21Qcm9qZWN0czogYm9vbGVhbikgPT4ge1xuICAgIGlmICh0ZWFtVG9EZWxldGUpIHtcbiAgICAgIGRlbGV0ZVRlYW0odGVhbVRvRGVsZXRlLmlkLCBkZWxldGVGcm9tUHJvamVjdHMpXG4gICAgfVxuICAgIGhhbmRsZUNsb3NlRGVsZXRlTW9kYWwoKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQWRkVXNlciA9ICh0ZWFtSWQ6IG51bWJlciwgdXNlcklkOiBudW1iZXIsIGdpdmVBY2Nlc3NUb0FsbFByb2plY3RzOiBib29sZWFuKSA9PiB7XG4gICAgYXNzaWduVXNlclRvVGVhbSh7XG4gICAgICBzZXRVc2VyVGVhbVByb2plY3Q6IGdpdmVBY2Nlc3NUb0FsbFByb2plY3RzLFxuICAgICAgdXNlcklkLFxuICAgICAgdGVhbUlkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVSZW1vdmVVc2VyID0gKHRlYW1JZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlciwgZGVsZXRlRnJvbVByb2plY3RzOiBib29sZWFuKSA9PiB7XG4gICAgdW5hc3NpZ25Vc2VyRnJvbVRlYW0oe1xuICAgICAgZGVsZXRlRnJvbVByb2plY3RzLFxuICAgICAgdXNlcklkLFxuICAgICAgdGVhbUlkLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7dGVhbXMubGVuZ3RoID4gMCA/IChcbiAgICAgICAgPFRlYW1Sb3dcbiAgICAgICAgICB0ZWFtcz17dGVhbXN9XG4gICAgICAgICAgaGFuZGxlU2hvd1RlYW1EZXRhaWxzPXtoYW5kbGVTaG93VGVhbURldGFpbHN9XG4gICAgICAgICAgaGFuZGxlRGVsZXRlVGVhbT17aGFuZGxlRGVsZXRlVGVhbX1cbiAgICAgICAgICBoYW5kbGVFZGl0VGVhbT17aGFuZGxlRWRpdFRlYW1Gcm9tTWVudX1cbiAgICAgICAgICBoYW5kbGVSZW1vdmVVc2VyPXtoYW5kbGVSZW1vdmVVc2VyfVxuICAgICAgICAgIGhhbmRsZUFkZFVzZXI9e2hhbmRsZUFkZFVzZXJ9XG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICA8RW1wdHlTdGF0ZVRlYW1zIGNsaWNrQ3JlYXRlVGVhbT17aGFuZGxlQ3JlYXRlVGVhbX0gLz5cbiAgICAgICl9XG4gICAgICB7aXNNb2RhbE9wZW4gJiYgKFxuICAgICAgICA8U3VzcGVuc2UgZmFsbGJhY2s9ezxMb2FkZXJDb21wb25lbnQgLz59PlxuICAgICAgICAgIDxMYXp5VGVhbURldGFpbHNNb2RhbFxuICAgICAgICAgICAgdGVhbT17c2VsZWN0ZWRUZWFtfVxuICAgICAgICAgICAgaXNPcGVuPXtpc01vZGFsT3Blbn1cbiAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlTW9kYWx9XG4gICAgICAgICAgICBvbkVkaXQ9e2hhbmRsZUVkaXRUZWFtfVxuICAgICAgICAgICAgb25DcmVhdGU9e2hhbmRsZUNyZWF0ZVRlYW1TdWJtaXR9XG4gICAgICAgICAgICBtb2RlPXttb2RhbE1vZGV9XG4gICAgICAgICAgICB3b3Jrc3BhY2VzTGlzdD17d29ya3NwYWNlc0xpc3R9XG4gICAgICAgICAgICBtZW1iZXJzTGlzdD17bW9ja01lbWJlcnNMaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3VzcGVuc2U+XG4gICAgICApfVxuICAgICAge2lzRGVsZXRlTW9kYWxPcGVuICYmIChcbiAgICAgICAgPFN1c3BlbnNlIGZhbGxiYWNrPXs8TG9hZGVyQ29tcG9uZW50IC8+fT5cbiAgICAgICAgICA8TGF6eURlbGV0ZVRlYW1Nb2RhbFxuICAgICAgICAgICAgdGVhbT17dGVhbVRvRGVsZXRlfVxuICAgICAgICAgICAgaXNPcGVuPXtpc0RlbGV0ZU1vZGFsT3Blbn1cbiAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlRGVsZXRlTW9kYWx9XG4gICAgICAgICAgICBvbkNvbmZpcm09e2hhbmRsZUNvbmZpcm1EZWxldGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TdXNwZW5zZT5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLElBQUksRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEUsU0FBU0MsNkJBQTZCLFFBQVEsMkNBQTJDO0FBQ3pGLFNBQVNDLE9BQU8sUUFBUSx3Q0FBd0M7QUFFaEUsU0FBU0MsUUFBUSxRQUFRLDRCQUE0QjtBQUNyRCxTQUFTQyxlQUFlLFFBQVEsMkNBQTJDO0FBQzNFLFNBQVNDLGFBQWEsUUFBUSw0QkFBNEI7QUFDMUQsU0FBU0MsYUFBYSxRQUFRLDJCQUEyQjtBQUN6RCxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBU0MsdUJBQXVCLFFBQVEscUNBQXFDO0FBQzdFLFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFDekQsU0FBU0MsNkJBQTZCLFFBQVEsMkNBQTJDO0FBQ3pGLFNBQVNDLGVBQWUsUUFBUSxrQ0FBa0M7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUVsRSxJQUFNQyxvQkFBb0IsZ0JBQUduQixJQUFJLENBQUM7RUFBQSxPQUNoQyxNQUFN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