@ah-oh/ao-workspaces-design-system 0.0.52 → 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 = config.appId;
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
- let apps = [...response.products, ...response.customApps];
5200
- if (!this.production) {
5201
- apps = apps.map(app => ({
5202
- ...app,
5203
- baseUrl: app.testingUrl ?? this.getLegacyDevUrl(app.appId),
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.activeAppId ?? 'admin';
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 url = (args.isTesting ? app?.testingUrl : app?.baseUrl) ?? window.location.origin;
5240
- window.location.href = `${url}?jwtKey=${jwtKey}`;
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 url = isTesting && app.testingUrl ? app.testingUrl : app.baseUrl;
5256
- window.location.href = `${url}?jwtKey=${jwtKey}`;
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 = `${this.loginUrl}/create-company?product=${this.activeAppId}&jwtKey=${jwtKey}`;
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
- let url = `${this.loginUrl}?product=${this.activeAppId}`;
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 += `&redirectUrl=${encodeURIComponent(currentUrl.toString())}`;
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 isTesting && app.testingUrl ? app.testingUrl : app.baseUrl;
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);
@@ -7026,6 +7063,7 @@ class ChatComponent {
7026
7063
  activeRequest = signal(false, ...(ngDevMode ? [{ debugName: "activeRequest" }] : /* istanbul ignore next */ []));
7027
7064
  showHistory = signal(false, ...(ngDevMode ? [{ debugName: "showHistory" }] : /* istanbul ignore next */ []));
7028
7065
  threads = signal(undefined, ...(ngDevMode ? [{ debugName: "threads" }] : /* istanbul ignore next */ []));
7066
+ searchType;
7029
7067
  closed = new EventEmitter();
7030
7068
  chat = inject(RobinChatService);
7031
7069
  renderer = inject(A2uiRendererService);
@@ -7033,9 +7071,11 @@ class ChatComponent {
7033
7071
  authService = inject(WorkspaceNavbarService);
7034
7072
  destroyRef = inject(DestroyRef);
7035
7073
  product;
7074
+ handbookType;
7036
7075
  currentThreadId;
7037
7076
  ngOnInit() {
7038
7077
  this.product = this.resolveProduct();
7078
+ this.handbookType = this.product;
7039
7079
  this.dispatcher.responses$
7040
7080
  .pipe(takeUntilDestroyed(this.destroyRef))
7041
7081
  .subscribe(response => this.handleResponse(response));
@@ -7088,7 +7128,12 @@ class ChatComponent {
7088
7128
  for (const turn of projected) {
7089
7129
  for (const part of turn.parts) {
7090
7130
  if (part.kind === 'a2ui') {
7091
- this.renderer.processMessages(part.surface.messages);
7131
+ try {
7132
+ this.renderer.processMessages(part.surface.messages);
7133
+ }
7134
+ catch (error) {
7135
+ console.warn('[RobinChat] A2UI history render failed', error);
7136
+ }
7092
7137
  }
7093
7138
  }
7094
7139
  }
@@ -7120,6 +7165,8 @@ class ChatComponent {
7120
7165
  question: 'Bitte begrüße den User kurz und biete Hilfe an.',
7121
7166
  threadId: this.currentThreadId,
7122
7167
  product: this.product,
7168
+ handbookType: this.handbookType,
7169
+ type: this.searchType ?? null,
7123
7170
  })
7124
7171
  .then(response => this.handleResponse(response))
7125
7172
  .catch(() => this.handleError());
@@ -7128,38 +7175,59 @@ class ChatComponent {
7128
7175
  this.activeRequest.set(true);
7129
7176
  this.scrollDown();
7130
7177
  void this.chat
7131
- .sendMessage({ question, threadId: this.currentThreadId, product: this.product })
7178
+ .sendMessage({
7179
+ question,
7180
+ threadId: this.currentThreadId,
7181
+ product: this.product,
7182
+ handbookType: this.handbookType,
7183
+ type: this.searchType ?? null,
7184
+ })
7132
7185
  .then(response => this.handleResponse(response))
7133
7186
  .catch(() => this.handleError());
7134
7187
  }
7135
7188
  handleResponse(response) {
7136
7189
  this.setThreadId(response.threadId);
7137
- this.retireOldSurfaces(response);
7138
- for (const part of response.parts) {
7139
- if (part.kind === 'a2ui') {
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 {
7140
7211
  this.renderer.processMessages(part.surface.messages);
7212
+ renderable.push(part);
7213
+ }
7214
+ catch (error) {
7215
+ console.warn('[RobinChat] A2UI render failed', error);
7141
7216
  }
7142
7217
  }
7143
- this.appendAssistantTurn(response.parts);
7144
- this.threads.set(undefined);
7145
- this.activeRequest.set(false);
7218
+ return renderable.length > 0 ? renderable : [{ kind: 'text', content: ERROR_FALLBACK }];
7146
7219
  }
7147
7220
  /**
7148
7221
  * Removes A2UI surfaces from the renderer that belong to older turns and
7149
7222
  * strips their `a2ui` parts so the chat history doesn't accumulate stale
7150
7223
  * interactive cards as the conversation progresses.
7151
7224
  */
7152
- retireOldSurfaces(response) {
7153
- const incoming = new Set(response.parts
7154
- .filter(part => part.kind === 'a2ui')
7155
- .map(part => part.surface.surfaceId));
7225
+ retireOldSurfaces() {
7156
7226
  const toDelete = [];
7157
7227
  const nextTurns = this.turns().map(turn => {
7158
7228
  const filtered = turn.parts.filter(part => {
7159
7229
  if (part.kind !== 'a2ui')
7160
7230
  return true;
7161
- if (incoming.has(part.surface.surfaceId))
7162
- return true;
7163
7231
  toDelete.push(part.surface.surfaceId);
7164
7232
  return false;
7165
7233
  });
@@ -7216,7 +7284,7 @@ class ChatComponent {
7216
7284
  }
7217
7285
  }
7218
7286
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7219
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ChatComponent, isStandalone: true, selector: "lib-chat", outputs: { closed: "closed" }, viewQueries: [{ propertyName: "historyElement", first: true, predicate: ["conversation"], descendants: true }, { propertyName: "textField", first: true, predicate: ["textField"], descendants: true }], ngImport: i0, template: "<div class=\"sidebar\">\n @if (showHistory()) {\n <div class=\"chat-history\">\n <div class=\"header\">\n <h3>Verlauf</h3>\n </div>\n <div class=\"history-items\">\n @if (threads() === undefined) {\n <div class=\"history-empty\">L\u00E4dt\u2026</div>\n } @else if (threads()!.length === 0) {\n <div class=\"history-empty\">Noch keine Gespr\u00E4che.</div>\n }\n @for (item of threads(); track item.threadId) {\n <div class=\"chat-history-item\" (click)=\"openThread(item.threadId)\">\n <div class=\"preview\">{{ item.lastMessage }}</div>\n <div class=\"footer\">\n <div>{{ item.messageCount }} Nachrichten</div>\n <div>{{ item.updatedAt | date: 'dd.MM.yyyy HH:mm' }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"chat\">\n <div class=\"header\">\n <button ao-button variant=\"outline\" (click)=\"toggleHistory()\">\n <ao-icon [svg]=\"historyIcon\"></ao-icon>\n </button>\n <h2>Hilfecenter</h2>\n <div class=\"flex\">\n <button ao-button variant=\"outline\" (click)=\"newChat()\">\n <ao-icon [svg]=\"addIcon\"></ao-icon>\n </button>\n <button ao-button variant=\"outline\" (click)=\"showHistory.set(false); closed.emit()\">\n <ao-icon [svg]=\"closeIcon\"></ao-icon>\n </button>\n </div>\n </div>\n <div class=\"conversation-history\" #conversation>\n @for (turn of turns(); track $index) {\n <lib-chat-message\n [parts]=\"turn.parts\"\n [side]=\"turn.role === 'assistant' ? 'left' : 'right'\"\n >\n </lib-chat-message>\n }\n @if (activeRequest()) {\n <lib-chat-message [showTyping]=\"true\" side=\"left\"></lib-chat-message>\n }\n </div>\n\n <div class=\"input\">\n <textarea\n #textField\n rows=\"1\"\n class=\"textarea\"\n [formControl]=\"inputControl\"\n (keydown.enter)=\"send(); $event.stopPropagation(); $event.preventDefault()\"\n (input)=\"setSize()\"\n ></textarea>\n <button ao-button variant=\"primary\" (click)=\"send()\" class=\"send-button\">\n <ao-icon [svg]=\"sendIcon\"></ao-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.sidebar{display:flex;flex-direction:row;height:100%;position:relative}.header{background-color:#fff;padding:4px;display:flex;height:50px;flex-direction:row;align-items:center}.header h2,.header h3{margin:0}.header h2{font-size:24px}.header h3{font-size:16px}.chat{display:flex;flex-direction:column;height:100%;width:500px;background-color:#f3f3f3;border-left:1px solid #e9e9e9}.chat .header{justify-content:space-between}.chat .header .flex{display:flex;align-items:center;gap:10px}.conversation-history{--a2ui-color-primary: #212121;--a2ui-color-on-primary: #ffffff;--a2ui-color-secondary: #e9e9e9;--a2ui-color-on-secondary: #212121;--a2ui-color-surface: #ffffff;--a2ui-color-on-background: #212121;--a2ui-color-input: #ffffff;--a2ui-color-on-input: #212121;--a2ui-color-border: #e9e9e9;--a2ui-color-error: #ff004d;--a2ui-text-color: #212121;--a2ui-text-color-text: #212121;--a2ui-text-caption-color: #909090;--a2ui-text-a-color: #ff004d;--a2ui-text-a-font-weight: 600;--a2ui-spacing-xs: 5px;--a2ui-spacing-s: 10px;--a2ui-spacing-m: 15px;--a2ui-spacing-l: 20px;--a2ui-spacing-xl: 25px;--a2ui-row-gap: 12px;--a2ui-column-gap: 12px;--a2ui-list-gap: 8px;--a2ui-list-padding: 0;--a2ui-font-family-title: inherit;--a2ui-font-size-2xl: 28px;--a2ui-font-size-xl: 22px;--a2ui-font-size-l: 18px;--a2ui-font-size-m: 15px;--a2ui-font-size-s: 13px;--a2ui-font-size-xs: 12px;--a2ui-line-height-headings: 1.3;--a2ui-line-height-body: 1.55;--a2ui-label-font-size: 13px;--a2ui-border-width: 1px;--a2ui-border-radius: 8px;--a2ui-card-background: #ffffff;--a2ui-card-border-radius: 12px;--a2ui-card-padding: 20px;--a2ui-card-margin: 0;--a2ui-card-border: none;--a2ui-card-box-shadow: 0 1px 3px rgb(0 0 0 / 6%);--a2ui-button-background: #ffffff;--a2ui-button-border: 1px solid #212121;--a2ui-button-border-radius: 999px;--a2ui-button-padding: 10px 22px;--a2ui-button-margin: 0;--a2ui-button-box-shadow: none;--a2ui-button-font-weight: 600;--a2ui-choicepicker-gap: 10px;--a2ui-choicepicker-padding: 0;--a2ui-choicepicker-checkbox-size: 18px;--a2ui-choicepicker-chip-background: #ffffff;--a2ui-choicepicker-chip-background-selected: #212121;--a2ui-choicepicker-chip-border: 1px solid #212121;--a2ui-choicepicker-chip-border-radius: 999px;--a2ui-choicepicker-chip-padding: 8px 16px;--a2ui-checkbox-background: #ffffff;--a2ui-checkbox-border: 1px solid #212121;--a2ui-checkbox-border-radius: 4px;--a2ui-checkbox-size: 18px;--a2ui-checkbox-gap: 10px;--a2ui-checkbox-label-font-weight: 500;--a2ui-checkbox-margin: 0;--a2ui-textfield-border: 1px solid #e9e9e9;--a2ui-textfield-border-radius: 8px;--a2ui-textfield-padding: 10px 14px;--a2ui-textfield-color-border-focus: #ff004d;--a2ui-textfield-color-error: #ff004d;--a2ui-textfield-label-font-weight: 500;--a2ui-textfield-label-font-size: 13px;--a2ui-divider-spacing: 10px;accent-color:#ff004d}.conversation-history ::ng-deep .a2ui-chip:not(.active){color:#212121}.conversation-history{display:flex;flex-direction:column;gap:16px;padding:20px;flex-grow:1;min-height:0;overflow-y:auto}.conversation-history markdown{display:block}.possible-questions{padding:0 20px 10px;display:flex;flex-wrap:wrap;gap:8px}.possible-questions .question-chip{cursor:pointer;transition:all .2s ease;background-color:#e9e9e9;padding:8px;border-radius:5px}.possible-questions .question-chip:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.input{margin:0 10px 10px;position:relative}.input .textarea{font-family:inherit;z-index:10000;padding:10px 65px 10px 10px;width:100%;box-sizing:border-box;min-height:43px;resize:none}.input .send-button{position:absolute;right:10px;bottom:9px}.chat-history{background-color:#f3f3f3;border-left:1px solid #e9e9e9;width:300px;height:100vh;overflow:auto;position:fixed;right:500px;top:0}.chat-history .header{justify-content:center}.chat-history .history-items{display:flex;flex-direction:column;gap:8px;padding:8px;overflow:auto}.chat-history .history-items .history-empty{padding:16px 8px;color:#909090;text-align:center;font-size:13px}.chat-history .history-items .chat-history-item{cursor:pointer;background-color:#fff;border-radius:4px;padding:8px}.chat-history .history-items .chat-history-item:hover{filter:brightness(.97)}.chat-history .history-items .chat-history-item .preview{font-size:13px;line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-history .history-items .chat-history-item .footer{color:#909090;font-size:11px;display:flex;flex-direction:row;justify-content:space-between}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ChatMessageComponent, selector: "lib-chat-message", inputs: ["parts", "side", "showTyping"] }, { 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: "pipe", type: DatePipe, name: "date" }] });
7287
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ChatComponent, isStandalone: true, selector: "lib-chat", inputs: { searchType: "searchType" }, outputs: { closed: "closed" }, viewQueries: [{ propertyName: "historyElement", first: true, predicate: ["conversation"], descendants: true }, { propertyName: "textField", first: true, predicate: ["textField"], descendants: true }], ngImport: i0, template: "<div class=\"sidebar\">\n @if (showHistory()) {\n <div class=\"chat-history\">\n <div class=\"header\">\n <h3>Verlauf</h3>\n </div>\n <div class=\"history-items\">\n @if (threads() === undefined) {\n <div class=\"history-empty\">L\u00E4dt\u2026</div>\n } @else if (threads()!.length === 0) {\n <div class=\"history-empty\">Noch keine Gespr\u00E4che.</div>\n }\n @for (item of threads(); track item.threadId) {\n <div class=\"chat-history-item\" (click)=\"openThread(item.threadId)\">\n <div class=\"preview\">{{ item.lastMessage }}</div>\n <div class=\"footer\">\n <div>{{ item.messageCount }} Nachrichten</div>\n <div>{{ item.updatedAt | date: 'dd.MM.yyyy HH:mm' }}</div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"chat\">\n <div class=\"header\">\n <button ao-button variant=\"outline\" (click)=\"toggleHistory()\">\n <ao-icon [svg]=\"historyIcon\"></ao-icon>\n </button>\n <h2>Hilfecenter</h2>\n <div class=\"flex\">\n <button ao-button variant=\"outline\" (click)=\"newChat()\">\n <ao-icon [svg]=\"addIcon\"></ao-icon>\n </button>\n <button ao-button variant=\"outline\" (click)=\"showHistory.set(false); closed.emit()\">\n <ao-icon [svg]=\"closeIcon\"></ao-icon>\n </button>\n </div>\n </div>\n <div class=\"conversation-history\" #conversation>\n @for (turn of turns(); track $index) {\n <lib-chat-message\n [parts]=\"turn.parts\"\n [side]=\"turn.role === 'assistant' ? 'left' : 'right'\"\n >\n </lib-chat-message>\n }\n @if (activeRequest()) {\n <lib-chat-message [showTyping]=\"true\" side=\"left\"></lib-chat-message>\n }\n </div>\n\n <div class=\"input\">\n <textarea\n #textField\n rows=\"1\"\n class=\"textarea\"\n [formControl]=\"inputControl\"\n (keydown.enter)=\"send(); $event.stopPropagation(); $event.preventDefault()\"\n (input)=\"setSize()\"\n ></textarea>\n <button ao-button variant=\"primary\" (click)=\"send()\" class=\"send-button\">\n <ao-icon [svg]=\"sendIcon\"></ao-icon>\n </button>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.sidebar{display:flex;flex-direction:row;height:100%;position:relative}.header{background-color:#fff;padding:4px;display:flex;height:50px;flex-direction:row;align-items:center}.header h2,.header h3{margin:0}.header h2{font-size:24px}.header h3{font-size:16px}.chat{display:flex;flex-direction:column;height:100%;width:500px;background-color:#f3f3f3;border-left:1px solid #e9e9e9}.chat .header{justify-content:space-between}.chat .header .flex{display:flex;align-items:center;gap:10px}.conversation-history{--a2ui-color-primary: #212121;--a2ui-color-on-primary: #ffffff;--a2ui-color-secondary: #e9e9e9;--a2ui-color-on-secondary: #212121;--a2ui-color-surface: #ffffff;--a2ui-color-on-background: #212121;--a2ui-color-input: #ffffff;--a2ui-color-on-input: #212121;--a2ui-color-border: #e9e9e9;--a2ui-color-error: #ff004d;--a2ui-text-color: #212121;--a2ui-text-color-text: #212121;--a2ui-text-caption-color: #909090;--a2ui-text-a-color: #ff004d;--a2ui-text-a-font-weight: 600;--a2ui-spacing-xs: 5px;--a2ui-spacing-s: 10px;--a2ui-spacing-m: 15px;--a2ui-spacing-l: 20px;--a2ui-spacing-xl: 25px;--a2ui-row-gap: 12px;--a2ui-column-gap: 12px;--a2ui-list-gap: 8px;--a2ui-list-padding: 0;--a2ui-font-family-title: inherit;--a2ui-font-size-2xl: 28px;--a2ui-font-size-xl: 22px;--a2ui-font-size-l: 18px;--a2ui-font-size-m: 15px;--a2ui-font-size-s: 13px;--a2ui-font-size-xs: 12px;--a2ui-line-height-headings: 1.3;--a2ui-line-height-body: 1.55;--a2ui-label-font-size: 13px;--a2ui-border-width: 1px;--a2ui-border-radius: 8px;--a2ui-card-background: #ffffff;--a2ui-card-border-radius: 12px;--a2ui-card-padding: 20px;--a2ui-card-margin: 0;--a2ui-card-border: none;--a2ui-card-box-shadow: 0 1px 3px rgb(0 0 0 / 6%);--a2ui-button-background: #ffffff;--a2ui-button-border: 1px solid #212121;--a2ui-button-border-radius: 999px;--a2ui-button-padding: 10px 22px;--a2ui-button-margin: 0;--a2ui-button-box-shadow: none;--a2ui-button-font-weight: 600;--a2ui-choicepicker-gap: 10px;--a2ui-choicepicker-padding: 0;--a2ui-choicepicker-checkbox-size: 18px;--a2ui-choicepicker-chip-background: #ffffff;--a2ui-choicepicker-chip-background-selected: #212121;--a2ui-choicepicker-chip-border: 1px solid #212121;--a2ui-choicepicker-chip-border-radius: 999px;--a2ui-choicepicker-chip-padding: 8px 16px;--a2ui-checkbox-background: #ffffff;--a2ui-checkbox-border: 1px solid #212121;--a2ui-checkbox-border-radius: 4px;--a2ui-checkbox-size: 18px;--a2ui-checkbox-gap: 10px;--a2ui-checkbox-label-font-weight: 500;--a2ui-checkbox-margin: 0;--a2ui-textfield-border: 1px solid #e9e9e9;--a2ui-textfield-border-radius: 8px;--a2ui-textfield-padding: 10px 14px;--a2ui-textfield-color-border-focus: #ff004d;--a2ui-textfield-color-error: #ff004d;--a2ui-textfield-label-font-weight: 500;--a2ui-textfield-label-font-size: 13px;--a2ui-divider-spacing: 10px;accent-color:#ff004d}.conversation-history ::ng-deep .a2ui-chip:not(.active){color:#212121}.conversation-history{display:flex;flex-direction:column;gap:16px;padding:20px;flex-grow:1;min-height:0;overflow-y:auto}.conversation-history markdown{display:block}.possible-questions{padding:0 20px 10px;display:flex;flex-wrap:wrap;gap:8px}.possible-questions .question-chip{cursor:pointer;transition:all .2s ease;background-color:#e9e9e9;padding:8px;border-radius:5px}.possible-questions .question-chip:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.input{margin:0 10px 10px;position:relative}.input .textarea{font-family:inherit;z-index:10000;padding:10px 65px 10px 10px;width:100%;box-sizing:border-box;min-height:43px;resize:none}.input .send-button{position:absolute;right:10px;bottom:9px}.chat-history{background-color:#f3f3f3;border-left:1px solid #e9e9e9;width:300px;height:100vh;overflow:auto;position:fixed;right:500px;top:0}.chat-history .header{justify-content:center}.chat-history .history-items{display:flex;flex-direction:column;gap:8px;padding:8px;overflow:auto}.chat-history .history-items .history-empty{padding:16px 8px;color:#909090;text-align:center;font-size:13px}.chat-history .history-items .chat-history-item{cursor:pointer;background-color:#fff;border-radius:4px;padding:8px}.chat-history .history-items .chat-history-item:hover{filter:brightness(.97)}.chat-history .history-items .chat-history-item .preview{font-size:13px;line-height:1.4;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.chat-history .history-items .chat-history-item .footer{color:#909090;font-size:11px;display:flex;flex-direction:row;justify-content:space-between}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ChatMessageComponent, selector: "lib-chat-message", inputs: ["parts", "side", "showTyping"] }, { 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: "pipe", type: DatePipe, name: "date" }] });
7220
7288
  }
7221
7289
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ChatComponent, decorators: [{
7222
7290
  type: Component,
@@ -7227,6 +7295,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
7227
7295
  }], textField: [{
7228
7296
  type: ViewChild,
7229
7297
  args: ['textField']
7298
+ }], searchType: [{
7299
+ type: Input
7230
7300
  }], closed: [{
7231
7301
  type: Output
7232
7302
  }] } });
@@ -7282,6 +7352,9 @@ class WorkspaceNavbarComponent {
7282
7352
  const url = this.currentUrl() ?? '';
7283
7353
  return this.findBestRouteMatch(url, this.activeSubTopNavItems())?.id ?? '';
7284
7354
  }, ...(ngDevMode ? [{ debugName: "activeSubTopNavItemId" }] : /* istanbul ignore next */ []));
7355
+ activeWorkspaceAppId = computed(() => {
7356
+ return this.workspaceNavbarService.activeAppIdSignal() ?? this.appId();
7357
+ }, ...(ngDevMode ? [{ debugName: "activeWorkspaceAppId" }] : /* istanbul ignore next */ []));
7285
7358
  signOutIcon = phosphorSignOut;
7286
7359
  plusIcon = phosphorPlus;
7287
7360
  chatIcon = phosphorRobot;
@@ -7297,7 +7370,6 @@ class WorkspaceNavbarComponent {
7297
7370
  /** Desired order of product app ids in the nav (case-insensitive match). */
7298
7371
  productOrder = ['szales', 'sethub', 'ai', 'admin', 'component-manager'];
7299
7372
  workspaceAppNavItems = computed(() => {
7300
- const session = this.workspaceNavbarService.sessionSignal();
7301
7373
  const response = this.workspaceNavbarService.workspaceAppsResponseSignal();
7302
7374
  if (!response)
7303
7375
  return [];
@@ -7307,10 +7379,7 @@ class WorkspaceNavbarComponent {
7307
7379
  icon: this.resolveIcon(app),
7308
7380
  tooltip: app.name,
7309
7381
  });
7310
- const productItems = response.products
7311
- .filter(app => (app.appId === 'ai' ? session?.role === AccessRole.SUPER_ADMIN : true))
7312
- .map(mapApp)
7313
- .sort((a, b) => {
7382
+ const productItems = response.products.map(mapApp).sort((a, b) => {
7314
7383
  const indexA = this.productOrder.indexOf(a.id.toLowerCase());
7315
7384
  const indexB = this.productOrder.indexOf(b.id.toLowerCase());
7316
7385
  const posA = indexA === -1 ? this.productOrder.length : indexA;
@@ -7392,7 +7461,7 @@ class WorkspaceNavbarComponent {
7392
7461
  this.workspaceNavbarService.signOut().subscribe();
7393
7462
  return;
7394
7463
  }
7395
- if (item.id === this.appId()) {
7464
+ if (item.id === this.activeWorkspaceAppId()) {
7396
7465
  return;
7397
7466
  }
7398
7467
  const apps = this.workspaceNavbarService.workspaceAppsSignal() ?? [];
@@ -7438,12 +7507,14 @@ class WorkspaceNavbarComponent {
7438
7507
  return url === route || url.startsWith(route + '/') || url.startsWith(route + '?');
7439
7508
  }
7440
7509
  getLogo(companyId) {
7510
+ if (!companyId)
7511
+ return;
7441
7512
  this.workspaceNavbarService.getCompanyLogo(companyId).subscribe(logo => {
7442
7513
  this.companyLogo.set(logo.url ?? null);
7443
7514
  });
7444
7515
  }
7445
7516
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: WorkspaceNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7446
- 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]=\"appId()\"\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 (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", outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
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 });
7447
7518
  }
7448
7519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: WorkspaceNavbarComponent, decorators: [{
7449
7520
  type: Component,
@@ -7457,7 +7528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
7457
7528
  ChatComponent,
7458
7529
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
7459
7530
  class: 'ao-workspace-navbar',
7460
- }, template: "<ao-side-nav\n [items]=\"workspaceAppNavItems()\"\n [bottomItems]=\"bottomNavItems()\"\n [activeItemId]=\"appId()\"\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 (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"] }]
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"] }]
7461
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"] }] } });
7462
7533
 
7463
7534
  const AO_CATALOG_ID = 'ah-oh.com:robin-v1';