@projectcor/people-microfront 1.0.9-0 → 1.0.9-1
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.
- package/lib/components/Filters/FilterChip/FilterChip.js +19 -2
- package/lib/components/HeaderTeams/HeaderTeams.js +14 -6
- package/lib/components/Search/Search.js +7 -4
- package/lib/container/Filters/FiltersContainer.js +137 -18
- package/lib/container/Filters/FiltersTeamsContainer.js +133 -127
- package/lib/container/MainView/MainTeamsView.js +37 -9
- package/lib/container/RouterComponent/RouterComponent.js +2 -5
- package/lib/context/UsersContext.js +29 -21
- package/lib/hooks/useGetTeams.js +16 -6
- package/lib/utils/isCorWorkspacesFeatureEnabled.js +7 -2
- package/lib/utils/peopleFiltersStorage.js +120 -0
- package/lib/utils/peopleFiltersUrl.js +147 -0
- package/lib/utils/tabUrl.js +3 -7
- package/package.json +1 -1
- package/lib/container/Filters/FiltersTeamsContainer.styles.js +0 -6
- package/lib/hooks/useFiltersTeams.js +0 -36
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
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; }
|
|
5
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
|
+
import { loadTeamsWorkspaceIds, loadUsersFilters } from './peopleFiltersStorage';
|
|
7
|
+
var URL_KEY_TAB = 'tab';
|
|
8
|
+
var URL_KEY_Q = 'q';
|
|
9
|
+
var URL_KEY_TEAM = 'team';
|
|
10
|
+
var URL_KEY_POSITION = 'position';
|
|
11
|
+
var URL_KEY_WORKSPACE = 'workspace';
|
|
12
|
+
var PEOPLE_FILTER_KEYS = [URL_KEY_Q, URL_KEY_TEAM, URL_KEY_POSITION, URL_KEY_WORKSPACE];
|
|
13
|
+
export function parseCsvIds(raw) {
|
|
14
|
+
if (raw == null || raw.trim() === '') return [];
|
|
15
|
+
return raw.split(',').map(function (s) {
|
|
16
|
+
return Number(String(s).trim());
|
|
17
|
+
}).filter(function (n) {
|
|
18
|
+
return Number.isFinite(n);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
function getTabFromSearchString(search) {
|
|
22
|
+
var params = new URLSearchParams(search.startsWith('?') ? search : "?".concat(search));
|
|
23
|
+
return params.get(URL_KEY_TAB);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Solo pestaña Usuarios (o sin `tab`, compatibilidad con links viejos) aplica filtros de usuarios en la URL. */
|
|
27
|
+
function isUsersTabForUrlMerge(search) {
|
|
28
|
+
var t = getTabFromSearchString(search);
|
|
29
|
+
return t === null || t === '' || t === 'users';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Solo con `tab=teams` se interpreta `workspace` como filtro de equipos. */
|
|
33
|
+
function isTeamsTabForUrlMerge(search) {
|
|
34
|
+
return getTabFromSearchString(search) === 'teams';
|
|
35
|
+
}
|
|
36
|
+
var emptyUsersFilters = function emptyUsersFilters() {
|
|
37
|
+
return {
|
|
38
|
+
searchInput: '',
|
|
39
|
+
selectedTeams: [],
|
|
40
|
+
selectedPositions: [],
|
|
41
|
+
selectedWorkspaces: []
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
function stripPeopleFilterKeys(p) {
|
|
45
|
+
PEOPLE_FILTER_KEYS.forEach(function (k) {
|
|
46
|
+
return p["delete"](k);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function applyUserFiltersToSearchParams(p, filters) {
|
|
50
|
+
var _filters$searchInput;
|
|
51
|
+
var q = ((_filters$searchInput = filters.searchInput) !== null && _filters$searchInput !== void 0 ? _filters$searchInput : '').trim();
|
|
52
|
+
if (q) p.set(URL_KEY_Q, q);else p["delete"](URL_KEY_Q);
|
|
53
|
+
if (filters.selectedTeams.length) p.set(URL_KEY_TEAM, filters.selectedTeams.join(','));else p["delete"](URL_KEY_TEAM);
|
|
54
|
+
if (filters.selectedPositions.length) p.set(URL_KEY_POSITION, filters.selectedPositions.join(','));else p["delete"](URL_KEY_POSITION);
|
|
55
|
+
if (filters.selectedWorkspaces.length) p.set(URL_KEY_WORKSPACE, filters.selectedWorkspaces.join(','));else p["delete"](URL_KEY_WORKSPACE);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Combina localStorage con query params solo si la URL está en contexto `tab=users` (o sin tab).
|
|
60
|
+
*/
|
|
61
|
+
export function mergeUsersFiltersFromUrl(storage, search) {
|
|
62
|
+
var _storage$searchInput, _storage$selectedTeam, _storage$selectedPosi, _storage$selectedWork;
|
|
63
|
+
var params = new URLSearchParams(search.startsWith('?') ? search : "?".concat(search));
|
|
64
|
+
var base = _objectSpread(_objectSpread(_objectSpread({}, emptyUsersFilters()), storage), {}, {
|
|
65
|
+
searchInput: (_storage$searchInput = storage === null || storage === void 0 ? void 0 : storage.searchInput) !== null && _storage$searchInput !== void 0 ? _storage$searchInput : '',
|
|
66
|
+
selectedTeams: _toConsumableArray((_storage$selectedTeam = storage === null || storage === void 0 ? void 0 : storage.selectedTeams) !== null && _storage$selectedTeam !== void 0 ? _storage$selectedTeam : []),
|
|
67
|
+
selectedPositions: _toConsumableArray((_storage$selectedPosi = storage === null || storage === void 0 ? void 0 : storage.selectedPositions) !== null && _storage$selectedPosi !== void 0 ? _storage$selectedPosi : []),
|
|
68
|
+
selectedWorkspaces: _toConsumableArray((_storage$selectedWork = storage === null || storage === void 0 ? void 0 : storage.selectedWorkspaces) !== null && _storage$selectedWork !== void 0 ? _storage$selectedWork : [])
|
|
69
|
+
}, storage !== null && storage !== void 0 && storage.chipLabels && _typeof(storage.chipLabels) === 'object' ? {
|
|
70
|
+
chipLabels: _objectSpread({}, storage.chipLabels)
|
|
71
|
+
} : {});
|
|
72
|
+
if (!isUsersTabForUrlMerge(search)) {
|
|
73
|
+
return base;
|
|
74
|
+
}
|
|
75
|
+
if (params.has(URL_KEY_Q)) {
|
|
76
|
+
var _params$get;
|
|
77
|
+
base.searchInput = (_params$get = params.get(URL_KEY_Q)) !== null && _params$get !== void 0 ? _params$get : '';
|
|
78
|
+
}
|
|
79
|
+
if (params.has(URL_KEY_TEAM)) {
|
|
80
|
+
base.selectedTeams = parseCsvIds(params.get(URL_KEY_TEAM));
|
|
81
|
+
}
|
|
82
|
+
if (params.has(URL_KEY_POSITION)) {
|
|
83
|
+
base.selectedPositions = parseCsvIds(params.get(URL_KEY_POSITION));
|
|
84
|
+
}
|
|
85
|
+
if (params.has(URL_KEY_WORKSPACE)) {
|
|
86
|
+
base.selectedWorkspaces = parseCsvIds(params.get(URL_KEY_WORKSPACE));
|
|
87
|
+
}
|
|
88
|
+
return base;
|
|
89
|
+
}
|
|
90
|
+
export function getEffectiveUsersFilters() {
|
|
91
|
+
var search = typeof window !== 'undefined' ? window.location.search : '';
|
|
92
|
+
return mergeUsersFiltersFromUrl(loadUsersFilters(), search);
|
|
93
|
+
}
|
|
94
|
+
export function mergeTeamsWorkspaceIdsFromUrl(search, storageIds) {
|
|
95
|
+
if (!isTeamsTabForUrlMerge(search)) {
|
|
96
|
+
return _toConsumableArray(storageIds);
|
|
97
|
+
}
|
|
98
|
+
var params = new URLSearchParams(search.startsWith('?') ? search : "?".concat(search));
|
|
99
|
+
if (params.has(URL_KEY_WORKSPACE)) {
|
|
100
|
+
return parseCsvIds(params.get(URL_KEY_WORKSPACE));
|
|
101
|
+
}
|
|
102
|
+
return _toConsumableArray(storageIds);
|
|
103
|
+
}
|
|
104
|
+
export function getEffectiveTeamsWorkspaceIds() {
|
|
105
|
+
var search = typeof window !== 'undefined' ? window.location.search : '';
|
|
106
|
+
return mergeTeamsWorkspaceIdsFromUrl(search, loadTeamsWorkspaceIds());
|
|
107
|
+
}
|
|
108
|
+
export function mergePeopleUrlParams(apply) {
|
|
109
|
+
if (typeof window === 'undefined') return;
|
|
110
|
+
var params = new URLSearchParams(window.location.search);
|
|
111
|
+
apply(params);
|
|
112
|
+
var search = params.toString();
|
|
113
|
+
var url = "".concat(window.location.pathname).concat(search ? "?".concat(search) : '').concat(window.location.hash || '');
|
|
114
|
+
window.history.replaceState(null, '', url);
|
|
115
|
+
}
|
|
116
|
+
export function writeUsersFiltersToUrl(filters) {
|
|
117
|
+
mergePeopleUrlParams(function (p) {
|
|
118
|
+
p.set(URL_KEY_TAB, 'users');
|
|
119
|
+
applyUserFiltersToSearchParams(p, filters);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
export function setWorkspaceIdsInUrl(workspaceIds) {
|
|
123
|
+
mergePeopleUrlParams(function (p) {
|
|
124
|
+
p.set(URL_KEY_TAB, 'teams');
|
|
125
|
+
stripPeopleFilterKeys(p);
|
|
126
|
+
if (workspaceIds.length) p.set(URL_KEY_WORKSPACE, workspaceIds.join(','));else p["delete"](URL_KEY_WORKSPACE);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Al cambiar de pestaña: deja en la URL solo los params de esa vista, leyendo estado desde localStorage
|
|
132
|
+
* (`cor-people:users-filters` / `cor-people:teams-workspace-filters`). Preserva otros query params del host.
|
|
133
|
+
*/
|
|
134
|
+
export function syncUrlToActiveTab(tab) {
|
|
135
|
+
mergePeopleUrlParams(function (p) {
|
|
136
|
+
stripPeopleFilterKeys(p);
|
|
137
|
+
p.set(URL_KEY_TAB, tab);
|
|
138
|
+
if (tab === 'users') {
|
|
139
|
+
var u = loadUsersFilters();
|
|
140
|
+
applyUserFiltersToSearchParams(p, u !== null && u !== void 0 ? u : emptyUsersFilters());
|
|
141
|
+
} else if (tab === 'teams') {
|
|
142
|
+
var ws = loadTeamsWorkspaceIds();
|
|
143
|
+
if (ws.length) p.set(URL_KEY_WORKSPACE, ws.join(','));
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2FkVGVhbXNXb3Jrc3BhY2VJZHMiLCJsb2FkVXNlcnNGaWx0ZXJzIiwiVVJMX0tFWV9UQUIiLCJVUkxfS0VZX1EiLCJVUkxfS0VZX1RFQU0iLCJVUkxfS0VZX1BPU0lUSU9OIiwiVVJMX0tFWV9XT1JLU1BBQ0UiLCJQRU9QTEVfRklMVEVSX0tFWVMiLCJwYXJzZUNzdklkcyIsInJhdyIsInRyaW0iLCJzcGxpdCIsIm1hcCIsInMiLCJOdW1iZXIiLCJTdHJpbmciLCJmaWx0ZXIiLCJuIiwiaXNGaW5pdGUiLCJnZXRUYWJGcm9tU2VhcmNoU3RyaW5nIiwic2VhcmNoIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwic3RhcnRzV2l0aCIsImNvbmNhdCIsImdldCIsImlzVXNlcnNUYWJGb3JVcmxNZXJnZSIsInQiLCJpc1RlYW1zVGFiRm9yVXJsTWVyZ2UiLCJlbXB0eVVzZXJzRmlsdGVycyIsInNlYXJjaElucHV0Iiwic2VsZWN0ZWRUZWFtcyIsInNlbGVjdGVkUG9zaXRpb25zIiwic2VsZWN0ZWRXb3Jrc3BhY2VzIiwic3RyaXBQZW9wbGVGaWx0ZXJLZXlzIiwicCIsImZvckVhY2giLCJrIiwiYXBwbHlVc2VyRmlsdGVyc1RvU2VhcmNoUGFyYW1zIiwiZmlsdGVycyIsIl9maWx0ZXJzJHNlYXJjaElucHV0IiwicSIsInNldCIsImxlbmd0aCIsImpvaW4iLCJtZXJnZVVzZXJzRmlsdGVyc0Zyb21VcmwiLCJzdG9yYWdlIiwiX3N0b3JhZ2Ukc2VhcmNoSW5wdXQiLCJfc3RvcmFnZSRzZWxlY3RlZFRlYW0iLCJfc3RvcmFnZSRzZWxlY3RlZFBvc2kiLCJfc3RvcmFnZSRzZWxlY3RlZFdvcmsiLCJiYXNlIiwiX29iamVjdFNwcmVhZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImNoaXBMYWJlbHMiLCJfdHlwZW9mIiwiaGFzIiwiX3BhcmFtcyRnZXQiLCJnZXRFZmZlY3RpdmVVc2Vyc0ZpbHRlcnMiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsIm1lcmdlVGVhbXNXb3Jrc3BhY2VJZHNGcm9tVXJsIiwic3RvcmFnZUlkcyIsImdldEVmZmVjdGl2ZVRlYW1zV29ya3NwYWNlSWRzIiwibWVyZ2VQZW9wbGVVcmxQYXJhbXMiLCJhcHBseSIsInRvU3RyaW5nIiwidXJsIiwicGF0aG5hbWUiLCJoYXNoIiwiaGlzdG9yeSIsInJlcGxhY2VTdGF0ZSIsIndyaXRlVXNlcnNGaWx0ZXJzVG9VcmwiLCJzZXRXb3Jrc3BhY2VJZHNJblVybCIsIndvcmtzcGFjZUlkcyIsInN5bmNVcmxUb0FjdGl2ZVRhYiIsInRhYiIsInUiLCJ3cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wZW9wbGVGaWx0ZXJzVXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVmlld1R5cGUgfSBmcm9tICcuLi90eXBlcy91c2VyVHlwZSdcbmltcG9ydCB0eXBlIHsgU3RvcmVkVXNlcnNGaWx0ZXJzIH0gZnJvbSAnLi9wZW9wbGVGaWx0ZXJzU3RvcmFnZSdcbmltcG9ydCB7IGxvYWRUZWFtc1dvcmtzcGFjZUlkcywgbG9hZFVzZXJzRmlsdGVycyB9IGZyb20gJy4vcGVvcGxlRmlsdGVyc1N0b3JhZ2UnXG5cbmNvbnN0IFVSTF9LRVlfVEFCID0gJ3RhYidcbmNvbnN0IFVSTF9LRVlfUSA9ICdxJ1xuY29uc3QgVVJMX0tFWV9URUFNID0gJ3RlYW0nXG5jb25zdCBVUkxfS0VZX1BPU0lUSU9OID0gJ3Bvc2l0aW9uJ1xuY29uc3QgVVJMX0tFWV9XT1JLU1BBQ0UgPSAnd29ya3NwYWNlJ1xuXG5jb25zdCBQRU9QTEVfRklMVEVSX0tFWVMgPSBbVVJMX0tFWV9RLCBVUkxfS0VZX1RFQU0sIFVSTF9LRVlfUE9TSVRJT04sIFVSTF9LRVlfV09SS1NQQUNFXSBhcyBjb25zdFxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDc3ZJZHMocmF3OiBzdHJpbmcgfCBudWxsKTogbnVtYmVyW10ge1xuICBpZiAocmF3ID09IG51bGwgfHwgcmF3LnRyaW0oKSA9PT0gJycpIHJldHVybiBbXVxuICByZXR1cm4gcmF3XG4gICAgLnNwbGl0KCcsJylcbiAgICAubWFwKHMgPT4gTnVtYmVyKFN0cmluZyhzKS50cmltKCkpKVxuICAgIC5maWx0ZXIobiA9PiBOdW1iZXIuaXNGaW5pdGUobikpXG59XG5cbmZ1bmN0aW9uIGdldFRhYkZyb21TZWFyY2hTdHJpbmcoc2VhcmNoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhzZWFyY2guc3RhcnRzV2l0aCgnPycpID8gc2VhcmNoIDogYD8ke3NlYXJjaH1gKVxuICByZXR1cm4gcGFyYW1zLmdldChVUkxfS0VZX1RBQilcbn1cblxuLyoqIFNvbG8gcGVzdGHDsWEgVXN1YXJpb3MgKG8gc2luIGB0YWJgLCBjb21wYXRpYmlsaWRhZCBjb24gbGlua3Mgdmllam9zKSBhcGxpY2EgZmlsdHJvcyBkZSB1c3VhcmlvcyBlbiBsYSBVUkwuICovXG5mdW5jdGlvbiBpc1VzZXJzVGFiRm9yVXJsTWVyZ2Uoc2VhcmNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgdCA9IGdldFRhYkZyb21TZWFyY2hTdHJpbmcoc2VhcmNoKVxuICByZXR1cm4gdCA9PT0gbnVsbCB8fCB0ID09PSAnJyB8fCB0ID09PSAndXNlcnMnXG59XG5cbi8qKiBTb2xvIGNvbiBgdGFiPXRlYW1zYCBzZSBpbnRlcnByZXRhIGB3b3Jrc3BhY2VgIGNvbW8gZmlsdHJvIGRlIGVxdWlwb3MuICovXG5mdW5jdGlvbiBpc1RlYW1zVGFiRm9yVXJsTWVyZ2Uoc2VhcmNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFRhYkZyb21TZWFyY2hTdHJpbmcoc2VhcmNoKSA9PT0gJ3RlYW1zJ1xufVxuXG5jb25zdCBlbXB0eVVzZXJzRmlsdGVycyA9ICgpOiBTdG9yZWRVc2Vyc0ZpbHRlcnMgPT4gKHtcbiAgc2VhcmNoSW5wdXQ6ICcnLFxuICBzZWxlY3RlZFRlYW1zOiBbXSxcbiAgc2VsZWN0ZWRQb3NpdGlvbnM6IFtdLFxuICBzZWxlY3RlZFdvcmtzcGFjZXM6IFtdLFxufSlcblxuZnVuY3Rpb24gc3RyaXBQZW9wbGVGaWx0ZXJLZXlzKHA6IFVSTFNlYXJjaFBhcmFtcyk6IHZvaWQge1xuICBQRU9QTEVfRklMVEVSX0tFWVMuZm9yRWFjaChrID0+IHAuZGVsZXRlKGspKVxufVxuXG5mdW5jdGlvbiBhcHBseVVzZXJGaWx0ZXJzVG9TZWFyY2hQYXJhbXMoXG4gIHA6IFVSTFNlYXJjaFBhcmFtcyxcbiAgZmlsdGVyczogUGljazxTdG9yZWRVc2Vyc0ZpbHRlcnMsICdzZWFyY2hJbnB1dCcgfCAnc2VsZWN0ZWRUZWFtcycgfCAnc2VsZWN0ZWRQb3NpdGlvbnMnIHwgJ3NlbGVjdGVkV29ya3NwYWNlcyc+XG4pOiB2b2lkIHtcbiAgY29uc3QgcSA9IChmaWx0ZXJzLnNlYXJjaElucHV0ID8/ICcnKS50cmltKClcbiAgaWYgKHEpIHAuc2V0KFVSTF9LRVlfUSwgcSlcbiAgZWxzZSBwLmRlbGV0ZShVUkxfS0VZX1EpXG5cbiAgaWYgKGZpbHRlcnMuc2VsZWN0ZWRUZWFtcy5sZW5ndGgpIHAuc2V0KFVSTF9LRVlfVEVBTSwgZmlsdGVycy5zZWxlY3RlZFRlYW1zLmpvaW4oJywnKSlcbiAgZWxzZSBwLmRlbGV0ZShVUkxfS0VZX1RFQU0pXG5cbiAgaWYgKGZpbHRlcnMuc2VsZWN0ZWRQb3NpdGlvbnMubGVuZ3RoKSBwLnNldChVUkxfS0VZX1BPU0lUSU9OLCBmaWx0ZXJzLnNlbGVjdGVkUG9zaXRpb25zLmpvaW4oJywnKSlcbiAgZWxzZSBwLmRlbGV0ZShVUkxfS0VZX1BPU0lUSU9OKVxuXG4gIGlmIChmaWx0ZXJzLnNlbGVjdGVkV29ya3NwYWNlcy5sZW5ndGgpIHAuc2V0KFVSTF9LRVlfV09SS1NQQUNFLCBmaWx0ZXJzLnNlbGVjdGVkV29ya3NwYWNlcy5qb2luKCcsJykpXG4gIGVsc2UgcC5kZWxldGUoVVJMX0tFWV9XT1JLU1BBQ0UpXG59XG5cbi8qKlxuICogQ29tYmluYSBsb2NhbFN0b3JhZ2UgY29uIHF1ZXJ5IHBhcmFtcyBzb2xvIHNpIGxhIFVSTCBlc3TDoSBlbiBjb250ZXh0byBgdGFiPXVzZXJzYCAobyBzaW4gdGFiKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVXNlcnNGaWx0ZXJzRnJvbVVybChzdG9yYWdlOiBTdG9yZWRVc2Vyc0ZpbHRlcnMgfCBudWxsLCBzZWFyY2g6IHN0cmluZyk6IFN0b3JlZFVzZXJzRmlsdGVycyB7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoc2VhcmNoLnN0YXJ0c1dpdGgoJz8nKSA/IHNlYXJjaCA6IGA/JHtzZWFyY2h9YClcbiAgY29uc3QgYmFzZTogU3RvcmVkVXNlcnNGaWx0ZXJzID0ge1xuICAgIC4uLmVtcHR5VXNlcnNGaWx0ZXJzKCksXG4gICAgLi4uc3RvcmFnZSxcbiAgICBzZWFyY2hJbnB1dDogc3RvcmFnZT8uc2VhcmNoSW5wdXQgPz8gJycsXG4gICAgc2VsZWN0ZWRUZWFtczogWy4uLihzdG9yYWdlPy5zZWxlY3RlZFRlYW1zID8/IFtdKV0sXG4gICAgc2VsZWN0ZWRQb3NpdGlvbnM6IFsuLi4oc3RvcmFnZT8uc2VsZWN0ZWRQb3NpdGlvbnMgPz8gW10pXSxcbiAgICBzZWxlY3RlZFdvcmtzcGFjZXM6IFsuLi4oc3RvcmFnZT8uc2VsZWN0ZWRXb3Jrc3BhY2VzID8/IFtdKV0sXG4gICAgLi4uKHN0b3JhZ2U/LmNoaXBMYWJlbHMgJiYgdHlwZW9mIHN0b3JhZ2UuY2hpcExhYmVscyA9PT0gJ29iamVjdCcgPyB7IGNoaXBMYWJlbHM6IHsgLi4uc3RvcmFnZS5jaGlwTGFiZWxzIH0gfSA6IHt9KSxcbiAgfVxuXG4gIGlmICghaXNVc2Vyc1RhYkZvclVybE1lcmdlKHNlYXJjaCkpIHtcbiAgICByZXR1cm4gYmFzZVxuICB9XG5cbiAgaWYgKHBhcmFtcy5oYXMoVVJMX0tFWV9RKSkge1xuICAgIGJhc2Uuc2VhcmNoSW5wdXQgPSBwYXJhbXMuZ2V0KFVSTF9LRVlfUSkgPz8gJydcbiAgfVxuICBpZiAocGFyYW1zLmhhcyhVUkxfS0VZX1RFQU0pKSB7XG4gICAgYmFzZS5zZWxlY3RlZFRlYW1zID0gcGFyc2VDc3ZJZHMocGFyYW1zLmdldChVUkxfS0VZX1RFQU0pKVxuICB9XG4gIGlmIChwYXJhbXMuaGFzKFVSTF9LRVlfUE9TSVRJT04pKSB7XG4gICAgYmFzZS5zZWxlY3RlZFBvc2l0aW9ucyA9IHBhcnNlQ3N2SWRzKHBhcmFtcy5nZXQoVVJMX0tFWV9QT1NJVElPTikpXG4gIH1cbiAgaWYgKHBhcmFtcy5oYXMoVVJMX0tFWV9XT1JLU1BBQ0UpKSB7XG4gICAgYmFzZS5zZWxlY3RlZFdvcmtzcGFjZXMgPSBwYXJzZUNzdklkcyhwYXJhbXMuZ2V0KFVSTF9LRVlfV09SS1NQQUNFKSlcbiAgfVxuXG4gIHJldHVybiBiYXNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZmZlY3RpdmVVc2Vyc0ZpbHRlcnMoKTogU3RvcmVkVXNlcnNGaWx0ZXJzIHtcbiAgY29uc3Qgc2VhcmNoID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cubG9jYXRpb24uc2VhcmNoIDogJydcbiAgcmV0dXJuIG1lcmdlVXNlcnNGaWx0ZXJzRnJvbVVybChsb2FkVXNlcnNGaWx0ZXJzKCksIHNlYXJjaClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVGVhbXNXb3Jrc3BhY2VJZHNGcm9tVXJsKHNlYXJjaDogc3RyaW5nLCBzdG9yYWdlSWRzOiBudW1iZXJbXSk6IG51bWJlcltdIHtcbiAgaWYgKCFpc1RlYW1zVGFiRm9yVXJsTWVyZ2Uoc2VhcmNoKSkge1xuICAgIHJldHVybiBbLi4uc3RvcmFnZUlkc11cbiAgfVxuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaC5zdGFydHNXaXRoKCc/JykgPyBzZWFyY2ggOiBgPyR7c2VhcmNofWApXG4gIGlmIChwYXJhbXMuaGFzKFVSTF9LRVlfV09SS1NQQUNFKSkge1xuICAgIHJldHVybiBwYXJzZUNzdklkcyhwYXJhbXMuZ2V0KFVSTF9LRVlfV09SS1NQQUNFKSlcbiAgfVxuICByZXR1cm4gWy4uLnN0b3JhZ2VJZHNdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFZmZlY3RpdmVUZWFtc1dvcmtzcGFjZUlkcygpOiBudW1iZXJbXSB7XG4gIGNvbnN0IHNlYXJjaCA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93LmxvY2F0aW9uLnNlYXJjaCA6ICcnXG4gIHJldHVybiBtZXJnZVRlYW1zV29ya3NwYWNlSWRzRnJvbVVybChzZWFyY2gsIGxvYWRUZWFtc1dvcmtzcGFjZUlkcygpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VQZW9wbGVVcmxQYXJhbXMoYXBwbHk6IChwYXJhbXM6IFVSTFNlYXJjaFBhcmFtcykgPT4gdm9pZCk6IHZvaWQge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpIHJldHVyblxuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpXG4gIGFwcGx5KHBhcmFtcylcbiAgY29uc3Qgc2VhcmNoID0gcGFyYW1zLnRvU3RyaW5nKClcbiAgY29uc3QgdXJsID0gYCR7d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSR7c2VhcmNoID8gYD8ke3NlYXJjaH1gIDogJyd9JHt3aW5kb3cubG9jYXRpb24uaGFzaCB8fCAnJ31gXG4gIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShudWxsLCAnJywgdXJsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVVc2Vyc0ZpbHRlcnNUb1VybChcbiAgZmlsdGVyczogUGljazxTdG9yZWRVc2Vyc0ZpbHRlcnMsICdzZWFyY2hJbnB1dCcgfCAnc2VsZWN0ZWRUZWFtcycgfCAnc2VsZWN0ZWRQb3NpdGlvbnMnIHwgJ3NlbGVjdGVkV29ya3NwYWNlcyc+XG4pOiB2b2lkIHtcbiAgbWVyZ2VQZW9wbGVVcmxQYXJhbXMocCA9PiB7XG4gICAgcC5zZXQoVVJMX0tFWV9UQUIsICd1c2VycycpXG4gICAgYXBwbHlVc2VyRmlsdGVyc1RvU2VhcmNoUGFyYW1zKHAsIGZpbHRlcnMpXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRXb3Jrc3BhY2VJZHNJblVybCh3b3Jrc3BhY2VJZHM6IG51bWJlcltdKTogdm9pZCB7XG4gIG1lcmdlUGVvcGxlVXJsUGFyYW1zKHAgPT4ge1xuICAgIHAuc2V0KFVSTF9LRVlfVEFCLCAndGVhbXMnKVxuICAgIHN0cmlwUGVvcGxlRmlsdGVyS2V5cyhwKVxuICAgIGlmICh3b3Jrc3BhY2VJZHMubGVuZ3RoKSBwLnNldChVUkxfS0VZX1dPUktTUEFDRSwgd29ya3NwYWNlSWRzLmpvaW4oJywnKSlcbiAgICBlbHNlIHAuZGVsZXRlKFVSTF9LRVlfV09SS1NQQUNFKVxuICB9KVxufVxuXG4vKipcbiAqIEFsIGNhbWJpYXIgZGUgcGVzdGHDsWE6IGRlamEgZW4gbGEgVVJMIHNvbG8gbG9zIHBhcmFtcyBkZSBlc2EgdmlzdGEsIGxleWVuZG8gZXN0YWRvIGRlc2RlIGxvY2FsU3RvcmFnZVxuICogKGBjb3ItcGVvcGxlOnVzZXJzLWZpbHRlcnNgIC8gYGNvci1wZW9wbGU6dGVhbXMtd29ya3NwYWNlLWZpbHRlcnNgKS4gUHJlc2VydmEgb3Ryb3MgcXVlcnkgcGFyYW1zIGRlbCBob3N0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3luY1VybFRvQWN0aXZlVGFiKHRhYjogVmlld1R5cGUpOiB2b2lkIHtcbiAgbWVyZ2VQZW9wbGVVcmxQYXJhbXMocCA9PiB7XG4gICAgc3RyaXBQZW9wbGVGaWx0ZXJLZXlzKHApXG4gICAgcC5zZXQoVVJMX0tFWV9UQUIsIHRhYilcblxuICAgIGlmICh0YWIgPT09ICd1c2VycycpIHtcbiAgICAgIGNvbnN0IHUgPSBsb2FkVXNlcnNGaWx0ZXJzKClcbiAgICAgIGFwcGx5VXNlckZpbHRlcnNUb1NlYXJjaFBhcmFtcyhwLCB1ID8/IGVtcHR5VXNlcnNGaWx0ZXJzKCkpXG4gICAgfSBlbHNlIGlmICh0YWIgPT09ICd0ZWFtcycpIHtcbiAgICAgIGNvbnN0IHdzID0gbG9hZFRlYW1zV29ya3NwYWNlSWRzKClcbiAgICAgIGlmICh3cy5sZW5ndGgpIHAuc2V0KFVSTF9LRVlfV09SS1NQQUNFLCB3cy5qb2luKCcsJykpXG4gICAgfVxuICB9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUVBLFNBQVNBLHFCQUFxQixFQUFFQyxnQkFBZ0IsUUFBUSx3QkFBd0I7QUFFaEYsSUFBTUMsV0FBVyxHQUFHLEtBQUs7QUFDekIsSUFBTUMsU0FBUyxHQUFHLEdBQUc7QUFDckIsSUFBTUMsWUFBWSxHQUFHLE1BQU07QUFDM0IsSUFBTUMsZ0JBQWdCLEdBQUcsVUFBVTtBQUNuQyxJQUFNQyxpQkFBaUIsR0FBRyxXQUFXO0FBRXJDLElBQU1DLGtCQUFrQixHQUFHLENBQUNKLFNBQVMsRUFBRUMsWUFBWSxFQUFFQyxnQkFBZ0IsRUFBRUMsaUJBQWlCLENBQVU7QUFFbEcsT0FBTyxTQUFTRSxXQUFXQSxDQUFDQyxHQUFrQixFQUFZO0VBQ3hELElBQUlBLEdBQUcsSUFBSSxJQUFJLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFO0VBQy9DLE9BQU9ELEdBQUcsQ0FDUEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUNWQyxHQUFHLENBQUMsVUFBQUMsQ0FBQztJQUFBLE9BQUlDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDRixDQUFDLENBQUMsQ0FBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUFBLEVBQUMsQ0FDbENNLE1BQU0sQ0FBQyxVQUFBQyxDQUFDO0lBQUEsT0FBSUgsTUFBTSxDQUFDSSxRQUFRLENBQUNELENBQUMsQ0FBQztFQUFBLEVBQUM7QUFDcEM7QUFFQSxTQUFTRSxzQkFBc0JBLENBQUNDLE1BQWMsRUFBaUI7RUFDN0QsSUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0YsTUFBTSxDQUFDRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUdILE1BQU0sT0FBQUksTUFBQSxDQUFPSixNQUFNLENBQUUsQ0FBQztFQUNsRixPQUFPQyxNQUFNLENBQUNJLEdB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
|
package/lib/utils/tabUrl.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { syncUrlToActiveTab } from './peopleFiltersUrl';
|
|
1
2
|
var TAB_PARAM = 'tab';
|
|
2
3
|
var VALID_TABS = ['users', 'teams', 'userCategoryAbm', 'leaves'];
|
|
3
4
|
export function getViewFromSearchParams() {
|
|
@@ -10,11 +11,6 @@ export function getViewFromSearchParams() {
|
|
|
10
11
|
return null;
|
|
11
12
|
}
|
|
12
13
|
export function setTabInUrl(tab) {
|
|
13
|
-
|
|
14
|
-
var params = new URLSearchParams(window.location.search);
|
|
15
|
-
params.set(TAB_PARAM, tab);
|
|
16
|
-
var search = params.toString();
|
|
17
|
-
var url = "".concat(window.location.pathname).concat(search ? "?".concat(search) : '').concat(window.location.hash || '');
|
|
18
|
-
window.history.replaceState(null, '', url);
|
|
14
|
+
syncUrlToActiveTab(tab);
|
|
19
15
|
}
|
|
20
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzeW5jVXJsVG9BY3RpdmVUYWIiLCJUQUJfUEFSQU0iLCJWQUxJRF9UQUJTIiwiZ2V0Vmlld0Zyb21TZWFyY2hQYXJhbXMiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsInRhYiIsImdldCIsImluY2x1ZGVzIiwic2V0VGFiSW5VcmwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdGFiVXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdUeXBlIH0gZnJvbSAnLi4vdHlwZXMvdXNlclR5cGUnXG5pbXBvcnQgeyBzeW5jVXJsVG9BY3RpdmVUYWIgfSBmcm9tICcuL3Blb3BsZUZpbHRlcnNVcmwnXG5cbmNvbnN0IFRBQl9QQVJBTSA9ICd0YWInXG5jb25zdCBWQUxJRF9UQUJTOiBWaWV3VHlwZVtdID0gWyd1c2VycycsICd0ZWFtcycsICd1c2VyQ2F0ZWdvcnlBYm0nLCAnbGVhdmVzJ11cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdGcm9tU2VhcmNoUGFyYW1zKCk6IFZpZXdUeXBlIHwgbnVsbCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGxcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKVxuICBjb25zdCB0YWIgPSBwYXJhbXMuZ2V0KFRBQl9QQVJBTSlcbiAgaWYgKHRhYiAmJiAoVkFMSURfVEFCUyBhcyBzdHJpbmdbXSkuaW5jbHVkZXModGFiKSkge1xuICAgIHJldHVybiB0YWIgYXMgVmlld1R5cGVcbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0VGFiSW5VcmwodGFiOiBWaWV3VHlwZSk6IHZvaWQge1xuICBzeW5jVXJsVG9BY3RpdmVUYWIodGFiKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxrQkFBa0IsUUFBUSxvQkFBb0I7QUFFdkQsSUFBTUMsU0FBUyxHQUFHLEtBQUs7QUFDdkIsSUFBTUMsVUFBc0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxDQUFDO0FBRTlFLE9BQU8sU0FBU0MsdUJBQXVCQSxDQUFBLEVBQW9CO0VBQ3pELElBQUksT0FBT0MsTUFBTSxLQUFLLFdBQVcsRUFBRSxPQUFPLElBQUk7RUFDOUMsSUFBTUMsTUFBTSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0YsTUFBTSxDQUFDRyxRQUFRLENBQUNDLE1BQU0sQ0FBQztFQUMxRCxJQUFNQyxHQUFHLEdBQUdKLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDVCxTQUFTLENBQUM7RUFDakMsSUFBSVEsR0FBRyxJQUFLUCxVQUFVLENBQWNTLFFBQVEsQ0FBQ0YsR0FBRyxDQUFDLEVBQUU7SUFDakQsT0FBT0EsR0FBRztFQUNaO0VBQ0EsT0FBTyxJQUFJO0FBQ2I7QUFFQSxPQUFPLFNBQVNHLFdBQVdBLENBQUNILEdBQWEsRUFBUTtFQUMvQ1Qsa0JBQWtCLENBQUNTLEdBQUcsQ0FBQztBQUN6QiIsImlnbm9yZUxpc3QiOltdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import styled from 'styled-components';
|
|
2
|
-
export var SCWrapper = styled.div.withConfig({
|
|
3
|
-
displayName: "FiltersTeamsContainerstyles__SCWrapper",
|
|
4
|
-
componentId: "sc-1r4lpbo-0"
|
|
5
|
-
})(["display:flex;gap:10px;align-items:center;flex-wrap:wrap;"]);
|
|
6
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ1dyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250YWluZXIvRmlsdGVycy9GaWx0ZXJzVGVhbXNDb250YWluZXIuc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5leHBvcnQgY29uc3QgU0NXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG5gXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxtQkFBbUI7QUFFdEMsT0FBTyxJQUFNQyxTQUFTLEdBQUdELE1BQU0sQ0FBQ0UsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLGdFQUtsQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
-
import { useState, useEffect } from 'react';
|
|
3
|
-
import { useGetTeams } from './useGetTeams';
|
|
4
|
-
export var useFiltersTeams = function useFiltersTeams() {
|
|
5
|
-
var _useGetTeams = useGetTeams(),
|
|
6
|
-
handleGetTeams = _useGetTeams.handleGetTeams,
|
|
7
|
-
loading = _useGetTeams.loading,
|
|
8
|
-
error = _useGetTeams.error,
|
|
9
|
-
data = _useGetTeams.data;
|
|
10
|
-
var _useState = useState([]),
|
|
11
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
12
|
-
workspaceOptions = _useState2[0],
|
|
13
|
-
setWorkspaceOptions = _useState2[1];
|
|
14
|
-
useEffect(function () {
|
|
15
|
-
if (data !== null && data !== void 0 && data.teams && !loading && !error) {
|
|
16
|
-
// Extraer workspaces únicos de los teams
|
|
17
|
-
var workspacesMap = new Map();
|
|
18
|
-
data.teams.data.forEach(function (team) {
|
|
19
|
-
if (team.workspace && !workspacesMap.has(team.workspace)) {
|
|
20
|
-
workspacesMap.set(team.workspace, {
|
|
21
|
-
id: workspacesMap.size + 1,
|
|
22
|
-
label: team.workspace
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
setWorkspaceOptions(Array.from(workspacesMap.values()));
|
|
27
|
-
}
|
|
28
|
-
}, [data, loading, error]);
|
|
29
|
-
return {
|
|
30
|
-
workspaceOptions: workspaceOptions,
|
|
31
|
-
loading: loading,
|
|
32
|
-
error: error,
|
|
33
|
-
handleGetTeams: handleGetTeams
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZUdldFRlYW1zIiwidXNlRmlsdGVyc1RlYW1zIiwiX3VzZUdldFRlYW1zIiwiaGFuZGxlR2V0VGVhbXMiLCJsb2FkaW5nIiwiZXJyb3IiLCJkYXRhIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwid29ya3NwYWNlT3B0aW9ucyIsInNldFdvcmtzcGFjZU9wdGlvbnMiLCJ0ZWFtcyIsIndvcmtzcGFjZXNNYXAiLCJNYXAiLCJmb3JFYWNoIiwidGVhbSIsIndvcmtzcGFjZSIsImhhcyIsInNldCIsImlkIiwic2l6ZSIsImxhYmVsIiwiQXJyYXkiLCJmcm9tIiwidmFsdWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUZpbHRlcnNUZWFtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VHZXRUZWFtcyB9IGZyb20gJy4vdXNlR2V0VGVhbXMnXG5cbmludGVyZmFjZSBGaWx0ZXJPcHRpb24ge1xuICBpZDogbnVtYmVyXG4gIGxhYmVsOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IHVzZUZpbHRlcnNUZWFtcyA9ICgpID0+IHtcbiAgY29uc3QgeyBoYW5kbGVHZXRUZWFtcywgbG9hZGluZywgZXJyb3IsIGRhdGEgfSA9IHVzZUdldFRlYW1zKClcbiAgY29uc3QgW3dvcmtzcGFjZU9wdGlvbnMsIHNldFdvcmtzcGFjZU9wdGlvbnNdID0gdXNlU3RhdGU8RmlsdGVyT3B0aW9uW10+KFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGRhdGE/LnRlYW1zICYmICFsb2FkaW5nICYmICFlcnJvcikge1xuICAgICAgLy8gRXh0cmFlciB3b3Jrc3BhY2VzIMO6bmljb3MgZGUgbG9zIHRlYW1zXG4gICAgICBjb25zdCB3b3Jrc3BhY2VzTWFwID0gbmV3IE1hcDxzdHJpbmcsIHsgaWQ6IG51bWJlcjsgbGFiZWw6IHN0cmluZyB9PigpXG4gICAgICBkYXRhLnRlYW1zLmRhdGEuZm9yRWFjaCgodGVhbTogYW55KSA9PiB7XG4gICAgICAgIGlmICh0ZWFtLndvcmtzcGFjZSAmJiAhd29ya3NwYWNlc01hcC5oYXModGVhbS53b3Jrc3BhY2UpKSB7XG4gICAgICAgICAgd29ya3NwYWNlc01hcC5zZXQodGVhbS53b3Jrc3BhY2UsIHtcbiAgICAgICAgICAgIGlkOiB3b3Jrc3BhY2VzTWFwLnNpemUgKyAxLFxuICAgICAgICAgICAgbGFiZWw6IHRlYW0ud29ya3NwYWNlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBzZXRXb3Jrc3BhY2VPcHRpb25zKEFycmF5LmZyb20od29ya3NwYWNlc01hcC52YWx1ZXMoKSkpXG4gICAgfVxuICB9LCBbZGF0YSwgbG9hZGluZywgZXJyb3JdKVxuXG4gIHJldHVybiB7XG4gICAgd29ya3NwYWNlT3B0aW9ucyxcbiAgICBsb2FkaW5nLFxuICAgIGVycm9yLFxuICAgIGhhbmRsZUdldFRlYW1zLFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBTzNDLE9BQU8sSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFBLEVBQVM7RUFDbkMsSUFBQUMsWUFBQSxHQUFpREYsV0FBVyxDQUFDLENBQUM7SUFBdERHLGNBQWMsR0FBQUQsWUFBQSxDQUFkQyxjQUFjO0lBQUVDLE9BQU8sR0FBQUYsWUFBQSxDQUFQRSxPQUFPO0lBQUVDLEtBQUssR0FBQUgsWUFBQSxDQUFMRyxLQUFLO0lBQUVDLElBQUksR0FBQUosWUFBQSxDQUFKSSxJQUFJO0VBQzVDLElBQUFDLFNBQUEsR0FBZ0RULFFBQVEsQ0FBaUIsRUFBRSxDQUFDO0lBQUFVLFVBQUEsR0FBQUMsY0FBQSxDQUFBRixTQUFBO0lBQXJFRyxnQkFBZ0IsR0FBQUYsVUFBQTtJQUFFRyxtQkFBbUIsR0FBQUgsVUFBQTtFQUU1Q1QsU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJTyxJQUFJLGFBQUpBLElBQUksZUFBSkEsSUFBSSxDQUFFTSxLQUFLLElBQUksQ0FBQ1IsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRTtNQUNyQztNQUNBLElBQU1RLGFBQWEsR0FBRyxJQUFJQyxHQUFHLENBQXdDLENBQUM7TUFDdEVSLElBQUksQ0FBQ00sS0FBSyxDQUFDTixJQUFJLENBQUNTLE9BQU8sQ0FBQyxVQUFDQyxJQUFTLEVBQUs7UUFDckMsSUFBSUEsSUFBSSxDQUFDQyxTQUFTLElBQUksQ0FBQ0osYUFBYSxDQUFDSyxHQUFHLENBQUNGLElBQUksQ0FBQ0MsU0FBUyxDQUFDLEVBQUU7VUFDeERKLGFBQWEsQ0FBQ00sR0FBRyxDQUFDSCxJQUFJLENBQUNDLFNBQVMsRUFBRTtZQUNoQ0csRUFBRSxFQUFFUCxhQUFhLENBQUNRLElBQUksR0FBRyxDQUFDO1lBQzFCQyxLQUFLLEVBQUVOLElBQUksQ0FBQ0M7VUFDZCxDQUFDLENBQUM7UUFDSjtNQUNGLENBQUMsQ0FBQztNQUNGTixtQkFBbUIsQ0FBQ1ksS0FBSyxDQUFDQyxJQUFJLENBQUNYLGFBQWEsQ0FBQ1ksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pEO0VBQ0YsQ0FBQyxFQUFFLENBQUNuQixJQUFJLEVBQUVGLE9BQU8sRUFBRUMsS0FBSyxDQUFDLENBQUM7RUFFMUIsT0FBTztJQUNMSyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQk4sT0FBTyxFQUFQQSxPQUFPO0lBQ1BDLEtBQUssRUFBTEEsS0FBSztJQUNMRixjQUFjLEVBQWRBO0VBQ0YsQ0FBQztBQUNILENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|