/** * This file is part of the NocoBase (R) project. * Copyright (c) 2020-2024 NocoBase Co., Ltd. * Authors: NocoBase Team. * * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License. * For more information, please refer to: https://www.nocobase.com/agreement. */ import _ from 'lodash'; export type FlowSurfaceDefaultActionPopupType = 'addNew' | 'view' | 'edit'; export type FlowSurfaceDefaultActionPopupUse = 'AddNewActionModel' | 'ViewActionModel' | 'EditActionModel'; type FlowSurfaceDefaultActionPopupSubmitAction = { key: string; type: 'submit'; settings: { title: string; type: string; confirm: boolean; }; }; export type FlowSurfaceDefaultActionPopupConfig = { type: FlowSurfaceDefaultActionPopupType; use: FlowSurfaceDefaultActionPopupUse; defaultButtonTitle: string; defaultPopupTabTitle: string; blockKey: string; blockType: 'createForm' | 'editForm' | 'details'; blockUse: 'CreateFormModel' | 'EditFormModel' | 'DetailsBlockModel'; resourceBinding: 'currentCollection' | 'currentRecord'; blockSettings: Record; submitAction?: FlowSurfaceDefaultActionPopupSubmitAction; }; export type FlowSurfaceDefaultActionPopupFieldCandidate = { field?: any; fieldPath?: string; }; export type FlowSurfaceDefaultActionPopupFieldGroupField = string | { field: string; titleField?: string; settings?: Record; }; export type FlowSurfaceDefaultActionPopupFieldGroupCandidate = { key?: string; title: string; fields: FlowSurfaceDefaultActionPopupFieldGroupField[]; }; type FlowSurfaceDefaultActionPopupFieldFilterOptions = { excludeAuditTimestampFields?: boolean; excludeAssociationFields?: boolean; excludeRelationBackingForeignKeyFields?: boolean; }; type FlowSurfaceDefaultActionPopupFieldsInput = any[] | { fieldPaths?: any[]; fieldGroups?: FlowSurfaceDefaultActionPopupFieldGroupCandidate[]; }; export declare const FLOW_SURFACE_DEFAULT_ACTION_POPUP_TYPES: Set; export declare const FLOW_SURFACE_DEFAULT_ACTION_POPUP_USES: Set; export declare function isFlowSurfaceDefaultActionPopupType(type?: string): type is FlowSurfaceDefaultActionPopupType; export declare function isFlowSurfaceDefaultActionPopupUse(use?: string): use is FlowSurfaceDefaultActionPopupUse; export declare function getFlowSurfaceDefaultActionPopupConfigByUse(use?: string): FlowSurfaceDefaultActionPopupConfig; export declare function resolveFlowSurfaceDefaultActionPopupTabTitle(use?: string, currentTitle?: string | null): string; export declare function isFlowSurfaceDefaultActionPopupBusinessField(field: any): boolean; export declare function pickFlowSurfaceDefaultActionPopupFieldPaths(candidates: FlowSurfaceDefaultActionPopupFieldCandidate[], options?: FlowSurfaceDefaultActionPopupFieldFilterOptions): string[]; export declare function collectFlowSurfaceDefaultActionPopupFieldGroupFieldPaths(fieldGroups: FlowSurfaceDefaultActionPopupFieldGroupCandidate[] | undefined): Set; export declare function pickFlowSurfaceDefaultActionPopupFieldGroups(candidates: FlowSurfaceDefaultActionPopupFieldCandidate[], fieldGroups: FlowSurfaceDefaultActionPopupFieldGroupCandidate[] | undefined, options?: FlowSurfaceDefaultActionPopupFieldFilterOptions): FlowSurfaceDefaultActionPopupFieldGroupCandidate[]; export declare function buildFlowSurfaceDefaultActionPopupBlocks(use: string | undefined, fieldsInput: FlowSurfaceDefaultActionPopupFieldsInput): _.Dictionary | FlowSurfaceDefaultActionPopupFieldGroupCandidate[] | FlowSurfaceDefaultActionPopupSubmitAction[] | { binding: "currentCollection" | "currentRecord"; }>[]; export declare function hasFlowSurfaceInlinePopupTemplate(popup?: Record): boolean; export declare function hasFlowSurfaceInlinePopupBlocks(popup?: Record): boolean; export {};