import { EditorProperty } from "@iplusplus/y-model" import { CellRenderBuilder2, EditorContextProps } from "./types" import { defaultCellBuilder } from "./samples/defaultCellBuilder" export class EditorContextPropsBuilder { renderBuilderList: CellRenderBuilder2[] = [] addEditRenderBuilder = (editRenderBuilder: CellRenderBuilder2) => { this.renderBuilderList.push(editRenderBuilder) } build = (appendDefaultBuilder?: boolean): EditorContextProps => { const editCellRenderBuilder = (property: EditorProperty) => { for (const renderBuilder of this.renderBuilderList) { const render = renderBuilder(property) if (render !== undefined && render.editorCellRender !== undefined) { return render.editorCellRender } } return appendDefaultBuilder ? defaultCellBuilder().editorCellRender : undefined } const cellRenderBuilder = (property: EditorProperty) => { for (const renderBuilder of this.renderBuilderList) { const render = renderBuilder(property) if (render !== undefined && render.cellRender !== undefined) { return render.cellRender } } return appendDefaultBuilder ? defaultCellBuilder().cellRender : undefined } return { editCellRenderBuilder, cellRenderBuilder, } } }