@tuki-io/tuki-widgets 0.0.219-dev.58 → 0.0.219-dev.59

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.
@@ -66,20 +66,43 @@ function mergeDevices(a, b) {
66
66
  webexUUID: b.webexUUID ?? a.webexUUID,
67
67
  };
68
68
  }
69
- function mergeWorkspacesByDeviceName(workspaces) {
70
- const merged = new Map();
71
- for (const workspace of workspaces) {
72
- const key = withoutSep(workspace.device.name);
73
- const existing = merged.get(key);
74
- merged.set(key, existing ? {
75
- ...existing,
76
- ...workspace,
77
- device: mergeDevices(existing.device, workspace.device),
69
+ function toMacKey(value) {
70
+ return value ? withoutSep(value).replace(/[^0-9A-F]/g, '') : '';
71
+ }
72
+ function mergeCucmAndWebexWorkspaces(cucmWorkspaces, webexItems, webexWorkspaces) {
73
+ const result = [...cucmWorkspaces];
74
+ const cucmIndexByMac = new Map();
75
+ cucmWorkspaces.forEach((workspace, index) => {
76
+ const key = toMacKey(workspace.device.name);
77
+ if (key && !cucmIndexByMac.has(key)) {
78
+ cucmIndexByMac.set(key, index);
79
+ }
80
+ });
81
+ webexWorkspaces.forEach((webexWorkspace, webexIndex) => {
82
+ const matchedMac = (webexItems[webexIndex].workspaceDevices || [])
83
+ .map(workspaceDevice => toMacKey(workspaceDevice.mac))
84
+ .find(key => key && cucmIndexByMac.has(key));
85
+ if (!matchedMac) {
86
+ result.push(webexWorkspace);
87
+ return;
88
+ }
89
+ const cucmIndex = cucmIndexByMac.get(matchedMac);
90
+ cucmIndexByMac.delete(matchedMac);
91
+ const cucmWorkspace = result[cucmIndex];
92
+ result[cucmIndex] = {
93
+ ...cucmWorkspace,
94
+ ...webexWorkspace,
95
+ displayName: cucmWorkspace.displayName,
96
+ device: {
97
+ ...mergeDevices(cucmWorkspace.device, webexWorkspace.device),
98
+ name: cucmWorkspace.device.name,
99
+ newName: cucmWorkspace.device.newName,
100
+ },
78
101
  isHybrid: true,
79
- cucmDeviceName: existing.cucmDeviceName ?? workspace.cucmDeviceName,
80
- } : workspace);
81
- }
82
- return Array.from(merged.values());
102
+ cucmDeviceName: cucmWorkspace.cucmDeviceName,
103
+ };
104
+ });
105
+ return result;
83
106
  }
84
107
  const FETCH_ALL_SIZE = 9999;
85
108
  export class WorkspacesService {
@@ -105,9 +128,10 @@ export class WorkspacesService {
105
128
  return forkJoin([cucm$, webex$]).pipe(map(([cucmResponse, webexResponse]) => {
106
129
  const cucmParsed = parseResponse(cucmResponse);
107
130
  const webexParsed = parseResponse(webexResponse);
131
+ const webexItems = webexParsed?.pageData || [];
108
132
  const cucmWorkspaces = (cucmParsed?.pageData || []).map((item, index) => toWorkspace(item, index, true));
109
- const webexWorkspaces = (webexParsed?.pageData || []).map((item, index) => toWorkspace(item, index, false));
110
- const workspaces = mergeWorkspacesByDeviceName([...cucmWorkspaces, ...webexWorkspaces]);
133
+ const webexWorkspaces = webexItems.map((item, index) => toWorkspace(item, index, false));
134
+ const workspaces = mergeCucmAndWebexWorkspaces(cucmWorkspaces, webexItems, webexWorkspaces);
111
135
  return {
112
136
  workspaces,
113
137
  total: workspaces.length,
@@ -123,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
123
147
  providedIn: 'root'
124
148
  }]
125
149
  }], ctorParameters: function () { return [{ type: i1.APIService }]; } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3NlcnZpY2VzL3dvcmtzcGFjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUVyRCxTQUFTLGFBQWEsQ0FBQyxRQUFhO0lBQ2xDLE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLGtCQUFpQztJQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7UUFDdkIsT0FBTyxhQUFhLENBQUM7S0FDdEI7SUFDRCxPQUFPLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDL0UsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBdUIsRUFBRSxLQUFhO0lBQ2hFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELEVBQUUsRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM1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Q0gsQ0FBQztJQUNKLENBQUM7OytHQXBDVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV29ya3NwYWNlLCBXb3Jrc3BhY2VEZXZpY2UsIFdvcmtzcGFjZUxpc3RJdGVtLCBXb3Jrc3BhY2VzUGFnZSwgV29ya3NwYWNlc1Jlc3BvbnNlLCBXb3Jrc3BhY2VTdGF0dXMgfSBmcm9tICcuLi90eXBlcy93b3Jrc3BhY2UnO1xyXG5pbXBvcnQgeyB3aXRob3V0U2VwIH0gZnJvbSAnLi4vdXRpbHMvd29ya3NwYWNlLW5hbWUnO1xyXG5cclxuZnVuY3Rpb24gcGFyc2VSZXNwb25zZShyZXNwb25zZTogYW55KTogYW55IHtcclxuICByZXR1cm4gdHlwZW9mIHJlc3BvbnNlID09PSAnc3RyaW5nJyA/IEpTT04ucGFyc2UocmVzcG9uc2UpIDogcmVzcG9uc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvU3RhdHVzKHByb3Zpc2lvbmluZ1N0YXR1czogc3RyaW5nIHwgbnVsbCk6IFdvcmtzcGFjZVN0YXR1cyB7XHJcbiAgaWYgKCFwcm92aXNpb25pbmdTdGF0dXMpIHtcclxuICAgIHJldHVybiAndW5hdmFpbGFibGUnO1xyXG4gIH1cclxuICByZXR1cm4gcHJvdmlzaW9uaW5nU3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdhY3RpdmUnID8gJ2FjdGl2ZScgOiAnaW5hY3RpdmUnO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b1dvcmtzcGFjZURldmljZXMoaXRlbTogV29ya3NwYWNlTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIpOiBXb3Jrc3BhY2VEZXZpY2VbXSB7XHJcbiAgaWYgKGl0ZW0ud29ya3NwYWNlRGV2aWNlcz8ubGVuZ3RoKSB7XHJcbiAgICByZXR1cm4gaXRlbS53b3Jrc3BhY2VEZXZpY2VzLm1hcCh3b3Jrc3BhY2VEZXZpY2UgPT4gKHtcclxuICAgICAgaWQ6IHdvcmtzcGFjZURldmljZS5kZXZpY2VJZCxcclxuICAgICAga2luZDogJ2RldmljZScgYXMgY29uc3QsXHJcbiAgICAgIGxhYmVsOiB3b3Jrc3BhY2VEZXZpY2UubW9kZWwgfHwgd29ya3NwYWNlRGV2aWNlLm1hYyxcclxuICAgICAgbW9kZWw6IHdvcmtzcGFjZURldmljZS5tb2RlbCxcclxuICAgICAgbWFjOiB3b3Jrc3BhY2VEZXZpY2UubWFjLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZGV2aWNlID0gaXRlbS5kZXZpY2U7XHJcbiAgaWYgKCFkZXZpY2UpIHtcclxuICAgIHJldHVybiBbXTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1vZGVsID0gZGV2aWNlLmRldmljZVR5cGUgfHwgZGV2aWNlLnVzZXJEZXZpY2VUeXBlIHx8IHVuZGVmaW5lZDtcclxuICByZXR1cm4gW3tcclxuICAgIGlkOiBkZXZpY2UucGtpZCB8fCBkZXZpY2Uud2ViZXhVVUlEIHx8IGRldmljZS5uYW1lIHx8IGBkZXZpY2UtJHtpbmRleH1gLFxyXG4gICAga2luZDogJ2RldmljZScgYXMgY29uc3QsXHJcbiAgICBsYWJlbDogbW9kZWwgfHwgZGV2aWNlLm5hbWUgfHwgJ1VubmFtZWQgZGV2aWNlJyxcclxuICAgIG1vZGVsLFxyXG4gICAgbWFjOiAvXlNFUC9pLnRlc3QoZGV2aWNlLm5hbWUgfHwgJycpID8gZGV2aWNlLm5hbWUuc2xpY2UoMykgOiB1bmRlZmluZWQsXHJcbiAgfV07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvV29ya3NwYWNlKGl0ZW06IFdvcmtzcGFjZUxpc3RJdGVtLCBpbmRleDogbnVtYmVyLCBpc0N1Y206IGJvb2xlYW4pOiBXb3Jrc3BhY2Uge1xyXG4gIGNvbnN0IGRldmljZSA9IGl0ZW0uZGV2aWNlO1xyXG4gIGNvbnN0IGZpcnN0RGlyZWN0b3J5TnVtYmVyID0gZGV2aWNlLmFzc29jaWF0ZWRETnM/LlswXT8uZGlyZWN0b3J5TnVtYmVyID8/ICcnO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgaWQ6IGRldmljZS5wa2lkIHx8IGl0ZW0ud29ya3NwYWNlRGV2aWNlcz8uWzBdPy5kZXZpY2VJZCB8fCBkZXZpY2UubmFtZSB8fCBgd29ya3NwYWNlLSR7aW5kZXh9YCxcclxuICAgIGRpc3BsYXlOYW1lOiBkZXZpY2UubmV3TmFtZSB8fCBkZXZpY2UubmFtZSB8fCAnVW5uYW1lZCBkZXZpY2UnLFxyXG4gICAgdHlwZUxhYmVsOiBkZXZpY2UudXNlckRldmljZVR5cGUgfHwgJ05vIHR5cGUnLFxyXG4gICAgY2FwYWNpdHk6IG51bGwsXHJcbiAgICBsb2NhdGlvbjogaXRlbS5zaXRlPy5uYW1lIHx8IGRldmljZS5zaXRlTmFtZSB8fCBkZXZpY2UubG9jYXRpb24gfHwgJycsXHJcbiAgICBzaXRlSWQ6IGl0ZW0uc2l0ZT8uaWQgPz8gbnVsbCxcclxuICAgIGRldmljZXM6IHRvV29ya3NwYWNlRGV2aWNlcyhpdGVtLCBpbmRleCksXHJcbiAgICBzY2hlZHVsaW5nOiAnTm90IHNldCcsXHJcbiAgICBjYWxsaW5nTGljZW5zZTogZmlyc3REaXJlY3RvcnlOdW1iZXIsXHJcbiAgICBwcm92aXNpb25pbmdUeXBlOiAnT24tcHJlbWlzZXMnLFxyXG4gICAgc3RhdHVzOiB0b1N0YXR1cyhkZXZpY2UucHJvdmlzaW9uaW5nU3RhdHVzKSxcclxuICAgIHN0YXR1c0xhYmVsOiBkZXZpY2UucHJvdmlzaW9uaW5nU3RhdHVzIHx8ICdTdGF0dXMgdW5hdmFpbGFibGUnLFxyXG4gICAgZGV2aWNlLFxyXG4gICAgaXNIeWJyaWQ6IGZhbHNlLFxyXG4gICAgY3VjbURldmljZU5hbWU6IGlzQ3VjbSA/IChkZXZpY2UubmFtZSB8fCBudWxsKSA6IG51bGwsXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VEZXZpY2VzKGE6IFdvcmtzcGFjZVsnZGV2aWNlJ10sIGI6IFdvcmtzcGFjZVsnZGV2aWNlJ10pOiBXb3Jrc3BhY2VbJ2RldmljZSddIHtcclxuICByZXR1cm4ge1xyXG4gICAgLi4uYSxcclxuICAgIC4uLmIsXHJcbiAgICBjdWNtSWQ6IGIuY3VjbUlkID8/IGEuY3VjbUlkLFxyXG4gICAgd2ViZXhVVUlEOiBiLndlYmV4VVVJRCA/PyBhLndlYmV4VVVJRCxcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVdvcmtzcGFjZXNCeURldmljZU5hbWUod29ya3NwYWNlczogV29ya3NwYWNlW10pOiBXb3Jrc3BhY2VbXSB7XHJcbiAgY29uc3QgbWVyZ2VkID0gbmV3IE1hcDxzdHJpbmcsIFdvcmtzcGFjZT4oKTtcclxuXHJcbiAgZm9yIChjb25zdCB3b3Jrc3BhY2Ugb2Ygd29ya3NwYWNlcykge1xyXG4gICAgY29uc3Qga2V5ID0gd2l0aG91dFNlcCh3b3Jrc3BhY2UuZGV2aWNlLm5hbWUpO1xyXG4gICAgY29uc3QgZXhpc3RpbmcgPSBtZXJnZWQuZ2V0KGtleSk7XHJcbiAgICBtZXJnZWQuc2V0KGtleSwgZXhpc3RpbmcgPyB7XHJcbiAgICAgIC4uLmV4aXN0aW5nLFxyXG4gICAgICAuLi53b3Jrc3BhY2UsXHJcbiAgICAgIGRldmljZTogbWVyZ2VEZXZpY2VzKGV4aXN0aW5nLmRldmljZSwgd29ya3NwYWNlLmRldmljZSksXHJcbiAgICAgIGlzSHlicmlkOiB0cnVlLFxyXG4gICAgICBjdWNtRGV2aWNlTmFtZTogZXhpc3RpbmcuY3VjbURldmljZU5hbWUgPz8gd29ya3NwYWNlLmN1Y21EZXZpY2VOYW1lLFxyXG4gICAgfSA6IHdvcmtzcGFjZSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gQXJyYXkuZnJvbShtZXJnZWQudmFsdWVzKCkpO1xyXG59XHJcblxyXG5jb25zdCBGRVRDSF9BTExfU0laRSA9IDk5OTk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlKSB7IH1cclxuXHJcbiAgZmV0Y2hXb3Jrc3BhY2VzKGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcik6IE9ic2VydmFibGU8V29ya3NwYWNlc1BhZ2U+IHtcclxuICAgIGNvbnN0IGJhc2VQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgICAgIHR5cGU6ICdPUlBIQU5fREVWSUNFJyxcclxuICAgICAgY3VzdG9tZXJpZDogY3VzdG9tZXJJZC50b1N0cmluZygpLFxyXG4gICAgICBzaXplOiBGRVRDSF9BTExfU0laRS50b1N0cmluZygpLFxyXG4gICAgICBwYWdlOiAnMCcsXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGN1Y20kID0gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5XT1JLU1BBQ0VTLkdFVF9BTEwsIHtcclxuICAgICAgLi4uYmFzZVBhcmFtcyxcclxuICAgICAgJ2RldmljZS1uYW1lJzogJ1NFUCcsXHJcbiAgICAgIHByb3Zpc2lvblR5cGU6ICdDVUNNJyxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHdlYmV4JCA9IHRoaXMuYXBpU2VydmljZS5mZXRjaChBUEkuV09SS1NQQUNFUy5HRVRfQUxMLCB7XHJcbiAgICAgIC4uLmJhc2VQYXJhbXMsXHJcbiAgICAgIHByb3Zpc2lvblR5cGU6ICdXRUJFWCcsXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2N1Y20kLCB3ZWJleCRdKS5waXBlKFxyXG4gICAgICBtYXAoKFtjdWNtUmVzcG9uc2UsIHdlYmV4UmVzcG9uc2VdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY3VjbVBhcnNlZCA9IHBhcnNlUmVzcG9uc2UoY3VjbVJlc3BvbnNlKSBhcyBXb3Jrc3BhY2VzUmVzcG9uc2U7XHJcbiAgICAgICAgY29uc3Qgd2ViZXhQYXJzZWQgPSBwYXJzZVJlc3BvbnNlKHdlYmV4UmVzcG9uc2UpIGFzIFdvcmtzcGFjZXNSZXNwb25zZTtcclxuICAgICAgICBjb25zdCBjdWNtV29ya3NwYWNlcyA9IChjdWNtUGFyc2VkPy5wYWdlRGF0YSB8fCBbXSkubWFwKChpdGVtLCBpbmRleCkgPT4gdG9Xb3Jrc3BhY2UoaXRlbSwgaW5kZXgsIHRydWUpKTtcclxuICAgICAgICBjb25zdCB3ZWJleFdvcmtzcGFjZXMgPSAod2ViZXhQYXJzZWQ/LnBhZ2VEYXRhIHx8IFtdKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB0b1dvcmtzcGFjZShpdGVtLCBpbmRleCwgZmFsc2UpKTtcclxuICAgICAgICBjb25zdCB3b3Jrc3BhY2VzID0gbWVyZ2VXb3Jrc3BhY2VzQnlEZXZpY2VOYW1lKFsuLi5jdWNtV29ya3NwYWNlcywgLi4ud2ViZXhXb3Jrc3BhY2VzXSk7XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICB3b3Jrc3BhY2VzLFxyXG4gICAgICAgICAgdG90YWw6IHdvcmtzcGFjZXMubGVuZ3RoLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3NlcnZpY2VzL3dvcmtzcGFjZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUVyRCxTQUFTLGFBQWEsQ0FBQyxRQUFhO0lBQ2xDLE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLGtCQUFpQztJQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUU7UUFDdkIsT0FBTyxhQUFhLENBQUM7S0FDdEI7SUFDRCxPQUFPLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDL0UsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBdUIsRUFBRSxLQUFhO0lBQ2hFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRTtRQUNqQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELEVBQUUsRUFBRSxlQUFlLENBQUMsUUFBUTtZQUM1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LGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9hcHAuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gJy4vYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2UsIFdvcmtzcGFjZURldmljZSwgV29ya3NwYWNlTGlzdEl0ZW0sIFdvcmtzcGFjZXNQYWdlLCBXb3Jrc3BhY2VzUmVzcG9uc2UsIFdvcmtzcGFjZVN0YXR1cyB9IGZyb20gJy4uL3R5cGVzL3dvcmtzcGFjZSc7XHJcbmltcG9ydCB7IHdpdGhvdXRTZXAgfSBmcm9tICcuLi91dGlscy93b3Jrc3BhY2UtbmFtZSc7XHJcblxyXG5mdW5jdGlvbiBwYXJzZVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBhbnkge1xyXG4gIHJldHVybiB0eXBlb2YgcmVzcG9uc2UgPT09ICdzdHJpbmcnID8gSlNPTi5wYXJzZShyZXNwb25zZSkgOiByZXNwb25zZTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9TdGF0dXMocHJvdmlzaW9uaW5nU3RhdHVzOiBzdHJpbmcgfCBudWxsKTogV29ya3NwYWNlU3RhdHVzIHtcclxuICBpZiAoIXByb3Zpc2lvbmluZ1N0YXR1cykge1xyXG4gICAgcmV0dXJuICd1bmF2YWlsYWJsZSc7XHJcbiAgfVxyXG4gIHJldHVybiBwcm92aXNpb25pbmdTdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2FjdGl2ZScgPyAnYWN0aXZlJyA6ICdpbmFjdGl2ZSc7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvV29ya3NwYWNlRGV2aWNlcyhpdGVtOiBXb3Jrc3BhY2VMaXN0SXRlbSwgaW5kZXg6IG51bWJlcik6IFdvcmtzcGFjZURldmljZVtdIHtcclxuICBpZiAoaXRlbS53b3Jrc3BhY2VEZXZpY2VzPy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBpdGVtLndvcmtzcGFjZURldmljZXMubWFwKHdvcmtzcGFjZURldmljZSA9PiAoe1xyXG4gICAgICBpZDogd29ya3NwYWNlRGV2aWNlLmRldmljZUlkLFxyXG4gICAgICBraW5kOiAnZGV2aWNlJyBhcyBjb25zdCxcclxuICAgICAgbGFiZWw6IHdvcmtzcGFjZURldmljZS5tb2RlbCB8fCB3b3Jrc3BhY2VEZXZpY2UubWFjLFxyXG4gICAgICBtb2RlbDogd29ya3NwYWNlRGV2aWNlLm1vZGVsLFxyXG4gICAgICBtYWM6IHdvcmtzcGFjZURldmljZS5tYWMsXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBkZXZpY2UgPSBpdGVtLmRldmljZTtcclxuICBpZiAoIWRldmljZSkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgbW9kZWwgPSBkZXZpY2UuZGV2aWNlVHlwZSB8fCBkZXZpY2UudXNlckRldmljZVR5cGUgfHwgdW5kZWZpbmVkO1xyXG4gIHJldHVybiBbe1xyXG4gICAgaWQ6IGRldmljZS5wa2lkIHx8IGRldmljZS53ZWJleFVVSUQgfHwgZGV2aWNlLm5hbWUgfHwgYGRldmljZS0ke2luZGV4fWAsXHJcbiAgICBraW5kOiAnZGV2aWNlJyBhcyBjb25zdCxcclxuICAgIGxhYmVsOiBtb2RlbCB8fCBkZXZpY2UubmFtZSB8fCAnVW5uYW1lZCBkZXZpY2UnLFxyXG4gICAgbW9kZWwsXHJcbiAgICBtYWM6IC9eU0VQL2kudGVzdChkZXZpY2UubmFtZSB8fCAnJykgPyBkZXZpY2UubmFtZS5zbGljZSgzKSA6IHVuZGVmaW5lZCxcclxuICB9XTtcclxufVxyXG5cclxuZnVuY3Rpb24gdG9Xb3Jrc3BhY2UoaXRlbTogV29ya3NwYWNlTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIsIGlzQ3VjbTogYm9vbGVhbik6IFdvcmtzcGFjZSB7XHJcbiAgY29uc3QgZGV2aWNlID0gaXRlbS5kZXZpY2U7XHJcbiAgY29uc3QgZmlyc3REaXJlY3RvcnlOdW1iZXIgPSBkZXZpY2UuYXNzb2NpYXRlZEROcz8uWzBdPy5kaXJlY3RvcnlOdW1iZXIgPz8gJyc7XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICBpZDogZGV2aWNlLnBraWQgfHwgaXRlbS53b3Jrc3BhY2VEZXZpY2VzPy5bMF0/LmRldmljZUlkIHx8IGRldmljZS5uYW1lIHx8IGB3b3Jrc3BhY2UtJHtpbmRleH1gLFxyXG4gICAgZGlzcGxheU5hbWU6IGRldmljZS5uZXdOYW1lIHx8IGRldmljZS5uYW1lIHx8ICdVbm5hbWVkIGRldmljZScsXHJcbiAgICB0eXBlTGFiZWw6IGRldmljZS51c2VyRGV2aWNlVHlwZSB8fCAnTm8gdHlwZScsXHJcbiAgICBjYXBhY2l0eTogbnVsbCxcclxuICAgIGxvY2F0aW9uOiBpdGVtLnNpdGU/Lm5hbWUgfHwgZGV2aWNlLnNpdGVOYW1lIHx8IGRldmljZS5sb2NhdGlvbiB8fCAnJyxcclxuICAgIHNpdGVJZDogaXRlbS5zaXRlPy5pZCA/PyBudWxsLFxyXG4gICAgZGV2aWNlczogdG9Xb3Jrc3BhY2VEZXZpY2VzKGl0ZW0sIGluZGV4KSxcclxuICAgIHNjaGVkdWxpbmc6ICdOb3Qgc2V0JyxcclxuICAgIGNhbGxpbmdMaWNlbnNlOiBmaXJzdERpcmVjdG9yeU51bWJlcixcclxuICAgIHByb3Zpc2lvbmluZ1R5cGU6ICdPbi1wcmVtaXNlcycsXHJcbiAgICBzdGF0dXM6IHRvU3RhdHVzKGRldmljZS5wcm92aXNpb25pbmdTdGF0dXMpLFxyXG4gICAgc3RhdHVzTGFiZWw6IGRldmljZS5wcm92aXNpb25pbmdTdGF0dXMgfHwgJ1N0YXR1cyB1bmF2YWlsYWJsZScsXHJcbiAgICBkZXZpY2UsXHJcbiAgICBpc0h5YnJpZDogZmFsc2UsXHJcbiAgICBjdWNtRGV2aWNlTmFtZTogaXNDdWNtID8gKGRldmljZS5uYW1lIHx8IG51bGwpIDogbnVsbCxcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZURldmljZXMoYTogV29ya3NwYWNlWydkZXZpY2UnXSwgYjogV29ya3NwYWNlWydkZXZpY2UnXSk6IFdvcmtzcGFjZVsnZGV2aWNlJ10ge1xyXG4gIHJldHVybiB7XHJcbiAgICAuLi5hLFxyXG4gICAgLi4uYixcclxuICAgIGN1Y21JZDogYi5jdWNtSWQgPz8gYS5jdWNtSWQsXHJcbiAgICB3ZWJleFVVSUQ6IGIud2ViZXhVVUlEID8/IGEud2ViZXhVVUlELFxyXG4gIH07XHJcbn1cclxuXHJcblxyXG5mdW5jdGlvbiB0b01hY0tleSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHZhbHVlID8gd2l0aG91dFNlcCh2YWx1ZSkucmVwbGFjZSgvW14wLTlBLUZdL2csICcnKSA6ICcnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZUN1Y21BbmRXZWJleFdvcmtzcGFjZXMoY3VjbVdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdLCB3ZWJleEl0ZW1zOiBXb3Jrc3BhY2VMaXN0SXRlbVtdLCB3ZWJleFdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdKTogV29ya3NwYWNlW10ge1xyXG4gIGNvbnN0IHJlc3VsdCA9IFsuLi5jdWNtV29ya3NwYWNlc107XHJcbiAgY29uc3QgY3VjbUluZGV4QnlNYWMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xyXG4gIGN1Y21Xb3Jrc3BhY2VzLmZvckVhY2goKHdvcmtzcGFjZSwgaW5kZXgpID0+IHtcclxuICAgIGNvbnN0IGtleSA9IHRvTWFjS2V5KHdvcmtzcGFjZS5kZXZpY2UubmFtZSk7XHJcbiAgICBpZiAoa2V5ICYmICFjdWNtSW5kZXhCeU1hYy5oYXMoa2V5KSkge1xyXG4gICAgICBjdWNtSW5kZXhCeU1hYy5zZXQoa2V5LCBpbmRleCk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHdlYmV4V29ya3NwYWNlcy5mb3JFYWNoKCh3ZWJleFdvcmtzcGFjZSwgd2ViZXhJbmRleCkgPT4ge1xyXG4gICAgY29uc3QgbWF0Y2hlZE1hYyA9ICh3ZWJleEl0ZW1zW3dlYmV4SW5kZXhdLndvcmtzcGFjZURldmljZXMgfHwgW10pXHJcbiAgICAgIC5tYXAod29ya3NwYWNlRGV2aWNlID0+IHRvTWFjS2V5KHdvcmtzcGFjZURldmljZS5tYWMpKVxyXG4gICAgICAuZmluZChrZXkgPT4ga2V5ICYmIGN1Y21JbmRleEJ5TWFjLmhhcyhrZXkpKTtcclxuXHJcbiAgICBpZiAoIW1hdGNoZWRNYWMpIHtcclxuICAgICAgcmVzdWx0LnB1c2god2ViZXhXb3Jrc3BhY2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY3VjbUluZGV4ID0gY3VjbUluZGV4QnlNYWMuZ2V0KG1hdGNoZWRNYWMpITtcclxuICAgIGN1Y21JbmRleEJ5TWFjLmRlbGV0ZShtYXRjaGVkTWFjKTtcclxuICAgIGNvbnN0IGN1Y21Xb3Jrc3BhY2UgPSByZXN1bHRbY3VjbUluZGV4XTtcclxuICAgIHJlc3VsdFtjdWNtSW5kZXhdID0ge1xyXG4gICAgICAuLi5jdWNtV29ya3NwYWNlLFxyXG4gICAgICAuLi53ZWJleFdvcmtzcGFjZSxcclxuICAgICAgZGlzcGxheU5hbWU6IGN1Y21Xb3Jrc3BhY2UuZGlzcGxheU5hbWUsXHJcbiAgICAgIGRldmljZToge1xyXG4gICAgICAgIC4uLm1lcmdlRGV2aWNlcyhjdWNtV29ya3NwYWNlLmRldmljZSwgd2ViZXhXb3Jrc3BhY2UuZGV2aWNlKSxcclxuICAgICAgICBuYW1lOiBjdWNtV29ya3NwYWNlLmRldmljZS5uYW1lLFxyXG4gICAgICAgIG5ld05hbWU6IGN1Y21Xb3Jrc3BhY2UuZGV2aWNlLm5ld05hbWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGlzSHlicmlkOiB0cnVlLFxyXG4gICAgICBjdWNtRGV2aWNlTmFtZTogY3VjbVdvcmtzcGFjZS5jdWNtRGV2aWNlTmFtZSxcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmNvbnN0IEZFVENIX0FMTF9TSVpFID0gOTk5OTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFQSVNlcnZpY2UpIHsgfVxyXG5cclxuICBmZXRjaFdvcmtzcGFjZXMoY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyKTogT2JzZXJ2YWJsZTxXb3Jrc3BhY2VzUGFnZT4ge1xyXG4gICAgY29uc3QgYmFzZVBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICAgICAgdHlwZTogJ09SUEhBTl9ERVZJQ0UnLFxyXG4gICAgICBjdXN0b21lcmlkOiBjdXN0b21lcklkLnRvU3RyaW5nKCksXHJcbiAgICAgIHNpemU6IEZFVENIX0FMTF9TSVpFLnRvU3RyaW5nKCksXHJcbiAgICAgIHBhZ2U6ICcwJyxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY3VjbSQgPSB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goQVBJLldPUktTUEFDRVMuR0VUX0FMTCwge1xyXG4gICAgICAuLi5iYXNlUGFyYW1zLFxyXG4gICAgICAnZGV2aWNlLW5hbWUnOiAnU0VQJyxcclxuICAgICAgcHJvdmlzaW9uVHlwZTogJ0NVQ00nLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3Qgd2ViZXgkID0gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKEFQSS5XT1JLU1BBQ0VTLkdFVF9BTEwsIHtcclxuICAgICAgLi4uYmFzZVBhcmFtcyxcclxuICAgICAgcHJvdmlzaW9uVHlwZTogJ1dFQkVYJyxcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihbY3VjbSQsIHdlYmV4JF0pLnBpcGUoXHJcbiAgICAgIG1hcCgoW2N1Y21SZXNwb25zZSwgd2ViZXhSZXNwb25zZV0pID0+IHtcclxuICAgICAgICBjb25zdCBjdWNtUGFyc2VkID0gcGFyc2VSZXNwb25zZShjdWNtUmVzcG9uc2UpIGFzIFdvcmtzcGFjZXNSZXNwb25zZTtcclxuICAgICAgICBjb25zdCB3ZWJleFBhcnNlZCA9IHBhcnNlUmVzcG9uc2Uod2ViZXhSZXNwb25zZSkgYXMgV29ya3NwYWNlc1Jlc3BvbnNlO1xyXG4gICAgICAgIGNvbnN0IHdlYmV4SXRlbXMgPSB3ZWJleFBhcnNlZD8ucGFnZURhdGEgfHwgW107XHJcbiAgICAgICAgY29uc3QgY3VjbVdvcmtzcGFjZXMgPSAoY3VjbVBhcnNlZD8ucGFnZURhdGEgfHwgW10pLm1hcCgoaXRlbSwgaW5kZXgpID0+IHRvV29ya3NwYWNlKGl0ZW0sIGluZGV4LCB0cnVlKSk7XHJcbiAgICAgICAgY29uc3Qgd2ViZXhXb3Jrc3BhY2VzID0gd2ViZXhJdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB0b1dvcmtzcGFjZShpdGVtLCBpbmRleCwgZmFsc2UpKTtcclxuICAgICAgICBjb25zdCB3b3Jrc3BhY2VzID0gbWVyZ2VDdWNtQW5kV2ViZXhXb3Jrc3BhY2VzKGN1Y21Xb3Jrc3BhY2VzLCB3ZWJleEl0ZW1zLCB3ZWJleFdvcmtzcGFjZXMpO1xyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgd29ya3NwYWNlcyxcclxuICAgICAgICAgIHRvdGFsOiB3b3Jrc3BhY2VzLmxlbmd0aCxcclxuICAgICAgICB9O1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -293,15 +293,32 @@ function mergeDevices(a, b) {
293
293
  var _a, _b;
294
294
  return Object.assign(Object.assign(Object.assign({}, a), b), { cucmId: (_a = b.cucmId) !== null && _a !== void 0 ? _a : a.cucmId, webexUUID: (_b = b.webexUUID) !== null && _b !== void 0 ? _b : a.webexUUID });
295
295
  }
296
- function mergeWorkspacesByDeviceName(workspaces) {
297
- var _a;
298
- const merged = new Map();
299
- for (const workspace of workspaces) {
300
- const key = withoutSep(workspace.device.name);
301
- const existing = merged.get(key);
302
- merged.set(key, existing ? Object.assign(Object.assign(Object.assign({}, existing), workspace), { device: mergeDevices(existing.device, workspace.device), isHybrid: true, cucmDeviceName: (_a = existing.cucmDeviceName) !== null && _a !== void 0 ? _a : workspace.cucmDeviceName }) : workspace);
303
- }
304
- return Array.from(merged.values());
296
+ function toMacKey(value) {
297
+ return value ? withoutSep(value).replace(/[^0-9A-F]/g, '') : '';
298
+ }
299
+ function mergeCucmAndWebexWorkspaces(cucmWorkspaces, webexItems, webexWorkspaces) {
300
+ const result = [...cucmWorkspaces];
301
+ const cucmIndexByMac = new Map();
302
+ cucmWorkspaces.forEach((workspace, index) => {
303
+ const key = toMacKey(workspace.device.name);
304
+ if (key && !cucmIndexByMac.has(key)) {
305
+ cucmIndexByMac.set(key, index);
306
+ }
307
+ });
308
+ webexWorkspaces.forEach((webexWorkspace, webexIndex) => {
309
+ const matchedMac = (webexItems[webexIndex].workspaceDevices || [])
310
+ .map(workspaceDevice => toMacKey(workspaceDevice.mac))
311
+ .find(key => key && cucmIndexByMac.has(key));
312
+ if (!matchedMac) {
313
+ result.push(webexWorkspace);
314
+ return;
315
+ }
316
+ const cucmIndex = cucmIndexByMac.get(matchedMac);
317
+ cucmIndexByMac.delete(matchedMac);
318
+ const cucmWorkspace = result[cucmIndex];
319
+ result[cucmIndex] = Object.assign(Object.assign(Object.assign({}, cucmWorkspace), webexWorkspace), { displayName: cucmWorkspace.displayName, device: Object.assign(Object.assign({}, mergeDevices(cucmWorkspace.device, webexWorkspace.device)), { name: cucmWorkspace.device.name, newName: cucmWorkspace.device.newName }), isHybrid: true, cucmDeviceName: cucmWorkspace.cucmDeviceName });
320
+ });
321
+ return result;
305
322
  }
306
323
  const FETCH_ALL_SIZE = 9999;
307
324
  class WorkspacesService {
@@ -320,9 +337,10 @@ class WorkspacesService {
320
337
  return forkJoin([cucm$, webex$]).pipe(map(([cucmResponse, webexResponse]) => {
321
338
  const cucmParsed = parseResponse(cucmResponse);
322
339
  const webexParsed = parseResponse(webexResponse);
340
+ const webexItems = (webexParsed === null || webexParsed === void 0 ? void 0 : webexParsed.pageData) || [];
323
341
  const cucmWorkspaces = ((cucmParsed === null || cucmParsed === void 0 ? void 0 : cucmParsed.pageData) || []).map((item, index) => toWorkspace(item, index, true));
324
- const webexWorkspaces = ((webexParsed === null || webexParsed === void 0 ? void 0 : webexParsed.pageData) || []).map((item, index) => toWorkspace(item, index, false));
325
- const workspaces = mergeWorkspacesByDeviceName([...cucmWorkspaces, ...webexWorkspaces]);
342
+ const webexWorkspaces = webexItems.map((item, index) => toWorkspace(item, index, false));
343
+ const workspaces = mergeCucmAndWebexWorkspaces(cucmWorkspaces, webexItems, webexWorkspaces);
326
344
  return {
327
345
  workspaces,
328
346
  total: workspaces.length,