{"version":3,"file":"dereekb-dbx-form-expand.field.component-BO_8nxHg.mjs","sources":["../../../../packages/dbx-form/src/lib/forge/field/wrapper/expand/expand.field.component.ts","../../../../packages/dbx-form/src/lib/forge/field/wrapper/expand/expand.field.component.html"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { type FieldTree } from '@angular/forms/signals';\nimport type { DynamicText, FieldMeta, ValidationMessages } from '@ng-forge/dynamic-forms';\nimport type { DbxForgeExpandFieldProps } from './expand.field';\n\n/**\n * Forge ValueFieldComponent that renders an expand/collapse control.\n *\n * Displays as either a Material stroked button or a clickable text link.\n * Writes `true`/`false` to its FieldTree value on click, which drives\n * conditional visibility on sibling groups via ng-forge's `logic` system.\n */\n@Component({\n  selector: 'dbx-forge-expand-field',\n  templateUrl: './expand.field.component.html',\n  styles: `\n    :host {\n      display: block;\n    }\n\n    .dbx-forge-expand-text {\n      cursor: pointer;\n      display: inline-flex;\n      align-items: center;\n      gap: 4px;\n      user-select: none;\n      color: var(--mat-sys-primary);\n      font-size: 0.875rem;\n    }\n\n    .dbx-forge-expand-text:hover {\n      text-decoration: underline;\n    }\n\n    .dbx-forge-expand-text-icon {\n      font-size: 18px;\n      width: 18px;\n      height: 18px;\n    }\n  `,\n  imports: [MatButtonModule, MatIconModule],\n  host: {\n    '[class]': 'className()'\n  }\n})\nexport class DbxForgeExpandFieldComponent {\n  // ng-forge ValueFieldComponent inputs\n  readonly field = input.required<FieldTree<boolean>>();\n  readonly key = input.required<string>();\n  readonly label = input<DynamicText | undefined>();\n  readonly placeholder = input<DynamicText | undefined>();\n  readonly className = input<string>('');\n  readonly tabIndex = input<number | undefined>();\n  readonly props = input<DbxForgeExpandFieldProps | undefined>();\n  readonly meta = input<FieldMeta | undefined>();\n  readonly validationMessages = input<ValidationMessages | undefined>();\n  readonly defaultValidationMessages = input<ValidationMessages | undefined>();\n\n  readonly isOpenSignal = computed((): boolean => {\n    return this.field()().value() ?? false;\n  });\n\n  readonly buttonTypeSignal = computed(() => {\n    return this.props()?.buttonType ?? 'text';\n  });\n\n  readonly labelSignal = computed(() => {\n    return this.props()?.expandLabel ?? '';\n  });\n\n  readonly iconSignal = computed(() => {\n    return this.isOpenSignal() ? 'expand_less' : 'expand_more';\n  });\n\n  toggle(): void {\n    const fieldState = this.field()();\n    const currentValue = fieldState.value() ?? false;\n    fieldState.value.set(!currentValue);\n    fieldState.markAsTouched();\n  }\n}\n","@if (buttonTypeSignal() === 'button') {\n  <button mat-stroked-button type=\"button\" class=\"dbx-forge-expand-button\" (click)=\"toggle()\" [attr.aria-expanded]=\"isOpenSignal()\">\n    <mat-icon>{{ iconSignal() }}</mat-icon>\n    {{ labelSignal() }}\n  </button>\n} @else {\n  <span class=\"dbx-forge-expand-text\" role=\"button\" tabindex=\"0\" (click)=\"toggle()\" (keydown.enter)=\"toggle()\" (keydown.space)=\"toggle()\" [attr.aria-expanded]=\"isOpenSignal()\">\n    <mat-icon class=\"dbx-forge-expand-text-icon\">{{ iconSignal() }}</mat-icon>\n    {{ labelSignal() }}\n  </span>\n}\n"],"names":["i2"],"mappings":"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"}