import { MEditViewPanelControlBase } from '../../../widgets';
import { throttle } from '@ibizstudio/runtime';
/**
 * 多编辑面板部件基类
 *
 * @export
 * @class AppListExpBarBase
 * @extends {ListExpBarControlBase}
 */
export class AppMEditViewPanelBase extends MEditViewPanelControlBase {
    /**
     * 绘制内容
     *
     * @memberof AppMEditViewPanelBase
     */
    renderContent() {
        if (!this.controlInstance.getEmbeddedPSAppView()) {
            return;
        }
        if (Object.is(this.controlInstance.panelStyle, 'TAB_TOP')) {
            return this.renderTabtop();
        }
        return this.renderRow();
    }
    /**
     * 绘制上分页样式
     *
     *
     * @memberof AppMEditViewPanelBase
     */
    renderTabtop() {
        return (<tabs value={this.items.length - 1}>
        {this.items.map((item) => {
                return (<tabPane label={item.srfmajortext}>
              {this.$createElement('app-view-shell', {
                        props: {
                            staticProps: {
                                viewDefaultUsage: false,
                                viewModelData: this.controlInstance.getEmbeddedPSAppView(),
                                panelState: this.panelState,
                            },
                            dynamicProps: {
                                viewdata: JSON.stringify(item.viewdata),
                                viewparam: JSON.stringify(item.viewparam),
                            },
                        },
                        class: 'viewcontainer2',
                        on: {
                            viewdataschange: this.viewDataChange.bind(this),
                            viewload: this.viewload.bind(this),
                        },
                    })}
            </tabPane>);
            })}
      </tabs>);
    }
    /**
     * 绘制行记录样式
     *
     * @memberof AppMEditViewPanelBase
     */
    renderRow() {
        return this.items.map((item) => {
            return [
                this.$createElement('app-view-shell', {
                    props: {
                        staticProps: {
                            viewDefaultUsage: false,
                            viewModelData: this.controlInstance.getEmbeddedPSAppView(),
                            panelState: this.panelState,
                        },
                        dynamicProps: {
                            viewdata: JSON.stringify(item.viewdata),
                            viewparam: JSON.stringify(item.viewparam),
                        },
                    },
                    class: 'viewcontainer2',
                    on: {
                        viewdataschange: this.viewDataChange.bind(this),
                        viewload: this.viewload.bind(this),
                    },
                }),
                <divider />,
            ];
        });
    }
    /**
     * 绘制部件
     *
     * @param h
     * @memberof AppMEditViewPanelBase
     */
    render(h) {
        if (!this.controlIsLoaded) {
            return null;
        }
        const { controlClassNames } = this.renderOptions;
        return (<div class={Object.assign(Object.assign({}, controlClassNames), { multieditviewpanel: true })}>
        {this.items.length > 0 ? this.renderContent() : null}
        {this.showButton ? (<i-button type='primary' on-click={() => throttle(this.handleAdd, [], this)} style='float: right;'>
            {this.$t('app.local.add')}
          </i-button>) : null}
      </div>);
    }
}
