import { EventEmitter, OnInit } from '@angular/core'; import { BaseAngularComponent } from '@memberjunction/ng-base-types'; import { MJListCategoryEntity } from '@memberjunction/core-entities'; import * as i0 from "@angular/core"; /** * Form payload emitted when the user clicks Save. The parent component is * responsible for calling `GraphQLListsClient.MaterializeFromView` with these * options — we keep the dialog generic so it doesn't have to know about the * GraphQL transport. */ export interface SaveViewAsListResult { ListName: string; Description?: string; CategoryId?: string; RememberLineage: boolean; UseSnapshot: boolean; RefreshMode: 'Additive' | 'Sync'; } /** * Dialog for materializing a User View into a new static List. Matches * mockup `09-save-view-as-list.html`: name + description + category, then * a radio group for source-lineage (remember vs one-time snapshot), then a * "freeze filter" checkbox that maps to `UseSnapshot` on the list. * * The dialog is reusable — pass `ViewId` + `ViewName` + the displayed * record count and listen for `Save` / `Cancel`. Multi-provider safe via * `BaseAngularComponent.ProviderToUse`. */ export declare class SaveViewAsListDialogComponent extends BaseAngularComponent implements OnInit { private readonly cdr; /** Visibility toggle, getter/setter so opening resets the form. */ get Visible(): boolean; set Visible(value: boolean); private _visible; /** Required — the User View we're materializing from. */ ViewId: string | null; /** Display name of the source view (shown in the info banner + default list name). */ ViewName: string | null; /** Optional — record count shown in the button label + info banner. */ RecordCount: number | null; Save: EventEmitter; Cancel: EventEmitter; listName: string; description: string; categoryId: string | null; rememberLineage: boolean; useSnapshot: boolean; refreshMode: 'Additive' | 'Sync'; categories: MJListCategoryEntity[]; loadingCategories: boolean; submitting: boolean; ngOnInit(): Promise; OnSave(): void; OnCancel(): void; OnLineageChange(remember: boolean): void; get canSave(): boolean; get confirmButtonLabel(): string; /** * Load list categories for the category dropdown. Multi-provider safe. * Failures degrade gracefully — the dropdown just shows "Uncategorized" * and we log so the user can troubleshoot. */ private loadCategories; private resetForm; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } //# sourceMappingURL=save-view-as-list-dialog.component.d.ts.map