{"version":3,"file":"orangepuff-portal-frontend-shared.mjs","sources":["../../../projects/portal-frontend-shared/src/lib/identity/identity.service.ts","../../../projects/portal-frontend-shared/src/lib/avatar/avatar.ts","../../../projects/portal-frontend-shared/src/lib/avatar/avatar.html","../../../projects/portal-frontend-shared/src/lib/confirm-dialog/confirm-dialog.ts","../../../projects/portal-frontend-shared/src/lib/confirm-dialog/confirm-dialog.html","../../../projects/portal-frontend-shared/src/lib/button/button.ts","../../../projects/portal-frontend-shared/src/lib/button/button.html","../../../projects/portal-frontend-shared/src/lib/text-input/text-input.ts","../../../projects/portal-frontend-shared/src/lib/text-input/text-input.html","../../../projects/portal-frontend-shared/src/lib/number-input/number-input.ts","../../../projects/portal-frontend-shared/src/lib/number-input/number-input.html","../../../projects/portal-frontend-shared/src/lib/checkbox/checkbox.ts","../../../projects/portal-frontend-shared/src/lib/checkbox/checkbox.html","../../../projects/portal-frontend-shared/src/lib/file-input/file-input.ts","../../../projects/portal-frontend-shared/src/lib/file-input/file-input.html","../../../projects/portal-frontend-shared/src/lib/slider/slider.ts","../../../projects/portal-frontend-shared/src/lib/slider/slider.html","../../../projects/portal-frontend-shared/src/lib/tab-group/tab-group.ts","../../../projects/portal-frontend-shared/src/lib/tab-group/tab-group.html","../../../projects/portal-frontend-shared/src/lib/menu/menu.ts","../../../projects/portal-frontend-shared/src/lib/menu/menu.html","../../../projects/portal-frontend-shared/src/lib/radio-group/radio-group.ts","../../../projects/portal-frontend-shared/src/lib/radio-group/radio-group.html","../../../projects/portal-frontend-shared/src/public-api.ts","../../../projects/portal-frontend-shared/src/orangepuff-portal-frontend-shared.ts"],"sourcesContent":["import { Injectable, computed, inject, signal } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { catchError, of, switchMap, tap } from 'rxjs';\nimport { CurrentUser } from './current-user';\nimport { EffectivePermission } from './effective-permission';\n\n/**\n * Reads the current user and their effective permissions from the shell's Bff\n * (`/bff/me`, `/bff/me/permissions`) — same-origin, cookie-authenticated, so any Angular\n * body app embedded in the shell's iframe gets this for free with no extra wiring.\n * The portal shell itself also consumes this (see @orangepuff/portal-frontend's AuthService)\n * rather than duplicating the logic.\n */\n@Injectable({ providedIn: 'root' })\nexport class IdentityService {\n  private readonly http = inject(HttpClient);\n\n  private readonly _currentUser = signal<CurrentUser | null>(null);\n  private readonly _checked = signal(false);\n  private readonly _permissions = signal<EffectivePermission[]>([]);\n\n  readonly currentUser = this._currentUser.asReadonly();\n  readonly isAuthenticated = computed(() => this._currentUser() !== null);\n  readonly checked = this._checked.asReadonly();\n  readonly permissions = this._permissions.asReadonly();\n\n  checkSession() {\n    return this.http.get<CurrentUser>('/bff/me').pipe(\n      tap((user) => {\n        this._currentUser.set(user);\n        this._checked.set(true);\n      }),\n      catchError(() => {\n        this._currentUser.set(null);\n        this._checked.set(true);\n        return of(null);\n      })\n    );\n  }\n\n  /** Local username/email + password sign-in (as opposed to the Google OAuth redirect). Re-checks the session on success so `currentUser` reflects the newly signed-in account. */\n  passwordSignIn(usernameOrEmail: string, password: string) {\n    return this.http.post('/bff/login/password', { usernameOrEmail, password }).pipe(switchMap(() => this.checkSession()));\n  }\n\n  loadPermissions() {\n    return this.http.get<EffectivePermission[]>('/bff/me/permissions').pipe(\n      tap((permissions) => this._permissions.set(permissions)),\n      catchError(() => {\n        this._permissions.set([]);\n        return of([]);\n      })\n    );\n  }\n\n  /** True only for Boolean-type rules where Allowed = 1. Integer/Decimal limits: read `permissions()` directly. */\n  hasPermission(code: string): boolean {\n    return this._permissions().find((p) => p.code === code)?.allowed === 1;\n  }\n\n  logout() {\n    return this.http.post('/bff/logout', {}).pipe(tap(() => this._currentUser.set(null)));\n  }\n}\n","import { Component, computed, effect, input, signal } from '@angular/core';\n\n/**\n * Shows a user's uploaded avatar (GET /bff/users/{id}/avatar, same-origin) with an\n * initials fallback when there isn't one. Reusable anywhere a user is referenced —\n * the header, an admin user list, a \"created by\" column, etc.\n */\n@Component({\n  selector: 'lib-avatar',\n  imports: [],\n  templateUrl: './avatar.html',\n  styleUrl: './avatar.scss'\n})\nexport class Avatar {\n  readonly userId = input.required<string>();\n  readonly displayName = input<string | null>(null);\n  readonly size = input(32);\n  /** Bump this after a successful upload so the browser doesn't serve a stale cached image. */\n  readonly version = input(0);\n\n  protected readonly imageFailed = signal(false);\n\n  protected readonly avatarUrl = computed(() => `/bff/users/${this.userId()}/avatar?v=${this.version()}`);\n\n  constructor() {\n    effect(() => {\n      this.version();\n      this.imageFailed.set(false);\n    });\n  }\n\n  protected readonly initials = computed(() => {\n    const name = this.displayName()?.trim();\n    if (!name) {\n      return '?';\n    }\n\n    const parts = name.split(/\\s+/);\n    const first = parts[0]?.[0] ?? '';\n    const last = parts.length > 1 ? parts[parts.length - 1][0] : '';\n    return (first + last).toUpperCase();\n  });\n\n  protected onImageError(): void {\n    this.imageFailed.set(true);\n  }\n}\n","<div class=\"lib-avatar\" [style.width.px]=\"size()\" [style.height.px]=\"size()\">\n  @if (!imageFailed()) {\n    <img [src]=\"avatarUrl()\" [alt]=\"displayName() ?? 'User avatar'\" (error)=\"onImageError()\" />\n  } @else {\n    <span class=\"lib-avatar__initials\">{{ initials() }}</span>\n  }\n</div>\n","import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData } from './confirm-dialog-data';\n\n@Component({\n  selector: 'lib-confirm-dialog',\n  imports: [MatDialogModule, MatButtonModule],\n  templateUrl: './confirm-dialog.html',\n  styleUrl: './confirm-dialog.scss'\n})\nexport class ConfirmDialog {\n  private readonly dialogRef = inject(MatDialogRef<ConfirmDialog, boolean>);\n  protected readonly data = inject<ConfirmDialogData>(MAT_DIALOG_DATA);\n\n  protected confirm(): void {\n    this.dialogRef.close(true);\n  }\n\n  protected cancel(): void {\n    this.dialogRef.close(false);\n  }\n}\n","<h2 mat-dialog-title>{{ data.title }}</h2>\n<mat-dialog-content>{{ data.message }}</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n  <button mat-button type=\"button\" (click)=\"cancel()\">{{ data.cancelLabel ?? 'Cancel' }}</button>\n  <button mat-flat-button type=\"button\" (click)=\"confirm()\">{{ data.confirmLabel ?? 'Confirm' }}</button>\n</mat-dialog-actions>\n","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\n\n/**\n * Generic themed button. Owns no text — every consuming app supplies its own label.\n *\n * Variants:\n * - `primary`  → `mat-flat-button`\n * - `secondary` → `mat-button`\n * - `raised`   → `mat-raised-button`\n * - `stroked`  → `mat-stroked-button`\n */\n@Component({\n  selector: 'lib-button',\n  imports: [MatButtonModule],\n  templateUrl: './button.html',\n  styleUrl: './button.scss'\n})\nexport class Button {\n  readonly label = input.required<string>();\n  readonly variant = input<'primary' | 'secondary' | 'raised' | 'stroked'>('secondary');\n  readonly type = input<'button' | 'submit'>('button');\n  readonly disabled = input(false);\n  readonly clicked = output<void>();\n\n  protected onClick(): void {\n    if (this.type() === 'button') {\n      this.clicked.emit();\n    }\n  }\n}\n","@switch (variant()) {\n  @case ('primary') {\n    <button mat-flat-button [type]=\"type()\" [disabled]=\"disabled()\" (click)=\"onClick()\">{{ label() }}</button>\n  }\n  @case ('raised') {\n    <button mat-raised-button [type]=\"type()\" [disabled]=\"disabled()\" (click)=\"onClick()\">{{ label() }}</button>\n  }\n  @case ('stroked') {\n    <button mat-stroked-button [type]=\"type()\" [disabled]=\"disabled()\" (click)=\"onClick()\">{{ label() }}</button>\n  }\n  @default {\n    <button mat-button [type]=\"type()\" [disabled]=\"disabled()\" (click)=\"onClick()\">{{ label() }}</button>\n  }\n}\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n/**\n * Generic Material text field bound directly to a caller-owned FormControl. Owns no text —\n * label/placeholder/hint/errorText all come from the consuming app's own label/message files.\n */\n@Component({\n  selector: 'lib-text-input',\n  imports: [ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n  templateUrl: './text-input.html',\n  styleUrl: './text-input.scss'\n})\nexport class TextInput {\n  readonly control = input.required<FormControl<string>>();\n  readonly label = input.required<string>();\n  readonly placeholder = input<string | null>(null);\n  readonly type = input<'text' | 'email' | 'password'>('text');\n  readonly errorText = input<string | null>(null);\n  readonly hint = input<string | null>(null);\n}\n","<mat-form-field appearance=\"outline\">\n  <mat-label>{{ label() }}</mat-label>\n  <input matInput [type]=\"type()\" [formControl]=\"control()\" [placeholder]=\"placeholder() ?? ''\" />\n  @if (hint() && !(control().invalid && control().touched)) {\n    <mat-hint>{{ hint() }}</mat-hint>\n  }\n  @if (control().invalid && control().touched && errorText()) {\n    <mat-error>{{ errorText() }}</mat-error>\n  }\n</mat-form-field>\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n/**\n * Generic Material number field bound directly to a caller-owned FormControl. Owns no text —\n * label/hint/errorText all come from the consuming app's own label/message files.\n */\n@Component({\n  selector: 'lib-number-input',\n  imports: [ReactiveFormsModule, MatFormFieldModule, MatInputModule],\n  templateUrl: './number-input.html',\n  styleUrl: './number-input.scss'\n})\nexport class NumberInput {\n  readonly control = input.required<FormControl<number>>();\n  readonly label = input.required<string>();\n  readonly placeholder = input<string | null>(null);\n  readonly min = input<number | null>(null);\n  readonly max = input<number | null>(null);\n  readonly step = input<number | null>(null);\n  readonly errorText = input<string | null>(null);\n  readonly hint = input<string | null>(null);\n}\n","<mat-form-field appearance=\"outline\">\n  <mat-label>{{ label() }}</mat-label>\n  <input\n    matInput\n    type=\"number\"\n    [formControl]=\"control()\"\n    [placeholder]=\"placeholder() ?? ''\"\n    [attr.min]=\"min()\"\n    [attr.max]=\"max()\"\n    [attr.step]=\"step()\"\n  />\n  @if (hint() && !(control().invalid && control().touched)) {\n    <mat-hint>{{ hint() }}</mat-hint>\n  }\n  @if (control().invalid && control().touched && errorText()) {\n    <mat-error>{{ errorText() }}</mat-error>\n  }\n</mat-form-field>\n","import { Component, input, model } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n/**\n * Generic Material checkbox bound directly to a caller-owned FormControl. Owns no text —\n * label comes from the consuming app's own label/message files.\n *\n * Set `indeterminate` to true for select-all header checkboxes where only some rows are selected.\n */\n@Component({\n  selector: 'lib-checkbox',\n  imports: [ReactiveFormsModule, MatCheckboxModule],\n  templateUrl: './checkbox.html',\n  styleUrl: './checkbox.scss'\n})\nexport class Checkbox {\n  readonly control = input.required<FormControl<boolean>>();\n  readonly label = input.required<string>();\n  readonly indeterminate = model(false);\n}\n","<mat-checkbox [formControl]=\"control()\" [indeterminate]=\"indeterminate()\">{{ label() }}</mat-checkbox>\n","import { Component, input, output } from '@angular/core';\n\n/**\n * Generic file picker. Owns no text — label comes from the consuming app's own label\n * files. Emits the selected File (or null when cleared) rather than integrating with\n * Reactive Forms — native file inputs have no meaningful string value to bind to a\n * FormControl the way TextInput does.\n */\n@Component({\n  selector: 'lib-file-input',\n  imports: [],\n  templateUrl: './file-input.html',\n  styleUrl: './file-input.scss'\n})\nexport class FileInput {\n  readonly label = input.required<string>();\n  readonly accept = input<string | null>(null);\n  readonly disabled = input(false);\n  readonly fileSelected = output<File | null>();\n\n  protected onChange(event: Event): void {\n    const input = event.target as HTMLInputElement;\n    this.fileSelected.emit(input.files?.[0] ?? null);\n  }\n}\n","<label class=\"lib-file-input__label\">{{ label() }}</label>\n<input\n  class=\"lib-file-input__input\"\n  type=\"file\"\n  [accept]=\"accept() ?? undefined\"\n  [disabled]=\"disabled()\"\n  (change)=\"onChange($event)\"\n/>\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatSliderModule } from '@angular/material/slider';\n\n/**\n * Generic numeric slider bound directly to a caller-owned FormControl. Owns no text —\n * label comes from the consuming app's own label files.\n */\n@Component({\n  selector: 'lib-slider',\n  imports: [ReactiveFormsModule, MatSliderModule],\n  templateUrl: './slider.html',\n  styleUrl: './slider.scss'\n})\nexport class Slider {\n  readonly control = input.required<FormControl<number>>();\n  readonly label = input.required<string>();\n  readonly min = input(0);\n  readonly max = input.required<number>();\n  readonly step = input(1);\n}\n","<label class=\"lib-slider__label\">{{ label() }}</label>\n<mat-slider [min]=\"min()\" [max]=\"max()\" [step]=\"step()\">\n  <input matSliderThumb [formControl]=\"control()\" />\n</mat-slider>\n","import { Component, input, output } from '@angular/core';\nimport { MatTabsModule } from '@angular/material/tabs';\n\n/**\n * Generic tab strip. Owns no text (tab labels come from the consuming app) and no\n * content — it only tracks which tab is selected. The consuming app renders each\n * tab's panel itself (e.g. based on selectedIndex), since that content is always\n * app-specific and doesn't belong in a shared package.\n */\n@Component({\n  selector: 'lib-tab-group',\n  imports: [MatTabsModule],\n  templateUrl: './tab-group.html',\n  styleUrl: './tab-group.scss'\n})\nexport class TabGroup {\n  readonly tabs = input.required<string[]>();\n  readonly selectedIndex = input(0);\n  readonly selectedIndexChange = output<number>();\n\n  protected onSelectedIndexChange(index: number): void {\n    this.selectedIndexChange.emit(index);\n  }\n}\n","<mat-tab-group\n  [selectedIndex]=\"selectedIndex()\"\n  (selectedIndexChange)=\"onSelectedIndexChange($event)\"\n>\n  @for (tab of tabs(); track tab) {\n    <mat-tab [label]=\"tab\" />\n  }\n</mat-tab-group>\n","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MenuItem } from './menu-item';\n\n/**\n * Icon-triggered dropdown menu (e.g. a per-row \"more actions\" menu). Owns no text —\n * ariaLabel and every item's label come from the consuming app. Emits the selected\n * item's id rather than its label, so callers don't have to match on display text.\n */\n@Component({\n  selector: 'lib-menu',\n  imports: [MatButtonModule, MatIconModule, MatMenuModule],\n  templateUrl: './menu.html',\n  styleUrl: './menu.scss'\n})\nexport class Menu {\n  readonly icon = input('more_vert');\n  readonly ariaLabel = input.required<string>();\n  readonly items = input.required<MenuItem[]>();\n  readonly itemSelected = output<string>();\n\n  protected onItemClick(id: string): void {\n    this.itemSelected.emit(id);\n  }\n}\n","<button mat-icon-button type=\"button\" [attr.aria-label]=\"ariaLabel()\" [matMenuTriggerFor]=\"itemMenu\">\n  <mat-icon>{{ icon() }}</mat-icon>\n</button>\n\n<mat-menu #itemMenu=\"matMenu\">\n  @for (item of items(); track item.id) {\n    <button mat-menu-item type=\"button\" (click)=\"onItemClick(item.id)\">{{ item.label }}</button>\n  }\n</mat-menu>\n","import { Component, input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { RadioOption } from './radio-option';\n\n/**\n * Generic radio group bound directly to a caller-owned FormControl. Owns no text —\n * label and every option's label come from the consuming app's own label files.\n */\n@Component({\n  selector: 'lib-radio-group',\n  imports: [ReactiveFormsModule, MatRadioModule],\n  templateUrl: './radio-group.html',\n  styleUrl: './radio-group.scss'\n})\nexport class RadioGroup {\n  readonly control = input.required<FormControl<string>>();\n  readonly label = input.required<string>();\n  readonly options = input.required<RadioOption[]>();\n}\n","<span class=\"lib-radio-group__label\">{{ label() }}</span>\n<mat-radio-group [formControl]=\"control()\">\n  @for (option of options(); track option.value) {\n    <mat-radio-button [value]=\"option.value\">{{ option.label }}</mat-radio-button>\n  }\n</mat-radio-group>\n","/*\n * Public API Surface of @orangepuff/portal-frontend-shared\n */\n\nexport * from './lib/identity/current-user';\nexport * from './lib/identity/effective-permission';\nexport * from './lib/identity/identity.service';\n\nexport * from './lib/avatar/avatar';\n\nexport * from './lib/confirm-dialog/confirm-dialog';\nexport * from './lib/confirm-dialog/confirm-dialog-data';\n\nexport * from './lib/button/button';\n\nexport * from './lib/text-input/text-input';\n\nexport * from './lib/number-input/number-input';\n\nexport * from './lib/checkbox/checkbox';\n\nexport * from './lib/file-input/file-input';\n\nexport * from './lib/slider/slider';\n\nexport * from './lib/tab-group/tab-group';\n\nexport * from './lib/menu/menu';\nexport * from './lib/menu/menu-item';\n\nexport * from './lib/radio-group/radio-group';\nexport * from './lib/radio-group/radio-option';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i1","i3"],"mappings":"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"}