import { Util } from '@ibizstudio/runtime';
import { ViewPanelControlBase } from '../../../widgets';

/**
 * 面板部件基类
 *
 * @export
 * @class AppViewPanelBase
 * @extends {PanelControlBase}
 */
export class AppViewPanelBase extends ViewPanelControlBase {
  /**
   * 渲染
   *
   * @memberof AppViewPanelBase
   */
  render(h: any) {
    if (!this.controlIsLoaded || !this.embedViewPath) {
      return;
    }
    if (!this.cacheUUID) {
      this.cacheUUID = Util.createUUID();
    }
    let localContext = Util.deepCopy(this.context);
    let localViewParam = Util.deepCopy(this.viewparams);
    Object.assign(localContext, { viewpath: this.embedViewPath });
    return h('app-view-shell', {
      props: {
        staticProps: {
          viewDefaultUsage: false,
          appDeCodeName: this.appDeCodeName,
        },
        dynamicProps: {
          viewdata: JSON.stringify(localContext),
          viewparam: JSON.stringify(localViewParam),
        },
      },
      key: this.cacheUUID,
      class: 'viewcontainer2',
      on: {},
    });
  }
}
