import { __decorate } from "tslib";
import { Vue, Component, Prop } from 'vue-property-decorator';
import { AppServiceBase, Util } from '@ibizstudio/runtime';
import "./app-style2-default-layout.less";
let AppStyle2DefaultLayout = class AppStyle2DefaultLayout extends Vue {
    /**
     * 当前字体
     *
     * @memberof AppStyle2DefaultLayout
     */
    get selectFont() {
        const appStore = AppServiceBase.getInstance().getAppStore();
        if (appStore && appStore.state) {
            return appStore.state.selectFont;
        }
        else if (localStorage.getItem('font-family')) {
            return localStorage.getItem('font-family');
        }
        else {
            return 'Microsoft YaHei';
        }
    }
    /**
     * 初始化类名
     *
     * @memberof AppStyle2DefaultLayout
     */
    initRenderClassNames(otherClassNames) {
        var _a, _b, _c;
        let classNames = {
            "view-style2": true,
            [(_a = this.viewInstance.viewType) === null || _a === void 0 ? void 0 : _a.toLowerCase()]: true,
            [Util.srfFilePath2((_b = this.viewInstance) === null || _b === void 0 ? void 0 : _b.codeName)]: true,
        };
        if (this.viewInstance.getPSSysCss()) {
            Object.assign(classNames, {
                [((_c = this.viewInstance.getPSSysCss()) === null || _c === void 0 ? void 0 : _c.cssName) || '']: true,
            });
        }
        if (otherClassNames) {
            Object.assign(classNames, Object.assign({}, otherClassNames));
        }
        return classNames;
    }
    /**
     * 是否显示标题栏
     *
     * @readonly
     * @memberof AppDefaultViewLayout
     */
    get showCaption() {
        if (this.viewInstance && this.$parent && Util.isExist(this.viewInstance.showCaptionBar)) {
            return this.viewInstance.showCaptionBar && !this.$parent.noViewCaption;
        }
        else {
            return true;
        }
    }
    /**
     * 绘制视图标题
     *
     * @memberof AppStyle2DefaultLayout
     */
    renderViewCaption() {
        const { viewSysImage } = this.viewInstance;
        if (this.showCaption) {
            return (<div slot="title">
                    {(viewSysImage === null || viewSysImage === void 0 ? void 0 : viewSysImage.cssClass) && viewSysImage.cssClass != '' ?
                    <span class="caption-image">
                            <i class={viewSysImage.cssClass}></i>
                        </span> :
                    (viewSysImage === null || viewSysImage === void 0 ? void 0 : viewSysImage.imagePath) && viewSysImage.imagePath != '' ?
                        <span class="caption-image">
                                <img src={viewSysImage.imagePath}></img>
                            </span> : null}
                    <span class="caption-info">{this.$slots.captionInfo ? this.$slots.captionInfo : this.model.srfCaption}</span>
                </div>);
        }
    }
    /**
     * 绘制视图
     *
     * @memberof AppStyle2DefaultLayout
     */
    render(h) {
        const { codeName } = this.viewInstance;
        const viewClassNames = this.initRenderClassNames();
        const styleMode = this.$uiState.layoutState.styleMode;
        if (Object.is('DEFAULT', styleMode)) {
            return (<studio-view style={{ 'font-family': this.selectFont }} viewName={codeName === null || codeName === void 0 ? void 0 : codeName.toLowerCase()} viewTitle={this.model.srfCaption} viewInstance={this.viewInstance} viewparams={this.viewparams} context={this.context} class={viewClassNames}>
                        {this.renderViewCaption()}
                    <template slot="quickSearch">
                        {this.$slots.quickSearch}
                    </template>
                    <template slot="topMessage">
                        {this.$slots.topMessage}
                    </template>
                    <template slot="quickSearchForm">
                        {this.$slots.quickSearchForm}
                    </template>
                    <template slot="quickGroupTab">
                        {this.$slots.quickGroupTab}
                    </template>
                    <template slot="quickGroupSearch">
                        {this.$slots.quickGroupSearch}
                    </template>
                    <template slot="dataPanel">
                        {this.$slots.datapanel}
                    </template>
                    <template slot="toolbar">
                        {this.$slots.toolbar}
                    </template>
                    <template slot="searchForm">
                        {this.$slots.searchForm}
                    </template>
                    <template slot="searchBar">
                        {this.$slots.searchBar}
                    </template>
                    <template slot="bodyMessage">
                        {this.$slots.bodyMessage}
                    </template>
                    {this.$slots.default}
                    <template slot="bottomMessage">
                        {this.$slots.bottomMessage}
                    </template>
                    <template slot="footer">
                        {this.$slots.footer}
                    </template>
                </studio-view>);
        }
        else {
            return (<studio-view-style2 style={{ 'font-family': this.selectFont }} viewName={codeName === null || codeName === void 0 ? void 0 : codeName.toLowerCase()} viewTitle={this.model.srfCaption} viewInstance={this.viewInstance} viewparams={this.viewparams} context={this.context} class={viewClassNames}>
                        {this.renderViewCaption()}
                    <template slot="quickSearch">
                        {this.$slots.quickSearch}
                    </template>
                    <template slot="topMessage">
                        {this.$slots.topMessage}
                    </template>
                    <template slot="quickSearchForm">
                        {this.$slots.quickSearchForm}
                    </template>
                    <template slot="quickGroupTab">
                        {this.$slots.quickGroupTab}
                    </template>
                    <template slot="quickGroupSearch">
                        {this.$slots.quickGroupSearch}
                    </template>
                    <template slot="dataPanel">
                        {this.$slots.datapanel}
                    </template>
                    <template slot="toolbar">
                        {this.$slots.toolbar}
                    </template>
                    <template slot="searchForm">
                        {this.$slots.searchForm}
                    </template>
                    <template slot="searchBar">
                        {this.$slots.searchBar}
                    </template>
                    <template slot="bodyMessage">
                        {this.$slots.bodyMessage}
                    </template>
                    {this.$slots.default}
                    <template slot="bottomMessage">
                        {this.$slots.bottomMessage}
                    </template>
                    <template slot="footer">
                        {this.$slots.footer}
                    </template>
                </studio-view-style2>);
        }
    }
};
__decorate([
    Prop()
], AppStyle2DefaultLayout.prototype, "viewInstance", void 0);
__decorate([
    Prop()
], AppStyle2DefaultLayout.prototype, "context", void 0);
__decorate([
    Prop()
], AppStyle2DefaultLayout.prototype, "viewparams", void 0);
__decorate([
    Prop()
], AppStyle2DefaultLayout.prototype, "modelService", void 0);
__decorate([
    Prop()
], AppStyle2DefaultLayout.prototype, "model", void 0);
AppStyle2DefaultLayout = __decorate([
    Component({})
], AppStyle2DefaultLayout);
export { AppStyle2DefaultLayout };
