@projectcor/people-microfront 1.0.2-3 → 1.0.2-31

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 (116) hide show
  1. package/lib/App.js +8 -45
  2. package/lib/App.stories.js +26 -2
  3. package/lib/components/DeleteTeamModal/DeleteTeamModal.js +36 -21
  4. package/lib/components/DeleteTeamModal/DeleteTeamModal.styles.js +25 -12
  5. package/lib/components/DeleteTeamModal/DeleteTeamModal.types.js +1 -1
  6. package/lib/components/DeletedUserIcon/DeletedUserIcon.js +5 -3
  7. package/lib/components/DeletedUserIcon/DeletedUserIcon.styles.js +2 -2
  8. package/lib/components/DisabledUserIcon/DisabledUserIcon.js +3 -2
  9. package/lib/components/DisabledUserIcon/DisabledUserIcon.styles.js +2 -2
  10. package/lib/components/EmptyStateTeams/EmptyStateTeams.js +4 -3
  11. package/lib/components/EmptyStateTeams/EmptyStateTeams.styles.js +3 -2
  12. package/lib/components/EmptyUser/EmptyUser.js +8 -49
  13. package/lib/components/EmptyUser/EmptyUser.styles.js +14 -0
  14. package/lib/components/ErrorComponent/ErrorComponent.spec.js +3 -2
  15. package/lib/components/ErrorComponent/ErrorComponent.styles.js +5 -5
  16. package/lib/components/ErrorTeams/ErrorTeams.styles.js +3 -2
  17. package/lib/components/Filters/FilterChip/FilterChip.js +46 -32
  18. package/lib/components/Filters/FilterChip/FilterChip.styles.js +6 -0
  19. package/lib/components/Filters/LabelFilter/LabelFilter.js +22 -20
  20. package/lib/components/Filters/LabelFilter/LabelFilter.styles.js +4 -4
  21. package/lib/components/Filters/SearchComponent/SearchComponent.js +3 -5
  22. package/lib/components/HeaderTeams/HeaderTeams.js +4 -3
  23. package/lib/components/HeaderTeams/HeaderTeams.style.js +3 -2
  24. package/lib/components/Icons/UserIconLock.js +3 -2
  25. package/lib/components/Icons/UserIconWithCross.js +3 -2
  26. package/lib/components/Illustration/EmptyFilter.js +67 -0
  27. package/lib/components/Layout/Layout.js +23 -2
  28. package/lib/components/Layout/Layout.styles.js +19 -3
  29. package/lib/components/Layout/index.js +2 -3
  30. package/lib/components/MenuOptions/MenuOptions.js +28 -40
  31. package/lib/components/MenuOptions/MenuOptions.styles.js +4 -3
  32. package/lib/components/Modal/ModalLayout.js +4 -4
  33. package/lib/components/Modal/ModalLayout.style.js +9 -9
  34. package/lib/components/ModalBlockedUser/ModalBlockedUser.js +47 -0
  35. package/lib/components/ModalBlockedUser/ModalBlockedUser.styles.js +14 -0
  36. package/lib/components/ModalBlockedUser/index.js +2 -0
  37. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.js +14 -52
  38. package/lib/components/ModalEditUserPosition/ModalEditUserPosition.styles.js +37 -0
  39. package/lib/components/ModalEditUserPosition/UserEditPositionRow.js +53 -166
  40. package/lib/components/ModalEditUserPosition/UserEditPositionRow.styles.js +56 -1
  41. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.js +18 -10
  42. package/lib/components/ModalOptionsWithSearch/ModalOptionsWithSearch.styles.js +10 -5
  43. package/lib/components/Pagination/Pagination.styles.js +5 -1
  44. package/lib/components/Pagination/PaginationView.js +83 -0
  45. package/lib/components/Search/InputSearch.js +3 -2
  46. package/lib/components/Search/Search.js +18 -15
  47. package/lib/components/Table/Header/HeaderTable.js +27 -39
  48. package/lib/components/Table/Header/HeaderTable.styles.js +15 -0
  49. package/lib/components/Table/Row/Row.js +67 -24
  50. package/lib/components/Table/Row/Row.styles.js +41 -13
  51. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.js +8 -5
  52. package/lib/components/Table/TeamRow/AddMemberModal/AddMemberModal.styles.js +7 -6
  53. package/lib/components/Table/TeamRow/AddUsers/AddUsers.js +89 -73
  54. package/lib/components/Table/TeamRow/AddUsers/AddUsers.styles.js +8 -3
  55. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.js +8 -5
  56. package/lib/components/Table/TeamRow/RemoveMemberModal/RemoveMemberModal.styles.js +7 -6
  57. package/lib/components/Table/TeamRow/TeamRow.js +59 -22
  58. package/lib/components/Table/TeamRow/TeamRow.styles.js +7 -0
  59. package/lib/components/Table/TeamRow/UsersRow/UsersRow.js +119 -48
  60. package/lib/components/Table/TeamRow/UsersRow/UsersRow.styles.js +27 -4
  61. package/lib/components/TeamDetailsModal/MembersSelect.js +38 -35
  62. package/lib/components/TeamDetailsModal/TeamDetailsModal.js +56 -63
  63. package/lib/components/TeamDetailsModal/TeamDetailsModal.styles.js +30 -21
  64. package/lib/components/UserRow/UserRow.js +17 -70
  65. package/lib/components/UserRow/UserRow.styles.js +33 -4
  66. package/lib/container/Body/BodyContainer.js +52 -33
  67. package/lib/container/Body/BodyContainerViewTeams.js +69 -31
  68. package/lib/container/Filters/FiltersContainer.js +67 -27
  69. package/lib/container/MainView/MainTeamsView.js +12 -16
  70. package/lib/container/MainView/MainUsersView.js +78 -104
  71. package/lib/container/MainView/MainUsersView.styles.js +32 -0
  72. package/lib/container/MainView/MainView.js +16 -6
  73. package/lib/container/Pagination/PaginationContainer.js +10 -123
  74. package/lib/container/Pagination/PaginationTeamsContainer.js +32 -0
  75. package/lib/container/RouterComponent/RouterComponent.js +24 -45
  76. package/lib/container/RouterComponent/RouterComponent.stories.js +1 -3
  77. package/lib/container/RouterComponent/RouterComponent.styles.js +26 -0
  78. package/lib/container/TableContainer/TableContainer.js +35 -11
  79. package/lib/context/UsersContext.js +45 -22
  80. package/lib/hooks/useAbortController.js +15 -11
  81. package/lib/hooks/useAssignUserToTeam.js +17 -4
  82. package/lib/hooks/useCreateTeams.js +42 -11
  83. package/lib/hooks/useDebouncedCallback.js +27 -0
  84. package/lib/hooks/useDeleteTeam.js +67 -0
  85. package/lib/hooks/useGetTeams.js +2 -2
  86. package/lib/hooks/useGetUserPositionFilter.js +5 -2
  87. package/lib/hooks/useGetUsers.js +38 -17
  88. package/lib/hooks/useGetUsersForFilter.js +1 -2
  89. package/lib/hooks/useGraphAdapter.js +19 -8
  90. package/lib/hooks/useResize.js +9 -4
  91. package/lib/hooks/useUnassignUserFromTeam.js +19 -10
  92. package/lib/hooks/useUpdateTeam.js +65 -0
  93. package/lib/lang/i18nextForWeb.js +2 -2
  94. package/lib/lang/translation/br.json +58 -10
  95. package/lib/lang/translation/en.json +58 -10
  96. package/lib/lang/translation/es.json +58 -10
  97. package/lib/lang/translation/fr.json +60 -12
  98. package/lib/mocks/mockedUser.js +7 -1
  99. package/lib/query/createTeam.js +2 -2
  100. package/lib/query/deleteTeam.js +5 -0
  101. package/lib/query/getTeams.js +2 -2
  102. package/lib/query/getUsers.js +2 -2
  103. package/lib/query/updateTeam.js +5 -0
  104. package/lib/types/global.d.js +1 -1
  105. package/lib/types/userType.d.js +1 -1
  106. package/lib/utils/formatNumber.js +28 -0
  107. package/lib/utils/tabUrl.js +20 -0
  108. package/package.json +3 -3
  109. package/lib/components/ModalBloquedUser/ModalBloquedUser.js +0 -70
  110. package/lib/components/ModalBloquedUser/index.js +0 -2
  111. package/lib/components/Pagination/Pagination.js +0 -78
  112. package/lib/components/ShowMore/ShowMore.js +0 -12
  113. package/lib/components/ShowMore/ShowMore.style.js +0 -10
  114. package/lib/components/ShowMore/index.js +0 -2
  115. package/lib/components/Table/Content/ContentTable.js +0 -7
  116. package/lib/components/Table/Content/index.js +0 -2
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
1
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
4
  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; }
@@ -14,20 +15,18 @@ import { FilterChip } from '../../components/Filters/FilterChip';
14
15
  import { useGetTeams } from '../../hooks/useGetTeams';
15
16
  import { SEARCH_EVENT } from '../../hooks/useSearchEvent';
16
17
  import { Search } from '../../components/Search/Search';
18
+ import { LayoutSearchUser } from '../../components/Layout/Layout';
17
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
- export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
19
- var handleGetUserPositionFilterProp = _ref.handleGetUserPositionFilter;
20
+ export var FiltersContainer = /*#__PURE__*/memo(function () {
20
21
  var _useTranslation = useTranslation('people'),
21
22
  t = _useTranslation.t;
22
23
  var _useUsersQuery = useUsersQuery(),
23
24
  handleGetUsers = _useUsersQuery.handleGetUsers,
24
25
  positions = _useUsersQuery.positions;
25
26
  var _useGetTeams = useGetTeams(),
26
- handleGetTeams = _useGetTeams.handleGetTeams,
27
27
  loading = _useGetTeams.loading,
28
28
  error = _useGetTeams.error,
29
29
  data = _useGetTeams.data;
30
- var handleGetUserPositionFilter = handleGetUserPositionFilterProp !== null && handleGetUserPositionFilterProp !== void 0 ? handleGetUserPositionFilterProp : function () {};
31
30
  var _useState = useState(''),
32
31
  _useState2 = _slicedToArray(_useState, 2),
33
32
  searchTermValue = _useState2[0],
@@ -49,20 +48,28 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
49
48
  _useState0 = _slicedToArray(_useState9, 2),
50
49
  selectedPositions = _useState0[0],
51
50
  setSelectedPositions = _useState0[1];
51
+ var _useState1 = useState(''),
52
+ _useState10 = _slicedToArray(_useState1, 2),
53
+ teamSearchTerm = _useState10[0],
54
+ setTeamSearchTerm = _useState10[1];
55
+ var _useState11 = useState(''),
56
+ _useState12 = _slicedToArray(_useState11, 2),
57
+ positionSearchTerm = _useState12[0],
58
+ setPositionSearchTerm = _useState12[1];
52
59
  var buildAndSendUserRequest = function buildAndSendUserRequest() {
53
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
54
- searchInputOverride = _ref2.searchInputOverride,
55
- teamsOverride = _ref2.teamsOverride,
56
- positionsOverride = _ref2.positionsOverride;
60
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
61
+ searchInputOverride = _ref.searchInputOverride,
62
+ teamsOverride = _ref.teamsOverride,
63
+ positionsOverride = _ref.positionsOverride;
57
64
  var positionsFilter = positionsOverride !== undefined ? positionsOverride.length ? {
58
65
  positions: positionsOverride
59
66
  } : {} : selectedPositions.length ? {
60
67
  positions: selectedPositions
61
68
  } : {};
62
69
  var teamsFilter = teamsOverride !== undefined ? teamsOverride.length ? {
63
- teams: teamsOverride
70
+ team: teamsOverride
64
71
  } : {} : selectedTeams.length ? {
65
- teams: selectedTeams
72
+ team: selectedTeams
66
73
  } : {};
67
74
  var valuesToFilter = _objectSpread(_objectSpread({}, positionsFilter), teamsFilter);
68
75
  handleGetUsers({
@@ -102,7 +109,7 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
102
109
  });
103
110
  }
104
111
  } else {
105
- handleGetTeams(1, searchTerm);
112
+ setTeamSearchTerm(searchTerm !== null && searchTerm !== void 0 ? searchTerm : '');
106
113
  }
107
114
  }
108
115
  if (type === 'positionFilter') {
@@ -122,8 +129,8 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
122
129
  positionsOverride: valuesToFilter
123
130
  });
124
131
  }
125
- } else if (searchTerm) {
126
- handleGetUserPositionFilter(searchTerm);
132
+ } else {
133
+ setPositionSearchTerm(searchTerm !== null && searchTerm !== void 0 ? searchTerm : '');
127
134
  }
128
135
  }
129
136
  };
@@ -131,10 +138,11 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
131
138
  return function () {
132
139
  window.removeEventListener(SEARCH_EVENT, handleSearch);
133
140
  };
134
- }, [handleGetTeams, handleGetUserPositionFilter, handleGetUsers, searchTermValue]);
141
+ }, [handleGetUsers, searchTermValue, selectedTeams, selectedPositions]);
135
142
  useEffect(function () {
136
- if (data !== null && data !== void 0 && data.teams && !loading && !error) {
137
- setTeamOptions(data.teams.data.map(function (team) {
143
+ var _data$teamsUsers;
144
+ if (data !== null && data !== void 0 && (_data$teamsUsers = data.teamsUsers) !== null && _data$teamsUsers !== void 0 && _data$teamsUsers.data && !loading && !error) {
145
+ setTeamOptions(data.teamsUsers.data.map(function (team) {
138
146
  return {
139
147
  id: team.id,
140
148
  label: team.name
@@ -143,26 +151,58 @@ export var FiltersContainer = /*#__PURE__*/memo(function (_ref) {
143
151
  }
144
152
  }, [data, loading, error]);
145
153
  useEffect(function () {
146
- if (positions !== null && positions !== void 0 && positions.length) {
154
+ if (positions) {
147
155
  setPositionOptions(positions);
148
- defaultPositionsRef.current = positions;
156
+ if (positions.length) {
157
+ defaultPositionsRef.current = positions;
158
+ }
149
159
  }
150
160
  }, [positions]);
151
- return /*#__PURE__*/_jsxs("div", {
152
- style: {
153
- display: 'flex',
154
- gap: '10px',
155
- alignItems: 'center'
156
- },
161
+ var teamOptionsToShow = !teamSearchTerm.trim() ? teamOptions : function () {
162
+ var term = teamSearchTerm.trim().toLowerCase();
163
+ var selectedOpts = teamOptions.filter(function (team) {
164
+ return selectedTeams.includes(team.id);
165
+ });
166
+ var filteredOpts = teamOptions.filter(function (team) {
167
+ return team.label.toLowerCase().includes(term);
168
+ });
169
+ var filteredIds = new Set(filteredOpts.map(function (o) {
170
+ return o.id;
171
+ }));
172
+ var selectedNotInFiltered = selectedOpts.filter(function (o) {
173
+ return !filteredIds.has(o.id);
174
+ });
175
+ return [].concat(_toConsumableArray(selectedNotInFiltered), _toConsumableArray(filteredOpts));
176
+ }();
177
+ var positionOptionsToShow = !positionSearchTerm.trim() ? positionOptions : function () {
178
+ var term = positionSearchTerm.trim().toLowerCase();
179
+ var posWithCategory = positionOptions;
180
+ var selectedOpts = posWithCategory.filter(function (p) {
181
+ return selectedPositions.includes(p.id);
182
+ });
183
+ var filteredOpts = posWithCategory.filter(function (p) {
184
+ return p.label.toLowerCase().includes(term) || p.categoryName && p.categoryName.toLowerCase().includes(term);
185
+ });
186
+ var filteredIds = new Set(filteredOpts.map(function (o) {
187
+ return o.id;
188
+ }));
189
+ var selectedNotInFiltered = selectedOpts.filter(function (o) {
190
+ return !filteredIds.has(o.id);
191
+ });
192
+ return [].concat(_toConsumableArray(selectedNotInFiltered), _toConsumableArray(filteredOpts));
193
+ }();
194
+ return /*#__PURE__*/_jsxs(LayoutSearchUser, {
157
195
  children: [/*#__PURE__*/_jsx(Search, {}), /*#__PURE__*/_jsx(FilterChip, {
158
196
  id: "teamFilter",
159
197
  label: t('filters.team'),
160
- options: teamOptions
198
+ options: teamOptionsToShow,
199
+ emptyMessage: t('users.emptyFilterMessage')
161
200
  }), /*#__PURE__*/_jsx(FilterChip, {
162
201
  id: "positionFilter",
163
202
  label: t('filters.position'),
164
- options: positionOptions
203
+ options: positionOptionsToShow,
204
+ emptyMessage: t('users.emptyFilterMessage')
165
205
  })]
166
206
  });
167
207
  });
168
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZVVzZXJzUXVlcnkiLCJGaWx0ZXJDaGlwIiwidXNlR2V0VGVhbXMiLCJTRUFSQ0hfRVZFTlQiLCJTZWFyY2giLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRmlsdGVyc0NvbnRhaW5lciIsIl9yZWYiLCJoYW5kbGVHZXRVc2VyUG9zaXRpb25GaWx0ZXJQcm9wIiwiaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyIiwiX3VzZVRyYW5zbGF0aW9uIiwidCIsIl91c2VVc2Vyc1F1ZXJ5IiwiaGFuZGxlR2V0VXNlcnMiLCJwb3NpdGlvbnMiLCJfdXNlR2V0VGVhbXMiLCJoYW5kbGVHZXRUZWFtcyIsImxvYWRpbmciLCJlcnJvciIsImRhdGEiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWFyY2hUZXJtVmFsdWUiLCJzZXRTZWFyY2hUZXJtVmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRlYW1PcHRpb25zIiwic2V0VGVhbU9wdGlvbnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBvc2l0aW9uT3B0aW9ucyIsInNldFBvc2l0aW9uT3B0aW9ucyIsImRlZmF1bHRQb3NpdGlvbnNSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkVGVhbXMiLCJzZXRTZWxlY3RlZFRlYW1zIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJzZWxlY3RlZFBvc2l0aW9ucyIsInNldFNlbGVjdGVkUG9zaXRpb25zIiwiYnVpbGRBbmRTZW5kVXNlclJlcXVlc3QiLCJfcmVmMiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInNlYXJjaElucHV0T3ZlcnJpZGUiLCJ0ZWFtc092ZXJyaWRlIiwicG9zaXRpb25zT3ZlcnJpZGUiLCJwb3NpdGlvbnNGaWx0ZXIiLCJ0ZWFtc0ZpbHRlciIsInRlYW1zIiwidmFsdWVzVG9GaWx0ZXIiLCJfb2JqZWN0U3ByZWFkIiwic2VhcmNoSW5wdXQiLCJwYWdlIiwiaGFuZGxlU2VhcmNoIiwiZXZlbnQiLCJfZXZlbnQkZGV0YWlsIiwiZGV0YWlsIiwic2VhcmNoVGVybSIsInR5cGUiLCJBcnJheSIsImlzQXJyYXkiLCJhcmVUZWFtc0VxdWFsIiwiZXZlcnkiLCJ2YWx1ZSIsImluZGV4IiwiYXJlUG9zaXRpb25zRXF1YWwiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm1hcCIsInRlYW0iLCJpZCIsImxhYmVsIiwibmFtZSIsImN1cnJlbnQiLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwiY2hpbGRyZW4iLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRhaW5lci9GaWx0ZXJzL0ZpbHRlcnNDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlcnNRdWVyeSB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgRmlsdGVyQ2hpcCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRmlsdGVycy9GaWx0ZXJDaGlwJ1xuaW1wb3J0IHsgdXNlR2V0VGVhbXMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VHZXRUZWFtcydcbmltcG9ydCB7IFNFQVJDSF9FVkVOVCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNlYXJjaEV2ZW50J1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9TZWFyY2gvU2VhcmNoJ1xuXG50eXBlIEZpbHRlcnNDb250YWluZXJQcm9wcyA9IHtcbiAgaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyPzogKG5hbWU6IHN0cmluZywgcGFnZT86IG51bWJlcikgPT4gdm9pZFxufVxuXG5leHBvcnQgY29uc3QgRmlsdGVyc0NvbnRhaW5lciA9IG1lbW8oXG4gICh7IGhhbmRsZUdldFVzZXJQb3NpdGlvbkZpbHRlcjogaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyUHJvcCB9OiBGaWx0ZXJzQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdwZW9wbGUnKVxuICAgIGNvbnN0IHsgaGFuZGxlR2V0VXNlcnMsIHBvc2l0aW9ucyB9ID0gdXNlVXNlcnNRdWVyeSgpXG4gICAgY29uc3QgeyBoYW5kbGVHZXRUZWFtcywgbG9hZGluZywgZXJyb3IsIGRhdGEgfSA9IHVzZUdldFRlYW1zKClcbiAgICBjb25zdCBoYW5kbGVHZXRVc2VyUG9zaXRpb25GaWx0ZXIgPSBoYW5kbGVHZXRVc2VyUG9zaXRpb25GaWx0ZXJQcm9wID8/ICgoKSA9PiB7fSlcblxuICAgIGNvbnN0IFtzZWFyY2hUZXJtVmFsdWUsIHNldFNlYXJjaFRlcm1WYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgICBjb25zdCBbdGVhbU9wdGlvbnMsIHNldFRlYW1PcHRpb25zXSA9IHVzZVN0YXRlPHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10+KFtdKVxuICAgIGNvbnN0IFtwb3NpdGlvbk9wdGlvbnMsIHNldFBvc2l0aW9uT3B0aW9uc10gPSB1c2VTdGF0ZTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdPihwb3NpdGlvbnMgfHwgW10pXG4gICAgY29uc3QgZGVmYXVsdFBvc2l0aW9uc1JlZiA9IHVzZVJlZjx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmc7IGNhdGVnb3J5TmFtZT86IHN0cmluZyB9W10+KHBvc2l0aW9ucyB8fCBbXSlcblxuICAgIGNvbnN0IFtzZWxlY3RlZFRlYW1zLCBzZXRTZWxlY3RlZFRlYW1zXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSlcbiAgICBjb25zdCBbc2VsZWN0ZWRQb3NpdGlvbnMsIHNldFNlbGVjdGVkUG9zaXRpb25zXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSlcblxuICAgIGNvbnN0IGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0ID0gKHtcbiAgICAgIHNlYXJjaElucHV0T3ZlcnJpZGUsXG4gICAgICB0ZWFtc092ZXJyaWRlLFxuICAgICAgcG9zaXRpb25zT3ZlcnJpZGUsXG4gICAgfToge1xuICAgICAgc2VhcmNoSW5wdXRPdmVycmlkZT86IHN0cmluZ1xuICAgICAgdGVhbXNPdmVycmlkZT86IG51bWJlcltdXG4gICAgICBwb3NpdGlvbnNPdmVycmlkZT86IG51bWJlcltdXG4gICAgfSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCBwb3NpdGlvbnNGaWx0ZXIgPVxuICAgICAgICBwb3NpdGlvbnNPdmVycmlkZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBwb3NpdGlvbnNPdmVycmlkZS5sZW5ndGhcbiAgICAgICAgICAgID8geyBwb3NpdGlvbnM6IHBvc2l0aW9uc092ZXJyaWRlIH1cbiAgICAgICAgICAgIDoge31cbiAgICAgICAgICA6IHNlbGVjdGVkUG9zaXRpb25zLmxlbmd0aFxuICAgICAgICAgID8geyBwb3NpdGlvbnM6IHNlbGVjdGVkUG9zaXRpb25zIH1cbiAgICAgICAgICA6IHt9XG4gICAgICBjb25zdCB0ZWFtc0ZpbHRlciA9XG4gICAgICAgIHRlYW1zT3ZlcnJpZGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdGVhbXNPdmVycmlkZS5sZW5ndGhcbiAgICAgICAgICAgID8geyB0ZWFtczogdGVhbXNPdmVycmlkZSB9XG4gICAgICAgICAgICA6IHt9XG4gICAgICAgICAgOiBzZWxlY3RlZFRlYW1zLmxlbmd0aFxuICAgICAgICAgID8geyB0ZWFtczogc2VsZWN0ZWRUZWFtcyB9XG4gICAgICAgICAgOiB7fVxuICAgICAgY29uc3QgdmFsdWVzVG9GaWx0ZXIgPSB7IC4uLnBvc2l0aW9uc0ZpbHRlciwgLi4udGVhbXNGaWx0ZXIgfVxuXG4gICAgICBoYW5kbGVHZXRVc2Vycyh7XG4gICAgICAgIHNlYXJjaElucHV0OiBzZWFyY2hJbnB1dE92ZXJyaWRlICE9PSB1bmRlZmluZWQgPyBzZWFyY2hJbnB1dE92ZXJyaWRlIDogc2VhcmNoVGVybVZhbHVlLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICB2YWx1ZXNUb0ZpbHRlcjogdmFsdWVzVG9GaWx0ZXIgYXMgYW55LFxuICAgICAgfSlcbiAgICB9XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlU2VhcmNoID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7IHNlYXJjaFRlcm0sIHR5cGUsIHZhbHVlc1RvRmlsdGVyIH0gPSBldmVudC5kZXRhaWxcbiAgICAgICAgaWYgKHR5cGUgPT09ICdmaWx0ZXIxJykge1xuICAgICAgICAgIHNldFNlYXJjaFRlcm1WYWx1ZShzZWFyY2hUZXJtKVxuICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgc2VhcmNoSW5wdXRPdmVycmlkZTogc2VhcmNoVGVybSB9KVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGUgPT09ICd0ZWFtRmlsdGVyJykge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlc1RvRmlsdGVyKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlc1RvRmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBhcmVUZWFtc0VxdWFsID0gdmFsdWVzVG9GaWx0ZXIuZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4gdmFsdWUgPT09IHNlbGVjdGVkVGVhbXNbaW5kZXhdKVxuICAgICAgICAgICAgICBpZiAoYXJlVGVhbXNFcXVhbCkgcmV0dXJuXG4gICAgICAgICAgICAgIHNldFNlbGVjdGVkVGVhbXModmFsdWVzVG9GaWx0ZXIpXG4gICAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHtcbiAgICAgICAgICAgICAgICB0ZWFtc092ZXJyaWRlOiB2YWx1ZXNUb0ZpbHRlcixcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldFNlbGVjdGVkVGVhbXMoW10pXG4gICAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgdGVhbXNPdmVycmlkZTogW10gfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGFuZGxlR2V0VGVhbXMoMSwgc2VhcmNoVGVybSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZSA9PT0gJ3Bvc2l0aW9uRmlsdGVyJykge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlc1RvRmlsdGVyKSkge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZXNUb0ZpbHRlci5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRQb3NpdGlvbnMoW10pXG4gICAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgcG9zaXRpb25zT3ZlcnJpZGU6IFtdIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBhcmVQb3NpdGlvbnNFcXVhbCA9IHZhbHVlc1RvRmlsdGVyLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHZhbHVlID09PSBzZWxlY3RlZFBvc2l0aW9uc1tpbmRleF0pXG4gICAgICAgICAgICAgIGlmIChhcmVQb3NpdGlvbnNFcXVhbCkgcmV0dXJuXG4gICAgICAgICAgICAgIHNldFNlbGVjdGVkUG9zaXRpb25zKHZhbHVlc1RvRmlsdGVyKVxuICAgICAgICAgICAgICBidWlsZEFuZFNlbmRVc2VyUmVxdWVzdCh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zT3ZlcnJpZGU6IHZhbHVlc1RvRmlsdGVyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2VhcmNoVGVybSkge1xuICAgICAgICAgICAgaGFuZGxlR2V0VXNlclBvc2l0aW9uRmlsdGVyKHNlYXJjaFRlcm0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFNFQVJDSF9FVkVOVCwgaGFuZGxlU2VhcmNoIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFNFQVJDSF9FVkVOVCwgaGFuZGxlU2VhcmNoIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgIH1cbiAgICB9LCBbaGFuZGxlR2V0VGVhbXMsIGhhbmRsZUdldFVzZXJQb3NpdGlvbkZpbHRlciwgaGFuZGxlR2V0VXNlcnMsIHNlYXJjaFRlcm1WYWx1ZV0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGRhdGE/LnRlYW1zICYmICFsb2FkaW5nICYmICFlcnJvcikge1xuICAgICAgICBzZXRUZWFtT3B0aW9ucyhkYXRhLnRlYW1zLmRhdGEubWFwKHRlYW0gPT4gKHsgaWQ6IHRlYW0uaWQsIGxhYmVsOiB0ZWFtLm5hbWUgfSkpKVxuICAgICAgfVxuICAgIH0sIFtkYXRhLCBsb2FkaW5nLCBlcnJvcl0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHBvc2l0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgIHNldFBvc2l0aW9uT3B0aW9ucyhwb3NpdGlvbnMpXG4gICAgICAgIGRlZmF1bHRQb3NpdGlvbnNSZWYuY3VycmVudCA9IHBvc2l0aW9uc1xuICAgICAgfVxuICAgIH0sIFtwb3NpdGlvbnNdKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgZ2FwOiAnMTBweCcsXG4gICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxTZWFyY2ggLz5cbiAgICAgICAgPEZpbHRlckNoaXAgaWQ9XCJ0ZWFtRmlsdGVyXCIgbGFiZWw9e3QoJ2ZpbHRlcnMudGVhbScpfSBvcHRpb25zPXt0ZWFtT3B0aW9uc30gLz5cbiAgICAgICAgPEZpbHRlckNoaXAgaWQ9XCJwb3NpdGlvbkZpbHRlclwiIGxhYmVsPXt0KCdmaWx0ZXJzLnBvc2l0aW9uJyl9IG9wdGlvbnM9e3Bvc2l0aW9uT3B0aW9uc30gLz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuKVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLElBQUksRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sUUFBUSxPQUFPO0FBQ3pELFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLGFBQWEsUUFBUSw0QkFBNEI7QUFDMUQsU0FBU0MsVUFBVSxRQUFRLHFDQUFxQztBQUNoRSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLFlBQVksUUFBUSw0QkFBNEI7QUFDekQsU0FBU0MsTUFBTSxRQUFRLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFNdkQsT0FBTyxJQUFNQyxnQkFBZ0IsZ0JBQUdkLElBQUksQ0FDbEMsVUFB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
208
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VSZWYiLCJ1c2VUcmFuc2xhdGlvbiIsInVzZVVzZXJzUXVlcnkiLCJGaWx0ZXJDaGlwIiwidXNlR2V0VGVhbXMiLCJTRUFSQ0hfRVZFTlQiLCJTZWFyY2giLCJMYXlvdXRTZWFyY2hVc2VyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZpbHRlcnNDb250YWluZXIiLCJfdXNlVHJhbnNsYXRpb24iLCJ0IiwiX3VzZVVzZXJzUXVlcnkiLCJoYW5kbGVHZXRVc2VycyIsInBvc2l0aW9ucyIsIl91c2VHZXRUZWFtcyIsImxvYWRpbmciLCJlcnJvciIsImRhdGEiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZWFyY2hUZXJtVmFsdWUiLCJzZXRTZWFyY2hUZXJtVmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInRlYW1PcHRpb25zIiwic2V0VGVhbU9wdGlvbnMiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBvc2l0aW9uT3B0aW9ucyIsInNldFBvc2l0aW9uT3B0aW9ucyIsImRlZmF1bHRQb3NpdGlvbnNSZWYiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInNlbGVjdGVkVGVhbXMiLCJzZXRTZWxlY3RlZFRlYW1zIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJzZWxlY3RlZFBvc2l0aW9ucyIsInNldFNlbGVjdGVkUG9zaXRpb25zIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwidGVhbVNlYXJjaFRlcm0iLCJzZXRUZWFtU2VhcmNoVGVybSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJwb3NpdGlvblNlYXJjaFRlcm0iLCJzZXRQb3NpdGlvblNlYXJjaFRlcm0iLCJidWlsZEFuZFNlbmRVc2VyUmVxdWVzdCIsIl9yZWYiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJzZWFyY2hJbnB1dE92ZXJyaWRlIiwidGVhbXNPdmVycmlkZSIsInBvc2l0aW9uc092ZXJyaWRlIiwicG9zaXRpb25zRmlsdGVyIiwidGVhbXNGaWx0ZXIiLCJ0ZWFtIiwidmFsdWVzVG9GaWx0ZXIiLCJfb2JqZWN0U3ByZWFkIiwic2VhcmNoSW5wdXQiLCJwYWdlIiwiaGFuZGxlU2VhcmNoIiwiZXZlbnQiLCJfZXZlbnQkZGV0YWlsIiwiZGV0YWlsIiwic2VhcmNoVGVybSIsInR5cGUiLCJBcnJheSIsImlzQXJyYXkiLCJhcmVUZWFtc0VxdWFsIiwiZXZlcnkiLCJ2YWx1ZSIsImluZGV4IiwiYXJlUG9zaXRpb25zRXF1YWwiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIl9kYXRhJHRlYW1zVXNlcnMiLCJ0ZWFtc1VzZXJzIiwibWFwIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJjdXJyZW50IiwidGVhbU9wdGlvbnNUb1Nob3ciLCJ0cmltIiwidGVybSIsInRvTG93ZXJDYXNlIiwic2VsZWN0ZWRPcHRzIiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJmaWx0ZXJlZE9wdHMiLCJmaWx0ZXJlZElkcyIsIlNldCIsIm8iLCJzZWxlY3RlZE5vdEluRmlsdGVyZWQiLCJoYXMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJwb3NpdGlvbk9wdGlvbnNUb1Nob3ciLCJwb3NXaXRoQ2F0ZWdvcnkiLCJwIiwiY2F0ZWdvcnlOYW1lIiwiY2hpbGRyZW4iLCJvcHRpb25zIiwiZW1wdHlNZXNzYWdlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRhaW5lci9GaWx0ZXJzL0ZpbHRlcnNDb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9pbmRlbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLW5lc3RlZC10ZXJuYXJ5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L3JlcXVpcmUtZGVmYXVsdC1wcm9wcyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZWYgKi9cbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlVXNlcnNRdWVyeSB9IGZyb20gJy4uLy4uL2NvbnRleHQvVXNlcnNDb250ZXh0J1xuaW1wb3J0IHsgRmlsdGVyQ2hpcCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvRmlsdGVycy9GaWx0ZXJDaGlwJ1xuaW1wb3J0IHsgdXNlR2V0VGVhbXMgfSBmcm9tICcuLi8uLi9ob29rcy91c2VHZXRUZWFtcydcbmltcG9ydCB7IFNFQVJDSF9FVkVOVCB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVNlYXJjaEV2ZW50J1xuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9TZWFyY2gvU2VhcmNoJ1xuaW1wb3J0IHsgTGF5b3V0U2VhcmNoVXNlciB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dCdcblxuZXhwb3J0IGNvbnN0IEZpbHRlcnNDb250YWluZXIgPSBtZW1vKCgpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigncGVvcGxlJylcbiAgY29uc3QgeyBoYW5kbGVHZXRVc2VycywgcG9zaXRpb25zIH0gPSB1c2VVc2Vyc1F1ZXJ5KClcbiAgY29uc3QgeyBsb2FkaW5nLCBlcnJvciwgZGF0YSB9ID0gdXNlR2V0VGVhbXMoKVxuXG4gIGNvbnN0IFtzZWFyY2hUZXJtVmFsdWUsIHNldFNlYXJjaFRlcm1WYWx1ZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW3RlYW1PcHRpb25zLCBzZXRUZWFtT3B0aW9uc10gPSB1c2VTdGF0ZTx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmcgfVtdPihbXSlcbiAgY29uc3QgW3Bvc2l0aW9uT3B0aW9ucywgc2V0UG9zaXRpb25PcHRpb25zXSA9IHVzZVN0YXRlPHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9W10+KHBvc2l0aW9ucyB8fCBbXSlcbiAgY29uc3QgZGVmYXVsdFBvc2l0aW9uc1JlZiA9IHVzZVJlZjx7IGlkOiBudW1iZXI7IGxhYmVsOiBzdHJpbmc7IGNhdGVnb3J5TmFtZT86IHN0cmluZyB9W10+KHBvc2l0aW9ucyB8fCBbXSlcblxuICBjb25zdCBbc2VsZWN0ZWRUZWFtcywgc2V0U2VsZWN0ZWRUZWFtc10gPSB1c2VTdGF0ZTxudW1iZXJbXT4oW10pXG4gIGNvbnN0IFtzZWxlY3RlZFBvc2l0aW9ucywgc2V0U2VsZWN0ZWRQb3NpdGlvbnNdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKVxuICBjb25zdCBbdGVhbVNlYXJjaFRlcm0sIHNldFRlYW1TZWFyY2hUZXJtXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbcG9zaXRpb25TZWFyY2hUZXJtLCBzZXRQb3NpdGlvblNlYXJjaFRlcm1dID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgYnVpbGRBbmRTZW5kVXNlclJlcXVlc3QgPSAoe1xuICAgIHNlYXJjaElucHV0T3ZlcnJpZGUsXG4gICAgdGVhbXNPdmVycmlkZSxcbiAgICBwb3NpdGlvbnNPdmVycmlkZSxcbiAgfToge1xuICAgIHNlYXJjaElucHV0T3ZlcnJpZGU/OiBzdHJpbmdcbiAgICB0ZWFtc092ZXJyaWRlPzogbnVtYmVyW11cbiAgICBwb3NpdGlvbnNPdmVycmlkZT86IG51bWJlcltdXG4gIH0gPSB7fSkgPT4ge1xuICAgIGNvbnN0IHBvc2l0aW9uc0ZpbHRlciA9XG4gICAgICBwb3NpdGlvbnNPdmVycmlkZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gcG9zaXRpb25zT3ZlcnJpZGUubGVuZ3RoXG4gICAgICAgICAgPyB7IHBvc2l0aW9uczogcG9zaXRpb25zT3ZlcnJpZGUgfVxuICAgICAgICAgIDoge31cbiAgICAgICAgOiBzZWxlY3RlZFBvc2l0aW9ucy5sZW5ndGhcbiAgICAgICAgPyB7IHBvc2l0aW9uczogc2VsZWN0ZWRQb3NpdGlvbnMgfVxuICAgICAgICA6IHt9XG4gICAgY29uc3QgdGVhbXNGaWx0ZXIgPVxuICAgICAgdGVhbXNPdmVycmlkZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gdGVhbXNPdmVycmlkZS5sZW5ndGhcbiAgICAgICAgICA/IHsgdGVhbTogdGVhbXNPdmVycmlkZSB9XG4gICAgICAgICAgOiB7fVxuICAgICAgICA6IHNlbGVjdGVkVGVhbXMubGVuZ3RoXG4gICAgICAgID8geyB0ZWFtOiBzZWxlY3RlZFRlYW1zIH1cbiAgICAgICAgOiB7fVxuICAgIGNvbnN0IHZhbHVlc1RvRmlsdGVyID0geyAuLi5wb3NpdGlvbnNGaWx0ZXIsIC4uLnRlYW1zRmlsdGVyIH1cblxuICAgIGhhbmRsZUdldFVzZXJzKHtcbiAgICAgIHNlYXJjaElucHV0OiBzZWFyY2hJbnB1dE92ZXJyaWRlICE9PSB1bmRlZmluZWQgPyBzZWFyY2hJbnB1dE92ZXJyaWRlIDogc2VhcmNoVGVybVZhbHVlLFxuICAgICAgcGFnZTogMSxcbiAgICAgIHZhbHVlc1RvRmlsdGVyOiB2YWx1ZXNUb0ZpbHRlciBhcyBhbnksXG4gICAgfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBzZWFyY2hUZXJtLCB0eXBlLCB2YWx1ZXNUb0ZpbHRlciB9ID0gZXZlbnQuZGV0YWlsXG4gICAgICBpZiAodHlwZSA9PT0gJ2ZpbHRlcjEnKSB7XG4gICAgICAgIHNldFNlYXJjaFRlcm1WYWx1ZShzZWFyY2hUZXJtKVxuICAgICAgICBidWlsZEFuZFNlbmRVc2VyUmVxdWVzdCh7IHNlYXJjaElucHV0T3ZlcnJpZGU6IHNlYXJjaFRlcm0gfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlID09PSAndGVhbUZpbHRlcicpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzVG9GaWx0ZXIpKSB7XG4gICAgICAgICAgaWYgKHZhbHVlc1RvRmlsdGVyLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgYXJlVGVhbXNFcXVhbCA9IHZhbHVlc1RvRmlsdGVyLmV2ZXJ5KCh2YWx1ZSwgaW5kZXg6IG51bWJlcikgPT4gdmFsdWUgPT09IHNlbGVjdGVkVGVhbXNbaW5kZXhdKVxuICAgICAgICAgICAgaWYgKGFyZVRlYW1zRXF1YWwpIHJldHVyblxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRUZWFtcyh2YWx1ZXNUb0ZpbHRlcilcbiAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHtcbiAgICAgICAgICAgICAgdGVhbXNPdmVycmlkZTogdmFsdWVzVG9GaWx0ZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFRlYW1zKFtdKVxuICAgICAgICAgICAgYnVpbGRBbmRTZW5kVXNlclJlcXVlc3QoeyB0ZWFtc092ZXJyaWRlOiBbXSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRUZWFtU2VhcmNoVGVybShzZWFyY2hUZXJtID8/ICcnKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlID09PSAncG9zaXRpb25GaWx0ZXInKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlc1RvRmlsdGVyKSkge1xuICAgICAgICAgIGlmICghdmFsdWVzVG9GaWx0ZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZFBvc2l0aW9ucyhbXSlcbiAgICAgICAgICAgIGJ1aWxkQW5kU2VuZFVzZXJSZXF1ZXN0KHsgcG9zaXRpb25zT3ZlcnJpZGU6IFtdIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZVBvc2l0aW9uc0VxdWFsID0gdmFsdWVzVG9GaWx0ZXIuZXZlcnkoKHZhbHVlLCBpbmRleDogbnVtYmVyKSA9PiB2YWx1ZSA9PT0gc2VsZWN0ZWRQb3NpdGlvbnNbaW5kZXhdKVxuICAgICAgICAgICAgaWYgKGFyZVBvc2l0aW9uc0VxdWFsKSByZXR1cm5cbiAgICAgICAgICAgIHNldFNlbGVjdGVkUG9zaXRpb25zKHZhbHVlc1RvRmlsdGVyKVxuICAgICAgICAgICAgYnVpbGRBbmRTZW5kVXNlclJlcXVlc3Qoe1xuICAgICAgICAgICAgICBwb3NpdGlvbnNPdmVycmlkZTogdmFsdWVzVG9GaWx0ZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRQb3NpdGlvblNlYXJjaFRlcm0oc2VhcmNoVGVybSA/PyAnJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFNFQVJDSF9FVkVOVCwgaGFuZGxlU2VhcmNoIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lcilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoU0VBUkNIX0VWRU5ULCBoYW5kbGVTZWFyY2ggYXMgdW5rbm93biBhcyBFdmVudExpc3RlbmVyKVxuICAgIH1cbiAgfSwgW2hhbmRsZUdldFVzZXJzLCBzZWFyY2hUZXJtVmFsdWUsIHNlbGVjdGVkVGVhbXMsIHNlbGVjdGVkUG9zaXRpb25zXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkYXRhPy50ZWFtc1VzZXJzPy5kYXRhICYmICFsb2FkaW5nICYmICFlcnJvcikge1xuICAgICAgc2V0VGVhbU9wdGlvbnMoZGF0YS50ZWFtc1VzZXJzLmRhdGEubWFwKHRlYW0gPT4gKHsgaWQ6IHRlYW0uaWQsIGxhYmVsOiB0ZWFtLm5hbWUgfSkpKVxuICAgIH1cbiAgfSwgW2RhdGEsIGxvYWRpbmcsIGVycm9yXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwb3NpdGlvbnMpIHtcbiAgICAgIHNldFBvc2l0aW9uT3B0aW9ucyhwb3NpdGlvbnMpXG4gICAgICBpZiAocG9zaXRpb25zLmxlbmd0aCkge1xuICAgICAgICBkZWZhdWx0UG9zaXRpb25zUmVmLmN1cnJlbnQgPSBwb3NpdGlvbnNcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtwb3NpdGlvbnNdKVxuXG4gIGNvbnN0IHRlYW1PcHRpb25zVG9TaG93ID0gIXRlYW1TZWFyY2hUZXJtLnRyaW0oKVxuICAgID8gdGVhbU9wdGlvbnNcbiAgICA6ICgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm0gPSB0ZWFtU2VhcmNoVGVybS50cmltKCkudG9Mb3dlckNhc2UoKVxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdHMgPSB0ZWFtT3B0aW9ucy5maWx0ZXIodGVhbSA9PiBzZWxlY3RlZFRlYW1zLmluY2x1ZGVzKHRlYW0uaWQpKVxuICAgICAgICBjb25zdCBmaWx0ZXJlZE9wdHMgPSB0ZWFtT3B0aW9ucy5maWx0ZXIodGVhbSA9PiB0ZWFtLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSkpXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkSWRzID0gbmV3IFNldChmaWx0ZXJlZE9wdHMubWFwKG8gPT4gby5pZCkpXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTm90SW5GaWx0ZXJlZCA9IHNlbGVjdGVkT3B0cy5maWx0ZXIobyA9PiAhZmlsdGVyZWRJZHMuaGFzKG8uaWQpKVxuICAgICAgICByZXR1cm4gWy4uLnNlbGVjdGVkTm90SW5GaWx0ZXJlZCwgLi4uZmlsdGVyZWRPcHRzXVxuICAgICAgfSkoKVxuXG4gIGNvbnN0IHBvc2l0aW9uT3B0aW9uc1RvU2hvdyA9ICFwb3NpdGlvblNlYXJjaFRlcm0udHJpbSgpXG4gICAgPyBwb3NpdGlvbk9wdGlvbnNcbiAgICA6ICgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlcm0gPSBwb3NpdGlvblNlYXJjaFRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgY29uc3QgcG9zV2l0aENhdGVnb3J5ID0gcG9zaXRpb25PcHRpb25zIGFzIHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZzsgY2F0ZWdvcnlOYW1lPzogc3RyaW5nIH1bXVxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdHMgPSBwb3NXaXRoQ2F0ZWdvcnkuZmlsdGVyKHAgPT4gc2VsZWN0ZWRQb3NpdGlvbnMuaW5jbHVkZXMocC5pZCkpXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkT3B0cyA9IHBvc1dpdGhDYXRlZ29yeS5maWx0ZXIoXG4gICAgICAgICAgcCA9PiBwLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSkgfHwgKHAuY2F0ZWdvcnlOYW1lICYmIHAuY2F0ZWdvcnlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSkpXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgZmlsdGVyZWRJZHMgPSBuZXcgU2V0KGZpbHRlcmVkT3B0cy5tYXAobyA9PiBvLmlkKSlcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWROb3RJbkZpbHRlcmVkID0gc2VsZWN0ZWRPcHRzLmZpbHRlcihvID0+ICFmaWx0ZXJlZElkcy5oYXMoby5pZCkpXG4gICAgICAgIHJldHVybiBbLi4uc2VsZWN0ZWROb3RJbkZpbHRlcmVkLCAuLi5maWx0ZXJlZE9wdHNdXG4gICAgICB9KSgpXG5cbiAgcmV0dXJuIChcbiAgICA8TGF5b3V0U2VhcmNoVXNlcj5cbiAgICAgIDxTZWFyY2ggLz5cbiAgICAgIDxGaWx0ZXJDaGlwXG4gICAgICAgIGlkPVwidGVhbUZpbHRlclwiXG4gICAgICAgIGxhYmVsPXt0KCdmaWx0ZXJzLnRlYW0nKX1cbiAgICAgICAgb3B0aW9ucz17dGVhbU9wdGlvbnNUb1Nob3d9XG4gICAgICAgIGVtcHR5TWVzc2FnZT17dCgndXNlcnMuZW1wdHlGaWx0ZXJNZXNzYWdlJyl9XG4gICAgICAvPlxuICAgICAgPEZpbHRlckNoaXBcbiAgICAgICAgaWQ9XCJwb3NpdGlvbkZpbHRlclwiXG4gICAgICAgIGxhYmVsPXt0KCdmaWx0ZXJzLnBvc2l0aW9uJyl9XG4gICAgICAgIG9wdGlvbnM9e3Bvc2l0aW9uT3B0aW9uc1RvU2hvd31cbiAgICAgICAgZW1wdHlNZXNzYWdlPXt0KCd1c2Vycy5lbXB0eUZpbHRlck1lc3NhZ2UnKX1cbiAgICAgIC8+XG4gICAgPC9MYXlvdXRTZWFyY2hVc2VyPlxuICApXG59KVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxJQUFJLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUN6RCxTQUFTQyxjQUFjLFFBQVEsZUFBZTtBQUM5QyxTQUFTQyxhQUFhLFFBQVEsNEJBQTRCO0FBQzFELFNBQVNDLFVBQVUsUUFBUSxxQ0FBcUM7QUFDaEUsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUNyRCxTQUFTQyxZQUFZLFFBQVEsNEJBQTRCO0FBQ3pELFNBQVNDLE1BQU0sUUFBUSxnQ0FBZ0M7QUFDdkQsU0FBU0MsZ0JBQWdCLFFBQVEsZ0NBQWdDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUVqRSxPQUFPLElBQU1DLGdCQUFnQixnQkFBR2YsSUFBSSxDQUFDLFlBQU07RUFDekMsSUFBQWdCLGVBQUEsR0FBY1osY0FBYyxDQUFDLFFBQVEsQ0FBQztJQUE5QmEsQ0FBQyxHQUFBRCxlQUFBLENBQURDLENBQUM7RUFDVCxJQUFBQyxjQUFBLEdBQXNDYixhQUFhLENBQUMsQ0FBQztJQUE3Q2MsY0FBYyxHQUFBRCxjQUFBLENBQWRDLGNBQWM7SUFBRUMsU0FBUyxHQUFBRixjQUFBLENBQVRFLFNBQVM7RUFDakMsSUFBQUMsWUFBQSxHQUFpQ2QsV0FBVyxDQUFDLENBQUM7SUFBdENlLE9BQU8sR0FBQUQsWUFBQSxDQUFQQyxPQUFPO0lBQUVDLEtBQUssR0FBQUYsWUFBQSxDQUFMRSxLQUFLO0lBQUVDLElBQUksR0FBQUgsWUFBQSxD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
@@ -1,19 +1,15 @@
1
- import { memo } from 'react';
1
+ import { memo, useMemo } from 'react';
2
2
  import { useTeams } from '../../context/TeamsContext';
3
3
  import { LayoutSection } from '../../components/Layout';
4
4
  import { HeaderTeams } from '../../components/HeaderTeams';
5
5
  import { EmptyStateTeams } from '../../components/EmptyStateTeams';
6
6
  import { useGetTeams } from '../../hooks/useGetTeams';
7
7
  import { ErrorTeams } from '../../components/ErrorTeams';
8
- import { ShowMore } from '../../components/ShowMore';
9
8
  import { TableContainer } from '../TableContainer/TableContainer';
10
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
10
  export var MainTeamsView = /*#__PURE__*/memo(function () {
12
11
  var _useTeams = useTeams(),
13
- teams = _useTeams.teams,
14
- totalTeams = _useTeams.totalTeams,
15
- currentPage = _useTeams.currentPage,
16
- setCurrentPage = _useTeams.setCurrentPage;
12
+ teams = _useTeams.teams;
17
13
  var _useGetTeams = useGetTeams(),
18
14
  loading = _useGetTeams.loading,
19
15
  error = _useGetTeams.error;
@@ -21,20 +17,20 @@ export var MainTeamsView = /*#__PURE__*/memo(function () {
21
17
  var event = new CustomEvent('createTeam');
22
18
  window.dispatchEvent(event);
23
19
  };
24
- var handleClickShowMore = function handleClickShowMore() {
25
- setCurrentPage(currentPage + 1);
26
- };
20
+ var hasTeams = useMemo(function () {
21
+ return teams.length > 0;
22
+ }, [teams]);
27
23
  return /*#__PURE__*/_jsxs(LayoutSection, {
28
24
  children: [/*#__PURE__*/_jsx(HeaderTeams, {
29
- showCreateButton: teams.length > 0,
25
+ showCreateButton: hasTeams,
30
26
  clickCreateTeam: handleCreateTeam
31
- }), error && /*#__PURE__*/_jsx(ErrorTeams, {}), teams.length > 0 ? /*#__PURE__*/_jsx(TableContainer, {
32
- loading: loading
33
- }) : /*#__PURE__*/_jsx(EmptyStateTeams, {
27
+ }), error && /*#__PURE__*/_jsx(ErrorTeams, {}), hasTeams ? /*#__PURE__*/_jsx(TableContainer, {
28
+ loading: loading,
29
+ error: !!error,
30
+ hasTeams: true
31
+ }) : !error && !loading && /*#__PURE__*/_jsx(EmptyStateTeams, {
34
32
  clickCreateTeam: handleCreateTeam
35
- }), currentPage < totalTeams && /*#__PURE__*/_jsx(ShowMore, {
36
- clickShowMore: handleClickShowMore
37
33
  })]
38
34
  });
39
35
  });
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlVGVhbXMiLCJMYXlvdXRTZWN0aW9uIiwiSGVhZGVyVGVhbXMiLCJFbXB0eVN0YXRlVGVhbXMiLCJ1c2VHZXRUZWFtcyIsIkVycm9yVGVhbXMiLCJTaG93TW9yZSIsIlRhYmxlQ29udGFpbmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIk1haW5UZWFtc1ZpZXciLCJfdXNlVGVhbXMiLCJ0ZWFtcyIsInRvdGFsVGVhbXMiLCJjdXJyZW50UGFnZSIsInNldEN1cnJlbnRQYWdlIiwiX3VzZUdldFRlYW1zIiwibG9hZGluZyIsImVycm9yIiwiaGFuZGxlQ3JlYXRlVGVhbSIsImV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJ3aW5kb3ciLCJkaXNwYXRjaEV2ZW50IiwiaGFuZGxlQ2xpY2tTaG93TW9yZSIsImNoaWxkcmVuIiwic2hvd0NyZWF0ZUJ1dHRvbiIsImxlbmd0aCIsImNsaWNrQ3JlYXRlVGVhbSIsImNsaWNrU2hvd01vcmUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL01haW5WaWV3L01haW5UZWFtc1ZpZXcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRlYW1zIH0gZnJvbSAnLi4vLi4vY29udGV4dC9UZWFtc0NvbnRleHQnXG5pbXBvcnQgeyBMYXlvdXRTZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9MYXlvdXQnXG5pbXBvcnQgeyBIZWFkZXJUZWFtcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSGVhZGVyVGVhbXMnXG5pbXBvcnQgeyBFbXB0eVN0YXRlVGVhbXMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0VtcHR5U3RhdGVUZWFtcydcbmltcG9ydCB7IHVzZUdldFRlYW1zIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlR2V0VGVhbXMnXG5pbXBvcnQgeyBFcnJvclRlYW1zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9FcnJvclRlYW1zJ1xuaW1wb3J0IHsgU2hvd01vcmUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1Nob3dNb3JlJ1xuaW1wb3J0IHsgVGFibGVDb250YWluZXIgfSBmcm9tICcuLi9UYWJsZUNvbnRhaW5lci9UYWJsZUNvbnRhaW5lcidcblxuZXhwb3J0IGNvbnN0IE1haW5UZWFtc1ZpZXcgPSBtZW1vKCgpID0+IHtcbiAgY29uc3QgeyB0ZWFtcywgdG90YWxUZWFtcywgY3VycmVudFBhZ2UsIHNldEN1cnJlbnRQYWdlIH0gPSB1c2VUZWFtcygpXG4gIGNvbnN0IHsgbG9hZGluZywgZXJyb3IgfSA9IHVzZUdldFRlYW1zKClcblxuICBjb25zdCBoYW5kbGVDcmVhdGVUZWFtID0gKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCdjcmVhdGVUZWFtJylcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChldmVudClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrU2hvd01vcmUgPSAoKSA9PiB7XG4gICAgc2V0Q3VycmVudFBhZ2UoY3VycmVudFBhZ2UgKyAxKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8TGF5b3V0U2VjdGlvbj5cbiAgICAgIDxIZWFkZXJUZWFtcyBzaG93Q3JlYXRlQnV0dG9uPXt0ZWFtcy5sZW5ndGggPiAwfSBjbGlja0NyZWF0ZVRlYW09e2hhbmRsZUNyZWF0ZVRlYW19IC8+XG4gICAgICB7ZXJyb3IgJiYgPEVycm9yVGVhbXMgLz59XG4gICAgICB7dGVhbXMubGVuZ3RoID4gMCA/IDxUYWJsZUNvbnRhaW5lciBsb2FkaW5nPXtsb2FkaW5nfSAvPiA6IDxFbXB0eVN0YXRlVGVhbXMgY2xpY2tDcmVhdGVUZWFtPXtoYW5kbGVDcmVhdGVUZWFtfSAvPn1cbiAgICAgIHtjdXJyZW50UGFnZSA8IHRvdGFsVGVhbXMgJiYgPFNob3dNb3JlIGNsaWNrU2hvd01vcmU9e2hhbmRsZUNsaWNrU2hvd01vcmV9IC8+fVxuICAgIDwvTGF5b3V0U2VjdGlvbj5cbiAgKVxufSlcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsSUFBSSxRQUFRLE9BQU87QUFDNUIsU0FBU0MsUUFBUSxRQUFRLDRCQUE0QjtBQUNyRCxTQUFTQyxhQUFhLFFBQVEseUJBQXlCO0FBQ3ZELFNBQVNDLFdBQVcsUUFBUSw4QkFBOEI7QUFDMUQsU0FBU0MsZUFBZSxRQUFRLGtDQUFrQztBQUNsRSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLFVBQVUsUUFBUSw2QkFBNkI7QUFDeEQsU0FBU0MsUUFBUSxRQUFRLDJCQUEyQjtBQUNwRCxTQUFTQyxjQUFjLFFBQVEsa0NBQWtDO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQUVqRSxPQUFPLElBQU1DLGFBQWEsZ0JBQUdiLElBQUksQ0FBQyxZQUFNO0VBQ3RDLElBQUFjLFNBQUEsR0FBMkRiLFFBQVEsQ0FBQyxDQUFDO0lBQTdEYyxLQUFLLEdBQUFELFNBQUEsQ0FBTEMsS0FBSztJQUFFQyxVQUFVLEdBQUFGLFNBQUEsQ0FBVkUsVUFBVTtJQUFFQyxXQUFXLEdBQUFILFNBQUEsQ0FBWEcsV0FBVztJQUFFQyxjQUFjLEdBQUFKLFNBQUEsQ0FBZEksY0FBYztFQUN0RCxJQUFBQyxZQUFBLEdBQTJCZCxXQUFXLENBQUMsQ0FBQztJQUFoQ2UsT0FBTyxHQUFBRCxZQUFBLENBQVBDLE9BQU87SUFBRUMsS0FBSyxHQUFBRixZQUFBLENBQUxFLEtBQUs7RUFFdEIsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FBQSxFQUFTO0lBQzdCLElBQU1DLEtBQUssR0FBRyxJQUFJQyxXQUFXLENBQUMsWUFBWSxDQUFDO0lBQzNDQyxNQUFNLENBQUNDLGFBQWEsQ0FBQ0gsS0FBSyxDQUFDO0VBQzdCLENBQUM7RUFFRCxJQUFNSSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBLEVBQVM7SUFDaENULGNBQWMsQ0FBQ0QsV0FBVyxHQUFHLENBQUMsQ0FBQztFQUNqQyxDQUFDO0VBRUQsb0JBQ0VMLEtBQUEsQ0FBQ1YsYUFBYTtJQUFBMEIsUUFBQSxnQkFDWmxCLElBQUEsQ0FBQ1AsV0FBVztNQUFDMEIsZ0JBQWdCLEVBQUVkLEtBQUssQ0FBQ2UsTUFBTSxHQUFHLENBQUU7TUFBQ0MsZUFBZSxFQUFFVDtJQUFpQixDQUFFLENBQUMsRUFDckZELEtBQUssaUJBQUlYLElBQUEsQ0FBQ0osVUFBVSxJQUFFLENBQUMsRUFDdkJTLEtBQUssQ0FBQ2UsTUFBTSxHQUFHLENBQUMsZ0JBQUdwQixJQUFBLENBQUNGLGNBQWM7TUFBQ1ksT0FBTyxFQUFFQTtJQUFRLENBQUUsQ0FBQyxnQkFBR1YsSUFBQSxDQUFDTixlQUFlO01BQUMyQixlQUFlLEVBQUVUO0lBQWlCLENBQUUsQ0FBQyxFQUNoSEwsV0FBVyxHQUFHRCxVQUFVLGlCQUFJTixJQUFBLENBQUNILFFBQVE7TUFBQ3lCLGFBQWEsRUFBRUw7SUFBb0IsQ0FBRSxDQUFDO0VBQUEsQ0FDaEUsQ0FBQztBQUVwQixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtZW1vIiwidXNlTWVtbyIsInVzZVRlYW1zIiwiTGF5b3V0U2VjdGlvbiIsIkhlYWRlclRlYW1zIiwiRW1wdHlTdGF0ZVRlYW1zIiwidXNlR2V0VGVhbXMiLCJFcnJvclRlYW1zIiwiVGFibGVDb250YWluZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiTWFpblRlYW1zVmlldyIsIl91c2VUZWFtcyIsInRlYW1zIiwiX3VzZUdldFRlYW1zIiwibG9hZGluZyIsImVycm9yIiwiaGFuZGxlQ3JlYXRlVGVhbSIsImV2ZW50IiwiQ3VzdG9tRXZlbnQiLCJ3aW5kb3ciLCJkaXNwYXRjaEV2ZW50IiwiaGFzVGVhbXMiLCJsZW5ndGgiLCJjaGlsZHJlbiIsInNob3dDcmVhdGVCdXR0b24iLCJjbGlja0NyZWF0ZVRlYW0iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udGFpbmVyL01haW5WaWV3L01haW5UZWFtc1ZpZXcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRlYW1zIH0gZnJvbSAnLi4vLi4vY29udGV4dC9UZWFtc0NvbnRleHQnXG5pbXBvcnQgeyBMYXlvdXRTZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9MYXlvdXQnXG5pbXBvcnQgeyBIZWFkZXJUZWFtcyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvSGVhZGVyVGVhbXMnXG5pbXBvcnQgeyBFbXB0eVN0YXRlVGVhbXMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL0VtcHR5U3RhdGVUZWFtcydcbmltcG9ydCB7IHVzZUdldFRlYW1zIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlR2V0VGVhbXMnXG5pbXBvcnQgeyBFcnJvclRlYW1zIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9FcnJvclRlYW1zJ1xuaW1wb3J0IHsgVGFibGVDb250YWluZXIgfSBmcm9tICcuLi9UYWJsZUNvbnRhaW5lci9UYWJsZUNvbnRhaW5lcidcblxuZXhwb3J0IGNvbnN0IE1haW5UZWFtc1ZpZXcgPSBtZW1vKCgpID0+IHtcbiAgY29uc3QgeyB0ZWFtcyB9ID0gdXNlVGVhbXMoKVxuICBjb25zdCB7IGxvYWRpbmcsIGVycm9yIH0gPSB1c2VHZXRUZWFtcygpXG5cbiAgY29uc3QgaGFuZGxlQ3JlYXRlVGVhbSA9ICgpID0+IHtcbiAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgnY3JlYXRlVGVhbScpXG4gICAgd2luZG93LmRpc3BhdGNoRXZlbnQoZXZlbnQpXG4gIH1cblxuICBjb25zdCBoYXNUZWFtcyA9IHVzZU1lbW8oKCkgPT4gdGVhbXMubGVuZ3RoID4gMCwgW3RlYW1zXSlcblxuICByZXR1cm4gKFxuICAgIDxMYXlvdXRTZWN0aW9uPlxuICAgICAgPEhlYWRlclRlYW1zIHNob3dDcmVhdGVCdXR0b249e2hhc1RlYW1zfSBjbGlja0NyZWF0ZVRlYW09e2hhbmRsZUNyZWF0ZVRlYW19IC8+XG4gICAgICB7ZXJyb3IgJiYgPEVycm9yVGVhbXMgLz59XG4gICAgICB7aGFzVGVhbXMgPyAoXG4gICAgICAgIDxUYWJsZUNvbnRhaW5lciBsb2FkaW5nPXtsb2FkaW5nfSBlcnJvcj17ISFlcnJvcn0gaGFzVGVhbXMgLz5cbiAgICAgICkgOiAoXG4gICAgICAgICFlcnJvciAmJiAhbG9hZGluZyAmJiA8RW1wdHlTdGF0ZVRlYW1zIGNsaWNrQ3JlYXRlVGVhbT17aGFuZGxlQ3JlYXRlVGVhbX0gLz5cbiAgICAgICl9XG4gICAgPC9MYXlvdXRTZWN0aW9uPlxuICApXG59KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxJQUFJLEVBQUVDLE9BQU8sUUFBUSxPQUFPO0FBQ3JDLFNBQVNDLFFBQVEsUUFBUSw0QkFBNEI7QUFDckQsU0FBU0MsYUFBYSxRQUFRLHlCQUF5QjtBQUN2RCxTQUFTQyxXQUFXLFFBQVEsOEJBQThCO0FBQzFELFNBQVNDLGVBQWUsUUFBUSxrQ0FBa0M7QUFDbEUsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUNyRCxTQUFTQyxVQUFVLFFBQVEsNkJBQTZCO0FBQ3hELFNBQVNDLGNBQWMsUUFBUSxrQ0FBa0M7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRWpFLE9BQU8sSUFBTUMsYUFBYSxnQkFBR2IsSUFBSSxDQUFDLFlBQU07RUFDdEMsSUFBQWMsU0FBQSxHQUFrQlosUUFBUSxDQUFDLENBQUM7SUFBcEJhLEtBQUssR0FBQUQsU0FBQSxDQUFMQyxLQUFLO0VBQ2IsSUFBQUMsWUFBQSxHQUEyQlYsV0FBVyxDQUFDLENBQUM7SUFBaENXLE9BQU8sR0FBQUQsWUFBQSxDQUFQQyxPQUFPO0lBQUVDLEtBQUssR0FBQUYsWUFBQSxDQUFMRSxLQUFLO0VBRXRCLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUztJQUM3QixJQUFNQyxLQUFLLEdBQUcsSUFBSUMsV0FBVyxDQUFDLFlBQVksQ0FBQztJQUMzQ0MsTUFBTSxDQUFDQyxhQUFhLENBQUNILEtBQUssQ0FBQztFQUM3QixDQUFDO0VBRUQsSUFBTUksUUFBUSxHQUFHdkIsT0FBTyxDQUFDO0lBQUEsT0FBTWMsS0FBSyxDQUFDVSxNQUFNLEdBQUcsQ0FBQztFQUFBLEdBQUUsQ0FBQ1YsS0FBSyxDQUFDLENBQUM7RUFFekQsb0JBQ0VILEtBQUEsQ0FBQ1QsYUFBYTtJQUFBdUIsUUFBQSxnQkFDWmhCLElBQUEsQ0FBQ04sV0FBVztNQUFDdUIsZ0JBQWdCLEVBQUVILFFBQVM7TUFBQ0ksZUFBZSxFQUFFVDtJQUFpQixDQUFFLENBQUMsRUFDN0VELEtBQUssaUJBQUlSLElBQUEsQ0FBQ0gsVUFBVSxJQUFFLENBQUMsRUFDdkJpQixRQUFRLGdCQUNQZCxJQUFBLENBQUNGLGNBQWM7TUFBQ1MsT0FBTyxFQUFFQSxPQUFRO01BQUNDLEtBQUssRUFBRSxDQUFDLENBQUNBLEtBQU07TUFBQ00sUUFBUTtJQUFBLENBQUUsQ0FBQyxHQUU3RCxDQUFDTixLQUFLLElBQUksQ0FBQ0QsT0FBTyxpQkFBSVAsSUFBQSxDQUFDTCxlQUFlO01BQUN1QixlQUFlLEVBQUVUO0lBQWlCLENBQUUsQ0FDNUU7RUFBQSxDQUNZLENBQUM7QUFFcEIsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119