@ah-oh/ao-workspaces-design-system 0.0.53 → 0.0.54
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.
|
@@ -5146,7 +5146,8 @@ class WorkspaceNavbarService {
|
|
|
5146
5146
|
companies = new BehaviorSubject([]);
|
|
5147
5147
|
companies$ = this.companies.asObservable();
|
|
5148
5148
|
companiesSignal = toSignal(this.companies$);
|
|
5149
|
-
activeAppId;
|
|
5149
|
+
activeAppId = new BehaviorSubject(undefined);
|
|
5150
|
+
activeAppIdSignal = toSignal(this.activeAppId.asObservable());
|
|
5150
5151
|
loginUrl = 'https://login.ah-oh.com';
|
|
5151
5152
|
production = true;
|
|
5152
5153
|
preserveRedirectUrl = true;
|
|
@@ -5154,10 +5155,10 @@ class WorkspaceNavbarService {
|
|
|
5154
5155
|
return this.session.value;
|
|
5155
5156
|
}
|
|
5156
5157
|
get currentAppId() {
|
|
5157
|
-
return this.activeAppId;
|
|
5158
|
+
return this.activeAppId.value;
|
|
5158
5159
|
}
|
|
5159
5160
|
init(config) {
|
|
5160
|
-
this.activeAppId
|
|
5161
|
+
this.activeAppId.next(config.appId);
|
|
5161
5162
|
this.production = config.production;
|
|
5162
5163
|
this.preserveRedirectUrl = config.preserveRedirectUrl ?? true;
|
|
5163
5164
|
if (config.loginUrl) {
|
|
@@ -5179,6 +5180,7 @@ class WorkspaceNavbarService {
|
|
|
5179
5180
|
...res,
|
|
5180
5181
|
isExternalUser: res.companyId !== res.enabledCompanyId,
|
|
5181
5182
|
};
|
|
5183
|
+
this.activeAppId.next(userSession.appId ?? userSession.product ?? config.appId);
|
|
5182
5184
|
this.session.next(userSession);
|
|
5183
5185
|
this.loadWorkspaceApps().subscribe();
|
|
5184
5186
|
this.findEnabledCompanies().subscribe();
|
|
@@ -5196,21 +5198,11 @@ class WorkspaceNavbarService {
|
|
|
5196
5198
|
}
|
|
5197
5199
|
loadWorkspaceApps() {
|
|
5198
5200
|
return this.http.get(WorkspaceNavbarService.WORKSPACE_APPS_URL).pipe(map$1(response => {
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
}));
|
|
5205
|
-
response = {
|
|
5206
|
-
...response,
|
|
5207
|
-
products: apps.filter(a => response.products.some(p => p.appId === a.appId)),
|
|
5208
|
-
customApps: apps.filter(a => response.customApps.some(c => c.appId === a.appId)),
|
|
5209
|
-
};
|
|
5210
|
-
}
|
|
5211
|
-
this.workspaceApps.next(apps);
|
|
5212
|
-
this.workspaceAppsResponse.next(response);
|
|
5213
|
-
return apps;
|
|
5201
|
+
const normalizedResponse = this.normalizeWorkspaceAppsResponse(response);
|
|
5202
|
+
const workspaceApps = [...normalizedResponse.products, ...normalizedResponse.customApps];
|
|
5203
|
+
this.workspaceApps.next(workspaceApps);
|
|
5204
|
+
this.workspaceAppsResponse.next(normalizedResponse);
|
|
5205
|
+
return workspaceApps;
|
|
5214
5206
|
}), catchError(err => {
|
|
5215
5207
|
console.error('Failed to load workspace apps:', err);
|
|
5216
5208
|
return of([]);
|
|
@@ -5230,14 +5222,16 @@ class WorkspaceNavbarService {
|
|
|
5230
5222
|
if (!session) {
|
|
5231
5223
|
throw new Error('Session is not initialized.');
|
|
5232
5224
|
}
|
|
5233
|
-
const appId = args.appId ?? this.
|
|
5225
|
+
const appId = args.appId ?? this.currentAppId ?? 'admin';
|
|
5234
5226
|
const companyId = args.companyId ?? session.enabledCompanyId;
|
|
5235
5227
|
return this.http
|
|
5236
5228
|
.get(`/auth-api/users/new-company/${companyId}/${session.userId}/${appId}`)
|
|
5237
5229
|
.pipe(tap(({ jwtKey }) => {
|
|
5238
5230
|
const app = this.workspaceApps.value.find(a => a.appId === appId);
|
|
5239
|
-
const
|
|
5240
|
-
|
|
5231
|
+
const targetUrl = app
|
|
5232
|
+
? this.getRuntimeBaseUrl(app, args.isTesting)
|
|
5233
|
+
: window.location.origin;
|
|
5234
|
+
window.location.href = this.buildJwtRedirectUrl({ targetUrl, jwtKey });
|
|
5241
5235
|
}));
|
|
5242
5236
|
}
|
|
5243
5237
|
switchApp(appId, isTesting = false) {
|
|
@@ -5252,15 +5246,18 @@ class WorkspaceNavbarService {
|
|
|
5252
5246
|
return this.http
|
|
5253
5247
|
.get(`/auth-api/users/new-company/${session.enabledCompanyId}/${session.userId}/${appId}`)
|
|
5254
5248
|
.pipe(tap(({ jwtKey }) => {
|
|
5255
|
-
const
|
|
5256
|
-
window.location.href =
|
|
5249
|
+
const targetUrl = this.getRuntimeBaseUrl(app, isTesting);
|
|
5250
|
+
window.location.href = this.buildJwtRedirectUrl({ targetUrl, jwtKey });
|
|
5257
5251
|
}));
|
|
5258
5252
|
}
|
|
5259
5253
|
createCompany() {
|
|
5260
5254
|
return this.http
|
|
5261
5255
|
.get(`${WorkspaceNavbarService.AUTH_BASE_URL}/jwt-key`)
|
|
5262
5256
|
.pipe(tap(({ jwtKey }) => {
|
|
5263
|
-
window.location.href =
|
|
5257
|
+
window.location.href = this.buildLoginPathUrl('create-company', {
|
|
5258
|
+
product: this.currentAppId,
|
|
5259
|
+
jwtKey,
|
|
5260
|
+
});
|
|
5264
5261
|
}));
|
|
5265
5262
|
}
|
|
5266
5263
|
signOut() {
|
|
@@ -5271,13 +5268,14 @@ class WorkspaceNavbarService {
|
|
|
5271
5268
|
}));
|
|
5272
5269
|
}
|
|
5273
5270
|
buildLoginUrl() {
|
|
5274
|
-
|
|
5271
|
+
const url = new URL(this.loginUrl, window.location.origin);
|
|
5272
|
+
url.searchParams.set('product', this.currentAppId ?? 'admin');
|
|
5275
5273
|
if (this.preserveRedirectUrl) {
|
|
5276
5274
|
const currentUrl = new URL(window.location.href);
|
|
5277
5275
|
currentUrl.searchParams.delete('jwtKey');
|
|
5278
|
-
url
|
|
5276
|
+
url.searchParams.set('redirectUrl', currentUrl.toString());
|
|
5279
5277
|
}
|
|
5280
|
-
return url;
|
|
5278
|
+
return url.toString();
|
|
5281
5279
|
}
|
|
5282
5280
|
replaceSessionParams(url) {
|
|
5283
5281
|
const session = this.session.value;
|
|
@@ -5290,7 +5288,7 @@ class WorkspaceNavbarService {
|
|
|
5290
5288
|
const app = this.workspaceApps.value.find(a => a.appId === appId);
|
|
5291
5289
|
if (!app)
|
|
5292
5290
|
return undefined;
|
|
5293
|
-
return
|
|
5291
|
+
return this.getRuntimeBaseUrl(app, isTesting);
|
|
5294
5292
|
}
|
|
5295
5293
|
getCompanyLogo(companyId) {
|
|
5296
5294
|
return this.http.get(`${WorkspaceNavbarService.COMPANY_URL}/${companyId}/logo`);
|
|
@@ -5308,6 +5306,45 @@ class WorkspaceNavbarService {
|
|
|
5308
5306
|
};
|
|
5309
5307
|
return devUrls[appId] ?? `http://localhost:4200`;
|
|
5310
5308
|
}
|
|
5309
|
+
normalizeWorkspaceAppsResponse(response) {
|
|
5310
|
+
if (this.production) {
|
|
5311
|
+
return response;
|
|
5312
|
+
}
|
|
5313
|
+
return {
|
|
5314
|
+
...response,
|
|
5315
|
+
products: response.products.map(app => this.withRuntimeBaseUrl(app)),
|
|
5316
|
+
customApps: response.customApps.map(app => this.withRuntimeBaseUrl(app)),
|
|
5317
|
+
};
|
|
5318
|
+
}
|
|
5319
|
+
withRuntimeBaseUrl(app) {
|
|
5320
|
+
return {
|
|
5321
|
+
...app,
|
|
5322
|
+
baseUrl: this.getRuntimeBaseUrl(app),
|
|
5323
|
+
};
|
|
5324
|
+
}
|
|
5325
|
+
getRuntimeBaseUrl(app, isTesting = false) {
|
|
5326
|
+
if (isTesting && app.testingUrl) {
|
|
5327
|
+
return app.testingUrl;
|
|
5328
|
+
}
|
|
5329
|
+
if (!this.production) {
|
|
5330
|
+
return app.testingUrl ?? this.getLegacyDevUrl(app.appId);
|
|
5331
|
+
}
|
|
5332
|
+
return app.baseUrl;
|
|
5333
|
+
}
|
|
5334
|
+
buildJwtRedirectUrl(arg) {
|
|
5335
|
+
const url = new URL(arg.targetUrl, window.location.origin);
|
|
5336
|
+
url.searchParams.set('jwtKey', arg.jwtKey);
|
|
5337
|
+
return url.toString();
|
|
5338
|
+
}
|
|
5339
|
+
buildLoginPathUrl(path, params) {
|
|
5340
|
+
const baseUrl = this.loginUrl.endsWith('/') ? this.loginUrl : `${this.loginUrl}/`;
|
|
5341
|
+
const url = new URL(path, baseUrl);
|
|
5342
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
5343
|
+
if (value)
|
|
5344
|
+
url.searchParams.set(key, value);
|
|
5345
|
+
});
|
|
5346
|
+
return url.toString();
|
|
5347
|
+
}
|
|
5311
5348
|
getEnabledApps() {
|
|
5312
5349
|
const session = this.session.value;
|
|
5313
5350
|
return session?.enabledApps ?? this.buildLegacyEnabledApps(session);
|
|
@@ -7091,7 +7128,12 @@ class ChatComponent {
|
|
|
7091
7128
|
for (const turn of projected) {
|
|
7092
7129
|
for (const part of turn.parts) {
|
|
7093
7130
|
if (part.kind === 'a2ui') {
|
|
7094
|
-
|
|
7131
|
+
try {
|
|
7132
|
+
this.renderer.processMessages(part.surface.messages);
|
|
7133
|
+
}
|
|
7134
|
+
catch (error) {
|
|
7135
|
+
console.warn('[RobinChat] A2UI history render failed', error);
|
|
7136
|
+
}
|
|
7095
7137
|
}
|
|
7096
7138
|
}
|
|
7097
7139
|
}
|
|
@@ -7145,32 +7187,47 @@ class ChatComponent {
|
|
|
7145
7187
|
}
|
|
7146
7188
|
handleResponse(response) {
|
|
7147
7189
|
this.setThreadId(response.threadId);
|
|
7148
|
-
this.
|
|
7149
|
-
|
|
7150
|
-
|
|
7190
|
+
this.tryRetireOldSurfaces();
|
|
7191
|
+
this.appendAssistantTurn(this.processA2uiParts(response.parts));
|
|
7192
|
+
this.threads.set(undefined);
|
|
7193
|
+
this.activeRequest.set(false);
|
|
7194
|
+
}
|
|
7195
|
+
tryRetireOldSurfaces() {
|
|
7196
|
+
try {
|
|
7197
|
+
this.retireOldSurfaces();
|
|
7198
|
+
}
|
|
7199
|
+
catch (error) {
|
|
7200
|
+
console.warn('[RobinChat] A2UI surface retirement failed', error);
|
|
7201
|
+
}
|
|
7202
|
+
}
|
|
7203
|
+
processA2uiParts(parts) {
|
|
7204
|
+
const renderable = [];
|
|
7205
|
+
for (const part of parts) {
|
|
7206
|
+
if (part.kind !== 'a2ui') {
|
|
7207
|
+
renderable.push(part);
|
|
7208
|
+
continue;
|
|
7209
|
+
}
|
|
7210
|
+
try {
|
|
7151
7211
|
this.renderer.processMessages(part.surface.messages);
|
|
7212
|
+
renderable.push(part);
|
|
7213
|
+
}
|
|
7214
|
+
catch (error) {
|
|
7215
|
+
console.warn('[RobinChat] A2UI render failed', error);
|
|
7152
7216
|
}
|
|
7153
7217
|
}
|
|
7154
|
-
|
|
7155
|
-
this.threads.set(undefined);
|
|
7156
|
-
this.activeRequest.set(false);
|
|
7218
|
+
return renderable.length > 0 ? renderable : [{ kind: 'text', content: ERROR_FALLBACK }];
|
|
7157
7219
|
}
|
|
7158
7220
|
/**
|
|
7159
7221
|
* Removes A2UI surfaces from the renderer that belong to older turns and
|
|
7160
7222
|
* strips their `a2ui` parts so the chat history doesn't accumulate stale
|
|
7161
7223
|
* interactive cards as the conversation progresses.
|
|
7162
7224
|
*/
|
|
7163
|
-
retireOldSurfaces(
|
|
7164
|
-
const incoming = new Set(response.parts
|
|
7165
|
-
.filter(part => part.kind === 'a2ui')
|
|
7166
|
-
.map(part => part.surface.surfaceId));
|
|
7225
|
+
retireOldSurfaces() {
|
|
7167
7226
|
const toDelete = [];
|
|
7168
7227
|
const nextTurns = this.turns().map(turn => {
|
|
7169
7228
|
const filtered = turn.parts.filter(part => {
|
|
7170
7229
|
if (part.kind !== 'a2ui')
|
|
7171
7230
|
return true;
|
|
7172
|
-
if (incoming.has(part.surface.surfaceId))
|
|
7173
|
-
return true;
|
|
7174
7231
|
toDelete.push(part.surface.surfaceId);
|
|
7175
7232
|
return false;
|
|
7176
7233
|
});
|
|
@@ -7295,6 +7352,9 @@ class WorkspaceNavbarComponent {
|
|
|
7295
7352
|
const url = this.currentUrl() ?? '';
|
|
7296
7353
|
return this.findBestRouteMatch(url, this.activeSubTopNavItems())?.id ?? '';
|
|
7297
7354
|
}, ...(ngDevMode ? [{ debugName: "activeSubTopNavItemId" }] : /* istanbul ignore next */ []));
|
|
7355
|
+
activeWorkspaceAppId = computed(() => {
|
|
7356
|
+
return this.workspaceNavbarService.activeAppIdSignal() ?? this.appId();
|
|
7357
|
+
}, ...(ngDevMode ? [{ debugName: "activeWorkspaceAppId" }] : /* istanbul ignore next */ []));
|
|
7298
7358
|
signOutIcon = phosphorSignOut;
|
|
7299
7359
|
plusIcon = phosphorPlus;
|
|
7300
7360
|
chatIcon = phosphorRobot;
|
|
@@ -7319,9 +7379,7 @@ class WorkspaceNavbarComponent {
|
|
|
7319
7379
|
icon: this.resolveIcon(app),
|
|
7320
7380
|
tooltip: app.name,
|
|
7321
7381
|
});
|
|
7322
|
-
const productItems = response.products
|
|
7323
|
-
.map(mapApp)
|
|
7324
|
-
.sort((a, b) => {
|
|
7382
|
+
const productItems = response.products.map(mapApp).sort((a, b) => {
|
|
7325
7383
|
const indexA = this.productOrder.indexOf(a.id.toLowerCase());
|
|
7326
7384
|
const indexB = this.productOrder.indexOf(b.id.toLowerCase());
|
|
7327
7385
|
const posA = indexA === -1 ? this.productOrder.length : indexA;
|
|
@@ -7403,7 +7461,7 @@ class WorkspaceNavbarComponent {
|
|
|
7403
7461
|
this.workspaceNavbarService.signOut().subscribe();
|
|
7404
7462
|
return;
|
|
7405
7463
|
}
|
|
7406
|
-
if (item.id === this.
|
|
7464
|
+
if (item.id === this.activeWorkspaceAppId()) {
|
|
7407
7465
|
return;
|
|
7408
7466
|
}
|
|
7409
7467
|
const apps = this.workspaceNavbarService.workspaceAppsSignal() ?? [];
|
|
@@ -7456,7 +7514,7 @@ class WorkspaceNavbarComponent {
|
|
|
7456
7514
|
});
|
|
7457
7515
|
}
|
|
7458
7516
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: WorkspaceNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7459
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: WorkspaceNavbarComponent, isStandalone: true, selector: "ao-workspace-navbar", inputs: { appId: { classPropertyName: "appId", publicName: "appId", isSignal: true, isRequired: true, transformFunction: null }, production: { classPropertyName: "production", publicName: "production", isSignal: true, isRequired: false, transformFunction: null }, topNavItems: { classPropertyName: "topNavItems", publicName: "topNavItems", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, showNotifications: { classPropertyName: "showNotifications", publicName: "showNotifications", isSignal: true, isRequired: false, transformFunction: null }, notificationCount: { classPropertyName: "notificationCount", publicName: "notificationCount", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, recommendedFilters: { classPropertyName: "recommendedFilters", publicName: "recommendedFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFilter: { classPropertyName: "activeFilter", publicName: "activeFilter", isSignal: true, isRequired: false, transformFunction: null }, resultGroups: { classPropertyName: "resultGroups", publicName: "resultGroups", isSignal: true, isRequired: false, transformFunction: null }, pageSuggestion: { classPropertyName: "pageSuggestion", publicName: "pageSuggestion", isSignal: true, isRequired: false, transformFunction: null }, aiSuggestions: { classPropertyName: "aiSuggestions", publicName: "aiSuggestions", isSignal: true, isRequired: false, transformFunction: null }, searchLoading: { classPropertyName: "searchLoading", publicName: "searchLoading", isSignal: true, isRequired: false, transformFunction: null }, searchError: { classPropertyName: "searchError", publicName: "searchError", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeFilter: "activeFilterChange", topNavItemClick: "topNavItemClick", topNavItemChange: "topNavItemChange", subTopNavItemClick: "subTopNavItemClick", subTopNavItemChange: "subTopNavItemChange", appSwitched: "appSwitched", searchSubmit: "searchSubmit", searchQueryChange: "searchQueryChange", searchViewAll: "searchViewAll", searchResultSelect: "searchResultSelect", searchAiSuggestionSelect: "searchAiSuggestionSelect", searchPageSuggestionSelect: "searchPageSuggestionSelect", searchFilterSelect: "searchFilterSelect", searchFilterClear: "searchFilterClear", notificationClick: "notificationClick" }, host: { classAttribute: "ao-workspace-navbar" }, ngImport: i0, template: "<ao-side-nav\n [items]=\"workspaceAppNavItems()\"\n [bottomItems]=\"bottomNavItems()\"\n [activeItemId]=\"
|
|
7517
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: WorkspaceNavbarComponent, isStandalone: true, selector: "ao-workspace-navbar", inputs: { appId: { classPropertyName: "appId", publicName: "appId", isSignal: true, isRequired: true, transformFunction: null }, production: { classPropertyName: "production", publicName: "production", isSignal: true, isRequired: false, transformFunction: null }, topNavItems: { classPropertyName: "topNavItems", publicName: "topNavItems", isSignal: true, isRequired: false, transformFunction: null }, showSearch: { classPropertyName: "showSearch", publicName: "showSearch", isSignal: true, isRequired: false, transformFunction: null }, showNotifications: { classPropertyName: "showNotifications", publicName: "showNotifications", isSignal: true, isRequired: false, transformFunction: null }, notificationCount: { classPropertyName: "notificationCount", publicName: "notificationCount", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, recommendedFilters: { classPropertyName: "recommendedFilters", publicName: "recommendedFilters", isSignal: true, isRequired: false, transformFunction: null }, activeFilter: { classPropertyName: "activeFilter", publicName: "activeFilter", isSignal: true, isRequired: false, transformFunction: null }, resultGroups: { classPropertyName: "resultGroups", publicName: "resultGroups", isSignal: true, isRequired: false, transformFunction: null }, pageSuggestion: { classPropertyName: "pageSuggestion", publicName: "pageSuggestion", isSignal: true, isRequired: false, transformFunction: null }, aiSuggestions: { classPropertyName: "aiSuggestions", publicName: "aiSuggestions", isSignal: true, isRequired: false, transformFunction: null }, searchLoading: { classPropertyName: "searchLoading", publicName: "searchLoading", isSignal: true, isRequired: false, transformFunction: null }, searchError: { classPropertyName: "searchError", publicName: "searchError", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeFilter: "activeFilterChange", topNavItemClick: "topNavItemClick", topNavItemChange: "topNavItemChange", subTopNavItemClick: "subTopNavItemClick", subTopNavItemChange: "subTopNavItemChange", appSwitched: "appSwitched", searchSubmit: "searchSubmit", searchQueryChange: "searchQueryChange", searchViewAll: "searchViewAll", searchResultSelect: "searchResultSelect", searchAiSuggestionSelect: "searchAiSuggestionSelect", searchPageSuggestionSelect: "searchPageSuggestionSelect", searchFilterSelect: "searchFilterSelect", searchFilterClear: "searchFilterClear", notificationClick: "notificationClick" }, host: { classAttribute: "ao-workspace-navbar" }, ngImport: i0, template: "<ao-side-nav\n [items]=\"workspaceAppNavItems()\"\n [bottomItems]=\"bottomNavItems()\"\n [activeItemId]=\"activeWorkspaceAppId()\"\n [expanded]=\"false\"\n (itemClick)=\"onSideNavItemClick($event)\"\n>\n <ao-logo-menu\n aoSideNavLogo\n [items]=\"companyMenuItems()\"\n [selectedItem]=\"selectedCompanyId()\"\n (selectionChange)=\"onCompanyChange($event)\"\n >\n @if (companyLogo()) {\n <img [src]=\"companyLogo()\" alt=\"Logo\" class=\"workspace-navbar__logo\" />\n } @else {\n <svg\n class=\"workspace-navbar__logo\"\n width=\"96\"\n height=\"120\"\n viewBox=\"0 0 96 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"Logo\"\n role=\"img\"\n >\n <path\n d=\"M36.6592 37.5955L31.1625 31.4924C28.1349 28.1284 28.4073 22.9247 31.7689 19.8971C33.2769 18.5401 35.2266 17.7918 37.2633 17.7918C39.5929 17.7918 41.8195 18.7781 43.3664 20.4967C45.458 22.824 46.0484 26.0826 44.911 28.998C44.4465 30.1903 43.7234 31.2338 42.7623 32.0988L36.6592 37.5955ZM95.5987 76.4613L83.6854 63.2299L70.4585 75.1363L48.5725 50.8269L54.6802 45.3279C57.6779 42.6253 60.035 39.2156 61.4949 35.4696C65.0969 26.2497 63.2204 15.9497 56.6001 8.58568C46.9981 -2.06444 30.5149 -2.92488 19.8556 6.66801C9.20088 16.2655 8.3359 32.7464 17.9311 43.4057L23.4255 49.5065L14.1118 57.8957C13.5099 58.438 12.9287 58.9621 12.3817 59.4792L12.3703 59.4655L11.2742 60.4518C4.49141 66.5572 0.493621 74.9372 0.0153502 84.045C-0.00525137 84.4317 -0.000673098 84.8185 0.00390115 85.2029L0.0084674 85.7086L0.00160688 87.1494L17.7823 87.1503L17.7938 85.7224L17.7915 85.4134C17.7892 85.2716 17.7869 85.1297 17.7938 84.9809C18.0203 80.6216 19.938 76.61 23.1852 73.6855L35.341 62.7379L57.2271 87.0473L45.0712 97.995C42.1055 100.668 38.261 102.151 34.2449 102.174L32.817 102.183V120L34.2586 119.998C42.6547 119.977 50.7258 116.86 56.9868 111.226L69.1404 100.281L81.0446 113.503L94.276 101.592L82.3718 88.3677L95.5987 76.4613Z\"\n fill=\"#FF004D\"\n />\n </svg>\n }\n </ao-logo-menu>\n</ao-side-nav>\n\n<div class=\"workspace-navbar__main\" [class.workspace-navbar__main--with-subnav]=\"hasSubTopNav()\">\n <div\n class=\"workspace-navbar__nav-wrapper\"\n [class.workspace-navbar__nav-wrapper--hidden]=\"navHidden()\"\n >\n <ao-top-nav\n [items]=\"topNavItems()\"\n [activeItemId]=\"activeTopNavItemId()\"\n [showSearch]=\"showSearch()\"\n [showNotifications]=\"showNotifications()\"\n [notificationCount]=\"notificationCount()\"\n [searchPlaceholder]=\"searchPlaceholder()\"\n [recommendedFilters]=\"recommendedFilters()\"\n [(activeFilter)]=\"activeFilter\"\n [resultGroups]=\"resultGroups()\"\n [pageSuggestion]=\"pageSuggestion()\"\n [aiSuggestions]=\"aiSuggestions()\"\n [searchLoading]=\"searchLoading()\"\n [searchError]=\"searchError()\"\n (itemClick)=\"onTopNavClick($event)\"\n (itemChange)=\"onTopNavChange($event)\"\n (searchSubmit)=\"searchSubmit.emit($event)\"\n (searchQueryChange)=\"searchQueryChange.emit($event)\"\n (searchViewAll)=\"searchViewAll.emit($event)\"\n (searchResultSelect)=\"searchResultSelect.emit($event)\"\n (searchAiSuggestionSelect)=\"searchAiSuggestionSelect.emit($event)\"\n (searchPageSuggestionSelect)=\"searchPageSuggestionSelect.emit($event)\"\n (searchFilterSelect)=\"searchFilterSelect.emit($event)\"\n (searchFilterClear)=\"searchFilterClear.emit()\"\n (notificationClick)=\"onNotificationClick()\"\n [showTools]=\"showTools()\"\n />\n\n @if (hasSubTopNav()) {\n <ao-sub-top-nav\n [items]=\"activeSubTopNavItems()\"\n [activeItemId]=\"activeSubTopNavItemId()\"\n (itemClick)=\"onSubTopNavClick($event)\"\n (itemChange)=\"onSubTopNavChange($event)\"\n />\n }\n </div>\n\n <main class=\"workspace-navbar__content\">\n <ng-content />\n </main>\n</div>\n\n<button ao-button class=\"handbook-chat\" variant=\"primary\" (click)=\"chatOpen.set(!chatOpen())\">\n <ao-icon [svg]=\"chatIcon\" />\n</button>\n\n<div class=\"chat-container\" [class.open]=\"chatOpen()\">\n <lib-chat [searchType]=\"activeFilter()?.type\" (closed)=\"chatOpen.set(false)\" />\n</div>\n", styles: [":host{display:block;min-height:100vh}.workspace-navbar__main{margin-left:70px;padding-top:50px;min-height:100vh}.workspace-navbar__main.workspace-navbar__main--with-subnav{padding-top:100px}.workspace-navbar__nav-wrapper{position:fixed;top:0;left:0;right:0;z-index:3;transform:translateY(0);transition:transform .25s ease}.workspace-navbar__nav-wrapper--hidden{transform:translateY(-100%)}.workspace-navbar__content{padding:30px 0}.workspace-navbar__logo{max-width:32px;max-height:32px;object-fit:contain}.handbook-chat{position:fixed;right:1.5em;bottom:1.5em;z-index:100}.chat-container{position:fixed;width:500px;height:100vh;right:0;top:0;margin-right:-500px;transition:margin-right .5s ease-in-out;background-color:#fff}.chat-container.open{margin-right:0;z-index:501}\n"], dependencies: [{ kind: "component", type: SideNavComponent, selector: "ao-side-nav", inputs: ["items", "bottomItems", "activeItemId", "expanded"], outputs: ["activeItemIdChange", "itemClick", "itemChange", "bottomItemClick"] }, { kind: "component", type: TopNavComponent, selector: "ao-top-nav", inputs: ["items", "activeItemId", "showSearch", "showNotifications", "notificationCount", "searchPlaceholder", "showTools", "recommendedFilters", "activeFilter", "resultGroups", "pageSuggestion", "aiSuggestions", "searchLoading", "searchError"], outputs: ["activeItemIdChange", "activeFilterChange", "itemClick", "itemChange", "searchSubmit", "searchQueryChange", "searchResultSelect", "searchAiSuggestionSelect", "searchPageSuggestionSelect", "searchFilterSelect", "searchFilterClear", "searchViewAll", "notificationClick"] }, { kind: "component", type: SubTopNavComponent, selector: "ao-sub-top-nav", inputs: ["items", "activeItemId"], outputs: ["activeItemIdChange", "itemClick", "itemChange"] }, { kind: "component", type: LogoMenuComponent, selector: "ao-logo-menu", inputs: ["items", "selectedItem", "searchPlaceholder"], outputs: ["selectedItemChange", "selectionChange"] }, { kind: "component", type: IconComponent, selector: "ao-icon", inputs: ["svg", "size"] }, { kind: "component", type: ButtonComponent, selector: "button[ao-button], a[ao-button]", inputs: ["variant", "icon", "iconTrailing"] }, { kind: "component", type: ChatComponent, selector: "lib-chat", inputs: ["searchType"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7460
7518
|
}
|
|
7461
7519
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: WorkspaceNavbarComponent, decorators: [{
|
|
7462
7520
|
type: Component,
|
|
@@ -7470,7 +7528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
|
|
|
7470
7528
|
ChatComponent,
|
|
7471
7529
|
], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
7472
7530
|
class: 'ao-workspace-navbar',
|
|
7473
|
-
}, template: "<ao-side-nav\n [items]=\"workspaceAppNavItems()\"\n [bottomItems]=\"bottomNavItems()\"\n [activeItemId]=\"
|
|
7531
|
+
}, template: "<ao-side-nav\n [items]=\"workspaceAppNavItems()\"\n [bottomItems]=\"bottomNavItems()\"\n [activeItemId]=\"activeWorkspaceAppId()\"\n [expanded]=\"false\"\n (itemClick)=\"onSideNavItemClick($event)\"\n>\n <ao-logo-menu\n aoSideNavLogo\n [items]=\"companyMenuItems()\"\n [selectedItem]=\"selectedCompanyId()\"\n (selectionChange)=\"onCompanyChange($event)\"\n >\n @if (companyLogo()) {\n <img [src]=\"companyLogo()\" alt=\"Logo\" class=\"workspace-navbar__logo\" />\n } @else {\n <svg\n class=\"workspace-navbar__logo\"\n width=\"96\"\n height=\"120\"\n viewBox=\"0 0 96 120\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"Logo\"\n role=\"img\"\n >\n <path\n d=\"M36.6592 37.5955L31.1625 31.4924C28.1349 28.1284 28.4073 22.9247 31.7689 19.8971C33.2769 18.5401 35.2266 17.7918 37.2633 17.7918C39.5929 17.7918 41.8195 18.7781 43.3664 20.4967C45.458 22.824 46.0484 26.0826 44.911 28.998C44.4465 30.1903 43.7234 31.2338 42.7623 32.0988L36.6592 37.5955ZM95.5987 76.4613L83.6854 63.2299L70.4585 75.1363L48.5725 50.8269L54.6802 45.3279C57.6779 42.6253 60.035 39.2156 61.4949 35.4696C65.0969 26.2497 63.2204 15.9497 56.6001 8.58568C46.9981 -2.06444 30.5149 -2.92488 19.8556 6.66801C9.20088 16.2655 8.3359 32.7464 17.9311 43.4057L23.4255 49.5065L14.1118 57.8957C13.5099 58.438 12.9287 58.9621 12.3817 59.4792L12.3703 59.4655L11.2742 60.4518C4.49141 66.5572 0.493621 74.9372 0.0153502 84.045C-0.00525137 84.4317 -0.000673098 84.8185 0.00390115 85.2029L0.0084674 85.7086L0.00160688 87.1494L17.7823 87.1503L17.7938 85.7224L17.7915 85.4134C17.7892 85.2716 17.7869 85.1297 17.7938 84.9809C18.0203 80.6216 19.938 76.61 23.1852 73.6855L35.341 62.7379L57.2271 87.0473L45.0712 97.995C42.1055 100.668 38.261 102.151 34.2449 102.174L32.817 102.183V120L34.2586 119.998C42.6547 119.977 50.7258 116.86 56.9868 111.226L69.1404 100.281L81.0446 113.503L94.276 101.592L82.3718 88.3677L95.5987 76.4613Z\"\n fill=\"#FF004D\"\n />\n </svg>\n }\n </ao-logo-menu>\n</ao-side-nav>\n\n<div class=\"workspace-navbar__main\" [class.workspace-navbar__main--with-subnav]=\"hasSubTopNav()\">\n <div\n class=\"workspace-navbar__nav-wrapper\"\n [class.workspace-navbar__nav-wrapper--hidden]=\"navHidden()\"\n >\n <ao-top-nav\n [items]=\"topNavItems()\"\n [activeItemId]=\"activeTopNavItemId()\"\n [showSearch]=\"showSearch()\"\n [showNotifications]=\"showNotifications()\"\n [notificationCount]=\"notificationCount()\"\n [searchPlaceholder]=\"searchPlaceholder()\"\n [recommendedFilters]=\"recommendedFilters()\"\n [(activeFilter)]=\"activeFilter\"\n [resultGroups]=\"resultGroups()\"\n [pageSuggestion]=\"pageSuggestion()\"\n [aiSuggestions]=\"aiSuggestions()\"\n [searchLoading]=\"searchLoading()\"\n [searchError]=\"searchError()\"\n (itemClick)=\"onTopNavClick($event)\"\n (itemChange)=\"onTopNavChange($event)\"\n (searchSubmit)=\"searchSubmit.emit($event)\"\n (searchQueryChange)=\"searchQueryChange.emit($event)\"\n (searchViewAll)=\"searchViewAll.emit($event)\"\n (searchResultSelect)=\"searchResultSelect.emit($event)\"\n (searchAiSuggestionSelect)=\"searchAiSuggestionSelect.emit($event)\"\n (searchPageSuggestionSelect)=\"searchPageSuggestionSelect.emit($event)\"\n (searchFilterSelect)=\"searchFilterSelect.emit($event)\"\n (searchFilterClear)=\"searchFilterClear.emit()\"\n (notificationClick)=\"onNotificationClick()\"\n [showTools]=\"showTools()\"\n />\n\n @if (hasSubTopNav()) {\n <ao-sub-top-nav\n [items]=\"activeSubTopNavItems()\"\n [activeItemId]=\"activeSubTopNavItemId()\"\n (itemClick)=\"onSubTopNavClick($event)\"\n (itemChange)=\"onSubTopNavChange($event)\"\n />\n }\n </div>\n\n <main class=\"workspace-navbar__content\">\n <ng-content />\n </main>\n</div>\n\n<button ao-button class=\"handbook-chat\" variant=\"primary\" (click)=\"chatOpen.set(!chatOpen())\">\n <ao-icon [svg]=\"chatIcon\" />\n</button>\n\n<div class=\"chat-container\" [class.open]=\"chatOpen()\">\n <lib-chat [searchType]=\"activeFilter()?.type\" (closed)=\"chatOpen.set(false)\" />\n</div>\n", styles: [":host{display:block;min-height:100vh}.workspace-navbar__main{margin-left:70px;padding-top:50px;min-height:100vh}.workspace-navbar__main.workspace-navbar__main--with-subnav{padding-top:100px}.workspace-navbar__nav-wrapper{position:fixed;top:0;left:0;right:0;z-index:3;transform:translateY(0);transition:transform .25s ease}.workspace-navbar__nav-wrapper--hidden{transform:translateY(-100%)}.workspace-navbar__content{padding:30px 0}.workspace-navbar__logo{max-width:32px;max-height:32px;object-fit:contain}.handbook-chat{position:fixed;right:1.5em;bottom:1.5em;z-index:100}.chat-container{position:fixed;width:500px;height:100vh;right:0;top:0;margin-right:-500px;transition:margin-right .5s ease-in-out;background-color:#fff}.chat-container.open{margin-right:0;z-index:501}\n"] }]
|
|
7474
7532
|
}], ctorParameters: () => [], propDecorators: { appId: [{ type: i0.Input, args: [{ isSignal: true, alias: "appId", required: true }] }], production: [{ type: i0.Input, args: [{ isSignal: true, alias: "production", required: false }] }], topNavItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "topNavItems", required: false }] }], showSearch: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSearch", required: false }] }], showNotifications: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNotifications", required: false }] }], notificationCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "notificationCount", required: false }] }], searchPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchPlaceholder", required: false }] }], recommendedFilters: [{ type: i0.Input, args: [{ isSignal: true, alias: "recommendedFilters", required: false }] }], activeFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeFilter", required: false }] }, { type: i0.Output, args: ["activeFilterChange"] }], resultGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "resultGroups", required: false }] }], pageSuggestion: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSuggestion", required: false }] }], aiSuggestions: [{ type: i0.Input, args: [{ isSignal: true, alias: "aiSuggestions", required: false }] }], searchLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchLoading", required: false }] }], searchError: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchError", required: false }] }], topNavItemClick: [{ type: i0.Output, args: ["topNavItemClick"] }], topNavItemChange: [{ type: i0.Output, args: ["topNavItemChange"] }], subTopNavItemClick: [{ type: i0.Output, args: ["subTopNavItemClick"] }], subTopNavItemChange: [{ type: i0.Output, args: ["subTopNavItemChange"] }], appSwitched: [{ type: i0.Output, args: ["appSwitched"] }], searchSubmit: [{ type: i0.Output, args: ["searchSubmit"] }], searchQueryChange: [{ type: i0.Output, args: ["searchQueryChange"] }], searchViewAll: [{ type: i0.Output, args: ["searchViewAll"] }], searchResultSelect: [{ type: i0.Output, args: ["searchResultSelect"] }], searchAiSuggestionSelect: [{ type: i0.Output, args: ["searchAiSuggestionSelect"] }], searchPageSuggestionSelect: [{ type: i0.Output, args: ["searchPageSuggestionSelect"] }], searchFilterSelect: [{ type: i0.Output, args: ["searchFilterSelect"] }], searchFilterClear: [{ type: i0.Output, args: ["searchFilterClear"] }], notificationClick: [{ type: i0.Output, args: ["notificationClick"] }] } });
|
|
7475
7533
|
|
|
7476
7534
|
const AO_CATALOG_ID = 'ah-oh.com:robin-v1';
|