@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,195 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import React, { useState, useRef, useEffect } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import pallete from '@projectcor/theme/lib/base/colors';
5
+ import { AvatarUser } from '@projectcor/cor-commons/lib/components/avatar-user';
6
+ import { Cross } from '@projectcor/icons/lib/components/Cross';
7
+ import { ChevronLeft } from '@projectcor/icons/lib/components/ChevronLeft';
8
+ import { ChevronRight } from '@projectcor/icons/lib/components/ChevronRight';
9
+ import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
10
+ import { AddUsers } from '../AddUsers';
11
+ import { AddMemberModal } from '../AddMemberModal';
12
+ import { RemoveMemberModal } from '../RemoveMemberModal';
13
+ import { SCURUserContainer, SCURUserAvatar, SCURRemoveIcon, SCURAddUsersWrapper, SCURSliderWrapper, SCURSliderContainer, SCURSliderContent, SCURNavButton } from './UsersRow.styles';
14
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
15
+ export var UsersRow = function UsersRow(_ref) {
16
+ var team = _ref.team,
17
+ onRemoveUser = _ref.onRemoveUser,
18
+ onAddUser = _ref.onAddUser;
19
+ var _useTranslation = useTranslation(),
20
+ t = _useTranslation.t;
21
+ var currentMembers = team.users.map(function (user) {
22
+ return {
23
+ id: user.id,
24
+ name: "".concat(user.firstName, " ").concat(user.lastName)
25
+ };
26
+ });
27
+ var _useState = useState(false),
28
+ _useState2 = _slicedToArray(_useState, 2),
29
+ isModalOpen = _useState2[0],
30
+ setIsModalOpen = _useState2[1];
31
+ var _useState3 = useState(null),
32
+ _useState4 = _slicedToArray(_useState3, 2),
33
+ pendingMembers = _useState4[0],
34
+ setPendingMembers = _useState4[1];
35
+ var _useState5 = useState(false),
36
+ _useState6 = _slicedToArray(_useState5, 2),
37
+ isRemoveModalOpen = _useState6[0],
38
+ setIsRemoveModalOpen = _useState6[1];
39
+ var _useState7 = useState(null),
40
+ _useState8 = _slicedToArray(_useState7, 2),
41
+ userToRemove = _useState8[0],
42
+ setUserToRemove = _useState8[1];
43
+ var _useState9 = useState(false),
44
+ _useState0 = _slicedToArray(_useState9, 2),
45
+ showLeftButton = _useState0[0],
46
+ setShowLeftButton = _useState0[1];
47
+ var _useState1 = useState(true),
48
+ _useState10 = _slicedToArray(_useState1, 2),
49
+ showRightButton = _useState10[0],
50
+ setShowRightButton = _useState10[1];
51
+ var sliderRef = useRef(null);
52
+ var handleAddMembers = function handleAddMembers(member) {
53
+ setPendingMembers(member);
54
+ setIsModalOpen(true);
55
+ };
56
+ var handleModalAccept = function handleModalAccept(giveAccessToAllProjects) {
57
+ if (pendingMembers) {
58
+ onAddUser(+team.id, pendingMembers.id, giveAccessToAllProjects);
59
+ setIsModalOpen(false);
60
+ setPendingMembers(null);
61
+ }
62
+ };
63
+ var handleModalClose = function handleModalClose() {
64
+ setIsModalOpen(false);
65
+ setPendingMembers(null);
66
+ };
67
+ var handleRemoveUser = function handleRemoveUser(e, userId) {
68
+ e.stopPropagation();
69
+ setUserToRemove(userId);
70
+ setIsRemoveModalOpen(true);
71
+ };
72
+ var handleRemoveModalAccept = function handleRemoveModalAccept(deleteFromProjects) {
73
+ if (userToRemove !== null) {
74
+ onRemoveUser(+team.id, userToRemove, deleteFromProjects);
75
+ }
76
+ setIsRemoveModalOpen(false);
77
+ setUserToRemove(null);
78
+ };
79
+ var handleRemoveModalClose = function handleRemoveModalClose() {
80
+ setIsRemoveModalOpen(false);
81
+ setUserToRemove(null);
82
+ };
83
+ var checkScrollButtons = function checkScrollButtons() {
84
+ if (sliderRef.current) {
85
+ var _sliderRef$current = sliderRef.current,
86
+ _scrollLeft = _sliderRef$current.scrollLeft,
87
+ scrollWidth = _sliderRef$current.scrollWidth,
88
+ clientWidth = _sliderRef$current.clientWidth;
89
+ setShowLeftButton(_scrollLeft > 0);
90
+ setShowRightButton(_scrollLeft < scrollWidth - (clientWidth + 20) - 1);
91
+ }
92
+ };
93
+ useEffect(function () {
94
+ // Esperar un momento para que el DOM se actualice
95
+ var timer = setTimeout(function () {
96
+ checkScrollButtons();
97
+ }, 0);
98
+ var slider = sliderRef.current;
99
+ if (slider) {
100
+ slider.addEventListener('scroll', checkScrollButtons);
101
+ return function () {
102
+ clearTimeout(timer);
103
+ slider.removeEventListener('scroll', checkScrollButtons);
104
+ };
105
+ }
106
+ return function () {
107
+ return clearTimeout(timer);
108
+ };
109
+ }, [team.users]);
110
+ var scrollLeft = function scrollLeft() {
111
+ if (sliderRef.current) {
112
+ var scrollAmount = 200;
113
+ sliderRef.current.scrollBy({
114
+ left: -scrollAmount,
115
+ behavior: 'smooth'
116
+ });
117
+ }
118
+ };
119
+ var scrollRight = function scrollRight() {
120
+ if (sliderRef.current) {
121
+ var scrollAmount = 200;
122
+ sliderRef.current.scrollBy({
123
+ left: scrollAmount,
124
+ behavior: 'smooth'
125
+ });
126
+ }
127
+ };
128
+ return /*#__PURE__*/_jsxs(_Fragment, {
129
+ children: [/*#__PURE__*/_jsxs(SCURSliderWrapper, {
130
+ children: [showLeftButton && /*#__PURE__*/_jsx(SCURNavButton, {
131
+ onClick: scrollLeft,
132
+ "aria-label": t('people.accessibility.scrollLeft'),
133
+ left: "-4px",
134
+ children: /*#__PURE__*/_jsx(ChevronLeft, {
135
+ width: "16px",
136
+ height: "16px",
137
+ color: pallete.grey[400]
138
+ })
139
+ }), /*#__PURE__*/_jsx(SCURSliderContainer, {
140
+ ref: sliderRef,
141
+ children: /*#__PURE__*/_jsx(SCURSliderContent, {
142
+ children: team.users.map(function (user) {
143
+ return /*#__PURE__*/_jsxs(SCURUserContainer, {
144
+ children: [/*#__PURE__*/_jsx(Tooltip, {
145
+ title: "".concat(user.firstName, " ").concat(user.lastName),
146
+ placement: "top",
147
+ children: /*#__PURE__*/_jsx(SCURUserAvatar, {
148
+ children: /*#__PURE__*/_jsx(AvatarUser, {
149
+ firstName: user.firstName,
150
+ lastName: user.lastName,
151
+ picture: user.picture
152
+ })
153
+ })
154
+ }), !window.hasWorkspacesFeature && /*#__PURE__*/_jsx(SCURRemoveIcon, {
155
+ onClick: function onClick(e) {
156
+ return handleRemoveUser(e, user.id);
157
+ },
158
+ role: "button",
159
+ tabIndex: 0,
160
+ children: /*#__PURE__*/_jsx(Cross, {
161
+ width: "11px",
162
+ height: "11px",
163
+ color: pallete.grey[400]
164
+ })
165
+ })]
166
+ }, user.id);
167
+ })
168
+ })
169
+ }), showRightButton && /*#__PURE__*/_jsx(SCURNavButton, {
170
+ onClick: scrollRight,
171
+ "aria-label": t('people.accessibility.scrollRight'),
172
+ right: "-4px",
173
+ children: /*#__PURE__*/_jsx(ChevronRight, {
174
+ width: "16px",
175
+ height: "16px",
176
+ color: pallete.grey[400]
177
+ })
178
+ })]
179
+ }), !window.hasWorkspacesFeature && /*#__PURE__*/_jsx(SCURAddUsersWrapper, {
180
+ children: /*#__PURE__*/_jsx(AddUsers, {
181
+ currentMembers: currentMembers,
182
+ onAddMembers: handleAddMembers
183
+ })
184
+ }), /*#__PURE__*/_jsx(AddMemberModal, {
185
+ isOpen: isModalOpen,
186
+ onClose: handleModalClose,
187
+ onAccept: handleModalAccept
188
+ }), /*#__PURE__*/_jsx(RemoveMemberModal, {
189
+ isOpen: isRemoveModalOpen,
190
+ onClose: handleRemoveModalClose,
191
+ onAccept: handleRemoveModalAccept
192
+ })]
193
+ });
194
+ };
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlUmVmIiwidXNlRWZmZWN0IiwidXNlVHJhbnNsYXRpb24iLCJwYWxsZXRlIiwiQXZhdGFyVXNlciIsIkNyb3NzIiwiQ2hldnJvbkxlZnQiLCJDaGV2cm9uUmlnaHQiLCJUb29sdGlwIiwiQWRkVXNlcnMiLCJBZGRNZW1iZXJNb2RhbCIsIlJlbW92ZU1lbWJlck1vZGFsIiwiU0NVUlVzZXJDb250YWluZXIiLCJTQ1VSVXNlckF2YXRhciIsIlNDVVJSZW1vdmVJY29uIiwiU0NVUkFkZFVzZXJzV3JhcHBlciIsIlNDVVJTbGlkZXJXcmFwcGVyIiwiU0NVUlNsaWRlckNvbnRhaW5lciIsIlNDVVJTbGlkZXJDb250ZW50IiwiU0NVUk5hdkJ1dHRvbiIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIlVzZXJzUm93IiwiX3JlZiIsInRlYW0iLCJvblJlbW92ZVVzZXIiLCJvbkFkZFVzZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiY3VycmVudE1lbWJlcnMiLCJ1c2VycyIsIm1hcCIsInVzZXIiLCJpZCIsIm5hbWUiLCJjb25jYXQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlzTW9kYWxPcGVuIiwic2V0SXNNb2RhbE9wZW4iLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInBlbmRpbmdNZW1iZXJzIiwic2V0UGVuZGluZ01lbWJlcnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzUmVtb3ZlTW9kYWxPcGVuIiwic2V0SXNSZW1vdmVNb2RhbE9wZW4iLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInVzZXJUb1JlbW92ZSIsInNldFVzZXJUb1JlbW92ZSIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwic2hvd0xlZnRCdXR0b24iLCJzZXRTaG93TGVmdEJ1dHRvbiIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNob3dSaWdodEJ1dHRvbiIsInNldFNob3dSaWdodEJ1dHRvbiIsInNsaWRlclJlZiIsImhhbmRsZUFkZE1lbWJlcnMiLCJtZW1iZXIiLCJoYW5kbGVNb2RhbEFjY2VwdCIsImdpdmVBY2Nlc3NUb0FsbFByb2plY3RzIiwiaGFuZGxlTW9kYWxDbG9zZSIsImhhbmRsZVJlbW92ZVVzZXIiLCJlIiwidXNlcklkIiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlUmVtb3ZlTW9kYWxBY2NlcHQiLCJkZWxldGVGcm9tUHJvamVjdHMiLCJoYW5kbGVSZW1vdmVNb2RhbENsb3NlIiwiY2hlY2tTY3JvbGxCdXR0b25zIiwiY3VycmVudCIsIl9zbGlkZXJSZWYkY3VycmVudCIsInNjcm9sbExlZnQiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwidGltZXIiLCJzZXRUaW1lb3V0Iiwic2xpZGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNsZWFyVGltZW91dCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJzY3JvbGxBbW91bnQiLCJzY3JvbGxCeSIsImxlZnQiLCJiZWhhdmlvciIsInNjcm9sbFJpZ2h0IiwiY2hpbGRyZW4iLCJvbkNsaWNrIiwid2lkdGgiLCJoZWlnaHQiLCJjb2xvciIsImdyZXkiLCJyZWYiLCJ0aXRsZSIsInBsYWNlbWVudCIsInBpY3R1cmUiLCJ3aW5kb3ciLCJoYXNXb3Jrc3BhY2VzRmVhdHVyZSIsInJvbGUiLCJ0YWJJbmRleCIsInJpZ2h0Iiwib25BZGRNZW1iZXJzIiwiaXNPcGVuIiwib25DbG9zZSIsIm9uQWNjZXB0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGFibGUvVGVhbVJvdy9Vc2Vyc1Jvdy9Vc2Vyc1Jvdy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHBhbGxldGUgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuaW1wb3J0IHsgQXZhdGFyVXNlciB9IGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi9jb21wb25lbnRzL2F2YXRhci11c2VyJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IENoZXZyb25MZWZ0IH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ2hldnJvbkxlZnQnXG5pbXBvcnQgeyBDaGV2cm9uUmlnaHQgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGV2cm9uUmlnaHQnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBUZWFtIH0gZnJvbSAnLi4vLi4vLi4vVGVhbURldGFpbHNNb2RhbC9UZWFtRGV0YWlsc01vZGFsLnR5cGVzJ1xuaW1wb3J0IHsgQWRkVXNlcnMgfSBmcm9tICcuLi9BZGRVc2VycydcbmltcG9ydCB7IE1lbWJlclNlbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL1RlYW1EZXRhaWxzTW9kYWwvTWVtYmVyc1NlbGVjdCdcbmltcG9ydCB7IEFkZE1lbWJlck1vZGFsIH0gZnJvbSAnLi4vQWRkTWVtYmVyTW9kYWwnXG5pbXBvcnQgeyBSZW1vdmVNZW1iZXJNb2RhbCB9IGZyb20gJy4uL1JlbW92ZU1lbWJlck1vZGFsJ1xuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzL3VzZXJUeXBlJ1xuaW1wb3J0IHtcbiAgU0NVUlVzZXJDb250YWluZXIsXG4gIFNDVVJVc2VyQXZhdGFyLFxuICBTQ1VSUmVtb3ZlSWNvbixcbiAgU0NVUkFkZFVzZXJzV3JhcHBlcixcbiAgU0NVUlNsaWRlcldyYXBwZXIsXG4gIFNDVVJTbGlkZXJDb250YWluZXIsXG4gIFNDVVJTbGlkZXJDb250ZW50LFxuICBTQ1VSTmF2QnV0dG9uLFxufSBmcm9tICcuL1VzZXJzUm93LnN0eWxlcydcblxuaW50ZXJmYWNlIFVzZXJzUm93UHJvcHMge1xuICB0ZWFtOiBUZWFtXG4gIG9uUmVtb3ZlVXNlcjogKHRlYW1JZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlciwgZGVsZXRlRnJvbVByb2plY3RzOiBib29sZWFuKSA9PiB2b2lkXG4gIG9uQWRkVXNlcjogKHRlYW1JZDogbnVtYmVyLCB1c2VySWQ6IG51bWJlciwgZ2l2ZUFjY2Vzc1RvQWxsUHJvamVjdHM6IGJvb2xlYW4pID0+IHZvaWRcbn1cblxuZXhwb3J0IGNvbnN0IFVzZXJzUm93ID0gKHsgdGVhbSwgb25SZW1vdmVVc2VyLCBvbkFkZFVzZXIgfTogVXNlcnNSb3dQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgY3VycmVudE1lbWJlcnM6IE1lbWJlclNlbGVjdGlvbltdID0gdGVhbS51c2Vycy5tYXAodXNlciA9PiAoe1xuICAgIGlkOiB1c2VyLmlkLFxuICAgIG5hbWU6IGAke3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9YCxcbiAgfSkpXG5cbiAgY29uc3QgW2lzTW9kYWxPcGVuLCBzZXRJc01vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3BlbmRpbmdNZW1iZXJzLCBzZXRQZW5kaW5nTWVtYmVyc10gPSB1c2VTdGF0ZTxVc2VyIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2lzUmVtb3ZlTW9kYWxPcGVuLCBzZXRJc1JlbW92ZU1vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3VzZXJUb1JlbW92ZSwgc2V0VXNlclRvUmVtb3ZlXSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IFtzaG93TGVmdEJ1dHRvbiwgc2V0U2hvd0xlZnRCdXR0b25dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzaG93UmlnaHRCdXR0b24sIHNldFNob3dSaWdodEJ1dHRvbl0gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBzbGlkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlQWRkTWVtYmVycyA9IChtZW1iZXI6IFVzZXIpID0+IHtcbiAgICBzZXRQZW5kaW5nTWVtYmVycyhtZW1iZXIpXG4gICAgc2V0SXNNb2RhbE9wZW4odHJ1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZU1vZGFsQWNjZXB0ID0gKGdpdmVBY2Nlc3NUb0FsbFByb2plY3RzOiBib29sZWFuKSA9PiB7XG4gICAgaWYgKHBlbmRpbmdNZW1iZXJzKSB7XG4gICAgICBvbkFkZFVzZXIoK3RlYW0uaWQsIHBlbmRpbmdNZW1iZXJzLmlkLCBnaXZlQWNjZXNzVG9BbGxQcm9qZWN0cylcbiAgICAgIHNldElzTW9kYWxPcGVuKGZhbHNlKVxuICAgICAgc2V0UGVuZGluZ01lbWJlcnMobnVsbClcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVNb2RhbENsb3NlID0gKCkgPT4ge1xuICAgIHNldElzTW9kYWxPcGVuKGZhbHNlKVxuICAgIHNldFBlbmRpbmdNZW1iZXJzKG51bGwpXG4gIH1cblxuICBjb25zdCBoYW5kbGVSZW1vdmVVc2VyID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQsIHVzZXJJZDogbnVtYmVyKSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHNldFVzZXJUb1JlbW92ZSh1c2VySWQpXG4gICAgc2V0SXNSZW1vdmVNb2RhbE9wZW4odHJ1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVJlbW92ZU1vZGFsQWNjZXB0ID0gKGRlbGV0ZUZyb21Qcm9qZWN0czogYm9vbGVhbikgPT4ge1xuICAgIGlmICh1c2VyVG9SZW1vdmUgIT09IG51bGwpIHtcbiAgICAgIG9uUmVtb3ZlVXNlcigrdGVhbS5pZCwgdXNlclRvUmVtb3ZlLCBkZWxldGVGcm9tUHJvamVjdHMpXG4gICAgfVxuICAgIHNldElzUmVtb3ZlTW9kYWxPcGVuKGZhbHNlKVxuICAgIHNldFVzZXJUb1JlbW92ZShudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUmVtb3ZlTW9kYWxDbG9zZSA9ICgpID0+IHtcbiAgICBzZXRJc1JlbW92ZU1vZGFsT3BlbihmYWxzZSlcbiAgICBzZXRVc2VyVG9SZW1vdmUobnVsbClcbiAgfVxuXG4gIGNvbnN0IGNoZWNrU2Nyb2xsQnV0dG9ucyA9ICgpID0+IHtcbiAgICBpZiAoc2xpZGVyUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsV2lkdGgsIGNsaWVudFdpZHRoIH0gPSBzbGlkZXJSZWYuY3VycmVudFxuICAgICAgc2V0U2hvd0xlZnRCdXR0b24oc2Nyb2xsTGVmdCA+IDApXG4gICAgICBzZXRTaG93UmlnaHRCdXR0b24oc2Nyb2xsTGVmdCA8IHNjcm9sbFdpZHRoIC0gKGNsaWVudFdpZHRoICsgMjApIC0gMSlcbiAgICB9XG4gIH1cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIEVzcGVyYXIgdW4gbW9tZW50byBwYXJhIHF1ZSBlbCBET00gc2UgYWN0dWFsaWNlXG4gICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNoZWNrU2Nyb2xsQnV0dG9ucygpXG4gICAgfSwgMClcblxuICAgIGNvbnN0IHNsaWRlciA9IHNsaWRlclJlZi5jdXJyZW50XG4gICAgaWYgKHNsaWRlcikge1xuICAgICAgc2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsQnV0dG9ucylcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgICAgc2xpZGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIGNoZWNrU2Nyb2xsQnV0dG9ucylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lcilcbiAgfSwgW3RlYW0udXNlcnNdKVxuXG4gIGNvbnN0IHNjcm9sbExlZnQgPSAoKSA9PiB7XG4gICAgaWYgKHNsaWRlclJlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCBzY3JvbGxBbW91bnQgPSAyMDBcbiAgICAgIHNsaWRlclJlZi5jdXJyZW50LnNjcm9sbEJ5KHsgbGVmdDogLXNjcm9sbEFtb3VudCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2Nyb2xsUmlnaHQgPSAoKSA9PiB7XG4gICAgaWYgKHNsaWRlclJlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCBzY3JvbGxBbW91bnQgPSAyMDBcbiAgICAgIHNsaWRlclJlZi5jdXJyZW50LnNjcm9sbEJ5KHsgbGVmdDogc2Nyb2xsQW1vdW50LCBiZWhhdmlvcjogJ3Ntb290aCcgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U0NVUlNsaWRlcldyYXBwZXI+XG4gICAgICAgIHtzaG93TGVmdEJ1dHRvbiAmJiAoXG4gICAgICAgICAgPFNDVVJOYXZCdXR0b24gb25DbGljaz17c2Nyb2xsTGVmdH0gYXJpYS1sYWJlbD17dCgncGVvcGxlLmFjY2Vzc2liaWxpdHkuc2Nyb2xsTGVmdCcpfSBsZWZ0PVwiLTRweFwiPlxuICAgICAgICAgICAgPENoZXZyb25MZWZ0IHdpZHRoPVwiMTZweFwiIGhlaWdodD1cIjE2cHhcIiBjb2xvcj17cGFsbGV0ZS5ncmV5WzQwMF19IC8+XG4gICAgICAgICAgPC9TQ1VSTmF2QnV0dG9uPlxuICAgICAgICApfVxuICAgICAgICA8U0NVUlNsaWRlckNvbnRhaW5lciByZWY9e3NsaWRlclJlZn0+XG4gICAgICAgICAgPFNDVVJTbGlkZXJDb250ZW50PlxuICAgICAgICAgICAge3RlYW0udXNlcnMubWFwKHVzZXIgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxTQ1VSVXNlckNvbnRhaW5lciBrZXk9e3VzZXIuaWR9PlxuICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2Ake3VzZXIuZmlyc3ROYW1lfSAke3VzZXIubGFzdE5hbWV9YH0gcGxhY2VtZW50PVwidG9wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxTQ1VSVXNlckF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICA8QXZhdGFyVXNlciBmaXJzdE5hbWU9e3VzZXIuZmlyc3ROYW1lfSBsYXN0TmFtZT17dXNlci5sYXN0TmFtZX0gcGljdHVyZT17dXNlci5waWN0dXJlfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDVVJVc2VyQXZhdGFyPlxuICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgeyF3aW5kb3cuaGFzV29ya3NwYWNlc0ZlYXR1cmUgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8U0NVUlJlbW92ZUljb24gb25DbGljaz17ZSA9PiBoYW5kbGVSZW1vdmVVc2VyKGUsIHVzZXIuaWQpfSByb2xlPVwiYnV0dG9uXCIgdGFiSW5kZXg9ezB9PlxuICAgICAgICAgICAgICAgICAgICAgIDxDcm9zcyB3aWR0aD1cIjExcHhcIiBoZWlnaHQ9XCIxMXB4XCIgY29sb3I9e3BhbGxldGUuZ3JleVs0MDBdfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L1NDVVJSZW1vdmVJY29uPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1NDVVJVc2VyQ29udGFpbmVyPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDVVJTbGlkZXJDb250ZW50PlxuICAgICAgICA8L1NDVVJTbGlkZXJDb250YWluZXI+XG5cbiAgICAgICAge3Nob3dSaWdodEJ1dHRvbiAmJiAoXG4gICAgICAgICAgPFNDVVJOYXZCdXR0b24gb25DbGljaz17c2Nyb2xsUmlnaHR9IGFyaWEtbGFiZWw9e3QoJ3Blb3BsZS5hY2Nlc3NpYmlsaXR5LnNjcm9sbFJpZ2h0Jyl9IHJpZ2h0PVwiLTRweFwiPlxuICAgICAgICAgICAgPENoZXZyb25SaWdodCB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9e3BhbGxldGUuZ3JleVs0MDBdfSAvPlxuICAgICAgICAgIDwvU0NVUk5hdkJ1dHRvbj5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NVUlNsaWRlcldyYXBwZXI+XG4gICAgICB7IXdpbmRvdy5oYXNXb3Jrc3BhY2VzRmVhdHVyZSAmJiAoXG4gICAgICAgIDxTQ1VSQWRkVXNlcnNXcmFwcGVyPlxuICAgICAgICAgIDxBZGRVc2VycyBjdXJyZW50TWVtYmVycz17Y3VycmVudE1lbWJlcnN9IG9uQWRkTWVtYmVycz17aGFuZGxlQWRkTWVtYmVyc30gLz5cbiAgICAgICAgPC9TQ1VSQWRkVXNlcnNXcmFwcGVyPlxuICAgICAgKX1cbiAgICAgIDxBZGRNZW1iZXJNb2RhbCBpc09wZW49e2lzTW9kYWxPcGVufSBvbkNsb3NlPXtoYW5kbGVNb2RhbENsb3NlfSBvbkFjY2VwdD17aGFuZGxlTW9kYWxBY2NlcHR9IC8+XG4gICAgICA8UmVtb3ZlTWVtYmVyTW9kYWxcbiAgICAgICAgaXNPcGVuPXtpc1JlbW92ZU1vZGFsT3Blbn1cbiAgICAgICAgb25DbG9zZT17aGFuZGxlUmVtb3ZlTW9kYWxDbG9zZX1cbiAgICAgICAgb25BY2NlcHQ9e2hhbmRsZVJlbW92ZU1vZGFsQWNjZXB0fVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsU0FBUyxRQUFRLE9BQU87QUFDMUQsU0FBU0MsY0FBYyxRQUFRLGVBQWU7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG1DQUFtQztBQUN2RCxTQUFTQyxVQUFVLFFBQVEsb0RBQW9EO0FBQy9FLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsV0FBVyxRQUFRLDhDQUE4QztBQUMxRSxTQUFT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
@@ -0,0 +1,41 @@
1
+ import styled from 'styled-components';
2
+ import pallete from '@projectcor/theme/lib/base/colors';
3
+ export var SCURRemoveIcon = styled.div.withConfig({
4
+ displayName: "UsersRowstyles__SCURRemoveIcon",
5
+ componentId: "sc-1lkpduz-0"
6
+ })(["position:absolute;bottom:-4px;right:-4px;width:14px;height:14px;border:1px solid ", ";background-color:", ";border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:opacity 0.2s ease-in-out,visibility 0.2s ease-in-out;z-index:10;"], pallete.grey[400], pallete.white.main);
7
+ export var SCURUserContainer = styled.div.withConfig({
8
+ displayName: "UsersRowstyles__SCURUserContainer",
9
+ componentId: "sc-1lkpduz-1"
10
+ })(["position:relative;display:inline-block;margin-right:1px;&:hover ", "{opacity:1;visibility:visible;}"], SCURRemoveIcon);
11
+ export var SCURUserAvatar = styled.div.withConfig({
12
+ displayName: "UsersRowstyles__SCURUserAvatar",
13
+ componentId: "sc-1lkpduz-2"
14
+ })(["position:relative;display:flex;align-items:center;justify-content:center;"]);
15
+ export var SCURAddUsersWrapper = styled.div.withConfig({
16
+ displayName: "UsersRowstyles__SCURAddUsersWrapper",
17
+ componentId: "sc-1lkpduz-3"
18
+ })(["display:inline-block;flex-shrink:0;margin-left:4px;"]);
19
+ export var SCURSliderWrapper = styled.div.withConfig({
20
+ displayName: "UsersRowstyles__SCURSliderWrapper",
21
+ componentId: "sc-1lkpduz-4"
22
+ })(["display:flex;align-items:center;position:relative;width:fit-content;min-width:0;max-width:100%;"]);
23
+ export var SCURSliderContainer = styled.div.withConfig({
24
+ displayName: "UsersRowstyles__SCURSliderContainer",
25
+ componentId: "sc-1lkpduz-5"
26
+ })(["overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;flex:1 1 0;display:flex;align-items:center;min-width:0;max-width:100%;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;}"]);
27
+ export var SCURSliderContent = styled.div.withConfig({
28
+ displayName: "UsersRowstyles__SCURSliderContent",
29
+ componentId: "sc-1lkpduz-6"
30
+ })(["display:flex;align-items:center;gap:0;min-width:fit-content;max-width:100%;height:48px;"]);
31
+ export var SCURNavButton = styled.button.withConfig({
32
+ displayName: "UsersRowstyles__SCURNavButton",
33
+ componentId: "sc-1lkpduz-7"
34
+ })(["display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;border:none;box-shadow:0px 4px 16px 0px #1212123d;background-color:", ";cursor:pointer;flex-shrink:0;transition:background-color 0.2s ease-in-out;z-index:1;position:absolute;", " ", " &:hover{background-color:", ";}&:active{background-color:", ";}"], pallete.white.main, function (_ref) {
35
+ var right = _ref.right;
36
+ return right && "right: ".concat(right, ";");
37
+ }, function (_ref2) {
38
+ var left = _ref2.left;
39
+ return left && "left: ".concat(left, ";");
40
+ }, pallete.grey[200], pallete.colors.gray.light);
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJwYWxsZXRlIiwiU0NVUlJlbW92ZUljb24iLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsImdyZXkiLCJ3aGl0ZSIsIm1haW4iLCJTQ1VSVXNlckNvbnRhaW5lciIsIlNDVVJVc2VyQXZhdGFyIiwiU0NVUkFkZFVzZXJzV3JhcHBlciIsIlNDVVJTbGlkZXJXcmFwcGVyIiwiU0NVUlNsaWRlckNvbnRhaW5lciIsIlNDVVJTbGlkZXJDb250ZW50IiwiU0NVUk5hdkJ1dHRvbiIsImJ1dHRvbiIsIl9yZWYiLCJyaWdodCIsImNvbmNhdCIsIl9yZWYyIiwibGVmdCIsImNvbG9ycyIsImdyYXkiLCJsaWdodCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RhYmxlL1RlYW1Sb3cvVXNlcnNSb3cvVXNlcnNSb3cuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IHBhbGxldGUgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5leHBvcnQgY29uc3QgU0NVUlJlbW92ZUljb24gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTRweDtcbiAgcmlnaHQ6IC00cHg7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7cGFsbGV0ZS5ncmV5WzQwMF19O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3BhbGxldGUud2hpdGUubWFpbn07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgei1pbmRleDogMTA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ1VSVXNlckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tcmlnaHQ6IDFweDtcblxuICAmOmhvdmVyICR7U0NVUlJlbW92ZUljb259IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDVVJVc2VyQXZhdGFyID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVVJBZGRVc2Vyc1dyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogNHB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NVUlNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIC8qIG92ZXJmbG93OiBoaWRkZW47ICovXG4gIC8qIGdhcDogNHB4OyAqL1xuYFxuXG5leHBvcnQgY29uc3QgU0NVUlNsaWRlckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIGZsZXg6IDEgMSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUgYW5kIEVkZ2UgKi9cblxuICAmOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgLyogQ2hyb21lLCBTYWZhcmksIE9wZXJhICovXG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDVVJTbGlkZXJDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwO1xuICBtaW4td2lkdGg6IGZpdC1jb250ZW50O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNDhweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDVVJOYXZCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgcmlnaHQ/OiBzdHJpbmc7IGxlZnQ/OiBzdHJpbmcgfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMHB4IDRweCAxNnB4IDBweCAjMTIxMjEyM2Q7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cGFsbGV0ZS53aGl0ZS5tYWlufTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICR7KHsgcmlnaHQgfSkgPT4gcmlnaHQgJiYgYHJpZ2h0OiAke3JpZ2h0fTtgfVxuICAkeyh7IGxlZnQgfSkgPT4gbGVmdCAmJiBgbGVmdDogJHtsZWZ0fTtgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cGFsbGV0ZS5ncmV5WzIwMF19O1xuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cGFsbGV0ZS5jb2xvcnMuZ3JheS5saWdodH07XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxPQUFPLE1BQU0sbUNBQW1DO0FBRXZELE9BQU8sSUFBTUMsY0FBYyxHQUFHRixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSxvVEFNbEJMLE9BQU8sQ0FBQ00sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNqQk4sT0FBTyxDQUFDTyxLQUFLLENBQUNDLElBQUksQ0FVdkM7QUFFRCxPQUFPLElBQU1DLGlCQUFpQixHQUFHVixNQUFNLENBQUNHLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw0R0FLL0JKLGNBQWMsQ0FJekI7QUFFRCxPQUFPLElBQU1TLGNBQWMsR0FBR1gsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaUZBS3ZDO0FBRUQsT0FBTyxJQUFNTSxtQkFBbUIsR0FBR1osTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsMkRBSTVDO0FBRUQsT0FBTyxJQUFNTyxpQkFBaUIsR0FBR2IsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdUdBUzFDO0FBRUQsT0FBTyxJQUFNUSxtQkFBbUIsR0FBR2QsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsdU5BZTVDO0FBRUQsT0FBTyxJQUFNUyxpQkFBaUIsR0FBR2YsTUFBTSxDQUFDRyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsK0ZBTzFDO0FBRUQsT0FBTyxJQUFNVSxhQUFhLEdBQUdoQixNQUFNLENBQUNpQixNQUFNLENBQUFiLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsZ1dBU3BCTCxPQUFPLENBQUNPLEtBQUssQ0FBQ0MsSUFBSSxFQU1wQyxVQUFBUyxJQUFBO0VBQUEsSUFBR0MsS0FBSyxHQUFBRCxJQUFBLENBQUxDLEtBQUs7RUFBQSxPQUFPQSxLQUFLLGNBQUFDLE1BQUEsQ0FBY0QsS0FBSyxNQUFHO0FBQUEsR0FDMUMsVUFBQUUsS0FBQTtFQUFBLElBQUdDLElBQUksR0FBQUQsS0FBQSxDQUFKQyxJQUFJO0VBQUEsT0FBT0EsSUFBSSxhQUFBRixNQUFBLENBQWFFLElBQUksTUFBRztBQUFBLEdBR2xCckIsT0FBTyxDQUFDTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBSWpCTixPQUFPLENBQUNzQixNQUFNLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxDQUVoRCIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ export { UsersRow } from './UsersRow';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVc2Vyc1JvdyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RhYmxlL1RlYW1Sb3cvVXNlcnNSb3cvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVXNlcnNSb3cgfSBmcm9tICcuL1VzZXJzUm93J1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFRLFFBQVEsWUFBWSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,2 @@
1
+ export { TeamRow } from './TeamRow';
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZWFtUm93Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvVGFibGUvVGVhbVJvdy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUZWFtUm93IH0gZnJvbSAnLi9UZWFtUm93J1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxPQUFPLFFBQVEsV0FBVyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,181 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import { useState, useEffect, useRef, useCallback } from 'react';
4
+ import { useTranslation } from 'react-i18next';
5
+ import pallete from '@projectcor/theme/lib/base/colors';
6
+ import { ChevronDown } from '@projectcor/icons/lib/components/ChevronDown';
7
+ import { CUSelect } from '@projectcor/selector/lib/components/CUSelect';
8
+ import { SearchComponent } from '../Filters/SearchComponent/SearchComponent';
9
+ import { useGetUsers } from '../../hooks/useGetUsers';
10
+ import { useDebouncedCallback } from '../../hooks/useDebouncedCallback';
11
+ import { SCBackdropInputSelect, SCCUItemsList, SCCUSelectItem, SCWrapperSelectIcon, SCMemberItemContent, SCMemberCheckbox, SCMemberSearchWrapper } from './TeamDetailsModal.styles';
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ export var MembersSelect = function MembersSelect(_ref) {
14
+ var value = _ref.value,
15
+ onChange = _ref.onChange;
16
+ var _useState = useState(false),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ showSelectMembers = _useState2[0],
19
+ setShowSelectMembers = _useState2[1];
20
+ var _useTranslation = useTranslation('teams'),
21
+ t = _useTranslation.t;
22
+ var _useGetUsers = useGetUsers(),
23
+ handleGetUsers = _useGetUsers.handleGetUsers,
24
+ users = _useGetUsers.users,
25
+ currentPage = _useGetUsers.currentPage,
26
+ totalPages = _useGetUsers.totalPages,
27
+ loading = _useGetUsers.loading;
28
+ var _useState3 = useState(''),
29
+ _useState4 = _slicedToArray(_useState3, 2),
30
+ searchValue = _useState4[0],
31
+ setSearchValue = _useState4[1];
32
+ var _useState5 = useState([]),
33
+ _useState6 = _slicedToArray(_useState5, 2),
34
+ accumulatedUsers = _useState6[0],
35
+ setAccumulatedUsers = _useState6[1];
36
+ var scrollContainerRef = useRef(null);
37
+ var isLoadingMoreRef = useRef(false);
38
+ var currentSearchRef = useRef('');
39
+ var handleSelectMember = function handleSelectMember(member) {
40
+ var alredySelected = value.some(function (m) {
41
+ return m.id === member.id;
42
+ });
43
+ if (alredySelected) {
44
+ onChange('members', value.filter(function (m) {
45
+ return m.id !== member.id;
46
+ }));
47
+ } else {
48
+ onChange('members', [].concat(_toConsumableArray(value), [{
49
+ id: member.id,
50
+ name: "".concat(member.firstName, " ").concat(member.lastName)
51
+ }]));
52
+ }
53
+ };
54
+ var fetchUsers = useCallback(function (searchInput) {
55
+ currentSearchRef.current = searchInput;
56
+ setAccumulatedUsers([]);
57
+ isLoadingMoreRef.current = false;
58
+ handleGetUsers({
59
+ page: 1,
60
+ searchInput: searchInput
61
+ });
62
+ }, [handleGetUsers]);
63
+ var debouncedFetchUsers = useDebouncedCallback(fetchUsers, 300);
64
+ var handleSearch = useCallback(function (e) {
65
+ setSearchValue(e.target.value);
66
+ debouncedFetchUsers(e.target.value);
67
+ }, [debouncedFetchUsers]);
68
+ useEffect(function () {
69
+ if (!showSelectMembers) {
70
+ setSearchValue('');
71
+ setAccumulatedUsers([]);
72
+ }
73
+ }, [showSelectMembers]);
74
+ useEffect(function () {
75
+ if (!showSelectMembers) return;
76
+ fetchUsers('');
77
+ }, [showSelectMembers, fetchUsers]);
78
+ useEffect(function () {
79
+ if (users.length > 0 && showSelectMembers) {
80
+ if (currentPage === 1) {
81
+ setAccumulatedUsers(users);
82
+ } else {
83
+ setAccumulatedUsers(function (prev) {
84
+ var existingIds = new Set(prev.map(function (u) {
85
+ return u.id;
86
+ }));
87
+ var newUsers = users.filter(function (u) {
88
+ return !existingIds.has(u.id);
89
+ });
90
+ return [].concat(_toConsumableArray(prev), _toConsumableArray(newUsers));
91
+ });
92
+ }
93
+ isLoadingMoreRef.current = false;
94
+ }
95
+ }, [users, currentPage, showSelectMembers]);
96
+ var handleScroll = useCallback(function () {
97
+ var container = scrollContainerRef.current;
98
+ if (!container || loading || isLoadingMoreRef.current) return;
99
+ var scrollTop = container.scrollTop,
100
+ scrollHeight = container.scrollHeight,
101
+ clientHeight = container.clientHeight;
102
+ var isNearBottom = scrollTop + clientHeight >= scrollHeight - 10;
103
+ if (isNearBottom && currentPage < totalPages) {
104
+ isLoadingMoreRef.current = true;
105
+ handleGetUsers({
106
+ page: currentPage + 1,
107
+ searchInput: currentSearchRef.current
108
+ });
109
+ }
110
+ }, [currentPage, totalPages, loading, handleGetUsers]);
111
+ useEffect(function () {
112
+ var container = scrollContainerRef.current;
113
+ if (!container || !showSelectMembers) return undefined;
114
+ container.addEventListener('scroll', handleScroll);
115
+ return function () {
116
+ container.removeEventListener('scroll', handleScroll);
117
+ };
118
+ }, [handleScroll, showSelectMembers]);
119
+ var handleClickActionSelect = function handleClickActionSelect() {
120
+ setShowSelectMembers(function (prev) {
121
+ return !prev;
122
+ });
123
+ };
124
+ return /*#__PURE__*/_jsxs(CUSelect, {
125
+ title: t('modal.addMembersTitle'),
126
+ placeholder: t('modal.addMembersPlaceholder'),
127
+ endIcon: /*#__PURE__*/_jsx(SCWrapperSelectIcon, {
128
+ isOpen: showSelectMembers,
129
+ children: /*#__PURE__*/_jsx(ChevronDown, {
130
+ width: "16px",
131
+ height: "16px",
132
+ color: pallete.colors.dark
133
+ })
134
+ }),
135
+ value: value.map(function (member) {
136
+ return member.name;
137
+ }).join(' - '),
138
+ open: showSelectMembers,
139
+ handleClickAction: handleClickActionSelect,
140
+ children: [/*#__PURE__*/_jsx(SCBackdropInputSelect, {
141
+ onClick: function onClick() {
142
+ return setShowSelectMembers(false);
143
+ }
144
+ }), /*#__PURE__*/_jsxs(SCCUItemsList, {
145
+ ref: scrollContainerRef,
146
+ children: [/*#__PURE__*/_jsx(SCMemberSearchWrapper, {
147
+ children: /*#__PURE__*/_jsx(SearchComponent, {
148
+ placeholder: t('modal.searchMemberPlaceholder'),
149
+ onChange: handleSearch,
150
+ value: searchValue
151
+ })
152
+ }), accumulatedUsers.map(function (member) {
153
+ var memberName = "".concat(member.firstName, " ").concat(member.lastName);
154
+ var isSelected = (value === null || value === void 0 ? void 0 : value.some(function (m) {
155
+ return m.id === member.id;
156
+ })) || false;
157
+ return /*#__PURE__*/_jsx(SCCUSelectItem, {
158
+ onClick: function onClick(e) {
159
+ e.stopPropagation();
160
+ handleSelectMember(member);
161
+ },
162
+ isSelected: isSelected,
163
+ children: /*#__PURE__*/_jsxs(SCMemberItemContent, {
164
+ children: [/*#__PURE__*/_jsx("span", {
165
+ children: memberName
166
+ }), /*#__PURE__*/_jsx(SCMemberCheckbox, {
167
+ type: "checkbox",
168
+ checked: isSelected,
169
+ readOnly: true,
170
+ onClick: function onClick(e) {
171
+ e.stopPropagation();
172
+ handleSelectMember(member);
173
+ }
174
+ })]
175
+ })
176
+ }, member.id);
177
+ })]
178
+ })]
179
+ });
180
+ };
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZUNhbGxiYWNrIiwidXNlVHJhbnNsYXRpb24iLCJwYWxsZXRlIiwiQ2hldnJvbkRvd24iLCJDVVNlbGVjdCIsIlNlYXJjaENvbXBvbmVudCIsInVzZUdldFVzZXJzIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJTQ0JhY2tkcm9wSW5wdXRTZWxlY3QiLCJTQ0NVSXRlbXNMaXN0IiwiU0NDVVNlbGVjdEl0ZW0iLCJTQ1dyYXBwZXJTZWxlY3RJY29uIiwiU0NNZW1iZXJJdGVtQ29udGVudCIsIlNDTWVtYmVyQ2hlY2tib3giLCJTQ01lbWJlclNlYXJjaFdyYXBwZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTWVtYmVyc1NlbGVjdCIsIl9yZWYiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2hvd1NlbGVjdE1lbWJlcnMiLCJzZXRTaG93U2VsZWN0TWVtYmVycyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJfdXNlR2V0VXNlcnMiLCJoYW5kbGVHZXRVc2VycyIsInVzZXJzIiwiY3VycmVudFBhZ2UiLCJ0b3RhbFBhZ2VzIiwibG9hZGluZyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VhcmNoVmFsdWUiLCJzZXRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYWNjdW11bGF0ZWRVc2VycyIsInNldEFjY3VtdWxhdGVkVXNlcnMiLCJzY3JvbGxDb250YWluZXJSZWYiLCJpc0xvYWRpbmdNb3JlUmVmIiwiY3VycmVudFNlYXJjaFJlZiIsImhhbmRsZVNlbGVjdE1lbWJlciIsIm1lbWJlciIsImFscmVkeVNlbGVjdGVkIiwic29tZSIsIm0iLCJpZCIsImZpbHRlciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsIm5hbWUiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImZldGNoVXNlcnMiLCJzZWFyY2hJbnB1dCIsImN1cnJlbnQiLCJwYWdlIiwiZGVib3VuY2VkRmV0Y2hVc2VycyIsImhhbmRsZVNlYXJjaCIsImUiLCJ0YXJnZXQiLCJsZW5ndGgiLCJwcmV2IiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJtYXAiLCJ1IiwibmV3VXNlcnMiLCJoYXMiLCJoYW5kbGVTY3JvbGwiLCJjb250YWluZXIiLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJpc05lYXJCb3R0b20iLCJ1bmRlZmluZWQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0IiwidGl0bGUiLCJwbGFjZWhvbGRlciIsImVuZEljb24iLCJpc09wZW4iLCJjaGlsZHJlbiIsIndpZHRoIiwiaGVpZ2h0IiwiY29sb3IiLCJjb2xvcnMiLCJkYXJrIiwiam9pbiIsIm9wZW4iLCJoYW5kbGVDbGlja0FjdGlvbiIsIm9uQ2xpY2siLCJyZWYiLCJtZW1iZXJOYW1lIiwiaXNTZWxlY3RlZCIsInN0b3BQcm9wYWdhdGlvbiIsInR5cGUiLCJjaGVja2VkIiwicmVhZE9ubHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UZWFtRGV0YWlsc01vZGFsL01lbWJlcnNTZWxlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCBDaGFuZ2VFdmVudCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZUNhbGxiYWNrIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgcGFsbGV0ZSBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBDaGV2cm9uRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZXZyb25Eb3duJ1xuaW1wb3J0IHsgQ1VTZWxlY3QgfSBmcm9tICdAcHJvamVjdGNvci9zZWxlY3Rvci9saWIvY29tcG9uZW50cy9DVVNlbGVjdCdcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJy4uL0ZpbHRlcnMvU2VhcmNoQ29tcG9uZW50L1NlYXJjaENvbXBvbmVudCdcbmltcG9ydCB7IHVzZUdldFVzZXJzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlR2V0VXNlcnMnXG5pbXBvcnQgeyB1c2VEZWJvdW5jZWRDYWxsYmFjayB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJ1xuaW1wb3J0IHtcbiAgU0NCYWNrZHJvcElucHV0U2VsZWN0LFxuICBTQ0NVSXRlbXNMaXN0LFxuICBTQ0NVU2VsZWN0SXRlbSxcbiAgU0NXcmFwcGVyU2VsZWN0SWNvbixcbiAgU0NNZW1iZXJJdGVtQ29udGVudCxcbiAgU0NNZW1iZXJDaGVja2JveCxcbiAgU0NNZW1iZXJTZWFyY2hXcmFwcGVyLFxufSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwuc3R5bGVzJ1xuaW1wb3J0IHsgVGVhbVVzZXIgfSBmcm9tICcuL1RlYW1EZXRhaWxzTW9kYWwudHlwZXMnXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdXNlclR5cGUnXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyU2VsZWN0aW9uIHtcbiAgaWQ6IG51bWJlclxuICBuYW1lOiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIE1lbWJlcnNTZWxlY3RQcm9wcyB7XG4gIHZhbHVlOiBNZW1iZXJTZWxlY3Rpb25bXVxuICBvbkNoYW5nZTogKGlucHV0OiBzdHJpbmcsIHZhbHVlOiBNZW1iZXJTZWxlY3Rpb25bXSkgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgTWVtYmVyc1NlbGVjdCA9ICh7IHZhbHVlLCBvbkNoYW5nZSB9OiBNZW1iZXJzU2VsZWN0UHJvcHMpID0+IHtcbiAgY29uc3QgW3Nob3dTZWxlY3RNZW1iZXJzLCBzZXRTaG93U2VsZWN0TWVtYmVyc10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigndGVhbXMnKVxuICBjb25zdCB7IGhhbmRsZUdldFVzZXJzLCB1c2VycywgY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcgfSA9IHVzZUdldFVzZXJzKClcbiAgY29uc3QgW3NlYXJjaFZhbHVlLCBzZXRTZWFyY2hWYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2FjY3VtdWxhdGVkVXNlcnMsIHNldEFjY3VtdWxhdGVkVXNlcnNdID0gdXNlU3RhdGU8VXNlcltdPihbXSlcbiAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBpc0xvYWRpbmdNb3JlUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBjdXJyZW50U2VhcmNoUmVmID0gdXNlUmVmKCcnKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE1lbWJlciA9IChtZW1iZXI6IFVzZXIgfCBUZWFtVXNlcikgPT4ge1xuICAgIGNvbnN0IGFscmVkeVNlbGVjdGVkID0gdmFsdWUuc29tZShtID0+IG0uaWQgPT09IG1lbWJlci5pZClcbiAgICBpZiAoYWxyZWR5U2VsZWN0ZWQpIHtcbiAgICAgIG9uQ2hhbmdlKFxuICAgICAgICAnbWVtYmVycycsXG4gICAgICAgIHZhbHVlLmZpbHRlcihtID0+IG0uaWQgIT09IG1lbWJlci5pZClcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgb25DaGFuZ2UoJ21lbWJlcnMnLCBbLi4udmFsdWUsIHsgaWQ6IG1lbWJlci5pZCwgbmFtZTogYCR7bWVtYmVyLmZpcnN0TmFtZX0gJHttZW1iZXIubGFzdE5hbWV9YCB9XSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBmZXRjaFVzZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgKHNlYXJjaElucHV0OiBzdHJpbmcpID0+IHtcbiAgICAgIGN1cnJlbnRTZWFyY2hSZWYuY3VycmVudCA9IHNlYXJjaElucHV0XG4gICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKFtdKVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogMSwgc2VhcmNoSW5wdXQgfSlcbiAgICB9LFxuICAgIFtoYW5kbGVHZXRVc2Vyc11cbiAgKVxuXG4gIGNvbnN0IGRlYm91bmNlZEZldGNoVXNlcnMgPSB1c2VEZWJvdW5jZWRDYWxsYmFjayhmZXRjaFVzZXJzLCAzMDApXG5cbiAgY29uc3QgaGFuZGxlU2VhcmNoID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICBzZXRTZWFyY2hWYWx1ZShlLnRhcmdldC52YWx1ZSlcbiAgICAgIGRlYm91bmNlZEZldGNoVXNlcnMoZS50YXJnZXQudmFsdWUpXG4gICAgfSxcbiAgICBbZGVib3VuY2VkRmV0Y2hVc2Vyc11cbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgc2V0U2VhcmNoVmFsdWUoJycpXG4gICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKFtdKVxuICAgIH1cbiAgfSwgW3Nob3dTZWxlY3RNZW1iZXJzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghc2hvd1NlbGVjdE1lbWJlcnMpIHJldHVyblxuICAgIGZldGNoVXNlcnMoJycpXG4gIH0sIFtzaG93U2VsZWN0TWVtYmVycywgZmV0Y2hVc2Vyc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodXNlcnMubGVuZ3RoID4gMCAmJiBzaG93U2VsZWN0TWVtYmVycykge1xuICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSAxKSB7XG4gICAgICAgIHNldEFjY3VtdWxhdGVkVXNlcnModXNlcnMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRBY2N1bXVsYXRlZFVzZXJzKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcCh1ID0+IHUuaWQpKVxuICAgICAgICAgIGNvbnN0IG5ld1VzZXJzID0gdXNlcnMuZmlsdGVyKHUgPT4gIWV4aXN0aW5nSWRzLmhhcyh1LmlkKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLm5ld1VzZXJzXVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICB9XG4gIH0sIFt1c2VycywgY3VycmVudFBhZ2UsIHNob3dTZWxlY3RNZW1iZXJzXSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyID0gc2Nyb2xsQ29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICBpZiAoIWNvbnRhaW5lciB8fCBsb2FkaW5nIHx8IGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsSGVpZ2h0LCBjbGllbnRIZWlnaHQgfSA9IGNvbnRhaW5lclxuICAgIGNvbnN0IGlzTmVhckJvdHRvbSA9IHNjcm9sbFRvcCArIGNsaWVudEhlaWdodCA+PSBzY3JvbGxIZWlnaHQgLSAxMFxuXG4gICAgaWYgKGlzTmVhckJvdHRvbSAmJiBjdXJyZW50UGFnZSA8IHRvdGFsUGFnZXMpIHtcbiAgICAgIGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGhhbmRsZUdldFVzZXJzKHsgcGFnZTogY3VycmVudFBhZ2UgKyAxLCBzZWFyY2hJbnB1dDogY3VycmVudFNlYXJjaFJlZi5jdXJyZW50IH0pXG4gICAgfVxuICB9LCBbY3VycmVudFBhZ2UsIHRvdGFsUGFnZXMsIGxvYWRpbmcsIGhhbmRsZUdldFVzZXJzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHNjcm9sbENvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgaWYgKCFjb250YWluZXIgfHwgIXNob3dTZWxlY3RNZW1iZXJzKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgaGFuZGxlU2Nyb2xsKVxuICAgIH1cbiAgfSwgW2hhbmRsZVNjcm9sbCwgc2hvd1NlbGVjdE1lbWJlcnNdKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrQWN0aW9uU2VsZWN0ID0gKCkgPT4ge1xuICAgIHNldFNob3dTZWxlY3RNZW1iZXJzKHByZXYgPT4gIXByZXYpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDVVNlbGVjdFxuICAgICAgdGl0bGU9e3QoJ21vZGFsLmFkZE1lbWJlcnNUaXRsZScpfVxuICAgICAgcGxhY2Vob2xkZXI9e3QoJ21vZGFsLmFkZE1lbWJlcnNQbGFjZWhvbGRlcicpfVxuICAgICAgZW5kSWNvbj17XG4gICAgICAgIDxTQ1dyYXBwZXJTZWxlY3RJY29uIGlzT3Blbj17c2hvd1NlbGVjdE1lbWJlcnN9PlxuICAgICAgICAgIDxDaGV2cm9uRG93biB3aWR0aD1cIjE2cHhcIiBoZWlnaHQ9XCIxNnB4XCIgY29sb3I9e3BhbGxldGUuY29sb3JzLmRhcmt9IC8+XG4gICAgICAgIDwvU0NXcmFwcGVyU2VsZWN0SWNvbj5cbiAgICAgIH1cbiAgICAgIHZhbHVlPXt2YWx1ZS5tYXAobWVtYmVyID0+IG1lbWJlci5uYW1lKS5qb2luKCcgLSAnKX1cbiAgICAgIG9wZW49e3Nob3dTZWxlY3RNZW1iZXJzfVxuICAgICAgaGFuZGxlQ2xpY2tBY3Rpb249e2hhbmRsZUNsaWNrQWN0aW9uU2VsZWN0fVxuICAgID5cbiAgICAgIDxTQ0JhY2tkcm9wSW5wdXRTZWxlY3Qgb25DbGljaz17KCkgPT4gc2V0U2hvd1NlbGVjdE1lbWJlcnMoZmFsc2UpfSAvPlxuICAgICAgPFNDQ1VJdGVtc0xpc3QgcmVmPXtzY3JvbGxDb250YWluZXJSZWZ9PlxuICAgICAgICA8U0NNZW1iZXJTZWFyY2hXcmFwcGVyPlxuICAgICAgICAgIDxTZWFyY2hDb21wb25lbnRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KCdtb2RhbC5zZWFyY2hNZW1iZXJQbGFjZWhvbGRlcicpfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVNlYXJjaH1cbiAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hWYWx1ZX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1NDTWVtYmVyU2VhcmNoV3JhcHBlcj5cbiAgICAgICAge2FjY3VtdWxhdGVkVXNlcnMubWFwKG1lbWJlciA9PiB7XG4gICAgICAgICAgY29uc3QgbWVtYmVyTmFtZSA9IGAke21lbWJlci5maXJzdE5hbWV9ICR7bWVtYmVyLmxhc3ROYW1lfWBcbiAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdmFsdWU/LnNvbWUobSA9PiBtLmlkID09PSBtZW1iZXIuaWQpIHx8IGZhbHNlXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTQ0NVU2VsZWN0SXRlbVxuICAgICAgICAgICAgICBrZXk9e21lbWJlci5pZH1cbiAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE1lbWJlcihtZW1iZXIpXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTQ01lbWJlckl0ZW1Db250ZW50PlxuICAgICAgICAgICAgICAgIDxzcGFuPnttZW1iZXJOYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8U0NNZW1iZXJDaGVja2JveFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICByZWFkT25seVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0TWVtYmVyKG1lbWJlcilcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TQ01lbWJlckl0ZW1Db250ZW50PlxuICAgICAgICAgICAgPC9TQ0NVU2VsZWN0SXRlbT5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC9TQ0NVSXRlbXNMaXN0PlxuICAgIDwvQ1VTZWxlY3Q+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxTQUFTQSxRQUFRLEVBQWVDLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLFFBQVEsT0FBTztBQUM3RSxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sbUNBQW1DO0FBQ3ZELFNBQVNDLFdBQVcsUUFBUSw4Q0FBOEM7QUFDMUUsU0FBU0MsUUFBUSxRQUFRLDhDQUE4QztBQUN2RSxTQUFTQyxlQUFlLFFBQVEsNENBQTRDO0FBQzVFLFNBQVNDLFdBQVcsUUFBUSx5QkFBeUI7QUFDckQsU0FBU0Msb0JBQW9CLFFBQVEsa0NBQWtDO0FBQ3ZFLFNBQ0VDLHFCQUFxQixFQUNyQkMsYUFBYSxFQUNiQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMsbUJBQW1CLEVBQ25CQyxnQkFBZ0IsRUFDaEJDLHFCQUFxQixRQUNoQiwyQkFBMkI7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBY2xDLE9BQU8sSUFBTUMsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFBQyxJQUFBLEVBQWdEO0VBQUEsSUFBMUNDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0lBQUVDLFFBQVEsR0FB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QSxDQUFDRixxQkFBcUI7UUFBQTJFLFFBQUEsZUFDcEJ6RSxJQUFBLENBQUNYLGVBQWU7VUFDZGlGLFdBQVcsRUFBRXpELENBQUMsQ0FBQywrQkFBK0IsQ0FBRTtVQUNoRFAsUUFBUSxFQUFFMEMsWUFBYTtVQUN2QjNDLEtBQUssRUFBRWlCO1FBQVksQ0FDcEI7TUFBQyxDQUNtQixDQUFDLEVBQ3ZCSSxnQkFBZ0IsQ0FBQzZCLEdBQUcsQ0FBQyxVQUFBdkIsTUFBTSxFQUFJO1FBQzlCLElBQU1vRCxVQUFVLE1BQUE5QyxNQUFBLENBQU1OLE1BQU0sQ0FBQ1MsU0FBUyxPQUFBSCxNQUFBLENBQUlOLE1BQU0sQ0FBQ1UsUUFBUSxDQUFFO1FBQzNELElBQU0yQyxVQUFVLEdBQUcsQ0FBQWhGLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFNkIsSUFBSSxDQUFDLFVBQUFDLENBQUM7VUFBQSxPQUFJQSxDQUFDLENBQUNDLEVBQUUsS0FBS0osTUFBTSxDQUFDSSxFQUFFO1FBQUEsRUFBQyxLQUFJLEtBQUs7UUFDaEUsb0JBQ0VwQyxJQUFBLENBQUNOLGNBQWM7VUFFYndGLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFakMsQ0FBQyxFQUFJO1lBQ1pBLENBQUMsQ0FBQ3FDLGVBQWUsQ0FBQyxDQUFDO1lBQ25CdkQsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQztVQUM1QixDQUFFO1VBQ0ZxRCxVQUFVLEVBQUVBLFVBQVc7VUFBQVosUUFBQSxlQUV2QnZFLEtBQUEsQ0FBQ04sbUJBQW1CO1lBQUE2RSxRQUFBLGdCQUNsQnpFLElBQUE7Y0FBQXlFLFFBQUEsRUFBT1c7WUFBVSxDQUFPLENBQUMsZUFDekJwRixJQUFBLENBQUNILGdCQUFnQjtjQUNmMEYsSUFBSSxFQUFDLFVBQVU7Y0FDZkMsT0FBTyxFQUFFSCxVQUFXO2NBQ3BCSSxRQUFRO2NBQ1JQLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFakMsQ0FBQyxFQUFJO2dCQUNaQSxDQUFDLENBQUNxQyxlQUFlLENBQUMsQ0FBQztnQkFDbkJ2RCxrQkFBa0IsQ0FBQ0MsTUFBTSxDQUFDO2NBQzVCO1lBQUUsQ0FDSCxDQUFDO1VBQUEsQ0FDaUI7UUFBQyxHQWxCakJBLE1BQU0sQ0FBQ0ksRUFtQkUsQ0FBQztNQUVyQixDQUFDLENBQUM7SUFBQSxDQUNXLENBQUM7RUFBQSxDQUNSLENBQUM7QUFFZixDQUFDIiwiaWdub3JlTGlzdCI6W119